packages feed

vulkan 3.10.1 → 3.10.2

raw patch · 302 files changed

+10650/−4973 lines, 302 files

Files

changelog.md view
@@ -2,6 +2,9 @@  ## WIP +## [3.10.2] - 2021-06-05+- Bump API version to v1.2.179+ ## [3.10.1] - 2021-03-31 - Bump API version to v1.2.174 - Fix https://github.com/expipiplus1/vulkan/issues/266
package.yaml view
@@ -1,5 +1,5 @@ name: vulkan-version: "3.10.1"+version: "3.10.2" synopsis: Bindings to the Vulkan graphics API. category: Graphics maintainer: Joe Hermaszewski <live.long.and.prosper@monoid.al>
readme.md view
@@ -462,7 +462,7 @@ ## Current Status  All the core Vulkan 1.0, 1.1, and 1.2 functionality is here as well as all the-extensions.+extensions (except the video ones).  This is currently a 64 bit only library. 
src/Vulkan/CStruct/Extends.hs view
@@ -116,6 +116,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_conditional_rendering (CommandBufferInheritanceConditionalRenderingInfoEXT) import {-# SOURCE #-} Vulkan.Core10.CommandBuffer (CommandBufferInheritanceInfo) import {-# SOURCE #-} Vulkan.Extensions.VK_QCOM_render_pass_transform (CommandBufferInheritanceRenderPassTransformInfoQCOM)+import {-# SOURCE #-} Vulkan.Extensions.VK_NV_inherited_viewport_scissor (CommandBufferInheritanceViewportScissorInfoNV) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_synchronization2 (CommandBufferSubmitInfoKHR) import {-# SOURCE #-} Vulkan.Core10.CommandPool (CommandPoolCreateInfo) import {-# SOURCE #-} Vulkan.Core10.ImageView (ComponentMapping)@@ -132,6 +133,9 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_copy_commands2 (CopyImageInfo2KHR) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_copy_commands2 (CopyImageToBufferInfo2KHR) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_acceleration_structure (CopyMemoryToAccelerationStructureInfoKHR)+import {-# SOURCE #-} Vulkan.Extensions.VK_NVX_binary_import (CuFunctionCreateInfoNVX)+import {-# SOURCE #-} Vulkan.Extensions.VK_NVX_binary_import (CuLaunchInfoNVX)+import {-# SOURCE #-} Vulkan.Extensions.VK_NVX_binary_import (CuModuleCreateInfoNVX) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_external_semaphore_win32 (D3D12FenceSubmitInfoKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_debug_marker (DebugMarkerMarkerInfoEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_debug_marker (DebugMarkerObjectNameInfoEXT)@@ -342,6 +346,7 @@ import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_buffer_device_address (PhysicalDeviceBufferDeviceAddressFeatures) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_buffer_device_address (PhysicalDeviceBufferDeviceAddressFeaturesEXT) 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) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_conditional_rendering (PhysicalDeviceConditionalRenderingFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_conservative_rasterization (PhysicalDeviceConservativeRasterizationPropertiesEXT)@@ -363,6 +368,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_discard_rectangles (PhysicalDeviceDiscardRectanglePropertiesEXT) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_driver_properties (PhysicalDeviceDriverProperties) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_scissor_exclusive (PhysicalDeviceExclusiveScissorFeaturesNV)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_extended_dynamic_state2 (PhysicalDeviceExtendedDynamicState2FeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_extended_dynamic_state (PhysicalDeviceExtendedDynamicStateFeaturesEXT) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_external_memory_capabilities (PhysicalDeviceExternalBufferInfo) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_external_fence_capabilities (PhysicalDeviceExternalFenceInfo)@@ -392,6 +398,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_filter_cubic (PhysicalDeviceImageViewImageFormatInfoEXT) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer (PhysicalDeviceImagelessFramebufferFeatures) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_index_type_uint8 (PhysicalDeviceIndexTypeUint8FeaturesEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_NV_inherited_viewport_scissor (PhysicalDeviceInheritedViewportScissorFeaturesNV) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_inline_uniform_block (PhysicalDeviceInlineUniformBlockFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_inline_uniform_block (PhysicalDeviceInlineUniformBlockPropertiesEXT) import {-# SOURCE #-} Vulkan.Core10.DeviceInitialization (PhysicalDeviceLimits)@@ -421,6 +428,8 @@ import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2 (PhysicalDeviceProperties2) import {-# SOURCE #-} Vulkan.Core11.Originally_Based_On_VK_KHR_protected_memory (PhysicalDeviceProtectedMemoryFeatures) import {-# SOURCE #-} Vulkan.Core11.Originally_Based_On_VK_KHR_protected_memory (PhysicalDeviceProtectedMemoryProperties)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_provoking_vertex (PhysicalDeviceProvokingVertexFeaturesEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_provoking_vertex (PhysicalDeviceProvokingVertexPropertiesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_push_descriptor (PhysicalDevicePushDescriptorPropertiesKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_ray_query (PhysicalDeviceRayQueryFeaturesKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_ray_tracing_pipeline (PhysicalDeviceRayTracingPipelineFeaturesKHR)@@ -470,18 +479,21 @@ 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_EXT_vertex_attribute_divisor (PhysicalDeviceVertexAttributeDivisorPropertiesEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state (PhysicalDeviceVertexInputDynamicStateFeaturesEXT) import {-# SOURCE #-} Vulkan.Core12 (PhysicalDeviceVulkan11Features) import {-# SOURCE #-} Vulkan.Core12 (PhysicalDeviceVulkan11Properties) import {-# SOURCE #-} Vulkan.Core12 (PhysicalDeviceVulkan12Features) import {-# SOURCE #-} Vulkan.Core12 (PhysicalDeviceVulkan12Properties) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_vulkan_memory_model (PhysicalDeviceVulkanMemoryModelFeatures) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_workgroup_memory_explicit_layout (PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_ycbcr_2plane_444_formats (PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_ycbcr_image_arrays (PhysicalDeviceYcbcrImageArraysFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_zero_initialize_workgroup_memory (PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR) import {-# SOURCE #-} Vulkan.Core10.PipelineCache (PipelineCacheCreateInfo) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_blend_operation_advanced (PipelineColorBlendAdvancedStateCreateInfoEXT) import {-# SOURCE #-} Vulkan.Core10.Pipeline (PipelineColorBlendAttachmentState) import {-# SOURCE #-} Vulkan.Core10.Pipeline (PipelineColorBlendStateCreateInfo)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_color_write_enable (PipelineColorWriteCreateInfoEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_AMD_pipeline_compiler_control (PipelineCompilerControlCreateInfoAMD) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_framebuffer_mixed_samples (PipelineCoverageModulationStateCreateInfoNV) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_coverage_reduction_mode (PipelineCoverageReductionStateCreateInfoNV)@@ -505,6 +517,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_conservative_rasterization (PipelineRasterizationConservativeStateCreateInfoEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_depth_clip_enable (PipelineRasterizationDepthClipStateCreateInfoEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_line_rasterization (PipelineRasterizationLineStateCreateInfoEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_provoking_vertex (PipelineRasterizationProvokingVertexStateCreateInfoEXT) import {-# SOURCE #-} Vulkan.Core10.Pipeline (PipelineRasterizationStateCreateInfo) import {-# SOURCE #-} Vulkan.Extensions.VK_AMD_rasterization_order (PipelineRasterizationStateRasterizationOrderAMD) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_transform_feedback (PipelineRasterizationStateStreamCreateInfoEXT)@@ -627,7 +640,9 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_validation_features (ValidationFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_validation_flags (ValidationFlagsEXT) import {-# SOURCE #-} Vulkan.Core10.Pipeline (VertexInputAttributeDescription)+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_NN_vi_surface (ViSurfaceCreateInfoNN) import {-# SOURCE #-} Vulkan.Core10.Pipeline (Viewport)@@ -770,6 +785,7 @@   Extends CommandBufferBeginInfo DeviceGroupCommandBufferBeginInfo = ()   Extends CommandBufferInheritanceInfo CommandBufferInheritanceConditionalRenderingInfoEXT = ()   Extends CommandBufferInheritanceInfo CommandBufferInheritanceRenderPassTransformInfoQCOM = ()+  Extends CommandBufferInheritanceInfo CommandBufferInheritanceViewportScissorInfoNV = ()   Extends ComputePipelineCreateInfo PipelineCreationFeedbackCreateInfoEXT = ()   Extends ComputePipelineCreateInfo PipelineCompilerControlCreateInfoAMD = ()   Extends DescriptorPoolCreateInfo DescriptorPoolInlineUniformBlockCreateInfoEXT = ()@@ -850,6 +866,7 @@   Extends DeviceCreateInfo PhysicalDeviceCoherentMemoryFeaturesAMD = ()   Extends DeviceCreateInfo PhysicalDeviceCustomBorderColorFeaturesEXT = ()   Extends DeviceCreateInfo PhysicalDeviceExtendedDynamicStateFeaturesEXT = ()+  Extends DeviceCreateInfo PhysicalDeviceExtendedDynamicState2FeaturesEXT = ()   Extends DeviceCreateInfo PhysicalDeviceDiagnosticsConfigFeaturesNV = ()   Extends DeviceCreateInfo DeviceDiagnosticsConfigCreateInfoNV = ()   Extends DeviceCreateInfo PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR = ()@@ -863,7 +880,12 @@   Extends DeviceCreateInfo PhysicalDeviceShaderTerminateInvocationFeaturesKHR = ()   Extends DeviceCreateInfo PhysicalDeviceFragmentShadingRateEnumsFeaturesNV = ()   Extends DeviceCreateInfo PhysicalDeviceMutableDescriptorTypeFeaturesVALVE = ()+  Extends DeviceCreateInfo PhysicalDeviceVertexInputDynamicStateFeaturesEXT = ()+  Extends DeviceCreateInfo PhysicalDeviceColorWriteEnableFeaturesEXT = ()   Extends DeviceCreateInfo PhysicalDeviceSynchronization2FeaturesKHR = ()+  Extends DeviceCreateInfo PhysicalDeviceInheritedViewportScissorFeaturesNV = ()+  Extends DeviceCreateInfo PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT = ()+  Extends DeviceCreateInfo PhysicalDeviceProvokingVertexFeaturesEXT = ()   Extends DeviceQueueCreateInfo DeviceQueueGlobalPriorityCreateInfoEXT = ()   Extends FenceCreateInfo ExportFenceCreateInfo = ()   Extends FenceCreateInfo ExportFenceWin32HandleInfoKHR = ()@@ -985,6 +1007,7 @@   Extends PhysicalDeviceFeatures2 PhysicalDeviceCoherentMemoryFeaturesAMD = ()   Extends PhysicalDeviceFeatures2 PhysicalDeviceCustomBorderColorFeaturesEXT = ()   Extends PhysicalDeviceFeatures2 PhysicalDeviceExtendedDynamicStateFeaturesEXT = ()+  Extends PhysicalDeviceFeatures2 PhysicalDeviceExtendedDynamicState2FeaturesEXT = ()   Extends PhysicalDeviceFeatures2 PhysicalDeviceDiagnosticsConfigFeaturesNV = ()   Extends PhysicalDeviceFeatures2 PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR = ()   Extends PhysicalDeviceFeatures2 PhysicalDeviceRobustness2FeaturesEXT = ()@@ -997,7 +1020,12 @@   Extends PhysicalDeviceFeatures2 PhysicalDeviceShaderTerminateInvocationFeaturesKHR = ()   Extends PhysicalDeviceFeatures2 PhysicalDeviceFragmentShadingRateEnumsFeaturesNV = ()   Extends PhysicalDeviceFeatures2 PhysicalDeviceMutableDescriptorTypeFeaturesVALVE = ()+  Extends PhysicalDeviceFeatures2 PhysicalDeviceVertexInputDynamicStateFeaturesEXT = ()+  Extends PhysicalDeviceFeatures2 PhysicalDeviceColorWriteEnableFeaturesEXT = ()   Extends PhysicalDeviceFeatures2 PhysicalDeviceSynchronization2FeaturesKHR = ()+  Extends PhysicalDeviceFeatures2 PhysicalDeviceInheritedViewportScissorFeaturesNV = ()+  Extends PhysicalDeviceFeatures2 PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT = ()+  Extends PhysicalDeviceFeatures2 PhysicalDeviceProvokingVertexFeaturesEXT = ()   Extends PhysicalDeviceImageFormatInfo2 PhysicalDeviceExternalImageFormatInfo = ()   Extends PhysicalDeviceImageFormatInfo2 ImageFormatListCreateInfo = ()   Extends PhysicalDeviceImageFormatInfo2 PhysicalDeviceImageDrmFormatModifierInfoEXT = ()@@ -1050,9 +1078,11 @@   Extends PhysicalDeviceProperties2 PhysicalDevicePortabilitySubsetPropertiesKHR = ()   Extends PhysicalDeviceProperties2 PhysicalDeviceFragmentShadingRatePropertiesKHR = ()   Extends PhysicalDeviceProperties2 PhysicalDeviceFragmentShadingRateEnumsPropertiesNV = ()+  Extends PhysicalDeviceProperties2 PhysicalDeviceProvokingVertexPropertiesEXT = ()   Extends PhysicalDeviceSurfaceInfo2KHR SurfaceFullScreenExclusiveInfoEXT = ()   Extends PhysicalDeviceSurfaceInfo2KHR SurfaceFullScreenExclusiveWin32InfoEXT = ()   Extends PipelineColorBlendStateCreateInfo PipelineColorBlendAdvancedStateCreateInfoEXT = ()+  Extends PipelineColorBlendStateCreateInfo PipelineColorWriteCreateInfoEXT = ()   Extends PipelineMultisampleStateCreateInfo PipelineCoverageToColorStateCreateInfoNV = ()   Extends PipelineMultisampleStateCreateInfo PipelineSampleLocationsStateCreateInfoEXT = ()   Extends PipelineMultisampleStateCreateInfo PipelineCoverageModulationStateCreateInfoNV = ()@@ -1062,6 +1092,7 @@   Extends PipelineRasterizationStateCreateInfo PipelineRasterizationStateStreamCreateInfoEXT = ()   Extends PipelineRasterizationStateCreateInfo PipelineRasterizationDepthClipStateCreateInfoEXT = ()   Extends PipelineRasterizationStateCreateInfo PipelineRasterizationLineStateCreateInfoEXT = ()+  Extends PipelineRasterizationStateCreateInfo PipelineRasterizationProvokingVertexStateCreateInfoEXT = ()   Extends PipelineShaderStageCreateInfo PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT = ()   Extends PipelineTessellationStateCreateInfo PipelineTessellationDomainOriginStateCreateInfo = ()   Extends PipelineVertexInputStateCreateInfo PipelineVertexInputDivisorStateCreateInfoEXT = ()@@ -1468,6 +1499,7 @@   STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT -> go @PhysicalDeviceCustomBorderColorPropertiesEXT   STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT -> go @PhysicalDeviceCustomBorderColorFeaturesEXT   STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT -> go @PhysicalDeviceExtendedDynamicStateFeaturesEXT+  STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT -> go @PhysicalDeviceExtendedDynamicState2FeaturesEXT   STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM -> go @RenderPassTransformBeginInfoQCOM   STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM -> go @CopyCommandTransformInfoQCOM   STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM -> go @CommandBufferInheritanceRenderPassTransformInfoQCOM@@ -1492,9 +1524,18 @@   STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV -> go @PipelineFragmentShadingRateEnumStateCreateInfoNV   STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE -> go @PhysicalDeviceMutableDescriptorTypeFeaturesVALVE   STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE -> go @MutableDescriptorTypeCreateInfoVALVE+  STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT -> go @PhysicalDeviceVertexInputDynamicStateFeaturesEXT+  STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT -> go @PhysicalDeviceColorWriteEnableFeaturesEXT+  STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT -> go @PipelineColorWriteCreateInfoEXT   STRUCTURE_TYPE_MEMORY_BARRIER_2_KHR -> go @MemoryBarrier2KHR   STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV -> go @QueueFamilyCheckpointProperties2NV   STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES_KHR -> go @PhysicalDeviceSynchronization2FeaturesKHR+  STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV -> go @PhysicalDeviceInheritedViewportScissorFeaturesNV+  STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV -> go @CommandBufferInheritanceViewportScissorInfoNV+  STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT -> go @PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT+  STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT -> go @PhysicalDeviceProvokingVertexFeaturesEXT+  STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT -> go @PhysicalDeviceProvokingVertexPropertiesEXT+  STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT -> go @PipelineRasterizationProvokingVertexStateCreateInfoEXT   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@@ -1791,6 +1832,7 @@ {-# complete (::&) :: PhysicalDeviceCustomBorderColorPropertiesEXT #-} {-# complete (::&) :: PhysicalDeviceCustomBorderColorFeaturesEXT #-} {-# complete (::&) :: PhysicalDeviceExtendedDynamicStateFeaturesEXT #-}+{-# complete (::&) :: PhysicalDeviceExtendedDynamicState2FeaturesEXT #-} {-# complete (::&) :: RenderPassTransformBeginInfoQCOM #-} {-# complete (::&) :: CopyCommandTransformInfoQCOM #-} {-# complete (::&) :: CommandBufferInheritanceRenderPassTransformInfoQCOM #-}@@ -1815,9 +1857,18 @@ {-# complete (::&) :: PipelineFragmentShadingRateEnumStateCreateInfoNV #-} {-# complete (::&) :: PhysicalDeviceMutableDescriptorTypeFeaturesVALVE #-} {-# complete (::&) :: MutableDescriptorTypeCreateInfoVALVE #-}+{-# complete (::&) :: PhysicalDeviceVertexInputDynamicStateFeaturesEXT #-}+{-# complete (::&) :: PhysicalDeviceColorWriteEnableFeaturesEXT #-}+{-# complete (::&) :: PipelineColorWriteCreateInfoEXT #-} {-# complete (::&) :: MemoryBarrier2KHR #-} {-# complete (::&) :: QueueFamilyCheckpointProperties2NV #-} {-# complete (::&) :: PhysicalDeviceSynchronization2FeaturesKHR #-}+{-# complete (::&) :: PhysicalDeviceInheritedViewportScissorFeaturesNV #-}+{-# complete (::&) :: CommandBufferInheritanceViewportScissorInfoNV #-}+{-# complete (::&) :: PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT #-}+{-# complete (::&) :: PhysicalDeviceProvokingVertexFeaturesEXT #-}+{-# complete (::&) :: PhysicalDeviceProvokingVertexPropertiesEXT #-}+{-# complete (::&) :: PipelineRasterizationProvokingVertexStateCreateInfoEXT #-}  -- | View the head and tail of a 'Chain', see '::&' --
src/Vulkan/Core10.hs view
@@ -69,7 +69,7 @@ import Vulkan.Core10.Shader import Vulkan.Core10.SparseResourceMemoryManagement import Data.Word (Word32)-import Vulkan.Version (pattern MAKE_VERSION)+import Vulkan.Version (pattern MAKE_API_VERSION) pattern API_VERSION_1_0 :: Word32-pattern API_VERSION_1_0 = MAKE_VERSION 1 0 0+pattern API_VERSION_1_0 = MAKE_API_VERSION 1 0 0 
src/Vulkan/Core10/AllocationCallbacks.hs view
@@ -58,6 +58,8 @@ -- 'Vulkan.Core10.BufferView.createBufferView', -- 'Vulkan.Core10.CommandPool.createCommandPool', -- 'Vulkan.Core10.Pipeline.createComputePipelines',+-- 'Vulkan.Extensions.VK_NVX_binary_import.createCuFunctionNVX',+-- 'Vulkan.Extensions.VK_NVX_binary_import.createCuModuleNVX', -- 'Vulkan.Extensions.VK_EXT_debug_report.createDebugReportCallbackEXT', -- 'Vulkan.Extensions.VK_EXT_debug_utils.createDebugUtilsMessengerEXT', -- 'Vulkan.Extensions.VK_KHR_deferred_host_operations.createDeferredOperationKHR',@@ -101,6 +103,8 @@ -- 'Vulkan.Extensions.VK_KHR_swapchain.createSwapchainKHR', -- 'Vulkan.Extensions.VK_EXT_validation_cache.createValidationCacheEXT', -- 'Vulkan.Extensions.VK_NN_vi_surface.createViSurfaceNN',+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCreateVideoSessionKHR vkCreateVideoSessionKHR>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCreateVideoSessionParametersKHR vkCreateVideoSessionParametersKHR>, -- 'Vulkan.Extensions.VK_KHR_wayland_surface.createWaylandSurfaceKHR', -- 'Vulkan.Extensions.VK_KHR_win32_surface.createWin32SurfaceKHR', -- 'Vulkan.Extensions.VK_KHR_xcb_surface.createXcbSurfaceKHR',@@ -110,6 +114,8 @@ -- 'Vulkan.Core10.Buffer.destroyBuffer', -- 'Vulkan.Core10.BufferView.destroyBufferView', -- 'Vulkan.Core10.CommandPool.destroyCommandPool',+-- 'Vulkan.Extensions.VK_NVX_binary_import.destroyCuFunctionNVX',+-- 'Vulkan.Extensions.VK_NVX_binary_import.destroyCuModuleNVX', -- 'Vulkan.Extensions.VK_EXT_debug_report.destroyDebugReportCallbackEXT', -- 'Vulkan.Extensions.VK_EXT_debug_utils.destroyDebugUtilsMessengerEXT', -- 'Vulkan.Extensions.VK_KHR_deferred_host_operations.destroyDeferredOperationKHR',@@ -138,6 +144,8 @@ -- 'Vulkan.Extensions.VK_KHR_surface.destroySurfaceKHR', -- 'Vulkan.Extensions.VK_KHR_swapchain.destroySwapchainKHR', -- 'Vulkan.Extensions.VK_EXT_validation_cache.destroyValidationCacheEXT',+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkDestroyVideoSessionKHR vkDestroyVideoSessionKHR>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkDestroyVideoSessionParametersKHR vkDestroyVideoSessionParametersKHR>, -- 'Vulkan.Core10.Memory.freeMemory', -- 'Vulkan.Extensions.VK_EXT_display_control.registerDeviceEventEXT', -- 'Vulkan.Extensions.VK_EXT_display_control.registerDisplayEventEXT'
src/Vulkan/Core10/Buffer.hs view
@@ -368,8 +368,10 @@ --     'Vulkan.Extensions.VK_EXT_buffer_device_address.BufferDeviceAddressCreateInfoEXT', --     'Vulkan.Core12.Promoted_From_VK_KHR_buffer_device_address.BufferOpaqueCaptureAddressCreateInfo', --     'Vulkan.Extensions.VK_NV_dedicated_allocation.DedicatedAllocationBufferCreateInfoNV',+--     'Vulkan.Core11.Promoted_From_VK_KHR_external_memory.ExternalMemoryBufferCreateInfo',+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoProfileKHR VkVideoProfileKHR>, --     or---     'Vulkan.Core11.Promoted_From_VK_KHR_external_memory.ExternalMemoryBufferCreateInfo'+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoProfilesKHR VkVideoProfilesKHR> -- -- -   #VUID-VkBufferCreateInfo-sType-unique# The @sType@ value of each --     struct in the @pNext@ chain /must/ be unique@@ -413,9 +415,9 @@     -- specifying the sharing mode of the buffer when it will be accessed by     -- multiple queue families.     sharingMode :: SharingMode-  , -- | @pQueueFamilyIndices@ is a list of queue families that will access this-    -- buffer (ignored if @sharingMode@ is not-    -- 'Vulkan.Core10.Enums.SharingMode.SHARING_MODE_CONCURRENT').+  , -- | @pQueueFamilyIndices@ is a pointer to an array of queue families that+    -- will access this buffer. It is ignored if @sharingMode@ is not+    -- 'Vulkan.Core10.Enums.SharingMode.SHARING_MODE_CONCURRENT'.     queueFamilyIndices :: Vector Word32   }   deriving (Typeable)
src/Vulkan/Core10/BufferView.hs view
@@ -107,7 +107,7 @@                  => -- | @device@ is the logical device that creates the buffer view.                     Device                  -> -- | @pCreateInfo@ is a pointer to a 'BufferViewCreateInfo' structure-                    -- containing parameters to be used to create the buffer.+                    -- containing parameters to be used to create the buffer view.                     BufferViewCreateInfo                  -> -- | @pAllocator@ controls host memory allocation as described in the                     -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>
src/Vulkan/Core10/CommandBuffer.hs view
@@ -75,6 +75,7 @@ import Vulkan.Core10.Handles (CommandBuffer(CommandBuffer)) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_conditional_rendering (CommandBufferInheritanceConditionalRenderingInfoEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_QCOM_render_pass_transform (CommandBufferInheritanceRenderPassTransformInfoQCOM)+import {-# SOURCE #-} Vulkan.Extensions.VK_NV_inherited_viewport_scissor (CommandBufferInheritanceViewportScissorInfoNV) import Vulkan.Core10.Enums.CommandBufferLevel (CommandBufferLevel) import Vulkan.Core10.Enums.CommandBufferResetFlagBits (CommandBufferResetFlagBits(..)) import Vulkan.Core10.Enums.CommandBufferResetFlagBits (CommandBufferResetFlags)@@ -131,12 +132,18 @@ -- -- = Description ----- 'allocateCommandBuffers' /can/ be used to create multiple command--- buffers. If the creation of any of those command buffers fails, the--- implementation /must/ destroy all successfully created command buffer+-- 'allocateCommandBuffers' /can/ be used to allocate multiple command+-- buffers. If the allocation of any of those command buffers fails, the+-- implementation /must/ free all successfully allocated command buffer -- objects from this command, set all entries of the @pCommandBuffers@ -- array to @NULL@ and return the error. --+-- Note+--+-- Filling @pCommandBuffers@ with @NULL@ values on failure is an exception+-- to the default error behavior that output parameters will have undefined+-- contents.+-- -- When command buffers are first allocated, they are in the -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle initial state>. --@@ -324,8 +331,8 @@ --     is a secondary command buffer and either the @occlusionQueryEnable@ --     member of the @pInheritanceInfo@ member of @pBeginInfo@ is --     'Vulkan.Core10.FundamentalTypes.FALSE', or the precise occlusion---     queries feature is not enabled, the @queryFlags@ member of the---     @pInheritanceInfo@ member @pBeginInfo@ /must/ not contain+--     queries feature is not enabled, then+--     @pBeginInfo->pInheritanceInfo->queryFlags@ /must/ not contain --     'Vulkan.Core10.Enums.QueryControlFlagBits.QUERY_CONTROL_PRECISE_BIT' -- -- -   #VUID-vkBeginCommandBuffer-commandBuffer-02840# If @commandBuffer@@@ -371,8 +378,9 @@                    => -- | @commandBuffer@ is the handle of the command buffer which is to be put                       -- in the recording state.                       CommandBuffer-                   -> -- | @pBeginInfo@ points to a 'CommandBufferBeginInfo' structure defining-                      -- additional information about how the command buffer begins recording.+                   -> -- | @pBeginInfo@ is a pointer to a 'CommandBufferBeginInfo' structure+                      -- defining additional information about how the command buffer begins+                      -- recording.                       (CommandBufferBeginInfo a)                    -> io () beginCommandBuffer commandBuffer beginInfo = liftIO . evalContT $ do@@ -408,7 +416,9 @@ -- If there was an error during recording, the application will be notified -- by an unsuccessful return code returned by 'endCommandBuffer'. If the -- application wishes to further use the command buffer, the command buffer--- /must/ be reset. The command buffer /must/ have been in the+-- /must/ be reset.+--+-- The command buffer /must/ have been in the -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>, -- and is moved to the -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle executable state>.@@ -638,7 +648,7 @@   -- | VkCommandBufferInheritanceInfo - Structure specifying command buffer--- inheritance info+-- inheritance information -- -- == Valid Usage --@@ -679,9 +689,10 @@ -- -   #VUID-VkCommandBufferInheritanceInfo-pNext-pNext# Each @pNext@ --     member of any structure (including this one) in the @pNext@ chain --     /must/ be either @NULL@ or a pointer to a valid instance of---     'Vulkan.Extensions.VK_EXT_conditional_rendering.CommandBufferInheritanceConditionalRenderingInfoEXT'+--     'Vulkan.Extensions.VK_EXT_conditional_rendering.CommandBufferInheritanceConditionalRenderingInfoEXT',+--     'Vulkan.Extensions.VK_QCOM_render_pass_transform.CommandBufferInheritanceRenderPassTransformInfoQCOM', --     or---     'Vulkan.Extensions.VK_QCOM_render_pass_transform.CommandBufferInheritanceRenderPassTransformInfoQCOM'+--     'Vulkan.Extensions.VK_NV_inherited_viewport_scissor.CommandBufferInheritanceViewportScissorInfoNV' -- -- -   #VUID-VkCommandBufferInheritanceInfo-sType-unique# The @sType@ value --     of each struct in the @pNext@ chain /must/ be unique@@ -768,6 +779,7 @@   getNext CommandBufferInheritanceInfo{..} = next   extends :: forall e b proxy. Typeable e => proxy e -> (Extends CommandBufferInheritanceInfo e => b) -> Maybe b   extends _ f+    | Just Refl <- eqT @e @CommandBufferInheritanceViewportScissorInfoNV = Just f     | Just Refl <- eqT @e @CommandBufferInheritanceRenderPassTransformInfoQCOM = Just f     | Just Refl <- eqT @e @CommandBufferInheritanceConditionalRenderingInfoEXT = Just f     | otherwise = Nothing
src/Vulkan/Core10/CommandBufferBuilding.hs view
@@ -325,13 +325,47 @@ -- -   #VUID-vkCmdBindPipeline-pipelineBindPoint-02392# If --     @pipelineBindPoint@ is --     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_RAY_TRACING_KHR',---     the @pipeline@ /must/ be a ray tracing pipeline+--     @pipeline@ /must/ be a ray tracing pipeline ----- -   #VUID-vkCmdBindPipeline-pipeline-03382# The @pipeline@ /must/ not---     have been created with+-- -   #VUID-vkCmdBindPipeline-pipeline-03382# @pipeline@ /must/ not have+--     been created with --     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_LIBRARY_BIT_KHR' --     set --+-- -   #VUID-vkCmdBindPipeline-commandBuffer-04808# If @commandBuffer@ is a+--     secondary command buffer with+--     'Vulkan.Extensions.VK_NV_inherited_viewport_scissor.CommandBufferInheritanceViewportScissorInfoNV'::@viewportScissor2D@+--     enabled and @pipelineBindPoint@ is+--     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS',+--     then the @pipeline@ /must/ have been created with+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+--     or 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT', and+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT'+--     or 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR' enabled.+--+-- -   #VUID-vkCmdBindPipeline-commandBuffer-04809# If @commandBuffer@ is a+--     secondary command buffer with+--     'Vulkan.Extensions.VK_NV_inherited_viewport_scissor.CommandBufferInheritanceViewportScissorInfoNV'::@viewportScissor2D@+--     enabled and @pipelineBindPoint@ is+--     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'+--     and @pipeline@ was created with+--     'Vulkan.Extensions.VK_EXT_discard_rectangles.PipelineDiscardRectangleStateCreateInfoEXT'+--     structure and its @discardRectangleCount@ member is not @0@, then+--     the pipeline /must/ have been created with+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_EXT'+--     enabled.+--+-- -   #VUID-vkCmdBindPipeline-pipelineBindPoint-04881# If+--     @pipelineBindPoint@ is+--     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'+--     and the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-provokingVertexModePerPipeline provokingVertexModePerPipeline>+--     limit is 'Vulkan.Core10.FundamentalTypes.FALSE', then pipeline’s+--     'Vulkan.Extensions.VK_EXT_provoking_vertex.PipelineRasterizationProvokingVertexStateCreateInfoEXT'::@provokingVertexMode@+--     /must/ be the same as that of any other pipelines previously bound+--     to this bind point within the current renderpass instance, including+--     any pipeline already bound when beginning the renderpass instance+-- -- == Valid Usage (Implicit) -- -- -   #VUID-vkCmdBindPipeline-commandBuffer-parameter# @commandBuffer@@@ -430,6 +464,11 @@ --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multiViewport multiple viewports> --     feature is not enabled, @viewportCount@ /must/ be @1@ --+-- -   #VUID-vkCmdSetViewport-commandBuffer-04821# @commandBuffer@ /must/+--     not have+--     'Vulkan.Extensions.VK_NV_inherited_viewport_scissor.CommandBufferInheritanceViewportScissorInfoNV'::@viewportScissor2D@+--     enabled.+-- -- == Valid Usage (Implicit) -- -- -   #VUID-vkCmdSetViewport-commandBuffer-parameter# @commandBuffer@@@ -542,6 +581,11 @@ --     @extent.height@) /must/ not cause a signed integer addition overflow --     for any element of @pScissors@ --+-- -   #VUID-vkCmdSetScissor-viewportScissor2D-04789# If this command is+--     recorded in a secondary command buffer with+--     'Vulkan.Extensions.VK_NV_inherited_viewport_scissor.CommandBufferInheritanceViewportScissorInfoNV'::@viewportScissor2D@+--     enabled, then this function /must/ not be called.+-- -- == Valid Usage (Implicit) -- -- -   #VUID-vkCmdSetScissor-commandBuffer-parameter# @commandBuffer@@@ -685,8 +729,9 @@ -- -- = Description ----- If @depthBiasEnable@ is 'Vulkan.Core10.FundamentalTypes.FALSE', no depth--- bias is applied and the fragment’s depth values are unchanged.+-- If @depthBiasEnable@ is 'Vulkan.Core10.FundamentalTypes.FALSE' at draw+-- time, no depth bias is applied and the fragment’s depth values are+-- unchanged. -- -- @depthBiasSlopeFactor@ scales the maximum depth slope of the polygon, -- and @depthBiasConstantFactor@ scales the minimum resolvable difference@@ -1245,7 +1290,7 @@ -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility Pipeline Layout Compatibility>. -- -- A compatible descriptor set /must/ be bound for all set numbers that any--- shaders in a pipeline access, at the time that a draw or dispatch+-- shaders in a pipeline access, at the time that a drawing or dispatching -- command is recorded to execute using that pipeline. However, if none of -- the shaders in a pipeline statically use any bindings with a particular -- set number, then no descriptor set need be bound for that set number,@@ -1424,7 +1469,7 @@                          ("firstSet" ::: Word32)                       -> -- | @pDescriptorSets@ is a pointer to an array of handles to                          -- 'Vulkan.Core10.Handles.DescriptorSet' objects describing the descriptor-                         -- sets to write to.+                         -- sets to bind to.                          ("descriptorSets" ::: Vector DescriptorSet)                       -> -- | @pDynamicOffsets@ is a pointer to an array of @uint32_t@ values                          -- specifying dynamic offsets.@@ -1565,7 +1610,7 @@ -- the offset indicated by @pOffsets@[i] from the start of the buffer -- @pBuffers@[i]. All vertex input attributes that use each of these -- bindings will use these updated addresses in their address calculations--- for subsequent draw commands. If the+-- for subsequent drawing commands. If the -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-nullDescriptor nullDescriptor> -- feature is enabled, elements of @pBuffers@ /can/ be -- 'Vulkan.Core10.APIConstants.NULL_HANDLE', and /can/ be used by the@@ -1806,9 +1851,9 @@ -- -   #VUID-vkCmdDraw-commandBuffer-02701# If the --     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind --     point used by this command requires any dynamic state, that state---     /must/ have been set for @commandBuffer@, and done so after any---     previously bound pipeline with the corresponding state not specified---     as dynamic+--     /must/ have been set or inherited for @commandBuffer@, and done so+--     after any previously bound pipeline with the corresponding state not+--     specified as dynamic -- -- -   #VUID-vkCmdDraw-None-02859# There /must/ not have been any calls to --     dynamic state setting commands for any state not specified as@@ -1970,7 +2015,7 @@ --     dynamic state enabled, then --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT' --     /must/ have been called in the current command buffer prior to this---     draw command, and the @viewportCount@ parameter of+--     drawing command, and the @viewportCount@ parameter of --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT' --     /must/ match the --     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@scissorCount@@@ -1984,7 +2029,7 @@ --     dynamic state enabled, then --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT' --     /must/ have been called in the current command buffer prior to this---     draw command, and the @scissorCount@ parameter of+--     drawing command, and the @scissorCount@ parameter of --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT' --     /must/ match the --     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@viewportCount@@@ -2000,7 +2045,7 @@ --     and --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT' --     /must/ have been called in the current command buffer prior to this---     draw command, and the @viewportCount@ parameter of+--     drawing command, and the @viewportCount@ parameter of --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT' --     /must/ match the @scissorCount@ parameter of --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'@@ -2083,7 +2128,7 @@ --     dynamic state enabled then --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopologyEXT' --     /must/ have been called in the current command buffer prior to this---     draw command, and the @primitiveTopology@ parameter of+--     drawing command, and the @primitiveTopology@ parameter of --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopologyEXT' --     /must/ be of the same --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#drawing-primitive-topology-class topology class>@@ -2091,6 +2136,47 @@ --     'Vulkan.Core10.Pipeline.PipelineInputAssemblyStateCreateInfo'::@topology@ --     state --+-- -   #VUID-vkCmdDraw-None-04875# If the bound graphics pipeline state was+--     created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetPatchControlPointsEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDraw-None-04876# If the bound graphics pipeline state was+--     created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnableEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDraw-None-04877# If the bound graphics pipeline state was+--     created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS_ENABLE_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnableEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDraw-logicOp-04878# If the bound graphics pipeline state+--     was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LOGIC_OP_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetLogicOpEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command and the @logicOp@ /must/ be a valid+--     'Vulkan.Core10.Enums.LogicOp.LogicOp' value+--+-- -   #VUID-vkCmdDraw-None-04879# If the bound graphics pipeline state was+--     created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetPrimitiveRestartEnableEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+-- -- -   #VUID-vkCmdDraw-primitiveFragmentShadingRateWithMultipleViewports-04552# --     If the --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports primitiveFragmentShadingRateWithMultipleViewports>@@ -2102,7 +2188,7 @@ --     then --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT' --     /must/ have been called in the current command buffer prior to this---     draw command, and the @viewportCount@ parameter of+--     drawing command, and the @viewportCount@ parameter of --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT' --     /must/ be @1@ --@@ -2123,6 +2209,16 @@ --     /must/ be the same as the current subpass color and\/or --     depth\/stencil attachments --+-- -   #VUID-vkCmdDraw-pStrides-04884# If the bound graphics pipeline was+--     created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT'+--     dynamic state enabled, then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command, and the @pStrides@ parameter of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT'+--     /must/ not be @NULL@+-- -- -   #VUID-vkCmdDraw-commandBuffer-02712# If @commandBuffer@ is a --     protected command buffer, any resource written to by the --     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind@@ -2132,7 +2228,7 @@ --     protected command buffer, pipeline stages other than the --     framebuffer-space and compute stages in the --     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind---     point /must/ not write to any resource+--     point used by this command /must/ not write to any resource -- -- -   #VUID-vkCmdDraw-commandBuffer-04617# If any of the shader stages of --     the 'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind@@ -2224,7 +2320,7 @@   "dynamic" mkVkCmdDrawIndexed   :: FunPtr (Ptr CommandBuffer_T -> Word32 -> Word32 -> Word32 -> Int32 -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Word32 -> Word32 -> Int32 -> Word32 -> IO () --- | vkCmdDrawIndexed - Issue an indexed draw into a command buffer+-- | vkCmdDrawIndexed - Draw primitives with indexed vertices -- -- = Description --@@ -2351,9 +2447,9 @@ -- -   #VUID-vkCmdDrawIndexed-commandBuffer-02701# If the --     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind --     point used by this command requires any dynamic state, that state---     /must/ have been set for @commandBuffer@, and done so after any---     previously bound pipeline with the corresponding state not specified---     as dynamic+--     /must/ have been set or inherited for @commandBuffer@, and done so+--     after any previously bound pipeline with the corresponding state not+--     specified as dynamic -- -- -   #VUID-vkCmdDrawIndexed-None-02859# There /must/ not have been any --     calls to dynamic state setting commands for any state not specified@@ -2520,7 +2616,7 @@ --     dynamic state enabled, then --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT' --     /must/ have been called in the current command buffer prior to this---     draw command, and the @viewportCount@ parameter of+--     drawing command, and the @viewportCount@ parameter of --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT' --     /must/ match the --     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@scissorCount@@@ -2534,7 +2630,7 @@ --     dynamic state enabled, then --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT' --     /must/ have been called in the current command buffer prior to this---     draw command, and the @scissorCount@ parameter of+--     drawing command, and the @scissorCount@ parameter of --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT' --     /must/ match the --     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@viewportCount@@@ -2550,7 +2646,7 @@ --     and --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT' --     /must/ have been called in the current command buffer prior to this---     draw command, and the @viewportCount@ parameter of+--     drawing command, and the @viewportCount@ parameter of --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT' --     /must/ match the @scissorCount@ parameter of --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'@@ -2633,7 +2729,7 @@ --     dynamic state enabled then --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopologyEXT' --     /must/ have been called in the current command buffer prior to this---     draw command, and the @primitiveTopology@ parameter of+--     drawing command, and the @primitiveTopology@ parameter of --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopologyEXT' --     /must/ be of the same --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#drawing-primitive-topology-class topology class>@@ -2641,6 +2737,47 @@ --     'Vulkan.Core10.Pipeline.PipelineInputAssemblyStateCreateInfo'::@topology@ --     state --+-- -   #VUID-vkCmdDrawIndexed-None-04875# If the bound graphics pipeline+--     state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetPatchControlPointsEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawIndexed-None-04876# If the bound graphics pipeline+--     state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnableEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawIndexed-None-04877# If the bound graphics pipeline+--     state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS_ENABLE_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnableEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawIndexed-logicOp-04878# If the bound graphics pipeline+--     state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LOGIC_OP_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetLogicOpEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command and the @logicOp@ /must/ be a valid+--     'Vulkan.Core10.Enums.LogicOp.LogicOp' value+--+-- -   #VUID-vkCmdDrawIndexed-None-04879# If the bound graphics pipeline+--     state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetPrimitiveRestartEnableEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+-- -- -   #VUID-vkCmdDrawIndexed-primitiveFragmentShadingRateWithMultipleViewports-04552# --     If the --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports primitiveFragmentShadingRateWithMultipleViewports>@@ -2652,7 +2789,7 @@ --     then --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT' --     /must/ have been called in the current command buffer prior to this---     draw command, and the @viewportCount@ parameter of+--     drawing command, and the @viewportCount@ parameter of --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT' --     /must/ be @1@ --@@ -2673,6 +2810,16 @@ --     /must/ be the same as the current subpass color and\/or --     depth\/stencil attachments --+-- -   #VUID-vkCmdDrawIndexed-pStrides-04884# If the bound graphics+--     pipeline was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT'+--     dynamic state enabled, then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command, and the @pStrides@ parameter of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT'+--     /must/ not be @NULL@+-- -- -   #VUID-vkCmdDrawIndexed-commandBuffer-02712# If @commandBuffer@ is a --     protected command buffer, any resource written to by the --     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind@@ -2682,7 +2829,7 @@ --     protected command buffer, pipeline stages other than the --     framebuffer-space and compute stages in the --     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind---     point /must/ not write to any resource+--     point used by this command /must/ not write to any resource -- -- -   #VUID-vkCmdDrawIndexed-commandBuffer-04617# If any of the shader --     stages of the 'Vulkan.Core10.Handles.Pipeline' bound to the pipeline@@ -2783,7 +2930,7 @@   "dynamic" mkVkCmdDrawIndirect   :: FunPtr (Ptr CommandBuffer_T -> Buffer -> DeviceSize -> Word32 -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> Buffer -> DeviceSize -> Word32 -> Word32 -> IO () --- | vkCmdDrawIndirect - Issue an indirect draw into a command buffer+-- | vkCmdDrawIndirect - Draw primitives with indirect parameters -- -- = Description --@@ -2895,9 +3042,9 @@ -- -   #VUID-vkCmdDrawIndirect-commandBuffer-02701# If the --     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind --     point used by this command requires any dynamic state, that state---     /must/ have been set for @commandBuffer@, and done so after any---     previously bound pipeline with the corresponding state not specified---     as dynamic+--     /must/ have been set or inherited for @commandBuffer@, and done so+--     after any previously bound pipeline with the corresponding state not+--     specified as dynamic -- -- -   #VUID-vkCmdDrawIndirect-None-02859# There /must/ not have been any --     calls to dynamic state setting commands for any state not specified@@ -3064,7 +3211,7 @@ --     dynamic state enabled, then --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT' --     /must/ have been called in the current command buffer prior to this---     draw command, and the @viewportCount@ parameter of+--     drawing command, and the @viewportCount@ parameter of --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT' --     /must/ match the --     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@scissorCount@@@ -3078,7 +3225,7 @@ --     dynamic state enabled, then --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT' --     /must/ have been called in the current command buffer prior to this---     draw command, and the @scissorCount@ parameter of+--     drawing command, and the @scissorCount@ parameter of --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT' --     /must/ match the --     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@viewportCount@@@ -3094,7 +3241,7 @@ --     and --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT' --     /must/ have been called in the current command buffer prior to this---     draw command, and the @viewportCount@ parameter of+--     drawing command, and the @viewportCount@ parameter of --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT' --     /must/ match the @scissorCount@ parameter of --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'@@ -3177,7 +3324,7 @@ --     dynamic state enabled then --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopologyEXT' --     /must/ have been called in the current command buffer prior to this---     draw command, and the @primitiveTopology@ parameter of+--     drawing command, and the @primitiveTopology@ parameter of --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopologyEXT' --     /must/ be of the same --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#drawing-primitive-topology-class topology class>@@ -3185,6 +3332,47 @@ --     'Vulkan.Core10.Pipeline.PipelineInputAssemblyStateCreateInfo'::@topology@ --     state --+-- -   #VUID-vkCmdDrawIndirect-None-04875# If the bound graphics pipeline+--     state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetPatchControlPointsEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawIndirect-None-04876# If the bound graphics pipeline+--     state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnableEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawIndirect-None-04877# If the bound graphics pipeline+--     state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS_ENABLE_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnableEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawIndirect-logicOp-04878# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LOGIC_OP_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetLogicOpEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command and the @logicOp@ /must/ be a valid+--     'Vulkan.Core10.Enums.LogicOp.LogicOp' value+--+-- -   #VUID-vkCmdDrawIndirect-None-04879# If the bound graphics pipeline+--     state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetPrimitiveRestartEnableEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+-- -- -   #VUID-vkCmdDrawIndirect-primitiveFragmentShadingRateWithMultipleViewports-04552# --     If the --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports primitiveFragmentShadingRateWithMultipleViewports>@@ -3196,7 +3384,7 @@ --     then --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT' --     /must/ have been called in the current command buffer prior to this---     draw command, and the @viewportCount@ parameter of+--     drawing command, and the @viewportCount@ parameter of --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT' --     /must/ be @1@ --@@ -3217,6 +3405,16 @@ --     /must/ be the same as the current subpass color and\/or --     depth\/stencil attachments --+-- -   #VUID-vkCmdDrawIndirect-pStrides-04884# If the bound graphics+--     pipeline was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT'+--     dynamic state enabled, then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command, and the @pStrides@ parameter of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT'+--     /must/ not be @NULL@+-- -- -   #VUID-vkCmdDrawIndirect-None-04007# All vertex input bindings --     accessed via vertex input variables declared in the vertex shader --     entry point’s interface /must/ have either valid or@@ -3352,7 +3550,8 @@   "dynamic" mkVkCmdDrawIndexedIndirect   :: FunPtr (Ptr CommandBuffer_T -> Buffer -> DeviceSize -> Word32 -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> Buffer -> DeviceSize -> Word32 -> Word32 -> IO () --- | vkCmdDrawIndexedIndirect - Perform an indexed indirect draw+-- | vkCmdDrawIndexedIndirect - Draw primitives with indirect parameters and+-- indexed vertices -- -- = Description --@@ -3466,9 +3665,9 @@ -- -   #VUID-vkCmdDrawIndexedIndirect-commandBuffer-02701# If the --     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind --     point used by this command requires any dynamic state, that state---     /must/ have been set for @commandBuffer@, and done so after any---     previously bound pipeline with the corresponding state not specified---     as dynamic+--     /must/ have been set or inherited for @commandBuffer@, and done so+--     after any previously bound pipeline with the corresponding state not+--     specified as dynamic -- -- -   #VUID-vkCmdDrawIndexedIndirect-None-02859# There /must/ not have --     been any calls to dynamic state setting commands for any state not@@ -3636,7 +3835,7 @@ --     dynamic state enabled, then --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT' --     /must/ have been called in the current command buffer prior to this---     draw command, and the @viewportCount@ parameter of+--     drawing command, and the @viewportCount@ parameter of --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT' --     /must/ match the --     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@scissorCount@@@ -3650,7 +3849,7 @@ --     dynamic state enabled, then --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT' --     /must/ have been called in the current command buffer prior to this---     draw command, and the @scissorCount@ parameter of+--     drawing command, and the @scissorCount@ parameter of --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT' --     /must/ match the --     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@viewportCount@@@ -3666,7 +3865,7 @@ --     and --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT' --     /must/ have been called in the current command buffer prior to this---     draw command, and the @viewportCount@ parameter of+--     drawing command, and the @viewportCount@ parameter of --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT' --     /must/ match the @scissorCount@ parameter of --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'@@ -3749,7 +3948,7 @@ --     dynamic state enabled then --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopologyEXT' --     /must/ have been called in the current command buffer prior to this---     draw command, and the @primitiveTopology@ parameter of+--     drawing command, and the @primitiveTopology@ parameter of --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopologyEXT' --     /must/ be of the same --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#drawing-primitive-topology-class topology class>@@ -3757,6 +3956,47 @@ --     'Vulkan.Core10.Pipeline.PipelineInputAssemblyStateCreateInfo'::@topology@ --     state --+-- -   #VUID-vkCmdDrawIndexedIndirect-None-04875# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetPatchControlPointsEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawIndexedIndirect-None-04876# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnableEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawIndexedIndirect-None-04877# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS_ENABLE_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnableEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawIndexedIndirect-logicOp-04878# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LOGIC_OP_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetLogicOpEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command and the @logicOp@ /must/ be a valid+--     'Vulkan.Core10.Enums.LogicOp.LogicOp' value+--+-- -   #VUID-vkCmdDrawIndexedIndirect-None-04879# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetPrimitiveRestartEnableEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+-- -- -   #VUID-vkCmdDrawIndexedIndirect-primitiveFragmentShadingRateWithMultipleViewports-04552# --     If the --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports primitiveFragmentShadingRateWithMultipleViewports>@@ -3768,7 +4008,7 @@ --     then --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT' --     /must/ have been called in the current command buffer prior to this---     draw command, and the @viewportCount@ parameter of+--     drawing command, and the @viewportCount@ parameter of --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT' --     /must/ be @1@ --@@ -3789,6 +4029,16 @@ --     /must/ be the same as the current subpass color and\/or --     depth\/stencil attachments --+-- -   #VUID-vkCmdDrawIndexedIndirect-pStrides-04884# If the bound graphics+--     pipeline was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT'+--     dynamic state enabled, then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command, and the @pStrides@ parameter of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT'+--     /must/ not be @NULL@+-- -- -   #VUID-vkCmdDrawIndexedIndirect-None-04007# All vertex input bindings --     accessed via vertex input variables declared in the vertex shader --     entry point’s interface /must/ have either valid or@@ -4032,9 +4282,9 @@ -- -   #VUID-vkCmdDispatch-commandBuffer-02701# If the --     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind --     point used by this command requires any dynamic state, that state---     /must/ have been set for @commandBuffer@, and done so after any---     previously bound pipeline with the corresponding state not specified---     as dynamic+--     /must/ have been set or inherited for @commandBuffer@, and done so+--     after any previously bound pipeline with the corresponding state not+--     specified as dynamic -- -- -   #VUID-vkCmdDispatch-None-02859# There /must/ not have been any calls --     to dynamic state setting commands for any state not specified as@@ -4160,7 +4410,7 @@ --     protected command buffer, pipeline stages other than the --     framebuffer-space and compute stages in the --     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind---     point /must/ not write to any resource+--     point used by this command /must/ not write to any resource -- -- -   #VUID-vkCmdDispatch-commandBuffer-04617# If any of the shader stages --     of the 'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind@@ -4249,7 +4499,7 @@   "dynamic" mkVkCmdDispatchIndirect   :: FunPtr (Ptr CommandBuffer_T -> Buffer -> DeviceSize -> IO ()) -> Ptr CommandBuffer_T -> Buffer -> DeviceSize -> IO () --- | vkCmdDispatchIndirect - Dispatch compute work items using indirect+-- | vkCmdDispatchIndirect - Dispatch compute work items with indirect -- parameters -- -- = Description@@ -4360,9 +4610,9 @@ -- -   #VUID-vkCmdDispatchIndirect-commandBuffer-02701# If the --     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind --     point used by this command requires any dynamic state, that state---     /must/ have been set for @commandBuffer@, and done so after any---     previously bound pipeline with the corresponding state not specified---     as dynamic+--     /must/ have been set or inherited for @commandBuffer@, and done so+--     after any previously bound pipeline with the corresponding state not+--     specified as dynamic -- -- -   #VUID-vkCmdDispatchIndirect-None-02859# There /must/ not have been --     any calls to dynamic state setting commands for any state not@@ -5018,12 +5268,12 @@ -- -- -   #VUID-vkCmdCopyImage-srcImage-04443# If @srcImage@ is of type --     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D', then for each element---     of @pRegions@, @srcSubresource.baseArrayLayer@ /must/ be @0@ and and+--     of @pRegions@, @srcSubresource.baseArrayLayer@ /must/ be @0@ and --     @srcSubresource.layerCount@ /must/ be @1@ -- -- -   #VUID-vkCmdCopyImage-dstImage-04444# If @dstImage@ is of type --     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D', then for each element---     of @pRegions@, @dstSubresource.baseArrayLayer@ /must/ be @0@ and and+--     of @pRegions@, @dstSubresource.baseArrayLayer@ /must/ be @0@ and --     @dstSubresource.layerCount@ /must/ be @1@ -- -- -   #VUID-vkCmdCopyImage-aspectMask-00142# For each element of@@ -5551,55 +5801,55 @@ --     present in @dstImage@ -- -- -   #VUID-vkCmdBlitImage-srcOffset-00243# For each element of---     @pRegions@, @srcOffset@[0].x and @srcOffset@[1].x /must/ both be+--     @pRegions@, @srcOffsets@[0].x and @srcOffsets@[1].x /must/ both be --     greater than or equal to @0@ and less than or equal to the width of --     the specified @srcSubresource@ of @srcImage@ -- -- -   #VUID-vkCmdBlitImage-srcOffset-00244# For each element of---     @pRegions@, @srcOffset@[0].y and @srcOffset@[1].y /must/ both be+--     @pRegions@, @srcOffsets@[0].y and @srcOffsets@[1].y /must/ both be --     greater than or equal to @0@ and less than or equal to the height of --     the specified @srcSubresource@ of @srcImage@ -- -- -   #VUID-vkCmdBlitImage-srcImage-00245# If @srcImage@ is of type --     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D', then for each element---     of @pRegions@, @srcOffset@[0].y /must/ be @0@ and @srcOffset@[1].y+--     of @pRegions@, @srcOffsets@[0].y /must/ be @0@ and @srcOffsets@[1].y --     /must/ be @1@ -- -- -   #VUID-vkCmdBlitImage-srcOffset-00246# For each element of---     @pRegions@, @srcOffset@[0].z and @srcOffset@[1].z /must/ both be+--     @pRegions@, @srcOffsets@[0].z and @srcOffsets@[1].z /must/ both be --     greater than or equal to @0@ and less than or equal to the depth of --     the specified @srcSubresource@ of @srcImage@ -- -- -   #VUID-vkCmdBlitImage-srcImage-00247# If @srcImage@ is of type --     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D' or --     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D', then for each element---     of @pRegions@, @srcOffset@[0].z /must/ be @0@ and @srcOffset@[1].z+--     of @pRegions@, @srcOffsets@[0].z /must/ be @0@ and @srcOffsets@[1].z --     /must/ be @1@ -- -- -   #VUID-vkCmdBlitImage-dstOffset-00248# For each element of---     @pRegions@, @dstOffset@[0].x and @dstOffset@[1].x /must/ both be+--     @pRegions@, @dstOffsets@[0].x and @dstOffsets@[1].x /must/ both be --     greater than or equal to @0@ and less than or equal to the width of --     the specified @dstSubresource@ of @dstImage@ -- -- -   #VUID-vkCmdBlitImage-dstOffset-00249# For each element of---     @pRegions@, @dstOffset@[0].y and @dstOffset@[1].y /must/ both be+--     @pRegions@, @dstOffsets@[0].y and @dstOffsets@[1].y /must/ both be --     greater than or equal to @0@ and less than or equal to the height of --     the specified @dstSubresource@ of @dstImage@ -- -- -   #VUID-vkCmdBlitImage-dstImage-00250# If @dstImage@ is of type --     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D', then for each element---     of @pRegions@, @dstOffset@[0].y /must/ be @0@ and @dstOffset@[1].y+--     of @pRegions@, @dstOffsets@[0].y /must/ be @0@ and @dstOffsets@[1].y --     /must/ be @1@ -- -- -   #VUID-vkCmdBlitImage-dstOffset-00251# For each element of---     @pRegions@, @dstOffset@[0].z and @dstOffset@[1].z /must/ both be+--     @pRegions@, @dstOffsets@[0].z and @dstOffsets@[1].z /must/ both be --     greater than or equal to @0@ and less than or equal to the depth of --     the specified @dstSubresource@ of @dstImage@ -- -- -   #VUID-vkCmdBlitImage-dstImage-00252# If @dstImage@ is of type --     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D' or --     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D', then for each element---     of @pRegions@, @dstOffset@[0].z /must/ be @0@ and @dstOffset@[1].z+--     of @pRegions@, @dstOffsets@[0].z /must/ be @0@ and @dstOffsets@[1].z --     /must/ be @1@ -- -- == Valid Usage (Implicit)@@ -5843,7 +6093,7 @@ --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format> -- -- -   #VUID-vkCmdCopyBufferToImage-imageOffset-00198# For each element of---     @pRegions@, @imageOffset.y@ and (imageExtent.height ++--     @pRegions@, @imageOffset.y@ and (@imageExtent.height@ + --     @imageOffset.y@) /must/ both be greater than or equal to @0@ and --     less than or equal to the height of the specified @imageSubresource@ --     of @dstImage@ where this refers to the height of the /plane/ of the@@ -5869,7 +6119,7 @@ --     @imageExtent.height@ /must/ be @1@ -- -- -   #VUID-vkCmdCopyBufferToImage-imageOffset-00200# For each element of---     @pRegions@, @imageOffset.z@ and (imageExtent.depth ++--     @pRegions@, @imageOffset.z@ and (@imageExtent.depth@ + --     @imageOffset.z@) /must/ both be greater than or equal to @0@ and --     less than or equal to the depth of the specified @imageSubresource@ --     of @dstImage@@@ -6182,7 +6432,7 @@ --     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SUBSAMPLED_BIT_EXT' -- -- -   #VUID-vkCmdCopyImageToBuffer-imageOffset-00197# For each element of---     @pRegions@ , @imageOffset.x@ and (@imageExtent.width@ ++--     @pRegions@, @imageOffset.x@ and (@imageExtent.width@ + --     @imageOffset.x@) /must/ both be greater than or equal to @0@ and --     less than or equal to the width of the specified @imageSubresource@ --     of @srcImage@ where this refers to the width of the /plane/ of the@@ -6190,7 +6440,7 @@ --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format> -- -- -   #VUID-vkCmdCopyImageToBuffer-imageOffset-00198# For each element of---     @pRegions@ , @imageOffset.y@ and (imageExtent.height ++--     @pRegions@, @imageOffset.y@ and (imageExtent.height + --     @imageOffset.y@) /must/ both be greater than or equal to @0@ and --     less than or equal to the height of the specified @imageSubresource@ --     of @srcImage@ where this refers to the height of the /plane/ of the@@ -6216,7 +6466,7 @@ --     @imageExtent.height@ /must/ be @1@ -- -- -   #VUID-vkCmdCopyImageToBuffer-imageOffset-00200# For each element of---     @pRegions@, @imageOffset.z@ and (imageExtent.depth ++--     @pRegions@, @imageOffset.z@ and (@imageExtent.depth@ + --     @imageOffset.z@) /must/ both be greater than or equal to @0@ and --     less than or equal to the depth of the specified @imageSubresource@ --     of @srcImage@@@ -7607,7 +7857,7 @@ -- -   #VUID-vkCmdSetEvent-stageMask-04097# If the --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shading rate image> --     feature is not enabled, @stageMask@ /must/ not contain---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV'+--     'Vulkan.Extensions.VK_NV_shading_rate_image.PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV' -- -- -   #VUID-vkCmdSetEvent-stageMask-4098# Any pipeline stage included in --     @stageMask@ /must/ be supported by the capabilities of the queue@@ -7758,7 +8008,7 @@ -- -   #VUID-vkCmdResetEvent-stageMask-04097# If the --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shading rate image> --     feature is not enabled, @stageMask@ /must/ not contain---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV'+--     'Vulkan.Extensions.VK_NV_shading_rate_image.PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV' -- -- -   #VUID-vkCmdResetEvent-stageMask-4098# Any pipeline stage included in --     @stageMask@ /must/ be supported by the capabilities of the queue@@ -7927,13 +8177,13 @@ -- 'cmdWaitEvents' is largely similar to -- 'Vulkan.Extensions.VK_KHR_synchronization2.cmdWaitEvents2KHR', but /can/ -- only wait on signal operations defined by 'cmdSetEvent'. As--- 'cmdSetEvent' doesn’t define any access scopes, 'cmdWaitEvents' defines+-- 'cmdSetEvent' does not define any access scopes, 'cmdWaitEvents' defines -- the first access scope for each event signal operation in addition to -- its own access scopes. -- -- Note ----- Since 'cmdSetEvent' doesn’t have any dependency information beyond a+-- Since 'cmdSetEvent' does not have any dependency information beyond a -- stage mask, implementations do not have the same opportunity to perform -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-available-and-visible availability and visibility operations> -- or@@ -7975,7 +8225,7 @@ -- -- The first -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope>--- is limited to access in the pipeline stages determined by the+-- is limited to accesses in the pipeline stages determined by the -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-pipeline-stages-masks source stage mask> -- specified by @srcStageMask@. Within that, the first access scope only -- includes the first access scopes defined by elements of the@@ -7987,7 +8237,7 @@ -- -- The second -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope>--- is limited to access in the pipeline stages determined by the+-- is limited to accesses in the pipeline stages determined by the -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-pipeline-stages-masks destination stage mask> -- specified by @dstStageMask@. Within that, the second access scope only -- includes the second access scopes defined by elements of the@@ -8039,7 +8289,7 @@ -- -   #VUID-vkCmdWaitEvents-srcStageMask-04097# If the --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shading rate image> --     feature is not enabled, @srcStageMask@ /must/ not contain---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV'+--     'Vulkan.Extensions.VK_NV_shading_rate_image.PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV' -- -- -   #VUID-vkCmdWaitEvents-srcStageMask-4098# Any pipeline stage included --     in @srcStageMask@ /must/ be supported by the capabilities of the@@ -8093,7 +8343,7 @@ -- -   #VUID-vkCmdWaitEvents-dstStageMask-04097# If the --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shading rate image> --     feature is not enabled, @dstStageMask@ /must/ not contain---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV'+--     'Vulkan.Extensions.VK_NV_shading_rate_image.PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV' -- -- -   #VUID-vkCmdWaitEvents-dstStageMask-4098# Any pipeline stage included --     in @dstStageMask@ /must/ be supported by the capabilities of the@@ -8161,9 +8411,9 @@ -- -- -   #VUID-vkCmdWaitEvents-srcStageMask-01158# @srcStageMask@ /must/ be --     the bitwise OR of the @stageMask@ parameter used in previous calls---     to 'cmdSetEvent' with any of the members of @pEvents@ and+--     to 'cmdSetEvent' with any of the elements of @pEvents@ and --     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_HOST_BIT'---     if any of the members of @pEvents@ was set using+--     if any of the elements of @pEvents@ was set using --     'Vulkan.Core10.Event.setEvent' -- -- -   #VUID-vkCmdWaitEvents-pEvents-01163# If @pEvents@ includes one or@@ -8179,8 +8429,8 @@ -- -   #VUID-vkCmdWaitEvents-commandBuffer-01167# @commandBuffer@’s current --     device mask /must/ include exactly one physical device ----- -   #VUID-vkCmdWaitEvents-pEvents-03847# Members of @pEvents@ /must/ not---     have been signaled by+-- -   #VUID-vkCmdWaitEvents-pEvents-03847# Elements of @pEvents@ /must/+--     not have been signaled by --     'Vulkan.Extensions.VK_KHR_synchronization2.cmdSetEvent2KHR' -- -- == Valid Usage (Implicit)@@ -8330,8 +8580,8 @@ -- -- 'cmdPipelineBarrier' operates almost identically to -- 'Vulkan.Extensions.VK_KHR_synchronization2.cmdPipelineBarrier2KHR',--- other than the scopes and barriers defined as direct parameters rather--- than being defined by an+-- except that the scopes and barriers are defined as direct parameters+-- rather than being defined by an -- 'Vulkan.Extensions.VK_KHR_synchronization2.DependencyInfoKHR'. -- -- When 'cmdPipelineBarrier' is submitted to a queue, it defines a memory@@ -8366,7 +8616,7 @@ -- -- The first -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope>--- is limited to access in the pipeline stages determined by the+-- is limited to accesses in the pipeline stages determined by the -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-pipeline-stages-masks source stage mask> -- specified by @srcStageMask@. Within that, the first access scope only -- includes the first access scopes defined by elements of the@@ -8378,7 +8628,7 @@ -- -- The second -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope>--- is limited to access in the pipeline stages determined by the+-- is limited to accesses in the pipeline stages determined by the -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-pipeline-stages-masks destination stage mask> -- specified by @dstStageMask@. Within that, the second access scope only -- includes the second access scopes defined by elements of the@@ -8439,7 +8689,7 @@ -- -   #VUID-vkCmdPipelineBarrier-srcStageMask-04097# If the --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shading rate image> --     feature is not enabled, @srcStageMask@ /must/ not contain---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV'+--     'Vulkan.Extensions.VK_NV_shading_rate_image.PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV' -- -- -   #VUID-vkCmdPipelineBarrier-srcStageMask-4098# Any pipeline stage --     included in @srcStageMask@ /must/ be supported by the capabilities@@ -8493,7 +8743,7 @@ -- -   #VUID-vkCmdPipelineBarrier-dstStageMask-04097# If the --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shading rate image> --     feature is not enabled, @dstStageMask@ /must/ not contain---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV'+--     'Vulkan.Extensions.VK_NV_shading_rate_image.PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV' -- -- -   #VUID-vkCmdPipelineBarrier-dstStageMask-4098# Any pipeline stage --     included in @dstStageMask@ /must/ be supported by the capabilities@@ -9280,7 +9530,7 @@ -- -   #VUID-vkCmdWriteTimestamp-pipelineStage-04081# If the --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shading rate image> --     feature is not enabled, @pipelineStage@ /must/ not be---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV'+--     'Vulkan.Extensions.VK_NV_shading_rate_image.PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV' -- -- -   #VUID-vkCmdWriteTimestamp-queryPool-01416# @queryPool@ /must/ have --     been created with a @queryType@ of@@ -9292,6 +9542,9 @@ -- -   #VUID-vkCmdWriteTimestamp-timestampValidBits-00829# The command --     pool’s queue family /must/ support a non-zero @timestampValidBits@ --+-- -   #VUID-vkCmdWriteTimestamp-query-04904# @query@ /must/ be less than+--     the number of queries in @queryPool@+-- -- -   #VUID-vkCmdWriteTimestamp-None-00830# All queries used by the --     command /must/ be unavailable --@@ -9355,8 +9608,8 @@                   => -- | @commandBuffer@ is the command buffer into which the command will be                      -- recorded.                      CommandBuffer-                  -> -- | @pipelineStage@ is one of the-                     -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits',+                  -> -- | @pipelineStage@ is a+                     -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits' value,                      -- specifying a stage of the pipeline.                      PipelineStageFlagBits                   -> -- | @queryPool@ is the query pool that will manage the timestamp.@@ -9868,8 +10121,8 @@ --     have been created with a @usage@ value including --     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_DST_BIT' ----- -   #VUID-vkCmdBeginRenderPass-initialLayout-00900# If any of the---     @initialLayout@ members of the+-- -   #VUID-vkCmdBeginRenderPass-initialLayout-00900# If the+--     @initialLayout@ member of any of the --     'Vulkan.Core10.Pass.AttachmentDescription' structures specified when --     creating the render pass specified in the @renderPass@ member of --     @pRenderPassBegin@ is not@@ -10495,7 +10748,7 @@     -- 'Vulkan.Core10.Enums.ImageAspectFlagBits.ImageAspectFlagBits', selecting     -- the color, depth and\/or stencil aspects to be copied.     aspectMask :: ImageAspectFlags-  , -- | @mipLevel@ is the mipmap level to copy from.+  , -- | @mipLevel@ is the mipmap level to copy     mipLevel :: Word32   , -- | @baseArrayLayer@ and @layerCount@ are the starting layer and number of     -- layers to copy.@@ -10725,7 +10978,7 @@ -- = Description -- -- For each element of the @pRegions@ array, a blit operation is performed--- the specified source and destination regions.+-- for the specified source and destination regions. -- -- == Valid Usage --@@ -11077,7 +11330,8 @@            zero  --- | VkRenderPassBeginInfo - Structure specifying render pass begin info+-- | VkRenderPassBeginInfo - Structure specifying render pass begin+-- information -- -- = Description --
src/Vulkan/Core10/DescriptorSet.hs view
@@ -310,10 +310,6 @@ -- -- = Description ----- @pAllocator@ controls host memory allocation as described in the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>--- chapter.--- -- The created descriptor pool is returned in @pDescriptorPool@. -- -- == Valid Usage (Implicit)@@ -593,7 +589,7 @@ -- fail due to lack of space if the call to 'allocateDescriptorSets' would -- cause the number of any given descriptor type to exceed the sum of all -- the @descriptorCount@ members of each element of--- 'DescriptorPoolCreateInfo'::@pPoolSizes@ with a @member@ equal to that+-- 'DescriptorPoolCreateInfo'::@pPoolSizes@ with a @type@ equal to that -- type. -- -- Additionally, the allocation /may/ also fail if a call to@@ -875,7 +871,8 @@   pure $ ()  --- | VkDescriptorBufferInfo - Structure specifying descriptor buffer info+-- | VkDescriptorBufferInfo - Structure specifying descriptor buffer+-- information -- -- = Description --@@ -986,7 +983,8 @@            zero  --- | VkDescriptorImageInfo - Structure specifying descriptor image info+-- | VkDescriptorImageInfo - Structure specifying descriptor image+-- information -- -- = Description --@@ -1153,7 +1151,10 @@ -- element zero. If a binding has a @descriptorCount@ of zero, it is -- skipped. This behavior applies recursively, with the update affecting -- consecutive bindings as needed to update all @descriptorCount@--- descriptors.+-- descriptors. Consecutive bindings /must/ have identical+-- elink::VkDescriptorType, elink::VkShaderStageFlags,+-- 'Vulkan.Core12.Enums.DescriptorBindingFlagBits.DescriptorBindingFlagBits',+-- and immutable samplers references. -- -- Note --@@ -1485,11 +1486,6 @@ --     been created with --     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_STORAGE_BIT' set ----- -   #VUID-VkWriteDescriptorSet-descriptorCount-03048# All consecutive---     bindings updated via a single 'WriteDescriptorSet' structure, except---     those with a @descriptorCount@ of zero, /must/ have identical---     'Vulkan.Core12.Enums.DescriptorBindingFlagBits.DescriptorBindingFlagBits'--- -- -   #VUID-VkWriteDescriptorSet-descriptorType-02752# If @descriptorType@ --     is 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_SAMPLER', --     then @dstSet@ /must/ not have been allocated with a layout that@@ -1551,17 +1547,26 @@     -- then @dstArrayElement@ specifies the starting byte offset within the     -- binding.     dstArrayElement :: Word32-  , -- | @descriptorCount@ is the number of descriptors to update (the number of-    -- elements in @pImageInfo@, @pBufferInfo@, or @pTexelBufferView@ , or a-    -- value matching the @dataSize@ member of a-    -- 'Vulkan.Extensions.VK_EXT_inline_uniform_block.WriteDescriptorSetInlineUniformBlockEXT'-    -- structure in the @pNext@ chain , or a value matching the-    -- @accelerationStructureCount@ of a-    -- 'Vulkan.Extensions.VK_KHR_acceleration_structure.WriteDescriptorSetAccelerationStructureKHR'-    -- structure in the @pNext@ chain ). If the descriptor binding identified-    -- by @dstSet@ and @dstBinding@ has a descriptor type of-    -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT'+  , -- | @descriptorCount@ is the number of descriptors to update. If the+    -- descriptor binding identified by @dstSet@ and @dstBinding@ has a+    -- descriptor type of+    -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT',     -- then @descriptorCount@ specifies the number of bytes to update.+    -- Otherwise, @descriptorCount@ is one of+    --+    -- -   the number of elements in @pImageInfo@+    --+    -- -   the number of elements in @pBufferInfo@+    --+    -- -   the number of elements in @pTexelBufferView@+    --+    -- -   a value matching the @dataSize@ member of a+    --     'Vulkan.Extensions.VK_EXT_inline_uniform_block.WriteDescriptorSetInlineUniformBlockEXT'+    --     structure in the @pNext@ chain+    --+    -- -   a value matching the @accelerationStructureCount@ of a+    --     'Vulkan.Extensions.VK_KHR_acceleration_structure.WriteDescriptorSetAccelerationStructureKHR'+    --     structure in the @pNext@ chain     descriptorCount :: Word32   , -- | @descriptorType@ is a     -- 'Vulkan.Core10.Enums.DescriptorType.DescriptorType' specifying the type@@ -1770,11 +1775,13 @@ --     'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT' --     flag set ----- -   #VUID-VkCopyDescriptorSet-srcSet-01919# If @srcSet@’s layout was---     created without the+-- -   #VUID-VkCopyDescriptorSet-srcSet-04885# If @srcSet@’s layout was+--     created with neither --     'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT'---     flag set, then @dstSet@’s layout /must/ also have been created---     without the+--     nor+--     'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_VALVE'+--     flags set, then @dstSet@’s layout /must/ have been created without+--     the --     'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT' --     flag set --@@ -1786,11 +1793,13 @@ --     'Vulkan.Core10.Enums.DescriptorPoolCreateFlagBits.DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT' --     flag set ----- -   #VUID-VkCopyDescriptorSet-srcSet-01921# If the descriptor pool from---     which @srcSet@ was allocated was created without the+-- -   #VUID-VkCopyDescriptorSet-srcSet-04887# If the descriptor pool from+--     which @srcSet@ was allocated was created with neither --     'Vulkan.Core10.Enums.DescriptorPoolCreateFlagBits.DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT'---     flag set, then the descriptor pool from which @dstSet@ was allocated---     /must/ also have been created without the+--     nor+--     'Vulkan.Core10.Enums.DescriptorPoolCreateFlagBits.DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_VALVE'+--     flags set, then the descriptor pool from which @dstSet@ was+--     allocated /must/ have been created without the --     'Vulkan.Core10.Enums.DescriptorPoolCreateFlagBits.DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT' --     flag set --@@ -1962,15 +1971,15 @@ --     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER' --     descriptor with immutable samplers does not modify the samplers (the --     image views are updated, but the sampler updates are ignored). If---     @pImmutableSamplers@ is not @NULL@, then it points to an array of---     sampler handles that will be copied into the set layout and used for---     the corresponding binding. Only the sampler handles are copied; the---     sampler objects /must/ not be destroyed before the final use of the---     set layout and any descriptor pools and sets created using it. If---     @pImmutableSamplers@ is @NULL@, then the sampler slots are dynamic---     and sampler handles /must/ be bound into descriptor sets using this---     layout. If @descriptorType@ is not one of these descriptor types,---     then @pImmutableSamplers@ is ignored.+--     @pImmutableSamplers@ is not @NULL@, then it is a pointer to an array+--     of sampler handles that will be copied into the set layout and used+--     for the corresponding binding. Only the sampler handles are copied;+--     the sampler objects /must/ not be destroyed before the final use of+--     the set layout and any descriptor pools and sets created using it.+--     If @pImmutableSamplers@ is @NULL@, then the sampler slots are+--     dynamic and sampler handles /must/ be bound into descriptor sets+--     using this layout. If @descriptorType@ is not one of these+--     descriptor types, then @pImmutableSamplers@ is ignored. -- -- The above layout definition allows the descriptor bindings to be -- specified sparsely such that not all binding numbers between 0 and the@@ -2057,10 +2066,10 @@     -- type of resource descriptors are used for this binding.     descriptorType :: DescriptorType   , -- | @descriptorCount@ is the number of descriptors contained in the binding,-    -- accessed in a shader as an array , except if @descriptorType@ is+    -- accessed in a shader as an array, except if @descriptorType@ is     -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT'     -- in which case @descriptorCount@ is the size in bytes of the inline-    -- uniform block . If @descriptorCount@ is zero this binding entry is+    -- uniform block. If @descriptorCount@ is zero this binding entry is     -- reserved and the resource /must/ not be accessed from any stage via this     -- binding within any pipeline using the set layout.     descriptorCount :: Word32@@ -2407,9 +2416,10 @@ -- -- = Description ----- If multiple 'DescriptorPoolSize' structures appear in the @pPoolSizes@--- array then the pool will be created with enough storage for the total--- number of descriptors of each type.+-- If multiple 'DescriptorPoolSize' structures containing the same+-- descriptor type appear in the @pPoolSizes@ array then the pool will be+-- created with enough storage for the total number of descriptors of each+-- type. -- -- Fragmentation of a descriptor pool is possible and /may/ lead to -- descriptor set allocation failures. A failure due to fragmentation is@@ -2464,8 +2474,27 @@ -- descriptor. A mutable descriptor /can/ be allocated from a pool entry if -- the type list in 'DescriptorSetLayoutCreateInfo' is a subset of the type -- list declared in the descriptor pool, or if the pool entry is created--- without a descriptor type list.+-- without a descriptor type list. Multiple @pPoolSizes@ entries with+-- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_MUTABLE_VALVE' /can/+-- be declared. When multiple such pool entries are present in+-- @pPoolSizes@, they specify sets of supported descriptor types which+-- either fully overlap, partially overlap, or are disjoint. Two sets fully+-- overlap if the sets of supported descriptor types are equal. If the sets+-- are not disjoint they partially overlap. A pool entry without a+-- 'Vulkan.Extensions.VK_VALVE_mutable_descriptor_type.MutableDescriptorTypeListVALVE'+-- assigned to it is considered to partially overlap any other pool entry+-- which has a+-- 'Vulkan.Extensions.VK_VALVE_mutable_descriptor_type.MutableDescriptorTypeListVALVE'+-- assigned to it. The application /must/ ensure that partial overlap does+-- not exist in @pPoolSizes@. --+-- Note+--+-- The requirement of no partial overlap is intended to resolve ambiguity+-- for validation as there is no confusion which @pPoolSizes@ entries will+-- be allocated from. An implementation is not expected to depend on this+-- requirement.+-- -- == Valid Usage -- -- -   #VUID-VkDescriptorPoolCreateInfo-maxSets-00301# @maxSets@ /must/ be@@ -2488,6 +2517,14 @@ --     bit set, --     'Vulkan.Extensions.VK_VALVE_mutable_descriptor_type.PhysicalDeviceMutableDescriptorTypeFeaturesVALVE'::@mutableDescriptorType@ --     /must/ be enabled+--+-- -   #VUID-VkDescriptorPoolCreateInfo-pPoolSizes-04787# If @pPoolSizes@+--     contains a @descriptorType@ of+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_MUTABLE_VALVE',+--     any other+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_MUTABLE_VALVE'+--     element in @pPoolSizes@ /must/ not have sets of supported descriptor+--     types which partially overlap -- -- == Valid Usage (Implicit) --
src/Vulkan/Core10/Device.hs view
@@ -96,6 +96,7 @@ import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_buffer_device_address (PhysicalDeviceBufferDeviceAddressFeatures) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_buffer_device_address (PhysicalDeviceBufferDeviceAddressFeaturesEXT) 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) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_conditional_rendering (PhysicalDeviceConditionalRenderingFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_cooperative_matrix (PhysicalDeviceCooperativeMatrixFeaturesNV)@@ -109,6 +110,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_device_memory_report (PhysicalDeviceDeviceMemoryReportFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_device_diagnostics_config (PhysicalDeviceDiagnosticsConfigFeaturesNV) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_scissor_exclusive (PhysicalDeviceExclusiveScissorFeaturesNV)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_extended_dynamic_state2 (PhysicalDeviceExtendedDynamicState2FeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_extended_dynamic_state (PhysicalDeviceExtendedDynamicStateFeaturesEXT) import Vulkan.Core10.DeviceInitialization (PhysicalDeviceFeatures) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2 (PhysicalDeviceFeatures2)@@ -122,6 +124,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_image_robustness (PhysicalDeviceImageRobustnessFeaturesEXT) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer (PhysicalDeviceImagelessFramebufferFeatures) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_index_type_uint8 (PhysicalDeviceIndexTypeUint8FeaturesEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_NV_inherited_viewport_scissor (PhysicalDeviceInheritedViewportScissorFeaturesNV) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_inline_uniform_block (PhysicalDeviceInlineUniformBlockFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_line_rasterization (PhysicalDeviceLineRasterizationFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_memory_priority (PhysicalDeviceMemoryPriorityFeaturesEXT)@@ -134,6 +137,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_portability_subset (PhysicalDevicePortabilitySubsetFeaturesKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_private_data (PhysicalDevicePrivateDataFeaturesEXT) import {-# SOURCE #-} Vulkan.Core11.Originally_Based_On_VK_KHR_protected_memory (PhysicalDeviceProtectedMemoryFeatures)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_provoking_vertex (PhysicalDeviceProvokingVertexFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_ray_query (PhysicalDeviceRayQueryFeaturesKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_ray_tracing_pipeline (PhysicalDeviceRayTracingPipelineFeaturesKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_representative_fragment_test (PhysicalDeviceRepresentativeFragmentTestFeaturesNV)@@ -163,10 +167,12 @@ 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_EXT_vertex_input_dynamic_state (PhysicalDeviceVertexInputDynamicStateFeaturesEXT) import {-# SOURCE #-} Vulkan.Core12 (PhysicalDeviceVulkan11Features) import {-# SOURCE #-} Vulkan.Core12 (PhysicalDeviceVulkan12Features) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_vulkan_memory_model (PhysicalDeviceVulkanMemoryModelFeatures) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_workgroup_memory_explicit_layout (PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_ycbcr_2plane_444_formats (PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_ycbcr_image_arrays (PhysicalDeviceYcbcrImageArraysFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_zero_initialize_workgroup_memory (PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR) import Vulkan.Core10.Handles (PhysicalDevice_T)@@ -213,9 +219,8 @@ -- -- Multiple logical devices /can/ be created from the same physical device. -- Logical device creation /may/ fail due to lack of device-specific--- resources (in addition to the other errors). If that occurs,--- 'createDevice' will return--- 'Vulkan.Core10.Enums.Result.ERROR_TOO_MANY_OBJECTS'.+-- resources (in addition to other errors). If that occurs, 'createDevice'+-- will return 'Vulkan.Core10.Enums.Result.ERROR_TOO_MANY_OBJECTS'. -- -- == Valid Usage --@@ -454,9 +459,9 @@   , -- | @flags@ is a bitmask indicating behavior of the queue.     flags :: DeviceQueueCreateFlags   , -- | @queueFamilyIndex@ is an unsigned integer indicating the index of the-    -- queue family to create on this device. This index corresponds to the-    -- index of an element of the @pQueueFamilyProperties@ array that was-    -- returned by+    -- queue family in which to create the queue on this device. This index+    -- corresponds to the index of an element of the @pQueueFamilyProperties@+    -- array that was returned by     -- 'Vulkan.Core10.DeviceInitialization.getPhysicalDeviceQueueFamilyProperties'.     queueFamilyIndex :: Word32   , -- | @pQueuePriorities@ is a pointer to an array of @queueCount@ normalized@@ -674,6 +679,24 @@ --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate> --     /must/ not be enabled --+-- -   #VUID-VkDeviceCreateInfo-None-04896# If+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseImageInt64Atomics sparseImageInt64Atomics>+--     is enabled,+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderImageInt64Atomics shaderImageInt64Atomics>+--     /must/ be enabled+--+-- -   #VUID-VkDeviceCreateInfo-None-04897# If+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseImageFloat32Atomics sparseImageFloat32Atomics>+--     is enabled,+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderImageFloat32Atomics shaderImageFloat32Atomics>+--     /must/ be enabled+--+-- -   #VUID-VkDeviceCreateInfo-None-04898# If+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sparseImageFloat32AtomicAdd sparseImageFloat32AtomicAdd>+--     is enabled,+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderImageFloat32AtomicAdd shaderImageFloat32AtomicAdd>+--     /must/ be enabled+-- -- == Valid Usage (Implicit) -- -- -   #VUID-VkDeviceCreateInfo-sType-sType# @sType@ /must/ be@@ -696,6 +719,7 @@ --     'Vulkan.Core12.Promoted_From_VK_KHR_buffer_device_address.PhysicalDeviceBufferDeviceAddressFeatures', --     'Vulkan.Extensions.VK_EXT_buffer_device_address.PhysicalDeviceBufferDeviceAddressFeaturesEXT', --     'Vulkan.Extensions.VK_AMD_device_coherent_memory.PhysicalDeviceCoherentMemoryFeaturesAMD',+--     'Vulkan.Extensions.VK_EXT_color_write_enable.PhysicalDeviceColorWriteEnableFeaturesEXT', --     'Vulkan.Extensions.VK_NV_compute_shader_derivatives.PhysicalDeviceComputeShaderDerivativesFeaturesNV', --     'Vulkan.Extensions.VK_EXT_conditional_rendering.PhysicalDeviceConditionalRenderingFeaturesEXT', --     'Vulkan.Extensions.VK_NV_cooperative_matrix.PhysicalDeviceCooperativeMatrixFeaturesNV',@@ -709,6 +733,7 @@ --     'Vulkan.Extensions.VK_EXT_device_memory_report.PhysicalDeviceDeviceMemoryReportFeaturesEXT', --     'Vulkan.Extensions.VK_NV_device_diagnostics_config.PhysicalDeviceDiagnosticsConfigFeaturesNV', --     'Vulkan.Extensions.VK_NV_scissor_exclusive.PhysicalDeviceExclusiveScissorFeaturesNV',+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.PhysicalDeviceExtendedDynamicState2FeaturesEXT', --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.PhysicalDeviceExtendedDynamicStateFeaturesEXT', --     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2', --     'Vulkan.Extensions.VK_EXT_fragment_density_map2.PhysicalDeviceFragmentDensityMap2FeaturesEXT',@@ -721,6 +746,7 @@ --     'Vulkan.Extensions.VK_EXT_image_robustness.PhysicalDeviceImageRobustnessFeaturesEXT', --     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.PhysicalDeviceImagelessFramebufferFeatures', --     'Vulkan.Extensions.VK_EXT_index_type_uint8.PhysicalDeviceIndexTypeUint8FeaturesEXT',+--     'Vulkan.Extensions.VK_NV_inherited_viewport_scissor.PhysicalDeviceInheritedViewportScissorFeaturesNV', --     'Vulkan.Extensions.VK_EXT_inline_uniform_block.PhysicalDeviceInlineUniformBlockFeaturesEXT', --     'Vulkan.Extensions.VK_EXT_line_rasterization.PhysicalDeviceLineRasterizationFeaturesEXT', --     'Vulkan.Extensions.VK_EXT_memory_priority.PhysicalDeviceMemoryPriorityFeaturesEXT',@@ -733,6 +759,7 @@ --     'Vulkan.Extensions.VK_KHR_portability_subset.PhysicalDevicePortabilitySubsetFeaturesKHR', --     'Vulkan.Extensions.VK_EXT_private_data.PhysicalDevicePrivateDataFeaturesEXT', --     'Vulkan.Core11.Originally_Based_On_VK_KHR_protected_memory.PhysicalDeviceProtectedMemoryFeatures',+--     'Vulkan.Extensions.VK_EXT_provoking_vertex.PhysicalDeviceProvokingVertexFeaturesEXT', --     'Vulkan.Extensions.VK_KHR_ray_query.PhysicalDeviceRayQueryFeaturesKHR', --     'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.PhysicalDeviceRayTracingPipelineFeaturesKHR', --     'Vulkan.Extensions.VK_NV_representative_fragment_test.PhysicalDeviceRepresentativeFragmentTestFeaturesNV',@@ -762,10 +789,12 @@ --     'Vulkan.Core12.Promoted_From_VK_KHR_uniform_buffer_standard_layout.PhysicalDeviceUniformBufferStandardLayoutFeatures', --     'Vulkan.Core11.Promoted_From_VK_KHR_variable_pointers.PhysicalDeviceVariablePointersFeatures', --     'Vulkan.Extensions.VK_EXT_vertex_attribute_divisor.PhysicalDeviceVertexAttributeDivisorFeaturesEXT',+--     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.PhysicalDeviceVertexInputDynamicStateFeaturesEXT', --     'Vulkan.Core12.PhysicalDeviceVulkan11Features', --     'Vulkan.Core12.PhysicalDeviceVulkan12Features', --     'Vulkan.Core12.Promoted_From_VK_KHR_vulkan_memory_model.PhysicalDeviceVulkanMemoryModelFeatures', --     'Vulkan.Extensions.VK_KHR_workgroup_memory_explicit_layout.PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR',+--     'Vulkan.Extensions.VK_EXT_ycbcr_2plane_444_formats.PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT', --     'Vulkan.Extensions.VK_EXT_ycbcr_image_arrays.PhysicalDeviceYcbcrImageArraysFeaturesEXT', --     or --     'Vulkan.Extensions.VK_KHR_zero_initialize_workgroup_memory.PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR'@@ -848,7 +877,12 @@   getNext DeviceCreateInfo{..} = next   extends :: forall e b proxy. Typeable e => proxy e -> (Extends DeviceCreateInfo e => b) -> Maybe b   extends _ f+    | Just Refl <- eqT @e @PhysicalDeviceProvokingVertexFeaturesEXT = Just f+    | Just Refl <- eqT @e @PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT = Just f+    | Just Refl <- eqT @e @PhysicalDeviceInheritedViewportScissorFeaturesNV = Just f     | Just Refl <- eqT @e @PhysicalDeviceSynchronization2FeaturesKHR = Just f+    | Just Refl <- eqT @e @PhysicalDeviceColorWriteEnableFeaturesEXT = Just f+    | Just Refl <- eqT @e @PhysicalDeviceVertexInputDynamicStateFeaturesEXT = Just f     | Just Refl <- eqT @e @PhysicalDeviceMutableDescriptorTypeFeaturesVALVE = Just f     | Just Refl <- eqT @e @PhysicalDeviceFragmentShadingRateEnumsFeaturesNV = Just f     | Just Refl <- eqT @e @PhysicalDeviceShaderTerminateInvocationFeaturesKHR = Just f@@ -862,6 +896,7 @@     | Just Refl <- eqT @e @PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR = Just f     | Just Refl <- eqT @e @DeviceDiagnosticsConfigCreateInfoNV = Just f     | Just Refl <- eqT @e @PhysicalDeviceDiagnosticsConfigFeaturesNV = Just f+    | Just Refl <- eqT @e @PhysicalDeviceExtendedDynamicState2FeaturesEXT = Just f     | Just Refl <- eqT @e @PhysicalDeviceExtendedDynamicStateFeaturesEXT = Just f     | Just Refl <- eqT @e @PhysicalDeviceCustomBorderColorFeaturesEXT = Just f     | Just Refl <- eqT @e @PhysicalDeviceCoherentMemoryFeaturesAMD = Just f
src/Vulkan/Core10/DeviceInitialization.hs view
@@ -34,7 +34,6 @@                                            , SystemAllocationScope(..)                                            , PhysicalDeviceType(..)                                            , Format(..)-                                           , StructureType(..)                                            , QueueFlagBits(..)                                            , QueueFlags                                            , MemoryPropertyFlagBits(..)@@ -237,7 +236,6 @@ import Vulkan.Core10.Enums.QueueFlagBits (QueueFlags) import Vulkan.Core10.Enums.SampleCountFlagBits (SampleCountFlagBits(..)) import Vulkan.Core10.Enums.SampleCountFlagBits (SampleCountFlags)-import Vulkan.Core10.Enums.StructureType (StructureType(..)) import Vulkan.Core10.Enums.SystemAllocationScope (SystemAllocationScope(..)) foreign import ccall #if !defined(SAFE_FOREIGN_CALLS)@@ -432,9 +430,8 @@ -- variable is overwritten with the number of handles actually written to -- @pPhysicalDevices@. If @pPhysicalDeviceCount@ is less than the number of -- physical devices available, at most @pPhysicalDeviceCount@ structures--- will be written. If @pPhysicalDeviceCount@ is smaller than the number of--- physical devices available, 'Vulkan.Core10.Enums.Result.INCOMPLETE' will--- be returned instead of 'Vulkan.Core10.Enums.Result.SUCCESS', to indicate+-- will be written, and 'Vulkan.Core10.Enums.Result.INCOMPLETE' will be+-- returned instead of 'Vulkan.Core10.Enums.Result.SUCCESS', to indicate -- that not all the available physical devices were returned. -- -- == Valid Usage (Implicit)@@ -1051,6 +1048,13 @@ -- associated with a 'Vulkan.Core10.Handles.PhysicalDevice' and its -- children. --+-- Note+--+-- The encoding of @driverVersion@ is implementation-defined. It /may/ not+-- use the same encoding as @apiVersion@. Applications should follow+-- information from the /vendor/ on how to extract the version information+-- from @driverVersion@.+-- -- The @vendorID@ and @deviceID@ fields are provided to allow applications -- to adapt to device characteristics that are not adequately exposed by -- other Vulkan queries.@@ -1209,7 +1213,7 @@            zero  --- | VkApplicationInfo - Structure specifying application info+-- | VkApplicationInfo - Structure specifying application information -- -- = Description --@@ -1270,12 +1274,12 @@ -- -- Providing a @NULL@ 'InstanceCreateInfo'::@pApplicationInfo@ or providing -- an @apiVersion@ of 0 is equivalent to providing an @apiVersion@ of--- @VK_MAKE_VERSION(1,0,0)@.+-- @VK_MAKE_API_VERSION(0,1,0,0)@. -- -- == Valid Usage -- -- -   #VUID-VkApplicationInfo-apiVersion-04010# If @apiVersion@ is not---     @0@, then it /must/ be greater or equal to+--     @0@, then it /must/ be greater than or equal to --     'Vulkan.Core10.API_VERSION_1_0' -- -- == Valid Usage (Implicit)@@ -1524,10 +1528,10 @@ -- -- Possible values of @minImageTransferGranularity@ are: ----- -   (0,0,0) which indicates that only whole mip levels /must/ be---     transferred using the image transfer operations on the corresponding---     queues. In this case, the following restrictions apply to all offset---     and extent parameters of image transfer operations:+-- -   (0,0,0) specifies that only whole mip levels /must/ be transferred+--     using the image transfer operations on the corresponding queues. In+--     this case, the following restrictions apply to all offset and extent+--     parameters of image transfer operations: -- --     -   The @x@, @y@, and @z@ members of a --         'Vulkan.Core10.FundamentalTypes.Offset3D' parameter /must/@@ -2326,8 +2330,7 @@ -- -- = Members ----- The members of the 'PhysicalDeviceFeatures' structure describe the--- following features:+-- This structure describes the following features: -- -- = See Also --@@ -2594,7 +2597,7 @@     -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-maxDrawIndirectCount maxDrawIndirectCount>.     multiDrawIndirect :: Bool   , -- | #features-drawIndirectFirstInstance# @drawIndirectFirstInstance@-    -- specifies whether indirect draw calls support the @firstInstance@+    -- specifies whether indirect drawing calls support the @firstInstance@     -- parameter. If this feature is not enabled, the @firstInstance@ member of     -- all 'Vulkan.Core10.OtherTypes.DrawIndirectCommand' and     -- 'Vulkan.Core10.OtherTypes.DrawIndexedIndirectCommand' structures that@@ -2882,14 +2885,14 @@     -- @vertexPipelineStoresAndAtomics@ specifies whether storage buffers and     -- images support stores and atomic operations in the vertex, tessellation,     -- and geometry shader stages. If this feature is not enabled, all storage-    -- image, storage texel buffers, and storage buffer variables used by these+    -- image, storage texel buffer, and storage buffer variables used by these     -- stages in shader modules /must/ be decorated with the @NonWritable@     -- decoration (or the @readonly@ memory qualifier in GLSL).     vertexPipelineStoresAndAtomics :: Bool   , -- | #features-fragmentStoresAndAtomics# @fragmentStoresAndAtomics@ specifies     -- whether storage buffers and images support stores and atomic operations     -- in the fragment shader stage. If this feature is not enabled, all-    -- storage image, storage texel buffers, and storage buffer variables used+    -- storage image, storage texel buffer, and storage buffer variables used     -- by the fragment stage in shader modules /must/ be decorated with the     -- @NonWritable@ decoration (or the @readonly@ memory qualifier in GLSL).     fragmentStoresAndAtomics :: Bool@@ -2913,7 +2916,7 @@   , -- | #features-shaderImageGatherExtended# @shaderImageGatherExtended@     -- specifies whether the extended set of image gather instructions are     -- available in shader code. If this feature is not enabled, the-    -- @OpImage@*@Gather@ instructions do not support the @Offset@ and+    -- @OpImage*Gather@ instructions do not support the @Offset@ and     -- @ConstOffsets@ operands. This also specifies whether shader modules     -- /can/ declare the @ImageGatherExtended@ capability.     shaderImageGatherExtended :: Bool@@ -3103,7 +3106,7 @@   , -- | #features-shaderResourceResidency# @shaderResourceResidency@ specifies     -- whether image operations that return resource residency information are     -- supported in shader code. If this feature is not enabled, the-    -- @OpImageSparse@* instructions /must/ not be used in shader code. This+    -- @OpImageSparse*@ instructions /must/ not be used in shader code. This     -- also specifies whether shader modules /can/ declare the     -- @SparseResidency@ capability. The feature requires at least one of the     -- @sparseResidency*@ features to be supported.@@ -3532,7 +3535,7 @@   , -- | @residencyNonResidentStrict@ specifies whether the physical device /can/     -- consistently access non-resident regions of a resource. If this property     -- is 'Vulkan.Core10.FundamentalTypes.TRUE', access to non-resident regions-    -- of resources will be guaranteed to return values as if the resource were+    -- of resources will be guaranteed to return values as if the resource was     -- populated with 0; writes to non-resident regions will be discarded.     residencyNonResidentStrict :: Bool   }@@ -3595,17 +3598,6 @@ -- are available in the @limits@ member of the 'PhysicalDeviceProperties' -- structure which is returned from 'getPhysicalDeviceProperties'. ----- = Description------ [1]---     For all bitmasks of---     'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlagBits', the---     sample count limits defined above represent the minimum supported---     sample counts for each image type. Individual images /may/ support---     additional sample counts, which are queried using---     'getPhysicalDeviceImageFormatProperties' as described in---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-supported-sample-counts Supported Sample Counts>.--- -- = See Also -- -- 'Vulkan.Core10.FundamentalTypes.Bool32',@@ -3659,19 +3651,19 @@     -- structure.     maxTexelBufferElements :: Word32   , -- | #limits-maxUniformBufferRange# @maxUniformBufferRange@ is the maximum-    -- value that /can/ be specified in the @range@ member of any-    -- 'Vulkan.Core10.DescriptorSet.DescriptorBufferInfo' structures passed to-    -- a call to 'Vulkan.Core10.DescriptorSet.updateDescriptorSets' for-    -- descriptors of type-    -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_UNIFORM_BUFFER' or+    -- value that /can/ be specified in the @range@ member of a+    -- 'Vulkan.Core10.DescriptorSet.DescriptorBufferInfo' structure passed to+    -- 'Vulkan.Core10.DescriptorSet.updateDescriptorSets' for descriptors of+    -- type 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_UNIFORM_BUFFER'+    -- or     -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC'.     maxUniformBufferRange :: Word32   , -- | #limits-maxStorageBufferRange# @maxStorageBufferRange@ is the maximum-    -- value that /can/ be specified in the @range@ member of any-    -- 'Vulkan.Core10.DescriptorSet.DescriptorBufferInfo' structures passed to-    -- a call to 'Vulkan.Core10.DescriptorSet.updateDescriptorSets' for-    -- descriptors of type-    -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_BUFFER' or+    -- value that /can/ be specified in the @range@ member of a+    -- 'Vulkan.Core10.DescriptorSet.DescriptorBufferInfo' structure passed to+    -- 'Vulkan.Core10.DescriptorSet.updateDescriptorSets' for descriptors of+    -- type 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_BUFFER'+    -- or     -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC'.     maxStorageBufferRange :: Word32   , -- | #limits-maxPushConstantsSize# @maxPushConstantsSize@ is the maximum@@ -3698,7 +3690,7 @@     bufferImageGranularity :: DeviceSize   , -- | #limits-sparseAddressSpaceSize# @sparseAddressSpaceSize@ is the total     -- amount of address space available, in bytes, for sparse memory-    -- resources. This is an upper bound on the sum of the size of all sparse+    -- resources. This is an upper bound on the sum of the sizes of all sparse     -- resources, regardless of whether any memory is bound to them.     sparseAddressSpaceSize :: DeviceSize   , -- | #limits-maxBoundDescriptorSets# @maxBoundDescriptorSets@ is the maximum@@ -4036,8 +4028,8 @@     maxGeometryOutputVertices :: Word32   , -- | #limits-maxGeometryTotalOutputComponents#     -- @maxGeometryTotalOutputComponents@ is the maximum total number of-    -- components of output, across all emitted vertices, which /can/ be output-    -- from the geometry shader stage.+    -- components of output variables, across all emitted vertices, which /can/+    -- be output from the geometry shader stage.     maxGeometryTotalOutputComponents :: Word32   , -- | #limits-maxFragmentInputComponents# @maxFragmentInputComponents@ is the     -- maximum number of components of input variables which /can/ be provided@@ -4081,10 +4073,10 @@     maxComputeSharedMemorySize :: Word32   , -- | #limits-maxComputeWorkGroupCount# @maxComputeWorkGroupCount@[3] is the     -- maximum number of local workgroups that /can/ be dispatched by a single-    -- dispatch command. These three values represent the maximum number of+    -- dispatching command. These three values represent the maximum number of     -- local workgroups for the X, Y, and Z dimensions, respectively. The-    -- workgroup count parameters to the dispatch commands /must/ be less than-    -- or equal to the corresponding limit. See+    -- workgroup count parameters to the dispatching commands /must/ be less+    -- than or equal to the corresponding limit. See     -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#dispatch>.     maxComputeWorkGroupCount :: (Word32, Word32, Word32)   , -- | #limits-maxComputeWorkGroupInvocations# @maxComputeWorkGroupInvocations@@@ -4232,20 +4224,20 @@     -- this limit.     minStorageBufferOffsetAlignment :: DeviceSize   , -- | #limits-minTexelOffset# @minTexelOffset@ is the minimum offset value for-    -- the @ConstOffset@ image operand of any of the @OpImageSample@* or-    -- @OpImageFetch@* image instructions.+    -- the @ConstOffset@ image operand of any of the @OpImageSample*@ or+    -- @OpImageFetch*@ image instructions.     minTexelOffset :: Int32   , -- | #limits-maxTexelOffset# @maxTexelOffset@ is the maximum offset value for-    -- the @ConstOffset@ image operand of any of the @OpImageSample@* or-    -- @OpImageFetch@* image instructions.+    -- the @ConstOffset@ image operand of any of the @OpImageSample*@ or+    -- @OpImageFetch*@ image instructions.     maxTexelOffset :: Word32   , -- | #limits-minTexelGatherOffset# @minTexelGatherOffset@ is the minimum     -- offset value for the @Offset@, @ConstOffset@, or @ConstOffsets@ image-    -- operands of any of the @OpImage@*@Gather@ image instructions.+    -- operands of any of the @OpImage*Gather@ image instructions.     minTexelGatherOffset :: Int32   , -- | #limits-maxTexelGatherOffset# @maxTexelGatherOffset@ is the maximum     -- offset value for the @Offset@, @ConstOffset@, or @ConstOffsets@ image-    -- operands of any of the @OpImage@*@Gather@ image instructions.+    -- operands of any of the @OpImage*Gather@ image instructions.     maxTexelGatherOffset :: Word32   , -- | #limits-minInterpolationOffset# @minInterpolationOffset@ is the base     -- minimum (inclusive) negative offset value for the @Offset@ operand of@@ -4338,7 +4330,7 @@   , -- | #limits-sampledImageStencilSampleCounts#     -- @sampledImageStencilSampleCounts@ is a bitmask1 of     -- 'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlagBits' indicating-    -- the sample supported for all 2D images created with+    -- the sample counts supported for all 2D images created with     -- 'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_OPTIMAL', @usage@     -- containing     -- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_SAMPLED_BIT', and a@@ -4459,6 +4451,15 @@   , -- | #limits-nonCoherentAtomSize# @nonCoherentAtomSize@ is the size and     -- alignment in bytes that bounds concurrent access to     -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-device-hostaccess host-mapped device memory>.+    --+    -- [1]+    --     For all bitmasks of+    --     'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlagBits', the+    --     sample count limits defined above represent the minimum supported+    --     sample counts for each image type. Individual images /may/ support+    --     additional sample counts, which are queried using+    --     'getPhysicalDeviceImageFormatProperties' as described in+    --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-supported-sample-counts Supported Sample Counts>.     nonCoherentAtomSize :: DeviceSize   }   deriving (Typeable, Eq)
src/Vulkan/Core10/Enums/AccessFlagBits.hs view
@@ -21,8 +21,8 @@                                                            , ACCESS_NONE_KHR                                                            , ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV                                                            , ACCESS_COMMAND_PREPROCESS_READ_BIT_NV+                                                           , ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR                                                            , ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT-                                                           , ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV                                                            , ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR                                                            , ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR                                                            , ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT@@ -66,105 +66,105 @@ -- accesses of that type. The following table lists, for each access flag, -- which pipeline stages /can/ perform that type of access. ----- +-------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------+--- | Access flag                                                                                           | Supported pipeline stages                                                                                |--- +=======================================================================================================+==========================================================================================================+--- | 'ACCESS_INDIRECT_COMMAND_READ_BIT'                                                                    | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_DRAW_INDIRECT_BIT' ,                           |--- |                                                                                                       | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR'          |--- +-------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------+--- | 'ACCESS_INDEX_READ_BIT'                                                                               | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_VERTEX_INPUT_BIT'                              |--- +-------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------+--- | 'ACCESS_VERTEX_ATTRIBUTE_READ_BIT'                                                                    | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_VERTEX_INPUT_BIT'                              |--- +-------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------+--- | 'ACCESS_UNIFORM_READ_BIT'                                                                             | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_NV',                           |--- |                                                                                                       | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_NV',                           |--- |                                                                                                       | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR',                   |--- |                                                                                                       | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_VERTEX_SHADER_BIT',                            |--- |                                                                                                       | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT',              |--- |                                                                                                       | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT',           |--- |                                                                                                       | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_GEOMETRY_SHADER_BIT',                          |--- |                                                                                                       | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADER_BIT', or                       |--- |                                                                                                       | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COMPUTE_SHADER_BIT'                            |--- +-------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------+--- | 'ACCESS_SHADER_READ_BIT'                                                                              | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR',         |--- |                                                                                                       | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_NV',                           |--- |                                                                                                       | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_NV',                           |--- |                                                                                                       | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR',                   |--- |                                                                                                       | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_VERTEX_SHADER_BIT',                            |--- |                                                                                                       | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT',              |--- |                                                                                                       | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT',           |--- |                                                                                                       | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_GEOMETRY_SHADER_BIT',                          |--- |                                                                                                       | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADER_BIT', or                       |--- |                                                                                                       | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COMPUTE_SHADER_BIT'                            |--- +-------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------+--- | 'ACCESS_SHADER_WRITE_BIT'                                                                             | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_NV',                           |--- |                                                                                                       | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_NV',                           |--- |                                                                                                       | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR',                   |--- |                                                                                                       | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_VERTEX_SHADER_BIT',                            |--- |                                                                                                       | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT',              |--- |                                                                                                       | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT',           |--- |                                                                                                       | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_GEOMETRY_SHADER_BIT',                          |--- |                                                                                                       | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADER_BIT', or                       |--- |                                                                                                       | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COMPUTE_SHADER_BIT'                            |--- +-------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------+--- | 'ACCESS_INPUT_ATTACHMENT_READ_BIT'                                                                    | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADER_BIT'                           |--- +-------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------+--- | 'ACCESS_COLOR_ATTACHMENT_READ_BIT'                                                                    | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT'                   |--- +-------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------+--- | 'ACCESS_COLOR_ATTACHMENT_WRITE_BIT'                                                                   | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT'                   |--- +-------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------+--- | 'ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT'                                                            | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT', or                  |--- |                                                                                                       | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT'                       |--- +-------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------+--- | 'ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT'                                                           | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT', or                  |--- |                                                                                                       | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT'                       |--- +-------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------+--- | 'ACCESS_TRANSFER_READ_BIT'                                                                            | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFER_BIT' or                               |--- |                                                                                                       | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR'          |--- +-------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------+--- | 'ACCESS_TRANSFER_WRITE_BIT'                                                                           | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFER_BIT' or                               |--- |                                                                                                       | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR'          |--- +-------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------+--- | 'ACCESS_HOST_READ_BIT'                                                                                | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_HOST_BIT'                                      |--- +-------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------+--- | 'ACCESS_HOST_WRITE_BIT'                                                                               | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_HOST_BIT'                                      |--- +-------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------+--- | 'ACCESS_MEMORY_READ_BIT'                                                                              | Any                                                                                                      |--- +-------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------+--- | 'ACCESS_MEMORY_WRITE_BIT'                                                                             | Any                                                                                                      |--- +-------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------+--- | 'ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT'                                                    | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT'                   |--- +-------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------+--- | 'ACCESS_COMMAND_PREPROCESS_READ_BIT_NV'                                                               | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV'                     |--- +-------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------+--- | 'ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV'                                                              | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV'                     |--- +-------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------+--- | 'ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT'                                                           | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT'                 |--- +-------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------+--- | 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR' | 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR' |--- +-------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------+--- | 'ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT'                                                             | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT'                    |--- +-------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------+--- | 'ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT'                                                     | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT'                    |--- +-------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------+--- | 'ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT'                                                      | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT',                   |--- |                                                                                                       | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_DRAW_INDIRECT_BIT'                             |--- +-------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------+--- | 'ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR'                                                          | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_NV',                           |--- |                                                                                                       | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_NV',                           |--- |                                                                                                       | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_VERTEX_SHADER_BIT',                            |--- |                                                                                                       | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT',              |--- |                                                                                                       | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT',           |--- |                                                                                                       | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_GEOMETRY_SHADER_BIT',                          |--- |                                                                                                       | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADER_BIT',                          |--- |                                                                                                       | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COMPUTE_SHADER_BIT',                           |--- |                                                                                                       | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR', or                |--- |                                                                                                       | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR'          |--- +-------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------+--- | 'ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR'                                                         | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR'          |--- +-------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------+--- | 'ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT'                                                            | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT'              |--- +-------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------++-- +--------------------------------------------------------+-----------------------------------------------------------------------------------------------------++-- | Access flag                                            | Supported pipeline stages                                                                           |+-- +========================================================+=====================================================================================================++-- | 'ACCESS_INDIRECT_COMMAND_READ_BIT'                     | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_DRAW_INDIRECT_BIT' ,                      |+-- |                                                        | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR'     |+-- +--------------------------------------------------------+-----------------------------------------------------------------------------------------------------++-- | 'ACCESS_INDEX_READ_BIT'                                | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_VERTEX_INPUT_BIT'                         |+-- +--------------------------------------------------------+-----------------------------------------------------------------------------------------------------++-- | 'ACCESS_VERTEX_ATTRIBUTE_READ_BIT'                     | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_VERTEX_INPUT_BIT'                         |+-- +--------------------------------------------------------+-----------------------------------------------------------------------------------------------------++-- | 'ACCESS_UNIFORM_READ_BIT'                              | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_NV',                      |+-- |                                                        | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_NV',                      |+-- |                                                        | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR',              |+-- |                                                        | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_VERTEX_SHADER_BIT',                       |+-- |                                                        | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT',         |+-- |                                                        | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT',      |+-- |                                                        | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_GEOMETRY_SHADER_BIT',                     |+-- |                                                        | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADER_BIT', or                  |+-- |                                                        | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COMPUTE_SHADER_BIT'                       |+-- +--------------------------------------------------------+-----------------------------------------------------------------------------------------------------++-- | 'ACCESS_SHADER_READ_BIT'                               | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR',    |+-- |                                                        | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_NV',                      |+-- |                                                        | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_NV',                      |+-- |                                                        | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR',              |+-- |                                                        | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_VERTEX_SHADER_BIT',                       |+-- |                                                        | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT',         |+-- |                                                        | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT',      |+-- |                                                        | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_GEOMETRY_SHADER_BIT',                     |+-- |                                                        | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADER_BIT', or                  |+-- |                                                        | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COMPUTE_SHADER_BIT'                       |+-- +--------------------------------------------------------+-----------------------------------------------------------------------------------------------------++-- | 'ACCESS_SHADER_WRITE_BIT'                              | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_NV',                      |+-- |                                                        | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_NV',                      |+-- |                                                        | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR',              |+-- |                                                        | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_VERTEX_SHADER_BIT',                       |+-- |                                                        | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT',         |+-- |                                                        | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT',      |+-- |                                                        | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_GEOMETRY_SHADER_BIT',                     |+-- |                                                        | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADER_BIT', or                  |+-- |                                                        | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COMPUTE_SHADER_BIT'                       |+-- +--------------------------------------------------------+-----------------------------------------------------------------------------------------------------++-- | 'ACCESS_INPUT_ATTACHMENT_READ_BIT'                     | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADER_BIT'                      |+-- +--------------------------------------------------------+-----------------------------------------------------------------------------------------------------++-- | 'ACCESS_COLOR_ATTACHMENT_READ_BIT'                     | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT'              |+-- +--------------------------------------------------------+-----------------------------------------------------------------------------------------------------++-- | 'ACCESS_COLOR_ATTACHMENT_WRITE_BIT'                    | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT'              |+-- +--------------------------------------------------------+-----------------------------------------------------------------------------------------------------++-- | 'ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT'             | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT', or             |+-- |                                                        | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT'                  |+-- +--------------------------------------------------------+-----------------------------------------------------------------------------------------------------++-- | 'ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT'            | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT', or             |+-- |                                                        | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT'                  |+-- +--------------------------------------------------------+-----------------------------------------------------------------------------------------------------++-- | 'ACCESS_TRANSFER_READ_BIT'                             | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFER_BIT' or                          |+-- |                                                        | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR'     |+-- +--------------------------------------------------------+-----------------------------------------------------------------------------------------------------++-- | 'ACCESS_TRANSFER_WRITE_BIT'                            | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFER_BIT' or                          |+-- |                                                        | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR'     |+-- +--------------------------------------------------------+-----------------------------------------------------------------------------------------------------++-- | 'ACCESS_HOST_READ_BIT'                                 | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_HOST_BIT'                                 |+-- +--------------------------------------------------------+-----------------------------------------------------------------------------------------------------++-- | 'ACCESS_HOST_WRITE_BIT'                                | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_HOST_BIT'                                 |+-- +--------------------------------------------------------+-----------------------------------------------------------------------------------------------------++-- | 'ACCESS_MEMORY_READ_BIT'                               | Any                                                                                                 |+-- +--------------------------------------------------------+-----------------------------------------------------------------------------------------------------++-- | 'ACCESS_MEMORY_WRITE_BIT'                              | Any                                                                                                 |+-- +--------------------------------------------------------+-----------------------------------------------------------------------------------------------------++-- | 'ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT'     | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT'              |+-- +--------------------------------------------------------+-----------------------------------------------------------------------------------------------------++-- | 'ACCESS_COMMAND_PREPROCESS_READ_BIT_NV'                | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV'                |+-- +--------------------------------------------------------+-----------------------------------------------------------------------------------------------------++-- | 'ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV'               | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV'                |+-- +--------------------------------------------------------+-----------------------------------------------------------------------------------------------------++-- | 'ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT'            | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT'            |+-- +--------------------------------------------------------+-----------------------------------------------------------------------------------------------------++-- | 'ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR' | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR' |+-- +--------------------------------------------------------+-----------------------------------------------------------------------------------------------------++-- | 'ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT'              | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT'               |+-- +--------------------------------------------------------+-----------------------------------------------------------------------------------------------------++-- | 'ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT'      | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT'               |+-- +--------------------------------------------------------+-----------------------------------------------------------------------------------------------------++-- | 'ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT'       | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT',              |+-- |                                                        | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_DRAW_INDIRECT_BIT'                        |+-- +--------------------------------------------------------+-----------------------------------------------------------------------------------------------------++-- | 'ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR'           | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_NV',                      |+-- |                                                        | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_NV',                      |+-- |                                                        | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_VERTEX_SHADER_BIT',                       |+-- |                                                        | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT',         |+-- |                                                        | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT',      |+-- |                                                        | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_GEOMETRY_SHADER_BIT',                     |+-- |                                                        | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADER_BIT',                     |+-- |                                                        | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COMPUTE_SHADER_BIT',                      |+-- |                                                        | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR', or           |+-- |                                                        | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR'     |+-- +--------------------------------------------------------+-----------------------------------------------------------------------------------------------------++-- | 'ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR'          | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR'     |+-- +--------------------------------------------------------+-----------------------------------------------------------------------------------------------------++-- | 'ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT'             | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT'         |+-- +--------------------------------------------------------+-----------------------------------------------------------------------------------------------------+ -- -- Supported access types --@@ -176,7 +176,7 @@  -- | 'ACCESS_INDIRECT_COMMAND_READ_BIT' specifies read access to indirect -- command data read as part of an indirect build, trace, drawing or--- dispatch command.+-- dispatching command. pattern ACCESS_INDIRECT_COMMAND_READ_BIT            = AccessFlagBits 0x00000001 -- | 'ACCESS_INDEX_READ_BIT' specifies read access to an index buffer as part -- of an indexed drawing command, bound by@@ -279,13 +279,15 @@ -- 'Vulkan.Core10.Handles.Buffer' inputs to -- 'Vulkan.Extensions.VK_NV_device_generated_commands.cmdPreprocessGeneratedCommandsNV'. pattern ACCESS_COMMAND_PREPROCESS_READ_BIT_NV       = AccessFlagBits 0x00020000+-- | 'ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR' specifies read+-- access to a fragment shading rate attachment or shading rate image+-- during rasterization.+pattern ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR = AccessFlagBits 0x00800000 -- | 'ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT' specifies read access to a -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-fragmentdensitymapattachment fragment density map attachment> -- during dynamic -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragmentdensitymapops fragment density map operations> pattern ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT    = AccessFlagBits 0x01000000--- No documentation found for Nested "VkAccessFlagBits" "VK_ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV"-pattern ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV       = AccessFlagBits 0x00800000 -- | 'ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR' specifies write access to -- an acceleration structure or -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#acceleration-structure-scratch acceleration structure scratch buffer>@@ -346,8 +348,8 @@   , (ACCESS_NONE_KHR                            , "NONE_KHR")   , (ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV     , "COMMAND_PREPROCESS_WRITE_BIT_NV")   , (ACCESS_COMMAND_PREPROCESS_READ_BIT_NV      , "COMMAND_PREPROCESS_READ_BIT_NV")+  , (ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR, "FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR")   , (ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT   , "FRAGMENT_DENSITY_MAP_READ_BIT_EXT")-  , (ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV      , "SHADING_RATE_IMAGE_READ_BIT_NV")   , (ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR, "ACCELERATION_STRUCTURE_WRITE_BIT_KHR")   , (ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR , "ACCELERATION_STRUCTURE_READ_BIT_KHR")   , (ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT, "COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT")
src/Vulkan/Core10/Enums/BlendFactor.hs view
@@ -35,7 +35,7 @@ -- -- = Description ----- The semantics of each enum value is described in the table below:+-- The semantics of the enum values are described in the table below: -- -- +-----------------------------------------+---------------------+--------+ -- | 'BlendFactor'                           | RGB Blend Factors   | Alpha  |
src/Vulkan/Core10/Enums/BlendOp.hs view
@@ -67,7 +67,7 @@ -- -- = Description ----- The semantics of each basic blend operations is described in the table+-- The semantics of the basic blend operations are described in the table -- below: -- -- +-------------------------------+--------------------+-----------------+
src/Vulkan/Core10/Enums/ColorComponentFlagBits.hs view
@@ -30,6 +30,11 @@ -- The color write mask operation is applied regardless of whether blending -- is enabled. --+-- The color write mask operation is applied only if+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#framebuffer-color-write-enable Color Write Enable>+-- is enabled for the respective attachment. Otherwise the color write mask+-- is ignored and writes to all components of the attachment are disabled.+-- -- = See Also -- -- 'ColorComponentFlags'
src/Vulkan/Core10/Enums/DependencyFlagBits.hs view
@@ -37,7 +37,7 @@ -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-pipeline-barriers-subpass-self-dependencies subpass has more than one view>. pattern DEPENDENCY_VIEW_LOCAL_BIT   = DependencyFlagBits 0x00000002 -- | 'DEPENDENCY_DEVICE_GROUP_BIT' specifies that dependencies are--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-device-local-dependencies non-device-local dependency>.+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-device-local-dependencies non-device-local>. pattern DEPENDENCY_DEVICE_GROUP_BIT = DependencyFlagBits 0x00000004  conNameDependencyFlagBits :: String
src/Vulkan/Core10/Enums/DynamicState.hs view
@@ -9,6 +9,13 @@                                                       , DYNAMIC_STATE_STENCIL_COMPARE_MASK                                                       , DYNAMIC_STATE_STENCIL_WRITE_MASK                                                       , DYNAMIC_STATE_STENCIL_REFERENCE+                                                      , DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT+                                                      , DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT+                                                      , DYNAMIC_STATE_LOGIC_OP_EXT+                                                      , DYNAMIC_STATE_DEPTH_BIAS_ENABLE_EXT+                                                      , DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT+                                                      , DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT+                                                      , DYNAMIC_STATE_VERTEX_INPUT_EXT                                                       , DYNAMIC_STATE_STENCIL_OP_EXT                                                       , DYNAMIC_STATE_STENCIL_TEST_ENABLE_EXT                                                       , DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE_EXT@@ -54,7 +61,7 @@ -- | 'DYNAMIC_STATE_VIEWPORT' specifies that the @pViewports@ state in -- 'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo' will be ignored -- and /must/ be set dynamically with--- 'Vulkan.Core10.CommandBufferBuilding.cmdSetViewport' before any draw+-- 'Vulkan.Core10.CommandBufferBuilding.cmdSetViewport' before any drawing -- commands. The number of viewports used by a pipeline is still specified -- by the @viewportCount@ member of -- 'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'.@@ -62,7 +69,7 @@ -- | 'DYNAMIC_STATE_SCISSOR' specifies that the @pScissors@ state in -- 'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo' will be ignored -- and /must/ be set dynamically with--- 'Vulkan.Core10.CommandBufferBuilding.cmdSetScissor' before any draw+-- 'Vulkan.Core10.CommandBufferBuilding.cmdSetScissor' before any drawing -- commands. The number of scissor rectangles used by a pipeline is still -- specified by the @scissorCount@ member of -- 'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'.@@ -70,7 +77,7 @@ -- | 'DYNAMIC_STATE_LINE_WIDTH' specifies that the @lineWidth@ state in -- 'Vulkan.Core10.Pipeline.PipelineRasterizationStateCreateInfo' will be -- ignored and /must/ be set dynamically with--- 'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth' before any draw+-- 'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth' before any drawing -- commands that generate line primitives for the rasterizer. pattern DYNAMIC_STATE_LINE_WIDTH                          = DynamicState 2 -- | 'DYNAMIC_STATE_DEPTH_BIAS' specifies that the @depthBiasConstantFactor@,@@ -125,6 +132,52 @@ -- 'Vulkan.Core10.Pipeline.PipelineDepthStencilStateCreateInfo' member -- @stencilTestEnable@ set to 'Vulkan.Core10.FundamentalTypes.TRUE' pattern DYNAMIC_STATE_STENCIL_REFERENCE                   = DynamicState 8+-- | 'DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT' specifies that the+-- @pColorWriteEnables@ state in+-- 'Vulkan.Extensions.VK_EXT_color_write_enable.PipelineColorWriteCreateInfoEXT'+-- will be ignored and /must/ be set dynamically with+-- 'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'+-- before any draw call.+pattern DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT              = DynamicState 1000381000+-- | 'DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT' specifies that the+-- @primitiveRestartEnable@ state in+-- 'Vulkan.Core10.Pipeline.PipelineInputAssemblyStateCreateInfo' will be+-- ignored and /must/ be set dynamically with+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetPrimitiveRestartEnableEXT'+-- before any drawing commands.+pattern DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT        = DynamicState 1000377004+-- | 'DYNAMIC_STATE_LOGIC_OP_EXT' specifies that the @logicOp@ state in+-- 'Vulkan.Core10.Pipeline.PipelineColorBlendStateCreateInfo' will be+-- ignored and /must/ be set dynamically with+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetLogicOpEXT'+-- before any drawing commands.+pattern DYNAMIC_STATE_LOGIC_OP_EXT                        = DynamicState 1000377003+-- | 'DYNAMIC_STATE_DEPTH_BIAS_ENABLE_EXT' specifies that the+-- @depthBiasEnable@ state in+-- 'Vulkan.Core10.Pipeline.PipelineRasterizationStateCreateInfo' will be+-- ignored and /must/ be set dynamically with+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnableEXT'+-- before any drawing commands.+pattern DYNAMIC_STATE_DEPTH_BIAS_ENABLE_EXT               = DynamicState 1000377002+-- | 'DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT' specifies that the+-- @rasterizerDiscardEnable@ state in+-- 'Vulkan.Core10.Pipeline.PipelineRasterizationStateCreateInfo' will be+-- ignored and /must/ be set dynamically with+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnableEXT'+-- before any drawing commands.+pattern DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT       = DynamicState 1000377001+-- | 'DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT' specifies that the+-- @patchControlPoints@ state in+-- 'Vulkan.Core10.Pipeline.PipelineTessellationStateCreateInfo' will be+-- ignored and /must/ be set dynamically with+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetPatchControlPointsEXT'+-- before any drawing commands.+pattern DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT            = DynamicState 1000377000+-- | 'DYNAMIC_STATE_VERTEX_INPUT_EXT' specifies that the @pVertexInputState@+-- states will be ignored and /must/ be set dynamically with+-- 'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT'+-- before any drawing commands+pattern DYNAMIC_STATE_VERTEX_INPUT_EXT                    = DynamicState 1000352000 -- | 'DYNAMIC_STATE_STENCIL_OP_EXT' specifies that the @failOp@, @passOp@, -- @depthFailOp@, and @compareOp@ states in -- 'Vulkan.Core10.Pipeline.PipelineDepthStencilStateCreateInfo' for both@@ -195,19 +248,19 @@ -- and the specific topology order and adjacency /must/ be set dynamically -- with -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopologyEXT'--- before any draw commands.+-- before any drawing commands. pattern DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT              = DynamicState 1000267002 -- | 'DYNAMIC_STATE_FRONT_FACE_EXT' specifies that the @frontFace@ state in -- 'Vulkan.Core10.Pipeline.PipelineRasterizationStateCreateInfo' will be -- ignored and /must/ be set dynamically with -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetFrontFaceEXT'--- before any draw commands.+-- before any drawing commands. pattern DYNAMIC_STATE_FRONT_FACE_EXT                      = DynamicState 1000267001 -- | 'DYNAMIC_STATE_CULL_MODE_EXT' specifies that the @cullMode@ state in -- 'Vulkan.Core10.Pipeline.PipelineRasterizationStateCreateInfo' will be -- ignored and /must/ be set dynamically with -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetCullModeEXT'--- before any draw commands.+-- before any drawing commands. pattern DYNAMIC_STATE_CULL_MODE_EXT                       = DynamicState 1000267000 -- | 'DYNAMIC_STATE_LINE_STIPPLE_EXT' specifies that the @lineStippleFactor@ -- and @lineStipplePattern@ state in@@ -227,14 +280,14 @@ -- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR' -- or -- 'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.cmdSetFragmentShadingRateEnumNV'--- before any draw commands.+-- before any drawing commands. pattern DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR           = DynamicState 1000226000 -- | 'DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV' specifies that the -- @pExclusiveScissors@ state in -- 'Vulkan.Extensions.VK_NV_scissor_exclusive.PipelineViewportExclusiveScissorStateCreateInfoNV' -- will be ignored and /must/ be set dynamically with -- 'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorNV'--- before any draw commands. The number of exclusive scissor rectangles+-- before any drawing commands. The number of exclusive scissor rectangles -- used by a pipeline is still specified by the @exclusiveScissorCount@ -- member of -- 'Vulkan.Extensions.VK_NV_scissor_exclusive.PipelineViewportExclusiveScissorStateCreateInfoNV'.@@ -244,14 +297,14 @@ -- 'Vulkan.Extensions.VK_NV_shading_rate_image.PipelineViewportCoarseSampleOrderStateCreateInfoNV' -- will be ignored and /must/ be set dynamically with -- 'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetCoarseSampleOrderNV'--- before any draw commands.+-- before any drawing commands. pattern DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV     = DynamicState 1000164006 -- | 'DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV' specifies that the -- @pShadingRatePalettes@ state in -- 'Vulkan.Extensions.VK_NV_shading_rate_image.PipelineViewportShadingRateImageStateCreateInfoNV' -- will be ignored and /must/ be set dynamically with -- 'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetViewportShadingRatePaletteNV'--- before any draw commands.+-- before any drawing commands. pattern DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV    = DynamicState 1000164004 -- | 'DYNAMIC_STATE_RAY_TRACING_PIPELINE_STACK_SIZE_KHR' specifies that the -- default stack size computation for the pipeline will be ignored and@@ -298,6 +351,13 @@              DYNAMIC_STATE_STENCIL_COMPARE_MASK,              DYNAMIC_STATE_STENCIL_WRITE_MASK,              DYNAMIC_STATE_STENCIL_REFERENCE,+             DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT,+             DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT,+             DYNAMIC_STATE_LOGIC_OP_EXT,+             DYNAMIC_STATE_DEPTH_BIAS_ENABLE_EXT,+             DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT,+             DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT,+             DYNAMIC_STATE_VERTEX_INPUT_EXT,              DYNAMIC_STATE_STENCIL_OP_EXT,              DYNAMIC_STATE_STENCIL_TEST_ENABLE_EXT,              DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE_EXT,@@ -337,6 +397,13 @@   , (DYNAMIC_STATE_STENCIL_COMPARE_MASK               , "STENCIL_COMPARE_MASK")   , (DYNAMIC_STATE_STENCIL_WRITE_MASK                 , "STENCIL_WRITE_MASK")   , (DYNAMIC_STATE_STENCIL_REFERENCE                  , "STENCIL_REFERENCE")+  , (DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT             , "COLOR_WRITE_ENABLE_EXT")+  , (DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT       , "PRIMITIVE_RESTART_ENABLE_EXT")+  , (DYNAMIC_STATE_LOGIC_OP_EXT                       , "LOGIC_OP_EXT")+  , (DYNAMIC_STATE_DEPTH_BIAS_ENABLE_EXT              , "DEPTH_BIAS_ENABLE_EXT")+  , (DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT      , "RASTERIZER_DISCARD_ENABLE_EXT")+  , (DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT           , "PATCH_CONTROL_POINTS_EXT")+  , (DYNAMIC_STATE_VERTEX_INPUT_EXT                   , "VERTEX_INPUT_EXT")   , (DYNAMIC_STATE_STENCIL_OP_EXT                     , "STENCIL_OP_EXT")   , (DYNAMIC_STATE_STENCIL_TEST_ENABLE_EXT            , "STENCIL_TEST_ENABLE_EXT")   , (DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE_EXT       , "DEPTH_BOUNDS_TEST_ENABLE_EXT")
src/Vulkan/Core10/Enums/Format.hs view
@@ -187,6 +187,10 @@                                           , FORMAT_ASTC_12x12_SRGB_BLOCK                                           , FORMAT_A4B4G4R4_UNORM_PACK16_EXT                                           , FORMAT_A4R4G4B4_UNORM_PACK16_EXT+                                          , FORMAT_G16_B16R16_2PLANE_444_UNORM_EXT+                                          , FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16_EXT+                                          , FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16_EXT+                                          , FORMAT_G8_B8R8_2PLANE_444_UNORM_EXT                                           , FORMAT_ASTC_12x12_SFLOAT_BLOCK_EXT                                           , FORMAT_ASTC_12x10_SFLOAT_BLOCK_EXT                                           , FORMAT_ASTC_10x10_SFLOAT_BLOCK_EXT@@ -277,6 +281,9 @@ -- 'Vulkan.Extensions.VK_KHR_surface.SurfaceFormatKHR', -- 'Vulkan.Extensions.VK_KHR_swapchain.SwapchainCreateInfoKHR', -- 'Vulkan.Core10.Pipeline.VertexInputAttributeDescription',+-- 'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT',+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoFormatPropertiesKHR VkVideoFormatPropertiesKHR>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoSessionCreateInfoKHR VkVideoSessionCreateInfoKHR>, -- 'Vulkan.Extensions.VK_NV_external_memory_capabilities.getPhysicalDeviceExternalImageFormatPropertiesNV', -- 'Vulkan.Core10.DeviceInitialization.getPhysicalDeviceFormatProperties', -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceFormatProperties2',@@ -840,10 +847,10 @@ -- optionally:, 8 bits that are unused. pattern FORMAT_X8_D24_UNORM_PACK32                = Format 125 -- | 'FORMAT_D32_SFLOAT' specifies a one-component, 32-bit signed--- floating-point format that has 32-bits in the depth component.+-- floating-point format that has 32 bits in the depth component. pattern FORMAT_D32_SFLOAT                         = Format 126 -- | 'FORMAT_S8_UINT' specifies a one-component, 8-bit unsigned integer--- format that has 8-bits in the stencil component.+-- format that has 8 bits in the stencil component. pattern FORMAT_S8_UINT                            = Format 127 -- | 'FORMAT_D16_UNORM_S8_UINT' specifies a two-component, 24-bit format that -- has 16 unsigned normalized bits in the depth component and 8 unsigned@@ -855,7 +862,7 @@ pattern FORMAT_D24_UNORM_S8_UINT                  = Format 129 -- | 'FORMAT_D32_SFLOAT_S8_UINT' specifies a two-component format that has 32 -- signed float bits in the depth component and 8 unsigned integer bits in--- the stencil component. There are optionally: 24-bits that are unused.+-- the stencil component. There are optionally: 24 bits that are unused. pattern FORMAT_D32_SFLOAT_S8_UINT                 = Format 130 -- | 'FORMAT_BC1_RGB_UNORM_BLOCK' specifies a three-component, -- block-compressed format where each 64-bit compressed texel block encodes@@ -1119,6 +1126,61 @@ -- 12..15, a 4-bit R component in bits 8..11, a 4-bit G component in bits -- 4..7, and a 4-bit B component in bits 0..3. pattern FORMAT_A4R4G4B4_UNORM_PACK16_EXT          = Format 1000340000+-- | 'FORMAT_G16_B16R16_2PLANE_444_UNORM_EXT' specifies an unsigned+-- normalized /multi-planar format/ that has a 16-bit G component in each+-- 16-bit word of plane 0, and a two-component, 32-bit BR plane 1+-- consisting of a 16-bit B component in the word in bytes 0..1, and a+-- 16-bit R component in the word in bytes 2..3. Both planes have the same+-- dimensions and each R, G and B component contributes to a single texel.+-- The location of each plane when this image is in linear layout can be+-- determined via 'Vulkan.Core10.Image.getImageSubresourceLayout', using+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT' for+-- the G plane, and+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT' for+-- the BR plane.+pattern FORMAT_G16_B16R16_2PLANE_444_UNORM_EXT    = Format 1000330003+-- | 'FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16_EXT' specifies an+-- unsigned normalized /multi-planar format/ that has a 12-bit G component+-- in the top 12 bits of each 16-bit word of plane 0, and a two-component,+-- 32-bit BR plane 1 consisting of a 12-bit B component in the top 12 bits+-- of the word in bytes 0..1, and a 12-bit R component in the top 12 bits+-- of the word in bytes 2..3, the bottom 4 bits of each word unused. Both+-- planes have the same dimensions and each R, G and B component+-- contributes to a single texel. The location of each plane when this+-- image is in linear layout can be determined via+-- 'Vulkan.Core10.Image.getImageSubresourceLayout', using+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT' for+-- the G plane, and+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT' for+-- the BR plane.+pattern FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16_EXT = Format 1000330002+-- | 'FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16_EXT' specifies an+-- unsigned normalized /multi-planar format/ that has a 10-bit G component+-- in the top 10 bits of each 16-bit word of plane 0, and a two-component,+-- 32-bit BR plane 1 consisting of a 10-bit B component in the top 10 bits+-- of the word in bytes 0..1, and a 10-bit R component in the top 10 bits+-- of the word in bytes 2..3, the bottom 6 bits of each word unused. Both+-- planes have the same dimensions and each R, G and B component+-- contributes to a single texel. The location of each plane when this+-- image is in linear layout can be determined via+-- 'Vulkan.Core10.Image.getImageSubresourceLayout', using+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT' for+-- the G plane, and+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT' for+-- the BR plane.+pattern FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16_EXT = Format 1000330001+-- | 'FORMAT_G8_B8R8_2PLANE_444_UNORM_EXT' specifies an unsigned normalized+-- /multi-planar format/ that has an 8-bit G component in plane 0, and a+-- two-component, 16-bit BR plane 1 consisting of an 8-bit B component in+-- byte 0 and an 8-bit R component in byte 1. Both planes have the same+-- dimensions and each R, G and B component contributes to a single texel.+-- The location of each plane when this image is in linear layout can be+-- determined via 'Vulkan.Core10.Image.getImageSubresourceLayout', using+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT' for+-- the G plane, and+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT' for+-- the BR plane.+pattern FORMAT_G8_B8R8_2PLANE_444_UNORM_EXT       = Format 1000330000 -- | 'FORMAT_ASTC_12x12_SFLOAT_BLOCK_EXT' specifies a four-component, ASTC -- compressed format where each 128-bit compressed texel block encodes a -- 12×12 rectangle of signed floating-point RGBA texel data.@@ -1229,14 +1291,14 @@ -- /multi-planar format/ that has a 16-bit G component in each 16-bit word -- of plane 0, and a two-component, 32-bit BR plane 1 consisting of a -- 16-bit B component in the word in bytes 0..1, and a 16-bit R component--- in the word in bytes 2..3. The horizontal dimensions of the BR plane is+-- in the word in bytes 2..3. The horizontal dimension of the BR plane is -- halved relative to the image dimensions, and each R and B value is -- shared with the G components for which--- \(\left\lfloor i_G \times 0.5 \right\rfloor = i_B =--- i_R\). The location of each plane when this image is in linear layout--- can be determined via 'Vulkan.Core10.Image.getImageSubresourceLayout',--- using 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT'--- for the G plane, and+-- \(\left\lfloor i_G \times 0.5 \right\rfloor = i_B = i_R\). The location+-- of each plane when this image is in linear layout can be determined via+-- 'Vulkan.Core10.Image.getImageSubresourceLayout', using+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT' for+-- the G plane, and -- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT' for -- the BR plane. This format only supports images with a width that is a -- multiple of two.@@ -1263,7 +1325,7 @@ -- of plane 0, and a two-component, 32-bit BR plane 1 consisting of a -- 16-bit B component in the word in bytes 0..1, and a 16-bit R component -- in the word in bytes 2..3. The horizontal and vertical dimensions of the--- BR plane is halved relative to the image dimensions, and each R and B+-- BR plane are halved relative to the image dimensions, and each R and B -- value is shared with the G components for which -- \(\left\lfloor i_G \times 0.5 -- \right\rfloor = i_B = i_R\) and \(\left\lfloor j_G \times 0.5@@ -1344,14 +1406,14 @@ -- top 12 bits of each 16-bit word of plane 0, and a two-component, 32-bit -- BR plane 1 consisting of a 12-bit B component in the top 12 bits of the -- word in bytes 0..1, and a 12-bit R component in the top 12 bits of the--- word in bytes 2..3, the bottom 4 bits of each word unused. The--- horizontal dimensions of the BR plane is halved relative to the image+-- word in bytes 2..3, with the bottom 4 bits of each word unused. The+-- horizontal dimension of the BR plane is halved relative to the image -- dimensions, and each R and B value is shared with the G components for--- which \(\left\lfloor i_G \times 0.5 \right\rfloor = i_B =--- i_R\). The location of each plane when this image is in linear layout--- can be determined via 'Vulkan.Core10.Image.getImageSubresourceLayout',--- using 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT'--- for the G plane, and+-- which \(\left\lfloor i_G \times 0.5 \right\rfloor = i_B = i_R\). The+-- location of each plane when this image is in linear layout can be+-- determined via 'Vulkan.Core10.Image.getImageSubresourceLayout', using+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT' for+-- the G plane, and -- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT' for -- the BR plane. This format only supports images with a width that is a -- multiple of two.@@ -1380,9 +1442,9 @@ -- top 12 bits of each 16-bit word of plane 0, and a two-component, 32-bit -- BR plane 1 consisting of a 12-bit B component in the top 12 bits of the -- word in bytes 0..1, and a 12-bit R component in the top 12 bits of the--- word in bytes 2..3, the bottom 4 bits of each word unused. The--- horizontal and vertical dimensions of the BR plane is halved relative to--- the image dimensions, and each R and B value is shared with the G+-- word in bytes 2..3, with the bottom 4 bits of each word unused. The+-- horizontal and vertical dimensions of the BR plane are halved relative+-- to the image dimensions, and each R and B value is shared with the G -- components for which \(\left\lfloor i_G \times 0.5 -- \right\rfloor = i_B = i_R\) and \(\left\lfloor j_G \times 0.5 -- \right\rfloor = j_B = j_R\). The location of each plane when this image@@ -1486,14 +1548,14 @@ -- top 10 bits of each 16-bit word of plane 0, and a two-component, 32-bit -- BR plane 1 consisting of a 10-bit B component in the top 10 bits of the -- word in bytes 0..1, and a 10-bit R component in the top 10 bits of the--- word in bytes 2..3, the bottom 6 bits of each word unused. The--- horizontal dimensions of the BR plane is halved relative to the image+-- word in bytes 2..3, with the bottom 6 bits of each word unused. The+-- horizontal dimension of the BR plane is halved relative to the image -- dimensions, and each R and B value is shared with the G components for--- which \(\left\lfloor i_G \times 0.5 \right\rfloor = i_B =--- i_R\). The location of each plane when this image is in linear layout--- can be determined via 'Vulkan.Core10.Image.getImageSubresourceLayout',--- using 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT'--- for the G plane, and+-- which \(\left\lfloor i_G \times 0.5 \right\rfloor = i_B = i_R\). The+-- location of each plane when this image is in linear layout can be+-- determined via 'Vulkan.Core10.Image.getImageSubresourceLayout', using+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT' for+-- the G plane, and -- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT' for -- the BR plane. This format only supports images with a width that is a -- multiple of two.@@ -1522,9 +1584,9 @@ -- top 10 bits of each 16-bit word of plane 0, and a two-component, 32-bit -- BR plane 1 consisting of a 10-bit B component in the top 10 bits of the -- word in bytes 0..1, and a 10-bit R component in the top 10 bits of the--- word in bytes 2..3, the bottom 6 bits of each word unused. The--- horizontal and vertical dimensions of the BR plane is halved relative to--- the image dimensions, and each R and B value is shared with the G+-- word in bytes 2..3, with the bottom 6 bits of each word unused. The+-- horizontal and vertical dimensions of the BR plane are halved relative+-- to the image dimensions, and each R and B value is shared with the G -- components for which \(\left\lfloor i_G \times 0.5 -- \right\rfloor = i_B = i_R\) and \(\left\lfloor j_G \times 0.5 -- \right\rfloor = j_B = j_R\). The location of each plane when this image@@ -1624,14 +1686,14 @@ -- | 'FORMAT_G8_B8R8_2PLANE_422_UNORM' specifies an unsigned normalized -- /multi-planar format/ that has an 8-bit G component in plane 0, and a -- two-component, 16-bit BR plane 1 consisting of an 8-bit B component in--- byte 0 and an 8-bit R component in byte 1. The horizontal dimensions of+-- byte 0 and an 8-bit R component in byte 1. The horizontal dimension of -- the BR plane is halved relative to the image dimensions, and each R and -- B value is shared with the G components for which--- \(\left\lfloor i_G \times 0.5 \right\rfloor = i_B =--- i_R\). The location of each plane when this image is in linear layout--- can be determined via 'Vulkan.Core10.Image.getImageSubresourceLayout',--- using 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT'--- for the G plane, and+-- \(\left\lfloor i_G \times 0.5 \right\rfloor = i_B = i_R\). The location+-- of each plane when this image is in linear layout can be determined via+-- 'Vulkan.Core10.Image.getImageSubresourceLayout', using+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT' for+-- the G plane, and -- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT' for -- the BR plane. This format only supports images with a width that is a -- multiple of two.@@ -1656,7 +1718,7 @@ -- /multi-planar format/ that has an 8-bit G component in plane 0, and a -- two-component, 16-bit BR plane 1 consisting of an 8-bit B component in -- byte 0 and an 8-bit R component in byte 1. The horizontal and vertical--- dimensions of the BR plane is halved relative to the image dimensions,+-- dimensions of the BR plane are halved relative to the image dimensions, -- and each R and B value is shared with the G components for which -- \(\left\lfloor i_G \times 0.5 -- \right\rfloor = i_B = i_R\) and \(\left\lfloor j_G \times 0.5@@ -1900,6 +1962,10 @@              FORMAT_ASTC_12x12_SRGB_BLOCK,              FORMAT_A4B4G4R4_UNORM_PACK16_EXT,              FORMAT_A4R4G4B4_UNORM_PACK16_EXT,+             FORMAT_G16_B16R16_2PLANE_444_UNORM_EXT,+             FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16_EXT,+             FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16_EXT,+             FORMAT_G8_B8R8_2PLANE_444_UNORM_EXT,              FORMAT_ASTC_12x12_SFLOAT_BLOCK_EXT,              FORMAT_ASTC_12x10_SFLOAT_BLOCK_EXT,              FORMAT_ASTC_10x10_SFLOAT_BLOCK_EXT,@@ -2152,6 +2218,10 @@   , (FORMAT_ASTC_12x12_SRGB_BLOCK             , "ASTC_12x12_SRGB_BLOCK")   , (FORMAT_A4B4G4R4_UNORM_PACK16_EXT         , "A4B4G4R4_UNORM_PACK16_EXT")   , (FORMAT_A4R4G4B4_UNORM_PACK16_EXT         , "A4R4G4B4_UNORM_PACK16_EXT")+  , (FORMAT_G16_B16R16_2PLANE_444_UNORM_EXT   , "G16_B16R16_2PLANE_444_UNORM_EXT")+  , (FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16_EXT, "G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16_EXT")+  , (FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16_EXT, "G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16_EXT")+  , (FORMAT_G8_B8R8_2PLANE_444_UNORM_EXT      , "G8_B8R8_2PLANE_444_UNORM_EXT")   , (FORMAT_ASTC_12x12_SFLOAT_BLOCK_EXT       , "ASTC_12x12_SFLOAT_BLOCK_EXT")   , (FORMAT_ASTC_12x10_SFLOAT_BLOCK_EXT       , "ASTC_12x10_SFLOAT_BLOCK_EXT")   , (FORMAT_ASTC_10x10_SFLOAT_BLOCK_EXT       , "ASTC_10x10_SFLOAT_BLOCK_EXT")
src/Vulkan/Core10/Enums/FormatFeatureFlagBits.hs view
@@ -65,7 +65,7 @@ -- -- -   'FORMAT_FEATURE_STORAGE_IMAGE_BIT' specifies that an image view --     /can/ be used as a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-storageimage storage images>.+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-storageimage storage image>. -- -- -   'FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT' specifies that an image --     view /can/ be used as storage image that supports atomic operations.@@ -214,13 +214,13 @@ -- -   'FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR' specifies --     that an image view /can/ be used as a --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment fragment shading rate attachment>.---     An implementation /must/ not set this feature for formats that with+--     An implementation /must/ not set this feature for formats with --     numeric type other than @*UINT@, or set it as a buffer feature. -- -- The following bits /may/ be set in @bufferFeatures@, specifying that the -- features are supported by <VkBuffer.html buffers> or -- <VkBufferView.html buffer views> created with the queried--- 'Vulkan.Core10.DeviceInitialization.getPhysicalDeviceProperties'::@format@:+-- 'Vulkan.Core10.DeviceInitialization.getPhysicalDeviceFormatProperties'::@format@: -- -- -   'FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT' specifies that the format --     /can/ be used to create a buffer view that /can/ be bound to a@@ -262,7 +262,7 @@ pattern FORMAT_FEATURE_SAMPLED_IMAGE_BIT                        = FormatFeatureFlagBits 0x00000001 -- | 'FORMAT_FEATURE_STORAGE_IMAGE_BIT' specifies that an image view /can/ be -- used as a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-storageimage storage images>.+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-storageimage storage image>. pattern FORMAT_FEATURE_STORAGE_IMAGE_BIT                        = FormatFeatureFlagBits 0x00000002 -- | 'FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT' specifies that an image view -- /can/ be used as storage image that supports atomic operations.@@ -334,8 +334,8 @@ -- | 'FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR' specifies that -- an image view /can/ be used as a -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment fragment shading rate attachment>.--- An implementation /must/ not set this feature for formats that with--- numeric type other than @*UINT@, or set it as a buffer feature.+-- An implementation /must/ not set this feature for formats with numeric+-- type other than @*UINT@, or set it as a buffer feature. pattern FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = FormatFeatureFlagBits 0x40000000 -- | 'FORMAT_FEATURE_FRAGMENT_DENSITY_MAP_BIT_EXT' specifies that an image -- view /can/ be used as a
src/Vulkan/Core10/Enums/ImageAspectFlagBits.hs view
@@ -47,7 +47,6 @@ -- | 'IMAGE_ASPECT_STENCIL_BIT' specifies the stencil aspect. pattern IMAGE_ASPECT_STENCIL_BIT            = ImageAspectFlagBits 0x00000004 -- | 'IMAGE_ASPECT_METADATA_BIT' specifies the metadata aspect, used for--- sparse -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#sparsememory sparse resource> -- operations. pattern IMAGE_ASPECT_METADATA_BIT           = ImageAspectFlagBits 0x00000008
src/Vulkan/Core10/Enums/ImageCreateFlagBits.hs view
@@ -62,7 +62,7 @@ -- backed using sparse memory binding with memory ranges that might also -- simultaneously be backing another image (or another portion of the same -- image). Images created with this flag /must/ also be created with the--- 'IMAGE_CREATE_SPARSE_BINDING_BIT' flag+-- 'IMAGE_CREATE_SPARSE_BINDING_BIT' flag. pattern IMAGE_CREATE_SPARSE_ALIASED_BIT              = ImageCreateFlagBits 0x00000004 -- | 'IMAGE_CREATE_MUTABLE_FORMAT_BIT' specifies that the image /can/ be used -- to create a 'Vulkan.Core10.Handles.ImageView' with a different format
src/Vulkan/Core10/Enums/ImageLayout.hs view
@@ -11,8 +11,8 @@                                                     , IMAGE_LAYOUT_PREINITIALIZED                                                     , IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR                                                     , IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR+                                                    , IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR                                                     , IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT-                                                    , IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV                                                     , IMAGE_LAYOUT_SHARED_PRESENT_KHR                                                     , IMAGE_LAYOUT_PRESENT_SRC_KHR                                                     , IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL@@ -118,7 +118,7 @@ -- subresources of images created with the -- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_SAMPLED_BIT' or -- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_INPUT_ATTACHMENT_BIT'--- usage bit enabled.+-- usage bits enabled. pattern IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL         = ImageLayout 5 -- | 'IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL' /must/ only be used as a source -- image of a transfer command (see the definition of@@ -154,6 +154,16 @@ -- only access as an attachment, or in shaders as a sampled image, combined -- image\/sampler, or input attachment. pattern IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR            = ImageLayout 1000314000+-- | 'IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR' /must/ only+-- be used as a+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment fragment shading rate attachment>+-- or+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-shading-rate-image shading rate image>.+-- This layout is valid only for image subresources of images created with+-- the+-- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'+-- usage bit enabled.+pattern IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR = ImageLayout 1000164003 -- | 'IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT' /must/ only be used as a -- fragment density map attachment in a 'Vulkan.Core10.Handles.RenderPass'. -- This layout is valid only for image subresources of images created with@@ -161,8 +171,6 @@ -- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT' -- usage bit enabled. pattern IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT = ImageLayout 1000218000--- No documentation found for Nested "VkImageLayout" "VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV"-pattern IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV          = ImageLayout 1000164003 -- | 'IMAGE_LAYOUT_SHARED_PRESENT_KHR' is valid only for shared presentable -- images, and /must/ be used for any usage the image supports. pattern IMAGE_LAYOUT_SHARED_PRESENT_KHR               = ImageLayout 1000111000@@ -218,8 +226,8 @@              IMAGE_LAYOUT_PREINITIALIZED,              IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR,              IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR,+             IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR,              IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT,-             IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV,              IMAGE_LAYOUT_SHARED_PRESENT_KHR,              IMAGE_LAYOUT_PRESENT_SRC_KHR,              IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL,@@ -248,8 +256,8 @@   , (IMAGE_LAYOUT_PREINITIALIZED                  , "PREINITIALIZED")   , (IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR          , "ATTACHMENT_OPTIMAL_KHR")   , (IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR           , "READ_ONLY_OPTIMAL_KHR")+  , (IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR, "FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR")   , (IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT, "FRAGMENT_DENSITY_MAP_OPTIMAL_EXT")-  , (IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV         , "SHADING_RATE_OPTIMAL_NV")   , (IMAGE_LAYOUT_SHARED_PRESENT_KHR              , "SHARED_PRESENT_KHR")   , (IMAGE_LAYOUT_PRESENT_SRC_KHR                 , "PRESENT_SRC_KHR")   , (IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL       , "STENCIL_READ_ONLY_OPTIMAL")
src/Vulkan/Core10/Enums/ImageTiling.hs view
@@ -29,7 +29,7 @@   deriving newtype (Eq, Ord, Storable, Zero)  -- | 'IMAGE_TILING_OPTIMAL' specifies optimal tiling (texels are laid out in--- an implementation-dependent arrangement, for more optimal memory+-- an implementation-dependent arrangement, for more efficient memory -- access). pattern IMAGE_TILING_OPTIMAL                 = ImageTiling 0 -- | 'IMAGE_TILING_LINEAR' specifies linear tiling (texels are laid out in
src/Vulkan/Core10/Enums/ImageUsageFlagBits.hs view
@@ -9,8 +9,8 @@                                                                    , IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT                                                                    , IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT                                                                    , IMAGE_USAGE_INPUT_ATTACHMENT_BIT+                                                                   , IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR                                                                    , IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT-                                                                   , IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV                                                                    , ..                                                                    )                                                ) where@@ -38,54 +38,59 @@  -- | 'IMAGE_USAGE_TRANSFER_SRC_BIT' specifies that the image /can/ be used as -- the source of a transfer command.-pattern IMAGE_USAGE_TRANSFER_SRC_BIT             = ImageUsageFlagBits 0x00000001+pattern IMAGE_USAGE_TRANSFER_SRC_BIT                         = ImageUsageFlagBits 0x00000001 -- | 'IMAGE_USAGE_TRANSFER_DST_BIT' specifies that the image /can/ be used as -- the destination of a transfer command.-pattern IMAGE_USAGE_TRANSFER_DST_BIT             = ImageUsageFlagBits 0x00000002+pattern IMAGE_USAGE_TRANSFER_DST_BIT                         = ImageUsageFlagBits 0x00000002 -- | 'IMAGE_USAGE_SAMPLED_BIT' specifies that the image /can/ be used to -- create a 'Vulkan.Core10.Handles.ImageView' suitable for occupying a -- 'Vulkan.Core10.Handles.DescriptorSet' slot either of type -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_SAMPLED_IMAGE' or -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER', -- and be sampled by a shader.-pattern IMAGE_USAGE_SAMPLED_BIT                  = ImageUsageFlagBits 0x00000004+pattern IMAGE_USAGE_SAMPLED_BIT                              = ImageUsageFlagBits 0x00000004 -- | 'IMAGE_USAGE_STORAGE_BIT' specifies that the image /can/ be used to -- create a 'Vulkan.Core10.Handles.ImageView' suitable for occupying a -- 'Vulkan.Core10.Handles.DescriptorSet' slot of type -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_IMAGE'.-pattern IMAGE_USAGE_STORAGE_BIT                  = ImageUsageFlagBits 0x00000008+pattern IMAGE_USAGE_STORAGE_BIT                              = ImageUsageFlagBits 0x00000008 -- | 'IMAGE_USAGE_COLOR_ATTACHMENT_BIT' specifies that the image /can/ be -- used to create a 'Vulkan.Core10.Handles.ImageView' suitable for use as a -- color or resolve attachment in a 'Vulkan.Core10.Handles.Framebuffer'.-pattern IMAGE_USAGE_COLOR_ATTACHMENT_BIT         = ImageUsageFlagBits 0x00000010+pattern IMAGE_USAGE_COLOR_ATTACHMENT_BIT                     = ImageUsageFlagBits 0x00000010 -- | 'IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT' specifies that the image -- /can/ be used to create a 'Vulkan.Core10.Handles.ImageView' suitable for -- use as a depth\/stencil or depth\/stencil resolve attachment in a -- 'Vulkan.Core10.Handles.Framebuffer'.-pattern IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT = ImageUsageFlagBits 0x00000020+pattern IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT             = ImageUsageFlagBits 0x00000020 -- | 'IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT' specifies that the memory bound--- to this image will have been allocated with the+-- to this image will be allocated with the -- 'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT' -- (see -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory> -- for more detail). This bit /can/ be set for any image that /can/ be used -- to create a 'Vulkan.Core10.Handles.ImageView' suitable for use as a -- color, resolve, depth\/stencil, or input attachment.-pattern IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT     = ImageUsageFlagBits 0x00000040+pattern IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT                 = ImageUsageFlagBits 0x00000040 -- | 'IMAGE_USAGE_INPUT_ATTACHMENT_BIT' specifies that the image /can/ be -- used to create a 'Vulkan.Core10.Handles.ImageView' suitable for -- occupying 'Vulkan.Core10.Handles.DescriptorSet' slot of type -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INPUT_ATTACHMENT'; -- be read from a shader as an input attachment; and be used as an input -- attachment in a framebuffer.-pattern IMAGE_USAGE_INPUT_ATTACHMENT_BIT         = ImageUsageFlagBits 0x00000080+pattern IMAGE_USAGE_INPUT_ATTACHMENT_BIT                     = ImageUsageFlagBits 0x00000080+-- | 'IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR' specifies that+-- the image /can/ be used to create a 'Vulkan.Core10.Handles.ImageView'+-- suitable for use as a+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment fragment shading rate attachment>+-- or+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-shading-rate-image shading rate image>+pattern IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = ImageUsageFlagBits 0x00000100 -- | 'IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT' specifies that the image -- /can/ be used to create a 'Vulkan.Core10.Handles.ImageView' suitable for -- use as a -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragmentdensitymapops fragment density map image>.-pattern IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT = ImageUsageFlagBits 0x00000200--- No documentation found for Nested "VkImageUsageFlagBits" "VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV"-pattern IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV    = ImageUsageFlagBits 0x00000100+pattern IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT             = ImageUsageFlagBits 0x00000200  conNameImageUsageFlagBits :: String conNameImageUsageFlagBits = "ImageUsageFlagBits"@@ -95,16 +100,16 @@  showTableImageUsageFlagBits :: [(ImageUsageFlagBits, String)] showTableImageUsageFlagBits =-  [ (IMAGE_USAGE_TRANSFER_SRC_BIT            , "TRANSFER_SRC_BIT")-  , (IMAGE_USAGE_TRANSFER_DST_BIT            , "TRANSFER_DST_BIT")-  , (IMAGE_USAGE_SAMPLED_BIT                 , "SAMPLED_BIT")-  , (IMAGE_USAGE_STORAGE_BIT                 , "STORAGE_BIT")-  , (IMAGE_USAGE_COLOR_ATTACHMENT_BIT        , "COLOR_ATTACHMENT_BIT")-  , (IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT, "DEPTH_STENCIL_ATTACHMENT_BIT")-  , (IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT    , "TRANSIENT_ATTACHMENT_BIT")-  , (IMAGE_USAGE_INPUT_ATTACHMENT_BIT        , "INPUT_ATTACHMENT_BIT")-  , (IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT, "FRAGMENT_DENSITY_MAP_BIT_EXT")-  , (IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV   , "SHADING_RATE_IMAGE_BIT_NV")+  [ (IMAGE_USAGE_TRANSFER_SRC_BIT                        , "TRANSFER_SRC_BIT")+  , (IMAGE_USAGE_TRANSFER_DST_BIT                        , "TRANSFER_DST_BIT")+  , (IMAGE_USAGE_SAMPLED_BIT                             , "SAMPLED_BIT")+  , (IMAGE_USAGE_STORAGE_BIT                             , "STORAGE_BIT")+  , (IMAGE_USAGE_COLOR_ATTACHMENT_BIT                    , "COLOR_ATTACHMENT_BIT")+  , (IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT            , "DEPTH_STENCIL_ATTACHMENT_BIT")+  , (IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT                , "TRANSIENT_ATTACHMENT_BIT")+  , (IMAGE_USAGE_INPUT_ATTACHMENT_BIT                    , "INPUT_ATTACHMENT_BIT")+  , (IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR, "FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR")+  , (IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT            , "FRAGMENT_DENSITY_MAP_BIT_EXT")   ]  instance Show ImageUsageFlagBits where
src/Vulkan/Core10/Enums/LogicOp.hs view
@@ -93,7 +93,8 @@ -- -- = See Also ----- 'Vulkan.Core10.Pipeline.PipelineColorBlendStateCreateInfo'+-- 'Vulkan.Core10.Pipeline.PipelineColorBlendStateCreateInfo',+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetLogicOpEXT' newtype LogicOp = LogicOp Int32   deriving newtype (Eq, Ord, Storable, Zero) 
+ src/Vulkan/Core10/Enums/LogicOp.hs-boot view
@@ -0,0 +1,8 @@+{-# language CPP #-}+-- No documentation found for Chapter "LogicOp"+module Vulkan.Core10.Enums.LogicOp  (LogicOp) where++++data LogicOp+
src/Vulkan/Core10/Enums/ObjectType.hs view
@@ -34,6 +34,8 @@                                                   , OBJECT_TYPE_VALIDATION_CACHE_EXT                                                   , OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR                                                   , OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT+                                                  , OBJECT_TYPE_CU_FUNCTION_NVX+                                                  , OBJECT_TYPE_CU_MODULE_NVX                                                   , OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT                                                   , OBJECT_TYPE_DISPLAY_MODE_KHR                                                   , OBJECT_TYPE_DISPLAY_KHR@@ -225,6 +227,10 @@ pattern OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR      = ObjectType 1000150000 -- No documentation found for Nested "VkObjectType" "VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT" pattern OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT       = ObjectType 1000128000+-- No documentation found for Nested "VkObjectType" "VK_OBJECT_TYPE_CU_FUNCTION_NVX"+pattern OBJECT_TYPE_CU_FUNCTION_NVX                 = ObjectType 1000029001+-- No documentation found for Nested "VkObjectType" "VK_OBJECT_TYPE_CU_MODULE_NVX"+pattern OBJECT_TYPE_CU_MODULE_NVX                   = ObjectType 1000029000 -- No documentation found for Nested "VkObjectType" "VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT" pattern OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT       = ObjectType 1000011000 -- No documentation found for Nested "VkObjectType" "VK_OBJECT_TYPE_DISPLAY_MODE_KHR"@@ -273,6 +279,8 @@              OBJECT_TYPE_VALIDATION_CACHE_EXT,              OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR,              OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT,+             OBJECT_TYPE_CU_FUNCTION_NVX,+             OBJECT_TYPE_CU_MODULE_NVX,              OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT,              OBJECT_TYPE_DISPLAY_MODE_KHR,              OBJECT_TYPE_DISPLAY_KHR,@@ -323,6 +331,8 @@   , (OBJECT_TYPE_VALIDATION_CACHE_EXT           , "VALIDATION_CACHE_EXT")   , (OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR     , "ACCELERATION_STRUCTURE_KHR")   , (OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT      , "DEBUG_UTILS_MESSENGER_EXT")+  , (OBJECT_TYPE_CU_FUNCTION_NVX                , "CU_FUNCTION_NVX")+  , (OBJECT_TYPE_CU_MODULE_NVX                  , "CU_MODULE_NVX")   , (OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT      , "DEBUG_REPORT_CALLBACK_EXT")   , (OBJECT_TYPE_DISPLAY_MODE_KHR               , "DISPLAY_MODE_KHR")   , (OBJECT_TYPE_DISPLAY_KHR                    , "DISPLAY_KHR")
src/Vulkan/Core10/Enums/PipelineCreateFlagBits.hs view
@@ -68,9 +68,9 @@ --     on each shader in the pipeline before using the pipeline. -- -- -   'PIPELINE_CREATE_CAPTURE_STATISTICS_BIT_KHR' specifies that the---     shader compiler should capture statistics for the executables---     produced by the compile process which /can/ later be retrieved by---     calling+--     shader compiler should capture statistics for the pipeline+--     executables produced by the compile process which /can/ later be+--     retrieved by calling --     'Vulkan.Extensions.VK_KHR_pipeline_executable_properties.getPipelineExecutableStatisticsKHR'. --     Enabling this flag /must/ not affect the final compiled pipeline but --     /may/ disable pipeline caching or otherwise affect pipeline creation@@ -78,8 +78,8 @@ -- -- -   'PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR' specifies --     that the shader compiler should capture the internal representations---     of executables produced by the compile process which /can/ later be---     retrieved by calling+--     of pipeline executables produced by the compile process which /can/+--     later be retrieved by calling --     'Vulkan.Extensions.VK_KHR_pipeline_executable_properties.getPipelineExecutableInternalRepresentationsKHR'. --     Enabling this flag /must/ not affect the final compiled pipeline but --     /may/ disable pipeline caching or otherwise affect pipeline creation@@ -109,10 +109,10 @@ -- -- -   'PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR' specifies that --     triangle primitives will be skipped during traversal using---     @OpTraceKHR@.+--     @OpTraceRayKHR@. -- -- -   'PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR' specifies that AABB---     primitives will be skipped during traversal using @OpTraceKHR@.+--     primitives will be skipped during traversal using @OpTraceRayKHR@. -- -- -   '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/PipelineStageFlagBits.hs view
@@ -20,10 +20,10 @@                                                                          , PIPELINE_STAGE_ALL_COMMANDS_BIT                                                                          , PIPELINE_STAGE_NONE_KHR                                                                          , PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV+                                                                         , PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR                                                                          , PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT                                                                          , PIPELINE_STAGE_MESH_SHADER_BIT_NV                                                                          , PIPELINE_STAGE_TASK_SHADER_BIT_NV-                                                                         , PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV                                                                          , PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR                                                                          , PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR                                                                          , PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT@@ -69,8 +69,9 @@ -- execution when specified in the first scope. pattern PIPELINE_STAGE_TOP_OF_PIPE_BIT                      = PipelineStageFlagBits 0x00000001 -- | 'PIPELINE_STAGE_DRAW_INDIRECT_BIT' specifies the stage of the pipeline--- where Draw\/DispatchIndirect\/TraceRaysIndirect data structures are--- consumed. This stage also includes reading commands written by+-- where @VkDrawIndirect*@ \/ @VkDispatchIndirect*@ \/+-- @VkTraceRaysIndirect*@ data structures are consumed. This stage also+-- includes reading commands written by -- 'Vulkan.Extensions.VK_NV_device_generated_commands.cmdExecuteGeneratedCommandsNV'. pattern PIPELINE_STAGE_DRAW_INDIRECT_BIT                    = PipelineStageFlagBits 0x00000002 -- | 'PIPELINE_STAGE_VERTEX_INPUT_BIT' specifies the stage of the pipeline@@ -172,7 +173,7 @@ -- -- -   'PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT' ----- -   'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'+-- -   'PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR' -- -- -   'PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT' pattern PIPELINE_STAGE_ALL_GRAPHICS_BIT                     = PipelineStageFlagBits 0x00008000@@ -186,6 +187,14 @@ -- 'Vulkan.Extensions.VK_NV_device_generated_commands.cmdPreprocessGeneratedCommandsNV' -- is handled. pattern PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV            = PipelineStageFlagBits 0x00020000+-- | 'PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR' specifies the+-- stage of the pipeline where the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment fragment shading rate attachment>+-- or+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-shading-rate-attachment shading rate image>+-- is read to determine the fragment shading rate for portions of a+-- rasterized primitive.+pattern PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = PipelineStageFlagBits 0x00400000 -- | 'PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT' specifies the stage of -- the pipeline where the fragment density map is read to -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragmentdensitymapops generate the fragment areas>.@@ -194,8 +203,6 @@ pattern PIPELINE_STAGE_MESH_SHADER_BIT_NV                   = PipelineStageFlagBits 0x00100000 -- | 'PIPELINE_STAGE_TASK_SHADER_BIT_NV' specifies the task shader stage. pattern PIPELINE_STAGE_TASK_SHADER_BIT_NV                   = PipelineStageFlagBits 0x00080000--- No documentation found for Nested "VkPipelineStageFlagBits" "VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV"-pattern PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV            = PipelineStageFlagBits 0x00400000 -- | 'PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR' specifies the execution of -- the ray tracing shader stages, via -- 'Vulkan.Extensions.VK_NV_ray_tracing.cmdTraceRaysNV' ,@@ -251,10 +258,10 @@   , (PIPELINE_STAGE_ALL_COMMANDS_BIT                    , "ALL_COMMANDS_BIT")   , (PIPELINE_STAGE_NONE_KHR                            , "NONE_KHR")   , (PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV           , "COMMAND_PREPROCESS_BIT_NV")+  , (PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR, "FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR")   , (PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT    , "FRAGMENT_DENSITY_PROCESS_BIT_EXT")   , (PIPELINE_STAGE_MESH_SHADER_BIT_NV                  , "MESH_SHADER_BIT_NV")   , (PIPELINE_STAGE_TASK_SHADER_BIT_NV                  , "TASK_SHADER_BIT_NV")-  , (PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV           , "SHADING_RATE_IMAGE_BIT_NV")   , (PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR          , "RAY_TRACING_SHADER_BIT_KHR")   , (PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, "ACCELERATION_STRUCTURE_BUILD_BIT_KHR")   , (PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT       , "CONDITIONAL_RENDERING_BIT_EXT")
src/Vulkan/Core10/Enums/PrimitiveTopology.hs view
@@ -37,9 +37,8 @@ -- | <<data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIElua3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8pIC0tPgoKPHN2ZwogICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgIHhtbG5zOmNjPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9ucyMiCiAgIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyIKICAgeG1sbnM6c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB4bWxuczpzb2RpcG9kaT0iaHR0cDovL3NvZGlwb2RpLnNvdXJjZWZvcmdlLm5ldC9EVEQvc29kaXBvZGktMC5kdGQiCiAgIHhtbG5zOmlua3NjYXBlPSJodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy9uYW1lc3BhY2VzL2lua3NjYXBlIgogICB3aWR0aD0iOS41NzgxMjUiCiAgIGhlaWdodD0iMTMuODc1IgogICB2aWV3Qm94PSIwIDAgOS41NzgxMjUxIDEzLjg3NSIKICAgdmVyc2lvbj0iMS4xIgogICBpZD0ic3ZnODY1MyIKICAgaW5rc2NhcGU6dmVyc2lvbj0iMC45Mi40ICg1ZGE2ODljMzEzLCAyMDE5LTAxLTE0KSIKICAgc29kaXBvZGk6ZG9jbmFtZT0icHJpbWl0aXZlX3RvcG9sb2d5X2tleV92ZXJ0ZXhfbnVtYmVyLnN2ZyI+CiAgPGRlZnMKICAgICBpZD0iZGVmczg2NDciIC8+CiAgPHNvZGlwb2RpOm5hbWVkdmlldwogICAgIGlkPSJiYXNlIgogICAgIHBhZ2Vjb2xvcj0iI2ZmZmZmZiIKICAgICBib3JkZXJjb2xvcj0iIzY2NjY2NiIKICAgICBib3JkZXJvcGFjaXR5PSIxLjAiCiAgICAgaW5rc2NhcGU6cGFnZW9wYWNpdHk9IjAuMCIKICAgICBpbmtzY2FwZTpwYWdlc2hhZG93PSIyIgogICAgIGlua3NjYXBlOnpvb209IjIuODI4NDI3MSIKICAgICBpbmtzY2FwZTpjeD0iNzguNTg2NDQiCiAgICAgaW5rc2NhcGU6Y3k9Ii02OS41NjgzODgiCiAgICAgaW5rc2NhcGU6ZG9jdW1lbnQtdW5pdHM9InB4IgogICAgIGlua3NjYXBlOmN1cnJlbnQtbGF5ZXI9ImxheWVyMSIKICAgICBzaG93Z3JpZD0idHJ1ZSIKICAgICBpbmtzY2FwZTp3aW5kb3ctd2lkdGg9IjE5MjAiCiAgICAgaW5rc2NhcGU6d2luZG93LWhlaWdodD0iMTAwMSIKICAgICBpbmtzY2FwZTp3aW5kb3cteD0iLTkiCiAgICAgaW5rc2NhcGU6d2luZG93LXk9Ii05IgogICAgIGlua3NjYXBlOndpbmRvdy1tYXhpbWl6ZWQ9IjAiCiAgICAgZml0LW1hcmdpbi10b3A9IjEiCiAgICAgZml0LW1hcmdpbi1sZWZ0PSIxIgogICAgIGZpdC1tYXJnaW4tcmlnaHQ9IjEiCiAgICAgZml0LW1hcmdpbi1ib3R0b209IjEiCiAgICAgaW5rc2NhcGU6c25hcC1ncmlkcz0idHJ1ZSIKICAgICBpbmtzY2FwZTpzbmFwLXRleHQtYmFzZWxpbmU9InRydWUiCiAgICAgaW5rc2NhcGU6c25hcC1vYmplY3QtbWlkcG9pbnRzPSJ0cnVlIgogICAgIHVuaXRzPSJweCIKICAgICBib3JkZXJsYXllcj0iZmFsc2UiPgogICAgPGlua3NjYXBlOmdyaWQKICAgICAgIHR5cGU9Inh5Z3JpZCIKICAgICAgIGlkPSJncmlkOTYyNiIKICAgICAgIG9yaWdpbng9Ii05MC4zNjcxOTEiCiAgICAgICBvcmlnaW55PSItNjE4Ljc1Nzg0IiAvPgogIDwvc29kaXBvZGk6bmFtZWR2aWV3PgogIDxtZXRhZGF0YQogICAgIGlkPSJtZXRhZGF0YTg2NTAiPgogICAgPHJkZjpSREY+CiAgICAgIDxjYzpXb3JrCiAgICAgICAgIHJkZjphYm91dD0iIj4KICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3N2Zyt4bWw8L2RjOmZvcm1hdD4KICAgICAgICA8ZGM6dHlwZQogICAgICAgICAgIHJkZjpyZXNvdXJjZT0iaHR0cDovL3B1cmwub3JnL2RjL2RjbWl0eXBlL1N0aWxsSW1hZ2UiIC8+CiAgICAgICAgPGRjOnRpdGxlPjwvZGM6dGl0bGU+CiAgICAgIDwvY2M6V29yaz4KICAgIDwvcmRmOlJERj4KICA8L21ldGFkYXRhPgogIDxnCiAgICAgaW5rc2NhcGU6bGFiZWw9IkxheWVyIDEiCiAgICAgaW5rc2NhcGU6Z3JvdXBtb2RlPSJsYXllciIKICAgICBpZD0ibGF5ZXIxIgogICAgIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0xMDIuOTAxNTgsMjEwLjY2Nzg2KSI+CiAgICA8dGV4dAogICAgICAgeG1sOnNwYWNlPSJwcmVzZXJ2ZSIKICAgICAgIHN0eWxlPSJmb250LXN0eWxlOm5vcm1hbDtmb250LXZhcmlhbnQ6bm9ybWFsO2ZvbnQtd2VpZ2h0Om5vcm1hbDtmb250LXN0cmV0Y2g6bm9ybWFsO2ZvbnQtc2l6ZToxNnB4O2xpbmUtaGVpZ2h0OjEuMjU7Zm9udC1mYW1pbHk6c2Fucy1zZXJpZjstaW5rc2NhcGUtZm9udC1zcGVjaWZpY2F0aW9uOidzYW5zLXNlcmlmLCBOb3JtYWwnO2ZvbnQtdmFyaWFudC1saWdhdHVyZXM6bm9ybWFsO2ZvbnQtdmFyaWFudC1jYXBzOm5vcm1hbDtmb250LXZhcmlhbnQtbnVtZXJpYzpub3JtYWw7Zm9udC1mZWF0dXJlLXNldHRpbmdzOm5vcm1hbDt0ZXh0LWFsaWduOmNlbnRlcjtsZXR0ZXItc3BhY2luZzowcHg7d29yZC1zcGFjaW5nOjBweDt3cml0aW5nLW1vZGU6bHItdGI7dGV4dC1hbmNob3I6bWlkZGxlO2ZpbGw6IzAwMDAwMDtmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZTtzdHJva2Utd2lkdGg6MS4xNjQyNzM5OCIKICAgICAgIHg9IjEwNy41MzQzOSIKICAgICAgIHk9Ii0xOTguMDM1MDUiCiAgICAgICBpZD0idGV4dDUwNzAtMi0yLTktOS00MS05Ij48dHNwYW4KICAgICAgICAgc29kaXBvZGk6cm9sZT0ibGluZSIKICAgICAgICAgaWQ9InRzcGFuNTA2OC0wLTMtMzYtOS0xLTUiCiAgICAgICAgIHg9IjEwNy41MzQzOSIKICAgICAgICAgeT0iLTE5OC4wMzUwNSIKICAgICAgICAgc3R5bGU9ImZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudDpub3JtYWw7Zm9udC13ZWlnaHQ6bm9ybWFsO2ZvbnQtc3RyZXRjaDpub3JtYWw7Zm9udC1zaXplOjE2cHg7Zm9udC1mYW1pbHk6c2Fucy1zZXJpZjstaW5rc2NhcGUtZm9udC1zcGVjaWZpY2F0aW9uOidzYW5zLXNlcmlmLCBOb3JtYWwnO2ZvbnQtdmFyaWFudC1saWdhdHVyZXM6bm9ybWFsO2ZvbnQtdmFyaWFudC1jYXBzOm5vcm1hbDtmb250LXZhcmlhbnQtbnVtZXJpYzpub3JtYWw7Zm9udC1mZWF0dXJlLXNldHRpbmdzOm5vcm1hbDt0ZXh0LWFsaWduOmNlbnRlcjt3cml0aW5nLW1vZGU6bHItdGI7dGV4dC1hbmNob3I6bWlkZGxlO2ZpbGw6IzAwMDAwMDtmaWxsLW9wYWNpdHk6MTtzdHJva2Utd2lkdGg6MS4xNjQyNzM5OCI+NTwvdHNwYW4+PC90ZXh0PgogIDwvZz4KPC9zdmc+Cg== primitive topology key vertex number>>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     | Vertex    | Sequence position of a vertex within the provided vertex data.                                                                 | -- |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 | Number    |                                                                                                                                | -- +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------+--------------------------------------------------------------------------------------------------------------------------------+--- | <<data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIElua3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8pIC0tPgoKPHN2ZwogICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgIHhtbG5zOmNjPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9ucyMiCiAgIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyIKICAgeG1sbnM6c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB4bWxuczpzb2RpcG9kaT0iaHR0cDovL3NvZGlwb2RpLnNvdXJjZWZvcmdlLm5ldC9EVEQvc29kaXBvZGktMC5kdGQiCiAgIHhtbG5zOmlua3NjYXBlPSJodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy9uYW1lc3BhY2VzL2lua3NjYXBlIgogICB3aWR0aD0iNTcuNDYxNTcxIgogICBoZWlnaHQ9IjguOTgxNzg2NyIKICAgdmlld0JveD0iMCAwIDU3LjQ2MTU3MSA4Ljk4MTc4NyIKICAgdmVyc2lvbj0iMS4xIgogICBpZD0ic3ZnODY1MyIKICAgaW5rc2NhcGU6dmVyc2lvbj0iMC45Mi40ICg1ZGE2ODljMzEzLCAyMDE5LTAxLTE0KSIKICAgc29kaXBvZGk6ZG9jbmFtZT0icHJpbWl0aXZlX3RvcG9sb2d5X2tleV9wcm92b2tpbmdfdmVydGV4LnN2ZyI+CiAgPGRlZnMKICAgICBpZD0iZGVmczg2NDciPgogICAgPG1hcmtlcgogICAgICAgaW5rc2NhcGU6c3RvY2tpZD0iQXJyb3cxTXN0YXJ0IgogICAgICAgb3JpZW50PSJhdXRvIgogICAgICAgcmVmWT0iMCIKICAgICAgIHJlZlg9IjAiCiAgICAgICBpZD0ibWFya2VyNjc0NC04LTItMiIKICAgICAgIHN0eWxlPSJvdmVyZmxvdzp2aXNpYmxlIgogICAgICAgaW5rc2NhcGU6aXNzdG9jaz0idHJ1ZSI+CiAgICAgIDxwYXRoCiAgICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiCiAgICAgICAgIGlkPSJwYXRoNjc0Mi05LTY3LTUiCiAgICAgICAgIGQ9Ik0gMCwwIDUsLTUgLTEyLjUsMCA1LDUgWiIKICAgICAgICAgc3R5bGU9ImZpbGw6I2ZiMDAwMDtmaWxsLW9wYWNpdHk6MTtmaWxsLXJ1bGU6ZXZlbm9kZDtzdHJva2U6I2ZiMDAwMDtzdHJva2Utd2lkdGg6MS4wMDAwMDAwM3B0O3N0cm9rZS1vcGFjaXR5OjEiCiAgICAgICAgIHRyYW5zZm9ybT0ibWF0cml4KDAuNCwwLDAsMC40LDQsMCkiIC8+CiAgICA8L21hcmtlcj4KICA8L2RlZnM+CiAgPHNvZGlwb2RpOm5hbWVkdmlldwogICAgIGlkPSJiYXNlIgogICAgIHBhZ2Vjb2xvcj0iI2ZmZmZmZiIKICAgICBib3JkZXJjb2xvcj0iIzY2NjY2NiIKICAgICBib3JkZXJvcGFjaXR5PSIxLjAiCiAgICAgaW5rc2NhcGU6cGFnZW9wYWNpdHk9IjAuMCIKICAgICBpbmtzY2FwZTpwYWdlc2hhZG93PSIyIgogICAgIGlua3NjYXBlOnpvb209IjIuODI4NDI3MSIKICAgICBpbmtzY2FwZTpjeD0iLTEzOC43MDg0NCIKICAgICBpbmtzY2FwZTpjeT0iLTU1Ljg2NTYyOCIKICAgICBpbmtzY2FwZTpkb2N1bWVudC11bml0cz0icHgiCiAgICAgaW5rc2NhcGU6Y3VycmVudC1sYXllcj0ibGF5ZXIxIgogICAgIHNob3dncmlkPSJ0cnVlIgogICAgIGlua3NjYXBlOndpbmRvdy13aWR0aD0iMjU5NSIKICAgICBpbmtzY2FwZTp3aW5kb3ctaGVpZ2h0PSIxNDk1IgogICAgIGlua3NjYXBlOndpbmRvdy14PSI0ODEiCiAgICAgaW5rc2NhcGU6d2luZG93LXk9IjE5MSIKICAgICBpbmtzY2FwZTp3aW5kb3ctbWF4aW1pemVkPSIwIgogICAgIGZpdC1tYXJnaW4tdG9wPSIxIgogICAgIGZpdC1tYXJnaW4tbGVmdD0iMSIKICAgICBmaXQtbWFyZ2luLXJpZ2h0PSIxIgogICAgIGZpdC1tYXJnaW4tYm90dG9tPSIxIgogICAgIGlua3NjYXBlOnNuYXAtZ3JpZHM9InRydWUiCiAgICAgaW5rc2NhcGU6c25hcC10ZXh0LWJhc2VsaW5lPSJ0cnVlIgogICAgIGlua3NjYXBlOnNuYXAtb2JqZWN0LW1pZHBvaW50cz0idHJ1ZSIKICAgICB1bml0cz0icHgiCiAgICAgYm9yZGVybGF5ZXI9ImZhbHNlIj4KICAgIDxpbmtzY2FwZTpncmlkCiAgICAgICB0eXBlPSJ4eWdyaWQiCiAgICAgICBpZD0iZ3JpZDk2MjYiCiAgICAgICBvcmlnaW54PSItOTAuNTA5MTEiCiAgICAgICBvcmlnaW55PSItNTk1LjUwOTE2IiAvPgogIDwvc29kaXBvZGk6bmFtZWR2aWV3PgogIDxtZXRhZGF0YQogICAgIGlkPSJtZXRhZGF0YTg2NTAiPgogICAgPHJkZjpSREY+CiAgICAgIDxjYzpXb3JrCiAgICAgICAgIHJkZjphYm91dD0iIj4KICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3N2Zyt4bWw8L2RjOmZvcm1hdD4KICAgICAgICA8ZGM6dHlwZQogICAgICAgICAgIHJkZjpyZXNvdXJjZT0iaHR0cDovL3B1cmwub3JnL2RjL2RjbWl0eXBlL1N0aWxsSW1hZ2UiIC8+CiAgICAgICAgPGRjOnRpdGxlIC8+CiAgICAgIDwvY2M6V29yaz4KICAgIDwvcmRmOlJERj4KICA8L21ldGFkYXRhPgogIDxnCiAgICAgaW5rc2NhcGU6bGFiZWw9IkxheWVyIDEiCiAgICAgaW5rc2NhcGU6Z3JvdXBtb2RlPSJsYXllciIKICAgICBpZD0ibGF5ZXIxIgogICAgIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0xMDMuMDQzNSwxODIuNTI1OTUpIj4KICAgIDxnCiAgICAgICB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMTMwLDM1LjAwMDA1NykiCiAgICAgICBpZD0iZzExOTEzLTAiPgogICAgICA8cGF0aAogICAgICAgICBzb2RpcG9kaTpub2RldHlwZXM9ImNjIgogICAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIgogICAgICAgICBpZD0icGF0aDE4NzItMi0zLTEtMS01IgogICAgICAgICBkPSJtIDI4Ny41MzQzOSwtMjEzLjAzNTExIGggLTUwIgogICAgICAgICBzdHlsZT0iZmlsbDpub25lO3N0cm9rZTojZmIwMDAwO3N0cm9rZS13aWR0aDoxcHg7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW9wYWNpdHk6MTttYXJrZXItc3RhcnQ6dXJsKCNtYXJrZXI2NzQ0LTgtMi0yKSIgLz4KICAgICAgPGNpcmNsZQogICAgICAgICByPSIzLjQ5MDg5MzEiCiAgICAgICAgIGN5PSItMjEzLjAzNTExIgogICAgICAgICBjeD0iMjM3LjUzNDM5IgogICAgICAgICBpZD0icGF0aDQ1MTctMC04LTUtOTEtMC0zLTgiCiAgICAgICAgIHN0eWxlPSJmaWxsOiNmZjAwMDA7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmU7c3Ryb2tlLXdpZHRoOjE7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2UtZGFzaGFycmF5Om5vbmU7c3Ryb2tlLW9wYWNpdHk6MSIgLz4KICAgIDwvZz4KICA8L2c+Cjwvc3ZnPgo= primitive topology key provoking vertex>>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              | Provoking | Provoking vertex within the main primitive. The arrow points along an edge of the relevant primitive, following winding order. |--- |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 | Vertex    | Used in                                                                                                                        |--- |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |           | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vertexpostproc-flatshading flat shading>.       |+-- | <<data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIElua3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8pIC0tPgoKPHN2ZwogICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgIHhtbG5zOmNjPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9ucyMiCiAgIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyIKICAgeG1sbnM6c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB4bWxuczpzb2RpcG9kaT0iaHR0cDovL3NvZGlwb2RpLnNvdXJjZWZvcmdlLm5ldC9EVEQvc29kaXBvZGktMC5kdGQiCiAgIHhtbG5zOmlua3NjYXBlPSJodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy9uYW1lc3BhY2VzL2lua3NjYXBlIgogICB3aWR0aD0iMTUuNzE0ODQ5IgogICBoZWlnaHQ9IjEwLjkzODc2MiIKICAgdmlld0JveD0iMCAwIDE1LjcxNDg0OSAxMC45Mzg3NjIiCiAgIHZlcnNpb249IjEuMSIKICAgaWQ9InN2Zzg2NTMiCiAgIGlua3NjYXBlOnZlcnNpb249IjAuOTIuNCAoNWRhNjg5YzMxMywgMjAxOS0wMS0xNCkiCiAgIHNvZGlwb2RpOmRvY25hbWU9InByaW1pdGl2ZV90b3BvbG9neV9rZXlfcHJvdm9raW5nX3ZlcnRleC5zdmciPgogIDxkZWZzCiAgICAgaWQ9ImRlZnM4NjQ3IiAvPgogIDxzb2RpcG9kaTpuYW1lZHZpZXcKICAgICBpZD0iYmFzZSIKICAgICBwYWdlY29sb3I9IiNmZmZmZmYiCiAgICAgYm9yZGVyY29sb3I9IiM2NjY2NjYiCiAgICAgYm9yZGVyb3BhY2l0eT0iMS4wIgogICAgIGlua3NjYXBlOnBhZ2VvcGFjaXR5PSIwLjAiCiAgICAgaW5rc2NhcGU6cGFnZXNoYWRvdz0iMiIKICAgICBpbmtzY2FwZTp6b29tPSIyLjgyODQyNzEiCiAgICAgaW5rc2NhcGU6Y3g9Ii0xMzguNzA4NDQiCiAgICAgaW5rc2NhcGU6Y3k9Ii01NS44NjU2MjgiCiAgICAgaW5rc2NhcGU6ZG9jdW1lbnQtdW5pdHM9InB4IgogICAgIGlua3NjYXBlOmN1cnJlbnQtbGF5ZXI9ImxheWVyMSIKICAgICBzaG93Z3JpZD0idHJ1ZSIKICAgICBpbmtzY2FwZTp3aW5kb3ctd2lkdGg9IjI1OTUiCiAgICAgaW5rc2NhcGU6d2luZG93LWhlaWdodD0iMTQ5NSIKICAgICBpbmtzY2FwZTp3aW5kb3cteD0iNDgxIgogICAgIGlua3NjYXBlOndpbmRvdy15PSIxOTEiCiAgICAgaW5rc2NhcGU6d2luZG93LW1heGltaXplZD0iMCIKICAgICBmaXQtbWFyZ2luLXRvcD0iMSIKICAgICBmaXQtbWFyZ2luLWxlZnQ9IjEiCiAgICAgZml0LW1hcmdpbi1yaWdodD0iMSIKICAgICBmaXQtbWFyZ2luLWJvdHRvbT0iMSIKICAgICBpbmtzY2FwZTpzbmFwLWdyaWRzPSJ0cnVlIgogICAgIGlua3NjYXBlOnNuYXAtdGV4dC1iYXNlbGluZT0idHJ1ZSIKICAgICBpbmtzY2FwZTpzbmFwLW9iamVjdC1taWRwb2ludHM9InRydWUiCiAgICAgdW5pdHM9InB4IgogICAgIGJvcmRlcmxheWVyPSJmYWxzZSI+CiAgICA8aW5rc2NhcGU6Z3JpZAogICAgICAgdHlwZT0ieHlncmlkIgogICAgICAgaWQ9ImdyaWQ5NjI2IgogICAgICAgb3JpZ2lueD0iLTkwLjUwOTEwNyIKICAgICAgIG9yaWdpbnk9Ii01OTUuNTA5MTciIC8+CiAgPC9zb2RpcG9kaTpuYW1lZHZpZXc+CiAgPG1ldGFkYXRhCiAgICAgaWQ9Im1ldGFkYXRhODY1MCI+CiAgICA8cmRmOlJERj4KICAgICAgPGNjOldvcmsKICAgICAgICAgcmRmOmFib3V0PSIiPgogICAgICAgIDxkYzpmb3JtYXQ+aW1hZ2Uvc3ZnK3htbDwvZGM6Zm9ybWF0PgogICAgICAgIDxkYzp0eXBlCiAgICAgICAgICAgcmRmOnJlc291cmNlPSJodHRwOi8vcHVybC5vcmcvZGMvZGNtaXR5cGUvU3RpbGxJbWFnZSIgLz4KICAgICAgICA8ZGM6dGl0bGUgLz4KICAgICAgPC9jYzpXb3JrPgogICAgPC9yZGY6UkRGPgogIDwvbWV0YWRhdGE+CiAgPGcKICAgICBpbmtzY2FwZTpsYWJlbD0iTGF5ZXIgMSIKICAgICBpbmtzY2FwZTpncm91cG1vZGU9ImxheWVyIgogICAgIGlkPSJsYXllcjEiCiAgICAgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTEwMy4wNDM1LDE4NC40ODI5MikiPgogICAgPGNpcmNsZQogICAgICAgc3R5bGU9ImZpbGw6I2ZmMDAwMDtmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZTtzdHJva2Utd2lkdGg6MTtzdHJva2UtbWl0ZXJsaW1pdDo0O3N0cm9rZS1kYXNoYXJyYXk6bm9uZTtzdHJva2Utb3BhY2l0eToxIgogICAgICAgaWQ9InBhdGg0NTE3LTAtOC01LTkxLTAtMy04IgogICAgICAgY3g9IjEwNy41MzQzOSIKICAgICAgIGN5PSItMTc4LjAzNTA1IgogICAgICAgcj0iMy40OTA4OTMxIiAvPgogICAgPHBhdGgKICAgICAgIHN0eWxlPSJmaWxsOm5vbmU7c3Ryb2tlOiNmYTAwMDA7c3Ryb2tlLXdpZHRoOjEuMDAxNTc0NzU7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2UtZGFzaGFycmF5Om5vbmU7c3Ryb2tlLW9wYWNpdHk6MSIKICAgICAgIGQ9Im0gMTA3LjUzNDM5LC0xNzguMDM1IDEwLC01IgogICAgICAgaWQ9InBhdGg0NjcyIgogICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIgLz4KICA8L2c+Cjwvc3ZnPgo= primitive topology key provoking vertex>>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          | Provoking | Provoking vertex within the main primitive. The tail is angled towards the relevant primitive. Used in                         |+-- |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 | Vertex    | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vertexpostproc-flatshading flat shading>.       | -- +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------+--------------------------------------------------------------------------------------------------------------------------------+ -- | <<data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIElua3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8pIC0tPgoKPHN2ZwogICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgIHhtbG5zOmNjPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9ucyMiCiAgIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyIKICAgeG1sbnM6c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB4bWxuczpzb2RpcG9kaT0iaHR0cDovL3NvZGlwb2RpLnNvdXJjZWZvcmdlLm5ldC9EVEQvc29kaXBvZGktMC5kdGQiCiAgIHhtbG5zOmlua3NjYXBlPSJodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy9uYW1lc3BhY2VzL2lua3NjYXBlIgogICB3aWR0aD0iODIiCiAgIGhlaWdodD0iMyIKICAgdmlld0JveD0iMCAwIDgyLjAwMDAwMSAzLjAwMDAwMDEiCiAgIHZlcnNpb249IjEuMSIKICAgaWQ9InN2Zzg2NTMiCiAgIGlua3NjYXBlOnZlcnNpb249IjAuOTIuNCAoNWRhNjg5YzMxMywgMjAxOS0wMS0xNCkiCiAgIHNvZGlwb2RpOmRvY25hbWU9InByaW1pdGl2ZV90b3BvbG9neV9rZXlfZWRnZS5zdmciPgogIDxkZWZzCiAgICAgaWQ9ImRlZnM4NjQ3IiAvPgogIDxzb2RpcG9kaTpuYW1lZHZpZXcKICAgICBpZD0iYmFzZSIKICAgICBwYWdlY29sb3I9IiNmZmZmZmYiCiAgICAgYm9yZGVyY29sb3I9IiM2NjY2NjYiCiAgICAgYm9yZGVyb3BhY2l0eT0iMS4wIgogICAgIGlua3NjYXBlOnBhZ2VvcGFjaXR5PSIwLjAiCiAgICAgaW5rc2NhcGU6cGFnZXNoYWRvdz0iMiIKICAgICBpbmtzY2FwZTp6b29tPSIyLjgyODQyNzEiCiAgICAgaW5rc2NhcGU6Y3g9Ii0xNTUuNzc5NSIKICAgICBpbmtzY2FwZTpjeT0iLTQuNTU4MjQ3MyIKICAgICBpbmtzY2FwZTpkb2N1bWVudC11bml0cz0icHgiCiAgICAgaW5rc2NhcGU6Y3VycmVudC1sYXllcj0ibGF5ZXIxIgogICAgIHNob3dncmlkPSJ0cnVlIgogICAgIGlua3NjYXBlOndpbmRvdy13aWR0aD0iMjI2MiIKICAgICBpbmtzY2FwZTp3aW5kb3ctaGVpZ2h0PSIxNTA3IgogICAgIGlua3NjYXBlOndpbmRvdy14PSI0ODIiCiAgICAgaW5rc2NhcGU6d2luZG93LXk9IjM4NSIKICAgICBpbmtzY2FwZTp3aW5kb3ctbWF4aW1pemVkPSIwIgogICAgIGZpdC1tYXJnaW4tdG9wPSIxIgogICAgIGZpdC1tYXJnaW4tbGVmdD0iMSIKICAgICBmaXQtbWFyZ2luLXJpZ2h0PSIxIgogICAgIGZpdC1tYXJnaW4tYm90dG9tPSIxIgogICAgIGlua3NjYXBlOnNuYXAtZ3JpZHM9InRydWUiCiAgICAgaW5rc2NhcGU6c25hcC10ZXh0LWJhc2VsaW5lPSJ0cnVlIgogICAgIGlua3NjYXBlOnNuYXAtb2JqZWN0LW1pZHBvaW50cz0idHJ1ZSIKICAgICB1bml0cz0icHgiCiAgICAgYm9yZGVybGF5ZXI9ImZhbHNlIj4KICAgIDxpbmtzY2FwZTpncmlkCiAgICAgICB0eXBlPSJ4eWdyaWQiCiAgICAgICBpZD0iZ3JpZDk2MjYiCiAgICAgICBvcmlnaW54PSItMzA5IgogICAgICAgb3JpZ2lueT0iLTY0OC41MDAwMyIgLz4KICA8L3NvZGlwb2RpOm5hbWVkdmlldz4KICA8bWV0YWRhdGEKICAgICBpZD0ibWV0YWRhdGE4NjUwIj4KICAgIDxyZGY6UkRGPgogICAgICA8Y2M6V29yawogICAgICAgICByZGY6YWJvdXQ9IiI+CiAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9zdmcreG1sPC9kYzpmb3JtYXQ+CiAgICAgICAgPGRjOnR5cGUKICAgICAgICAgICByZGY6cmVzb3VyY2U9Imh0dHA6Ly9wdXJsLm9yZy9kYy9kY21pdHlwZS9TdGlsbEltYWdlIiAvPgogICAgICAgIDxkYzp0aXRsZSAvPgogICAgICA8L2NjOldvcms+CiAgICA8L3JkZjpSREY+CiAgPC9tZXRhZGF0YT4KICA8ZwogICAgIGlua3NjYXBlOmxhYmVsPSJMYXllciAxIgogICAgIGlua3NjYXBlOmdyb3VwbW9kZT0ibGF5ZXIiCiAgICAgaWQ9ImxheWVyMSIKICAgICB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMzIxLjUzNDM5LDIyOS41MzUwMykiPgogICAgPHBhdGgKICAgICAgIHN0eWxlPSJmaWxsOm5vbmU7c3Ryb2tlOiMwMDAwMDA7c3Ryb2tlLXdpZHRoOjE7c3Ryb2tlLWxpbmVjYXA6YnV0dDtzdHJva2UtbGluZWpvaW46bWl0ZXI7c3Ryb2tlLW1pdGVybGltaXQ6NDtzdHJva2UtZGFzaGFycmF5Om5vbmU7c3Ryb2tlLWRhc2hvZmZzZXQ6MDtzdHJva2Utb3BhY2l0eToxIgogICAgICAgZD0ibSAzMjIuNTM0MzksLTIyOC4wMzUwMyBoIDgwIgogICAgICAgaWQ9InBhdGgyMDMzLTEiCiAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIiAvPgogIDwvZz4KPC9zdmc+Cg== primitive topology key edge>>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      | Primitive | An edge connecting the points of a main primitive.                                                                             | -- |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 | Edge      |                                                                                                                                |
src/Vulkan/Core10/Enums/QueueFlagBits.hs view
@@ -28,29 +28,6 @@ -- -- = Description ----- -   'QUEUE_GRAPHICS_BIT' specifies that queues in this queue family---     support graphics operations.------ -   'QUEUE_COMPUTE_BIT' specifies that queues in this queue family---     support compute operations.------ -   'QUEUE_TRANSFER_BIT' specifies that queues in this queue family---     support transfer operations.------ -   'QUEUE_SPARSE_BINDING_BIT' specifies that queues in this queue---     family support sparse memory management operations (see---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#sparsememory Sparse Resources>).---     If any of the sparse resource features are enabled, then at least---     one queue family /must/ support this bit.------ -   if 'QUEUE_PROTECTED_BIT' is set, then the queues in this queue---     family support the---     'Vulkan.Core10.Enums.DeviceQueueCreateFlagBits.DEVICE_QUEUE_CREATE_PROTECTED_BIT'---     bit. (see---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-protected-memory Protected Memory>).---     If the physical device supports the @protectedMemory@ feature, at---     least one of its queue families /must/ support this bit.--- -- If an implementation exposes any queue family that supports graphics -- operations, at least one queue family of at least one physical device -- exposed by the implementation /must/ support both graphics and compute@@ -79,15 +56,28 @@ newtype QueueFlagBits = QueueFlagBits Flags   deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits) --- No documentation found for Nested "VkQueueFlagBits" "VK_QUEUE_GRAPHICS_BIT"+-- | 'QUEUE_GRAPHICS_BIT' specifies that queues in this queue family support+-- graphics operations. pattern QUEUE_GRAPHICS_BIT       = QueueFlagBits 0x00000001--- No documentation found for Nested "VkQueueFlagBits" "VK_QUEUE_COMPUTE_BIT"+-- | 'QUEUE_COMPUTE_BIT' specifies that queues in this queue family support+-- compute operations. pattern QUEUE_COMPUTE_BIT        = QueueFlagBits 0x00000002--- No documentation found for Nested "VkQueueFlagBits" "VK_QUEUE_TRANSFER_BIT"+-- | 'QUEUE_TRANSFER_BIT' specifies that queues in this queue family support+-- transfer operations. pattern QUEUE_TRANSFER_BIT       = QueueFlagBits 0x00000004--- No documentation found for Nested "VkQueueFlagBits" "VK_QUEUE_SPARSE_BINDING_BIT"+-- | 'QUEUE_SPARSE_BINDING_BIT' specifies that queues in this queue family+-- support sparse memory management operations (see+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#sparsememory Sparse Resources>).+-- If any of the sparse resource features are enabled, then at least one+-- queue family /must/ support this bit. pattern QUEUE_SPARSE_BINDING_BIT = QueueFlagBits 0x00000008--- No documentation found for Nested "VkQueueFlagBits" "VK_QUEUE_PROTECTED_BIT"+-- | 'QUEUE_PROTECTED_BIT' specifies that queues in this queue family support+-- the+-- 'Vulkan.Core10.Enums.DeviceQueueCreateFlagBits.DEVICE_QUEUE_CREATE_PROTECTED_BIT'+-- bit. (see+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-protected-memory Protected Memory>).+-- If the physical device supports the @protectedMemory@ feature, at least+-- one of its queue families /must/ support this bit. pattern QUEUE_PROTECTED_BIT      = QueueFlagBits 0x00000010  conNameQueueFlagBits :: String
src/Vulkan/Core10/Enums/StructureType.hs view
@@ -49,12 +49,18 @@                                                         , STRUCTURE_TYPE_MEMORY_BARRIER                                                         , STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO                                                         , STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO+                                                        , STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT                                                         , STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT                                                         , STRUCTURE_TYPE_SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA                                                         , STRUCTURE_TYPE_IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA                                                         , STRUCTURE_TYPE_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA                                                         , STRUCTURE_TYPE_MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA                                                         , STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA+                                                        , STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT+                                                        , STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT                                                         , STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE                                                         , STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT@@ -75,6 +81,7 @@                                                         , STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT                                                         , STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV@@ -108,6 +115,8 @@                                                         , STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT+                                                        , STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV                                                         , STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV                                                         , STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_NV@@ -133,6 +142,9 @@                                                         , STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT                                                         , STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT                                                         , STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT+                                                        , STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT                                                         , STRUCTURE_TYPE_FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV@@ -355,6 +367,9 @@                                                         , STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD                                                         , STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX                                                         , STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX+                                                        , STRUCTURE_TYPE_CU_LAUNCH_INFO_NVX+                                                        , STRUCTURE_TYPE_CU_FUNCTION_CREATE_INFO_NVX+                                                        , STRUCTURE_TYPE_CU_MODULE_CREATE_INFO_NVX                                                         , STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT@@ -505,23 +520,6 @@  -- | VkStructureType - Vulkan structure types (@sType@) ----- = Description------ Each value corresponds to a particular structure with a @sType@ member--- with a matching name. As a general rule, the name of each--- 'StructureType' value is obtained by taking the name of the structure,--- stripping the leading @Vk@, prefixing each capital letter with @_@,--- converting the entire resulting string to upper case, and prefixing it--- with @VK_STRUCTURE_TYPE_@. For example, structures of type--- 'Vulkan.Core10.Image.ImageCreateInfo' correspond to a 'StructureType' of--- 'STRUCTURE_TYPE_IMAGE_CREATE_INFO', and thus its @sType@ member /must/--- equal that when it is passed to the API.------ The values 'STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO' and--- 'STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO' are reserved for internal use--- by the loader, and do not have corresponding Vulkan structures in this--- Specification.--- -- = See Also -- -- 'Vulkan.Extensions.VK_KHR_acceleration_structure.AccelerationStructureBuildGeometryInfoKHR',@@ -576,6 +574,7 @@ -- 'Vulkan.Extensions.VK_EXT_conditional_rendering.CommandBufferInheritanceConditionalRenderingInfoEXT', -- 'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo', -- 'Vulkan.Extensions.VK_QCOM_render_pass_transform.CommandBufferInheritanceRenderPassTransformInfoQCOM',+-- 'Vulkan.Extensions.VK_NV_inherited_viewport_scissor.CommandBufferInheritanceViewportScissorInfoNV', -- 'Vulkan.Extensions.VK_KHR_synchronization2.CommandBufferSubmitInfoKHR', -- 'Vulkan.Core10.CommandPool.CommandPoolCreateInfo', -- 'Vulkan.Core10.Pipeline.ComputePipelineCreateInfo',@@ -590,6 +589,9 @@ -- 'Vulkan.Extensions.VK_KHR_copy_commands2.CopyImageInfo2KHR', -- 'Vulkan.Extensions.VK_KHR_copy_commands2.CopyImageToBufferInfo2KHR', -- 'Vulkan.Extensions.VK_KHR_acceleration_structure.CopyMemoryToAccelerationStructureInfoKHR',+-- 'Vulkan.Extensions.VK_NVX_binary_import.CuFunctionCreateInfoNVX',+-- 'Vulkan.Extensions.VK_NVX_binary_import.CuLaunchInfoNVX',+-- 'Vulkan.Extensions.VK_NVX_binary_import.CuModuleCreateInfoNVX', -- 'Vulkan.Extensions.VK_KHR_external_semaphore_win32.D3D12FenceSubmitInfoKHR', -- 'Vulkan.Extensions.VK_EXT_debug_marker.DebugMarkerMarkerInfoEXT', -- 'Vulkan.Extensions.VK_EXT_debug_marker.DebugMarkerObjectNameInfoEXT',@@ -760,6 +762,7 @@ -- 'Vulkan.Core12.Promoted_From_VK_KHR_buffer_device_address.PhysicalDeviceBufferDeviceAddressFeatures', -- 'Vulkan.Extensions.VK_EXT_buffer_device_address.PhysicalDeviceBufferDeviceAddressFeaturesEXT', -- 'Vulkan.Extensions.VK_AMD_device_coherent_memory.PhysicalDeviceCoherentMemoryFeaturesAMD',+-- 'Vulkan.Extensions.VK_EXT_color_write_enable.PhysicalDeviceColorWriteEnableFeaturesEXT', -- 'Vulkan.Extensions.VK_NV_compute_shader_derivatives.PhysicalDeviceComputeShaderDerivativesFeaturesNV', -- 'Vulkan.Extensions.VK_EXT_conditional_rendering.PhysicalDeviceConditionalRenderingFeaturesEXT', -- 'Vulkan.Extensions.VK_EXT_conservative_rasterization.PhysicalDeviceConservativeRasterizationPropertiesEXT',@@ -781,6 +784,7 @@ -- 'Vulkan.Extensions.VK_EXT_discard_rectangles.PhysicalDeviceDiscardRectanglePropertiesEXT', -- 'Vulkan.Core12.Promoted_From_VK_KHR_driver_properties.PhysicalDeviceDriverProperties', -- 'Vulkan.Extensions.VK_NV_scissor_exclusive.PhysicalDeviceExclusiveScissorFeaturesNV',+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.PhysicalDeviceExtendedDynamicState2FeaturesEXT', -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.PhysicalDeviceExtendedDynamicStateFeaturesEXT', -- 'Vulkan.Core11.Promoted_From_VK_KHR_external_memory_capabilities.PhysicalDeviceExternalBufferInfo', -- 'Vulkan.Core11.Promoted_From_VK_KHR_external_fence_capabilities.PhysicalDeviceExternalFenceInfo',@@ -809,6 +813,7 @@ -- 'Vulkan.Extensions.VK_EXT_filter_cubic.PhysicalDeviceImageViewImageFormatInfoEXT', -- 'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.PhysicalDeviceImagelessFramebufferFeatures', -- 'Vulkan.Extensions.VK_EXT_index_type_uint8.PhysicalDeviceIndexTypeUint8FeaturesEXT',+-- 'Vulkan.Extensions.VK_NV_inherited_viewport_scissor.PhysicalDeviceInheritedViewportScissorFeaturesNV', -- 'Vulkan.Extensions.VK_EXT_inline_uniform_block.PhysicalDeviceInlineUniformBlockFeaturesEXT', -- 'Vulkan.Extensions.VK_EXT_inline_uniform_block.PhysicalDeviceInlineUniformBlockPropertiesEXT', -- 'Vulkan.Extensions.VK_EXT_line_rasterization.PhysicalDeviceLineRasterizationFeaturesEXT',@@ -835,6 +840,8 @@ -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2', -- 'Vulkan.Core11.Originally_Based_On_VK_KHR_protected_memory.PhysicalDeviceProtectedMemoryFeatures', -- 'Vulkan.Core11.Originally_Based_On_VK_KHR_protected_memory.PhysicalDeviceProtectedMemoryProperties',+-- 'Vulkan.Extensions.VK_EXT_provoking_vertex.PhysicalDeviceProvokingVertexFeaturesEXT',+-- 'Vulkan.Extensions.VK_EXT_provoking_vertex.PhysicalDeviceProvokingVertexPropertiesEXT', -- 'Vulkan.Extensions.VK_KHR_push_descriptor.PhysicalDevicePushDescriptorPropertiesKHR', -- 'Vulkan.Extensions.VK_KHR_ray_query.PhysicalDeviceRayQueryFeaturesKHR', -- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.PhysicalDeviceRayTracingPipelineFeaturesKHR',@@ -883,17 +890,21 @@ -- 'Vulkan.Core11.Promoted_From_VK_KHR_variable_pointers.PhysicalDeviceVariablePointersFeatures', -- 'Vulkan.Extensions.VK_EXT_vertex_attribute_divisor.PhysicalDeviceVertexAttributeDivisorFeaturesEXT', -- 'Vulkan.Extensions.VK_EXT_vertex_attribute_divisor.PhysicalDeviceVertexAttributeDivisorPropertiesEXT',+-- 'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.PhysicalDeviceVertexInputDynamicStateFeaturesEXT',+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkPhysicalDeviceVideoFormatInfoKHR VkPhysicalDeviceVideoFormatInfoKHR>, -- 'Vulkan.Core12.PhysicalDeviceVulkan11Features', -- 'Vulkan.Core12.PhysicalDeviceVulkan11Properties', -- 'Vulkan.Core12.PhysicalDeviceVulkan12Features', -- 'Vulkan.Core12.PhysicalDeviceVulkan12Properties', -- 'Vulkan.Core12.Promoted_From_VK_KHR_vulkan_memory_model.PhysicalDeviceVulkanMemoryModelFeatures', -- 'Vulkan.Extensions.VK_KHR_workgroup_memory_explicit_layout.PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR',+-- 'Vulkan.Extensions.VK_EXT_ycbcr_2plane_444_formats.PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT', -- 'Vulkan.Extensions.VK_EXT_ycbcr_image_arrays.PhysicalDeviceYcbcrImageArraysFeaturesEXT', -- 'Vulkan.Extensions.VK_KHR_zero_initialize_workgroup_memory.PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR', -- 'Vulkan.Core10.PipelineCache.PipelineCacheCreateInfo', -- 'Vulkan.Extensions.VK_EXT_blend_operation_advanced.PipelineColorBlendAdvancedStateCreateInfoEXT', -- 'Vulkan.Core10.Pipeline.PipelineColorBlendStateCreateInfo',+-- 'Vulkan.Extensions.VK_EXT_color_write_enable.PipelineColorWriteCreateInfoEXT', -- 'Vulkan.Extensions.VK_AMD_pipeline_compiler_control.PipelineCompilerControlCreateInfoAMD', -- 'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.PipelineCoverageModulationStateCreateInfoNV', -- 'Vulkan.Extensions.VK_NV_coverage_reduction_mode.PipelineCoverageReductionStateCreateInfoNV',@@ -916,6 +927,7 @@ -- 'Vulkan.Extensions.VK_EXT_conservative_rasterization.PipelineRasterizationConservativeStateCreateInfoEXT', -- 'Vulkan.Extensions.VK_EXT_depth_clip_enable.PipelineRasterizationDepthClipStateCreateInfoEXT', -- 'Vulkan.Extensions.VK_EXT_line_rasterization.PipelineRasterizationLineStateCreateInfoEXT',+-- 'Vulkan.Extensions.VK_EXT_provoking_vertex.PipelineRasterizationProvokingVertexStateCreateInfoEXT', -- 'Vulkan.Core10.Pipeline.PipelineRasterizationStateCreateInfo', -- 'Vulkan.Extensions.VK_AMD_rasterization_order.PipelineRasterizationStateRasterizationOrderAMD', -- 'Vulkan.Extensions.VK_EXT_transform_feedback.PipelineRasterizationStateStreamCreateInfoEXT',@@ -1004,7 +1016,51 @@ -- 'Vulkan.Extensions.VK_EXT_validation_cache.ValidationCacheCreateInfoEXT', -- 'Vulkan.Extensions.VK_EXT_validation_features.ValidationFeaturesEXT', -- 'Vulkan.Extensions.VK_EXT_validation_flags.ValidationFlagsEXT',+-- 'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT',+-- 'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputBindingDescription2EXT', -- 'Vulkan.Extensions.VK_NN_vi_surface.ViSurfaceCreateInfoNN',+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoBeginCodingInfoKHR VkVideoBeginCodingInfoKHR>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoBindMemoryKHR VkVideoBindMemoryKHR>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoCapabilitiesKHR VkVideoCapabilitiesKHR>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoCodingControlInfoKHR VkVideoCodingControlInfoKHR>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeH264CapabilitiesEXT VkVideoDecodeH264CapabilitiesEXT>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeH264DpbSlotInfoEXT VkVideoDecodeH264DpbSlotInfoEXT>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeH264MvcEXT VkVideoDecodeH264MvcEXT>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeH264PictureInfoEXT VkVideoDecodeH264PictureInfoEXT>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeH264ProfileEXT VkVideoDecodeH264ProfileEXT>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeH264SessionCreateInfoEXT VkVideoDecodeH264SessionCreateInfoEXT>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeH264SessionParametersAddInfoEXT VkVideoDecodeH264SessionParametersAddInfoEXT>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeH264SessionParametersCreateInfoEXT VkVideoDecodeH264SessionParametersCreateInfoEXT>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeH265CapabilitiesEXT VkVideoDecodeH265CapabilitiesEXT>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeH265DpbSlotInfoEXT VkVideoDecodeH265DpbSlotInfoEXT>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeH265PictureInfoEXT VkVideoDecodeH265PictureInfoEXT>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeH265ProfileEXT VkVideoDecodeH265ProfileEXT>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeH265SessionCreateInfoEXT VkVideoDecodeH265SessionCreateInfoEXT>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeH265SessionParametersAddInfoEXT VkVideoDecodeH265SessionParametersAddInfoEXT>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeH265SessionParametersCreateInfoEXT VkVideoDecodeH265SessionParametersCreateInfoEXT>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeInfoKHR VkVideoDecodeInfoKHR>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264CapabilitiesEXT VkVideoEncodeH264CapabilitiesEXT>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264DpbSlotInfoEXT VkVideoEncodeH264DpbSlotInfoEXT>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264EmitPictureParametersEXT VkVideoEncodeH264EmitPictureParametersEXT>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264NaluSliceEXT VkVideoEncodeH264NaluSliceEXT>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264ProfileEXT VkVideoEncodeH264ProfileEXT>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264SessionCreateInfoEXT VkVideoEncodeH264SessionCreateInfoEXT>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264SessionParametersAddInfoEXT VkVideoEncodeH264SessionParametersAddInfoEXT>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264SessionParametersCreateInfoEXT VkVideoEncodeH264SessionParametersCreateInfoEXT>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264VclFrameInfoEXT VkVideoEncodeH264VclFrameInfoEXT>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeInfoKHR VkVideoEncodeInfoKHR>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeRateControlInfoKHR VkVideoEncodeRateControlInfoKHR>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEndCodingInfoKHR VkVideoEndCodingInfoKHR>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoFormatPropertiesKHR VkVideoFormatPropertiesKHR>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoGetMemoryPropertiesKHR VkVideoGetMemoryPropertiesKHR>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoPictureResourceKHR VkVideoPictureResourceKHR>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoProfileKHR VkVideoProfileKHR>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoProfilesKHR VkVideoProfilesKHR>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoQueueFamilyProperties2KHR VkVideoQueueFamilyProperties2KHR>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoReferenceSlotKHR VkVideoReferenceSlotKHR>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoSessionCreateInfoKHR VkVideoSessionCreateInfoKHR>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoSessionParametersCreateInfoKHR VkVideoSessionParametersCreateInfoKHR>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoSessionParametersUpdateInfoKHR VkVideoSessionParametersUpdateInfoKHR>, -- 'Vulkan.Extensions.VK_KHR_wayland_surface.WaylandSurfaceCreateInfoKHR', -- 'Vulkan.Extensions.VK_KHR_win32_keyed_mutex.Win32KeyedMutexAcquireReleaseInfoKHR', -- 'Vulkan.Extensions.VK_NV_win32_keyed_mutex.Win32KeyedMutexAcquireReleaseInfoNV',@@ -1116,8 +1172,14 @@ pattern STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO               = StructureType 47 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO" pattern STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO                 = StructureType 48+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT"+pattern STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT      = StructureType 1000381001+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT = StructureType 1000381000 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX" pattern STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX            = StructureType 1000378000+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT = StructureType 1000377000 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA" pattern STRUCTURE_TYPE_SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA  = StructureType 1000365001 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA"@@ -1128,6 +1190,12 @@ pattern STRUCTURE_TYPE_MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA   = StructureType 1000364001 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA" pattern STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA  = StructureType 1000364000+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT"+pattern STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT  = StructureType 1000352002+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT"+pattern STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT    = StructureType 1000352001+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT = StructureType 1000352000 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE" pattern STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE = StructureType 1000351002 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE"@@ -1168,6 +1236,8 @@ pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT = StructureType 1000332001 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT" pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT = StructureType 1000332000+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT = StructureType 1000330000 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV" pattern STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV = StructureType 1000326002 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV"@@ -1234,6 +1304,10 @@ pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT = StructureType 1000281001 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT" pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT = StructureType 1000281000+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV"+pattern STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV = StructureType 1000278001+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV = StructureType 1000278000 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV" pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV = StructureType 1000277007 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV"@@ -1284,6 +1358,12 @@ pattern STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT = StructureType 1000255002 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT" pattern STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT    = StructureType 1000255000+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT = StructureType 1000254002+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT"+pattern STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT = StructureType 1000254001+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT = StructureType 1000254000 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT" pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT = StructureType 1000252000 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT"@@ -1728,6 +1808,12 @@ pattern STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX         = StructureType 1000030001 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX" pattern STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX                = StructureType 1000030000+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_CU_LAUNCH_INFO_NVX"+pattern STRUCTURE_TYPE_CU_LAUNCH_INFO_NVX                        = StructureType 1000029002+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_CU_FUNCTION_CREATE_INFO_NVX"+pattern STRUCTURE_TYPE_CU_FUNCTION_CREATE_INFO_NVX               = StructureType 1000029001+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_CU_MODULE_CREATE_INFO_NVX"+pattern STRUCTURE_TYPE_CU_MODULE_CREATE_INFO_NVX                 = StructureType 1000029000 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT" pattern STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT = StructureType 1000028002 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT"@@ -2049,12 +2135,18 @@              STRUCTURE_TYPE_MEMORY_BARRIER,              STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO,              STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO,+             STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT,+             STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT,              STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX,+             STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT,              STRUCTURE_TYPE_SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA,              STRUCTURE_TYPE_IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA,              STRUCTURE_TYPE_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA,              STRUCTURE_TYPE_MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA,              STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA,+             STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT,+             STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT,+             STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT,              STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE,              STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE,              STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT,@@ -2075,6 +2167,7 @@              STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM,              STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT,              STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT,+             STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT,              STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV,              STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV,              STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV,@@ -2108,6 +2201,8 @@              STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM,              STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT,              STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT,+             STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV,+             STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV,              STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV,              STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV,              STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_NV,@@ -2133,6 +2228,9 @@              STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT,              STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT,              STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT,+             STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT,+             STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT,+             STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT,              STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT,              STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT,              STRUCTURE_TYPE_FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV,@@ -2355,6 +2453,9 @@              STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD,              STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX,              STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX,+             STRUCTURE_TYPE_CU_LAUNCH_INFO_NVX,+             STRUCTURE_TYPE_CU_FUNCTION_CREATE_INFO_NVX,+             STRUCTURE_TYPE_CU_MODULE_CREATE_INFO_NVX,              STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT,              STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT,              STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT,@@ -2549,12 +2650,22 @@   , (STRUCTURE_TYPE_MEMORY_BARRIER                           , "MEMORY_BARRIER")   , (STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO              , "LOADER_INSTANCE_CREATE_INFO")   , (STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO                , "LOADER_DEVICE_CREATE_INFO")+  , (STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT     , "PIPELINE_COLOR_WRITE_CREATE_INFO_EXT")+  , (STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT, "PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT")   , (STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX           , "SCREEN_SURFACE_CREATE_INFO_QNX")-  , (STRUCTURE_TYPE_SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA , "SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA")+  , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT+    , "PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT"+    )+  , (STRUCTURE_TYPE_SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA   , "SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA")   , (STRUCTURE_TYPE_IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA, "IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA")-  , (STRUCTURE_TYPE_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA    , "MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA")-  , (STRUCTURE_TYPE_MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA  , "MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA")-  , (STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA , "IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA")+  , (STRUCTURE_TYPE_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA      , "MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA")+  , (STRUCTURE_TYPE_MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA    , "MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA")+  , (STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA   , "IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA")+  , (STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT   , "VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT")+  , (STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT     , "VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT")+  , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT+    , "PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT"+    )   , (STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE, "MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE")   , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE     , "PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE"@@ -2583,6 +2694,9 @@   , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT     , "PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT"     )+  , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT+    , "PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT"+    )   , ( STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV     , "PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV"     )@@ -2638,6 +2752,12 @@   , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT     , "PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT"     )+  , ( STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV+    , "COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV"+    )+  , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV+    , "PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV"+    )   , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV     , "PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV"     )@@ -2679,6 +2799,11 @@   , (STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT   , "SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT")   , (STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT , "SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT")   , (STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT         , "SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT")+  , (STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT, "PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT")+  , ( STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT+    , "PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT"+    )+  , (STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT  , "PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT")   , (STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT, "PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT")   , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT     , "PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT"@@ -3029,6 +3154,9 @@   , (STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD , "TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD")   , (STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX        , "IMAGE_VIEW_ADDRESS_PROPERTIES_NVX")   , (STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX               , "IMAGE_VIEW_HANDLE_INFO_NVX")+  , (STRUCTURE_TYPE_CU_LAUNCH_INFO_NVX                       , "CU_LAUNCH_INFO_NVX")+  , (STRUCTURE_TYPE_CU_FUNCTION_CREATE_INFO_NVX              , "CU_FUNCTION_CREATE_INFO_NVX")+  , (STRUCTURE_TYPE_CU_MODULE_CREATE_INFO_NVX                , "CU_MODULE_CREATE_INFO_NVX")   , ( STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT     , "PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT"     )
src/Vulkan/Core10/Enums/VertexInputRate.hs view
@@ -19,7 +19,8 @@ -- -- = See Also ----- 'Vulkan.Core10.Pipeline.VertexInputBindingDescription'+-- 'Vulkan.Core10.Pipeline.VertexInputBindingDescription',+-- 'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputBindingDescription2EXT' newtype VertexInputRate = VertexInputRate Int32   deriving newtype (Eq, Ord, Storable, Zero) 
src/Vulkan/Core10/ExtensionDiscovery.hs view
@@ -85,8 +85,7 @@ -- the @pProperties@ array, and on return the variable is overwritten with -- the number of structures actually written to @pProperties@. If -- @pPropertyCount@ is less than the number of extension properties--- available, at most @pPropertyCount@ structures will be written. If--- @pPropertyCount@ is smaller than the number of extensions available,+-- available, at most @pPropertyCount@ structures will be written, and -- 'Vulkan.Core10.Enums.Result.INCOMPLETE' will be returned instead of -- 'Vulkan.Core10.Enums.Result.SUCCESS', to indicate that not all the -- available properties were returned.@@ -254,6 +253,12 @@ -- -- = See Also --+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeH264CapabilitiesEXT VkVideoDecodeH264CapabilitiesEXT>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeH264SessionCreateInfoEXT VkVideoDecodeH264SessionCreateInfoEXT>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeH265CapabilitiesEXT VkVideoDecodeH265CapabilitiesEXT>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeH265SessionCreateInfoEXT VkVideoDecodeH265SessionCreateInfoEXT>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264CapabilitiesEXT VkVideoEncodeH264CapabilitiesEXT>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264SessionCreateInfoEXT VkVideoEncodeH264SessionCreateInfoEXT>, -- 'enumerateDeviceExtensionProperties', -- 'enumerateInstanceExtensionProperties' data ExtensionProperties = ExtensionProperties
src/Vulkan/Core10/FuncPointers.hs view
@@ -38,6 +38,10 @@ -- | PFN_vkInternalFreeNotification - Application-defined memory free -- notification function --+-- = Description+--+-- > described link:https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-host-allocation-scope[here^].+-- -- = See Also -- -- 'Vulkan.Core10.AllocationCallbacks.AllocationCallbacks'
src/Vulkan/Core10/FundamentalTypes.hs view
@@ -61,7 +61,10 @@ -- = See Also -- -- 'Vulkan.Extensions.VK_KHR_display.DisplayPlaneCapabilitiesKHR',--- 'Rect2D', 'Vulkan.Extensions.VK_KHR_incremental_present.RectLayerKHR'+-- 'Rect2D', 'Vulkan.Extensions.VK_KHR_incremental_present.RectLayerKHR',+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeH264CapabilitiesEXT VkVideoDecodeH264CapabilitiesEXT>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeInfoKHR VkVideoDecodeInfoKHR>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoPictureResourceKHR VkVideoPictureResourceKHR> data Offset2D = Offset2D   { -- | @x@ is the x offset.     x :: Int32@@ -190,6 +193,13 @@ -- 'Vulkan.Extensions.VK_EXT_display_surface_counter.SurfaceCapabilities2EXT', -- 'Vulkan.Extensions.VK_KHR_surface.SurfaceCapabilitiesKHR', -- 'Vulkan.Extensions.VK_KHR_swapchain.SwapchainCreateInfoKHR',+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoCapabilitiesKHR VkVideoCapabilitiesKHR>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeInfoKHR VkVideoDecodeInfoKHR>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264CapabilitiesEXT VkVideoEncodeH264CapabilitiesEXT>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264SessionCreateInfoEXT VkVideoEncodeH264SessionCreateInfoEXT>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeInfoKHR VkVideoEncodeInfoKHR>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoPictureResourceKHR VkVideoPictureResourceKHR>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoSessionCreateInfoKHR VkVideoSessionCreateInfoKHR>, -- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR', -- 'Vulkan.Core10.Pass.getRenderAreaGranularity' data Extent2D = Extent2D@@ -368,8 +378,8 @@ -- -- = Description ----- 'TRUE' represents a boolean __True__ (integer 1) value, and 'FALSE' a--- boolean __False__ (integer 0) value.+-- 'TRUE' represents a boolean __True__ (unsigned integer 1) value, and+-- 'FALSE' a boolean __False__ (unsigned integer 0) value. -- -- All values returned from a Vulkan implementation in a 'Bool32' will be -- either 'TRUE' or 'FALSE'.@@ -382,6 +392,7 @@ -- 'Vulkan.Extensions.VK_KHR_acceleration_structure.AccelerationStructureGeometryInstancesDataKHR', -- 'Vulkan.Extensions.VK_EXT_conditional_rendering.CommandBufferInheritanceConditionalRenderingInfoEXT', -- 'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo',+-- 'Vulkan.Extensions.VK_NV_inherited_viewport_scissor.CommandBufferInheritanceViewportScissorInfoNV', -- 'Vulkan.Extensions.VK_NV_dedicated_allocation.DedicatedAllocationBufferCreateInfoNV', -- 'Vulkan.Extensions.VK_NV_dedicated_allocation.DedicatedAllocationImageCreateInfoNV', -- 'Vulkan.Core11.Promoted_From_VK_KHR_maintenance3.DescriptorSetLayoutSupport',@@ -403,6 +414,7 @@ -- 'Vulkan.Core12.Promoted_From_VK_KHR_buffer_device_address.PhysicalDeviceBufferDeviceAddressFeatures', -- 'Vulkan.Extensions.VK_EXT_buffer_device_address.PhysicalDeviceBufferDeviceAddressFeaturesEXT', -- 'Vulkan.Extensions.VK_AMD_device_coherent_memory.PhysicalDeviceCoherentMemoryFeaturesAMD',+-- 'Vulkan.Extensions.VK_EXT_color_write_enable.PhysicalDeviceColorWriteEnableFeaturesEXT', -- 'Vulkan.Extensions.VK_NV_compute_shader_derivatives.PhysicalDeviceComputeShaderDerivativesFeaturesNV', -- 'Vulkan.Extensions.VK_EXT_conditional_rendering.PhysicalDeviceConditionalRenderingFeaturesEXT', -- 'Vulkan.Extensions.VK_EXT_conservative_rasterization.PhysicalDeviceConservativeRasterizationPropertiesEXT',@@ -419,6 +431,7 @@ -- 'Vulkan.Extensions.VK_EXT_device_memory_report.PhysicalDeviceDeviceMemoryReportFeaturesEXT', -- 'Vulkan.Extensions.VK_NV_device_diagnostics_config.PhysicalDeviceDiagnosticsConfigFeaturesNV', -- 'Vulkan.Extensions.VK_NV_scissor_exclusive.PhysicalDeviceExclusiveScissorFeaturesNV',+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.PhysicalDeviceExtendedDynamicState2FeaturesEXT', -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.PhysicalDeviceExtendedDynamicStateFeaturesEXT', -- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceFeatures', -- 'Vulkan.Core12.Promoted_From_VK_KHR_shader_float_controls.PhysicalDeviceFloatControlsProperties',@@ -437,6 +450,7 @@ -- 'Vulkan.Extensions.VK_EXT_image_robustness.PhysicalDeviceImageRobustnessFeaturesEXT', -- 'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.PhysicalDeviceImagelessFramebufferFeatures', -- 'Vulkan.Extensions.VK_EXT_index_type_uint8.PhysicalDeviceIndexTypeUint8FeaturesEXT',+-- 'Vulkan.Extensions.VK_NV_inherited_viewport_scissor.PhysicalDeviceInheritedViewportScissorFeaturesNV', -- 'Vulkan.Extensions.VK_EXT_inline_uniform_block.PhysicalDeviceInlineUniformBlockFeaturesEXT', -- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits', -- 'Vulkan.Extensions.VK_EXT_line_rasterization.PhysicalDeviceLineRasterizationFeaturesEXT',@@ -453,6 +467,8 @@ -- 'Vulkan.Extensions.VK_EXT_private_data.PhysicalDevicePrivateDataFeaturesEXT', -- 'Vulkan.Core11.Originally_Based_On_VK_KHR_protected_memory.PhysicalDeviceProtectedMemoryFeatures', -- 'Vulkan.Core11.Originally_Based_On_VK_KHR_protected_memory.PhysicalDeviceProtectedMemoryProperties',+-- 'Vulkan.Extensions.VK_EXT_provoking_vertex.PhysicalDeviceProvokingVertexFeaturesEXT',+-- 'Vulkan.Extensions.VK_EXT_provoking_vertex.PhysicalDeviceProvokingVertexPropertiesEXT', -- 'Vulkan.Extensions.VK_KHR_ray_query.PhysicalDeviceRayQueryFeaturesKHR', -- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.PhysicalDeviceRayTracingPipelineFeaturesKHR', -- 'Vulkan.Extensions.VK_NV_representative_fragment_test.PhysicalDeviceRepresentativeFragmentTestFeaturesNV',@@ -488,17 +504,20 @@ -- 'Vulkan.Core12.Promoted_From_VK_KHR_uniform_buffer_standard_layout.PhysicalDeviceUniformBufferStandardLayoutFeatures', -- 'Vulkan.Core11.Promoted_From_VK_KHR_variable_pointers.PhysicalDeviceVariablePointersFeatures', -- 'Vulkan.Extensions.VK_EXT_vertex_attribute_divisor.PhysicalDeviceVertexAttributeDivisorFeaturesEXT',+-- 'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.PhysicalDeviceVertexInputDynamicStateFeaturesEXT', -- 'Vulkan.Core12.PhysicalDeviceVulkan11Features', -- 'Vulkan.Core12.PhysicalDeviceVulkan11Properties', -- 'Vulkan.Core12.PhysicalDeviceVulkan12Features', -- 'Vulkan.Core12.PhysicalDeviceVulkan12Properties', -- 'Vulkan.Core12.Promoted_From_VK_KHR_vulkan_memory_model.PhysicalDeviceVulkanMemoryModelFeatures', -- 'Vulkan.Extensions.VK_KHR_workgroup_memory_explicit_layout.PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR',+-- 'Vulkan.Extensions.VK_EXT_ycbcr_2plane_444_formats.PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT', -- 'Vulkan.Extensions.VK_EXT_ycbcr_image_arrays.PhysicalDeviceYcbcrImageArraysFeaturesEXT', -- 'Vulkan.Extensions.VK_KHR_zero_initialize_workgroup_memory.PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR', -- 'Vulkan.Extensions.VK_EXT_blend_operation_advanced.PipelineColorBlendAdvancedStateCreateInfoEXT', -- 'Vulkan.Core10.Pipeline.PipelineColorBlendAttachmentState', -- 'Vulkan.Core10.Pipeline.PipelineColorBlendStateCreateInfo',+-- 'Vulkan.Extensions.VK_EXT_color_write_enable.PipelineColorWriteCreateInfoEXT', -- 'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.PipelineCoverageModulationStateCreateInfoNV', -- 'Vulkan.Extensions.VK_NV_fragment_coverage_to_color.PipelineCoverageToColorStateCreateInfoNV', -- 'Vulkan.Core10.Pipeline.PipelineDepthStencilStateCreateInfo',@@ -521,11 +540,16 @@ -- 'Vulkan.Extensions.VK_KHR_swapchain.SwapchainCreateInfoKHR', -- 'Vulkan.Extensions.VK_AMD_display_native_hdr.SwapchainDisplayNativeHdrCreateInfoAMD', -- 'Vulkan.Extensions.VK_AMD_texture_gather_bias_lod.TextureLODGatherFormatPropertiesAMD',+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264EmitPictureParametersEXT VkVideoEncodeH264EmitPictureParametersEXT>, -- 'Vulkan.Extensions.VK_NV_ray_tracing.cmdBuildAccelerationStructureNV', -- 'Vulkan.Extensions.VK_NV_device_generated_commands.cmdExecuteGeneratedCommandsNV',+-- 'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT',+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnableEXT', -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnableEXT', -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetDepthTestEnableEXT', -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnableEXT',+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetPrimitiveRestartEnableEXT',+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnableEXT', -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetStencilTestEnableEXT', -- 'Vulkan.Extensions.VK_KHR_surface.getPhysicalDeviceSurfaceSupportKHR', -- 'Vulkan.Extensions.VK_AMD_display_native_hdr.setLocalDimmingAMD',@@ -660,6 +684,10 @@ -- 'Vulkan.Core10.SparseResourceMemoryManagement.SparseMemoryBind', -- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.StridedDeviceAddressRegionKHR', -- 'Vulkan.Core10.Image.SubresourceLayout',+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoBindMemoryKHR VkVideoBindMemoryKHR>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoCapabilitiesKHR VkVideoCapabilitiesKHR>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeInfoKHR VkVideoDecodeInfoKHR>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeInfoKHR VkVideoEncodeInfoKHR>, -- 'Vulkan.Core10.MemoryManagement.bindBufferMemory', -- 'Vulkan.Core10.MemoryManagement.bindImageMemory', -- 'Vulkan.Extensions.VK_EXT_transform_feedback.cmdBeginTransformFeedbackEXT',
src/Vulkan/Core10/FundamentalTypes.hs-boot view
@@ -122,6 +122,10 @@ -- 'Vulkan.Core10.SparseResourceMemoryManagement.SparseMemoryBind', -- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.StridedDeviceAddressRegionKHR', -- 'Vulkan.Core10.Image.SubresourceLayout',+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoBindMemoryKHR VkVideoBindMemoryKHR>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoCapabilitiesKHR VkVideoCapabilitiesKHR>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeInfoKHR VkVideoDecodeInfoKHR>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeInfoKHR VkVideoEncodeInfoKHR>, -- 'Vulkan.Core10.MemoryManagement.bindBufferMemory', -- 'Vulkan.Core10.MemoryManagement.bindImageMemory', -- 'Vulkan.Extensions.VK_EXT_transform_feedback.cmdBeginTransformFeedbackEXT',
src/Vulkan/Core10/Handles.hs view
@@ -187,6 +187,8 @@ -- 'Vulkan.Extensions.VK_KHR_surface.getPhysicalDeviceSurfacePresentModesKHR', -- 'Vulkan.Extensions.VK_KHR_surface.getPhysicalDeviceSurfaceSupportKHR', -- 'Vulkan.Extensions.VK_EXT_tooling_info.getPhysicalDeviceToolPropertiesEXT',+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkGetPhysicalDeviceVideoCapabilitiesKHR vkGetPhysicalDeviceVideoCapabilitiesKHR>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkGetPhysicalDeviceVideoFormatPropertiesKHR vkGetPhysicalDeviceVideoFormatPropertiesKHR>, -- 'Vulkan.Extensions.VK_KHR_wayland_surface.getPhysicalDeviceWaylandPresentationSupportKHR', -- 'Vulkan.Extensions.VK_KHR_win32_surface.getPhysicalDeviceWin32PresentationSupportKHR', -- 'Vulkan.Extensions.VK_KHR_xcb_surface.getPhysicalDeviceXcbPresentationSupportKHR',@@ -227,6 +229,7 @@ -- 'Vulkan.Core10.MemoryManagement.bindImageMemory', -- 'Vulkan.Core11.Promoted_From_VK_KHR_bind_memory2.bindImageMemory2', -- 'Vulkan.Extensions.VK_KHR_bind_memory2.bindImageMemory2KHR',+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkBindVideoSessionMemoryKHR vkBindVideoSessionMemoryKHR>, -- 'Vulkan.Extensions.VK_KHR_acceleration_structure.buildAccelerationStructuresKHR', -- 'Vulkan.Extensions.VK_NV_ray_tracing.compileDeferredNV', -- 'Vulkan.Extensions.VK_KHR_acceleration_structure.copyAccelerationStructureKHR',@@ -238,6 +241,8 @@ -- 'Vulkan.Core10.BufferView.createBufferView', -- 'Vulkan.Core10.CommandPool.createCommandPool', -- 'Vulkan.Core10.Pipeline.createComputePipelines',+-- 'Vulkan.Extensions.VK_NVX_binary_import.createCuFunctionNVX',+-- 'Vulkan.Extensions.VK_NVX_binary_import.createCuModuleNVX', -- 'Vulkan.Extensions.VK_KHR_deferred_host_operations.createDeferredOperationKHR', -- 'Vulkan.Core10.DescriptorSet.createDescriptorPool', -- 'Vulkan.Core10.DescriptorSet.createDescriptorSetLayout',@@ -267,6 +272,8 @@ -- 'Vulkan.Extensions.VK_KHR_display_swapchain.createSharedSwapchainsKHR', -- 'Vulkan.Extensions.VK_KHR_swapchain.createSwapchainKHR', -- 'Vulkan.Extensions.VK_EXT_validation_cache.createValidationCacheEXT',+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCreateVideoSessionKHR vkCreateVideoSessionKHR>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCreateVideoSessionParametersKHR vkCreateVideoSessionParametersKHR>, -- 'Vulkan.Extensions.VK_EXT_debug_marker.debugMarkerSetObjectNameEXT', -- 'Vulkan.Extensions.VK_EXT_debug_marker.debugMarkerSetObjectTagEXT', -- 'Vulkan.Extensions.VK_KHR_deferred_host_operations.deferredOperationJoinKHR',@@ -275,6 +282,8 @@ -- 'Vulkan.Core10.Buffer.destroyBuffer', -- 'Vulkan.Core10.BufferView.destroyBufferView', -- 'Vulkan.Core10.CommandPool.destroyCommandPool',+-- 'Vulkan.Extensions.VK_NVX_binary_import.destroyCuFunctionNVX',+-- 'Vulkan.Extensions.VK_NVX_binary_import.destroyCuModuleNVX', -- 'Vulkan.Extensions.VK_KHR_deferred_host_operations.destroyDeferredOperationKHR', -- 'Vulkan.Core10.DescriptorSet.destroyDescriptorPool', -- 'Vulkan.Core10.DescriptorSet.destroyDescriptorSetLayout',@@ -299,6 +308,8 @@ -- 'Vulkan.Core10.Shader.destroyShaderModule', -- 'Vulkan.Extensions.VK_KHR_swapchain.destroySwapchainKHR', -- 'Vulkan.Extensions.VK_EXT_validation_cache.destroyValidationCacheEXT',+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkDestroyVideoSessionKHR vkDestroyVideoSessionKHR>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkDestroyVideoSessionParametersKHR vkDestroyVideoSessionParametersKHR>, -- 'Vulkan.Core10.Queue.deviceWaitIdle', -- 'Vulkan.Extensions.VK_EXT_display_control.displayPowerControlEXT', -- 'Vulkan.Core10.Memory.flushMappedMemoryRanges',@@ -383,6 +394,7 @@ -- 'Vulkan.Extensions.VK_KHR_swapchain.getSwapchainImagesKHR', -- 'Vulkan.Extensions.VK_KHR_shared_presentable_image.getSwapchainStatusKHR', -- 'Vulkan.Extensions.VK_EXT_validation_cache.getValidationCacheDataEXT',+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkGetVideoSessionMemoryRequirementsKHR vkGetVideoSessionMemoryRequirementsKHR>, -- 'Vulkan.Extensions.VK_KHR_external_fence_fd.importFenceFdKHR', -- 'Vulkan.Extensions.VK_KHR_external_fence_win32.importFenceWin32HandleKHR', -- 'Vulkan.Extensions.VK_KHR_external_semaphore_fd.importSemaphoreFdKHR',@@ -418,6 +430,7 @@ -- 'Vulkan.Core11.Promoted_From_VK_KHR_descriptor_update_template.updateDescriptorSetWithTemplate', -- 'Vulkan.Extensions.VK_KHR_descriptor_update_template.updateDescriptorSetWithTemplateKHR', -- 'Vulkan.Core10.DescriptorSet.updateDescriptorSets',+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkUpdateVideoSessionParametersKHR vkUpdateVideoSessionParametersKHR>, -- 'Vulkan.Core10.Fence.waitForFences', -- 'Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore.waitSemaphores', -- 'Vulkan.Extensions.VK_KHR_timeline_semaphore.waitSemaphoresKHR',@@ -483,6 +496,7 @@ -- 'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.cmdBeginRenderPass2', -- 'Vulkan.Extensions.VK_KHR_create_renderpass2.cmdBeginRenderPass2KHR', -- 'Vulkan.Extensions.VK_EXT_transform_feedback.cmdBeginTransformFeedbackEXT',+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR vkCmdBeginVideoCodingKHR>, -- 'Vulkan.Core10.CommandBufferBuilding.cmdBindDescriptorSets', -- 'Vulkan.Core10.CommandBufferBuilding.cmdBindIndexBuffer', -- 'Vulkan.Core10.CommandBufferBuilding.cmdBindPipeline',@@ -499,6 +513,7 @@ -- 'Vulkan.Core10.CommandBufferBuilding.cmdClearAttachments', -- 'Vulkan.Core10.CommandBufferBuilding.cmdClearColorImage', -- 'Vulkan.Core10.CommandBufferBuilding.cmdClearDepthStencilImage',+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdControlVideoCodingKHR vkCmdControlVideoCodingKHR>, -- 'Vulkan.Extensions.VK_KHR_acceleration_structure.cmdCopyAccelerationStructureKHR', -- 'Vulkan.Extensions.VK_NV_ray_tracing.cmdCopyAccelerationStructureNV', -- 'Vulkan.Extensions.VK_KHR_acceleration_structure.cmdCopyAccelerationStructureToMemoryKHR',@@ -512,9 +527,11 @@ -- 'Vulkan.Extensions.VK_KHR_copy_commands2.cmdCopyImageToBuffer2KHR', -- 'Vulkan.Extensions.VK_KHR_acceleration_structure.cmdCopyMemoryToAccelerationStructureKHR', -- 'Vulkan.Core10.CommandBufferBuilding.cmdCopyQueryPoolResults',+-- 'Vulkan.Extensions.VK_NVX_binary_import.cmdCuLaunchKernelNVX', -- 'Vulkan.Extensions.VK_EXT_debug_marker.cmdDebugMarkerBeginEXT', -- 'Vulkan.Extensions.VK_EXT_debug_marker.cmdDebugMarkerEndEXT', -- 'Vulkan.Extensions.VK_EXT_debug_marker.cmdDebugMarkerInsertEXT',+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdDecodeVideoKHR vkCmdDecodeVideoKHR>, -- 'Vulkan.Core10.CommandBufferBuilding.cmdDispatch', -- 'Vulkan.Core11.Promoted_From_VK_KHR_device_group.cmdDispatchBase', -- 'Vulkan.Extensions.VK_KHR_device_group.cmdDispatchBaseKHR',@@ -533,6 +550,7 @@ -- 'Vulkan.Extensions.VK_NV_mesh_shader.cmdDrawMeshTasksIndirectCountNV', -- 'Vulkan.Extensions.VK_NV_mesh_shader.cmdDrawMeshTasksIndirectNV', -- 'Vulkan.Extensions.VK_NV_mesh_shader.cmdDrawMeshTasksNV',+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdEncodeVideoKHR vkCmdEncodeVideoKHR>, -- 'Vulkan.Extensions.VK_EXT_conditional_rendering.cmdEndConditionalRenderingEXT', -- 'Vulkan.Extensions.VK_EXT_debug_utils.cmdEndDebugUtilsLabelEXT', -- 'Vulkan.Core10.CommandBufferBuilding.cmdEndQuery',@@ -541,6 +559,7 @@ -- 'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.cmdEndRenderPass2', -- 'Vulkan.Extensions.VK_KHR_create_renderpass2.cmdEndRenderPass2KHR', -- 'Vulkan.Extensions.VK_EXT_transform_feedback.cmdEndTransformFeedbackEXT',+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdEndVideoCodingKHR vkCmdEndVideoCodingKHR>, -- 'Vulkan.Core10.CommandBufferBuilding.cmdExecuteCommands', -- 'Vulkan.Extensions.VK_NV_device_generated_commands.cmdExecuteGeneratedCommandsNV', -- 'Vulkan.Core10.CommandBufferBuilding.cmdFillBuffer',@@ -562,8 +581,10 @@ -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetBlendConstants', -- 'Vulkan.Extensions.VK_NV_device_diagnostic_checkpoints.cmdSetCheckpointNV', -- 'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetCoarseSampleOrderNV',+-- 'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT', -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetCullModeEXT', -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBias',+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnableEXT', -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBounds', -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnableEXT', -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetDepthCompareOpEXT',@@ -580,10 +601,14 @@ -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetFrontFaceEXT', -- 'Vulkan.Extensions.VK_EXT_line_rasterization.cmdSetLineStippleEXT', -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth',+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetLogicOpEXT',+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetPatchControlPointsEXT', -- 'Vulkan.Extensions.VK_INTEL_performance_query.cmdSetPerformanceMarkerINTEL', -- 'Vulkan.Extensions.VK_INTEL_performance_query.cmdSetPerformanceOverrideINTEL', -- 'Vulkan.Extensions.VK_INTEL_performance_query.cmdSetPerformanceStreamMarkerINTEL',+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetPrimitiveRestartEnableEXT', -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopologyEXT',+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnableEXT', -- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.cmdSetRayTracingPipelineStackSizeKHR', -- 'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT', -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetScissor',@@ -593,6 +618,7 @@ -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilReference', -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetStencilTestEnableEXT', -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilWriteMask',+-- 'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT', -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetViewport', -- 'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetViewportShadingRatePaletteNV', -- 'Vulkan.Extensions.VK_NV_clip_space_w_scaling.cmdSetViewportWScalingNV',@@ -639,6 +665,7 @@ -- 'Vulkan.Extensions.VK_FUCHSIA_external_memory.MemoryGetZirconHandleInfoFUCHSIA', -- 'Vulkan.Core10.SparseResourceMemoryManagement.SparseImageMemoryBind', -- 'Vulkan.Core10.SparseResourceMemoryManagement.SparseMemoryBind',+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoBindMemoryKHR VkVideoBindMemoryKHR>, -- 'Vulkan.Extensions.VK_KHR_win32_keyed_mutex.Win32KeyedMutexAcquireReleaseInfoKHR', -- 'Vulkan.Extensions.VK_NV_win32_keyed_mutex.Win32KeyedMutexAcquireReleaseInfoNV', -- 'Vulkan.Core10.Memory.allocateMemory',@@ -700,6 +727,8 @@ -- 'Vulkan.Extensions.VK_NV_device_generated_commands.IndirectCommandsStreamNV', -- 'Vulkan.Core11.Promoted_From_VK_KHR_dedicated_allocation.MemoryDedicatedAllocateInfo', -- 'Vulkan.Core10.SparseResourceMemoryManagement.SparseBufferMemoryBindInfo',+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeInfoKHR VkVideoDecodeInfoKHR>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeInfoKHR VkVideoEncodeInfoKHR>, -- 'Vulkan.Core10.MemoryManagement.bindBufferMemory', -- 'Vulkan.Extensions.VK_EXT_transform_feedback.cmdBeginTransformFeedbackEXT', -- 'Vulkan.Core10.CommandBufferBuilding.cmdBindIndexBuffer',@@ -807,6 +836,7 @@ -- 'Vulkan.Core10.Pass.FramebufferCreateInfo', -- 'Vulkan.Extensions.VK_NVX_image_view_handle.ImageViewHandleInfoNVX', -- 'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.RenderPassAttachmentBeginInfo',+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoPictureResourceKHR VkVideoPictureResourceKHR>, -- 'Vulkan.Extensions.VK_NV_shading_rate_image.cmdBindShadingRateImageNV', -- 'Vulkan.Core10.ImageView.createImageView', -- 'Vulkan.Core10.ImageView.destroyImageView',
src/Vulkan/Core10/Image.hs view
@@ -215,6 +215,10 @@ --     'Vulkan.Core10.AllocationCallbacks.AllocationCallbacks' were --     provided when @image@ was created, @pAllocator@ /must/ be @NULL@ --+-- -   #VUID-vkDestroyImage-image-04882# @image@ /must/ not have been+--     acquired from+--     'Vulkan.Extensions.VK_KHR_swapchain.getSwapchainImagesKHR'+-- -- == Valid Usage (Implicit) -- -- -   #VUID-vkDestroyImage-device-parameter# @device@ /must/ be a valid@@ -498,6 +502,8 @@ -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-views Image Views> -- for more detail). --+-- == Image Creation Limits+-- -- Valid values for some image creation parameters are limited by a -- numerical upper bound or by inclusion in a bitset. For example, -- 'ImageCreateInfo'::@arrayLayers@ is limited by@@ -562,7 +568,7 @@ --         the @pNext@ chain includes no --         'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID' --         structure with non-zero @externalFormat@, then---         @imageCreateFormatFeatures@ is value of+--         @imageCreateFormatFeatures@ is the value of --         'Vulkan.Core10.DeviceInitialization.FormatProperties'::@optimalTilingFeatures@ --         found by calling --         'Vulkan.Core10.DeviceInitialization.getPhysicalDeviceFormatProperties'@@ -689,12 +695,12 @@ -- --         -   'Vulkan.Core10.DeviceInitialization.ImageFormatProperties'::@maxArrayLayers@ --             is---             'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::maxImageArrayLayers.+--             'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxImageArrayLayers@. -- --         -   Each component of --             'Vulkan.Core10.DeviceInitialization.ImageFormatProperties'::@maxExtent@ --             is---             'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::maxImageDimension2D.+--             'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxImageDimension2D@. -- --         -   'Vulkan.Core10.DeviceInitialization.ImageFormatProperties'::@sampleCounts@ --             contains exactly@@ -722,12 +728,12 @@ --     in @imageCreateImageFormatPropertiesList@. The value is undefined if --     @imageCreateImageFormatPropertiesList@ is empty. ----- = Valid Usage+-- == Valid Usage -- -- -   #VUID-VkImageCreateInfo-imageCreateMaxMipLevels-02251# Each of the --     following values (as described in --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-creation-limits Image Creation Limits>)---     /must/ not be undefined @imageCreateMaxMipLevels@,+--     /must/ not be undefined : @imageCreateMaxMipLevels@, --     @imageCreateMaxArrayLayers@, @imageCreateMaxExtent@, and --     @imageCreateSampleCounts@ --@@ -1257,16 +1263,16 @@ --     greater than @1@ -- -- -   #VUID-VkImageCreateInfo-imageType-02082# If @usage@ includes---     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR',+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR', --     @imageType@ /must/ be 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D' -- -- -   #VUID-VkImageCreateInfo-samples-02083# If @usage@ includes---     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR',+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR', --     @samples@ /must/ be --     'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT' -- -- -   #VUID-VkImageCreateInfo-tiling-02084# If @usage@ includes---     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV',+--     'Vulkan.Extensions.VK_NV_shading_rate_image.IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV', --     @tiling@ /must/ be --     'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_OPTIMAL' --@@ -1306,20 +1312,20 @@ --     'Vulkan.Core12.Promoted_From_VK_KHR_image_format_list.ImageFormatListCreateInfo' --     structure was included in the @pNext@ chain and --     'Vulkan.Core12.Promoted_From_VK_KHR_image_format_list.ImageFormatListCreateInfo'::@viewFormatCount@---     is not zero then all of the formats in+--     is not zero, then all of the formats in --     'Vulkan.Core12.Promoted_From_VK_KHR_image_format_list.ImageFormatListCreateInfo'::@pViewFormats@ --     /must/ be compatible with the @format@ as described in the --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility compatibility table> -- -- -   #VUID-VkImageCreateInfo-flags-04738# If @flags@ does not contain --     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_MUTABLE_FORMAT_BIT'---     and the @pNext@ chain include a+--     and the @pNext@ chain includes a --     'Vulkan.Core12.Promoted_From_VK_KHR_image_format_list.ImageFormatListCreateInfo'---     structure then+--     structure, then --     'Vulkan.Core12.Promoted_From_VK_KHR_image_format_list.ImageFormatListCreateInfo'::@viewFormatCount@ --     /must/ be @0@ or @1@ ----- = Valid Usage (Implicit)+-- == Valid Usage (Implicit) -- -- -   #VUID-VkImageCreateInfo-sType-sType# @sType@ /must/ be --     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_IMAGE_CREATE_INFO'@@ -1335,7 +1341,10 @@ --     'Vulkan.Extensions.VK_EXT_image_drm_format_modifier.ImageDrmFormatModifierListCreateInfoEXT', --     'Vulkan.Core12.Promoted_From_VK_KHR_image_format_list.ImageFormatListCreateInfo', --     'Vulkan.Core12.Promoted_From_VK_EXT_separate_stencil_usage.ImageStencilUsageCreateInfo',---     or 'Vulkan.Extensions.VK_KHR_swapchain.ImageSwapchainCreateInfoKHR'+--     'Vulkan.Extensions.VK_KHR_swapchain.ImageSwapchainCreateInfoKHR',+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoProfileKHR VkVideoProfileKHR>,+--     or+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoProfilesKHR VkVideoProfilesKHR> -- -- -   #VUID-VkImageCreateInfo-sType-unique# The @sType@ value of each --     struct in the @pNext@ chain /must/ be unique@@ -1371,7 +1380,6 @@ --     /must/ be a valid 'Vulkan.Core10.Enums.ImageLayout.ImageLayout' --     value ----- \<\/section> -- = See Also -- -- 'Vulkan.Core10.FundamentalTypes.Extent3D',@@ -1407,8 +1415,8 @@   , -- | @arrayLayers@ is the number of layers in the image.     arrayLayers :: Word32   , -- | @samples@ is a-    -- 'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlagBits' specifying-    -- the number of+    -- 'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlagBits' value+    -- specifying the number of     -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-multisampling samples per texel>.     samples :: SampleCountFlagBits   , -- | @tiling@ is a 'Vulkan.Core10.Enums.ImageTiling.ImageTiling' value@@ -1422,9 +1430,9 @@     -- specifying the sharing mode of the image when it will be accessed by     -- multiple queue families.     sharingMode :: SharingMode-  , -- | @pQueueFamilyIndices@ is a list of queue families that will access this-    -- image (ignored if @sharingMode@ is not-    -- 'Vulkan.Core10.Enums.SharingMode.SHARING_MODE_CONCURRENT').+  , -- | @pQueueFamilyIndices@ is a pointer to an array of queue families that+    -- will access this image. It is ignored if @sharingMode@ is not+    -- 'Vulkan.Core10.Enums.SharingMode.SHARING_MODE_CONCURRENT'.     queueFamilyIndices :: Vector Word32   , -- | @initialLayout@ is a 'Vulkan.Core10.Enums.ImageLayout.ImageLayout' value     -- specifying the initial 'Vulkan.Core10.Enums.ImageLayout.ImageLayout' of
src/Vulkan/Core10/ImageView.hs view
@@ -377,7 +377,7 @@ -- -- When using an image view of a depth\/stencil image to populate a -- descriptor set (e.g. for sampling in the shader, or for use as an input--- attachment), the @aspectMask@ /must/ only include one bit and selects+-- attachment), the @aspectMask@ /must/ only include one bit, which selects -- whether the image view is used for depth reads (i.e. using a -- floating-point sampler or input attachment in the shader) or stencil -- reads (i.e. using an unsigned integer sampler or input attachment in the@@ -521,8 +521,8 @@ -- implicit @usage@ /can/ be overriden by adding a -- 'Vulkan.Core11.Promoted_From_VK_KHR_maintenance2.ImageViewUsageCreateInfo' -- structure to the @pNext@ chain, but the view usage /must/ be a subset of--- the image usage. If the image was has a depth-stencil format and was--- created with a+-- the image usage. If @image@ has a depth-stencil format and was created+-- with a -- 'Vulkan.Core12.Promoted_From_VK_EXT_separate_stencil_usage.ImageStencilUsageCreateInfo' -- structure included in the @pNext@ chain of -- 'Vulkan.Core10.Image.ImageCreateInfo', the usage is calculated based on@@ -573,8 +573,8 @@ -- flag, @format@ /must/ be /compatible/ with the image’s format as -- described above, or /must/ be an uncompressed format in which case it -- /must/ be /size-compatible/ with the image’s format, as defined for--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#copies-images-format-size-compatibility copying data between images>--- In this case the resulting image view’s texel dimensions equal the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#copies-images-format-size-compatibility copying data between images>.+-- In this case, the resulting image view’s texel dimensions equal the -- dimensions of the selected mip level divided by the compressed texel -- block size and rounded up. --@@ -601,9 +601,9 @@ -- If the image has a -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar> -- @format@ and @subresourceRange.aspectMask@ is--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT',--- @format@ /must/ be identical to the image @format@, and the sampler to--- be used with the image view /must/ enable+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT', then+-- the @format@ /must/ be identical to the image @format@, and the sampler+-- to be used with the image view /must/ enable -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>. -- -- If @image@ was created with the@@ -998,7 +998,7 @@ -- -- -   #VUID-VkImageViewCreateInfo-image-02086# If @image@ was created with --     @usage@ containing---     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR',+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR', --     @viewType@ /must/ be --     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D' or --     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D_ARRAY'@@ -1006,13 +1006,13 @@ -- -   #VUID-VkImageViewCreateInfo-image-02087# If the --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage feature> --     is enabled, and If @image@ was created with @usage@ containing---     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV',+--     'Vulkan.Extensions.VK_NV_shading_rate_image.IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV', --     @format@ /must/ be 'Vulkan.Core10.Enums.Format.FORMAT_R8_UINT' -- -- -   #VUID-VkImageViewCreateInfo-usage-04550# If the --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate feature> --     is enabled, and the @usage@ for the image view includes---     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR',+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR', --     then the image view’s --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features> --     /must/ contain@@ -1021,7 +1021,7 @@ -- -   #VUID-VkImageViewCreateInfo-usage-04551# If the --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate feature> --     is enabled, the @usage@ for the image view includes---     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR',+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR', --     and --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-layeredShadingRateAttachments layeredShadingRateAttachments> --     is 'Vulkan.Core10.FundamentalTypes.FALSE',@@ -1153,8 +1153,10 @@ --     @NULL@ or a pointer to a valid instance of --     'Vulkan.Extensions.VK_EXT_astc_decode_mode.ImageViewASTCDecodeModeEXT', --     'Vulkan.Core11.Promoted_From_VK_KHR_maintenance2.ImageViewUsageCreateInfo',+--     'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.SamplerYcbcrConversionInfo',+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoProfileKHR VkVideoProfileKHR>, --     or---     'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.SamplerYcbcrConversionInfo'+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoProfilesKHR VkVideoProfilesKHR> -- -- -   #VUID-VkImageViewCreateInfo-sType-unique# The @sType@ value of each --     struct in the @pNext@ chain /must/ be unique@@ -1203,12 +1205,12 @@   , -- | @format@ is a 'Vulkan.Core10.Enums.Format.Format' describing the format     -- and type used to interpret texel blocks in the image.     format :: Format-  , -- | @components@ is a 'ComponentMapping' specifies a remapping of color-    -- components (or of depth or stencil components after they have been+  , -- | @components@ is a 'ComponentMapping' structure specifying a remapping of+    -- color components (or of depth or stencil components after they have been     -- converted into color components).     components :: ComponentMapping-  , -- | @subresourceRange@ is a 'ImageSubresourceRange' selecting the set of-    -- mipmap levels and array layers to be accessible to the view.+  , -- | @subresourceRange@ is a 'ImageSubresourceRange' structure selecting the+    -- set of mipmap levels and array layers to be accessible to the view.     subresourceRange :: ImageSubresourceRange   }   deriving (Typeable)
src/Vulkan/Core10/LayerDiscovery.hs view
@@ -79,11 +79,10 @@ -- the @pProperties@ array, and on return the variable is overwritten with -- the number of structures actually written to @pProperties@. If -- @pPropertyCount@ is less than the number of layer properties available,--- at most @pPropertyCount@ structures will be written. If @pPropertyCount@--- is smaller than the number of layers available,+-- at most @pPropertyCount@ structures will be written, and -- 'Vulkan.Core10.Enums.Result.INCOMPLETE' will be returned instead of -- 'Vulkan.Core10.Enums.Result.SUCCESS', to indicate that not all the--- available layer properties were returned.+-- available properties were returned. -- -- The list of available layers may change at any time due to actions -- outside of the Vulkan implementation, so two calls to@@ -160,11 +159,10 @@ -- the @pProperties@ array, and on return the variable is overwritten with -- the number of structures actually written to @pProperties@. If -- @pPropertyCount@ is less than the number of layer properties available,--- at most @pPropertyCount@ structures will be written. If @pPropertyCount@--- is smaller than the number of layers available,+-- at most @pPropertyCount@ structures will be written, and -- 'Vulkan.Core10.Enums.Result.INCOMPLETE' will be returned instead of -- 'Vulkan.Core10.Enums.Result.SUCCESS', to indicate that not all the--- available layer properties were returned.+-- available properties were returned. -- -- The list of layers enumerated by 'enumerateDeviceLayerProperties' /must/ -- be exactly the sequence of layers enabled for the instance. The members
src/Vulkan/Core10/Memory.hs view
@@ -125,9 +125,9 @@ -- When memory is allocated, its contents are undefined with the following -- constraint: ----- -   The contents of unprotected memory /must/ not be a function of data---     protected memory objects, even if those memory objects were---     previously freed.+-- -   The contents of unprotected memory /must/ not be a function of the+--     contents of data protected memory objects, even if those memory+--     objects were previously freed. -- -- Note --@@ -169,13 +169,13 @@ -- -- -   #VUID-vkAllocateMemory-pAllocateInfo-01713# --     @pAllocateInfo->allocationSize@ /must/ be less than or equal to---     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceMemoryProperties'::@memoryHeaps@[memindex].size+--     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceMemoryProperties'::@memoryHeaps@[@memindex@].@size@ --     where @memindex@ =---     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceMemoryProperties'::@memoryTypes@[pAllocateInfo->memoryTypeIndex].heapIndex+--     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceMemoryProperties'::@memoryTypes@[@pAllocateInfo->memoryTypeIndex@].@heapIndex@ --     as returned by --     'Vulkan.Core10.DeviceInitialization.getPhysicalDeviceMemoryProperties' --     for the 'Vulkan.Core10.Handles.PhysicalDevice' that @device@ was---     created from+--     created from. -- -- -   #VUID-vkAllocateMemory-pAllocateInfo-01714# --     @pAllocateInfo->memoryTypeIndex@ /must/ be less than@@ -183,13 +183,13 @@ --     as returned by --     'Vulkan.Core10.DeviceInitialization.getPhysicalDeviceMemoryProperties' --     for the 'Vulkan.Core10.Handles.PhysicalDevice' that @device@ was---     created from+--     created from. -- -- -   #VUID-vkAllocateMemory-deviceCoherentMemory-02790# If the --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-deviceCoherentMemory deviceCoherentMemory> --     feature is not enabled, @pAllocateInfo->memoryTypeIndex@ /must/ not --     identify a memory type supporting---     'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD'+--     'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD'. -- -- -   #VUID-vkAllocateMemory-maxMemoryAllocationCount-04101# There /must/ --     be less than@@ -237,7 +237,7 @@                => -- | @device@ is the logical device that owns the memory.                   Device                -> -- | @pAllocateInfo@ is a pointer to a 'MemoryAllocateInfo' structure-                  -- describing parameters of the allocation. A successful returned+                  -- describing parameters of the allocation. A successfully returned                   -- allocation /must/ use the requested parameters — no substitution is                   -- permitted by the implementation.                   (MemoryAllocateInfo a)@@ -841,11 +841,12 @@ -- possible. -- -- Importing memory /must/ not increase overall heap usage within a system.--- However, they /must/ affect the following per-process values: *--- 'Vulkan.Core11.Promoted_From_VK_KHR_maintenance3.PhysicalDeviceMaintenance3Properties'::@maxMemoryAllocationCount@--- *--- 'Vulkan.Extensions.VK_EXT_memory_budget.PhysicalDeviceMemoryBudgetPropertiesEXT'::@heapUsage@+-- However, it /must/ affect the following per-process values: --+-- -   'Vulkan.Core11.Promoted_From_VK_KHR_maintenance3.PhysicalDeviceMaintenance3Properties'::@maxMemoryAllocationCount@+--+-- -   'Vulkan.Extensions.VK_EXT_memory_budget.PhysicalDeviceMemoryBudgetPropertiesEXT'::@heapUsage@+-- -- When performing a memory import operation, it is the responsibility of -- the application to ensure the external handles and their associated -- payloads meet all valid usage requirements. However, implementations@@ -1165,12 +1166,12 @@ data MemoryAllocateInfo (es :: [Type]) = MemoryAllocateInfo   { -- | @pNext@ is @NULL@ or a pointer to a structure extending this structure.     next :: Chain es-  , -- | @allocationSize@ is the size of the allocation in bytes+  , -- | @allocationSize@ is the size of the allocation in bytes.     allocationSize :: DeviceSize   , -- | @memoryTypeIndex@ is an index identifying a memory type from the     -- @memoryTypes@ array of the     -- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceMemoryProperties'-    -- structure+    -- structure.     memoryTypeIndex :: Word32   }   deriving (Typeable)
src/Vulkan/Core10/MemoryManagement.hs view
@@ -142,11 +142,11 @@ --     equal to the size of @memory@ minus @memoryOffset@ -- -- -   #VUID-vkBindBufferMemory-buffer-01444# If @buffer@ requires a---     dedicated allocation(as reported by+--     dedicated allocation (as reported by --     'Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2.getBufferMemoryRequirements2' --     in---     'Vulkan.Core11.Promoted_From_VK_KHR_dedicated_allocation.MemoryDedicatedRequirements'::requiresDedicatedAllocation---     for @buffer@), @memory@ /must/ have been created with+--     'Vulkan.Core11.Promoted_From_VK_KHR_dedicated_allocation.MemoryDedicatedRequirements'::@requiresDedicatedAllocation@+--     for @buffer@), @memory@ /must/ have been allocated with --     'Vulkan.Core11.Promoted_From_VK_KHR_dedicated_allocation.MemoryDedicatedAllocateInfo'::@buffer@ --     equal to @buffer@ --@@ -161,22 +161,24 @@ --     'Vulkan.Core11.Promoted_From_VK_KHR_dedicated_allocation.MemoryDedicatedAllocateInfo'::@buffer@, --     and @memoryOffset@ /must/ be zero ----- -   #VUID-vkBindBufferMemory-None-01898# If buffer was created with the+-- -   #VUID-vkBindBufferMemory-None-01898# If @buffer@ was created with+--     the --     'Vulkan.Core10.Enums.BufferCreateFlagBits.BUFFER_CREATE_PROTECTED_BIT' --     bit set, the buffer /must/ be bound to a memory object allocated --     with a memory type that reports --     'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_PROTECTED_BIT' ----- -   #VUID-vkBindBufferMemory-None-01899# If buffer was created with the+-- -   #VUID-vkBindBufferMemory-None-01899# If @buffer@ was created with+--     the --     'Vulkan.Core10.Enums.BufferCreateFlagBits.BUFFER_CREATE_PROTECTED_BIT' --     bit not set, the buffer /must/ not be bound to a memory object---     created with a memory type that reports+--     allocated with a memory type that reports --     'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_PROTECTED_BIT' -- -- -   #VUID-vkBindBufferMemory-buffer-01038# If @buffer@ was created with --     'Vulkan.Extensions.VK_NV_dedicated_allocation.DedicatedAllocationBufferCreateInfoNV'::@dedicatedAllocation@ --     equal to 'Vulkan.Core10.FundamentalTypes.TRUE', @memory@ /must/ have---     been created with+--     been allocated with --     'Vulkan.Extensions.VK_NV_dedicated_allocation.DedicatedAllocationMemoryAllocateInfoNV'::@buffer@ --     equal to a buffer handle created with identical creation parameters --     to @buffer@ and @memoryOffset@ /must/ be zero@@ -188,16 +190,16 @@ --     'Vulkan.Core11.Promoted_From_VK_KHR_external_memory.ExternalMemoryBufferCreateInfo'::@handleTypes@ --     when @buffer@ was created ----- -   #VUID-vkBindBufferMemory-memory-02985# If @memory@ was created by a---     memory import operation, that is not+-- -   #VUID-vkBindBufferMemory-memory-02985# If @memory@ was allocated by+--     a memory import operation, that is not --     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ImportAndroidHardwareBufferInfoANDROID' --     with a non-@NULL@ @buffer@ value, the external handle type of the --     imported memory /must/ also have been set in --     'Vulkan.Core11.Promoted_From_VK_KHR_external_memory.ExternalMemoryBufferCreateInfo'::@handleTypes@ --     when @buffer@ was created ----- -   #VUID-vkBindBufferMemory-memory-02986# If @memory@ was created with---     the+-- -   #VUID-vkBindBufferMemory-memory-02986# If @memory@ was allocated+--     with the --     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ImportAndroidHardwareBufferInfoANDROID' --     memory import operation with a non-@NULL@ @buffer@ value, --     'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID'@@ -366,7 +368,7 @@ --     allocation (as reported by --     'Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2.getImageMemoryRequirements2' --     in---     'Vulkan.Core11.Promoted_From_VK_KHR_dedicated_allocation.MemoryDedicatedRequirements'::requiresDedicatedAllocation+--     'Vulkan.Core11.Promoted_From_VK_KHR_dedicated_allocation.MemoryDedicatedRequirements'::@requiresDedicatedAllocation@ --     for @image@), @memory@ /must/ have been created with --     'Vulkan.Core11.Promoted_From_VK_KHR_dedicated_allocation.MemoryDedicatedAllocateInfo'::@image@ --     equal to @image@
src/Vulkan/Core10/OtherTypes.hs view
@@ -207,9 +207,10 @@ --     with a sharing mode of --     'Vulkan.Core10.Enums.SharingMode.SHARING_MODE_CONCURRENT', --     @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ are not equal, and---     one of @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ is a special---     queue family values reserved for external memory transfers, the---     other /must/ be 'Vulkan.Core10.APIConstants.QUEUE_FAMILY_IGNORED'+--     one of @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ is one of the+--     special queue family values reserved for external memory transfers,+--     the other /must/ be+--     'Vulkan.Core10.APIConstants.QUEUE_FAMILY_IGNORED' -- -- -   #VUID-VkBufferMemoryBarrier-buffer-04089# If @buffer@ was created --     with a sharing mode of@@ -603,9 +604,9 @@ --     or @oldLayout@ and @newLayout@ define an --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-image-layout-transitions image layout transition>, --     and @oldLayout@ or @newLayout@ is---     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR'+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR' --     then @image@ /must/ have been created with---     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR' --     set -- -- -   #VUID-VkImageMemoryBarrier-image-01671# If @image@ has a@@ -655,9 +656,10 @@ --     a sharing mode of --     'Vulkan.Core10.Enums.SharingMode.SHARING_MODE_CONCURRENT', --     @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ are not equal, and---     one of @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ is a special---     queue family values reserved for external memory transfers, the---     other /must/ be 'Vulkan.Core10.APIConstants.QUEUE_FAMILY_IGNORED'+--     one of @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ is one of the+--     special queue family values reserved for external memory transfers,+--     the other /must/ be+--     'Vulkan.Core10.APIConstants.QUEUE_FAMILY_IGNORED' -- -- -   #VUID-VkImageMemoryBarrier-image-04072# If @image@ was created with --     a sharing mode of@@ -813,7 +815,7 @@            zero  --- | VkDrawIndirectCommand - Structure specifying a draw indirect command+-- | VkDrawIndirectCommand - Structure specifying a indirect drawing command -- -- = Description --@@ -891,8 +893,8 @@            zero  --- | VkDrawIndexedIndirectCommand - Structure specifying a draw indexed--- indirect command+-- | VkDrawIndexedIndirectCommand - Structure specifying a indexed indirect+-- drawing command -- -- = Description --@@ -985,7 +987,7 @@            zero  --- | VkDispatchIndirectCommand - Structure specifying a dispatch indirect+-- | VkDispatchIndirectCommand - Structure specifying a indirect dispatching -- command -- -- = Description
src/Vulkan/Core10/Pass.hs view
@@ -479,8 +479,8 @@ --     (the horizontal granularity). -- -- -   the @offset.y@ member in @renderArea@ is a multiple of the @height@---     of the returned 'Vulkan.Core10.FundamentalTypes.Extent2D' (the---     vertical granularity).+--     member of the returned 'Vulkan.Core10.FundamentalTypes.Extent2D'+--     (the vertical granularity). -- -- -   either the @offset.width@ member in @renderArea@ is a multiple of --     the horizontal granularity or @offset.x@+@offset.width@ is equal to@@ -831,8 +831,9 @@   , -- | @format@ is a 'Vulkan.Core10.Enums.Format.Format' value specifying the     -- format of the image view that will be used for the attachment.     format :: Format-  , -- | @samples@ is the number of samples of the image as defined in-    -- 'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlagBits'.+  , -- | @samples@ is a+    -- 'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlagBits' value+    -- specifying the number of samples of the image.     samples :: SampleCountFlagBits   , -- | @loadOp@ is a 'Vulkan.Core10.Enums.AttachmentLoadOp.AttachmentLoadOp'     -- value specifying how the contents of color and depth components of the@@ -1021,8 +1022,10 @@ -- decorated with a @Location@ value of __X__, then it uses the attachment -- provided in @pColorAttachments@[__X__]. If the @attachment@ member of -- any element of @pColorAttachments@ is--- 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED', writes to the--- corresponding location by a fragment are discarded.+-- 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED', or if+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#framebuffer-color-write-enable Color Write Enable>+-- has been disabled for the corresponding attachment index, then writes to+-- the corresponding location by a fragment shader are discarded. -- -- If @flags@ does not include -- 'Vulkan.Core10.Enums.SubpassDescriptionFlagBits.SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM',@@ -1201,8 +1204,8 @@ --     'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED', they /must/ have the --     same sample count ----- -   #VUID-VkSubpassDescription-attachment-00853# The @attachment@ member---     of each element of @pPreserveAttachments@ /must/ not be+-- -   #VUID-VkSubpassDescription-attachment-00853# Each element of+--     @pPreserveAttachments@ /must/ not be --     'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED' -- -- -   #VUID-VkSubpassDescription-pPreserveAttachments-00854# Each element@@ -1239,16 +1242,6 @@ --     then the subpass /must/ be the last subpass in a subpass dependency --     chain ----- -   #VUID-VkSubpassDescription-flags-03344# If @flags@ includes---     'Vulkan.Core10.Enums.SubpassDescriptionFlagBits.SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM',---     then the sample count of the input attachments /must/ equal---     @rasterizationSamples@------ -   #VUID-VkSubpassDescription-flags-03345# If @flags@ includes---     'Vulkan.Core10.Enums.SubpassDescriptionFlagBits.SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM',---     and if @sampleShadingEnable@ is enabled (explicitly or implicitly)---     then @minSampleShading@ /must/ equal 0.0--- -- -   #VUID-VkSubpassDescription-pInputAttachments-02868# If the render --     pass is created with --     'Vulkan.Core10.Enums.RenderPassCreateFlagBits.RENDER_PASS_CREATE_TRANSFORM_BIT_QCOM'@@ -1313,17 +1306,17 @@     -- structures defining the input attachments for this subpass and their     -- layouts.     inputAttachments :: Vector AttachmentReference-  , -- | @pColorAttachments@ is a pointer to an array of 'AttachmentReference'-    -- structures defining the color attachments for this subpass and their-    -- layouts.+  , -- | @pColorAttachments@ is a pointer to an array of @colorAttachmentCount@+    -- 'AttachmentReference' structures defining the color attachments for this+    -- subpass and their layouts.     colorAttachments :: Vector AttachmentReference-  , -- | @pResolveAttachments@ is an optional array of @colorAttachmentCount@-    -- 'AttachmentReference' structures defining the resolve attachments for-    -- this subpass and their layouts.+  , -- | @pResolveAttachments@ is @NULL@ or a pointer to an array of+    -- @colorAttachmentCount@ 'AttachmentReference' structures defining the+    -- resolve attachments for this subpass and their layouts.     resolveAttachments :: Vector AttachmentReference-  , -- | @pDepthStencilAttachment@ is a pointer to a 'AttachmentReference'-    -- structure specifying the depth\/stencil attachment for this subpass and-    -- its layout.+  , -- | @pDepthStencilAttachment@ is a pointer to an array of+    -- 'AttachmentReference' structures specifying the depth\/stencil+    -- attachment for this subpass and its layout.     depthStencilAttachment :: Maybe AttachmentReference   , -- | @pPreserveAttachments@ is a pointer to an array of     -- @preserveAttachmentCount@ render pass attachment indices identifying@@ -1453,7 +1446,7 @@ -- -- The first -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope>--- is limited to access in the pipeline stages determined by the+-- is limited to accesses in the pipeline stages determined by the -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-pipeline-stages-masks source stage mask> -- specified by @srcStageMask@. It is also limited to access types in the -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-access-masks source access mask>@@ -1461,7 +1454,7 @@ -- -- The second -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope>--- is limited to access in the pipeline stages determined by the+-- is limited to accesses in the pipeline stages determined by the -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-pipeline-stages-masks destination stage mask> -- specified by @dstStageMask@. It is also limited to access types in the -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-access-masks destination access mask>@@ -1767,7 +1760,7 @@ --     'Vulkan.Core11.Promoted_From_VK_KHR_maintenance2.RenderPassInputAttachmentAspectCreateInfo' --     structure, the @inputAttachmentIndex@ member of each element of its --     @pAspectReferences@ member /must/ be less than the value of---     @inputAttachmentCount@ in the member of @pSubpasses@ identified by+--     @inputAttachmentCount@ in the element of @pSubpasses@ identified by --     its @subpass@ member -- -- -   #VUID-VkRenderPassCreateInfo-pNext-01963# If the @pNext@ chain@@ -2007,7 +2000,7 @@ --     as attachment and non-attachment if both accesses are read-only. -- -- -   For depth\/stencil attachments, each aspect /can/ be used separately---     as attachments and non-attachments as long as the non-attachment+--     as attachment and non-attachment as long as the non-attachment --     accesses are also via an image subresource in either the --     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL' --     layout or the@@ -2122,16 +2115,16 @@ --     'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT', --     each element of @pAttachments@ that is used as an input, color, --     resolve, or depth\/stencil attachment by @renderPass@ /must/ have---     been created with a VkImageCreateInfo::@width@ greater than or equal---     to @width@+--     been created with a 'Vulkan.Core10.Image.ImageCreateInfo'::@width@+--     greater than or equal to @width@ -- -- -   #VUID-VkFramebufferCreateInfo-flags-04534# If @flags@ does not --     include --     'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT', --     each element of @pAttachments@ that is used as an input, color, --     resolve, or depth\/stencil attachment by @renderPass@ /must/ have---     been created with a VkImageCreateInfo::@height@ greater than or---     equal to @height@+--     been created with a 'Vulkan.Core10.Image.ImageCreateInfo'::@height@+--     greater than or equal to @height@ -- -- -   #VUID-VkFramebufferCreateInfo-flags-04535# If @flags@ does not --     include@@ -2139,8 +2132,8 @@ --     each element of @pAttachments@ that is used as an input, color, --     resolve, or depth\/stencil attachment by @renderPass@ /must/ have --     been created with a---     VkImageViewCreateInfo::@subresourceRange.layerCount@ greater than or---     equal to @layers@+--     'Vulkan.Core10.ImageView.ImageViewCreateInfo'::@subresourceRange.layerCount@+--     greater than or equal to @layers@ -- -- -   #VUID-VkFramebufferCreateInfo-renderPass-04536# If @renderPass@ was --     specified with non-zero view masks, each element of @pAttachments@@@ -2199,7 +2192,7 @@ --     'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT', --     an element of @pAttachments@ that is used as a --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment fragment shading rate attachment>---     /must/ have a width at least as large as ⌈@width@ \\ @texelWidth@⌉,+--     /must/ have a width at least as large as ⌈@width@ \/ @texelWidth@⌉, --     where @texelWidth@ is the largest value of --     @shadingRateAttachmentTexelSize.width@ in a --     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.FragmentShadingRateAttachmentInfoKHR'@@ -2210,7 +2203,7 @@ --     'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT', --     an element of @pAttachments@ that is used as a --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment fragment shading rate attachment>---     /must/ have a height at least as large as ⌈@height@ \\+--     /must/ have a height at least as large as ⌈@height@ \/ --     @texelHeight@⌉, where @texelHeight@ is the largest value of --     @shadingRateAttachmentTexelSize.height@ in a --     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.FragmentShadingRateAttachmentInfoKHR'@@ -2281,7 +2274,7 @@ --     member of an instance of --     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.FramebufferAttachmentsCreateInfo' --     in the @pNext@ chain that is used as an input, color, resolve or---     depth\/stencil attachment in @pRenderPass@ /must/ be greater than or+--     depth\/stencil attachment in @renderPass@ /must/ be greater than or --     equal to @width@ -- -- -   #VUID-VkFramebufferCreateInfo-flags-04542# If @flags@ includes@@ -2290,7 +2283,7 @@ --     member of an instance of --     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.FramebufferAttachmentsCreateInfo' --     in the @pNext@ chain that is used as an input, color, resolve or---     depth\/stencil attachment in @pRenderPass@ /must/ be greater than or+--     depth\/stencil attachment in @renderPass@ /must/ be greater than or --     equal to @height@ -- -- -   #VUID-VkFramebufferCreateInfo-flags-03196# If @flags@ includes@@ -2320,7 +2313,7 @@ --     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.FramebufferAttachmentsCreateInfo' --     in the @pNext@ chain that is used as a --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment fragment shading rate attachment>---     /must/ be greater than or equal to ⌈@width@ \\ @texelWidth@⌉, where+--     /must/ be greater than or equal to ⌈@width@ \/ @texelWidth@⌉, where --     @texelWidth@ is the largest value of --     @shadingRateAttachmentTexelSize.width@ in a --     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.FragmentShadingRateAttachmentInfoKHR'@@ -2333,7 +2326,7 @@ --     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.FramebufferAttachmentsCreateInfo' --     in the @pNext@ chain that is used as a --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment fragment shading rate attachment>---     /must/ be greater than or equal to ⌈@height@ \\ @texelHeight@⌉,+--     /must/ be greater than or equal to ⌈@height@ \/ @texelHeight@⌉, --     where @texelHeight@ is the largest value of --     @shadingRateAttachmentTexelSize.height@ in a --     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.FragmentShadingRateAttachmentInfoKHR'@@ -2364,7 +2357,7 @@ --     @pAttachmentImageInfos@ member of a --     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.FramebufferAttachmentsCreateInfo' --     structure included in the @pNext@ chain used as an input, color,---     resolve, or depth\/stencil attachment in @pRenderPass@ /must/ be+--     resolve, or depth\/stencil attachment in @renderPass@ /must/ be --     greater than the maximum bit index set in the view mask in the --     subpasses in which it is used in @renderPass@ --@@ -2375,7 +2368,7 @@ --     @pAttachmentImageInfos@ member of a --     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.FramebufferAttachmentsCreateInfo' --     structure included in the @pNext@ chain used as an input, color,---     resolve, or depth\/stencil attachment in @pRenderPass@ /must/ be+--     resolve, or depth\/stencil attachment in @renderPass@ /must/ be --     greater than or equal to @layers@ -- -- -   #VUID-VkFramebufferCreateInfo-flags-03201# If @flags@ includes@@ -2438,7 +2431,7 @@ --     each element of @pAttachments@ that is used as a fragment shading --     rate attachment by @renderPass@ /must/ have been created with a --     @usage@ value including---     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR' -- -- -   #VUID-VkFramebufferCreateInfo-flags-04549# If @flags@ includes --     'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT',@@ -2448,7 +2441,7 @@ --     structure included in the @pNext@ chain that refers to an attachment --     used as a fragment shading rate attachment by @renderPass@ /must/ --     include---     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR' -- -- == Valid Usage (Implicit) --
src/Vulkan/Core10/Pipeline.hs view
@@ -155,6 +155,7 @@ import Vulkan.Core10.Handles (PipelineCache(..)) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_blend_operation_advanced (PipelineColorBlendAdvancedStateCreateInfoEXT) import Vulkan.Core10.Enums.PipelineColorBlendStateCreateFlags (PipelineColorBlendStateCreateFlags)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_color_write_enable (PipelineColorWriteCreateInfoEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_AMD_pipeline_compiler_control (PipelineCompilerControlCreateInfoAMD) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_framebuffer_mixed_samples (PipelineCoverageModulationStateCreateInfoNV) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_coverage_reduction_mode (PipelineCoverageReductionStateCreateInfoNV)@@ -172,6 +173,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_conservative_rasterization (PipelineRasterizationConservativeStateCreateInfoEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_depth_clip_enable (PipelineRasterizationDepthClipStateCreateInfoEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_line_rasterization (PipelineRasterizationLineStateCreateInfoEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_provoking_vertex (PipelineRasterizationProvokingVertexStateCreateInfoEXT) import Vulkan.Core10.Enums.PipelineRasterizationStateCreateFlags (PipelineRasterizationStateCreateFlags) import {-# SOURCE #-} Vulkan.Extensions.VK_AMD_rasterization_order (PipelineRasterizationStateRasterizationOrderAMD) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_transform_feedback (PipelineRasterizationStateStreamCreateInfoEXT)@@ -264,10 +266,10 @@ -- -- = Description ----- The 'GraphicsPipelineCreateInfo' structure includes an array of shader--- create info structures containing all the desired active shader stages,--- as well as creation info to define all relevant fixed-function stages,--- and a pipeline layout.+-- The 'GraphicsPipelineCreateInfo' structure includes an array of+-- 'PipelineShaderStageCreateInfo' structures for each of the desired+-- active shader stages, as well as creation information for all relevant+-- fixed-function stages, and a pipeline layout. -- -- == Valid Usage --@@ -692,6 +694,7 @@ -- -- = See Also --+-- 'Vulkan.Extensions.VK_NV_inherited_viewport_scissor.CommandBufferInheritanceViewportScissorInfoNV', -- 'PipelineViewportStateCreateInfo', -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetViewport', -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'@@ -834,11 +837,7 @@            zero  --- | VkSpecializationInfo - Structure specifying specialization info------ = Description------ @pMapEntries@ is a pointer to a 'SpecializationMapEntry' structure.+-- | VkSpecializationInfo - Structure specifying specialization information -- -- == Valid Usage --@@ -1589,7 +1588,7 @@ -- 'Vulkan.Core10.Enums.Format.Format', -- 'PipelineVertexInputStateCreateInfo' data VertexInputAttributeDescription = VertexInputAttributeDescription-  { -- | @location@ is the shader binding location number for this attribute.+  { -- | @location@ is the shader input location number for this attribute.     location :: Word32   , -- | @binding@ is the binding number which this attribute takes its data     -- from.@@ -1952,7 +1951,7 @@     next :: Chain es   , -- | @flags@ is reserved for future use.     flags :: PipelineTessellationStateCreateFlags-  , -- | @patchControlPoints@ number of control points per patch.+  , -- | @patchControlPoints@ is the number of control points per patch.     patchControlPoints :: Word32   }   deriving (Typeable)@@ -2261,6 +2260,7 @@ --     'Vulkan.Extensions.VK_EXT_conservative_rasterization.PipelineRasterizationConservativeStateCreateInfoEXT', --     'Vulkan.Extensions.VK_EXT_depth_clip_enable.PipelineRasterizationDepthClipStateCreateInfoEXT', --     'Vulkan.Extensions.VK_EXT_line_rasterization.PipelineRasterizationLineStateCreateInfoEXT',+--     'Vulkan.Extensions.VK_EXT_provoking_vertex.PipelineRasterizationProvokingVertexStateCreateInfoEXT', --     'Vulkan.Extensions.VK_AMD_rasterization_order.PipelineRasterizationStateRasterizationOrderAMD', --     or --     'Vulkan.Extensions.VK_EXT_transform_feedback.PipelineRasterizationStateStreamCreateInfoEXT'@@ -2344,6 +2344,7 @@   getNext PipelineRasterizationStateCreateInfo{..} = next   extends :: forall e b proxy. Typeable e => proxy e -> (Extends PipelineRasterizationStateCreateInfo e => b) -> Maybe b   extends _ f+    | Just Refl <- eqT @e @PipelineRasterizationProvokingVertexStateCreateInfoEXT = Just f     | Just Refl <- eqT @e @PipelineRasterizationLineStateCreateInfoEXT = Just f     | Just Refl <- eqT @e @PipelineRasterizationDepthClipStateCreateInfoEXT = Just f     | Just Refl <- eqT @e @PipelineRasterizationStateStreamCreateInfoEXT = Just f@@ -2504,8 +2505,8 @@   , -- | @flags@ is reserved for future use.     flags :: PipelineMultisampleStateCreateFlags   , -- | @rasterizationSamples@ is a-    -- 'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlagBits' specifying-    -- the number of samples used in rasterization.+    -- 'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlagBits' value+    -- specifying the number of samples used in rasterization.     rasterizationSamples :: SampleCountFlagBits   , -- | @sampleShadingEnable@ /can/ be used to enable     -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-sampleshading Sample Shading>.@@ -2513,8 +2514,8 @@   , -- | @minSampleShading@ specifies a minimum fraction of sample shading if     -- @sampleShadingEnable@ is set to 'Vulkan.Core10.FundamentalTypes.TRUE'.     minSampleShading :: Float-  , -- | @pSampleMask@ is an array of 'Vulkan.Core10.FundamentalTypes.SampleMask'-    -- values used in the+  , -- | @pSampleMask@ is a pointer to an array of+    -- 'Vulkan.Core10.FundamentalTypes.SampleMask' values used in the     -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-samplemask sample mask test>.     sampleMask :: Vector SampleMask   , -- | @alphaToCoverageEnable@ controls whether a temporary coverage value is@@ -2715,7 +2716,7 @@ --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#framebuffer-blend-advanced advanced blend operation>, --     then @colorAttachmentCount@ of the subpass this pipeline is compiled --     against /must/ be less than or equal to---     'Vulkan.Extensions.VK_EXT_blend_operation_advanced.PhysicalDeviceBlendOperationAdvancedPropertiesEXT'::advancedBlendMaxColorAttachments+--     'Vulkan.Extensions.VK_EXT_blend_operation_advanced.PhysicalDeviceBlendOperationAdvancedPropertiesEXT'::@advancedBlendMaxColorAttachments@ -- -- -   #VUID-VkPipelineColorBlendAttachmentState-constantAlphaColorBlendFactors-04454# --     If the @VK_KHR_portability_subset@ extension is enabled, and@@ -2905,9 +2906,12 @@ --     /must/ be --     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO' ----- -   #VUID-VkPipelineColorBlendStateCreateInfo-pNext-pNext# @pNext@---     /must/ be @NULL@ or a pointer to a valid instance of+-- -   #VUID-VkPipelineColorBlendStateCreateInfo-pNext-pNext# Each @pNext@+--     member of any structure (including this one) in the @pNext@ chain+--     /must/ be either @NULL@ or a pointer to a valid instance of --     'Vulkan.Extensions.VK_EXT_blend_operation_advanced.PipelineColorBlendAdvancedStateCreateInfoEXT'+--     or+--     'Vulkan.Extensions.VK_EXT_color_write_enable.PipelineColorWriteCreateInfoEXT' -- -- -   #VUID-VkPipelineColorBlendStateCreateInfo-sType-unique# The @sType@ --     value of each struct in the @pNext@ chain /must/ be unique@@ -2937,8 +2941,7 @@     logicOpEnable :: Bool   , -- | @logicOp@ selects which logical operation to apply.     logicOp :: LogicOp-  , -- | @pAttachments@: is a pointer to an array of per target attachment-    -- states.+  , -- | @pAttachments@ is a pointer to an array of per target attachment states.     attachments :: Vector PipelineColorBlendAttachmentState   , -- | @blendConstants@ is a pointer to an array of four values used as the R,     -- G, B, and A components of the blend constant that are used in blending,@@ -2958,6 +2961,7 @@   getNext PipelineColorBlendStateCreateInfo{..} = next   extends :: forall e b proxy. Typeable e => proxy e -> (Extends PipelineColorBlendStateCreateInfo e => b) -> Maybe b   extends _ f+    | Just Refl <- eqT @e @PipelineColorWriteCreateInfoEXT = Just f     | Just Refl <- eqT @e @PipelineColorBlendAdvancedStateCreateInfoEXT = Just f     | otherwise = Nothing @@ -3065,7 +3069,7 @@   , -- | @pDynamicStates@ is a pointer to an array of     -- 'Vulkan.Core10.Enums.DynamicState.DynamicState' values specifying which     -- pieces of pipeline state will use the values from dynamic state commands-    -- rather than from pipeline state creation info.+    -- rather than from pipeline state creation information.     dynamicStates :: Vector DynamicState   }   deriving (Typeable)@@ -3383,6 +3387,87 @@ -- back to the application, and -- 'Vulkan.Core10.Enums.Result.ERROR_INVALID_SHADER_NV' will be generated. --+-- The state required for a graphics pipeline is divided into+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-vertex-input vertex input state>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>,+-- and+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-output fragment output state>.+--+-- Vertex input state is defined by:+--+-- -   'PipelineVertexInputStateCreateInfo'+--+-- -   'PipelineInputAssemblyStateCreateInfo'+--+-- Pre-rasterization shader state is defined by:+--+-- -   'PipelineShaderStageCreateInfo' entries for each vertex processing+--     shader stage used+--+-- -   Within the 'Vulkan.Core10.Handles.PipelineLayout', all bindings that+--     affect the specified shader stages+--+-- -   'PipelineViewportStateCreateInfo'+--+-- -   'PipelineRasterizationStateCreateInfo'+--+-- -   'PipelineTessellationStateCreateInfo' if tessellation stages are+--     included.+--+-- -   'Vulkan.Core10.Handles.RenderPass' and @subpass@ parameter+--+-- -   'Vulkan.Extensions.VK_EXT_discard_rectangles.PipelineDiscardRectangleStateCreateInfoEXT'+--+-- -   'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PipelineFragmentShadingRateStateCreateInfoKHR'+--+-- -   'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.PipelineFragmentShadingRateEnumStateCreateInfoNV'+--+-- Fragment shader state is defined by:+--+-- -   A 'PipelineShaderStageCreateInfo' entry for the fragment shader+--+-- -   Within the 'Vulkan.Core10.Handles.PipelineLayout', all bindings that+--     affect the fragment shader+--+-- -   'PipelineMultisampleStateCreateInfo'+--+-- -   'PipelineDepthStencilStateCreateInfo'+--+-- -   'Vulkan.Core10.Handles.RenderPass' and @subpass@ parameter+--+-- -   'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PipelineFragmentShadingRateStateCreateInfoKHR'+--+-- -   'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.PipelineFragmentShadingRateEnumStateCreateInfoNV'+--+-- Fragment output state is defined by:+--+-- -   'PipelineColorBlendStateCreateInfo'+--+-- -   The @alphaToCoverageEnable@ and @alphaToOneEnable@ members of+--     'PipelineMultisampleStateCreateInfo'.+--+-- -   'Vulkan.Core10.Handles.RenderPass' and @subpass@ parameter+--+-- A complete graphics pipeline always includes+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>,+-- with other subsets included depending on that state. If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>+-- includes a vertex shader, then+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-vertex-input vertex input state>+-- is included in a complete graphics pipeline. If the value of+-- 'PipelineRasterizationStateCreateInfo'::@rasterizerDiscardEnable@ in the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>+-- is 'Vulkan.Core10.FundamentalTypes.FALSE' or the+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT'+-- dynamic state is enabled+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>+-- and+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-output fragment output interface state>+-- is included in a complete graphics pipeline.+--+-- Pipelines /must/ be created with a complete set of pipeline state.+-- -- == Valid Usage -- -- -   #VUID-VkGraphicsPipelineCreateInfo-flags-00722# If @flags@ contains@@ -3414,9 +3499,11 @@ -- -   #VUID-VkGraphicsPipelineCreateInfo-stage-00726# The @stage@ member --     of each element of @pStages@ /must/ be unique ----- -   #VUID-VkGraphicsPipelineCreateInfo-pStages-02095# The geometric---     shader stages provided in @pStages@ /must/ be either from the mesh---     shading pipeline (@stage@ is+-- -   #VUID-VkGraphicsPipelineCreateInfo-pStages-02095# If the pipeline is+--     being created with+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>+--     the geometric shader stages provided in @pStages@ /must/ be either+--     from the mesh shading pipeline (@stage@ is --     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_NV' --     or --     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_NV')@@ -3427,8 +3514,10 @@ --     or --     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT') ----- -   #VUID-VkGraphicsPipelineCreateInfo-stage-02096# The @stage@ member---     of one element of @pStages@ /must/ be either+-- -   #VUID-VkGraphicsPipelineCreateInfo-stage-02096# If the pipeline is+--     being created with+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>+--     the @stage@ member of one element of @pStages@ /must/ be either --     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT' or --     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_NV' --@@ -3436,110 +3525,153 @@ --     of each element of @pStages@ /must/ not be --     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_COMPUTE_BIT' ----- -   #VUID-VkGraphicsPipelineCreateInfo-pStages-00729# If @pStages@---     includes a tessellation control shader stage, it /must/ include a---     tessellation evaluation shader stage+-- -   #VUID-VkGraphicsPipelineCreateInfo-pStages-00729# If the pipeline is+--     being created with+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>+--     and @pStages@ includes a tessellation control shader stage, it+--     /must/ include a tessellation evaluation shader stage ----- -   #VUID-VkGraphicsPipelineCreateInfo-pStages-00730# If @pStages@---     includes a tessellation evaluation shader stage, it /must/ include a---     tessellation control shader stage+-- -   #VUID-VkGraphicsPipelineCreateInfo-pStages-00730# If the pipeline is+--     being created with+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>+--     and @pStages@ includes a tessellation evaluation shader stage, it+--     /must/ include a tessellation control shader stage ----- -   #VUID-VkGraphicsPipelineCreateInfo-pStages-00731# If @pStages@---     includes a tessellation control shader stage and a tessellation---     evaluation shader stage, @pTessellationState@ /must/ be a valid---     pointer to a valid 'PipelineTessellationStateCreateInfo' structure+-- -   #VUID-VkGraphicsPipelineCreateInfo-pStages-00731# If the pipeline is+--     being created with+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>+--     and @pStages@ includes a tessellation control shader stage and a+--     tessellation evaluation shader stage, @pTessellationState@ /must/ be+--     a valid pointer to a valid 'PipelineTessellationStateCreateInfo'+--     structure ----- -   #VUID-VkGraphicsPipelineCreateInfo-pStages-00732# If @pStages@---     includes tessellation shader stages, the shader code of at least one---     stage /must/ contain an @OpExecutionMode@ instruction that specifies---     the type of subdivision in the pipeline+-- -   #VUID-VkGraphicsPipelineCreateInfo-pStages-00732# If the pipeline is+--     being created with+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>+--     and @pStages@ includes tessellation shader stages, the shader code+--     of at least one stage /must/ contain an @OpExecutionMode@+--     instruction that specifies the type of subdivision in the pipeline ----- -   #VUID-VkGraphicsPipelineCreateInfo-pStages-00733# If @pStages@---     includes tessellation shader stages, and the shader code of both---     stages contain an @OpExecutionMode@ instruction that specifies the---     type of subdivision in the pipeline, they /must/ both specify the---     same subdivision mode+-- -   #VUID-VkGraphicsPipelineCreateInfo-pStages-00733# If the pipeline is+--     being created with+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>+--     and @pStages@ includes tessellation shader stages, and the shader+--     code of both stages contain an @OpExecutionMode@ instruction that+--     specifies the type of subdivision in the pipeline, they /must/ both+--     specify the same subdivision mode ----- -   #VUID-VkGraphicsPipelineCreateInfo-pStages-00734# If @pStages@---     includes tessellation shader stages, the shader code of at least one---     stage /must/ contain an @OpExecutionMode@ instruction that specifies---     the output patch size in the pipeline+-- -   #VUID-VkGraphicsPipelineCreateInfo-pStages-00734# If the pipeline is+--     being created with+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>+--     and @pStages@ includes tessellation shader stages, the shader code+--     of at least one stage /must/ contain an @OpExecutionMode@+--     instruction that specifies the output patch size in the pipeline ----- -   #VUID-VkGraphicsPipelineCreateInfo-pStages-00735# If @pStages@---     includes tessellation shader stages, and the shader code of both---     contain an @OpExecutionMode@ instruction that specifies the out---     patch size in the pipeline, they /must/ both specify the same patch---     size+-- -   #VUID-VkGraphicsPipelineCreateInfo-pStages-00735# If the pipeline is+--     being created with+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>+--     and @pStages@ includes tessellation shader stages, and the shader+--     code of both contain an @OpExecutionMode@ instruction that specifies+--     the out patch size in the pipeline, they /must/ both specify the+--     same patch size ----- -   #VUID-VkGraphicsPipelineCreateInfo-pStages-00736# If @pStages@---     includes tessellation shader stages, the @topology@ member of---     @pInputAssembly@ /must/ be+-- -   #VUID-VkGraphicsPipelineCreateInfo-pStages-00736# If the pipeline is+--     being created with+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>+--     and @pStages@ includes tessellation shader stages, the @topology@+--     member of @pInputAssembly@ /must/ be --     'Vulkan.Core10.Enums.PrimitiveTopology.PRIMITIVE_TOPOLOGY_PATCH_LIST' ----- -   #VUID-VkGraphicsPipelineCreateInfo-topology-00737# If the @topology@---     member of @pInputAssembly@ is+-- -   #VUID-VkGraphicsPipelineCreateInfo-topology-00737# If the pipeline+--     is being created with+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>+--     and the @topology@ member of @pInputAssembly@ is --     'Vulkan.Core10.Enums.PrimitiveTopology.PRIMITIVE_TOPOLOGY_PATCH_LIST', --     @pStages@ /must/ include tessellation shader stages ----- -   #VUID-VkGraphicsPipelineCreateInfo-pStages-00738# If @pStages@---     includes a geometry shader stage, and does not include any---     tessellation shader stages, its shader code /must/ contain an+-- -   #VUID-VkGraphicsPipelineCreateInfo-pStages-00738# If the pipeline is+--     being created with+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>+--     and @pStages@ includes a geometry shader stage, and does not include+--     any tessellation shader stages, its shader code /must/ contain an --     @OpExecutionMode@ instruction that specifies an input primitive type --     that is --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-geometry-execution compatible> --     with the primitive topology specified in @pInputAssembly@ ----- -   #VUID-VkGraphicsPipelineCreateInfo-pStages-00739# If @pStages@---     includes a geometry shader stage, and also includes tessellation---     shader stages, its shader code /must/ contain an @OpExecutionMode@---     instruction that specifies an input primitive type that is+-- -   #VUID-VkGraphicsPipelineCreateInfo-pStages-00739# If the pipeline is+--     being created with+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>+--     and @pStages@ includes a geometry shader stage, and also includes+--     tessellation shader stages, its shader code /must/ contain an+--     @OpExecutionMode@ instruction that specifies an input primitive type+--     that is --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-geometry-execution compatible> --     with the primitive topology that is output by the tessellation --     stages ----- -   #VUID-VkGraphicsPipelineCreateInfo-pStages-00740# If @pStages@---     includes a fragment shader stage and a geometry shader stage, and---     the fragment shader code reads from an input variable that is---     decorated with @PrimitiveID@, then the geometry shader code /must/---     write to a matching output variable, decorated with @PrimitiveID@,---     in all execution paths+-- -   #VUID-VkGraphicsPipelineCreateInfo-pStages-00740# If the pipeline is+--     being created with+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>+--     and+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>,+--     it includes both a fragment shader and a geometry shader, and the+--     fragment shader code reads from an input variable that is decorated+--     with @PrimitiveID@, then the geometry shader code /must/ write to a+--     matching output variable, decorated with @PrimitiveID@, in all+--     execution paths ----- -   #VUID-VkGraphicsPipelineCreateInfo-pStages-00741# If @pStages@---     includes a fragment shader stage, its shader code /must/ not read---     from any input attachment that is defined as---     'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED' in @subpass@+-- -   #VUID-VkGraphicsPipelineCreateInfo-pStages-00741# If the pipeline is+--     being created with+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>+--     the fragment shader /must/ not read from any input attachment that+--     is defined as 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED' in+--     @subpass@ ----- -   #VUID-VkGraphicsPipelineCreateInfo-pStages-00742# The shader code---     for the entry points identified by @pStages@, and the rest of the---     state identified by this structure /must/ adhere to the pipeline---     linking rules described in the+-- -   #VUID-VkGraphicsPipelineCreateInfo-pStages-00742# If the pipeline is+--     being created with+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>+--     and multiple pre-rasterization shader stages are included in+--     @pStages@, the shader code for the entry points identified by those+--     @pStages@ and the rest of the state identified by this structure+--     /must/ adhere to the pipeline linking rules described in the --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces Shader Interfaces> --     chapter ----- -   #VUID-VkGraphicsPipelineCreateInfo-subpass-01756# If rasterization---     is not disabled and @subpass@ uses a depth\/stencil attachment in---     @renderPass@ that has a layout of---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL'---     or---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL'---     in the 'Vulkan.Core10.Pass.AttachmentReference' defined by---     @subpass@, the @depthWriteEnable@ member of @pDepthStencilState@---     /must/ be 'Vulkan.Core10.FundamentalTypes.FALSE'+-- -   #VUID-VkGraphicsPipelineCreateInfo-None-04889# If the pipeline is+--     being created with+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>+--     and+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>,+--     the fragment shader and last vertex processing shader stage and any+--     relevant state /must/ adhere to the pipeline linking rules described+--     in the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces Shader Interfaces>+--     chapter ----- -   #VUID-VkGraphicsPipelineCreateInfo-subpass-01757# If rasterization---     is not disabled and @subpass@ uses a depth\/stencil attachment in---     @renderPass@ that has a layout of---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL'---     or---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL'---     in the 'Vulkan.Core10.Pass.AttachmentReference' defined by---     @subpass@, the @failOp@, @passOp@ and @depthFailOp@ members of each---     of the @front@ and @back@ members of @pDepthStencilState@ /must/ be+-- -   #VUID-VkGraphicsPipelineCreateInfo-subpass-04890# If the pipeline is+--     being created with+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>,+--     and @subpass@ uses a depth\/stencil attachment in @renderPass@ with+--     a read-only layout for the depth aspect in the+--     'Vulkan.Core10.Pass.AttachmentReference' defined by @subpass@, the+--     @depthWriteEnable@ member of @pDepthStencilState@ /must/ be+--     'Vulkan.Core10.FundamentalTypes.FALSE'+--+-- -   #VUID-VkGraphicsPipelineCreateInfo-subpass-04891# If the pipeline is+--     being created with+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>,+--     and @subpass@ uses a depth\/stencil attachment in @renderPass@ with+--     a read-only layout for the stencil aspect in the+--     'Vulkan.Core10.Pass.AttachmentReference' defined by @subpass@, the+--     @failOp@, @passOp@ and @depthFailOp@ members of each of the @front@+--     and @back@ members of @pDepthStencilState@ /must/ be --     'Vulkan.Core10.Enums.StencilOp.STENCIL_OP_KEEP' ----- -   #VUID-VkGraphicsPipelineCreateInfo-blendEnable-04717# If---     rasterization is not disabled, then for each color attachment in the---     subpass, if the+-- -   #VUID-VkGraphicsPipelineCreateInfo-blendEnable-04717# If the+--     pipeline is being created with+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-output fragment output interface state>,+--     then for each color attachment in the subpass, if the --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#potential-format-features potential format features> --     of the format of the corresponding attachment description do not --     contain@@ -3548,67 +3680,88 @@ --     @pAttachments@ member of @pColorBlendState@ /must/ be --     'Vulkan.Core10.FundamentalTypes.FALSE' ----- -   #VUID-VkGraphicsPipelineCreateInfo-attachmentCount-00746# If---     rasterization is not disabled and the subpass uses color---     attachments, the @attachmentCount@ member of @pColorBlendState@---     /must/ be equal to the @colorAttachmentCount@ used to create---     @subpass@+-- -   #VUID-VkGraphicsPipelineCreateInfo-attachmentCount-00746# If the+--     pipeline is being created with+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-output fragment output interface state>,+--     and the subpass uses color attachments, the @attachmentCount@ member+--     of @pColorBlendState@ /must/ be equal to the @colorAttachmentCount@+--     used to create @subpass@ ----- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04130# If no---     element of the @pDynamicStates@ member of @pDynamicState@ is+-- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04130# If the+--     pipeline is being created with+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>,+--     and no element of the @pDynamicStates@ member of @pDynamicState@ is --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT' or --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT', --     the @pViewports@ member of @pViewportState@ /must/ be a valid --     pointer to an array of @pViewportState->viewportCount@ valid --     'Viewport' structures ----- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04131# If no---     element of the @pDynamicStates@ member of @pDynamicState@ is+-- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04131# If the+--     pipeline is being created with+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>,+--     and no element of the @pDynamicStates@ member of @pDynamicState@ is --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR' or --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT', --     the @pScissors@ member of @pViewportState@ /must/ be a valid pointer --     to an array of @pViewportState->scissorCount@ --     'Vulkan.Core10.FundamentalTypes.Rect2D' structures ----- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-00749# If the wide---     lines feature is not enabled, and no element of the @pDynamicStates@---     member of @pDynamicState@ is+-- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-00749# If the+--     pipeline is being created with+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>,+--     and the wide lines feature is not enabled, and no element of the+--     @pDynamicStates@ member of @pDynamicState@ is --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_WIDTH', the --     @lineWidth@ member of @pRasterizationState@ /must/ be @1.0@ -- -- -   #VUID-VkGraphicsPipelineCreateInfo-rasterizerDiscardEnable-00750# If---     the @rasterizerDiscardEnable@ member of @pRasterizationState@ is+--     the pipeline is being created with+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>,+--     and the @rasterizerDiscardEnable@ member of @pRasterizationState@ is --     'Vulkan.Core10.FundamentalTypes.FALSE', @pViewportState@ /must/ be a --     valid pointer to a valid 'PipelineViewportStateCreateInfo' structure --+-- -   #VUID-VkGraphicsPipelineCreateInfo-pViewportState-04892# If the+--     pipeline is being created with+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>,+--     and the graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT'+--     dynamic state enabled, @pViewportState@ /must/ be a valid pointer to+--     a valid 'PipelineViewportStateCreateInfo' structure+-- -- -   #VUID-VkGraphicsPipelineCreateInfo-rasterizerDiscardEnable-00751# If---     the @rasterizerDiscardEnable@ member of @pRasterizationState@ is---     'Vulkan.Core10.FundamentalTypes.FALSE', @pMultisampleState@ /must/---     be a valid pointer to a valid 'PipelineMultisampleStateCreateInfo'---     structure+--     the pipeline is being created with+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>,+--     @pMultisampleState@ /must/ be a valid pointer to a valid+--     'PipelineMultisampleStateCreateInfo' structure -- -- -   #VUID-VkGraphicsPipelineCreateInfo-rasterizerDiscardEnable-00752# If---     the @rasterizerDiscardEnable@ member of @pRasterizationState@ is---     'Vulkan.Core10.FundamentalTypes.FALSE', and @subpass@ uses a---     depth\/stencil attachment, @pDepthStencilState@ /must/ be a valid---     pointer to a valid 'PipelineDepthStencilStateCreateInfo' structure+--     the pipeline is being created with+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>,+--     and @subpass@ uses a depth\/stencil attachment, @pDepthStencilState@+--     /must/ be a valid pointer to a valid+--     'PipelineDepthStencilStateCreateInfo' structure -- -- -   #VUID-VkGraphicsPipelineCreateInfo-rasterizerDiscardEnable-00753# If---     the @rasterizerDiscardEnable@ member of @pRasterizationState@ is---     'Vulkan.Core10.FundamentalTypes.FALSE', and @subpass@ uses color---     attachments, @pColorBlendState@ /must/ be a valid pointer to a valid---     'PipelineColorBlendStateCreateInfo' structure+--     the pipeline is being created with+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-output fragment output interface state>,+--     and @subpass@ uses color attachments, @pColorBlendState@ /must/ be a+--     valid pointer to a valid 'PipelineColorBlendStateCreateInfo'+--     structure -- -- -   #VUID-VkGraphicsPipelineCreateInfo-rasterizerDiscardEnable-04493# If---     the @rasterizerDiscardEnable@ member of @pRasterizationState@ is---     'Vulkan.Core10.FundamentalTypes.FALSE',+--     the pipeline is being created with+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-output fragment output interface state>, --     @pColorBlendState->attachmentCount@ /must/ be greater than the index --     of all color attachments that are not --     'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED' for the @subpass@ --     index in @renderPass@ -- -- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-00754# If the---     depth bias clamping feature is not enabled, no element of the+--     pipeline is being created with+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>,+--     the depth bias clamping feature is not enabled, no element of the --     @pDynamicStates@ member of @pDynamicState@ is --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS', and the --     @depthBiasEnable@ member of @pRasterizationState@ is@@ -3616,16 +3769,20 @@ --     of @pRasterizationState@ /must/ be @0.0@ -- -- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-02510# If the---     @VK_EXT_depth_range_unrestricted@ extension is not enabled and no---     element of the @pDynamicStates@ member of @pDynamicState@ is+--     pipeline is being created with+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>,+--     and the @VK_EXT_depth_range_unrestricted@ extension is not enabled+--     and no element of the @pDynamicStates@ member of @pDynamicState@ is --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS', and --     the @depthBoundsTestEnable@ member of @pDepthStencilState@ is --     'Vulkan.Core10.FundamentalTypes.TRUE', the @minDepthBounds@ and --     @maxDepthBounds@ members of @pDepthStencilState@ /must/ be between --     @0.0@ and @1.0@, inclusive ----- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-01521# If no---     element of the @pDynamicStates@ member of @pDynamicState@ is+-- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-01521# If the+--     pipeline is being created with+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>,+--     and no element of the @pDynamicStates@ member of @pDynamicState@ is --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT', --     and the @sampleLocationsEnable@ member of a --     'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'@@ -3638,8 +3795,10 @@ --     'Vulkan.Extensions.VK_EXT_sample_locations.getPhysicalDeviceMultisamplePropertiesEXT' --     with a @samples@ parameter equaling @rasterizationSamples@ ----- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-01522# If no---     element of the @pDynamicStates@ member of @pDynamicState@ is+-- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-01522# If the+--     pipeline is being created with+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>,+--     and no element of the @pDynamicStates@ member of @pDynamicState@ is --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT', --     and the @sampleLocationsEnable@ member of a --     'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'@@ -3652,8 +3811,10 @@ --     'Vulkan.Extensions.VK_EXT_sample_locations.getPhysicalDeviceMultisamplePropertiesEXT' --     with a @samples@ parameter equaling @rasterizationSamples@ ----- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-01523# If no---     element of the @pDynamicStates@ member of @pDynamicState@ is+-- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-01523# If the+--     pipeline is being created with+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>,+--     and no element of the @pDynamicStates@ member of @pDynamicState@ is --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT', --     and the @sampleLocationsEnable@ member of a --     'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'@@ -3663,7 +3824,9 @@ --     @rasterizationSamples@ -- -- -   #VUID-VkGraphicsPipelineCreateInfo-sampleLocationsEnable-01524# If---     the @sampleLocationsEnable@ member of a+--     the pipeline is being created with+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>,+--     and the @sampleLocationsEnable@ member of a --     'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT' --     structure included in the @pNext@ chain of @pMultisampleState@ is --     'Vulkan.Core10.FundamentalTypes.TRUE', the fragment shader code@@ -3674,34 +3837,45 @@ --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-pipelinelayout-consistency consistent> --     with all shaders specified in @pStages@ ----- -   #VUID-VkGraphicsPipelineCreateInfo-subpass-00757# If neither the---     @VK_AMD_mixed_attachment_samples@ nor the+-- -   #VUID-VkGraphicsPipelineCreateInfo-subpass-00757# If the pipeline is+--     being created with+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>,+--     and neither the @VK_AMD_mixed_attachment_samples@ nor the --     @VK_NV_framebuffer_mixed_samples@ extensions are enabled, and if --     @subpass@ uses color and\/or depth\/stencil attachments, then the --     @rasterizationSamples@ member of @pMultisampleState@ /must/ be the --     same as the sample count for those subpass attachments ----- -   #VUID-VkGraphicsPipelineCreateInfo-subpass-01505# If the---     @VK_AMD_mixed_attachment_samples@ extension is enabled, and if---     @subpass@ uses color and\/or depth\/stencil attachments, then the+-- -   #VUID-VkGraphicsPipelineCreateInfo-subpass-01505# If the pipeline is+--     being created with+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>,+--     and the @VK_AMD_mixed_attachment_samples@ extension is enabled, and+--     if @subpass@ uses color and\/or depth\/stencil attachments, then the --     @rasterizationSamples@ member of @pMultisampleState@ /must/ equal --     the maximum of the sample counts of those subpass attachments ----- -   #VUID-VkGraphicsPipelineCreateInfo-subpass-01411# If the---     @VK_NV_framebuffer_mixed_samples@ extension is enabled, and if---     @subpass@ has a depth\/stencil attachment and depth test, stencil+-- -   #VUID-VkGraphicsPipelineCreateInfo-subpass-01411# If the pipeline is+--     being created with+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>,+--     and the @VK_NV_framebuffer_mixed_samples@ extension is enabled, and+--     if @subpass@ has a depth\/stencil attachment and depth test, stencil --     test, or depth bounds test are enabled, then the --     @rasterizationSamples@ member of @pMultisampleState@ /must/ be the --     same as the sample count of the depth\/stencil attachment ----- -   #VUID-VkGraphicsPipelineCreateInfo-subpass-01412# If the---     @VK_NV_framebuffer_mixed_samples@ extension is enabled, and if---     @subpass@ has any color attachments, then the @rasterizationSamples@---     member of @pMultisampleState@ /must/ be greater than or equal to the---     sample count for those subpass attachments+-- -   #VUID-VkGraphicsPipelineCreateInfo-subpass-01412# If the pipeline is+--     being created with+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>,+--     and the @VK_NV_framebuffer_mixed_samples@ extension is enabled, and+--     if @subpass@ has any color attachments, then the+--     @rasterizationSamples@ member of @pMultisampleState@ /must/ be+--     greater than or equal to the sample count for those subpass+--     attachments -- -- -   #VUID-VkGraphicsPipelineCreateInfo-coverageReductionMode-02722# If---     the @VK_NV_coverage_reduction_mode@ extension is enabled, the+--     the pipeline is being created with+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>,+--     and the @VK_NV_coverage_reduction_mode@ extension is enabled, the --     coverage reduction mode specified by --     'Vulkan.Extensions.VK_NV_coverage_reduction_mode.PipelineCoverageReductionStateCreateInfoNV'::@coverageReductionMode@, --     the @rasterizationSamples@ member of @pMultisampleState@ and the@@ -3709,53 +3883,67 @@ --     subpass has them) /must/ be a valid combination returned by --     'Vulkan.Extensions.VK_NV_coverage_reduction_mode.getPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV' ----- -   #VUID-VkGraphicsPipelineCreateInfo-subpass-00758# If @subpass@ does---     not use any color and\/or depth\/stencil attachments, then the---     @rasterizationSamples@ member of @pMultisampleState@ /must/ follow---     the rules for a+-- -   #VUID-VkGraphicsPipelineCreateInfo-subpass-00758# If the pipeline is+--     being created with+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>+--     and @subpass@ does not use any color and\/or depth\/stencil+--     attachments, then the @rasterizationSamples@ member of+--     @pMultisampleState@ /must/ follow the rules for a --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-noattachments zero-attachment subpass> -- -- -   #VUID-VkGraphicsPipelineCreateInfo-subpass-00759# @subpass@ /must/ --     be a valid subpass within @renderPass@ ----- -   #VUID-VkGraphicsPipelineCreateInfo-renderPass-00760# If the---     @renderPass@ has multiview enabled and @subpass@ has more than one---     bit set in the view mask and @multiviewTessellationShader@ is not---     enabled, then @pStages@ /must/ not include tessellation shaders+-- -   #VUID-VkGraphicsPipelineCreateInfo-renderPass-00760# If the pipeline+--     is being created with+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>,+--     and the @renderPass@ has multiview enabled and @subpass@ has more+--     than one bit set in the view mask and @multiviewTessellationShader@+--     is not enabled, then @pStages@ /must/ not include tessellation+--     shaders ----- -   #VUID-VkGraphicsPipelineCreateInfo-renderPass-00761# If the---     @renderPass@ has multiview enabled and @subpass@ has more than one---     bit set in the view mask and @multiviewGeometryShader@ is not---     enabled, then @pStages@ /must/ not include a geometry shader+-- -   #VUID-VkGraphicsPipelineCreateInfo-renderPass-00761# If the pipeline+--     is being created with+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>,+--     and the @renderPass@ has multiview enabled and @subpass@ has more+--     than one bit set in the view mask and @multiviewGeometryShader@ is+--     not enabled, then @pStages@ /must/ not include a geometry shader ----- -   #VUID-VkGraphicsPipelineCreateInfo-renderPass-00762# If the---     @renderPass@ has multiview enabled and @subpass@ has more than one---     bit set in the view mask, shaders in the pipeline /must/ not write---     to the @Layer@ built-in output+-- -   #VUID-VkGraphicsPipelineCreateInfo-renderPass-00762# If the pipeline+--     is being created with+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>,+--     and the @renderPass@ has multiview enabled and @subpass@ has more+--     than one bit set in the view mask, shaders in the pipeline /must/+--     not write to the @Layer@ built-in output ----- -   #VUID-VkGraphicsPipelineCreateInfo-renderPass-00763# If the---     @renderPass@ has multiview enabled, then all shaders /must/ not---     include variables decorated with the @Layer@ built-in decoration in---     their interfaces+-- -   #VUID-VkGraphicsPipelineCreateInfo-renderPass-00763# If the pipeline+--     is being created with+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>,+--     and the @renderPass@ has multiview enabled, then all shaders /must/+--     not include variables decorated with the @Layer@ built-in decoration+--     in their interfaces -- -- -   #VUID-VkGraphicsPipelineCreateInfo-flags-00764# @flags@ /must/ not --     contain the --     'Vulkan.Core11.Promoted_From_VK_KHR_device_group.PIPELINE_CREATE_DISPATCH_BASE' --     flag ----- -   #VUID-VkGraphicsPipelineCreateInfo-pStages-01565# If @pStages@---     includes a fragment shader stage and an input attachment was---     referenced by an @aspectMask@ at @renderPass@ creation time, its---     shader code /must/ only read from the aspects that were specified---     for that input attachment+-- -   #VUID-VkGraphicsPipelineCreateInfo-pStages-01565# If the pipeline is+--     being created with+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>+--     and an input attachment was referenced by an @aspectMask@ at+--     @renderPass@ creation time, the fragment shader /must/ only read+--     from the aspects that were specified for that input attachment -- -- -   #VUID-VkGraphicsPipelineCreateInfo-layout-01688# The number of --     resources in @layout@ accessible to each shader stage that is used --     by the pipeline /must/ be less than or equal to --     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxPerStageResources@ ----- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-01715# If no---     element of the @pDynamicStates@ member of @pDynamicState@ is+-- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-01715# If the+--     pipeline is being created with+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>,+--     and no element of the @pDynamicStates@ member of @pDynamicState@ is --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_W_SCALING_NV', --     and the @viewportWScalingEnable@ member of a --     'Vulkan.Extensions.VK_NV_clip_space_w_scaling.PipelineViewportWScalingStateCreateInfoNV'@@ -3769,8 +3957,10 @@ --     'Vulkan.Extensions.VK_NV_clip_space_w_scaling.ViewportWScalingNV' --     structures ----- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04056# If no---     element of the @pDynamicStates@ member of @pDynamicState@ is+-- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04056# If the+--     pipeline is being created with+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>,+--     and no element of the @pDynamicStates@ member of @pDynamicState@ is --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV', --     and if @pViewportState->pNext@ chain includes a --     'Vulkan.Extensions.VK_NV_scissor_exclusive.PipelineViewportExclusiveScissorStateCreateInfoNV'@@ -3779,8 +3969,10 @@ --     array of @exclusiveScissorCount@ --     'Vulkan.Core10.FundamentalTypes.Rect2D' structures ----- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04057# If no---     element of the @pDynamicStates@ member of @pDynamicState@ is+-- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04057# If the+--     pipeline is being created with+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>,+--     and no element of the @pDynamicStates@ member of @pDynamicState@ is --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV', --     and if @pViewportState->pNext@ chain includes a --     'Vulkan.Extensions.VK_NV_shading_rate_image.PipelineViewportShadingRateImageStateCreateInfoNV'@@ -3789,8 +3981,10 @@ --     'Vulkan.Extensions.VK_NV_shading_rate_image.ShadingRatePaletteNV' --     structures ----- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04058# If no---     element of the @pDynamicStates@ member of @pDynamicState@ is+-- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04058# If the+--     pipeline is being created with+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>,+--     and no element of the @pDynamicStates@ member of @pDynamicState@ is --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_EXT', --     and if @pNext@ chain includes a --     'Vulkan.Extensions.VK_EXT_discard_rectangles.PipelineDiscardRectangleStateCreateInfoEXT'@@ -3799,25 +3993,34 @@ --     array of @discardRectangleCount@ --     'Vulkan.Core10.FundamentalTypes.Rect2D' structures ----- -   #VUID-VkGraphicsPipelineCreateInfo-pStages-02097# If @pStages@---     includes a vertex shader stage, @pVertexInputState@ /must/ be a---     valid pointer to a valid 'PipelineVertexInputStateCreateInfo'---     structure+-- -   #VUID-VkGraphicsPipelineCreateInfo-pStages-02097# If the pipeline is+--     being created with+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-vertex-input vertex input state>,+--     @pVertexInputState@ /must/ be a valid pointer to a valid+--     'PipelineVertexInputStateCreateInfo' structure ----- -   #VUID-VkGraphicsPipelineCreateInfo-pStages-02098# If @pStages@---     includes a vertex shader stage, @pInputAssemblyState@ /must/ be a---     valid pointer to a valid 'PipelineInputAssemblyStateCreateInfo'---     structure+-- -   #VUID-VkGraphicsPipelineCreateInfo-pStages-02098# If the pipeline is+--     being created with+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-vertex-input vertex input state>,+--     @pInputAssemblyState@ /must/ be a valid pointer to a valid+--     'PipelineInputAssemblyStateCreateInfo' structure ----- -   #VUID-VkGraphicsPipelineCreateInfo-pStages-02317# The @Xfb@---     execution mode /can/ be specified by only one shader stage in---     @pStages@+-- -   #VUID-VkGraphicsPipelineCreateInfo-pStages-02317# If the pipeline is+--     being created with+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>,+--     the @Xfb@ execution mode /can/ be specified by no more than one+--     shader stage in @pStages@ ----- -   #VUID-VkGraphicsPipelineCreateInfo-pStages-02318# If any shader---     stage in @pStages@ specifies @Xfb@ execution mode it /must/ be the---     last vertex processing stage+-- -   #VUID-VkGraphicsPipelineCreateInfo-pStages-02318# If the pipeline is+--     being created with+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>,+--     and any shader stage in @pStages@ specifies @Xfb@ execution mode it+--     /must/ be the last vertex processing stage ----- -   #VUID-VkGraphicsPipelineCreateInfo-rasterizationStream-02319# If a+-- -   #VUID-VkGraphicsPipelineCreateInfo-rasterizationStream-02319# If the+--     pipeline is being created with+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>,+--     and a --     'Vulkan.Extensions.VK_EXT_transform_feedback.PipelineRasterizationStateStreamCreateInfoEXT'::@rasterizationStream@ --     value other than zero is specified, all variables in the output --     interface of the entry point being compiled decorated with@@ -3825,7 +4028,10 @@ --     decorated with identical @Stream@ values that match the --     @rasterizationStream@ ----- -   #VUID-VkGraphicsPipelineCreateInfo-rasterizationStream-02320# If+-- -   #VUID-VkGraphicsPipelineCreateInfo-rasterizationStream-02320# If the+--     pipeline is being created with+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>,+--     and --     'Vulkan.Extensions.VK_EXT_transform_feedback.PipelineRasterizationStateStreamCreateInfoEXT'::@rasterizationStream@ --     is zero, or not specified, all variables in the output interface of --     the entry point being compiled decorated with @Position@,@@ -3834,31 +4040,42 @@ --     decoration -- -- -   #VUID-VkGraphicsPipelineCreateInfo-geometryStreams-02321# If the---     last vertex processing stage is a geometry shader, and that geometry---     shader uses the @GeometryStreams@ capability, then+--     pipeline is being created with+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>,+--     and the last vertex processing stage is a geometry shader, and that+--     geometry shader uses the @GeometryStreams@ capability, then --     'Vulkan.Extensions.VK_EXT_transform_feedback.PhysicalDeviceTransformFeedbackFeaturesEXT'::@geometryStreams@ --     feature /must/ be enabled ----- -   #VUID-VkGraphicsPipelineCreateInfo-None-02322# If there are any mesh---     shader stages in the pipeline there /must/ not be any shader stage---     in the pipeline with a @Xfb@ execution mode+-- -   #VUID-VkGraphicsPipelineCreateInfo-None-02322# If the pipeline is+--     being created with+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>,+--     and there are any mesh shader stages in the pipeline there /must/+--     not be any shader stage in the pipeline with a @Xfb@ execution mode -- -- -   #VUID-VkGraphicsPipelineCreateInfo-lineRasterizationMode-02766# If+--     the pipeline is being created with+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>+--     and at least one of+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-output fragment output interface state>+--     or+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>, --     the @lineRasterizationMode@ member of a --     'Vulkan.Extensions.VK_EXT_line_rasterization.PipelineRasterizationLineStateCreateInfoEXT' --     structure included in the @pNext@ chain of @pRasterizationState@ is --     'Vulkan.Extensions.VK_EXT_line_rasterization.LINE_RASTERIZATION_MODE_BRESENHAM_EXT' --     or---     'Vulkan.Extensions.VK_EXT_line_rasterization.LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT'---     and if rasterization is enabled, then the @alphaToCoverageEnable@,---     @alphaToOneEnable@, and @sampleShadingEnable@ members of---     @pMultisampleState@ /must/ all be+--     'Vulkan.Extensions.VK_EXT_line_rasterization.LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT',+--     then the @alphaToCoverageEnable@, @alphaToOneEnable@, and+--     @sampleShadingEnable@ members of @pMultisampleState@ /must/ all be --     'Vulkan.Core10.FundamentalTypes.FALSE' -- -- -   #VUID-VkGraphicsPipelineCreateInfo-stippledLineEnable-02767# If the---     @stippledLineEnable@ member of+--     pipeline is being created with+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>,+--     the @stippledLineEnable@ member of --     'Vulkan.Extensions.VK_EXT_line_rasterization.PipelineRasterizationLineStateCreateInfoEXT'---     is 'Vulkan.Core10.FundamentalTypes.TRUE' and no element of the+--     is 'Vulkan.Core10.FundamentalTypes.TRUE', and no element of the --     @pDynamicStates@ member of @pDynamicState@ is --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_EXT', --     then the @lineStippleFactor@ member of@@ -3914,35 +4131,71 @@ --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_TEST_ENABLE_EXT', --     or 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_OP_EXT' ----- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-03379# If+-- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-03379# If the+--     pipeline is being created with+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>,+--     and --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT' --     is included in the @pDynamicStates@ array then @viewportCount@ --     /must/ be zero ----- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-03380# If+-- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-03380# If the+--     pipeline is being created with+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>,+--     and --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT' --     is included in the @pDynamicStates@ array then @scissorCount@ /must/ --     be zero ----- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04132# If+-- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04132# If the+--     pipeline is being created with+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>,+--     and --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT' --     is included in the @pDynamicStates@ array then --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT' /must/ not --     be present ----- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04133# If+-- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04133# If the+--     pipeline is being created with+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>,+--     and --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT' --     is included in the @pDynamicStates@ array then --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR' /must/ not --     be present --+-- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04868# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState2 extendedDynamicState2>+--     feature is not enabled, there /must/ be no element of the+--     @pDynamicStates@ member of @pDynamicState@ set to+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS_ENABLE_EXT',+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT',+--     or+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT'+--+-- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04869# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState2LogicOp extendedDynamicState2LogicOp>+--     feature is not enabled, there /must/ be no element of the+--     @pDynamicStates@ member of @pDynamicState@ set to+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LOGIC_OP_EXT'+--+-- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04870# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState2PatchControlPoints extendedDynamicState2PatchControlPoints>+--     feature is not enabled, there /must/ be no element of the+--     @pDynamicStates@ member of @pDynamicState@ set to+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT'+-- -- -   #VUID-VkGraphicsPipelineCreateInfo-flags-02877# If @flags@ includes --     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV', --     then the --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-deviceGeneratedCommands ::deviceGeneratedCommands> --     feature /must/ be enabled ----- -   #VUID-VkGraphicsPipelineCreateInfo-flags-02966# If @flags@ includes+-- -   #VUID-VkGraphicsPipelineCreateInfo-flags-02966# If the pipeline is+--     being created with+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>+--     and @flags@ includes --     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV', --     then all stages /must/ not specify @Xfb@ execution mode --@@ -3954,64 +4207,109 @@ --     or --     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT_EXT' ----- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04494# If+-- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04494# If the+--     pipeline is being created with+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>+--     or+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>+--     and --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'---     is not included in @pDynamicState@->@pDynamicStates@,---     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PipelineFragmentShadingRateStateCreateInfoKHR'::fragmentSize.width+--     is not included in @pDynamicState->pDynamicStates@,+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PipelineFragmentShadingRateStateCreateInfoKHR'::@fragmentSize.width@ --     /must/ be greater than or equal to @1@ ----- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04495# If+-- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04495# If the+--     pipeline is being created with+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>+--     or+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>+--     and --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'---     is not included in @pDynamicState@->@pDynamicStates@,---     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PipelineFragmentShadingRateStateCreateInfoKHR'::fragmentSize.height+--     is not included in @pDynamicState->pDynamicStates@,+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PipelineFragmentShadingRateStateCreateInfoKHR'::@fragmentSize.height@ --     /must/ be greater than or equal to @1@ ----- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04496# If+-- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04496# If the+--     pipeline is being created with+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>+--     or+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>+--     and --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'---     is not included in @pDynamicState@->@pDynamicStates@,---     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PipelineFragmentShadingRateStateCreateInfoKHR'::fragmentSize.width+--     is not included in @pDynamicState->pDynamicStates@,+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PipelineFragmentShadingRateStateCreateInfoKHR'::@fragmentSize.width@ --     /must/ be a power-of-two value ----- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04497# If+-- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04497# If the+--     pipeline is being created with+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>+--     or+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>+--     and --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'---     is not included in @pDynamicState@->@pDynamicStates@,---     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PipelineFragmentShadingRateStateCreateInfoKHR'::fragmentSize.height+--     is not included in @pDynamicState->pDynamicStates@,+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PipelineFragmentShadingRateStateCreateInfoKHR'::@fragmentSize.height@ --     /must/ be a power-of-two value ----- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04498# If+-- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04498# If the+--     pipeline is being created with+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>+--     or+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>+--     and --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'---     is not included in @pDynamicState@->@pDynamicStates@,---     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PipelineFragmentShadingRateStateCreateInfoKHR'::fragmentSize.width+--     is not included in @pDynamicState->pDynamicStates@,+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PipelineFragmentShadingRateStateCreateInfoKHR'::@fragmentSize.width@ --     /must/ be less than or equal to @4@ ----- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04499# If+-- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04499# If the+--     pipeline is being created with+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>+--     or+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>+--     and --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'---     is not included in @pDynamicState@->@pDynamicStates@,---     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PipelineFragmentShadingRateStateCreateInfoKHR'::fragmentSize.height+--     is not included in @pDynamicState->pDynamicStates@,+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PipelineFragmentShadingRateStateCreateInfoKHR'::@fragmentSize.height@ --     /must/ be less than or equal to @4@ ----- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04500# If+-- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04500# If the+--     pipeline is being created with+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>+--     or+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>+--     and --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'---     is not included in @pDynamicState@->@pDynamicStates@, and the+--     is not included in @pDynamicState->pDynamicStates@, and the --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-pipelineFragmentShadingRate pipelineFragmentShadingRate feature> --     is not enabled,---     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PipelineFragmentShadingRateStateCreateInfoKHR'::fragmentSize.width+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PipelineFragmentShadingRateStateCreateInfoKHR'::@fragmentSize.width@ --     and---     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PipelineFragmentShadingRateStateCreateInfoKHR'::fragmentSize.height+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PipelineFragmentShadingRateStateCreateInfoKHR'::@fragmentSize.height@ --     /must/ both be equal to @1@ ----- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04501# If+-- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04501# If the+--     pipeline is being created with+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>+--     or+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>+--     and --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'---     is not included in @pDynamicState@->@pDynamicStates@, and the+--     is not included in @pDynamicState->pDynamicStates@, and the --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#feature-primitiveFragmentShadingRate primitiveFragmentShadingRate feature> --     is not enabled, --     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PipelineFragmentShadingRateStateCreateInfoKHR'::@combinerOps@[0] --     /must/ be --     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR' ----- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04502# If+-- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04502# If the+--     pipeline is being created with+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>+--     or+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>+--     and --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'---     is not included in @pDynamicState@->@pDynamicStates@, and the+--     is not included in @pDynamicState->pDynamicStates@, and the --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#feature-attachmentFragmentShadingRate attachmentFragmentShadingRate feature> --     is not enabled, --     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PipelineFragmentShadingRateStateCreateInfoKHR'::@combinerOps@[1]@@ -4019,71 +4317,101 @@ --     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR' -- -- -   #VUID-VkGraphicsPipelineCreateInfo-primitiveFragmentShadingRateWithMultipleViewports-04503#---     If the+--     If the pipeline is being created with+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>+--     and the --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports primitiveFragmentShadingRateWithMultipleViewports> --     limit is not supported, --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'---     is not included in @pDynamicState@->@pDynamicStates@, and+--     is not included in @pDynamicState->pDynamicStates@, and --     'PipelineViewportStateCreateInfo'::@viewportCount@ is greater than --     @1@, entry points specified in @pStages@ /must/ not write to the --     @PrimitiveShadingRateKHR@ built-in -- -- -   #VUID-VkGraphicsPipelineCreateInfo-primitiveFragmentShadingRateWithMultipleViewports-04504#---     If the+--     If the pipeline is being created with+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>+--     and the --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports primitiveFragmentShadingRateWithMultipleViewports> --     limit is not supported, and entry points specified in @pStages@ --     write to the @ViewportIndex@ built-in, they /must/ not also write to --     the @PrimitiveShadingRateKHR@ built-in -- -- -   #VUID-VkGraphicsPipelineCreateInfo-primitiveFragmentShadingRateWithMultipleViewports-04505#---     If the+--     If the pipeline is being created with+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>+--     and the --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports primitiveFragmentShadingRateWithMultipleViewports> --     limit is not supported, and entry points specified in @pStages@ --     write to the @ViewportMaskNV@ built-in, they /must/ not also write --     to the @PrimitiveShadingRateKHR@ built-in -- -- -   #VUID-VkGraphicsPipelineCreateInfo-fragmentShadingRateNonTrivialCombinerOps-04506#---     If the+--     If the pipeline is being created with+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>+--     or+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>,+--     the --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-fragmentShadingRateNonTrivialCombinerOps fragmentShadingRateNonTrivialCombinerOps>---     limit is not supported and+--     limit is not supported, and --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'---     is not included in @pDynamicState@->@pDynamicStates@, elements of+--     is not included in @pDynamicState->pDynamicStates@, elements of --     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PipelineFragmentShadingRateStateCreateInfoKHR'::@combinerOps@ --     /must/ be --     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR' --     or --     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR' ----- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04569# If+-- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04569# If the+--     pipeline is being created with+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>+--     or+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>,+--     and --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'---     is not included in @pDynamicState@->@pDynamicStates@, and the+--     is not included in @pDynamicState->pDynamicStates@, and the --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentShadingRateEnums fragmentShadingRateEnums feature> --     is not enabled,---     'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.PipelineFragmentShadingRateEnumStateCreateInfoNV'::shadingRateType+--     'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.PipelineFragmentShadingRateEnumStateCreateInfoNV'::@shadingRateType@ --     /must/ be equal to --     'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.FRAGMENT_SHADING_RATE_TYPE_FRAGMENT_SIZE_NV'. ----- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04570# If+-- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04570# If the+--     pipeline is being created with+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>+--     or+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>,+--     and --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'---     is not included in @pDynamicState@->@pDynamicStates@, and the+--     is not included in @pDynamicState->pDynamicStates@, and the --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-pipelineFragmentShadingRate pipelineFragmentShadingRate feature> --     is not enabled,---     'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.PipelineFragmentShadingRateEnumStateCreateInfoNV'::shadingRate+--     'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.PipelineFragmentShadingRateEnumStateCreateInfoNV'::@shadingRate@ --     /must/ be equal to --     'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.FRAGMENT_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV'. ----- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04571# If+-- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04571# If the+--     pipeline is being created with+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>+--     or+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>,+--     and --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'---     is not included in @pDynamicState@->@pDynamicStates@, and the+--     is not included in @pDynamicState->pDynamicStates@, and the --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#feature-primitiveFragmentShadingRate primitiveFragmentShadingRate feature> --     is not enabled, --     'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.PipelineFragmentShadingRateEnumStateCreateInfoNV'::@combinerOps@[0] --     /must/ be --     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR' ----- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04572# If+-- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04572# If the+--     pipeline is being created with+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>+--     or+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>,+--     and --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'---     is not included in @pDynamicState@->@pDynamicStates@, and the+--     is not included in @pDynamicState->pDynamicStates@, and the --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#feature-attachmentFragmentShadingRate attachmentFragmentShadingRate feature> --     is not enabled, --     'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.PipelineFragmentShadingRateEnumStateCreateInfoNV'::@combinerOps@[1]@@ -4091,21 +4419,30 @@ --     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR' -- -- -   #VUID-VkGraphicsPipelineCreateInfo-fragmentShadingRateNonTrivialCombinerOps-04573#---     If the+--     If the pipeline is being created with+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>+--     or+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>,+--     and the --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-fragmentShadingRateNonTrivialCombinerOps fragmentShadingRateNonTrivialCombinerOps> --     limit is not supported and --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'---     is not included in @pDynamicState@->@pDynamicStates@, elements of+--     is not included in @pDynamicState->pDynamicStates@, elements of --     'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.PipelineFragmentShadingRateEnumStateCreateInfoNV'::@combinerOps@ --     /must/ be --     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR' --     or --     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR' ----- -   #VUID-VkGraphicsPipelineCreateInfo-None-04574# If the+-- -   #VUID-VkGraphicsPipelineCreateInfo-None-04574# If the pipeline is+--     being created with+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>+--     or+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>,+--     and the --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-supersampleFragmentShadingRates supersampleFragmentShadingRates feature> --     is not enabled,---     'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.PipelineFragmentShadingRateEnumStateCreateInfoNV'::shadingRate+--     'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.PipelineFragmentShadingRateEnumStateCreateInfoNV'::@shadingRate@ --     /must/ not be equal to --     'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.FRAGMENT_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV', --     'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.FRAGMENT_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV',@@ -4113,10 +4450,15 @@ --     or --     'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.FRAGMENT_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV'. ----- -   #VUID-VkGraphicsPipelineCreateInfo-None-04575# If the+-- -   #VUID-VkGraphicsPipelineCreateInfo-None-04575# If the pipeline is+--     being created with+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>+--     or+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-shader fragment shader state>,+--     and the --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-noInvocationFragmentShadingRates noInvocationFragmentShadingRates feature> --     is not enabled,---     'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.PipelineFragmentShadingRateEnumStateCreateInfoNV'::shadingRate+--     'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.PipelineFragmentShadingRateEnumStateCreateInfoNV'::@shadingRate@ --     /must/ not be equal to --     'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.FRAGMENT_SHADING_RATE_NO_INVOCATIONS_NV'. --@@ -4124,6 +4466,51 @@ --     elements of the @pDynamicStates@ member of @pDynamicState@ /must/ --     not be --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RAY_TRACING_PIPELINE_STACK_SIZE_KHR'+--+-- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04807# If the+--     pipeline is being created with+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-pre-rasterization pre-rasterization shader state>+--     and the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-vertexInputDynamicState vertexInputDynamicState>+--     feature is not enabled, there /must/ be no element of the+--     @pDynamicStates@ member of @pDynamicState@ set to+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'+--+-- -   #VUID-VkGraphicsPipelineCreateInfo-None-04893# The pipeline /must/+--     be created with a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-complete complete set of state>+--+-- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04800# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-colorWriteEnable colorWriteEnable>+--     feature is not enabled, there /must/ be no element of the+--     @pDynamicStates@ member of @pDynamicState@ set to+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT'+--+-- -   #VUID-VkGraphicsPipelineCreateInfo-rasterizationSamples-04899# If+--     the pipeline is being created with fragment shader state, and the+--     VK_QCOM_render_pass_shader_resolve extension is enabled, and if+--     subpass has any input attachments, and if the subpass description+--     contains+--     'Vulkan.Core10.Enums.SubpassDescriptionFlagBits.SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM',+--     then the sample count of the input attachments /must/ equal+--     @rasterizationSamples@+--+-- -   #VUID-VkGraphicsPipelineCreateInfo-sampleShadingEnable-04900# If the+--     pipeline is being created with fragment shader state, and the+--     VK_QCOM_render_pass_shader_resolve extension is enabled, and if the+--     subpass description contains+--     'Vulkan.Core10.Enums.SubpassDescriptionFlagBits.SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM',+--     then @sampleShadingEnable@ /must/ be false+--+-- -   #VUID-VkGraphicsPipelineCreateInfo-flags-04901# If @flags@ includes+--     'Vulkan.Core10.Enums.SubpassDescriptionFlagBits.SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM',+--     then the subpass /must/ be the last subpass in a subpass dependency+--     chain+--+-- -   #VUID-VkGraphicsPipelineCreateInfo-flags-04902# If @flags@ includes+--     'Vulkan.Core10.Enums.SubpassDescriptionFlagBits.SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM',+--     and if @pResolveAttachments@ is not @NULL@, then each resolve+--     attachment /must/ be 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED' -- -- == Valid Usage (Implicit) --
src/Vulkan/Core10/PipelineCache.hs view
@@ -283,14 +283,15 @@ -- Otherwise, @pDataSize@ /must/ point to a variable set by the user to the -- size of the buffer, in bytes, pointed to by @pData@, and on return the -- variable is overwritten with the amount of data actually written to--- @pData@.+-- @pData@. If @pDataSize@ is less than the maximum size that /can/ be+-- retrieved by the pipeline cache, at most @pDataSize@ bytes will be+-- written to @pData@, and 'Vulkan.Core10.Enums.Result.INCOMPLETE' will be+-- returned instead of 'Vulkan.Core10.Enums.Result.SUCCESS', to indicate+-- that not all of the pipeline cache was returned. ----- If @pDataSize@ is less than the maximum size that /can/ be retrieved by--- the pipeline cache, at most @pDataSize@ bytes will be written to--- @pData@, and 'getPipelineCacheData' will return--- 'Vulkan.Core10.Enums.Result.INCOMPLETE'. Any data written to @pData@ is--- valid and /can/ be provided as the @pInitialData@ member of the--- 'PipelineCacheCreateInfo' structure passed to 'createPipelineCache'.+-- Any data written to @pData@ is valid and /can/ be provided as the+-- @pInitialData@ member of the 'PipelineCacheCreateInfo' structure passed+-- to 'createPipelineCache'. -- -- Two calls to 'getPipelineCacheData' with the same parameters /must/ -- retrieve the same data unless a command that modifies the contents of
src/Vulkan/Core10/PipelineLayout.hs view
@@ -629,8 +629,8 @@ -- -   #VUID-VkPipelineLayoutCreateInfo-descriptorType-03572# The total --     number of bindings with a @descriptorType@ of --     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR'---     to any given shader stage across all elements of @pSetLayouts@---     /must/ be less than or equal to+--     accessible to any given shader stage across all elements of+--     @pSetLayouts@ /must/ be less than or equal to --     'Vulkan.Extensions.VK_KHR_acceleration_structure.PhysicalDeviceAccelerationStructurePropertiesKHR'::@maxPerStageDescriptorUpdateAfterBindAccelerationStructures@ -- -- -   #VUID-VkPipelineLayoutCreateInfo-descriptorType-03573# The total
src/Vulkan/Core10/Query.hs view
@@ -356,10 +356,6 @@ -- -   #VUID-vkGetQueryPoolResults-firstQuery-00813# @firstQuery@ /must/ be --     less than the number of queries in @queryPool@ ----- -   #VUID-vkGetQueryPoolResults-flags-02827# If---     'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_64_BIT' is not---     set in @flags@, then @pData@ and @stride@ /must/ be multiples of @4@--- -- -   #VUID-vkGetQueryPoolResults-flags-02828# If --     'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_64_BIT' is not --     set in @flags@ and the @queryType@ used to create @queryPool@ was@@ -514,8 +510,9 @@ -- -- -   #VUID-VkQueryPoolCreateInfo-queryType-03222# If @queryType@ is --     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR',---     the @pNext@ chain /must/ include a structure of type+--     the @pNext@ chain /must/ include a --     'Vulkan.Extensions.VK_KHR_performance_query.QueryPoolPerformanceCreateInfoKHR'+--     structure -- -- -   #VUID-VkQueryPoolCreateInfo-queryCount-02763# @queryCount@ /must/ be --     greater than 0@@ -528,9 +525,10 @@ -- -   #VUID-VkQueryPoolCreateInfo-pNext-pNext# Each @pNext@ member of any --     structure (including this one) in the @pNext@ chain /must/ be either --     @NULL@ or a pointer to a valid instance of---     'Vulkan.Extensions.VK_KHR_performance_query.QueryPoolPerformanceCreateInfoKHR'+--     'Vulkan.Extensions.VK_KHR_performance_query.QueryPoolPerformanceCreateInfoKHR',+--     'Vulkan.Extensions.VK_INTEL_performance_query.QueryPoolPerformanceQueryCreateInfoINTEL', --     or---     'Vulkan.Extensions.VK_INTEL_performance_query.QueryPoolPerformanceQueryCreateInfoINTEL'+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoProfileKHR VkVideoProfileKHR> -- -- -   #VUID-VkQueryPoolCreateInfo-sType-unique# The @sType@ value of each --     struct in the @pNext@ chain /must/ be unique
src/Vulkan/Core10/Queue.hs view
@@ -256,10 +256,10 @@ --     capabilities of @queue@, as specified in the --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-pipeline-stages-supported table of supported pipeline stages> ----- -   #VUID-vkQueueSubmit-pSignalSemaphores-00067# Each element of the---     @pSignalSemaphores@ member of any element of @pSubmits@ /must/ be---     unsignaled when the semaphore signal operation it defines is---     executed on the device+-- -   #VUID-vkQueueSubmit-pSignalSemaphores-00067# Each binary semaphore+--     element of the @pSignalSemaphores@ member of any element of+--     @pSubmits@ /must/ be unsignaled when the semaphore signal operation+--     it defines is executed on the device -- -- -   #VUID-vkQueueSubmit-pWaitSemaphores-00068# When a semaphore wait --     operation referring to a binary semaphore defined by any element of@@ -644,7 +644,7 @@ --     'Vulkan.Core12.Enums.SemaphoreType.SemaphoreType' of --     'Vulkan.Core12.Enums.SemaphoreType.SEMAPHORE_TYPE_TIMELINE' the --     corresponding element of---     'Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore.TimelineSemaphoreSubmitInfo'::pSignalSemaphoreValues+--     'Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore.TimelineSemaphoreSubmitInfo'::@pSignalSemaphoreValues@ --     /must/ have a value greater than the current value of the semaphore --     when the --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-semaphores-signaling semaphore signal operation>@@ -655,7 +655,7 @@ --     'Vulkan.Core12.Enums.SemaphoreType.SemaphoreType' of --     'Vulkan.Core12.Enums.SemaphoreType.SEMAPHORE_TYPE_TIMELINE' the --     corresponding element of---     'Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore.TimelineSemaphoreSubmitInfo'::pWaitSemaphoreValues+--     'Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore.TimelineSemaphoreSubmitInfo'::@pWaitSemaphoreValues@ --     /must/ have a value which does not differ from the current value of --     the semaphore or the value of any outstanding semaphore wait or --     signal operation on that semaphore by more than@@ -666,7 +666,7 @@ --     'Vulkan.Core12.Enums.SemaphoreType.SemaphoreType' of --     'Vulkan.Core12.Enums.SemaphoreType.SEMAPHORE_TYPE_TIMELINE' the --     corresponding element of---     'Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore.TimelineSemaphoreSubmitInfo'::pSignalSemaphoreValues+--     'Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore.TimelineSemaphoreSubmitInfo'::@pSignalSemaphoreValues@ --     /must/ have a value which does not differ from the current value of --     the semaphore or the value of any outstanding semaphore wait or --     signal operation on that semaphore by more than
src/Vulkan/Core10/Sampler.hs view
@@ -108,7 +108,8 @@ -- -   #VUID-vkCreateSampler-maxSamplerAllocationCount-04110# There /must/ --     be less than --     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxSamplerAllocationCount@---     VkSampler objects currently created on the device.+--     'Vulkan.Core10.Handles.Sampler' objects currently created on the+--     device. -- -- == Valid Usage (Implicit) --
src/Vulkan/Core10/SparseResourceMemoryManagement.hs view
@@ -307,14 +307,15 @@ getPhysicalDeviceSparseImageFormatProperties :: forall io                                               . (MonadIO io)                                              => -- | @physicalDevice@ is the physical device from which to query the sparse-                                                -- image capabilities.+                                                -- image format properties.                                                 PhysicalDevice                                              -> -- | @format@ is the image format.                                                 Format                                              -> -- | @type@ is the dimensionality of image.                                                 ImageType-                                             -> -- | @samples@ is the number of samples per texel as defined in-                                                -- 'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlagBits'.+                                             -> -- | @samples@ is a+                                                -- 'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlagBits' value+                                                -- specifying the number of samples per texel.                                                 ("samples" ::: SampleCountFlagBits)                                              -> -- | @usage@ is a bitmask describing the intended usage of the image.                                                 ImageUsageFlags@@ -393,9 +394,9 @@ --     semaphore -- -- -   #VUID-vkQueueBindSparse-pWaitSemaphores-01117# All elements of the---     @pWaitSemaphores@ member of all elements of @pBindInfo@ member---     referring to a binary semaphore /must/ be semaphores that are---     signaled, or have+--     @pWaitSemaphores@ member of all elements of the @pBindInfo@+--     parameter referring to a binary semaphore /must/ be semaphores that+--     are signaled, or have --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-semaphores-signaling semaphore signal operations> --     previously submitted for execution --@@ -650,8 +651,8 @@ -- 'SparseImageMemoryBind', 'Vulkan.Core10.Image.getImageSubresourceLayout' data ImageSubresource = ImageSubresource   { -- | @aspectMask@ is a-    -- 'Vulkan.Core10.Enums.ImageAspectFlagBits.ImageAspectFlags' selecting the-    -- image /aspect/.+    -- 'Vulkan.Core10.Enums.ImageAspectFlagBits.ImageAspectFlags' value+    -- selecting the image /aspect/.     --     -- #VUID-VkImageSubresource-aspectMask-parameter# @aspectMask@ /must/ be a     -- valid combination of@@ -1040,7 +1041,7 @@     -- #VUID-VkSparseBufferMemoryBindInfo-buffer-parameter# @buffer@ /must/ be     -- a valid 'Vulkan.Core10.Handles.Buffer' handle     buffer :: Buffer-  , -- | @pBinds@ is a pointer to array of 'SparseMemoryBind' structures.+  , -- | @pBinds@ is a pointer to an array of 'SparseMemoryBind' structures.     --     -- #VUID-VkSparseBufferMemoryBindInfo-pBinds-parameter# @pBinds@ /must/ be     -- a valid pointer to an array of @bindCount@ valid 'SparseMemoryBind'@@ -1084,7 +1085,7 @@   -- | VkSparseImageOpaqueMemoryBindInfo - Structure specifying sparse image--- opaque memory bind info+-- opaque memory bind information -- -- == Valid Usage --@@ -1152,7 +1153,7 @@   -- | VkSparseImageMemoryBindInfo - Structure specifying sparse image memory--- bind info+-- bind information -- -- == Valid Usage --@@ -1262,7 +1263,7 @@ --     'Vulkan.Core12.Enums.SemaphoreType.SemaphoreType' of --     'Vulkan.Core12.Enums.SemaphoreType.SEMAPHORE_TYPE_TIMELINE' the --     corresponding element of---     'Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore.TimelineSemaphoreSubmitInfo'::pSignalSemaphoreValues+--     'Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore.TimelineSemaphoreSubmitInfo'::@pSignalSemaphoreValues@ --     /must/ have a value greater than the current value of the semaphore --     when the --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-semaphores-signaling semaphore signal operation>@@ -1273,7 +1274,7 @@ --     'Vulkan.Core12.Enums.SemaphoreType.SemaphoreType' of --     'Vulkan.Core12.Enums.SemaphoreType.SEMAPHORE_TYPE_TIMELINE' the --     corresponding element of---     'Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore.TimelineSemaphoreSubmitInfo'::pWaitSemaphoreValues+--     'Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore.TimelineSemaphoreSubmitInfo'::@pWaitSemaphoreValues@ --     /must/ have a value which does not differ from the current value of --     the semaphore or from the value of any outstanding semaphore wait or --     signal operation on that semaphore by more than@@ -1284,7 +1285,7 @@ --     'Vulkan.Core12.Enums.SemaphoreType.SemaphoreType' of --     'Vulkan.Core12.Enums.SemaphoreType.SEMAPHORE_TYPE_TIMELINE' the --     corresponding element of---     'Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore.TimelineSemaphoreSubmitInfo'::pSignalSemaphoreValues+--     'Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore.TimelineSemaphoreSubmitInfo'::@pSignalSemaphoreValues@ --     /must/ have a value which does not differ from the current value of --     the semaphore or from the value of any outstanding semaphore wait or --     signal operation on that semaphore by more than
src/Vulkan/Core11.hs view
@@ -57,7 +57,7 @@ import Vulkan.Core11.Promoted_From_VK_KHR_shader_draw_parameters import Vulkan.Core11.Promoted_From_VK_KHR_variable_pointers import Data.Word (Word32)-import Vulkan.Version (pattern MAKE_VERSION)+import Vulkan.Version (pattern MAKE_API_VERSION) pattern API_VERSION_1_1 :: Word32-pattern API_VERSION_1_1 = MAKE_VERSION 1 1 0+pattern API_VERSION_1_1 = MAKE_API_VERSION 1 1 0 
src/Vulkan/Core11/Enums/ExternalMemoryHandleTypeFlagBits.hs view
@@ -128,7 +128,7 @@ -- share handle that has only limited valid usage outside of Vulkan and -- other compatible APIs. It is not compatible with any native APIs. It -- does not own a reference to the underlying memory resource represented--- its Vulkan memory object, and will therefore become invalid when all+-- by its Vulkan memory object, and will therefore become invalid when all -- Vulkan memory objects associated with it are destroyed. pattern EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT                = ExternalMemoryHandleTypeFlagBits 0x00000004 -- | 'EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT' specifies an NT handle
src/Vulkan/Core11/Enums/ExternalSemaphoreHandleTypeFlagBits.hs view
@@ -98,15 +98,15 @@ -- share handle that has only limited valid usage outside of Vulkan and -- other compatible APIs. It is not compatible with any native APIs. It -- does not own a reference to the underlying synchronization primitive--- represented its Vulkan semaphore object, and will therefore become+-- represented by its Vulkan semaphore object, and will therefore become -- invalid when all Vulkan semaphore objects associated with it are -- destroyed. pattern EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT     = ExternalSemaphoreHandleTypeFlagBits 0x00000004 -- | 'EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT' specifies an NT handle -- returned by @ID3D12Device@::@CreateSharedHandle@ referring to a Direct3D--- 12 fence, or @ID3D11Device5@::'Vulkan.Core10.Fence.createFence' by a--- Direct3D 11 fence. It owns a reference to the underlying synchronization--- primitive associated with the Direct3D fence.+-- 12 fence, or @ID3D11Device5@::'Vulkan.Core10.Fence.createFence'+-- referring to a Direct3D 11 fence. It owns a reference to the underlying+-- synchronization primitive associated with the Direct3D fence. pattern EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT          = ExternalSemaphoreHandleTypeFlagBits 0x00000008 -- | 'EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT' specifies a POSIX file -- descriptor handle to a Linux Sync File or Android Fence object. It can
src/Vulkan/Core11/Enums/SubgroupFeatureFlagBits.hs view
@@ -27,7 +27,7 @@ import Vulkan.Core10.FundamentalTypes (Flags) type SubgroupFeatureFlags = SubgroupFeatureFlagBits --- | VkSubgroupFeatureFlagBits - Enum describing what group operations are+-- | VkSubgroupFeatureFlagBits - Bitmask describing what group operations are -- supported with subgroup scope -- -- = See Also
src/Vulkan/Core11/Originally_Based_On_VK_KHR_protected_memory.hs view
@@ -104,7 +104,7 @@                    -- 'Vulkan.Core10.Handles.Device' handle                    Device                 -> -- | @pQueueInfo@ is a pointer to a 'DeviceQueueInfo2' structure, describing-                   -- the parameters used to create the device queue.+                   -- parameters of the device queue to be retrieved.                    --                    -- #VUID-vkGetDeviceQueue2-pQueueInfo-parameter# @pQueueInfo@ /must/ be a                    -- valid pointer to a valid 'DeviceQueueInfo2' structure@@ -190,12 +190,21 @@ -- | VkPhysicalDeviceProtectedMemoryFeatures - Structure describing protected -- memory features that can be supported by an implementation --+-- = Members+--+-- This structure describes the following feature:+-- -- = Description -- -- If the 'PhysicalDeviceProtectedMemoryFeatures' structure is included in--- the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- it is filled with a value indicating whether the feature is supported.+-- 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. 'PhysicalDeviceProtectedMemoryFeatures' /can/ also be used in+-- the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to+-- selectively enable these features. -- -- == Valid Usage (Implicit) --@@ -251,10 +260,12 @@ -- = Description -- -- If the 'PhysicalDeviceProtectedMemoryProperties' structure is included--- in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2',--- it is filled with a value indicating the implementation-dependent--- behavior.+-- 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) --
src/Vulkan/Core11/Originally_Based_On_VK_KHR_subgroup.hs view
@@ -36,17 +36,15 @@ -- | VkPhysicalDeviceSubgroupProperties - Structure describing subgroup -- support for an implementation ----- = Members------ The members of the 'PhysicalDeviceSubgroupProperties' structure describe--- the following implementation-dependent limits:--- -- = Description -- -- If the 'PhysicalDeviceSubgroupProperties' structure is included in the--- @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2',--- it is filled with the implementation-dependent limits.+-- @pNext@ chain of the+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2'+-- structure passed to+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceProperties2',+-- it is filled in with each corresponding implementation-dependent+-- property. -- -- If @supportedOperations@ includes -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-subgroup-quad >,
src/Vulkan/Core11/Promoted_From_VK_KHR_16bit_storage.hs view
@@ -29,6 +29,22 @@ -- | VkPhysicalDevice16BitStorageFeatures - Structure describing features -- supported by VK_KHR_16bit_storage --+-- = Members+--+-- This structure describes the following features:+--+-- = Description+--+-- If the 'PhysicalDevice16BitStorageFeatures' 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. 'PhysicalDevice16BitStorageFeatures' /can/ also be used in+-- the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to+-- selectively enable these features.+-- -- == Valid Usage (Implicit) -- -- = See Also
src/Vulkan/Core11/Promoted_From_VK_KHR_bind_memory2.hs view
@@ -151,9 +151,9 @@ -- == Valid Usage -- -- -   #VUID-vkBindImageMemory2-pBindInfos-02858# If any---     'BindImageMemoryInfo'::image was created with+--     'BindImageMemoryInfo'::@image@ was created with --     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_DISJOINT_BIT'---     then all planes of 'BindImageMemoryInfo'::image /must/ be bound+--     then all planes of 'BindImageMemoryInfo'::@image@ /must/ be bound --     individually in separate @pBindInfos@ -- -- -   #VUID-vkBindImageMemory2-pBindInfos-04006# @pBindInfos@ /must/ not@@ -242,11 +242,11 @@ --     @memoryOffset@ -- -- -   #VUID-VkBindBufferMemoryInfo-buffer-01444# If @buffer@ requires a---     dedicated allocation(as reported by+--     dedicated allocation (as reported by --     'Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2.getBufferMemoryRequirements2' --     in---     'Vulkan.Core11.Promoted_From_VK_KHR_dedicated_allocation.MemoryDedicatedRequirements'::requiresDedicatedAllocation---     for @buffer@), @memory@ /must/ have been created with+--     'Vulkan.Core11.Promoted_From_VK_KHR_dedicated_allocation.MemoryDedicatedRequirements'::@requiresDedicatedAllocation@+--     for @buffer@), @memory@ /must/ have been allocated with --     'Vulkan.Core11.Promoted_From_VK_KHR_dedicated_allocation.MemoryDedicatedAllocateInfo'::@buffer@ --     equal to @buffer@ --@@ -261,25 +261,25 @@ --     'Vulkan.Core11.Promoted_From_VK_KHR_dedicated_allocation.MemoryDedicatedAllocateInfo'::@buffer@, --     and @memoryOffset@ /must/ be zero ----- -   #VUID-VkBindBufferMemoryInfo-None-01898# If buffer was created with---     the+-- -   #VUID-VkBindBufferMemoryInfo-None-01898# If @buffer@ was created+--     with the --     'Vulkan.Core10.Enums.BufferCreateFlagBits.BUFFER_CREATE_PROTECTED_BIT' --     bit set, the buffer /must/ be bound to a memory object allocated --     with a memory type that reports --     'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_PROTECTED_BIT' ----- -   #VUID-VkBindBufferMemoryInfo-None-01899# If buffer was created with---     the+-- -   #VUID-VkBindBufferMemoryInfo-None-01899# If @buffer@ was created+--     with the --     'Vulkan.Core10.Enums.BufferCreateFlagBits.BUFFER_CREATE_PROTECTED_BIT' --     bit not set, the buffer /must/ not be bound to a memory object---     created with a memory type that reports+--     allocated with a memory type that reports --     'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_PROTECTED_BIT' -- -- -   #VUID-VkBindBufferMemoryInfo-buffer-01038# If @buffer@ was created --     with --     'Vulkan.Extensions.VK_NV_dedicated_allocation.DedicatedAllocationBufferCreateInfoNV'::@dedicatedAllocation@ --     equal to 'Vulkan.Core10.FundamentalTypes.TRUE', @memory@ /must/ have---     been created with+--     been allocated with --     'Vulkan.Extensions.VK_NV_dedicated_allocation.DedicatedAllocationMemoryAllocateInfoNV'::@buffer@ --     equal to a buffer handle created with identical creation parameters --     to @buffer@ and @memoryOffset@ /must/ be zero@@ -291,7 +291,7 @@ --     'Vulkan.Core11.Promoted_From_VK_KHR_external_memory.ExternalMemoryBufferCreateInfo'::@handleTypes@ --     when @buffer@ was created ----- -   #VUID-VkBindBufferMemoryInfo-memory-02985# If @memory@ was created+-- -   #VUID-VkBindBufferMemoryInfo-memory-02985# If @memory@ was allocated --     by a memory import operation, that is not --     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ImportAndroidHardwareBufferInfoANDROID' --     with a non-@NULL@ @buffer@ value, the external handle type of the@@ -299,7 +299,7 @@ --     'Vulkan.Core11.Promoted_From_VK_KHR_external_memory.ExternalMemoryBufferCreateInfo'::@handleTypes@ --     when @buffer@ was created ----- -   #VUID-VkBindBufferMemoryInfo-memory-02986# If @memory@ was created+-- -   #VUID-VkBindBufferMemoryInfo-memory-02986# If @memory@ was allocated --     with the --     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ImportAndroidHardwareBufferInfoANDROID' --     memory import operation with a non-@NULL@ @buffer@ value,@@ -438,7 +438,7 @@ --     dedicated allocation (as reported by --     'Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2.getImageMemoryRequirements2' --     in---     'Vulkan.Core11.Promoted_From_VK_KHR_dedicated_allocation.MemoryDedicatedRequirements'::requiresDedicatedAllocation+--     'Vulkan.Core11.Promoted_From_VK_KHR_dedicated_allocation.MemoryDedicatedRequirements'::@requiresDedicatedAllocation@ --     for @image@), @memory@ /must/ have been created with --     'Vulkan.Core11.Promoted_From_VK_KHR_dedicated_allocation.MemoryDedicatedAllocateInfo'::@image@ --     equal to @image@
src/Vulkan/Core11/Promoted_From_VK_KHR_dedicated_allocation.hs view
@@ -35,93 +35,68 @@ -- -- = Description ----- When the implementation sets @requiresDedicatedAllocation@ to--- 'Vulkan.Core10.FundamentalTypes.TRUE', it /must/ also set--- @prefersDedicatedAllocation@ to 'Vulkan.Core10.FundamentalTypes.TRUE'.------ If the 'MemoryDedicatedRequirements' structure is included in the--- @pNext@ chain of the+-- To determine the dedicated allocation requirements of a buffer or image+-- resource, add a 'MemoryDedicatedRequirements' structure to the @pNext@+-- chain of the -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2.MemoryRequirements2'--- structure passed as the @pMemoryRequirements@ parameter of a+-- structure passed as the @pMemoryRequirements@ parameter of -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2.getBufferMemoryRequirements2'--- call, @requiresDedicatedAllocation@ /may/ be--- 'Vulkan.Core10.FundamentalTypes.TRUE' under one of the following--- conditions:+-- or+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2.getImageMemoryRequirements2',+-- respectively. ----- -   The @pNext@ chain of 'Vulkan.Core10.Buffer.BufferCreateInfo' for the---     call to 'Vulkan.Core10.Buffer.createBuffer' used to create the---     buffer being queried included a+-- Constraints on the values returned for buffer resources are:+--+-- -   @requiresDedicatedAllocation@ /may/ be+--     'Vulkan.Core10.FundamentalTypes.TRUE' if the @pNext@ chain of+--     'Vulkan.Core10.Buffer.BufferCreateInfo' for the call to+--     'Vulkan.Core10.Buffer.createBuffer' used to create the buffer being+--     queried included a --     'Vulkan.Core11.Promoted_From_VK_KHR_external_memory.ExternalMemoryBufferCreateInfo' --     structure, and any of the handle types specified in --     'Vulkan.Core11.Promoted_From_VK_KHR_external_memory.ExternalMemoryBufferCreateInfo'::@handleTypes@ --     requires dedicated allocation, as reported by --     'Vulkan.Core11.Promoted_From_VK_KHR_external_memory_capabilities.getPhysicalDeviceExternalBufferProperties' --     in---     'Vulkan.Core11.Promoted_From_VK_KHR_external_memory_capabilities.ExternalBufferProperties'::@externalMemoryProperties.externalMemoryFeatures@,---     the @requiresDedicatedAllocation@ field will be set to---     'Vulkan.Core10.FundamentalTypes.TRUE'.+--     'Vulkan.Core11.Promoted_From_VK_KHR_external_memory_capabilities.ExternalBufferProperties'::@externalMemoryProperties.externalMemoryFeatures@.+--     Otherwise, @requiresDedicatedAllocation@ will be+--     'Vulkan.Core10.FundamentalTypes.FALSE'. ----- In all other cases, @requiresDedicatedAllocation@ /must/ be set to--- 'Vulkan.Core10.FundamentalTypes.FALSE' by the implementation whenever a--- 'MemoryDedicatedRequirements' structure is included in the @pNext@ chain--- of the--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2.MemoryRequirements2'--- structure passed to a call to--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2.getBufferMemoryRequirements2'.+-- -   When the implementation sets @requiresDedicatedAllocation@ to+--     'Vulkan.Core10.FundamentalTypes.TRUE', it /must/ also set+--     @prefersDedicatedAllocation@ to+--     'Vulkan.Core10.FundamentalTypes.TRUE'. ----- If the 'MemoryDedicatedRequirements' structure is included in the--- @pNext@ chain of the--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2.MemoryRequirements2'--- structure passed as the @pMemoryRequirements@ parameter of a--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2.getBufferMemoryRequirements2'--- call and--- 'Vulkan.Core10.Enums.BufferCreateFlagBits.BUFFER_CREATE_SPARSE_BINDING_BIT'--- was set in 'Vulkan.Core10.Buffer.BufferCreateInfo'::@flags@ when--- @buffer@ was created then the implementation /must/ set both--- @prefersDedicatedAllocation@ and @requiresDedicatedAllocation@ to--- 'Vulkan.Core10.FundamentalTypes.FALSE'.+-- -   If+--     'Vulkan.Core10.Enums.BufferCreateFlagBits.BUFFER_CREATE_SPARSE_BINDING_BIT'+--     was set in 'Vulkan.Core10.Buffer.BufferCreateInfo'::@flags@ when+--     @buffer@ was created, then both @prefersDedicatedAllocation@ and+--     @requiresDedicatedAllocation@ will be+--     'Vulkan.Core10.FundamentalTypes.FALSE'. ----- If the 'MemoryDedicatedRequirements' structure is included in the--- @pNext@ chain of the--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2.MemoryRequirements2'--- structure passed as the @pMemoryRequirements@ parameter of a--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2.getImageMemoryRequirements2'--- call, @requiresDedicatedAllocation@ /may/ be--- 'Vulkan.Core10.FundamentalTypes.TRUE' under one of the following--- conditions:+-- Constraints on the values returned for image resources are: ----- -   The @pNext@ chain of 'Vulkan.Core10.Image.ImageCreateInfo' for the---     call to 'Vulkan.Core10.Image.createImage' used to create the image---     being queried included a+-- -   @requiresDedicatedAllocation@ /may/ be+--     'Vulkan.Core10.FundamentalTypes.TRUE' if the @pNext@ chain of+--     'Vulkan.Core10.Image.ImageCreateInfo' for the call to+--     'Vulkan.Core10.Image.createImage' used to create the image being+--     queried included a --     'Vulkan.Core11.Promoted_From_VK_KHR_external_memory.ExternalMemoryImageCreateInfo' --     structure, and any of the handle types specified in --     'Vulkan.Core11.Promoted_From_VK_KHR_external_memory.ExternalMemoryImageCreateInfo'::@handleTypes@ --     requires dedicated allocation, as reported by --     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceImageFormatProperties2' --     in---     'Vulkan.Core11.Promoted_From_VK_KHR_external_memory_capabilities.ExternalImageFormatProperties'::@externalMemoryProperties.externalMemoryFeatures@,---     the @requiresDedicatedAllocation@ field will be set to---     'Vulkan.Core10.FundamentalTypes.TRUE'.------ In all other cases, @requiresDedicatedAllocation@ /must/ be set to--- 'Vulkan.Core10.FundamentalTypes.FALSE' by the implementation whenever a--- 'MemoryDedicatedRequirements' structure is included in the @pNext@ chain--- of the--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2.MemoryRequirements2'--- structure passed to a call to--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2.getImageMemoryRequirements2'.+--     'Vulkan.Core11.Promoted_From_VK_KHR_external_memory_capabilities.ExternalImageFormatProperties'::@externalMemoryProperties.externalMemoryFeatures@.+--     Otherwise, @requiresDedicatedAllocation@ will be+--     'Vulkan.Core10.FundamentalTypes.FALSE'. ----- If the 'MemoryDedicatedRequirements' structure is included in the--- @pNext@ chain of the--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2.MemoryRequirements2'--- structure passed as the @pMemoryRequirements@ parameter of a--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2.getImageMemoryRequirements2'--- call and--- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SPARSE_BINDING_BIT'--- was set in 'Vulkan.Core10.Image.ImageCreateInfo'::@flags@ when @image@--- was created then the implementation /must/ set both--- @prefersDedicatedAllocation@ and @requiresDedicatedAllocation@ to--- 'Vulkan.Core10.FundamentalTypes.FALSE'.+-- -   If+--     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SPARSE_BINDING_BIT'+--     was set in 'Vulkan.Core10.Image.ImageCreateInfo'::@flags@ when+--     @image@ was created, then both @prefersDedicatedAllocation@ and+--     @requiresDedicatedAllocation@ will be+--     'Vulkan.Core10.FundamentalTypes.FALSE'. -- -- == Valid Usage (Implicit) --
src/Vulkan/Core11/Promoted_From_VK_KHR_descriptor_update_template.hs view
@@ -189,13 +189,13 @@ -- -- -   #VUID-vkDestroyDescriptorUpdateTemplate-descriptorSetLayout-00356# --     If 'Vulkan.Core10.AllocationCallbacks.AllocationCallbacks' were---     provided when @descriptorSetLayout@ was created, a compatible set of---     callbacks /must/ be provided here+--     provided when @descriptorUpdateTemplate@ was created, a compatible+--     set of callbacks /must/ be provided here -- -- -   #VUID-vkDestroyDescriptorUpdateTemplate-descriptorSetLayout-00357# --     If no 'Vulkan.Core10.AllocationCallbacks.AllocationCallbacks' were---     provided when @descriptorSetLayout@ was created, @pAllocator@ /must/---     be @NULL@+--     provided when @descriptorUpdateTemplate@ was created, @pAllocator@+--     /must/ be @NULL@ -- -- == Valid Usage (Implicit) --@@ -362,9 +362,7 @@ -- >     &createInfo, -- >     NULL, -- >     &myDescriptorUpdateTemplate);--- > } -- >--- > -- > AppDataStructure appData; -- > -- > // fill appData here or cache it in your engine@@ -377,7 +375,7 @@ -- 'Vulkan.Core10.Handles.Device' updateDescriptorSetWithTemplate :: forall io                                  . (MonadIO io)-                                => -- | @device@ is the logical device that updates the descriptor sets.+                                => -- | @device@ is the logical device that updates the descriptor set.                                    Device                                 -> -- | @descriptorSet@ is the descriptor set to update                                    DescriptorSet@@ -631,15 +629,12 @@     -- it /can/ only be used to push descriptor sets using the provided     -- @pipelineBindPoint@, @pipelineLayout@, and @set@ number.     templateType :: DescriptorUpdateTemplateType-  , -- | @descriptorSetLayout@ is the descriptor set layout the parameter update-    -- template will be used with. All descriptor sets which are going to be+  , -- | @descriptorSetLayout@ is the descriptor set layout used to build the+    -- descriptor update template. All descriptor sets which are going to be     -- updated through the newly created descriptor update template /must/ be-    -- created with this layout. @descriptorSetLayout@ is the descriptor set-    -- layout used to build the descriptor update template. All descriptor sets-    -- which are going to be updated through the newly created descriptor-    -- update template /must/ be created with a layout that matches (is the-    -- same as, or defined identically to) this layout. This parameter is-    -- ignored if @templateType@ is not+    -- created with a layout that matches (is the same as, or defined+    -- identically to) this layout. This parameter is ignored if @templateType@+    -- is not     -- 'Vulkan.Core11.Enums.DescriptorUpdateTemplateType.DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET'.     descriptorSetLayout :: DescriptorSetLayout   , -- | @pipelineBindPoint@ is a
src/Vulkan/Core11/Promoted_From_VK_KHR_device_group.hs view
@@ -242,7 +242,8 @@   "dynamic" mkVkCmdDispatchBase   :: FunPtr (Ptr CommandBuffer_T -> Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> IO () --- | vkCmdDispatchBase - Dispatch compute work items+-- | vkCmdDispatchBase - Dispatch compute work items with non-zero base+-- values for the workgroup IDs -- -- = Description --@@ -354,9 +355,9 @@ -- -   #VUID-vkCmdDispatchBase-commandBuffer-02701# If the --     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind --     point used by this command requires any dynamic state, that state---     /must/ have been set for @commandBuffer@, and done so after any---     previously bound pipeline with the corresponding state not specified---     as dynamic+--     /must/ have been set or inherited for @commandBuffer@, and done so+--     after any previously bound pipeline with the corresponding state not+--     specified as dynamic -- -- -   #VUID-vkCmdDispatchBase-None-02859# There /must/ not have been any --     calls to dynamic state setting commands for any state not specified@@ -473,11 +474,29 @@ --     @OpTypeImage@ with a @SampledType@ with a @Width@ of 64 by this --     command. --+-- -   #VUID-vkCmdDispatchBase-commandBuffer-02712# If @commandBuffer@ is a+--     protected command buffer, any resource written to by the+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+--     point used by this command /must/ not be an unprotected resource+--+-- -   #VUID-vkCmdDispatchBase-commandBuffer-02713# If @commandBuffer@ is a+--     protected command buffer, pipeline stages other than the+--     framebuffer-space and compute stages in the+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+--     point used by this command /must/ not write to any resource+--+-- -   #VUID-vkCmdDispatchBase-commandBuffer-04617# If any of the shader+--     stages of the 'Vulkan.Core10.Handles.Pipeline' bound to the pipeline+--     bind point used by this command uses the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-RayQueryKHR RayQueryKHR>+--     capability, then @commandBuffer@ /must/ not be a protected command+--     buffer+-- -- -   #VUID-vkCmdDispatchBase-baseGroupX-00421# @baseGroupX@ /must/ be --     less than --     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxComputeWorkGroupCount@[0] ----- -   #VUID-vkCmdDispatchBase-baseGroupX-00422# @baseGroupX@ /must/ be+-- -   #VUID-vkCmdDispatchBase-baseGroupX-00422# @baseGroupY@ /must/ be --     less than --     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxComputeWorkGroupCount@[1] --
src/Vulkan/Core11/Promoted_From_VK_KHR_device_groupAndVK_KHR_bind_memory2.hs view
@@ -40,30 +40,17 @@ -- | VkBindBufferMemoryDeviceGroupInfo - Structure specifying device within a -- group to bind to ----- = Members+-- = Description ----- If the @pNext@ list of+-- If the @pNext@ chain of -- 'Vulkan.Core11.Promoted_From_VK_KHR_bind_memory2.BindBufferMemoryInfo' -- includes a 'BindBufferMemoryDeviceGroupInfo' structure, then that -- structure determines how memory is bound to buffers across multiple -- devices in a device group. ----- = Description------ The 'BindBufferMemoryDeviceGroupInfo' structure is defined as:------ -   @sType@ is the type of this structure.------ -   @pNext@ is @NULL@ or a pointer to a structure extending this---     structure.------ -   @deviceIndexCount@ is the number of elements in @pDeviceIndices@.------ -   @pDeviceIndices@ is a pointer to an array of device indices.--- -- If @deviceIndexCount@ is greater than zero, then on device index i the -- buffer is attached to the instance of @memory@ on the physical device--- with device index pDeviceIndices[i].+-- with device index @pDeviceIndices@[i]. -- -- If @deviceIndexCount@ is zero and @memory@ comes from a memory heap with -- the@@ -103,7 +90,7 @@ -- -- 'Vulkan.Core10.Enums.StructureType.StructureType' data BindBufferMemoryDeviceGroupInfo = BindBufferMemoryDeviceGroupInfo-  { -- No documentation found for Nested "VkBindBufferMemoryDeviceGroupInfo" "pDeviceIndices"+  { -- | @pDeviceIndices@ is a pointer to an array of device indices.     deviceIndices :: Vector Word32 }   deriving (Typeable) #if defined(GENERIC_INSTANCES)@@ -144,45 +131,25 @@ -- | VkBindImageMemoryDeviceGroupInfo - Structure specifying device within a -- group to bind to ----- = Members+-- = Description ----- If the @pNext@ list of+-- If the @pNext@ chain of -- 'Vulkan.Core11.Promoted_From_VK_KHR_bind_memory2.BindImageMemoryInfo' -- includes a 'BindImageMemoryDeviceGroupInfo' structure, then that -- structure determines how memory is bound to images across multiple -- devices in a device group. ----- = Description------ The 'BindImageMemoryDeviceGroupInfo' structure is defined as:------ -   @sType@ is the type of this structure.------ -   @pNext@ is @NULL@ or a pointer to a structure extending this---     structure.------ -   @deviceIndexCount@ is the number of elements in @pDeviceIndices@.------ -   @pDeviceIndices@ is a pointer to an array of device indices.------ -   @splitInstanceBindRegionCount@ is the number of elements in---     @pSplitInstanceBindRegions@.------ -   @pSplitInstanceBindRegions@ is a pointer to an array of---     'Vulkan.Core10.FundamentalTypes.Rect2D' structures describing which---     regions of the image are attached to each instance of memory.--- -- If @deviceIndexCount@ is greater than zero, then on device index i -- @image@ is attached to the instance of the memory on the physical device -- with device index pDeviceIndices[i]. -- -- Let N be the number of physical devices in the logical device. If -- @splitInstanceBindRegionCount@ is greater than zero, then--- @pSplitInstanceBindRegions@ is an array of N2 rectangles, where the--- image region specified by the rectangle at element i*N+j in resource--- instance i is bound to the memory instance j. The blocks of the memory--- that are bound to each sparse image block region use an offset in--- memory, relative to @memoryOffset@, computed as if the whole image were+-- @pSplitInstanceBindRegions@ is a pointer to an array of N2 rectangles,+-- where the image region specified by the rectangle at element i*N+j in+-- resource instance i is bound to the memory instance j. The blocks of the+-- memory that are bound to each sparse image block region use an offset in+-- memory, relative to @memoryOffset@, computed as if the whole image was -- being bound to a contiguous range of memory. In other words, -- horizontally adjacent image blocks use consecutive blocks of memory, -- vertically adjacent image blocks are separated by the number of bytes@@ -247,7 +214,7 @@ --     @extent.height@ member of any element of @pSplitInstanceBindRegions@ --     /must/ either be a multiple of the sparse image block height of all --     non-metadata aspects of the image, or else @extent.height@ +---     @offset.y@ /must/ equal the width of the image subresource+--     @offset.y@ /must/ equal the height of the image subresource -- -- == Valid Usage (Implicit) --@@ -270,9 +237,11 @@ -- 'Vulkan.Core10.FundamentalTypes.Rect2D', -- 'Vulkan.Core10.Enums.StructureType.StructureType' data BindImageMemoryDeviceGroupInfo = BindImageMemoryDeviceGroupInfo-  { -- No documentation found for Nested "VkBindImageMemoryDeviceGroupInfo" "pDeviceIndices"+  { -- | @pDeviceIndices@ is a pointer to an array of device indices.     deviceIndices :: Vector Word32-  , -- No documentation found for Nested "VkBindImageMemoryDeviceGroupInfo" "pSplitInstanceBindRegions"+  , -- | @pSplitInstanceBindRegions@ is a pointer to an array of+    -- 'Vulkan.Core10.FundamentalTypes.Rect2D' structures describing which+    -- regions of the image are attached to each instance of memory.     splitInstanceBindRegions :: Vector Rect2D   }   deriving (Typeable)
src/Vulkan/Core11/Promoted_From_VK_KHR_device_group_creation.hs view
@@ -93,10 +93,9 @@ -- actually written to @pPhysicalDeviceGroupProperties@. If -- @pPhysicalDeviceGroupCount@ is less than the number of device groups -- available, at most @pPhysicalDeviceGroupCount@ structures will be--- written. If @pPhysicalDeviceGroupCount@ is smaller than the number of--- device groups available, 'Vulkan.Core10.Enums.Result.INCOMPLETE' will be--- returned instead of 'Vulkan.Core10.Enums.Result.SUCCESS', to indicate--- that not all the available device groups were returned.+-- written, and 'Vulkan.Core10.Enums.Result.INCOMPLETE' will be returned+-- instead of 'Vulkan.Core10.Enums.Result.SUCCESS', to indicate that not+-- all the available device groups were returned. -- -- Every physical device /must/ be in exactly one device group. --
src/Vulkan/Core11/Promoted_From_VK_KHR_external_fence_capabilities.hs view
@@ -126,7 +126,7 @@ data PhysicalDeviceExternalFenceInfo = PhysicalDeviceExternalFenceInfo   { -- | @handleType@ is a     -- 'Vulkan.Core11.Enums.ExternalFenceHandleTypeFlagBits.ExternalFenceHandleTypeFlagBits'-    -- value indicating an external fence handle type for which capabilities+    -- value specifying an external fence handle type for which capabilities     -- will be returned.     --     -- #VUID-VkPhysicalDeviceExternalFenceInfo-handleType-parameter#
src/Vulkan/Core11/Promoted_From_VK_KHR_external_memory.hs view
@@ -41,9 +41,9 @@ -- -- Note ----- A 'ExternalMemoryImageCreateInfo' structure with a non-zero @handleType@--- field must be included in the creation parameters for an image that will--- be bound to memory that is either exported or imported.+-- A 'ExternalMemoryImageCreateInfo' structure with a non-zero+-- @handleTypes@ field must be included in the creation parameters for an+-- image that will be bound to memory that is either exported or imported. -- -- == Valid Usage (Implicit) --
src/Vulkan/Core11/Promoted_From_VK_KHR_external_memory_capabilities.hs view
@@ -497,6 +497,14 @@ --     valid LUID and @deviceNodeMask@ contains a valid node mask, and --     'Vulkan.Core10.FundamentalTypes.FALSE' if they do not. --+-- If the 'PhysicalDeviceIDProperties' 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.+-- -- @deviceUUID@ /must/ be immutable for a given device across instances, -- processes, driver APIs, driver versions, and system reboots. --
src/Vulkan/Core11/Promoted_From_VK_KHR_get_memory_requirements2.hs view
@@ -465,6 +465,7 @@ -- -- 'Vulkan.Core10.MemoryManagement.MemoryRequirements', -- 'Vulkan.Core10.Enums.StructureType.StructureType',+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoGetMemoryPropertiesKHR VkVideoGetMemoryPropertiesKHR>, -- 'getBufferMemoryRequirements2', -- 'Vulkan.Extensions.VK_KHR_get_memory_requirements2.getBufferMemoryRequirements2KHR', -- 'Vulkan.Extensions.VK_NV_device_generated_commands.getGeneratedCommandsMemoryRequirementsNV',
src/Vulkan/Core11/Promoted_From_VK_KHR_get_physical_device_properties2.hs view
@@ -100,6 +100,7 @@ import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_buffer_device_address (PhysicalDeviceBufferDeviceAddressFeatures) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_buffer_device_address (PhysicalDeviceBufferDeviceAddressFeaturesEXT) 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) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_conditional_rendering (PhysicalDeviceConditionalRenderingFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_conservative_rasterization (PhysicalDeviceConservativeRasterizationPropertiesEXT)@@ -121,6 +122,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_discard_rectangles (PhysicalDeviceDiscardRectanglePropertiesEXT) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_driver_properties (PhysicalDeviceDriverProperties) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_scissor_exclusive (PhysicalDeviceExclusiveScissorFeaturesNV)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_extended_dynamic_state2 (PhysicalDeviceExtendedDynamicState2FeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_extended_dynamic_state (PhysicalDeviceExtendedDynamicStateFeaturesEXT) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_external_memory_capabilities (PhysicalDeviceExternalImageFormatInfo) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_external_memory_host (PhysicalDeviceExternalMemoryHostPropertiesEXT)@@ -143,6 +145,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_filter_cubic (PhysicalDeviceImageViewImageFormatInfoEXT) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer (PhysicalDeviceImagelessFramebufferFeatures) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_index_type_uint8 (PhysicalDeviceIndexTypeUint8FeaturesEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_NV_inherited_viewport_scissor (PhysicalDeviceInheritedViewportScissorFeaturesNV) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_inline_uniform_block (PhysicalDeviceInlineUniformBlockFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_inline_uniform_block (PhysicalDeviceInlineUniformBlockPropertiesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_line_rasterization (PhysicalDeviceLineRasterizationFeaturesEXT)@@ -169,6 +172,8 @@ import Vulkan.Core10.DeviceInitialization (PhysicalDeviceProperties) import {-# SOURCE #-} Vulkan.Core11.Originally_Based_On_VK_KHR_protected_memory (PhysicalDeviceProtectedMemoryFeatures) import {-# SOURCE #-} Vulkan.Core11.Originally_Based_On_VK_KHR_protected_memory (PhysicalDeviceProtectedMemoryProperties)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_provoking_vertex (PhysicalDeviceProvokingVertexFeaturesEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_provoking_vertex (PhysicalDeviceProvokingVertexPropertiesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_push_descriptor (PhysicalDevicePushDescriptorPropertiesKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_ray_query (PhysicalDeviceRayQueryFeaturesKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_ray_tracing_pipeline (PhysicalDeviceRayTracingPipelineFeaturesKHR)@@ -214,12 +219,14 @@ 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_EXT_vertex_attribute_divisor (PhysicalDeviceVertexAttributeDivisorPropertiesEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state (PhysicalDeviceVertexInputDynamicStateFeaturesEXT) import {-# SOURCE #-} Vulkan.Core12 (PhysicalDeviceVulkan11Features) import {-# SOURCE #-} Vulkan.Core12 (PhysicalDeviceVulkan11Properties) import {-# SOURCE #-} Vulkan.Core12 (PhysicalDeviceVulkan12Features) import {-# SOURCE #-} Vulkan.Core12 (PhysicalDeviceVulkan12Properties) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_vulkan_memory_model (PhysicalDeviceVulkanMemoryModelFeatures) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_workgroup_memory_explicit_layout (PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_ycbcr_2plane_444_formats (PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_ycbcr_image_arrays (PhysicalDeviceYcbcrImageArraysFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_zero_initialize_workgroup_memory (PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR) import Vulkan.Core10.Handles (PhysicalDevice_T)@@ -301,10 +308,10 @@ -- -- = Description ----- Each structure in @pProperties@ and its @pNext@ chain contain members--- corresponding to properties or implementation-dependent limits.--- 'getPhysicalDeviceProperties2' writes each member to a value indicating--- the value of that property or limit.+-- Each structure in @pProperties@ and its @pNext@ chain contains members+-- corresponding to implementation-dependent properties, behaviors, or+-- limits. 'getPhysicalDeviceProperties2' fills in each member to specify+-- the corresponding value for the implementation. -- -- == Valid Usage (Implicit) --@@ -608,7 +615,7 @@ getPhysicalDeviceSparseImageFormatProperties2 :: forall io                                                . (MonadIO io)                                               => -- | @physicalDevice@ is the physical device from which to query the sparse-                                                 -- image capabilities.+                                                 -- image format properties.                                                  PhysicalDevice                                               -> -- | @pFormatInfo@ is a pointer to a 'PhysicalDeviceSparseImageFormatInfo2'                                                  -- structure containing input parameters to the command.@@ -635,10 +642,6 @@ -- | VkPhysicalDeviceFeatures2 - Structure describing the fine-grained -- features that can be supported by an implementation ----- = Members------ The 'PhysicalDeviceFeatures2' structure is defined as:--- -- = Description -- -- The @pNext@ chain of this structure is used to extend the structure with@@ -676,7 +679,12 @@   getNext PhysicalDeviceFeatures2{..} = next   extends :: forall e b proxy. Typeable e => proxy e -> (Extends PhysicalDeviceFeatures2 e => b) -> Maybe b   extends _ f+    | Just Refl <- eqT @e @PhysicalDeviceProvokingVertexFeaturesEXT = Just f+    | Just Refl <- eqT @e @PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT = Just f+    | Just Refl <- eqT @e @PhysicalDeviceInheritedViewportScissorFeaturesNV = Just f     | Just Refl <- eqT @e @PhysicalDeviceSynchronization2FeaturesKHR = Just f+    | Just Refl <- eqT @e @PhysicalDeviceColorWriteEnableFeaturesEXT = Just f+    | Just Refl <- eqT @e @PhysicalDeviceVertexInputDynamicStateFeaturesEXT = Just f     | Just Refl <- eqT @e @PhysicalDeviceMutableDescriptorTypeFeaturesVALVE = Just f     | Just Refl <- eqT @e @PhysicalDeviceFragmentShadingRateEnumsFeaturesNV = Just f     | Just Refl <- eqT @e @PhysicalDeviceShaderTerminateInvocationFeaturesKHR = Just f@@ -689,6 +697,7 @@     | Just Refl <- eqT @e @PhysicalDeviceRobustness2FeaturesEXT = Just f     | Just Refl <- eqT @e @PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR = Just f     | Just Refl <- eqT @e @PhysicalDeviceDiagnosticsConfigFeaturesNV = Just f+    | Just Refl <- eqT @e @PhysicalDeviceExtendedDynamicState2FeaturesEXT = Just f     | Just Refl <- eqT @e @PhysicalDeviceExtendedDynamicStateFeaturesEXT = Just f     | Just Refl <- eqT @e @PhysicalDeviceCustomBorderColorFeaturesEXT = Just f     | Just Refl <- eqT @e @PhysicalDeviceCoherentMemoryFeaturesAMD = Just f@@ -833,6 +842,7 @@ --     'Vulkan.Core11.Promoted_From_VK_KHR_maintenance2.PhysicalDevicePointClippingProperties', --     'Vulkan.Extensions.VK_KHR_portability_subset.PhysicalDevicePortabilitySubsetPropertiesKHR', --     'Vulkan.Core11.Originally_Based_On_VK_KHR_protected_memory.PhysicalDeviceProtectedMemoryProperties',+--     'Vulkan.Extensions.VK_EXT_provoking_vertex.PhysicalDeviceProvokingVertexPropertiesEXT', --     'Vulkan.Extensions.VK_KHR_push_descriptor.PhysicalDevicePushDescriptorPropertiesKHR', --     'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.PhysicalDeviceRayTracingPipelinePropertiesKHR', --     'Vulkan.Extensions.VK_NV_ray_tracing.PhysicalDeviceRayTracingPropertiesNV',@@ -883,6 +893,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 @PhysicalDeviceProvokingVertexPropertiesEXT = Just f     | Just Refl <- eqT @e @PhysicalDeviceFragmentShadingRateEnumsPropertiesNV = Just f     | Just Refl <- eqT @e @PhysicalDeviceFragmentShadingRatePropertiesKHR = Just f     | Just Refl <- eqT @e @PhysicalDevicePortabilitySubsetPropertiesKHR = Just f@@ -969,9 +980,13 @@ -- -   #VUID-VkFormatProperties2-sType-sType# @sType@ /must/ be --     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_FORMAT_PROPERTIES_2' ----- -   #VUID-VkFormatProperties2-pNext-pNext# @pNext@ /must/ be @NULL@ or a---     pointer to a valid instance of---     'Vulkan.Extensions.VK_EXT_image_drm_format_modifier.DrmFormatModifierPropertiesListEXT'+-- -   #VUID-VkFormatProperties2-pNext-pNext# Each @pNext@ member of any+--     structure (including this one) in the @pNext@ chain /must/ be either+--     @NULL@ or a pointer to a valid instance of+--     'Vulkan.Extensions.VK_EXT_image_drm_format_modifier.DrmFormatModifierPropertiesListEXT',+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoProfileKHR VkVideoProfileKHR>,+--     or+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoProfilesKHR VkVideoProfilesKHR> -- -- -   #VUID-VkFormatProperties2-sType-unique# The @sType@ value of each --     struct in the @pNext@ chain /must/ be unique@@ -1321,9 +1336,10 @@ -- -   #VUID-VkQueueFamilyProperties2-pNext-pNext# Each @pNext@ member of --     any structure (including this one) in the @pNext@ chain /must/ be --     either @NULL@ or a pointer to a valid instance of---     'Vulkan.Extensions.VK_KHR_synchronization2.QueueFamilyCheckpointProperties2NV'+--     'Vulkan.Extensions.VK_KHR_synchronization2.QueueFamilyCheckpointProperties2NV',+--     'Vulkan.Extensions.VK_NV_device_diagnostic_checkpoints.QueueFamilyCheckpointPropertiesNV', --     or---     'Vulkan.Extensions.VK_NV_device_diagnostic_checkpoints.QueueFamilyCheckpointPropertiesNV'+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoQueueFamilyProperties2KHR VkVideoQueueFamilyProperties2KHR> -- -- -   #VUID-VkQueueFamilyProperties2-sType-unique# The @sType@ value of --     each struct in the @pNext@ chain /must/ be unique@@ -1548,8 +1564,9 @@     -- #VUID-VkPhysicalDeviceSparseImageFormatInfo2-type-parameter# @type@     -- /must/ be a valid 'Vulkan.Core10.Enums.ImageType.ImageType' value     type' :: ImageType-  , -- | @samples@ is the number of samples per texel as defined in-    -- 'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlagBits'.+  , -- | @samples@ is a+    -- 'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlagBits' value+    -- specifying the number of samples per texel.     --     -- #VUID-VkPhysicalDeviceSparseImageFormatInfo2-samples-01095# @samples@     -- /must/ be a bit value that is set in
src/Vulkan/Core11/Promoted_From_VK_KHR_maintenance2.hs view
@@ -56,6 +56,15 @@ -- | VkInputAttachmentAspectReference - Structure specifying a subpass\/input -- attachment pair and an aspect mask that /can/ be read. --+-- = Description+--+-- This structure specifies an aspect mask for a specific input attachment+-- of a specific subpass in the render pass.+--+-- @subpass@ and @inputAttachmentIndex@ index into the render pass as:+--+-- > pname:pCreateInfo->pSubpasses[subpass].pInputAttachments[inputAttachmentIndex]+-- -- == Valid Usage (Implicit) -- -- = See Also@@ -135,6 +144,10 @@ -- -- = Description --+-- To specify which aspects of an input attachment /can/ be read, add a+-- 'RenderPassInputAttachmentAspectCreateInfo' structure to the @pNext@+-- chain of the 'Vulkan.Core10.Pass.RenderPassCreateInfo' structure:+-- -- An application /can/ access any aspect of an input attachment that does -- not have a specified aspect mask in the @pAspectReferences@ array. -- Otherwise, an application /must/ not access aspect(s) of an input@@ -195,17 +208,15 @@ -- | VkPhysicalDevicePointClippingProperties - Structure describing the point -- clipping behavior supported by an implementation ----- = Members------ The members of the 'PhysicalDevicePointClippingProperties' structure--- describe the following implementation-dependent limit:--- -- = Description -- -- If the 'PhysicalDevicePointClippingProperties' structure is included in--- the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2',--- it is filled with the implementation-dependent limits.+-- 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) --@@ -273,9 +284,9 @@ -- 'Vulkan.Core10.Enums.ImageUsageFlagBits.ImageUsageFlags', -- 'Vulkan.Core10.Enums.StructureType.StructureType' data ImageViewUsageCreateInfo = ImageViewUsageCreateInfo-  { -- | @usage@ is a bitmask describing the allowed usages of the image view.-    -- See 'Vulkan.Core10.Enums.ImageUsageFlagBits.ImageUsageFlagBits' for a-    -- description of the supported bits.+  { -- | @usage@ is a bitmask of+    -- 'Vulkan.Core10.Enums.ImageUsageFlagBits.ImageUsageFlagBits' specifying+    -- allowed usages of the image view.     --     -- #VUID-VkImageViewUsageCreateInfo-usage-parameter# @usage@ /must/ be a     -- valid combination of@@ -331,7 +342,7 @@ -- included in the @pNext@ chain of -- 'Vulkan.Core10.Pipeline.PipelineTessellationStateCreateInfo', it -- controls the origin of the tessellation domain. If this structure is not--- present, it is as if @domainOrigin@ were+-- present, it is as if @domainOrigin@ was -- 'Vulkan.Core11.Enums.TessellationDomainOrigin.TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT'. -- -- == Valid Usage (Implicit)
src/Vulkan/Core11/Promoted_From_VK_KHR_maintenance3.hs view
@@ -140,17 +140,15 @@ -- | VkPhysicalDeviceMaintenance3Properties - Structure describing descriptor -- set properties ----- = Members------ The members of the 'PhysicalDeviceMaintenance3Properties' structure--- describe the following implementation-dependent limits:--- -- = Description -- -- If the 'PhysicalDeviceMaintenance3Properties' structure is included in--- the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2',--- it is filled with the implementation-dependent limits.+-- 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) --
src/Vulkan/Core11/Promoted_From_VK_KHR_multiview.hs view
@@ -49,11 +49,15 @@ -- -- = Members ----- The members of the 'PhysicalDeviceMultiviewFeatures' structure describe--- the following features:+-- This structure describes the following features: -- -- = Description --+-- -   @sType@ is the type of this structure.+--+-- -   @pNext@ is @NULL@ or a pointer to a structure extending this+--     structure.+-- -- -   #extension-features-multiview# @multiview@ specifies whether the --     implementation supports multiview rendering within a render pass. If --     this feature is not enabled, the view mask of each subpass /must/@@ -76,11 +80,14 @@ --     tessellation shaders. -- -- If the 'PhysicalDeviceMultiviewFeatures' structure is included in the--- @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- it is filled with values indicating whether each feature is supported.--- 'PhysicalDeviceMultiviewFeatures' /can/ also be included in the @pNext@--- chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to enable the features.+-- @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. 'PhysicalDeviceMultiviewFeatures' /can/ also be used in the+-- @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to selectively+-- enable these features. -- -- == Valid Usage --@@ -159,17 +166,15 @@ -- | VkPhysicalDeviceMultiviewProperties - Structure describing multiview -- limits that can be supported by an implementation ----- = Members------ The members of the 'PhysicalDeviceMultiviewProperties' structure--- describe the following implementation-dependent limits:--- -- = Description -- -- If the 'PhysicalDeviceMultiviewProperties' structure is included in the--- @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2',--- it is filled with the implementation-dependent limits.+-- @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) --@@ -228,8 +233,8 @@            zero  --- | VkRenderPassMultiviewCreateInfo - Structure containing multiview info--- for all subpasses+-- | VkRenderPassMultiviewCreateInfo - Structure containing multiview+-- information for all subpasses -- -- = Description --
src/Vulkan/Core11/Promoted_From_VK_KHR_sampler_ycbcr_conversion.hs view
@@ -670,7 +670,9 @@ -- 'Vulkan.Core10.Enums.ImageAspectFlagBits.ImageAspectFlagBits', -- 'Vulkan.Core10.Enums.StructureType.StructureType' data BindImagePlaneMemoryInfo = BindImagePlaneMemoryInfo-  { -- | @planeAspect@ is the aspect of the disjoint image plane to bind.+  { -- | @planeAspect@ is a+    -- 'Vulkan.Core10.Enums.ImageAspectFlagBits.ImageAspectFlagBits' value+    -- specifying the aspect of the disjoint image plane to bind.     planeAspect :: ImageAspectFlagBits }   deriving (Typeable, Eq) #if defined(GENERIC_INSTANCES)@@ -755,7 +757,9 @@ -- 'Vulkan.Core10.Enums.ImageAspectFlagBits.ImageAspectFlagBits', -- 'Vulkan.Core10.Enums.StructureType.StructureType' data ImagePlaneMemoryRequirementsInfo = ImagePlaneMemoryRequirementsInfo-  { -- | @planeAspect@ is the aspect corresponding to the image plane to query.+  { -- | @planeAspect@ is a+    -- 'Vulkan.Core10.Enums.ImageAspectFlagBits.ImageAspectFlagBits' value+    -- specifying the aspect corresponding to the image plane to query.     planeAspect :: ImageAspectFlagBits }   deriving (Typeable, Eq) #if defined(GENERIC_INSTANCES)@@ -796,12 +800,23 @@   -- | VkPhysicalDeviceSamplerYcbcrConversionFeatures - Structure describing--- Y’CbCr conversion features that can be supported by an implementation+-- Y′CBCR conversion features that can be supported by an implementation -- -- = Members ----- The members of the 'PhysicalDeviceSamplerYcbcrConversionFeatures'--- structure describe the following feature:+-- This structure describes the following feature:+--+-- = Description+--+-- If the 'PhysicalDeviceSamplerYcbcrConversionFeatures' 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. 'PhysicalDeviceSamplerYcbcrConversionFeatures' /can/ also be+-- used in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to+-- selectively enable these features. -- -- == Valid Usage (Implicit) --
src/Vulkan/Core11/Promoted_From_VK_KHR_shader_draw_parameters.hs view
@@ -36,12 +36,21 @@ -- shader draw parameter features that can be supported by an -- implementation --+-- = Members+--+-- This structure describes the following feature:+-- -- = Description -- -- If the 'PhysicalDeviceShaderDrawParametersFeatures' structure is--- included in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- it is filled with a value indicating whether the feature is supported.+-- 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. 'PhysicalDeviceShaderDrawParametersFeatures' /can/ also be+-- used in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to+-- selectively enable these features. -- -- == Valid Usage (Implicit) --
src/Vulkan/Core11/Promoted_From_VK_KHR_variable_pointers.hs view
@@ -37,11 +37,15 @@ -- -- = Members ----- The members of the 'PhysicalDeviceVariablePointersFeatures' structure--- describe the following features:+-- This structure describes the following features: -- -- = Description --+-- -   @sType@ is the type of this structure.+--+-- -   @pNext@ is @NULL@ or a pointer to a structure extending this+--     structure.+-- -- -   #extension-features-variablePointersStorageBuffer# --     @variablePointersStorageBuffer@ specifies whether the implementation --     supports the SPIR-V @VariablePointersStorageBuffer@ capability. When@@ -55,12 +59,14 @@ --     not declare the @VariablePointers@ capability. -- -- If the 'PhysicalDeviceVariablePointersFeatures' structure is included in--- the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- it is filled with values indicating whether each feature is supported.--- 'PhysicalDeviceVariablePointersFeatures' /can/ also be included in the--- @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to enable the--- features.+-- 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. 'PhysicalDeviceVariablePointersFeatures' /can/ also be used+-- in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to+-- selectively enable these features. -- -- == Valid Usage --
src/Vulkan/Core12.hs view
@@ -95,14 +95,14 @@ import Vulkan.Core10.Enums.StructureType (StructureType) import Vulkan.Core11.Enums.SubgroupFeatureFlagBits (SubgroupFeatureFlags) import Vulkan.Core10.APIConstants (UUID_SIZE)-import Vulkan.Version (pattern MAKE_VERSION)+import Vulkan.Version (pattern MAKE_API_VERSION) import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES)) import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES)) import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES)) import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES)) import Vulkan.Core10.Enums.StructureType (StructureType(..)) pattern API_VERSION_1_2 :: Word32-pattern API_VERSION_1_2 = MAKE_VERSION 1 2 0+pattern API_VERSION_1_2 = MAKE_API_VERSION 1 2 0   -- | VkPhysicalDeviceVulkan11Features - Structure describing the Vulkan 1.1@@ -110,17 +110,19 @@ -- -- = Members ----- The members of the 'PhysicalDeviceVulkan11Features' structure describe--- the following features:+-- This structure describes the following features: -- -- = Description -- -- If the 'PhysicalDeviceVulkan11Features' structure is included in the--- @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- it is filled with values indicating whether each feature is supported.--- 'PhysicalDeviceVulkan11Features' /can/ also be used in the @pNext@ chain--- of 'Vulkan.Core10.Device.DeviceCreateInfo' to enable the features.+-- @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. 'PhysicalDeviceVulkan11Features' /can/ also be used in the+-- @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to selectively+-- enable these features. -- -- == Valid Usage (Implicit) --@@ -290,8 +292,18 @@ -- -- = Description ----- The members of 'PhysicalDeviceVulkan11Properties' /must/ have the same--- values as the corresponding members of+-- If the 'PhysicalDeviceVulkan11Properties' structure is included in the+-- @pNext@ chain of the+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2'+-- structure passed to+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceProperties2',+-- it is filled in with each corresponding implementation-dependent+-- property.+--+-- These properties correspond to Vulkan 1.1 functionality.+--+-- The members of 'PhysicalDeviceVulkan11Properties' have the same values+-- as the corresponding members of -- 'Vulkan.Core11.Promoted_From_VK_KHR_external_memory_capabilities.PhysicalDeviceIDProperties', -- 'Vulkan.Core11.Originally_Based_On_VK_KHR_subgroup.PhysicalDeviceSubgroupProperties', -- 'Vulkan.Core11.Promoted_From_VK_KHR_maintenance2.PhysicalDevicePointClippingProperties',@@ -497,11 +509,15 @@ -- -- = Members ----- The members of the 'PhysicalDeviceVulkan12Features' structure describe--- the following features:+-- This structure describes the following features: -- -- = Description --+-- -   @sType@ is the type of this structure.+--+-- -   @pNext@ is @NULL@ or a pointer to a structure extending this+--     structure.+-- -- -   #features-samplerMirrorClampToEdge# @samplerMirrorClampToEdge@ --     indicates whether the implementation supports the --     'Vulkan.Core10.Enums.SamplerAddressMode.SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE'@@ -806,8 +822,8 @@ --     vectors of these types in --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-group-operations group operations> --     with---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-scope-subgroup subgroup scope>if---     the implementation supports the types.+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-scope-subgroup subgroup scope>,+--     if the implementation supports the types. -- -- -   #features-separateDepthStencilLayouts# @separateDepthStencilLayouts@ --     indicates whether the implementation supports a@@ -895,11 +911,14 @@ --     constants. -- -- If the 'PhysicalDeviceVulkan12Features' structure is included in the--- @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- it is filled with values indicating whether each feature is supported.--- 'PhysicalDeviceVulkan12Features' /can/ also be used in the @pNext@ chain--- of 'Vulkan.Core10.Device.DeviceCreateInfo' to enable the features.+-- @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. 'PhysicalDeviceVulkan12Features' /can/ also be used in the+-- @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to selectively+-- enable these features. -- -- == Valid Usage (Implicit) --@@ -1233,6 +1252,16 @@ -- device properties for functionality promoted to Vulkan 1.2 -- -- = Description+--+-- If the 'PhysicalDeviceVulkan12Properties' structure is included in the+-- @pNext@ chain of the+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2'+-- structure passed to+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceProperties2',+-- it is filled in with each corresponding implementation-dependent+-- property.+--+-- These properties correspond to Vulkan 1.2 functionality. -- -- The members of 'PhysicalDeviceVulkan12Properties' /must/ have the same -- values as the corresponding members of
src/Vulkan/Core12/Enums/DescriptorBindingFlagBits.hs view
@@ -82,13 +82,13 @@ -- binding. This /must/ only be used for the last binding in the descriptor -- set layout (i.e. the binding with the largest value of @binding@). For -- the purposes of counting against limits such as @maxDescriptorSet@* and--- @maxPerStageDescriptor@*, the full value of @descriptorCount@ is counted--- , except for descriptor bindings with a descriptor type of+-- @maxPerStageDescriptor@*, the full value of @descriptorCount@ is+-- counted, except for descriptor bindings with a descriptor type of -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT' -- where @descriptorCount@ specifies the upper bound on the byte size of -- the binding, thus it counts against the -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-maxInlineUniformBlockSize maxInlineUniformBlockSize>--- limit instead. .+-- limit instead. pattern DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT   = DescriptorBindingFlagBits 0x00000008  conNameDescriptorBindingFlagBits :: String
src/Vulkan/Core12/Enums/DriverId.hs view
@@ -14,6 +14,8 @@                                               , DRIVER_ID_BROADCOM_PROPRIETARY                                               , DRIVER_ID_MESA_LLVMPIPE                                               , DRIVER_ID_MOLTENVK+                                              , DRIVER_ID_COREAVI_PROPRIETARY+                                              , DRIVER_ID_JUICE_PROPRIETARY                                               , ..                                               )) where @@ -79,6 +81,10 @@ pattern DRIVER_ID_MESA_LLVMPIPE             = DriverId 13 -- No documentation found for Nested "VkDriverId" "VK_DRIVER_ID_MOLTENVK" pattern DRIVER_ID_MOLTENVK                  = DriverId 14+-- No documentation found for Nested "VkDriverId" "VK_DRIVER_ID_COREAVI_PROPRIETARY"+pattern DRIVER_ID_COREAVI_PROPRIETARY       = DriverId 15+-- No documentation found for Nested "VkDriverId" "VK_DRIVER_ID_JUICE_PROPRIETARY"+pattern DRIVER_ID_JUICE_PROPRIETARY         = DriverId 16 {-# complete DRIVER_ID_AMD_PROPRIETARY,              DRIVER_ID_AMD_OPEN_SOURCE,              DRIVER_ID_MESA_RADV,@@ -92,7 +98,9 @@              DRIVER_ID_GGP_PROPRIETARY,              DRIVER_ID_BROADCOM_PROPRIETARY,              DRIVER_ID_MESA_LLVMPIPE,-             DRIVER_ID_MOLTENVK :: DriverId #-}+             DRIVER_ID_MOLTENVK,+             DRIVER_ID_COREAVI_PROPRIETARY,+             DRIVER_ID_JUICE_PROPRIETARY :: DriverId #-}  conNameDriverId :: String conNameDriverId = "DriverId"@@ -116,6 +124,8 @@   , (DRIVER_ID_BROADCOM_PROPRIETARY     , "BROADCOM_PROPRIETARY")   , (DRIVER_ID_MESA_LLVMPIPE            , "MESA_LLVMPIPE")   , (DRIVER_ID_MOLTENVK                 , "MOLTENVK")+  , (DRIVER_ID_COREAVI_PROPRIETARY      , "COREAVI_PROPRIETARY")+  , (DRIVER_ID_JUICE_PROPRIETARY        , "JUICE_PROPRIETARY")   ]  instance Show DriverId where
src/Vulkan/Core12/Enums/ShaderFloatControlsIndependence.hs view
@@ -15,7 +15,7 @@ import GHC.Read (Read(readPrec)) import GHC.Show (Show(showsPrec)) --- | VkShaderFloatControlsIndependence - Enum specifying whether, and how,+-- | VkShaderFloatControlsIndependence - Bitmask specifying whether, and how, -- shader float controls can be set separately -- -- = See Also
src/Vulkan/Core12/Promoted_From_VK_EXT_descriptor_indexing.hs view
@@ -63,18 +63,19 @@ -- -- = Members ----- The members of the 'PhysicalDeviceDescriptorIndexingFeatures' structure--- describe the following features:+-- This structure describes the following features: -- -- = Description -- -- If the 'PhysicalDeviceDescriptorIndexingFeatures' structure is included--- in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- it is filled with values indicating whether each feature is supported.--- 'PhysicalDeviceDescriptorIndexingFeatures' /can/ also be included in the--- @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to enable--- features.+-- 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. 'PhysicalDeviceDescriptorIndexingFeatures' /can/ also be used+-- in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to+-- selectively enable these features. -- -- == Valid Usage (Implicit) --@@ -384,17 +385,15 @@ -- descriptor indexing properties that can be supported by an -- implementation ----- = Members------ The members of the 'PhysicalDeviceDescriptorIndexingProperties'--- structure describe the following implementation-dependent limits:--- -- = Description -- -- If the 'PhysicalDeviceDescriptorIndexingProperties' structure is--- included in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2',--- it is filled with the implementation-dependent limits.+-- 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) --@@ -1004,12 +1003,16 @@ -- -- = Description ----- If the create info includes a variable-sized descriptor, then--- @supported@ is determined assuming the requested size of the--- variable-sized descriptor, and @maxVariableDescriptorCount@ is set to--- the maximum size of that descriptor that /can/ be successfully created--- (which is greater than or equal to the requested size passed in). If the--- create info does not include a variable-sized descriptor or if the+-- If the 'Vulkan.Core10.DescriptorSet.DescriptorSetLayoutCreateInfo'+-- structure specified in+-- 'Vulkan.Core11.Promoted_From_VK_KHR_maintenance3.getDescriptorSetLayoutSupport'::@pCreateInfo@+-- includes a variable-sized descriptor, then @supported@ is determined+-- assuming the requested size of the variable-sized descriptor, and+-- @maxVariableDescriptorCount@ is set to the maximum size of that+-- descriptor that /can/ be successfully created (which is greater than or+-- equal to the requested size passed in). If the+-- 'Vulkan.Core10.DescriptorSet.DescriptorSetLayoutCreateInfo' structure+-- does not include a variable-sized descriptor, or if the -- 'PhysicalDeviceDescriptorIndexingFeatures'::@descriptorBindingVariableDescriptorCount@ -- feature is not enabled, then @maxVariableDescriptorCount@ is set to -- zero. For the purposes of this command, a variable-sized descriptor
src/Vulkan/Core12/Promoted_From_VK_EXT_host_query_reset.hs view
@@ -125,18 +125,19 @@ -- -- = Members ----- The members of the 'PhysicalDeviceHostQueryResetFeatures' structure--- describe the following features:+-- This structure describes the following feature: -- -- = Description -- -- If the 'PhysicalDeviceHostQueryResetFeatures' structure is included in--- the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- it is filled with values indicating whether the feature is supported.--- 'PhysicalDeviceHostQueryResetFeatures' /can/ also be included in the--- @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to enable--- features.+-- 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. 'PhysicalDeviceHostQueryResetFeatures' /can/ also be used in+-- the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to+-- selectively enable these features. -- -- == Valid Usage (Implicit) --
src/Vulkan/Core12/Promoted_From_VK_EXT_sampler_filter_minmax.hs view
@@ -38,17 +38,15 @@ -- | VkPhysicalDeviceSamplerFilterMinmaxProperties - Structure describing -- sampler filter minmax limits that can be supported by an implementation ----- = Members------ The members of the 'PhysicalDeviceSamplerFilterMinmaxProperties'--- structure describe the following implementation-dependent limits:--- -- = Description -- -- If the 'PhysicalDeviceSamplerFilterMinmaxProperties' structure is--- included in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2',--- it is filled with the implementation-dependent limits.+-- included in the @pNext@ chain of the+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2'+-- structure passed to+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceProperties2',+-- it is filled in with each corresponding implementation-dependent+-- property. -- -- If @filterMinmaxSingleComponentFormats@ is -- 'Vulkan.Core10.FundamentalTypes.TRUE', the following formats /must/@@ -56,7 +54,7 @@ -- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT' -- feature with 'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_OPTIMAL', if -- they support--- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_BIT'.+-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_BIT': -- -- If the format is a depth\/stencil format, this bit only specifies that -- the depth aspect (not the stencil aspect) of an image of this format
src/Vulkan/Core12/Promoted_From_VK_EXT_scalar_block_layout.hs view
@@ -31,18 +31,19 @@ -- -- = Members ----- The members of the 'PhysicalDeviceScalarBlockLayoutFeatures' structure--- describe the following features:+-- This structure describes the following feature: -- -- = Description -- -- If the 'PhysicalDeviceScalarBlockLayoutFeatures' structure is included--- in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- it is filled with values indicating whether the feature is supported.--- 'PhysicalDeviceScalarBlockLayoutFeatures' /can/ also be included in the--- @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to enable this--- feature.+-- 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. 'PhysicalDeviceScalarBlockLayoutFeatures' /can/ also be used+-- in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to+-- selectively enable these features. -- -- == Valid Usage (Implicit) --
src/Vulkan/Core12/Promoted_From_VK_EXT_separate_stencil_usage.hs view
@@ -40,7 +40,7 @@ -- stencil aspect of the image /must/ only be used as specified by -- @stencilUsage@. When this structure is not included in the @pNext@ chain -- of 'Vulkan.Core10.Image.ImageCreateInfo', the stencil aspect of an image--- /must/ only be used as specified+-- /must/ only be used as specified by -- 'Vulkan.Core10.Image.ImageCreateInfo'::@usage@. Use of other aspects of -- an image are unaffected by this structure. --
src/Vulkan/Core12/Promoted_From_VK_KHR_8bit_storage.hs view
@@ -29,6 +29,22 @@ -- | VkPhysicalDevice8BitStorageFeatures - Structure describing features -- supported by VK_KHR_8bit_storage --+-- = Members+--+-- This structure describes the following features:+--+-- = Description+--+-- If the 'PhysicalDevice8BitStorageFeatures' 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. 'PhysicalDevice8BitStorageFeatures' /can/ also be used in the+-- @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to selectively+-- enable these features.+-- -- == Valid Usage (Implicit) -- -- = See Also
src/Vulkan/Core12/Promoted_From_VK_KHR_buffer_device_address.hs view
@@ -278,8 +278,7 @@ -- -- = Members ----- The members of the 'PhysicalDeviceBufferDeviceAddressFeatures' structure--- describe the following features:+-- This structure describes the following features: -- -- = Description --@@ -292,12 +291,14 @@ -- See 'getBufferDeviceAddress' for more information. -- -- If the 'PhysicalDeviceBufferDeviceAddressFeatures' structure is included--- in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- it is filled with values indicating whether the feature is supported.--- 'PhysicalDeviceBufferDeviceAddressFeatures' /can/ also be included in--- the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to enable--- features.+-- 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. 'PhysicalDeviceBufferDeviceAddressFeatures' /can/ also be+-- used in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to+-- selectively enable these features. -- -- == Valid Usage (Implicit) --@@ -547,7 +548,7 @@ -- -- In most cases, it is expected that a non-zero @opaqueAddress@ is an -- address retrieved from 'getDeviceMemoryOpaqueCaptureAddress' on an--- identically created memory allocation. If this is not the case, it+-- identically created memory allocation. If this is not the case, it is -- likely that -- 'Vulkan.Core10.Enums.Result.ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS' errors -- will occur.
src/Vulkan/Core12/Promoted_From_VK_KHR_create_renderpass2.hs view
@@ -316,8 +316,8 @@ --     have been created with a @usage@ value including --     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_DST_BIT' ----- -   #VUID-vkCmdBeginRenderPass2-initialLayout-03100# If any of the---     @initialLayout@ members of the+-- -   #VUID-vkCmdBeginRenderPass2-initialLayout-03100# If the+--     @initialLayout@ member of any of the --     'Vulkan.Core10.Pass.AttachmentDescription' structures specified when --     creating the render pass specified in the @renderPass@ member of --     @pRenderPassBegin@ is not@@ -620,21 +620,25 @@ -- @initialLayout@ and @finalLayout@ /can/ be set to a layout that only -- specifies the layout of the depth aspect. ----- If @format@ is a depth\/stencil format, and @initialLayout@ only--- specifies the initial layout of the depth aspect of the attachment, the--- initial layout of the stencil aspect is specified by the--- @stencilInitialLayout@ member of a+-- If the @pNext@ chain includes a -- 'Vulkan.Core12.Promoted_From_VK_KHR_separate_depth_stencil_layouts.AttachmentDescriptionStencilLayout'--- structure included in the @pNext@ chain. Otherwise, @initialLayout@--- describes the initial layout for all relevant image aspects.+-- structure, then the @stencilInitialLayout@ and @stencilFinalLayout@+-- members specify the initial and final layouts of the stencil aspect of a+-- depth\/stencil format, and @initialLayout@ and @finalLayout@ only apply+-- to the depth aspect. For depth-only formats, the+-- 'Vulkan.Core12.Promoted_From_VK_KHR_separate_depth_stencil_layouts.AttachmentDescriptionStencilLayout'+-- structure is ignored. For stencil-only formats, the initial and final+-- layouts of the stencil aspect are taken from the+-- 'Vulkan.Core12.Promoted_From_VK_KHR_separate_depth_stencil_layouts.AttachmentDescriptionStencilLayout'+-- structure if present, or @initialLayout@ and @finalLayout@ if not+-- present. ----- If @format@ is a depth\/stencil format, and @finalLayout@ only specifies--- the final layout of the depth aspect of the attachment, the final layout--- of the stencil aspect is specified by the @stencilFinalLayout@ member of--- a+-- If @format@ is a depth\/stencil format, and either @initialLayout@ or+-- @finalLayout@ does not specify a layout for the stencil aspect, then the+-- application /must/ specify the initial and final layouts of the stencil+-- aspect by including a -- 'Vulkan.Core12.Promoted_From_VK_KHR_separate_depth_stencil_layouts.AttachmentDescriptionStencilLayout'--- structure included in the @pNext@ chain. Otherwise, @finalLayout@--- describes the final layout for all relevant image aspects.+-- structure in the @pNext@ chain. -- -- == Valid Usage --@@ -818,8 +822,9 @@   , -- | @format@ is a 'Vulkan.Core10.Enums.Format.Format' value specifying the     -- format of the image that will be used for the attachment.     format :: Format-  , -- | @samples@ is the number of samples of the image as defined in-    -- 'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlagBits'.+  , -- | @samples@ is a+    -- 'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlagBits' value+    -- specifying the number of samples of the image.     samples :: SampleCountFlagBits   , -- | @loadOp@ is a 'Vulkan.Core10.Enums.AttachmentLoadOp.AttachmentLoadOp'     -- value specifying how the contents of color and depth components of the@@ -1032,8 +1037,7 @@   { -- | @pNext@ is @NULL@ or a pointer to a structure extending this structure.     next :: Chain es   , -- | @attachment@ is either an integer value identifying an attachment at the-    -- corresponding index in-    -- 'Vulkan.Core10.Pass.RenderPassCreateInfo'::@pAttachments@, or+    -- corresponding index in 'RenderPassCreateInfo2'::@pAttachments@, or     -- 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED' to signify that this     -- attachment is not used.     attachment :: Word32@@ -1213,8 +1217,8 @@ --     'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED', they /must/ have the --     same sample count ----- -   #VUID-VkSubpassDescription2-attachment-03073# The @attachment@---     member of any element of @pPreserveAttachments@ /must/ not be+-- -   #VUID-VkSubpassDescription2-attachment-03073# Each element of+--     @pPreserveAttachments@ /must/ not be --     'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED' -- -- -   #VUID-VkSubpassDescription2-pPreserveAttachments-03074# Any given@@ -1222,8 +1226,8 @@ --     any other member of the subpass description -- -- -   #VUID-VkSubpassDescription2-layout-02528# If any attachment is used---     by more than one 'Vulkan.Core10.Pass.AttachmentReference' member,---     then each use /must/ use the same @layout@+--     by more than one 'AttachmentReference2' member, then each use /must/+--     use the same @layout@ -- -- -   #VUID-VkSubpassDescription2-None-04439# Attachments /must/ follow --     the@@ -1336,13 +1340,13 @@     -- structures defining the input attachments for this subpass and their     -- layouts.     inputAttachments :: Vector (SomeStruct AttachmentReference2)-  , -- | @pColorAttachments@ is a pointer to an array of 'AttachmentReference2'-    -- structures defining the color attachments for this subpass and their-    -- layouts.-    colorAttachments :: Vector (SomeStruct AttachmentReference2)-  , -- | @pResolveAttachments@ is an optional array of @colorAttachmentCount@-    -- 'AttachmentReference2' structures defining the resolve attachments for+  , -- | @pColorAttachments@ is a pointer to an array of @colorAttachmentCount@+    -- 'AttachmentReference2' structures defining the color attachments for     -- this subpass and their layouts.+    colorAttachments :: Vector (SomeStruct AttachmentReference2)+  , -- | @pResolveAttachments@ is @NULL@ or a pointer to an array of+    -- @colorAttachmentCount@ 'AttachmentReference2' structures defining the+    -- resolve attachments for this subpass and their layouts.     resolveAttachments :: Vector (SomeStruct AttachmentReference2)   , -- | @pDepthStencilAttachment@ is a pointer to a 'AttachmentReference2'     -- structure specifying the depth\/stencil attachment for this subpass and@@ -1867,6 +1871,38 @@ --     contain --     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR' --+-- -   #VUID-VkRenderPassCreateInfo2-rasterizationSamples-04905# If the+--     pipeline is being created with fragment shader state, and the+--     VK_QCOM_render_pass_shader_resolve extension is enabled, and if+--     subpass has any input attachments, and if the subpass description+--     contains+--     'Vulkan.Core10.Enums.SubpassDescriptionFlagBits.SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM',+--     then the sample count of the input attachments /must/ equal+--     @rasterizationSamples@+--+-- -   #VUID-VkRenderPassCreateInfo2-sampleShadingEnable-04906# If the+--     pipeline is being created with fragment shader state, and the+--     VK_QCOM_render_pass_shader_resolve extension is enabled, and if the+--     subpass description contains+--     'Vulkan.Core10.Enums.SubpassDescriptionFlagBits.SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM',+--     then @sampleShadingEnable@ /must/ be false+--+-- -   #VUID-VkRenderPassCreateInfo2-flags-04907# If @flags@ includes+--     'Vulkan.Core10.Enums.SubpassDescriptionFlagBits.SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM',+--     and if @pResolveAttachments@ is not @NULL@, then each resolve+--     attachment /must/ be 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED'+--+-- -   #VUID-VkRenderPassCreateInfo2-flags-04908# If @flags@ includes+--     'Vulkan.Core10.Enums.SubpassDescriptionFlagBits.SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM',+--     and if @pDepthStencilResolveAttachmentKHR@ is not @NULL@, then the+--     depth\/stencil resolve attachment /must/ be+--     'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED'+--+-- -   #VUID-VkRenderPassCreateInfo2-flags-04909# If @flags@ includes+--     'Vulkan.Core10.Enums.SubpassDescriptionFlagBits.SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM',+--     then the subpass /must/ be the last subpass in a subpass dependency+--     chain+-- -- == Valid Usage (Implicit) -- -- -   #VUID-VkRenderPassCreateInfo2-sType-sType# @sType@ /must/ be@@ -2010,7 +2046,7 @@            mempty  --- | VkSubpassBeginInfo - Structure specifying subpass begin info+-- | VkSubpassBeginInfo - Structure specifying subpass begin information -- -- == Valid Usage (Implicit) --@@ -2067,7 +2103,7 @@            zero  --- | VkSubpassEndInfo - Structure specifying subpass end info+-- | VkSubpassEndInfo - Structure specifying subpass end information -- -- == Valid Usage (Implicit) --
src/Vulkan/Core12/Promoted_From_VK_KHR_depth_stencil_resolve.hs view
@@ -48,10 +48,15 @@ -- depth\/stencil resolve properties that can be supported by an -- implementation ----- = Members+-- = Description ----- The members of the 'PhysicalDeviceDepthStencilResolveProperties'--- structure describe the following implementation-dependent limits:+-- If the 'PhysicalDeviceDepthStencilResolveProperties' 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) --@@ -256,17 +261,18 @@ -- 'Vulkan.Core12.Enums.ResolveModeFlagBits.ResolveModeFlagBits', -- 'Vulkan.Core10.Enums.StructureType.StructureType' data SubpassDescriptionDepthStencilResolve = SubpassDescriptionDepthStencilResolve-  { -- | @depthResolveMode@ is a bitmask of-    -- 'Vulkan.Core12.Enums.ResolveModeFlagBits.ResolveModeFlagBits' describing-    -- the depth resolve mode.+  { -- | @depthResolveMode@ is a+    -- 'Vulkan.Core12.Enums.ResolveModeFlagBits.ResolveModeFlagBits' value+    -- describing the depth resolve mode.     depthResolveMode :: ResolveModeFlagBits-  , -- | @stencilResolveMode@ is a bitmask of-    -- 'Vulkan.Core12.Enums.ResolveModeFlagBits.ResolveModeFlagBits' describing-    -- the stencil resolve mode.+  , -- | @stencilResolveMode@ is a+    -- 'Vulkan.Core12.Enums.ResolveModeFlagBits.ResolveModeFlagBits' value+    -- describing the stencil resolve mode.     stencilResolveMode :: ResolveModeFlagBits-  , -- | @pDepthStencilResolveAttachment@ is an optional-    -- 'Vulkan.Core10.Pass.AttachmentReference' structure defining the-    -- depth\/stencil resolve attachment for this subpass and its layout.+  , -- | @pDepthStencilResolveAttachment@ is @NULL@ or a pointer to a+    -- 'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.AttachmentReference2'+    -- structure defining the depth\/stencil resolve attachment for this+    -- subpass and its layout.     depthStencilResolveAttachment :: Maybe (SomeStruct AttachmentReference2)   }   deriving (Typeable)
src/Vulkan/Core12/Promoted_From_VK_KHR_draw_indirect_count.hs view
@@ -31,8 +31,8 @@   "dynamic" mkVkCmdDrawIndirectCount   :: FunPtr (Ptr CommandBuffer_T -> Buffer -> DeviceSize -> Buffer -> DeviceSize -> Word32 -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> Buffer -> DeviceSize -> Buffer -> DeviceSize -> Word32 -> Word32 -> IO () --- | vkCmdDrawIndirectCount - Perform an indirect draw with the draw count--- sourced from a buffer+-- | vkCmdDrawIndirectCount - Draw primitives with indirect parameters and+-- draw count -- -- = Description --@@ -143,9 +143,9 @@ -- -   #VUID-vkCmdDrawIndirectCount-commandBuffer-02701# If the --     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind --     point used by this command requires any dynamic state, that state---     /must/ have been set for @commandBuffer@, and done so after any---     previously bound pipeline with the corresponding state not specified---     as dynamic+--     /must/ have been set or inherited for @commandBuffer@, and done so+--     after any previously bound pipeline with the corresponding state not+--     specified as dynamic -- -- -   #VUID-vkCmdDrawIndirectCount-None-02859# There /must/ not have been --     any calls to dynamic state setting commands for any state not@@ -312,7 +312,7 @@ --     dynamic state enabled, then --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT' --     /must/ have been called in the current command buffer prior to this---     draw command, and the @viewportCount@ parameter of+--     drawing command, and the @viewportCount@ parameter of --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT' --     /must/ match the --     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@scissorCount@@@ -326,7 +326,7 @@ --     dynamic state enabled, then --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT' --     /must/ have been called in the current command buffer prior to this---     draw command, and the @scissorCount@ parameter of+--     drawing command, and the @scissorCount@ parameter of --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT' --     /must/ match the --     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@viewportCount@@@ -342,7 +342,7 @@ --     and --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT' --     /must/ have been called in the current command buffer prior to this---     draw command, and the @viewportCount@ parameter of+--     drawing command, and the @viewportCount@ parameter of --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT' --     /must/ match the @scissorCount@ parameter of --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'@@ -425,7 +425,7 @@ --     dynamic state enabled then --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopologyEXT' --     /must/ have been called in the current command buffer prior to this---     draw command, and the @primitiveTopology@ parameter of+--     drawing command, and the @primitiveTopology@ parameter of --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopologyEXT' --     /must/ be of the same --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#drawing-primitive-topology-class topology class>@@ -433,6 +433,47 @@ --     'Vulkan.Core10.Pipeline.PipelineInputAssemblyStateCreateInfo'::@topology@ --     state --+-- -   #VUID-vkCmdDrawIndirectCount-None-04875# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetPatchControlPointsEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawIndirectCount-None-04876# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnableEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawIndirectCount-None-04877# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS_ENABLE_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnableEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawIndirectCount-logicOp-04878# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LOGIC_OP_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetLogicOpEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command and the @logicOp@ /must/ be a valid+--     'Vulkan.Core10.Enums.LogicOp.LogicOp' value+--+-- -   #VUID-vkCmdDrawIndirectCount-None-04879# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetPrimitiveRestartEnableEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+-- -- -   #VUID-vkCmdDrawIndirectCount-primitiveFragmentShadingRateWithMultipleViewports-04552# --     If the --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports primitiveFragmentShadingRateWithMultipleViewports>@@ -444,7 +485,7 @@ --     then --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT' --     /must/ have been called in the current command buffer prior to this---     draw command, and the @viewportCount@ parameter of+--     drawing command, and the @viewportCount@ parameter of --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT' --     /must/ be @1@ --@@ -465,6 +506,16 @@ --     /must/ be the same as the current subpass color and\/or --     depth\/stencil attachments --+-- -   #VUID-vkCmdDrawIndirectCount-pStrides-04884# If the bound graphics+--     pipeline was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT'+--     dynamic state enabled, then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command, and the @pStrides@ parameter of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT'+--     /must/ not be @NULL@+-- -- -   #VUID-vkCmdDrawIndirectCount-None-04007# All vertex input bindings --     accessed via vertex input variables declared in the vertex shader --     entry point’s interface /must/ have either valid or@@ -625,8 +676,8 @@   "dynamic" mkVkCmdDrawIndexedIndirectCount   :: FunPtr (Ptr CommandBuffer_T -> Buffer -> DeviceSize -> Buffer -> DeviceSize -> Word32 -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> Buffer -> DeviceSize -> Buffer -> DeviceSize -> Word32 -> Word32 -> IO () --- | vkCmdDrawIndexedIndirectCount - Perform an indexed indirect draw with--- the draw count sourced from a buffer+-- | vkCmdDrawIndexedIndirectCount - Draw parameters with indirect+-- parameters, indexed vertices, and draw count -- -- = Description --@@ -738,9 +789,9 @@ -- -   #VUID-vkCmdDrawIndexedIndirectCount-commandBuffer-02701# If the --     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind --     point used by this command requires any dynamic state, that state---     /must/ have been set for @commandBuffer@, and done so after any---     previously bound pipeline with the corresponding state not specified---     as dynamic+--     /must/ have been set or inherited for @commandBuffer@, and done so+--     after any previously bound pipeline with the corresponding state not+--     specified as dynamic -- -- -   #VUID-vkCmdDrawIndexedIndirectCount-None-02859# There /must/ not --     have been any calls to dynamic state setting commands for any state@@ -910,7 +961,7 @@ --     dynamic state enabled, then --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT' --     /must/ have been called in the current command buffer prior to this---     draw command, and the @viewportCount@ parameter of+--     drawing command, and the @viewportCount@ parameter of --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT' --     /must/ match the --     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@scissorCount@@@ -924,7 +975,7 @@ --     dynamic state enabled, then --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT' --     /must/ have been called in the current command buffer prior to this---     draw command, and the @scissorCount@ parameter of+--     drawing command, and the @scissorCount@ parameter of --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT' --     /must/ match the --     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@viewportCount@@@ -940,7 +991,7 @@ --     and --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT' --     /must/ have been called in the current command buffer prior to this---     draw command, and the @viewportCount@ parameter of+--     drawing command, and the @viewportCount@ parameter of --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT' --     /must/ match the @scissorCount@ parameter of --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'@@ -1023,7 +1074,7 @@ --     dynamic state enabled then --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopologyEXT' --     /must/ have been called in the current command buffer prior to this---     draw command, and the @primitiveTopology@ parameter of+--     drawing command, and the @primitiveTopology@ parameter of --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopologyEXT' --     /must/ be of the same --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#drawing-primitive-topology-class topology class>@@ -1031,6 +1082,47 @@ --     'Vulkan.Core10.Pipeline.PipelineInputAssemblyStateCreateInfo'::@topology@ --     state --+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-04875# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetPatchControlPointsEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-04876# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnableEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-04877# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS_ENABLE_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnableEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawIndexedIndirectCount-logicOp-04878# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LOGIC_OP_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetLogicOpEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command and the @logicOp@ /must/ be a valid+--     'Vulkan.Core10.Enums.LogicOp.LogicOp' value+--+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-04879# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetPrimitiveRestartEnableEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+-- -- -   #VUID-vkCmdDrawIndexedIndirectCount-primitiveFragmentShadingRateWithMultipleViewports-04552# --     If the --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports primitiveFragmentShadingRateWithMultipleViewports>@@ -1042,7 +1134,7 @@ --     then --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT' --     /must/ have been called in the current command buffer prior to this---     draw command, and the @viewportCount@ parameter of+--     drawing command, and the @viewportCount@ parameter of --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT' --     /must/ be @1@ --@@ -1063,6 +1155,16 @@ --     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@ --     /must/ be the same as the current subpass color and\/or --     depth\/stencil attachments+--+-- -   #VUID-vkCmdDrawIndexedIndirectCount-pStrides-04884# If the bound+--     graphics pipeline was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT'+--     dynamic state enabled, then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command, and the @pStrides@ parameter of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT'+--     /must/ not be @NULL@ -- -- -   #VUID-vkCmdDrawIndexedIndirectCount-None-04007# All vertex input --     bindings accessed via vertex input variables declared in the vertex
src/Vulkan/Core12/Promoted_From_VK_KHR_driver_properties.hs view
@@ -112,6 +112,16 @@ -- -- = Description --+-- If the 'PhysicalDeviceDriverProperties' structure is included in the+-- @pNext@ chain of the+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2'+-- structure passed to+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceProperties2',+-- it is filled in with each corresponding implementation-dependent+-- property.+--+-- These are properties of the driver corresponding to a physical device.+-- -- @driverID@ /must/ be immutable for a given driver across instances, -- processes, driver versions, and system reboots. --
src/Vulkan/Core12/Promoted_From_VK_KHR_image_format_list.hs view
@@ -38,7 +38,7 @@ -- -- If @viewFormatCount@ is zero, @pViewFormats@ is ignored and the image is -- created as if the 'ImageFormatListCreateInfo' structure were not--- included in the @pNext@ list of 'Vulkan.Core10.Image.ImageCreateInfo'.+-- included in the @pNext@ chain of 'Vulkan.Core10.Image.ImageCreateInfo'. -- -- == Valid Usage (Implicit) --@@ -55,8 +55,9 @@ -- 'Vulkan.Core10.Enums.Format.Format', -- 'Vulkan.Core10.Enums.StructureType.StructureType' data ImageFormatListCreateInfo = ImageFormatListCreateInfo-  { -- | @pViewFormats@ is an array which lists of all formats which /can/ be-    -- used when creating views of this image.+  { -- | @pViewFormats@ is a pointer to an array of+    -- 'Vulkan.Core10.Enums.Format.Format' values specifying all formats which+    -- /can/ be used when creating views of this image.     viewFormats :: Vector Format }   deriving (Typeable) #if defined(GENERIC_INSTANCES)
src/Vulkan/Core12/Promoted_From_VK_KHR_imageless_framebuffer.hs view
@@ -54,18 +54,19 @@ -- -- = Members ----- The members of the 'PhysicalDeviceImagelessFramebufferFeatures'--- structure describe the following features:+-- This structure describes the following feature: -- -- = Description -- -- If the 'PhysicalDeviceImagelessFramebufferFeatures' structure is--- included in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- it is filled with values indicating whether the feature is supported.--- 'PhysicalDeviceImagelessFramebufferFeatures' /can/ also be included in--- the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to enable--- this feature.+-- 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. 'PhysicalDeviceImagelessFramebufferFeatures' /can/ also be+-- used in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to+-- selectively enable these features. -- -- == Valid Usage (Implicit) --@@ -234,9 +235,11 @@     height :: Word32   , -- No documentation found for Nested "VkFramebufferAttachmentImageInfo" "layerCount"     layerCount :: Word32-  , -- | @pViewFormats@ is an array which lists of all formats which /can/ be-    -- used when creating views of the image, matching the value of-    -- 'Vulkan.Core12.Promoted_From_VK_KHR_image_format_list.ImageFormatListCreateInfo'::pViewFormats+  , -- | @pViewFormats@ is a pointer to an array of+    -- 'Vulkan.Core10.Enums.Format.Format' values specifying all of the formats+    -- which /can/ be used when creating views of the image, matching the value+    -- of+    -- 'Vulkan.Core12.Promoted_From_VK_KHR_image_format_list.ImageFormatListCreateInfo'::@pViewFormats@     -- used to create an image used with this framebuffer.     viewFormats :: Vector Format   }
src/Vulkan/Core12/Promoted_From_VK_KHR_separate_depth_stencil_layouts.hs view
@@ -39,18 +39,20 @@ -- -- = Members ----- The members of the 'PhysicalDeviceSeparateDepthStencilLayoutsFeatures'--- structure describe the following features:+-- This structure describes the following feature: -- -- = Description -- -- If the 'PhysicalDeviceSeparateDepthStencilLayoutsFeatures' structure is--- included in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- it is filled with values indicating whether the feature is supported.--- 'PhysicalDeviceSeparateDepthStencilLayoutsFeatures' /can/ also be--- included in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo'--- to enable the feature.+-- 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. 'PhysicalDeviceSeparateDepthStencilLayoutsFeatures' /can/+-- also be used in the @pNext@ chain of+-- 'Vulkan.Core10.Device.DeviceCreateInfo' to selectively enable these+-- features. -- -- == Valid Usage (Implicit) --
src/Vulkan/Core12/Promoted_From_VK_KHR_shader_atomic_int64.hs view
@@ -29,6 +29,22 @@ -- | VkPhysicalDeviceShaderAtomicInt64Features - Structure describing -- features supported by VK_KHR_shader_atomic_int64 --+-- = Members+--+-- This structure describes the following features:+--+-- = Description+--+-- If the 'PhysicalDeviceShaderAtomicInt64Features' 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. 'PhysicalDeviceShaderAtomicInt64Features' /can/ also be used+-- in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to+-- selectively enable these features.+-- -- == Valid Usage (Implicit) -- -- = See Also
src/Vulkan/Core12/Promoted_From_VK_KHR_shader_float16_int8.hs view
@@ -29,6 +29,22 @@ -- | VkPhysicalDeviceShaderFloat16Int8Features - Structure describing -- features supported by VK_KHR_shader_float16_int8 --+-- = Members+--+-- This structure describes the following features:+--+-- = Description+--+-- If the 'PhysicalDeviceShaderFloat16Int8Features' 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. 'PhysicalDeviceShaderFloat16Int8Features' /can/ also be used+-- in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to+-- selectively enable these features.+-- -- == Valid Usage (Implicit) -- -- = See Also
src/Vulkan/Core12/Promoted_From_VK_KHR_shader_float_controls.hs view
@@ -32,17 +32,15 @@ -- | VkPhysicalDeviceFloatControlsProperties - Structure describing -- properties supported by VK_KHR_shader_float_controls ----- = Members------ The members of the 'PhysicalDeviceFloatControlsProperties' structure--- describe the following implementation-dependent limits:--- -- = Description -- -- If the 'PhysicalDeviceFloatControlsProperties' structure is included in--- the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2',--- it is filled with the implementation-dependent limits.+-- 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) --
src/Vulkan/Core12/Promoted_From_VK_KHR_shader_subgroup_extended_types.hs view
@@ -32,18 +32,20 @@ -- -- = Members ----- The members of the 'PhysicalDeviceShaderSubgroupExtendedTypesFeatures'--- structure describe the following features:+-- This structure describes the following feature: -- -- = Description -- -- If the 'PhysicalDeviceShaderSubgroupExtendedTypesFeatures' structure is--- included in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- it is filled with values indicating whether each feature is supported.--- 'PhysicalDeviceShaderSubgroupExtendedTypesFeatures' /can/ also be--- included in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo'--- to enable features.+-- 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. 'PhysicalDeviceShaderSubgroupExtendedTypesFeatures' /can/+-- also be used in the @pNext@ chain of+-- 'Vulkan.Core10.Device.DeviceCreateInfo' to selectively enable these+-- features. -- -- == Valid Usage (Implicit) --@@ -58,8 +60,8 @@     -- integer, 16-bit floating-point, and vectors of these types in     -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-group-operations group operations>     -- with-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-scope-subgroup subgroup scope>if-    -- the implementation supports the types.+    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-scope-subgroup subgroup scope>,+    -- if the implementation supports the types.     shaderSubgroupExtendedTypes :: Bool }   deriving (Typeable, Eq) #if defined(GENERIC_INSTANCES)
src/Vulkan/Core12/Promoted_From_VK_KHR_timeline_semaphore.hs view
@@ -169,7 +169,7 @@ waitSemaphoresSafeOrUnsafe :: forall io                             . (MonadIO io)                            => (FunPtr (Ptr Device_T -> Ptr SemaphoreWaitInfo -> Word64 -> IO Result) -> Ptr Device_T -> Ptr SemaphoreWaitInfo -> Word64 -> IO Result)-                           -> -- | @device@ is the logical device that owns the semaphore.+                           -> -- | @device@ is the logical device that owns the semaphores.                               --                               -- #VUID-vkWaitSemaphores-device-parameter# @device@ /must/ be a valid                               -- 'Vulkan.Core10.Handles.Device' handle@@ -207,7 +207,7 @@ -- whichever is sooner. -- -- If @timeout@ is zero, then 'waitSemaphores' does not wait, but simply--- returns information about the current state of the semaphore.+-- returns information about the current state of the semaphores. -- 'Vulkan.Core10.Enums.Result.TIMEOUT' will be returned in this case if -- the condition is not satisfied, even though no actual wait was -- performed.@@ -244,7 +244,7 @@ -- 'Vulkan.Core10.Handles.Device', 'SemaphoreWaitInfo' waitSemaphores :: forall io                 . (MonadIO io)-               => -- | @device@ is the logical device that owns the semaphore.+               => -- | @device@ is the logical device that owns the semaphores.                   --                   -- #VUID-vkWaitSemaphores-device-parameter# @device@ /must/ be a valid                   -- 'Vulkan.Core10.Handles.Device' handle@@ -266,7 +266,7 @@ -- | A variant of 'waitSemaphores' which makes a *safe* FFI call waitSemaphoresSafe :: forall io                     . (MonadIO io)-                   => -- | @device@ is the logical device that owns the semaphore.+                   => -- | @device@ is the logical device that owns the semaphores.                       --                       -- #VUID-vkWaitSemaphores-device-parameter# @device@ /must/ be a valid                       -- 'Vulkan.Core10.Handles.Device' handle@@ -352,18 +352,19 @@ -- -- = Members ----- The members of the 'PhysicalDeviceTimelineSemaphoreFeatures' structure--- describe the following features:+-- This structure describes the following feature: -- -- = Description -- -- If the 'PhysicalDeviceTimelineSemaphoreFeatures' structure is included--- in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- it is filled with values indicating whether each feature is supported.--- 'PhysicalDeviceTimelineSemaphoreFeatures' /can/ also be included in the--- @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to enable--- features.+-- 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. 'PhysicalDeviceTimelineSemaphoreFeatures' /can/ also be used+-- in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to+-- selectively enable these features. -- -- == Valid Usage (Implicit) --@@ -419,10 +420,15 @@ -- | VkPhysicalDeviceTimelineSemaphoreProperties - Structure describing -- timeline semaphore properties that can be supported by an implementation ----- = Members+-- = Description ----- The members of the 'PhysicalDeviceTimelineSemaphoreProperties' structure--- describe the following implementation-dependent limits:+-- If the 'PhysicalDeviceTimelineSemaphoreProperties' 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) --@@ -476,14 +482,17 @@ -- | VkSemaphoreTypeCreateInfo - Structure specifying the type of a newly -- created semaphore ----- == Valid Usage (Implicit)+-- = Description ----- -   #VUID-VkSemaphoreTypeCreateInfo-sType-sType# @sType@ /must/ be---     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO'+-- To create a semaphore of a specific type, add a+-- 'SemaphoreTypeCreateInfo' structure to the+-- 'Vulkan.Core10.QueueSemaphore.SemaphoreCreateInfo'::@pNext@ chain. ----- -   #VUID-VkSemaphoreTypeCreateInfo-semaphoreType-parameter#---     @semaphoreType@ /must/ be a valid---     'Vulkan.Core12.Enums.SemaphoreType.SemaphoreType' value+-- If no 'SemaphoreTypeCreateInfo' structure is included in the @pNext@+-- chain of 'Vulkan.Core10.QueueSemaphore.SemaphoreCreateInfo', then the+-- created semaphore will have a default+-- 'Vulkan.Core12.Enums.SemaphoreType.SemaphoreType' of+-- 'Vulkan.Core12.Enums.SemaphoreType.SEMAPHORE_TYPE_BINARY'. -- -- == Valid Usage --@@ -497,12 +506,15 @@ --     'Vulkan.Core12.Enums.SemaphoreType.SEMAPHORE_TYPE_BINARY', --     @initialValue@ /must/ be zero ----- If no 'SemaphoreTypeCreateInfo' structure is included in the @pNext@--- chain of 'Vulkan.Core10.QueueSemaphore.SemaphoreCreateInfo', then the--- created semaphore will have a default--- 'Vulkan.Core12.Enums.SemaphoreType.SemaphoreType' of--- 'Vulkan.Core12.Enums.SemaphoreType.SEMAPHORE_TYPE_BINARY'.+-- == Valid Usage (Implicit) --+-- -   #VUID-VkSemaphoreTypeCreateInfo-sType-sType# @sType@ /must/ be+--     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO'+--+-- -   #VUID-VkSemaphoreTypeCreateInfo-semaphoreType-parameter#+--     @semaphoreType@ /must/ be a valid+--     'Vulkan.Core12.Enums.SemaphoreType.SemaphoreType' value+-- -- = See Also -- -- 'Vulkan.Core12.Enums.SemaphoreType.SemaphoreType',@@ -594,17 +606,17 @@   { -- | @waitSemaphoreValueCount@ is the number of semaphore wait values     -- specified in @pWaitSemaphoreValues@.     waitSemaphoreValueCount :: Word32-  , -- | @pWaitSemaphoreValues@ is an array of length @waitSemaphoreValueCount@-    -- containing values for the corresponding semaphores in+  , -- | @pWaitSemaphoreValues@ is a pointer to an array of+    -- @waitSemaphoreValueCount@ values for the corresponding semaphores in     -- 'Vulkan.Core10.Queue.SubmitInfo'::@pWaitSemaphores@ to wait for.     waitSemaphoreValues :: Vector Word64   , -- | @signalSemaphoreValueCount@ is the number of semaphore signal values     -- specified in @pSignalSemaphoreValues@.     signalSemaphoreValueCount :: Word32-  , -- | @pSignalSemaphoreValues@ is an array of length-    -- @signalSemaphoreValueCount@ containing values for the corresponding-    -- semaphores in 'Vulkan.Core10.Queue.SubmitInfo'::@pSignalSemaphores@ to-    -- set when signaled.+  , -- | @pSignalSemaphoreValues@ is a pointer to an array+    -- @signalSemaphoreValueCount@ values for the corresponding semaphores in+    -- 'Vulkan.Core10.Queue.SubmitInfo'::@pSignalSemaphores@ to set when+    -- signaled.     signalSemaphoreValues :: Vector Word64   }   deriving (Typeable)
src/Vulkan/Core12/Promoted_From_VK_KHR_uniform_buffer_standard_layout.hs view
@@ -31,18 +31,20 @@ -- -- = Members ----- The members of the 'PhysicalDeviceUniformBufferStandardLayoutFeatures'--- structure describe the following features:+-- This structure describes the following feature: -- -- = Description -- -- If the 'PhysicalDeviceUniformBufferStandardLayoutFeatures' structure is--- included in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- it is filled with values indicating whether the feature is supported.--- 'PhysicalDeviceUniformBufferStandardLayoutFeatures' /can/ also be--- included in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo'--- to enable this feature.+-- 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. 'PhysicalDeviceUniformBufferStandardLayoutFeatures' /can/+-- also be used in the @pNext@ chain of+-- 'Vulkan.Core10.Device.DeviceCreateInfo' to selectively enable these+-- features. -- -- == Valid Usage (Implicit) --
src/Vulkan/Core12/Promoted_From_VK_KHR_vulkan_memory_model.hs view
@@ -29,6 +29,25 @@ -- | VkPhysicalDeviceVulkanMemoryModelFeatures - Structure describing -- features supported by the memory model --+-- = Members+--+-- This structure describes the following features:+--+-- = Description+--+-- If the+-- 'Vulkan.Extensions.VK_KHR_vulkan_memory_model.PhysicalDeviceVulkanMemoryModelFeaturesKHR'+-- 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.+-- 'Vulkan.Extensions.VK_KHR_vulkan_memory_model.PhysicalDeviceVulkanMemoryModelFeaturesKHR'+-- /can/ also be used in the @pNext@ chain of+-- 'Vulkan.Core10.Device.DeviceCreateInfo' to selectively enable these+-- features.+-- -- == Valid Usage (Implicit) -- -- = See Also
src/Vulkan/Dynamic.hs view
@@ -89,6 +89,11 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_copy_commands2 (CopyImageInfo2KHR) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_copy_commands2 (CopyImageToBufferInfo2KHR) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_acceleration_structure (CopyMemoryToAccelerationStructureInfoKHR)+import {-# SOURCE #-} Vulkan.Extensions.VK_NVX_binary_import (CuFunctionCreateInfoNVX)+import {-# SOURCE #-} Vulkan.Extensions.Handles (CuFunctionNVX)+import {-# SOURCE #-} Vulkan.Extensions.VK_NVX_binary_import (CuLaunchInfoNVX)+import {-# SOURCE #-} Vulkan.Extensions.VK_NVX_binary_import (CuModuleCreateInfoNVX)+import {-# SOURCE #-} Vulkan.Extensions.Handles (CuModuleNVX) import {-# SOURCE #-} Vulkan.Core10.Enums.CullModeFlagBits (CullModeFlags) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_debug_marker (DebugMarkerMarkerInfoEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_debug_marker (DebugMarkerObjectNameInfoEXT)@@ -211,6 +216,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_INTEL_performance_query (InitializePerformanceApiInfoINTEL) import {-# SOURCE #-} Vulkan.Core10.Handles (Instance_T) import {-# SOURCE #-} Vulkan.Core10.LayerDiscovery (LayerProperties)+import {-# SOURCE #-} Vulkan.Core10.Enums.LogicOp (LogicOp) import {-# SOURCE #-} Vulkan.Extensions.VK_MVK_macos_surface (MacOSSurfaceCreateInfoMVK) import {-# SOURCE #-} Vulkan.Core10.Memory (MappedMemoryRange) import {-# SOURCE #-} Vulkan.Core10.Memory (MemoryAllocateInfo)@@ -346,6 +352,8 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_calibrated_timestamps (TimeDomainEXT) 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)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state (VertexInputBindingDescription2EXT) import {-# SOURCE #-} Vulkan.Extensions.VK_NN_vi_surface (ViSurfaceCreateInfoNN) import {-# SOURCE #-} Vulkan.Core10.Pipeline (Viewport) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_clip_space_w_scaling (ViewportWScalingNV)@@ -962,6 +970,11 @@   , pVkCmdSetDepthBoundsTestEnableEXT :: FunPtr (Ptr CommandBuffer_T -> ("depthBoundsTestEnable" ::: Bool32) -> IO ())   , pVkCmdSetStencilTestEnableEXT :: FunPtr (Ptr CommandBuffer_T -> ("stencilTestEnable" ::: Bool32) -> IO ())   , pVkCmdSetStencilOpEXT :: FunPtr (Ptr CommandBuffer_T -> ("faceMask" ::: StencilFaceFlags) -> ("failOp" ::: StencilOp) -> ("passOp" ::: StencilOp) -> ("depthFailOp" ::: StencilOp) -> CompareOp -> IO ())+  , pVkCmdSetPatchControlPointsEXT :: FunPtr (Ptr CommandBuffer_T -> ("patchControlPoints" ::: Word32) -> IO ())+  , pVkCmdSetRasterizerDiscardEnableEXT :: FunPtr (Ptr CommandBuffer_T -> ("rasterizerDiscardEnable" ::: Bool32) -> IO ())+  , pVkCmdSetDepthBiasEnableEXT :: FunPtr (Ptr CommandBuffer_T -> ("depthBiasEnable" ::: Bool32) -> IO ())+  , pVkCmdSetLogicOpEXT :: FunPtr (Ptr CommandBuffer_T -> LogicOp -> IO ())+  , pVkCmdSetPrimitiveRestartEnableEXT :: FunPtr (Ptr CommandBuffer_T -> ("primitiveRestartEnable" ::: Bool32) -> IO ())   , pVkCreatePrivateDataSlotEXT :: FunPtr (Ptr Device_T -> ("pCreateInfo" ::: Ptr PrivateDataSlotCreateInfoEXT) -> ("pAllocator" ::: Ptr AllocationCallbacks) -> ("pPrivateDataSlot" ::: Ptr PrivateDataSlotEXT) -> IO Result)   , pVkDestroyPrivateDataSlotEXT :: FunPtr (Ptr Device_T -> PrivateDataSlotEXT -> ("pAllocator" ::: Ptr AllocationCallbacks) -> IO ())   , pVkSetPrivateDataEXT :: FunPtr (Ptr Device_T -> ObjectType -> ("objectHandle" ::: Word64) -> PrivateDataSlotEXT -> ("data" ::: Word64) -> IO Result)@@ -975,6 +988,8 @@   , pVkCmdSetFragmentShadingRateKHR :: FunPtr (Ptr CommandBuffer_T -> ("pFragmentSize" ::: Ptr Extent2D) -> ("combinerOps" ::: Ptr (FixedArray 2 FragmentShadingRateCombinerOpKHR)) -> IO ())   , pVkCmdSetFragmentShadingRateEnumNV :: FunPtr (Ptr CommandBuffer_T -> FragmentShadingRateNV -> ("combinerOps" ::: Ptr (FixedArray 2 FragmentShadingRateCombinerOpKHR)) -> IO ())   , pVkGetAccelerationStructureBuildSizesKHR :: FunPtr (Ptr Device_T -> AccelerationStructureBuildTypeKHR -> ("pBuildInfo" ::: Ptr AccelerationStructureBuildGeometryInfoKHR) -> ("pMaxPrimitiveCounts" ::: Ptr Word32) -> ("pSizeInfo" ::: Ptr AccelerationStructureBuildSizesInfoKHR) -> IO ())+  , pVkCmdSetVertexInputEXT :: FunPtr (Ptr CommandBuffer_T -> ("vertexBindingDescriptionCount" ::: Word32) -> ("pVertexBindingDescriptions" ::: Ptr VertexInputBindingDescription2EXT) -> ("vertexAttributeDescriptionCount" ::: Word32) -> ("pVertexAttributeDescriptions" ::: Ptr VertexInputAttributeDescription2EXT) -> IO ())+  , pVkCmdSetColorWriteEnableEXT :: FunPtr (Ptr CommandBuffer_T -> ("attachmentCount" ::: Word32) -> ("pColorWriteEnables" ::: Ptr Bool32) -> IO ())   , pVkCmdSetEvent2KHR :: FunPtr (Ptr CommandBuffer_T -> Event -> ("pDependencyInfo" ::: Ptr DependencyInfoKHR) -> IO ())   , pVkCmdResetEvent2KHR :: FunPtr (Ptr CommandBuffer_T -> Event -> ("stageMask" ::: PipelineStageFlags2KHR) -> IO ())   , pVkCmdWaitEvents2KHR :: FunPtr (Ptr CommandBuffer_T -> ("eventCount" ::: Word32) -> ("pEvents" ::: Ptr Event) -> ("pDependencyInfos" ::: Ptr DependencyInfoKHR) -> IO ())@@ -983,6 +998,11 @@   , pVkCmdWriteTimestamp2KHR :: FunPtr (Ptr CommandBuffer_T -> PipelineStageFlags2KHR -> QueryPool -> ("query" ::: Word32) -> IO ())   , pVkCmdWriteBufferMarker2AMD :: FunPtr (Ptr CommandBuffer_T -> PipelineStageFlags2KHR -> ("dstBuffer" ::: Buffer) -> ("dstOffset" ::: DeviceSize) -> ("marker" ::: Word32) -> IO ())   , pVkGetQueueCheckpointData2NV :: FunPtr (Ptr Queue_T -> ("pCheckpointDataCount" ::: Ptr Word32) -> ("pCheckpointData" ::: Ptr CheckpointData2NV) -> IO ())+  , pVkCreateCuModuleNVX :: FunPtr (Ptr Device_T -> ("pCreateInfo" ::: Ptr CuModuleCreateInfoNVX) -> ("pAllocator" ::: Ptr AllocationCallbacks) -> ("pModule" ::: Ptr CuModuleNVX) -> IO Result)+  , pVkCreateCuFunctionNVX :: FunPtr (Ptr Device_T -> ("pCreateInfo" ::: Ptr CuFunctionCreateInfoNVX) -> ("pAllocator" ::: Ptr AllocationCallbacks) -> ("pFunction" ::: Ptr CuFunctionNVX) -> IO Result)+  , pVkDestroyCuModuleNVX :: FunPtr (Ptr Device_T -> CuModuleNVX -> ("pAllocator" ::: Ptr AllocationCallbacks) -> IO ())+  , pVkDestroyCuFunctionNVX :: FunPtr (Ptr Device_T -> CuFunctionNVX -> ("pAllocator" ::: Ptr AllocationCallbacks) -> IO ())+  , pVkCmdCuLaunchKernelNVX :: FunPtr (Ptr CommandBuffer_T -> ("pLaunchInfo" ::: Ptr CuLaunchInfoNVX) -> IO ())   }  deriving instance Eq DeviceCmds@@ -1030,7 +1050,8 @@     nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr     nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr     nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr-    nullFunPtr+    nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr+    nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr  foreign import ccall #if !defined(SAFE_FOREIGN_CALLS)@@ -1358,6 +1379,11 @@   vkCmdSetDepthBoundsTestEnableEXT <- getDeviceProcAddr' handle (Ptr "vkCmdSetDepthBoundsTestEnableEXT"#)   vkCmdSetStencilTestEnableEXT <- getDeviceProcAddr' handle (Ptr "vkCmdSetStencilTestEnableEXT"#)   vkCmdSetStencilOpEXT <- getDeviceProcAddr' handle (Ptr "vkCmdSetStencilOpEXT"#)+  vkCmdSetPatchControlPointsEXT <- getDeviceProcAddr' handle (Ptr "vkCmdSetPatchControlPointsEXT"#)+  vkCmdSetRasterizerDiscardEnableEXT <- getDeviceProcAddr' handle (Ptr "vkCmdSetRasterizerDiscardEnableEXT"#)+  vkCmdSetDepthBiasEnableEXT <- getDeviceProcAddr' handle (Ptr "vkCmdSetDepthBiasEnableEXT"#)+  vkCmdSetLogicOpEXT <- getDeviceProcAddr' handle (Ptr "vkCmdSetLogicOpEXT"#)+  vkCmdSetPrimitiveRestartEnableEXT <- getDeviceProcAddr' handle (Ptr "vkCmdSetPrimitiveRestartEnableEXT"#)   vkCreatePrivateDataSlotEXT <- getDeviceProcAddr' handle (Ptr "vkCreatePrivateDataSlotEXT"#)   vkDestroyPrivateDataSlotEXT <- getDeviceProcAddr' handle (Ptr "vkDestroyPrivateDataSlotEXT"#)   vkSetPrivateDataEXT <- getDeviceProcAddr' handle (Ptr "vkSetPrivateDataEXT"#)@@ -1371,6 +1397,8 @@   vkCmdSetFragmentShadingRateKHR <- getDeviceProcAddr' handle (Ptr "vkCmdSetFragmentShadingRateKHR"#)   vkCmdSetFragmentShadingRateEnumNV <- getDeviceProcAddr' handle (Ptr "vkCmdSetFragmentShadingRateEnumNV"#)   vkGetAccelerationStructureBuildSizesKHR <- getDeviceProcAddr' handle (Ptr "vkGetAccelerationStructureBuildSizesKHR"#)+  vkCmdSetVertexInputEXT <- getDeviceProcAddr' handle (Ptr "vkCmdSetVertexInputEXT"#)+  vkCmdSetColorWriteEnableEXT <- getDeviceProcAddr' handle (Ptr "vkCmdSetColorWriteEnableEXT"#)   vkCmdSetEvent2KHR <- getDeviceProcAddr' handle (Ptr "vkCmdSetEvent2KHR"#)   vkCmdResetEvent2KHR <- getDeviceProcAddr' handle (Ptr "vkCmdResetEvent2KHR"#)   vkCmdWaitEvents2KHR <- getDeviceProcAddr' handle (Ptr "vkCmdWaitEvents2KHR"#)@@ -1379,6 +1407,11 @@   vkCmdWriteTimestamp2KHR <- getDeviceProcAddr' handle (Ptr "vkCmdWriteTimestamp2KHR"#)   vkCmdWriteBufferMarker2AMD <- getDeviceProcAddr' handle (Ptr "vkCmdWriteBufferMarker2AMD"#)   vkGetQueueCheckpointData2NV <- getDeviceProcAddr' handle (Ptr "vkGetQueueCheckpointData2NV"#)+  vkCreateCuModuleNVX <- getDeviceProcAddr' handle (Ptr "vkCreateCuModuleNVX"#)+  vkCreateCuFunctionNVX <- getDeviceProcAddr' handle (Ptr "vkCreateCuFunctionNVX"#)+  vkDestroyCuModuleNVX <- getDeviceProcAddr' handle (Ptr "vkDestroyCuModuleNVX"#)+  vkDestroyCuFunctionNVX <- getDeviceProcAddr' handle (Ptr "vkDestroyCuFunctionNVX"#)+  vkCmdCuLaunchKernelNVX <- getDeviceProcAddr' handle (Ptr "vkCmdCuLaunchKernelNVX"#)   pure $ DeviceCmds handle     (castFunPtr @_ @(Ptr Device_T -> ("pName" ::: Ptr CChar) -> IO PFN_vkVoidFunction) vkGetDeviceProcAddr)     (castFunPtr @_ @(Ptr Device_T -> ("pAllocator" ::: Ptr AllocationCallbacks) -> IO ()) vkDestroyDevice)@@ -1687,6 +1720,11 @@     (castFunPtr @_ @(Ptr CommandBuffer_T -> ("depthBoundsTestEnable" ::: Bool32) -> IO ()) vkCmdSetDepthBoundsTestEnableEXT)     (castFunPtr @_ @(Ptr CommandBuffer_T -> ("stencilTestEnable" ::: Bool32) -> IO ()) vkCmdSetStencilTestEnableEXT)     (castFunPtr @_ @(Ptr CommandBuffer_T -> ("faceMask" ::: StencilFaceFlags) -> ("failOp" ::: StencilOp) -> ("passOp" ::: StencilOp) -> ("depthFailOp" ::: StencilOp) -> CompareOp -> IO ()) vkCmdSetStencilOpEXT)+    (castFunPtr @_ @(Ptr CommandBuffer_T -> ("patchControlPoints" ::: Word32) -> IO ()) vkCmdSetPatchControlPointsEXT)+    (castFunPtr @_ @(Ptr CommandBuffer_T -> ("rasterizerDiscardEnable" ::: Bool32) -> IO ()) vkCmdSetRasterizerDiscardEnableEXT)+    (castFunPtr @_ @(Ptr CommandBuffer_T -> ("depthBiasEnable" ::: Bool32) -> IO ()) vkCmdSetDepthBiasEnableEXT)+    (castFunPtr @_ @(Ptr CommandBuffer_T -> LogicOp -> IO ()) vkCmdSetLogicOpEXT)+    (castFunPtr @_ @(Ptr CommandBuffer_T -> ("primitiveRestartEnable" ::: Bool32) -> IO ()) vkCmdSetPrimitiveRestartEnableEXT)     (castFunPtr @_ @(Ptr Device_T -> ("pCreateInfo" ::: Ptr PrivateDataSlotCreateInfoEXT) -> ("pAllocator" ::: Ptr AllocationCallbacks) -> ("pPrivateDataSlot" ::: Ptr PrivateDataSlotEXT) -> IO Result) vkCreatePrivateDataSlotEXT)     (castFunPtr @_ @(Ptr Device_T -> PrivateDataSlotEXT -> ("pAllocator" ::: Ptr AllocationCallbacks) -> IO ()) vkDestroyPrivateDataSlotEXT)     (castFunPtr @_ @(Ptr Device_T -> ObjectType -> ("objectHandle" ::: Word64) -> PrivateDataSlotEXT -> ("data" ::: Word64) -> IO Result) vkSetPrivateDataEXT)@@ -1700,6 +1738,8 @@     (castFunPtr @_ @(Ptr CommandBuffer_T -> ("pFragmentSize" ::: Ptr Extent2D) -> ("combinerOps" ::: Ptr (FixedArray 2 FragmentShadingRateCombinerOpKHR)) -> IO ()) vkCmdSetFragmentShadingRateKHR)     (castFunPtr @_ @(Ptr CommandBuffer_T -> FragmentShadingRateNV -> ("combinerOps" ::: Ptr (FixedArray 2 FragmentShadingRateCombinerOpKHR)) -> IO ()) vkCmdSetFragmentShadingRateEnumNV)     (castFunPtr @_ @(Ptr Device_T -> AccelerationStructureBuildTypeKHR -> ("pBuildInfo" ::: Ptr AccelerationStructureBuildGeometryInfoKHR) -> ("pMaxPrimitiveCounts" ::: Ptr Word32) -> ("pSizeInfo" ::: Ptr AccelerationStructureBuildSizesInfoKHR) -> IO ()) vkGetAccelerationStructureBuildSizesKHR)+    (castFunPtr @_ @(Ptr CommandBuffer_T -> ("vertexBindingDescriptionCount" ::: Word32) -> ("pVertexBindingDescriptions" ::: Ptr VertexInputBindingDescription2EXT) -> ("vertexAttributeDescriptionCount" ::: Word32) -> ("pVertexAttributeDescriptions" ::: Ptr VertexInputAttributeDescription2EXT) -> IO ()) vkCmdSetVertexInputEXT)+    (castFunPtr @_ @(Ptr CommandBuffer_T -> ("attachmentCount" ::: Word32) -> ("pColorWriteEnables" ::: Ptr Bool32) -> IO ()) vkCmdSetColorWriteEnableEXT)     (castFunPtr @_ @(Ptr CommandBuffer_T -> Event -> ("pDependencyInfo" ::: Ptr DependencyInfoKHR) -> IO ()) vkCmdSetEvent2KHR)     (castFunPtr @_ @(Ptr CommandBuffer_T -> Event -> ("stageMask" ::: PipelineStageFlags2KHR) -> IO ()) vkCmdResetEvent2KHR)     (castFunPtr @_ @(Ptr CommandBuffer_T -> ("eventCount" ::: Word32) -> ("pEvents" ::: Ptr Event) -> ("pDependencyInfos" ::: Ptr DependencyInfoKHR) -> IO ()) vkCmdWaitEvents2KHR)@@ -1708,4 +1748,9 @@     (castFunPtr @_ @(Ptr CommandBuffer_T -> PipelineStageFlags2KHR -> QueryPool -> ("query" ::: Word32) -> IO ()) vkCmdWriteTimestamp2KHR)     (castFunPtr @_ @(Ptr CommandBuffer_T -> PipelineStageFlags2KHR -> ("dstBuffer" ::: Buffer) -> ("dstOffset" ::: DeviceSize) -> ("marker" ::: Word32) -> IO ()) vkCmdWriteBufferMarker2AMD)     (castFunPtr @_ @(Ptr Queue_T -> ("pCheckpointDataCount" ::: Ptr Word32) -> ("pCheckpointData" ::: Ptr CheckpointData2NV) -> IO ()) vkGetQueueCheckpointData2NV)+    (castFunPtr @_ @(Ptr Device_T -> ("pCreateInfo" ::: Ptr CuModuleCreateInfoNVX) -> ("pAllocator" ::: Ptr AllocationCallbacks) -> ("pModule" ::: Ptr CuModuleNVX) -> IO Result) vkCreateCuModuleNVX)+    (castFunPtr @_ @(Ptr Device_T -> ("pCreateInfo" ::: Ptr CuFunctionCreateInfoNVX) -> ("pAllocator" ::: Ptr AllocationCallbacks) -> ("pFunction" ::: Ptr CuFunctionNVX) -> IO Result) vkCreateCuFunctionNVX)+    (castFunPtr @_ @(Ptr Device_T -> CuModuleNVX -> ("pAllocator" ::: Ptr AllocationCallbacks) -> IO ()) vkDestroyCuModuleNVX)+    (castFunPtr @_ @(Ptr Device_T -> CuFunctionNVX -> ("pAllocator" ::: Ptr AllocationCallbacks) -> IO ()) vkDestroyCuFunctionNVX)+    (castFunPtr @_ @(Ptr CommandBuffer_T -> ("pLaunchInfo" ::: Ptr CuLaunchInfoNVX) -> IO ()) vkCmdCuLaunchKernelNVX) 
src/Vulkan/Extensions.hs view
@@ -30,6 +30,7 @@                           , module Vulkan.Extensions.VK_EXT_blend_operation_advanced                           , module Vulkan.Extensions.VK_EXT_buffer_device_address                           , module Vulkan.Extensions.VK_EXT_calibrated_timestamps+                          , module Vulkan.Extensions.VK_EXT_color_write_enable                           , module Vulkan.Extensions.VK_EXT_conditional_rendering                           , module Vulkan.Extensions.VK_EXT_conservative_rasterization                           , module Vulkan.Extensions.VK_EXT_custom_border_color@@ -46,6 +47,7 @@                           , module Vulkan.Extensions.VK_EXT_display_control                           , module Vulkan.Extensions.VK_EXT_display_surface_counter                           , module Vulkan.Extensions.VK_EXT_extended_dynamic_state+                          , module Vulkan.Extensions.VK_EXT_extended_dynamic_state2                           , module Vulkan.Extensions.VK_EXT_external_memory_dma_buf                           , module Vulkan.Extensions.VK_EXT_external_memory_host                           , module Vulkan.Extensions.VK_EXT_filter_cubic@@ -70,6 +72,7 @@                           , module Vulkan.Extensions.VK_EXT_pipeline_creation_feedback                           , module Vulkan.Extensions.VK_EXT_post_depth_coverage                           , module Vulkan.Extensions.VK_EXT_private_data+                          , module Vulkan.Extensions.VK_EXT_provoking_vertex                           , module Vulkan.Extensions.VK_EXT_queue_family_foreign                           , module Vulkan.Extensions.VK_EXT_robustness2                           , module Vulkan.Extensions.VK_EXT_sample_locations@@ -93,6 +96,8 @@                           , module Vulkan.Extensions.VK_EXT_validation_features                           , module Vulkan.Extensions.VK_EXT_validation_flags                           , module Vulkan.Extensions.VK_EXT_vertex_attribute_divisor+                          , module Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state+                          , module Vulkan.Extensions.VK_EXT_ycbcr_2plane_444_formats                           , module Vulkan.Extensions.VK_EXT_ycbcr_image_arrays                           , module Vulkan.Extensions.VK_FUCHSIA_external_memory                           , module Vulkan.Extensions.VK_FUCHSIA_external_semaphore@@ -190,6 +195,7 @@                           , module Vulkan.Extensions.VK_MVK_ios_surface                           , module Vulkan.Extensions.VK_MVK_macos_surface                           , module Vulkan.Extensions.VK_NN_vi_surface+                          , module Vulkan.Extensions.VK_NVX_binary_import                           , module Vulkan.Extensions.VK_NVX_image_view_handle                           , module Vulkan.Extensions.VK_NVX_multiview_per_view_attributes                           , module Vulkan.Extensions.VK_NV_acquire_winrt_display@@ -213,6 +219,7 @@                           , module Vulkan.Extensions.VK_NV_framebuffer_mixed_samples                           , module Vulkan.Extensions.VK_NV_geometry_shader_passthrough                           , module Vulkan.Extensions.VK_NV_glsl_shader+                          , module Vulkan.Extensions.VK_NV_inherited_viewport_scissor                           , module Vulkan.Extensions.VK_NV_mesh_shader                           , module Vulkan.Extensions.VK_NV_ray_tracing                           , module Vulkan.Extensions.VK_NV_representative_fragment_test@@ -262,6 +269,7 @@ import Vulkan.Extensions.VK_EXT_blend_operation_advanced import Vulkan.Extensions.VK_EXT_buffer_device_address import Vulkan.Extensions.VK_EXT_calibrated_timestamps+import Vulkan.Extensions.VK_EXT_color_write_enable import Vulkan.Extensions.VK_EXT_conditional_rendering import Vulkan.Extensions.VK_EXT_conservative_rasterization import Vulkan.Extensions.VK_EXT_custom_border_color@@ -278,6 +286,7 @@ import Vulkan.Extensions.VK_EXT_display_control import Vulkan.Extensions.VK_EXT_display_surface_counter import Vulkan.Extensions.VK_EXT_extended_dynamic_state+import Vulkan.Extensions.VK_EXT_extended_dynamic_state2 import Vulkan.Extensions.VK_EXT_external_memory_dma_buf import Vulkan.Extensions.VK_EXT_external_memory_host import Vulkan.Extensions.VK_EXT_filter_cubic@@ -302,6 +311,7 @@ import Vulkan.Extensions.VK_EXT_pipeline_creation_feedback import Vulkan.Extensions.VK_EXT_post_depth_coverage import Vulkan.Extensions.VK_EXT_private_data+import Vulkan.Extensions.VK_EXT_provoking_vertex import Vulkan.Extensions.VK_EXT_queue_family_foreign import Vulkan.Extensions.VK_EXT_robustness2 import Vulkan.Extensions.VK_EXT_sample_locations@@ -325,6 +335,8 @@ import Vulkan.Extensions.VK_EXT_validation_features import Vulkan.Extensions.VK_EXT_validation_flags import Vulkan.Extensions.VK_EXT_vertex_attribute_divisor+import Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state+import Vulkan.Extensions.VK_EXT_ycbcr_2plane_444_formats import Vulkan.Extensions.VK_EXT_ycbcr_image_arrays import Vulkan.Extensions.VK_FUCHSIA_external_memory import Vulkan.Extensions.VK_FUCHSIA_external_semaphore@@ -422,6 +434,7 @@ import Vulkan.Extensions.VK_MVK_ios_surface import Vulkan.Extensions.VK_MVK_macos_surface import Vulkan.Extensions.VK_NN_vi_surface+import Vulkan.Extensions.VK_NVX_binary_import import Vulkan.Extensions.VK_NVX_image_view_handle import Vulkan.Extensions.VK_NVX_multiview_per_view_attributes import Vulkan.Extensions.VK_NV_acquire_winrt_display@@ -445,6 +458,7 @@ import Vulkan.Extensions.VK_NV_framebuffer_mixed_samples import Vulkan.Extensions.VK_NV_geometry_shader_passthrough import Vulkan.Extensions.VK_NV_glsl_shader+import Vulkan.Extensions.VK_NV_inherited_viewport_scissor import Vulkan.Extensions.VK_NV_mesh_shader import Vulkan.Extensions.VK_NV_ray_tracing import Vulkan.Extensions.VK_NV_representative_fragment_test
src/Vulkan/Extensions/Dependencies.hs view
@@ -17,6 +17,7 @@ import Vulkan.Extensions.VK_EXT_acquire_xlib_display (pattern EXT_ACQUIRE_XLIB_DISPLAY_EXTENSION_NAME) import Vulkan.Extensions.VK_EXT_astc_decode_mode (pattern EXT_ASTC_DECODE_MODE_EXTENSION_NAME) import Vulkan.Extensions.VK_EXT_buffer_device_address (pattern EXT_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME)+import Vulkan.Extensions.VK_EXT_color_write_enable (pattern EXT_COLOR_WRITE_ENABLE_EXTENSION_NAME) import Vulkan.Extensions.VK_EXT_conservative_rasterization (pattern EXT_CONSERVATIVE_RASTERIZATION_EXTENSION_NAME) import Vulkan.Extensions.VK_EXT_debug_marker (pattern EXT_DEBUG_MARKER_EXTENSION_NAME) import Vulkan.Extensions.VK_EXT_debug_report (pattern EXT_DEBUG_REPORT_EXTENSION_NAME)@@ -27,6 +28,7 @@ import Vulkan.Extensions.VK_EXT_discard_rectangles (pattern EXT_DISCARD_RECTANGLES_EXTENSION_NAME) import Vulkan.Extensions.VK_EXT_display_control (pattern EXT_DISPLAY_CONTROL_EXTENSION_NAME) import Vulkan.Extensions.VK_EXT_display_surface_counter (pattern EXT_DISPLAY_SURFACE_COUNTER_EXTENSION_NAME)+import Vulkan.Extensions.VK_EXT_extended_dynamic_state2 (pattern EXT_EXTENDED_DYNAMIC_STATE_2_EXTENSION_NAME) import Vulkan.Extensions.VK_EXT_extended_dynamic_state (pattern EXT_EXTENDED_DYNAMIC_STATE_EXTENSION_NAME) import Vulkan.Extensions.VK_EXT_external_memory_dma_buf (pattern EXT_EXTERNAL_MEMORY_DMA_BUF_EXTENSION_NAME) import Vulkan.Extensions.VK_EXT_external_memory_host (pattern EXT_EXTERNAL_MEMORY_HOST_EXTENSION_NAME)@@ -45,6 +47,7 @@ import Vulkan.Extensions.VK_EXT_memory_priority (pattern EXT_MEMORY_PRIORITY_EXTENSION_NAME) import Vulkan.Extensions.VK_EXT_metal_surface (pattern EXT_METAL_SURFACE_EXTENSION_NAME) import Vulkan.Extensions.VK_EXT_pci_bus_info (pattern EXT_PCI_BUS_INFO_EXTENSION_NAME)+import Vulkan.Extensions.VK_EXT_provoking_vertex (pattern EXT_PROVOKING_VERTEX_EXTENSION_NAME) import Vulkan.Extensions.VK_EXT_queue_family_foreign (pattern EXT_QUEUE_FAMILY_FOREIGN_EXTENSION_NAME) import Vulkan.Extensions.VK_EXT_sampler_filter_minmax (pattern EXT_SAMPLER_FILTER_MINMAX_EXTENSION_NAME) import Vulkan.Extensions.VK_EXT_sample_locations (pattern EXT_SAMPLE_LOCATIONS_EXTENSION_NAME)@@ -58,6 +61,8 @@ import Vulkan.Extensions.VK_EXT_texture_compression_astc_hdr (pattern EXT_TEXTURE_COMPRESSION_ASTC_HDR_EXTENSION_NAME) import Vulkan.Extensions.VK_EXT_transform_feedback (pattern EXT_TRANSFORM_FEEDBACK_EXTENSION_NAME) import Vulkan.Extensions.VK_EXT_vertex_attribute_divisor (pattern EXT_VERTEX_ATTRIBUTE_DIVISOR_EXTENSION_NAME)+import Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state (pattern EXT_VERTEX_INPUT_DYNAMIC_STATE_EXTENSION_NAME)+import Vulkan.Extensions.VK_EXT_ycbcr_2plane_444_formats (pattern EXT_YCBCR_2PLANE_444_FORMATS_EXTENSION_NAME) import Vulkan.Extensions.VK_EXT_ycbcr_image_arrays (pattern EXT_YCBCR_IMAGE_ARRAYS_EXTENSION_NAME) import Vulkan.Extensions.VK_FUCHSIA_external_memory (pattern FUCHSIA_EXTERNAL_MEMORY_EXTENSION_NAME) import Vulkan.Extensions.VK_FUCHSIA_external_semaphore (pattern FUCHSIA_EXTERNAL_SEMAPHORE_EXTENSION_NAME)@@ -138,7 +143,7 @@ import Vulkan.Extensions.VK_KHR_xcb_surface (pattern KHR_XCB_SURFACE_EXTENSION_NAME) import Vulkan.Extensions.VK_KHR_xlib_surface (pattern KHR_XLIB_SURFACE_EXTENSION_NAME) import Vulkan.Extensions.VK_KHR_zero_initialize_workgroup_memory (pattern KHR_ZERO_INITIALIZE_WORKGROUP_MEMORY_EXTENSION_NAME)-import Vulkan.Version (pattern MAKE_VERSION)+import Vulkan.Version (pattern MAKE_API_VERSION) import Vulkan.Extensions.VK_MVK_ios_surface (pattern MVK_IOS_SURFACE_EXTENSION_NAME) import Vulkan.Extensions.VK_MVK_macos_surface (pattern MVK_MACOS_SURFACE_EXTENSION_NAME) import Vulkan.Extensions.VK_NN_vi_surface (pattern NN_VI_SURFACE_EXTENSION_NAME)@@ -440,6 +445,7 @@     , KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME     ]   KHR_UNIFORM_BUFFER_STANDARD_LAYOUT_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]+  EXT_PROVOKING_VERTEX_EXTENSION_NAME               -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]   EXT_FULL_SCREEN_EXCLUSIVE_EXTENSION_NAME ->     [ KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME     , KHR_SURFACE_EXTENSION_NAME@@ -467,6 +473,13 @@     , KHR_MULTIVIEW_EXTENSION_NAME     , KHR_MAINTENANCE2_EXTENSION_NAME     ]+  EXT_YCBCR_2PLANE_444_FORMATS_EXTENSION_NAME ->+    [ KHR_SAMPLER_YCBCR_CONVERSION_EXTENSION_NAME+    , KHR_MAINTENANCE1_EXTENSION_NAME+    , KHR_BIND_MEMORY_2_EXTENSION_NAME+    , KHR_GET_MEMORY_REQUIREMENTS_2_EXTENSION_NAME+    , KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+    ]   EXT_FRAGMENT_DENSITY_MAP_2_EXTENSION_NAME ->     [EXT_FRAGMENT_DENSITY_MAP_EXTENSION_NAME, KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]   QCOM_ROTATED_COPY_COMMANDS_EXTENSION_NAME ->@@ -479,6 +492,7 @@   EXT_DIRECTFB_SURFACE_EXTENSION_NAME -> [KHR_SURFACE_EXTENSION_NAME]   VALVE_MUTABLE_DESCRIPTOR_TYPE_EXTENSION_NAME ->     [KHR_MAINTENANCE3_EXTENSION_NAME, KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]+  EXT_VERTEX_INPUT_DYNAMIC_STATE_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]   FUCHSIA_EXTERNAL_MEMORY_EXTENSION_NAME ->     [ KHR_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME     , KHR_EXTERNAL_MEMORY_EXTENSION_NAME@@ -489,21 +503,23 @@     , KHR_EXTERNAL_SEMAPHORE_EXTENSION_NAME     , KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME     ]+  EXT_EXTENDED_DYNAMIC_STATE_2_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]   QNX_SCREEN_SURFACE_EXTENSION_NAME -> [KHR_SURFACE_EXTENSION_NAME]+  EXT_COLOR_WRITE_ENABLE_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]   _ -> []  -- | The minimum required API version to use this extension extensionCoreRequirement :: ("extensionName" ::: ByteString) -> Word32 extensionCoreRequirement = \case-  KHR_ACCELERATION_STRUCTURE_EXTENSION_NAME -> MAKE_VERSION 1 1 0-  KHR_RAY_TRACING_PIPELINE_EXTENSION_NAME -> MAKE_VERSION 1 1 0-  KHR_RAY_QUERY_EXTENSION_NAME -> MAKE_VERSION 1 1 0-  NV_SHADER_SM_BUILTINS_EXTENSION_NAME -> MAKE_VERSION 1 1 0-  KHR_SHADER_SUBGROUP_EXTENDED_TYPES_EXTENSION_NAME -> MAKE_VERSION 1 1 0-  NV_SHADER_SUBGROUP_PARTITIONED_EXTENSION_NAME -> MAKE_VERSION 1 1 0-  EXT_SUBGROUP_SIZE_CONTROL_EXTENSION_NAME -> MAKE_VERSION 1 1 0-  KHR_SPIRV_1_4_EXTENSION_NAME -> MAKE_VERSION 1 1 0-  KHR_SURFACE_PROTECTED_CAPABILITIES_EXTENSION_NAME -> MAKE_VERSION 1 1 0-  NV_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME -> MAKE_VERSION 1 1 0+  KHR_ACCELERATION_STRUCTURE_EXTENSION_NAME -> MAKE_API_VERSION 1 1 0+  KHR_RAY_TRACING_PIPELINE_EXTENSION_NAME -> MAKE_API_VERSION 1 1 0+  KHR_RAY_QUERY_EXTENSION_NAME -> MAKE_API_VERSION 1 1 0+  NV_SHADER_SM_BUILTINS_EXTENSION_NAME -> MAKE_API_VERSION 1 1 0+  KHR_SHADER_SUBGROUP_EXTENDED_TYPES_EXTENSION_NAME -> MAKE_API_VERSION 1 1 0+  NV_SHADER_SUBGROUP_PARTITIONED_EXTENSION_NAME -> MAKE_API_VERSION 1 1 0+  EXT_SUBGROUP_SIZE_CONTROL_EXTENSION_NAME -> MAKE_API_VERSION 1 1 0+  KHR_SPIRV_1_4_EXTENSION_NAME -> MAKE_API_VERSION 1 1 0+  KHR_SURFACE_PROTECTED_CAPABILITIES_EXTENSION_NAME -> MAKE_API_VERSION 1 1 0+  NV_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME -> MAKE_API_VERSION 1 1 0   _                            -> API_VERSION_1_0 
src/Vulkan/Extensions/Handles.hs view
@@ -7,6 +7,8 @@                                   , PerformanceConfigurationINTEL(..)                                   , DeferredOperationKHR(..)                                   , PrivateDataSlotEXT(..)+                                  , CuModuleNVX(..)+                                  , CuFunctionNVX(..)                                   , DisplayKHR(..)                                   , DisplayModeKHR(..)                                   , SurfaceKHR(..)@@ -50,6 +52,8 @@ import Vulkan.Core10.APIConstants (IsHandle) import Vulkan.Core10.Enums.ObjectType (ObjectType(OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR)) import Vulkan.Core10.Enums.ObjectType (ObjectType(OBJECT_TYPE_ACCELERATION_STRUCTURE_NV))+import Vulkan.Core10.Enums.ObjectType (ObjectType(OBJECT_TYPE_CU_FUNCTION_NVX))+import Vulkan.Core10.Enums.ObjectType (ObjectType(OBJECT_TYPE_CU_MODULE_NVX)) import Vulkan.Core10.Enums.ObjectType (ObjectType(OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT)) import Vulkan.Core10.Enums.ObjectType (ObjectType(OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT)) import Vulkan.Core10.Enums.ObjectType (ObjectType(OBJECT_TYPE_DEFERRED_OPERATION_KHR))@@ -230,6 +234,26 @@   objectTypeAndHandle (PrivateDataSlotEXT h) = (OBJECT_TYPE_PRIVATE_DATA_SLOT_EXT, h) instance Show PrivateDataSlotEXT where   showsPrec p (PrivateDataSlotEXT x) = showParen (p >= 11) (showString "PrivateDataSlotEXT 0x" . showHex x)+++-- No documentation found for TopLevel "VkCuModuleNVX"+newtype CuModuleNVX = CuModuleNVX Word64+  deriving newtype (Eq, Ord, Storable, Zero)+  deriving anyclass (IsHandle)+instance HasObjectType CuModuleNVX where+  objectTypeAndHandle (CuModuleNVX h) = (OBJECT_TYPE_CU_MODULE_NVX, h)+instance Show CuModuleNVX where+  showsPrec p (CuModuleNVX x) = showParen (p >= 11) (showString "CuModuleNVX 0x" . showHex x)+++-- No documentation found for TopLevel "VkCuFunctionNVX"+newtype CuFunctionNVX = CuFunctionNVX Word64+  deriving newtype (Eq, Ord, Storable, Zero)+  deriving anyclass (IsHandle)+instance HasObjectType CuFunctionNVX where+  objectTypeAndHandle (CuFunctionNVX h) = (OBJECT_TYPE_CU_FUNCTION_NVX, h)+instance Show CuFunctionNVX where+  showsPrec p (CuFunctionNVX x) = showParen (p >= 11) (showString "CuFunctionNVX 0x" . showHex x)   -- | VkDisplayKHR - Opaque handle to a display object
src/Vulkan/Extensions/Handles.hs-boot view
@@ -2,6 +2,8 @@ -- No documentation found for Chapter "Handles" module Vulkan.Extensions.Handles  ( AccelerationStructureKHR                                   , AccelerationStructureNV+                                  , CuFunctionNVX+                                  , CuModuleNVX                                   , DebugReportCallbackEXT                                   , DebugUtilsMessengerEXT                                   , DeferredOperationKHR@@ -21,6 +23,12 @@   data AccelerationStructureNV+++data CuFunctionNVX+++data CuModuleNVX   data DebugReportCallbackEXT
src/Vulkan/Extensions/VK_AMD_buffer_marker.hs view
@@ -201,7 +201,7 @@ -- -   #VUID-vkCmdWriteBufferMarkerAMD-pipelineStage-04081# If the --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shading rate image> --     feature is not enabled, @pipelineStage@ /must/ not be---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV'+--     'Vulkan.Extensions.VK_NV_shading_rate_image.PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV' -- -- -   #VUID-vkCmdWriteBufferMarkerAMD-dstOffset-01798# @dstOffset@ /must/ --     be less than or equal to the size of @dstBuffer@ minus @4@@@ -274,10 +274,10 @@                         => -- | @commandBuffer@ is the command buffer into which the command will be                            -- recorded.                            CommandBuffer-                        -> -- | @pipelineStage@ is one of the-                           -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits'-                           -- values, specifying the pipeline stage whose completion triggers the-                           -- marker write.+                        -> -- | @pipelineStage@ is a+                           -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits' value+                           -- specifying the pipeline stage whose completion triggers the marker+                           -- write.                            PipelineStageFlagBits                         -> -- | @dstBuffer@ is the buffer where the marker will be written to.                            ("dstBuffer" ::: Buffer)
src/Vulkan/Extensions/VK_AMD_device_coherent_memory.hs view
@@ -127,8 +127,19 @@ -- -- = Members ----- The members of the 'PhysicalDeviceCoherentMemoryFeaturesAMD' structure--- describe the following features:+-- This structure describes the following feature:+--+-- = Description+--+-- If the 'PhysicalDeviceCoherentMemoryFeaturesAMD' 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. 'PhysicalDeviceCoherentMemoryFeaturesAMD' /can/ also be used+-- in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to+-- selectively enable these features. -- -- == Valid Usage (Implicit) --
src/Vulkan/Extensions/VK_AMD_draw_indirect_count.hs view
@@ -60,10 +60,10 @@ -- -- == Description ----- This extension allows an application to source the number of draw calls--- for indirect draw calls from a buffer. This enables applications to--- generate arbitrary amounts of draw commands and execute them without--- host intervention.+-- This extension allows an application to source the number of draws for+-- indirect drawing commands from a buffer. This enables applications to+-- generate an arbitrary number of drawing commands and execute them+-- without host intervention. -- -- == Promotion to @VK_KHR_draw_indirect_count@ --
src/Vulkan/Extensions/VK_AMD_pipeline_compiler_control.hs view
@@ -47,8 +47,8 @@ -- == Description -- -- This extension introduces 'PipelineCompilerControlCreateInfoAMD'--- structure that can be chained to a pipeline’s create info to specify--- additional flags that affect pipeline compilation.+-- structure that can be chained to a pipeline’s creation information to+-- specify additional flags that affect pipeline compilation. -- -- == New Structures --
src/Vulkan/Extensions/VK_AMD_pipeline_compiler_control.hs-boot view
@@ -47,8 +47,8 @@ -- == Description -- -- This extension introduces 'PipelineCompilerControlCreateInfoAMD'--- structure that can be chained to a pipeline’s create info to specify--- additional flags that affect pipeline compilation.+-- structure that can be chained to a pipeline’s creation information to+-- specify additional flags that affect pipeline compilation. -- -- == New Structures --
src/Vulkan/Extensions/VK_AMD_shader_core_properties.hs view
@@ -181,17 +181,15 @@ -- | VkPhysicalDeviceShaderCorePropertiesAMD - Structure describing shader -- core properties that can be supported by an implementation ----- = Members------ The members of the 'PhysicalDeviceShaderCorePropertiesAMD' structure--- describe the following implementation-dependent limits:--- -- = Description -- -- If the 'PhysicalDeviceShaderCorePropertiesAMD' structure is included in--- the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2',--- it is filled with the implementation-dependent limits.+-- 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) --
src/Vulkan/Extensions/VK_AMD_shader_core_properties2.hs view
@@ -137,17 +137,15 @@ -- | VkPhysicalDeviceShaderCoreProperties2AMD - Structure describing shader -- core properties that can be supported by an implementation ----- = Members------ The members of the 'PhysicalDeviceShaderCoreProperties2AMD' structure--- describe the following implementation-dependent limits:--- -- = Description -- -- If the 'PhysicalDeviceShaderCoreProperties2AMD' structure is included in--- the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2',--- it is filled with the implementation-dependent limits.+-- 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) --
src/Vulkan/Extensions/VK_AMD_shader_info.hs view
@@ -250,12 +250,11 @@ -- @pInfoSize@. Otherwise, @pInfoSize@ /must/ point to a variable set by -- the user to the size of the buffer, in bytes, pointed to by @pInfo@, and -- on return the variable is overwritten with the amount of data actually--- written to @pInfo@.------ If @pInfoSize@ is less than the maximum size that /can/ be retrieved by--- the pipeline cache, then at most @pInfoSize@ bytes will be written to--- @pInfo@, and 'getShaderInfoAMD' will return--- 'Vulkan.Core10.Enums.Result.INCOMPLETE'.+-- written to @pInfo@. If @pInfoSize@ is less than the maximum size that+-- /can/ be retrieved by the pipeline cache, then at most @pInfoSize@ bytes+-- will be written to @pInfo@, and 'Vulkan.Core10.Enums.Result.INCOMPLETE'+-- will be returned, instead of 'Vulkan.Core10.Enums.Result.SUCCESS', to+-- indicate that not all required of the pipeline cache was returned. -- -- Not all information is available for every shader and implementations -- may not support all kinds of information for any shader. When a certain@@ -331,8 +330,10 @@                     Device                  -> -- | @pipeline@ is the target of the query.                     Pipeline-                 -> -- | @shaderStage@ identifies the particular shader within the pipeline about-                    -- which information is being queried.+                 -> -- | @shaderStage@ is a+                    -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.ShaderStageFlagBits' specifying+                    -- the particular shader within the pipeline about which information is+                    -- being queried.                     ShaderStageFlagBits                  -> -- | @infoType@ describes what kind of information is being queried.                     ShaderInfoTypeAMD@@ -544,7 +545,8 @@            (zero, zero, zero)  --- | VkShaderInfoTypeAMD - Enum specifying which type of shader info to query+-- | VkShaderInfoTypeAMD - Enum specifying which type of shader information+-- to query -- -- = See Also --
src/Vulkan/Extensions/VK_ANDROID_external_memory_android_hardware_buffer.hs view
@@ -153,7 +153,7 @@ -- -- 2) The internal layout and therefore size of a 'AHardwareBuffer' image -- may depend on native usage flags that do not have corresponding Vulkan--- counterparts. Do we provide this info to+-- counterparts. Do we provide this information to -- 'Vulkan.Core10.Image.createImage' somehow, or allow the allocation size -- reported by 'Vulkan.Core10.MemoryManagement.getImageMemoryRequirements' -- to be approximate?@@ -183,7 +183,7 @@ -- as possible without causing compatibility problems for existing OpenGL -- ES applications or violating Vulkan requirements. ----- 4) Should an 'AHardwareBuffer' with @AHARDWAREBUFFER_USAGE_CPU_@* usage+-- 4) Should an 'AHardwareBuffer' with @AHARDWAREBUFFER_USAGE_CPU_*@ usage -- be mappable in Vulkan? Should it be possible to export an -- @AHardwareBuffers@ with such usage? --@@ -209,13 +209,13 @@ -- time. Can reference to them be added to this extension, or do they need -- a new extension? ----- RESOLVED: This extension can document the interaction between the new--- AHB formats\/usages and existing Vulkan features. No new Vulkan features--- or implementation requirements can be added. The extension version--- number will be incremented when this additional documentation is added,--- but the version number does not indicate that an implementaiton supports--- Vulkan memory or resources that map to the new 'AHardwareBuffer'--- features: support for that must be queried with+-- __RESOLVED__: This extension can document the interaction between the+-- new AHB formats\/usages and existing Vulkan features. No new Vulkan+-- features or implementation requirements can be added. The extension+-- version number will be incremented when this additional documentation is+-- added, but the version number does not indicate that an implementaiton+-- supports Vulkan memory or resources that map to the new+-- 'AHardwareBuffer' features: support for that must be queried with -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceImageFormatProperties2' -- or is implied by successfully allocating a 'AHardwareBuffer' outside of -- Vulkan that uses the new feature and has a GPU usage flag.@@ -378,7 +378,7 @@                                              --                                              -- #VUID-vkGetAndroidHardwareBufferPropertiesANDROID-buffer-01884# @buffer@                                              -- /must/ be a valid Android hardware buffer object with at least one of-                                             -- the @AHARDWAREBUFFER_USAGE_GPU_@* flags in its+                                             -- the @AHARDWAREBUFFER_USAGE_GPU_*@ flags in its                                              -- @AHardwareBuffer_Desc@::@usage@                                              --                                              -- #VUID-vkGetAndroidHardwareBufferPropertiesANDROID-buffer-parameter#@@ -556,7 +556,7 @@ -- are included in the @usage@ or @flags@ fields of -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceImageFormatInfo2'. -- It /must/ include at least one GPU usage flag--- (@AHARDWAREBUFFER_USAGE_GPU_@*), even if none of the corresponding+-- (@AHARDWAREBUFFER_USAGE_GPU_*@), even if none of the corresponding -- Vulkan usages or flags are requested. -- -- Note
src/Vulkan/Extensions/VK_ANDROID_external_memory_android_hardware_buffer.hs-boot view
@@ -153,7 +153,7 @@ -- -- 2) The internal layout and therefore size of a 'AHardwareBuffer' image -- may depend on native usage flags that do not have corresponding Vulkan--- counterparts. Do we provide this info to+-- counterparts. Do we provide this information to -- 'Vulkan.Core10.Image.createImage' somehow, or allow the allocation size -- reported by 'Vulkan.Core10.MemoryManagement.getImageMemoryRequirements' -- to be approximate?@@ -183,7 +183,7 @@ -- as possible without causing compatibility problems for existing OpenGL -- ES applications or violating Vulkan requirements. ----- 4) Should an 'AHardwareBuffer' with @AHARDWAREBUFFER_USAGE_CPU_@* usage+-- 4) Should an 'AHardwareBuffer' with @AHARDWAREBUFFER_USAGE_CPU_*@ usage -- be mappable in Vulkan? Should it be possible to export an -- @AHardwareBuffers@ with such usage? --@@ -209,13 +209,13 @@ -- time. Can reference to them be added to this extension, or do they need -- a new extension? ----- RESOLVED: This extension can document the interaction between the new--- AHB formats\/usages and existing Vulkan features. No new Vulkan features--- or implementation requirements can be added. The extension version--- number will be incremented when this additional documentation is added,--- but the version number does not indicate that an implementaiton supports--- Vulkan memory or resources that map to the new 'AHardwareBuffer'--- features: support for that must be queried with+-- __RESOLVED__: This extension can document the interaction between the+-- new AHB formats\/usages and existing Vulkan features. No new Vulkan+-- features or implementation requirements can be added. The extension+-- version number will be incremented when this additional documentation is+-- added, but the version number does not indicate that an implementaiton+-- supports Vulkan memory or resources that map to the new+-- 'AHardwareBuffer' features: support for that must be queried with -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceImageFormatProperties2' -- or is implied by successfully allocating a 'AHardwareBuffer' outside of -- Vulkan that uses the new feature and has a GPU usage flag.
src/Vulkan/Extensions/VK_EXT_4444_formats.hs view
@@ -132,8 +132,19 @@ -- -- = Members ----- The members of the 'PhysicalDevice4444FormatsFeaturesEXT' structure--- describe the following features:+-- This structure describes the following features:+--+-- = Description+--+-- If the 'PhysicalDevice4444FormatsFeaturesEXT' 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. 'PhysicalDevice4444FormatsFeaturesEXT' /can/ also be used in+-- the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to+-- selectively enable these features. -- -- == Valid Usage (Implicit) --
src/Vulkan/Extensions/VK_EXT_astc_decode_mode.hs view
@@ -273,17 +273,19 @@ -- -- = Members ----- The members of the 'PhysicalDeviceASTCDecodeFeaturesEXT' structure--- describe the following features:+-- This structure describes the following feature: -- -- = Description -- -- If the 'PhysicalDeviceASTCDecodeFeaturesEXT' structure is included in--- the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- it is filled with values indicating whether each feature is supported.--- 'PhysicalDeviceASTCDecodeFeaturesEXT' /can/ also be included in the--- @pNext@ chain of 'Vulkan.Core10.Device.createDevice' to enable features.+-- 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. 'PhysicalDeviceASTCDecodeFeaturesEXT' /can/ also be used in+-- the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to+-- selectively enable these features. -- -- == Valid Usage (Implicit) --
src/Vulkan/Extensions/VK_EXT_blend_operation_advanced.hs view
@@ -331,18 +331,19 @@ -- -- = Members ----- The members of the 'PhysicalDeviceBlendOperationAdvancedFeaturesEXT'--- structure describe the following features:+-- This structure describes the following feature: -- -- = Description -- -- If the 'PhysicalDeviceBlendOperationAdvancedFeaturesEXT' structure is--- included in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- it is filled with values indicating whether each feature is supported.--- 'PhysicalDeviceBlendOperationAdvancedFeaturesEXT' /can/ also be included--- in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to--- enable the features.+-- 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. 'PhysicalDeviceBlendOperationAdvancedFeaturesEXT' /can/ also+-- be used in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo'+-- to selectively enable these features. -- -- == Valid Usage (Implicit) --@@ -407,17 +408,15 @@ -- describing advanced blending limits that can be supported by an -- implementation ----- = Members------ The members of the 'PhysicalDeviceBlendOperationAdvancedPropertiesEXT'--- structure describe the following implementation-dependent limits:--- -- = Description -- -- If the 'PhysicalDeviceBlendOperationAdvancedPropertiesEXT' structure is--- included in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2',--- it is filled with the implementation-dependent limits.+-- 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) --
src/Vulkan/Extensions/VK_EXT_buffer_device_address.hs view
@@ -236,18 +236,19 @@ -- -- = Members ----- The members of the 'PhysicalDeviceBufferDeviceAddressFeaturesEXT'--- structure describe the following features:+-- This structure describes the following features: -- -- = Description -- -- If the 'PhysicalDeviceBufferDeviceAddressFeaturesEXT' structure is--- included in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- it is filled with values indicating whether the feature is supported.--- 'PhysicalDeviceBufferDeviceAddressFeaturesEXT' /can/ also be included in--- the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to enable--- features.+-- 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. 'PhysicalDeviceBufferDeviceAddressFeaturesEXT' /can/ also be+-- used in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to+-- selectively enable these features. -- -- Note --
src/Vulkan/Extensions/VK_EXT_calibrated_timestamps.hs view
@@ -15,7 +15,7 @@ --     185 -- -- [__Revision__]---     1+--     2 -- -- [__Extension and Version Dependencies__] --@@ -271,11 +271,9 @@ -- 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@. If @pTimeDomainCount@ is smaller than the number of--- calibrateable time domains supported for the given @physicalDevice@,--- '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.+-- @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) --@@ -554,11 +552,11 @@   readPrec = enumReadPrec enumPrefixTimeDomainEXT showTableTimeDomainEXT conNameTimeDomainEXT TimeDomainEXT  -type EXT_CALIBRATED_TIMESTAMPS_SPEC_VERSION = 1+type EXT_CALIBRATED_TIMESTAMPS_SPEC_VERSION = 2  -- No documentation found for TopLevel "VK_EXT_CALIBRATED_TIMESTAMPS_SPEC_VERSION" pattern EXT_CALIBRATED_TIMESTAMPS_SPEC_VERSION :: forall a . Integral a => a-pattern EXT_CALIBRATED_TIMESTAMPS_SPEC_VERSION = 1+pattern EXT_CALIBRATED_TIMESTAMPS_SPEC_VERSION = 2   type EXT_CALIBRATED_TIMESTAMPS_EXTENSION_NAME = "VK_EXT_calibrated_timestamps"
src/Vulkan/Extensions/VK_EXT_calibrated_timestamps.hs-boot view
@@ -15,7 +15,7 @@ --     185 -- -- [__Revision__]---     1+--     2 -- -- [__Extension and Version Dependencies__] --
+ src/Vulkan/Extensions/VK_EXT_color_write_enable.hs view
@@ -0,0 +1,444 @@+{-# language CPP #-}+-- | = Name+--+-- VK_EXT_color_write_enable - device extension+--+-- == VK_EXT_color_write_enable+--+-- [__Name String__]+--     @VK_EXT_color_write_enable@+--+-- [__Extension Type__]+--     Device extension+--+-- [__Registered Extension Number__]+--     382+--+-- [__Revision__]+--     1+--+-- [__Extension and Version Dependencies__]+--+--     -   Requires Vulkan 1.0+--+--     -   Requires @VK_KHR_get_physical_device_properties2@+--+-- [__Contact__]+--+--     -   Sharif Elcott+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?title=VK_EXT_color_write_enable:%20&body=@selcott%20 >+--+-- == Other Extension Metadata+--+-- [__Last Modified Date__]+--     2020-02-25+--+-- [__IP Status__]+--     No known IP claims.+--+-- [__Contributors__]+--+--     -   Sharif Elcott, Google+--+--     -   Tobias Hector, AMD+--+--     -   Piers Daniell, NVIDIA+--+-- == Description+--+-- This extension allows for selectively enabling and disabling writes to+-- output color attachments via a pipeline dynamic state.+--+-- The intended use cases for this new state are mostly identical to those+-- of colorWriteMask, such as selectively disabling writes to avoid+-- feedback loops between subpasses or bandwidth savings for unused+-- outputs. By making the state dynamic, one additional benefit is the+-- ability to reduce pipeline counts and pipeline switching via shaders+-- that write a superset of the desired data of which subsets are selected+-- dynamically. The reason for a new state, colorWriteEnable, rather than+-- making colorWriteMask dynamic is that, on many implementations, the more+-- flexible per-channel semantics of the colorWriteMask state cannot be+-- made dynamic in a performant manner.+--+-- == New Commands+--+-- -   'cmdSetColorWriteEnableEXT'+--+-- == New Structures+--+-- -   Extending+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',+--     'Vulkan.Core10.Device.DeviceCreateInfo':+--+--     -   'PhysicalDeviceColorWriteEnableFeaturesEXT'+--+-- -   Extending+--     'Vulkan.Core10.Pipeline.PipelineColorBlendStateCreateInfo':+--+--     -   'PipelineColorWriteCreateInfoEXT'+--+-- == New Enum Constants+--+-- -   'EXT_COLOR_WRITE_ENABLE_EXTENSION_NAME'+--+-- -   'EXT_COLOR_WRITE_ENABLE_SPEC_VERSION'+--+-- -   Extending 'Vulkan.Core10.Enums.DynamicState.DynamicState':+--+--     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT'+--+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT'+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT'+--+-- == Version History+--+-- -   Revision 1, 2020-01-25 (Sharif Elcott)+--+--     -   Internal revisions+--+-- = See Also+--+-- 'PhysicalDeviceColorWriteEnableFeaturesEXT',+-- 'PipelineColorWriteCreateInfoEXT', 'cmdSetColorWriteEnableEXT'+--+-- = Document Notes+--+-- For more information, see the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_color_write_enable Vulkan Specification>+--+-- This page is a generated document. Fixes and changes should be made to+-- the generator scripts, not directly.+module Vulkan.Extensions.VK_EXT_color_write_enable  ( cmdSetColorWriteEnableEXT+                                                    , PhysicalDeviceColorWriteEnableFeaturesEXT(..)+                                                    , PipelineColorWriteCreateInfoEXT(..)+                                                    , EXT_COLOR_WRITE_ENABLE_SPEC_VERSION+                                                    , pattern EXT_COLOR_WRITE_ENABLE_SPEC_VERSION+                                                    , EXT_COLOR_WRITE_ENABLE_EXTENSION_NAME+                                                    , pattern EXT_COLOR_WRITE_ENABLE_EXTENSION_NAME+                                                    ) where++import Vulkan.Internal.Utils (traceAroundEvent)+import Control.Monad (unless)+import Control.Monad.IO.Class (liftIO)+import Foreign.Marshal.Alloc (allocaBytesAligned)+import GHC.IO (throwIO)+import GHC.Ptr (nullFunPtr)+import Foreign.Ptr (nullPtr)+import Foreign.Ptr (plusPtr)+import Control.Monad.Trans.Class (lift)+import Control.Monad.Trans.Cont (evalContT)+import Data.Vector (generateM)+import qualified Data.Vector (imapM_)+import qualified Data.Vector (length)+import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (FromCStruct(..))+import Vulkan.CStruct (ToCStruct)+import Vulkan.CStruct (ToCStruct(..))+import Vulkan.Zero (Zero(..))+import Control.Monad.IO.Class (MonadIO)+import Data.String (IsString)+import Data.Typeable (Typeable)+import Foreign.Storable (Storable)+import Foreign.Storable (Storable(peek))+import Foreign.Storable (Storable(poke))+import qualified Foreign.Storable (Storable(..))+import GHC.Generics (Generic)+import GHC.IO.Exception (IOErrorType(..))+import GHC.IO.Exception (IOException(..))+import Foreign.Ptr (FunPtr)+import Foreign.Ptr (Ptr)+import Data.Word (Word32)+import Data.Kind (Type)+import Control.Monad.Trans.Cont (ContT(..))+import Data.Vector (Vector)+import Vulkan.CStruct.Utils (advancePtrBytes)+import Vulkan.Core10.FundamentalTypes (bool32ToBool)+import Vulkan.Core10.FundamentalTypes (boolToBool32)+import Vulkan.NamedType ((:::))+import Vulkan.Core10.FundamentalTypes (Bool32)+import Vulkan.Core10.FundamentalTypes (Bool32(..))+import Vulkan.Core10.Handles (CommandBuffer)+import Vulkan.Core10.Handles (CommandBuffer(..))+import Vulkan.Core10.Handles (CommandBuffer_T)+import Vulkan.Dynamic (DeviceCmds(pVkCmdSetColorWriteEnableEXT))+import Vulkan.Core10.Enums.StructureType (StructureType)+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT))+foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdSetColorWriteEnableEXT+  :: FunPtr (Ptr CommandBuffer_T -> Word32 -> Ptr Bool32 -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Ptr Bool32 -> IO ()++-- | vkCmdSetColorWriteEnableEXT - Enable or disable writes to a color+-- attachment+--+-- = Description+--+-- This command sets the state for a given draw when the graphics pipeline+-- is created with+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT'+-- set in+-- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.+--+-- == Valid Usage+--+-- -   #VUID-vkCmdSetColorWriteEnableEXT-None-04803# The+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-colorWriteEnable colorWriteEnable>+--     feature /must/ be enabled+--+-- -   #VUID-vkCmdSetColorWriteEnableEXT-attachmentCount-04804#+--     @attachmentCount@ /must/ be equal to the @attachmentCount@ member of+--     the 'Vulkan.Core10.Pipeline.PipelineColorBlendStateCreateInfo'+--     structure specified during pipeline creation+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCmdSetColorWriteEnableEXT-commandBuffer-parameter#+--     @commandBuffer@ /must/ be a valid+--     'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   #VUID-vkCmdSetColorWriteEnableEXT-pColorWriteEnables-parameter#+--     @pColorWriteEnables@ /must/ be a valid pointer to an array of+--     @attachmentCount@ 'Vulkan.Core10.FundamentalTypes.Bool32' values+--+-- -   #VUID-vkCmdSetColorWriteEnableEXT-commandBuffer-recording#+--     @commandBuffer@ /must/ be in the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>+--+-- -   #VUID-vkCmdSetColorWriteEnableEXT-commandBuffer-cmdpool# The+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support graphics operations+--+-- -   #VUID-vkCmdSetColorWriteEnableEXT-attachmentCount-arraylength#+--     @attachmentCount@ /must/ be greater than @0@+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-pipeline-stages-types Pipeline Type> |+-- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+=====================================================================================================================================++-- | Primary                                                                                                                    | Both                                                                                                                   | Graphics                                                                                                              |                                                                                                                                     |+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                       |                                                                                                                                     |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Handles.CommandBuffer'+cmdSetColorWriteEnableEXT :: forall io+                           . (MonadIO io)+                          => -- | @commandBuffer@ is the command buffer into which the command will be+                             -- recorded.+                             CommandBuffer+                          -> -- | @pColorWriteEnables@ is a pointer to an array of per target attachment+                             -- boolean values specifying whether color writes are enabled for the given+                             -- attachment.+                             ("colorWriteEnables" ::: Vector Bool)+                          -> io ()+cmdSetColorWriteEnableEXT commandBuffer colorWriteEnables = liftIO . evalContT $ do+  let vkCmdSetColorWriteEnableEXTPtr = pVkCmdSetColorWriteEnableEXT (deviceCmds (commandBuffer :: CommandBuffer))+  lift $ unless (vkCmdSetColorWriteEnableEXTPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetColorWriteEnableEXT is null" Nothing Nothing+  let vkCmdSetColorWriteEnableEXT' = mkVkCmdSetColorWriteEnableEXT vkCmdSetColorWriteEnableEXTPtr+  pPColorWriteEnables <- ContT $ allocaBytesAligned @Bool32 ((Data.Vector.length (colorWriteEnables)) * 4) 4+  lift $ Data.Vector.imapM_ (\i e -> poke (pPColorWriteEnables `plusPtr` (4 * (i)) :: Ptr Bool32) (boolToBool32 (e))) (colorWriteEnables)+  lift $ traceAroundEvent "vkCmdSetColorWriteEnableEXT" (vkCmdSetColorWriteEnableEXT' (commandBufferHandle (commandBuffer)) ((fromIntegral (Data.Vector.length $ (colorWriteEnables)) :: Word32)) (pPColorWriteEnables))+  pure $ ()+++-- | VkPhysicalDeviceColorWriteEnableFeaturesEXT - Structure describing+-- whether writes to color attachments can be enabled and disabled+-- dynamically+--+-- = Members+--+-- This structure describes the following feature:+--+-- = Description+--+-- If the 'PhysicalDeviceColorWriteEnableFeaturesEXT' 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. 'PhysicalDeviceColorWriteEnableFeaturesEXT' /can/ also be+-- used in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to+-- selectively enable these features.+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data PhysicalDeviceColorWriteEnableFeaturesEXT = PhysicalDeviceColorWriteEnableFeaturesEXT+  { -- | #features-colorWriteEnable# @colorWriteEnable@ indicates that the+    -- implementation supports the dynamic state+    -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT'.+    colorWriteEnable :: Bool }+  deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PhysicalDeviceColorWriteEnableFeaturesEXT)+#endif+deriving instance Show PhysicalDeviceColorWriteEnableFeaturesEXT++instance ToCStruct PhysicalDeviceColorWriteEnableFeaturesEXT where+  withCStruct x f = allocaBytesAligned 24 8 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p PhysicalDeviceColorWriteEnableFeaturesEXT{..} f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (colorWriteEnable))+    f+  cStructSize = 24+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))+    f++instance FromCStruct PhysicalDeviceColorWriteEnableFeaturesEXT where+  peekCStruct p = do+    colorWriteEnable <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))+    pure $ PhysicalDeviceColorWriteEnableFeaturesEXT+             (bool32ToBool colorWriteEnable)++instance Storable PhysicalDeviceColorWriteEnableFeaturesEXT where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek = peekCStruct+  poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero PhysicalDeviceColorWriteEnableFeaturesEXT where+  zero = PhysicalDeviceColorWriteEnableFeaturesEXT+           zero+++-- | VkPipelineColorWriteCreateInfoEXT - Structure specifying color write+-- state of a newly created pipeline+--+-- = Description+--+-- When this structure is included in the @pNext@ chain of+-- 'Vulkan.Core10.Pipeline.PipelineColorBlendStateCreateInfo', it defines+-- per-attachment color write state. If this structure is not included in+-- the @pNext@ chain, it is equivalent to specifying this structure with+-- @attachmentCount@ equal to the @attachmentCount@ member of+-- 'Vulkan.Core10.Pipeline.PipelineColorBlendStateCreateInfo', and+-- @pColorWriteEnables@ pointing to an array of as many+-- 'Vulkan.Core10.FundamentalTypes.TRUE' values.+--+-- If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-colorWriteEnable colorWriteEnable>+-- feature is not enabled on the device, all+-- 'Vulkan.Core10.FundamentalTypes.Bool32' elements in the+-- @pColorWriteEnables@ array /must/ be+-- 'Vulkan.Core10.FundamentalTypes.TRUE'.+--+-- Color Write Enable interacts with the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#framebuffer-color-write-mask Color Write Mask>+-- as follows: * If @colorWriteEnable@ is+-- 'Vulkan.Core10.FundamentalTypes.TRUE', writes to the attachment are+-- determined by the @colorWriteMask@. * If @colorWriteEnable@ is+-- 'Vulkan.Core10.FundamentalTypes.FALSE', the @colorWriteMask@ is ignored+-- and writes to all components of the attachment are disabled. This is+-- equivalent to specifying a @colorWriteMask@ of 0.+--+-- == Valid Usage+--+-- -   #VUID-VkPipelineColorWriteCreateInfoEXT-pAttachments-04801# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-colorWriteEnable colorWriteEnable>+--     feature is not enabled, all elements of @pColorWriteEnables@ /must/+--     be 'Vulkan.Core10.FundamentalTypes.TRUE'+--+-- -   #VUID-VkPipelineColorWriteCreateInfoEXT-attachmentCount-04802#+--     @attachmentCount@ /must/ be equal to the @attachmentCount@ member of+--     the 'Vulkan.Core10.Pipeline.PipelineColorBlendStateCreateInfo'+--     structure specified during pipeline creation+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-VkPipelineColorWriteCreateInfoEXT-sType-sType# @sType@ /must/+--     be+--     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT'+--+-- -   #VUID-VkPipelineColorWriteCreateInfoEXT-pColorWriteEnables-parameter#+--     If @attachmentCount@ is not @0@, @pColorWriteEnables@ /must/ be a+--     valid pointer to an array of @attachmentCount@+--     'Vulkan.Core10.FundamentalTypes.Bool32' values+--+-- = See Also+--+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data PipelineColorWriteCreateInfoEXT = PipelineColorWriteCreateInfoEXT+  { -- | @pColorWriteEnables@ is a pointer to an array of per target attachment+    -- boolean values specifying whether color writes are enabled for the given+    -- attachment.+    colorWriteEnables :: Vector Bool }+  deriving (Typeable)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PipelineColorWriteCreateInfoEXT)+#endif+deriving instance Show PipelineColorWriteCreateInfoEXT++instance ToCStruct PipelineColorWriteCreateInfoEXT where+  withCStruct x f = allocaBytesAligned 32 8 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p PipelineColorWriteCreateInfoEXT{..} f = evalContT $ do+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT)+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    lift $ poke ((p `plusPtr` 16 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (colorWriteEnables)) :: Word32))+    pPColorWriteEnables' <- ContT $ allocaBytesAligned @Bool32 ((Data.Vector.length (colorWriteEnables)) * 4) 4+    lift $ Data.Vector.imapM_ (\i e -> poke (pPColorWriteEnables' `plusPtr` (4 * (i)) :: Ptr Bool32) (boolToBool32 (e))) (colorWriteEnables)+    lift $ poke ((p `plusPtr` 24 :: Ptr (Ptr Bool32))) (pPColorWriteEnables')+    lift $ f+  cStructSize = 32+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    f++instance FromCStruct PipelineColorWriteCreateInfoEXT where+  peekCStruct p = do+    attachmentCount <- peek @Word32 ((p `plusPtr` 16 :: Ptr Word32))+    pColorWriteEnables <- peek @(Ptr Bool32) ((p `plusPtr` 24 :: Ptr (Ptr Bool32)))+    pColorWriteEnables' <- generateM (fromIntegral attachmentCount) (\i -> do+      pColorWriteEnablesElem <- peek @Bool32 ((pColorWriteEnables `advancePtrBytes` (4 * (i)) :: Ptr Bool32))+      pure $ bool32ToBool pColorWriteEnablesElem)+    pure $ PipelineColorWriteCreateInfoEXT+             pColorWriteEnables'++instance Zero PipelineColorWriteCreateInfoEXT where+  zero = PipelineColorWriteCreateInfoEXT+           mempty+++type EXT_COLOR_WRITE_ENABLE_SPEC_VERSION = 1++-- No documentation found for TopLevel "VK_EXT_COLOR_WRITE_ENABLE_SPEC_VERSION"+pattern EXT_COLOR_WRITE_ENABLE_SPEC_VERSION :: forall a . Integral a => a+pattern EXT_COLOR_WRITE_ENABLE_SPEC_VERSION = 1+++type EXT_COLOR_WRITE_ENABLE_EXTENSION_NAME = "VK_EXT_color_write_enable"++-- No documentation found for TopLevel "VK_EXT_COLOR_WRITE_ENABLE_EXTENSION_NAME"+pattern EXT_COLOR_WRITE_ENABLE_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a+pattern EXT_COLOR_WRITE_ENABLE_EXTENSION_NAME = "VK_EXT_color_write_enable"+
+ src/Vulkan/Extensions/VK_EXT_color_write_enable.hs-boot view
@@ -0,0 +1,136 @@+{-# language CPP #-}+-- | = Name+--+-- VK_EXT_color_write_enable - device extension+--+-- == VK_EXT_color_write_enable+--+-- [__Name String__]+--     @VK_EXT_color_write_enable@+--+-- [__Extension Type__]+--     Device extension+--+-- [__Registered Extension Number__]+--     382+--+-- [__Revision__]+--     1+--+-- [__Extension and Version Dependencies__]+--+--     -   Requires Vulkan 1.0+--+--     -   Requires @VK_KHR_get_physical_device_properties2@+--+-- [__Contact__]+--+--     -   Sharif Elcott+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?title=VK_EXT_color_write_enable:%20&body=@selcott%20 >+--+-- == Other Extension Metadata+--+-- [__Last Modified Date__]+--     2020-02-25+--+-- [__IP Status__]+--     No known IP claims.+--+-- [__Contributors__]+--+--     -   Sharif Elcott, Google+--+--     -   Tobias Hector, AMD+--+--     -   Piers Daniell, NVIDIA+--+-- == Description+--+-- This extension allows for selectively enabling and disabling writes to+-- output color attachments via a pipeline dynamic state.+--+-- The intended use cases for this new state are mostly identical to those+-- of colorWriteMask, such as selectively disabling writes to avoid+-- feedback loops between subpasses or bandwidth savings for unused+-- outputs. By making the state dynamic, one additional benefit is the+-- ability to reduce pipeline counts and pipeline switching via shaders+-- that write a superset of the desired data of which subsets are selected+-- dynamically. The reason for a new state, colorWriteEnable, rather than+-- making colorWriteMask dynamic is that, on many implementations, the more+-- flexible per-channel semantics of the colorWriteMask state cannot be+-- made dynamic in a performant manner.+--+-- == New Commands+--+-- -   'cmdSetColorWriteEnableEXT'+--+-- == New Structures+--+-- -   Extending+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',+--     'Vulkan.Core10.Device.DeviceCreateInfo':+--+--     -   'PhysicalDeviceColorWriteEnableFeaturesEXT'+--+-- -   Extending+--     'Vulkan.Core10.Pipeline.PipelineColorBlendStateCreateInfo':+--+--     -   'PipelineColorWriteCreateInfoEXT'+--+-- == New Enum Constants+--+-- -   'EXT_COLOR_WRITE_ENABLE_EXTENSION_NAME'+--+-- -   'EXT_COLOR_WRITE_ENABLE_SPEC_VERSION'+--+-- -   Extending 'Vulkan.Core10.Enums.DynamicState.DynamicState':+--+--     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT'+--+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT'+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT'+--+-- == Version History+--+-- -   Revision 1, 2020-01-25 (Sharif Elcott)+--+--     -   Internal revisions+--+-- = See Also+--+-- 'PhysicalDeviceColorWriteEnableFeaturesEXT',+-- 'PipelineColorWriteCreateInfoEXT', 'cmdSetColorWriteEnableEXT'+--+-- = Document Notes+--+-- For more information, see the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_color_write_enable Vulkan Specification>+--+-- This page is a generated document. Fixes and changes should be made to+-- the generator scripts, not directly.+module Vulkan.Extensions.VK_EXT_color_write_enable  ( PhysicalDeviceColorWriteEnableFeaturesEXT+                                                    , PipelineColorWriteCreateInfoEXT+                                                    ) where++import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (ToCStruct)+import Data.Kind (Type)++data PhysicalDeviceColorWriteEnableFeaturesEXT++instance ToCStruct PhysicalDeviceColorWriteEnableFeaturesEXT+instance Show PhysicalDeviceColorWriteEnableFeaturesEXT++instance FromCStruct PhysicalDeviceColorWriteEnableFeaturesEXT+++data PipelineColorWriteCreateInfoEXT++instance ToCStruct PipelineColorWriteCreateInfoEXT+instance Show PipelineColorWriteCreateInfoEXT++instance FromCStruct PipelineColorWriteCreateInfoEXT+
src/Vulkan/Extensions/VK_EXT_conditional_rendering.hs view
@@ -118,12 +118,12 @@ -- -- 1) Should conditional rendering affect copy and blit commands? ----- RESOLVED: Conditional rendering should not affect copies and blits.+-- __RESOLVED__: Conditional rendering should not affect copies and blits. -- -- 2) Should secondary command buffers be allowed to execute while -- conditional rendering is active in the primary command buffer? ----- RESOLVED: The rendering commands in secondary command buffer will be+-- __RESOLVED__: The rendering commands in secondary command buffer will be -- affected by an active conditional rendering in primary command buffer if -- the @conditionalRenderingEnable@ is set to -- 'Vulkan.Core10.FundamentalTypes.TRUE'. Conditional rendering /must/ not@@ -396,7 +396,7 @@   -- | VkConditionalRenderingBeginInfoEXT - Structure specifying conditional--- rendering begin info+-- rendering begin information -- -- = Description --@@ -503,7 +503,7 @@   -- | VkCommandBufferInheritanceConditionalRenderingInfoEXT - Structure--- specifying command buffer inheritance info+-- specifying command buffer inheritance information -- -- = Description --@@ -579,15 +579,21 @@ -- if a secondary command buffer can be executed if conditional rendering -- is active in the primary command buffer --+-- = Members+--+-- This structure describes the following features:+-- -- = Description -- -- If the 'PhysicalDeviceConditionalRenderingFeaturesEXT' structure is--- included in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- it is filled with values indicating the implementation-dependent--- behavior. 'PhysicalDeviceConditionalRenderingFeaturesEXT' /can/ also be--- included in @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to--- enable the features.+-- 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. 'PhysicalDeviceConditionalRenderingFeaturesEXT' /can/ also be+-- used in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to+-- selectively enable these features. -- -- == Valid Usage (Implicit) --
src/Vulkan/Extensions/VK_EXT_conditional_rendering.hs-boot view
@@ -118,12 +118,12 @@ -- -- 1) Should conditional rendering affect copy and blit commands? ----- RESOLVED: Conditional rendering should not affect copies and blits.+-- __RESOLVED__: Conditional rendering should not affect copies and blits. -- -- 2) Should secondary command buffers be allowed to execute while -- conditional rendering is active in the primary command buffer? ----- RESOLVED: The rendering commands in secondary command buffer will be+-- __RESOLVED__: The rendering commands in secondary command buffer will be -- affected by an active conditional rendering in primary command buffer if -- the @conditionalRenderingEnable@ is set to -- 'Vulkan.Core10.FundamentalTypes.TRUE'. Conditional rendering /must/ not
src/Vulkan/Extensions/VK_EXT_conservative_rasterization.hs view
@@ -208,18 +208,15 @@ -- describing conservative raster properties that can be supported by an -- implementation ----- = Members------ The members of the--- 'PhysicalDeviceConservativeRasterizationPropertiesEXT' structure--- describe the following implementation-dependent limits:--- -- = Description -- -- If the 'PhysicalDeviceConservativeRasterizationPropertiesEXT' structure--- is included in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2',--- it is filled with the implementation-dependent limits and properties.+-- 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) --
src/Vulkan/Extensions/VK_EXT_custom_border_color.hs view
@@ -21,6 +21,12 @@ -- --     -   Requires Vulkan 1.0 --+-- [__Special Uses__]+--+--     -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#extendingvulkan-compatibility-specialuse OpenGL \/ ES support>+--+--     -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#extendingvulkan-compatibility-specialuse D3D support>+-- -- [__Contact__] -- --     -   Liam Middlebrook@@ -132,8 +138,8 @@ -- VkClearColorValue is used here because it provides a union of -- float,int,uint types. ----- RESOLVED: Will re-use existing VkClearColorValue structure in order to--- easily take advantage of float,int,uint borderColor types.+-- __RESOLVED__: Will reuse existing VkClearColorValue structure in order+-- to easily take advantage of float,int,uint borderColor types. -- -- 2) For hardware which supports a limited number of border colors what -- happens if that number is exceeded? Should this be handled by the driver@@ -141,7 +147,7 @@ -- using a new Object type, however that may have lead to additional system -- resource consumption which would otherwise not be required. ----- RESOLVED: Added+-- __RESOLVED__: Added -- 'PhysicalDeviceCustomBorderColorPropertiesEXT'::@maxCustomBorderColorSamplers@ -- for tracking implementation-specific limit, and Valid Usage statement -- handling overflow.@@ -152,19 +158,19 @@ -- work on them for implementations that can support it, or forbidding it -- entirely. ----- RESOLVED: Samplers created with a custom border color are forbidden from--- being immutable. This resolves concerns for implementations where the--- custom border color is an index to a LUT instead of being directly+-- __RESOLVED__: Samplers created with a custom border color are forbidden+-- from being immutable. This resolves concerns for implementations where+-- the custom border color is an index to a LUT instead of being directly -- embedded into sampler state. -- -- 4) Should UINT and SINT (unsigned integer and signed integer) border -- color types be separated or should they be combined into one generic INT -- (integer) type? ----- RESOLVED: Separating these doesn’t make much sense as the existing fixed--- border color types don’t have this distinction, and there is no reason--- in hardware to do so. This separation would also create unnecessary work--- and considerations for the application.+-- __RESOLVED__: Separating these doesn’t make much sense as the existing+-- fixed border color types don’t have this distinction, and there is no+-- reason in hardware to do so. This separation would also create+-- unnecessary work and considerations for the application. -- -- == Version History --@@ -368,10 +374,15 @@ -- | VkPhysicalDeviceCustomBorderColorPropertiesEXT - Structure describing -- whether custom border colors can be supported by an implementation ----- = Members+-- = Description ----- The members of the 'PhysicalDeviceCustomBorderColorPropertiesEXT'--- structure describe the following features:+-- If the 'PhysicalDeviceCustomBorderColorPropertiesEXT' 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) --@@ -426,8 +437,19 @@ -- -- = Members ----- The members of the 'PhysicalDeviceCustomBorderColorFeaturesEXT'--- structure describe the following features:+-- This structure describes the following features:+--+-- = Description+--+-- If the 'PhysicalDeviceCustomBorderColorFeaturesEXT' 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. 'PhysicalDeviceCustomBorderColorFeaturesEXT' /can/ also be+-- used in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to+-- selectively enable these features. -- -- == Valid Usage (Implicit) --
src/Vulkan/Extensions/VK_EXT_custom_border_color.hs-boot view
@@ -21,6 +21,12 @@ -- --     -   Requires Vulkan 1.0 --+-- [__Special Uses__]+--+--     -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#extendingvulkan-compatibility-specialuse OpenGL \/ ES support>+--+--     -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#extendingvulkan-compatibility-specialuse D3D support>+-- -- [__Contact__] -- --     -   Liam Middlebrook@@ -132,8 +138,8 @@ -- VkClearColorValue is used here because it provides a union of -- float,int,uint types. ----- RESOLVED: Will re-use existing VkClearColorValue structure in order to--- easily take advantage of float,int,uint borderColor types.+-- __RESOLVED__: Will reuse existing VkClearColorValue structure in order+-- to easily take advantage of float,int,uint borderColor types. -- -- 2) For hardware which supports a limited number of border colors what -- happens if that number is exceeded? Should this be handled by the driver@@ -141,7 +147,7 @@ -- using a new Object type, however that may have lead to additional system -- resource consumption which would otherwise not be required. ----- RESOLVED: Added+-- __RESOLVED__: Added -- 'PhysicalDeviceCustomBorderColorPropertiesEXT'::@maxCustomBorderColorSamplers@ -- for tracking implementation-specific limit, and Valid Usage statement -- handling overflow.@@ -152,19 +158,19 @@ -- work on them for implementations that can support it, or forbidding it -- entirely. ----- RESOLVED: Samplers created with a custom border color are forbidden from--- being immutable. This resolves concerns for implementations where the--- custom border color is an index to a LUT instead of being directly+-- __RESOLVED__: Samplers created with a custom border color are forbidden+-- from being immutable. This resolves concerns for implementations where+-- the custom border color is an index to a LUT instead of being directly -- embedded into sampler state. -- -- 4) Should UINT and SINT (unsigned integer and signed integer) border -- color types be separated or should they be combined into one generic INT -- (integer) type? ----- RESOLVED: Separating these doesn’t make much sense as the existing fixed--- border color types don’t have this distinction, and there is no reason--- in hardware to do so. This separation would also create unnecessary work--- and considerations for the application.+-- __RESOLVED__: Separating these doesn’t make much sense as the existing+-- fixed border color types don’t have this distinction, and there is no+-- reason in hardware to do so. This separation would also create+-- unnecessary work and considerations for the application. -- -- == Version History --
src/Vulkan/Extensions/VK_EXT_debug_report.hs view
@@ -15,7 +15,7 @@ --     12 -- -- [__Revision__]---     9+--     10 -- -- [__Extension and Version Dependencies__] --@@ -247,7 +247,7 @@ -- 4) How do you compare handles returned by the debug_report callback to -- the application’s handles? ----- RESOLVED: Due to the different nature of dispatchable and+-- __RESOLVED__: Due to the different nature of dispatchable and -- nondispatchable handles there is no generic way (that we know of) that -- works for common compilers with 32bit, 64bit, C and C++. We recommend -- applications use the same cast that the validation layers use:@@ -379,6 +379,8 @@                                                                         , DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT                                                                         , DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT                                                                         , DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT+                                                                        , DEBUG_REPORT_OBJECT_TYPE_CU_FUNCTION_NVX_EXT+                                                                        , DEBUG_REPORT_OBJECT_TYPE_CU_MODULE_NVX_EXT                                                                         , DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT                                                                         , ..                                                                         )@@ -1038,6 +1040,10 @@ pattern DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT   = DebugReportObjectTypeEXT 1000156000 -- No documentation found for Nested "VkDebugReportObjectTypeEXT" "VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT" pattern DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT = DebugReportObjectTypeEXT 1000150000+-- No documentation found for Nested "VkDebugReportObjectTypeEXT" "VK_DEBUG_REPORT_OBJECT_TYPE_CU_FUNCTION_NVX_EXT"+pattern DEBUG_REPORT_OBJECT_TYPE_CU_FUNCTION_NVX_EXT            = DebugReportObjectTypeEXT 1000029001+-- No documentation found for Nested "VkDebugReportObjectTypeEXT" "VK_DEBUG_REPORT_OBJECT_TYPE_CU_MODULE_NVX_EXT"+pattern DEBUG_REPORT_OBJECT_TYPE_CU_MODULE_NVX_EXT              = DebugReportObjectTypeEXT 1000029000 -- No documentation found for Nested "VkDebugReportObjectTypeEXT" "VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT" pattern DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT = DebugReportObjectTypeEXT 1000085000 {-# complete DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT,@@ -1075,6 +1081,8 @@              DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT,              DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT,              DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT,+             DEBUG_REPORT_OBJECT_TYPE_CU_FUNCTION_NVX_EXT,+             DEBUG_REPORT_OBJECT_TYPE_CU_MODULE_NVX_EXT,              DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT :: DebugReportObjectTypeEXT #-}  conNameDebugReportObjectTypeEXT :: String@@ -1120,6 +1128,8 @@   , (DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT , "ACCELERATION_STRUCTURE_NV_EXT")   , (DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT  , "SAMPLER_YCBCR_CONVERSION_EXT")   , (DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT, "ACCELERATION_STRUCTURE_KHR_EXT")+  , (DEBUG_REPORT_OBJECT_TYPE_CU_FUNCTION_NVX_EXT           , "CU_FUNCTION_NVX_EXT")+  , (DEBUG_REPORT_OBJECT_TYPE_CU_MODULE_NVX_EXT             , "CU_MODULE_NVX_EXT")   , (DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT, "DESCRIPTOR_UPDATE_TEMPLATE_EXT")   ] @@ -1165,11 +1175,11 @@ type PFN_vkDebugReportCallbackEXT = FunPtr FN_vkDebugReportCallbackEXT  -type EXT_DEBUG_REPORT_SPEC_VERSION = 9+type EXT_DEBUG_REPORT_SPEC_VERSION = 10  -- No documentation found for TopLevel "VK_EXT_DEBUG_REPORT_SPEC_VERSION" pattern EXT_DEBUG_REPORT_SPEC_VERSION :: forall a . Integral a => a-pattern EXT_DEBUG_REPORT_SPEC_VERSION = 9+pattern EXT_DEBUG_REPORT_SPEC_VERSION = 10   type EXT_DEBUG_REPORT_EXTENSION_NAME = "VK_EXT_debug_report"
src/Vulkan/Extensions/VK_EXT_debug_report.hs-boot view
@@ -15,7 +15,7 @@ --     12 -- -- [__Revision__]---     9+--     10 -- -- [__Extension and Version Dependencies__] --@@ -247,7 +247,7 @@ -- 4) How do you compare handles returned by the debug_report callback to -- the application’s handles? ----- RESOLVED: Due to the different nature of dispatchable and+-- __RESOLVED__: Due to the different nature of dispatchable and -- nondispatchable handles there is no generic way (that we know of) that -- works for common compilers with 32bit, 64bit, C and C++. We recommend -- applications use the same cast that the validation layers use:
src/Vulkan/Extensions/VK_EXT_debug_utils.hs view
@@ -1341,8 +1341,8 @@                             . (MonadIO io)                            => -- | @instance@ is the debug stream’s 'Vulkan.Core10.Handles.Instance'.                               Instance-                           -> -- | @messageSeverity@ is the 'DebugUtilsMessageSeverityFlagBitsEXT' severity-                              -- of this event\/message.+                           -> -- | @messageSeverity@ is a 'DebugUtilsMessageSeverityFlagBitsEXT' value+                              -- specifying the severity of this event\/message.                               DebugUtilsMessageSeverityFlagBitsEXT                            -> -- | @messageTypes@ is a bitmask of 'DebugUtilsMessageTypeFlagBitsEXT'                               -- specifying which type of event(s) to identify with this message.@@ -2043,6 +2043,24 @@  -- | VkDebugUtilsMessageSeverityFlagBitsEXT - Bitmask specifying which -- severities of events cause a debug messenger callback+--+-- = Description+--+-- Note+--+-- The values of 'DebugUtilsMessageSeverityFlagBitsEXT' are sorted based on+-- severity. The higher the flag value, the more severe the message. This+-- allows for simple boolean operation comparisons when looking at+-- 'DebugUtilsMessageSeverityFlagBitsEXT' values.+--+-- For example:+--+-- >     if (messageSeverity >= VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT) {+-- >         // Do something for warnings and errors+-- >     }+--+-- In addition, space has been left between the enums to allow for later+-- addition of new severities in between the existing values. -- -- = See Also --
src/Vulkan/Extensions/VK_EXT_depth_clip_enable.hs view
@@ -154,18 +154,19 @@ -- -- = Members ----- The members of the 'PhysicalDeviceDepthClipEnableFeaturesEXT' structure--- describe the following features:+-- This structure describes the following feature: -- -- = Description -- -- If the 'PhysicalDeviceDepthClipEnableFeaturesEXT' structure is included--- in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- it is filled with values indicating whether the feature is supported.--- 'PhysicalDeviceDepthClipEnableFeaturesEXT' /can/ also be included in the--- @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to enable this--- feature.+-- 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. 'PhysicalDeviceDepthClipEnableFeaturesEXT' /can/ also be used+-- in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to+-- selectively enable these features. -- -- == Valid Usage (Implicit) --
src/Vulkan/Extensions/VK_EXT_device_memory_report.hs view
@@ -114,9 +114,9 @@ -- instead of adding the new callback structure in this extension? -- -- __RESOLVED__: No. Our memory reporting layer that combines this--- information with other memory info it collects directly (e.g. bindings--- of resources to 'Vulkan.Core10.Handles.DeviceMemory') would have to--- intercept all entry points that take a+-- information with other memory information it collects directly (e.g.+-- bindings of resources to 'Vulkan.Core10.Handles.DeviceMemory') would+-- have to intercept all entry points that take a -- 'Vulkan.Core10.AllocationCallbacks.AllocationCallbacks' parameter and -- inject its own @pfnInternalAllocation@ and @pfnInternalFree@. That’s -- maybe doable for the extensions we know about, but not for ones we@@ -130,9 +130,9 @@ -- -- We’re interested in both alloc\/free and import\/unimport. The latter is -- fairly important for tracking (and avoiding double-counting) of--- swapchain images (still true with \"native swapchains\" based on--- external memory) and media\/camera interop. Though we might be able to--- handle this with additional+-- swapchain images (still true with “native swapchains” based on external+-- memory) and media\/camera interop. Though we might be able to handle+-- this with additional -- 'Vulkan.Core10.Enums.InternalAllocationType.InternalAllocationType' -- values, for import\/export we do want to be able to tie this to the -- external resource, which is one thing that the @memoryObjectId@ is for.@@ -153,7 +153,7 @@ -- do) leading up to 1.0. -- -- 'Vulkan.Core10.AllocationCallbacks.AllocationCallbacks' is described in--- a section called \"Host memory\" and the intro to it is very explicitly+-- a section called “Host memory” and the intro to it is very explicitly -- about host memory. The other callbacks are all inherently about host -- memory. But this extension is very focused on device memory. --@@ -201,7 +201,7 @@ -- in the same thread with the Vulkan commands, and the note is to remind -- the applications to handle this case properly. ----- 7) Should we add an additional \"allocation failed\" event type with+-- 7) Should we add an additional “allocation failed” event type with -- things like size and heap index reported? -- -- __RESOLVED__ Yes. This fits in well with the callback infrastructure@@ -305,18 +305,19 @@ -- -- = Members ----- The members of the 'PhysicalDeviceDeviceMemoryReportFeaturesEXT'--- structure describe the following features:+-- This structure describes the following feature: -- -- = Description -- -- If the 'PhysicalDeviceDeviceMemoryReportFeaturesEXT' structure is--- included in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- it is filled with a value indicating whether the feature is supported.--- 'PhysicalDeviceDeviceMemoryReportFeaturesEXT' /can/ also be used in the--- @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to enable the--- feature.+-- 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. 'PhysicalDeviceDeviceMemoryReportFeaturesEXT' /can/ also be+-- used in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to+-- selectively enable these features. -- -- == Valid Usage (Implicit) --@@ -482,7 +483,7 @@ -- usually will not yet exist when the application or tool receives the -- callback. @objectHandle@ will only exist when the create or allocate -- call that triggered the event returns, and if the allocation or import--- ends up failing @objectHandle@ won’t ever exist.+-- ends up failing @objectHandle@ will not ever exist. -- -- == Valid Usage (Implicit) --
src/Vulkan/Extensions/VK_EXT_device_memory_report.hs-boot view
@@ -114,9 +114,9 @@ -- instead of adding the new callback structure in this extension? -- -- __RESOLVED__: No. Our memory reporting layer that combines this--- information with other memory info it collects directly (e.g. bindings--- of resources to 'Vulkan.Core10.Handles.DeviceMemory') would have to--- intercept all entry points that take a+-- information with other memory information it collects directly (e.g.+-- bindings of resources to 'Vulkan.Core10.Handles.DeviceMemory') would+-- have to intercept all entry points that take a -- 'Vulkan.Core10.AllocationCallbacks.AllocationCallbacks' parameter and -- inject its own @pfnInternalAllocation@ and @pfnInternalFree@. That’s -- maybe doable for the extensions we know about, but not for ones we@@ -130,9 +130,9 @@ -- -- We’re interested in both alloc\/free and import\/unimport. The latter is -- fairly important for tracking (and avoiding double-counting) of--- swapchain images (still true with \"native swapchains\" based on--- external memory) and media\/camera interop. Though we might be able to--- handle this with additional+-- swapchain images (still true with “native swapchains” based on external+-- memory) and media\/camera interop. Though we might be able to handle+-- this with additional -- 'Vulkan.Core10.Enums.InternalAllocationType.InternalAllocationType' -- values, for import\/export we do want to be able to tie this to the -- external resource, which is one thing that the @memoryObjectId@ is for.@@ -153,7 +153,7 @@ -- do) leading up to 1.0. -- -- 'Vulkan.Core10.AllocationCallbacks.AllocationCallbacks' is described in--- a section called \"Host memory\" and the intro to it is very explicitly+-- a section called “Host memory” and the intro to it is very explicitly -- about host memory. The other callbacks are all inherently about host -- memory. But this extension is very focused on device memory. --@@ -201,7 +201,7 @@ -- in the same thread with the Vulkan commands, and the note is to remind -- the applications to handle this case properly. ----- 7) Should we add an additional \"allocation failed\" event type with+-- 7) Should we add an additional “allocation failed” event type with -- things like size and heap index reported? -- -- __RESOLVED__ Yes. This fits in well with the callback infrastructure
src/Vulkan/Extensions/VK_EXT_discard_rectangles.hs view
@@ -238,6 +238,11 @@ --     @pDiscardRectangles@ /must/ not cause a signed integer addition --     overflow --+-- -   #VUID-vkCmdSetDiscardRectangleEXT-viewportScissor2D-04788# If this+--     command is recorded in a secondary command buffer with+--     'Vulkan.Extensions.VK_NV_inherited_viewport_scissor.CommandBufferInheritanceViewportScissorInfoNV'::@viewportScissor2D@+--     enabled, then this function /must/ not be called.+-- -- == Valid Usage (Implicit) -- -- -   #VUID-vkCmdSetDiscardRectangleEXT-commandBuffer-parameter#@@ -309,17 +314,15 @@ -- | VkPhysicalDeviceDiscardRectanglePropertiesEXT - Structure describing -- discard rectangle limits that can be supported by an implementation ----- = Members------ The members of the 'PhysicalDeviceDiscardRectanglePropertiesEXT'--- structure describe the following implementation-dependent limits:--- -- = Description -- -- If the 'PhysicalDeviceDiscardRectanglePropertiesEXT' structure is--- included in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2',--- it is filled with the implementation-dependent limits.+-- 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) --
src/Vulkan/Extensions/VK_EXT_display_control.hs view
@@ -296,8 +296,8 @@                           Device                        -> -- | @display@ is the display whose power state is modified.                           DisplayKHR-                       -> -- | @pDisplayPowerInfo@ is a 'DisplayPowerInfoEXT' structure specifying the-                          -- new power state of @display@.+                       -> -- | @pDisplayPowerInfo@ is a pointer to a 'DisplayPowerInfoEXT' structure+                          -- specifying the new power state of @display@.                           DisplayPowerInfoEXT                        -> io () displayPowerControlEXT device display displayPowerInfo = liftIO . evalContT $ do@@ -523,7 +523,9 @@                           Device                        -> -- | @swapchain@ is the swapchain from which to query the counter value.                           SwapchainKHR-                       -> -- | @counter@ is the counter to query.+                       -> -- | @counter@ is a+                          -- 'Vulkan.Extensions.VK_EXT_display_surface_counter.SurfaceCounterFlagBitsEXT'+                          -- value specifying the counter to query.                           SurfaceCounterFlagBitsEXT                        -> io (("counterValue" ::: Word64)) getSwapchainCounterEXT device swapchain counter = liftIO . evalContT $ do
src/Vulkan/Extensions/VK_EXT_display_surface_counter.hs view
@@ -348,7 +348,10 @@     poke ((p `plusPtr` 32 :: Ptr Extent2D)) (zero)     poke ((p `plusPtr` 40 :: Ptr Extent2D)) (zero)     poke ((p `plusPtr` 48 :: Ptr Word32)) (zero)+    poke ((p `plusPtr` 52 :: Ptr SurfaceTransformFlagsKHR)) (zero)     poke ((p `plusPtr` 56 :: Ptr SurfaceTransformFlagBitsKHR)) (zero)+    poke ((p `plusPtr` 60 :: Ptr CompositeAlphaFlagsKHR)) (zero)+    poke ((p `plusPtr` 64 :: Ptr ImageUsageFlags)) (zero)     f  instance FromCStruct SurfaceCapabilities2EXT where
src/Vulkan/Extensions/VK_EXT_extended_dynamic_state.hs view
@@ -486,6 +486,11 @@ --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multiViewport multiple viewports> --     feature is not enabled, @viewportCount@ /must/ be @1@ --+-- -   #VUID-vkCmdSetViewportWithCountEXT-commandBuffer-04819#+--     @commandBuffer@ /must/ not have+--     'Vulkan.Extensions.VK_NV_inherited_viewport_scissor.CommandBufferInheritanceViewportScissorInfoNV'::@viewportScissor2D@+--     enabled.+-- -- == Valid Usage (Implicit) -- -- -   #VUID-vkCmdSetViewportWithCountEXT-commandBuffer-parameter#@@ -583,6 +588,11 @@ --     (@offset.y@ + @extent.height@) /must/ not cause a signed integer --     addition overflow for any element of @pScissors@ --+-- -   #VUID-vkCmdSetScissorWithCountEXT-commandBuffer-04820#+--     @commandBuffer@ /must/ not have+--     'Vulkan.Extensions.VK_NV_inherited_viewport_scissor.CommandBufferInheritanceViewportScissorInfoNV'::@viewportScissor2D@+--     enabled.+-- -- == Valid Usage (Implicit) -- -- -   #VUID-vkCmdSetScissorWithCountEXT-commandBuffer-parameter#@@ -664,7 +674,7 @@ -- bound size of the vertex buffer starting from the corresponding elements -- of @pBuffers@[i] plus @pOffsets@[i]. All vertex input attributes that -- use each of these bindings will use these updated addresses in their--- address calculations for subsequent draw commands.+-- address calculations for subsequent drawing commands. -- -- If the bound pipeline state object was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT'@@ -710,12 +720,6 @@ --     @pBuffers@ is 'Vulkan.Core10.APIConstants.NULL_HANDLE', then the --     corresponding element of @pOffsets@ /must/ be zero ----- -   #VUID-vkCmdBindVertexBuffers2EXT-pStrides-03361# If the bound---     pipeline state object was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT'---     dynamic state enabled then @pStrides@ /must/ not be @NULL@,---     otherwise @pStrides@ /must/ be @NULL@--- -- -   #VUID-vkCmdBindVertexBuffers2EXT-pStrides-03362# If @pStrides@ is --     not @NULL@ each element of @pStrides@ /must/ be less than or equal --     to@@ -723,10 +727,13 @@ -- -- -   #VUID-vkCmdBindVertexBuffers2EXT-pStrides-03363# If @pStrides@ is --     not @NULL@ each element of @pStrides@ /must/ be greater than or---     equal to the maximum extent of of all vertex input attributes---     fetched from the corresponding binding, where the extent is---     calculated as the VkVertexInputAttributeDescription::offset plus---     VkVertexInputAttributeDescription::format size+--     equal to the maximum extent of all vertex input attributes fetched+--     from the corresponding binding, where the extent is calculated as+--     the+--     'Vulkan.Core10.Pipeline.VertexInputAttributeDescription'::@offset@+--     plus+--     'Vulkan.Core10.Pipeline.VertexInputAttributeDescription'::@format@+--     size -- -- == Valid Usage (Implicit) --@@ -801,11 +808,10 @@                             ("buffers" ::: Vector Buffer)                          -> -- | @pOffsets@ is a pointer to an array of buffer offsets.                             ("offsets" ::: Vector DeviceSize)-                         -> -- | @pSizes@ is an optional array of the size in bytes of vertex data bound-                            -- from @pBuffers@.+                         -> -- | @pSizes@ is @NULL@ or a pointer to an array of the size in bytes of+                            -- vertex data bound from @pBuffers@.                             ("sizes" ::: Vector DeviceSize)-                         -> -- | @pStrides@ is optional, and when not @NULL@ is a pointer to an array of-                            -- buffer strides.+                         -> -- | @pStrides@ is @NULL@ or a pointer to an array of buffer strides.                             ("strides" ::: Vector DeviceSize)                          -> io () cmdBindVertexBuffers2EXT commandBuffer firstBinding buffers offsets sizes strides = liftIO . evalContT $ do@@ -1314,8 +1320,9 @@                    => -- | @commandBuffer@ is the command buffer into which the command will be                       -- recorded.                       CommandBuffer-                   -> -- | @faceMask@ is a bitmask of VkStencilFaceFlagBits specifying the set of-                      -- stencil state for which to update the stencil operation.+                   -> -- | @faceMask@ is a bitmask of+                      -- 'Vulkan.Core10.Enums.StencilFaceFlagBits.StencilFaceFlagBits' specifying+                      -- the set of stencil state for which to update the stencil operation.                       ("faceMask" ::: StencilFaceFlags)                    -> -- | @failOp@ is a 'Vulkan.Core10.Enums.StencilOp.StencilOp' value specifying                       -- the action performed on samples that fail the stencil test.@@ -1346,18 +1353,19 @@ -- -- = Members ----- The members of the 'PhysicalDeviceExtendedDynamicStateFeaturesEXT'--- structure describe the following features:+-- This structure describes the following feature: -- -- = Description -- -- If the 'PhysicalDeviceExtendedDynamicStateFeaturesEXT' structure is--- included in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- it is filled with values indicating whether the feature is supported.--- 'PhysicalDeviceExtendedDynamicStateFeaturesEXT' /can/ also be used in--- the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to enable--- features.+-- included in the @pNext@ chain of the+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2'+-- structure passed to+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceFeatures2',+-- it is filled in to indicate whether each corresponding feature is+-- supported. 'PhysicalDeviceExtendedDynamicStateFeaturesEXT' /can/ also be+-- used in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to+-- selectively enable these features. -- -- == Valid Usage (Implicit) --
+ src/Vulkan/Extensions/VK_EXT_extended_dynamic_state2.hs view
@@ -0,0 +1,670 @@+{-# language CPP #-}+-- | = Name+--+-- VK_EXT_extended_dynamic_state2 - device extension+--+-- == VK_EXT_extended_dynamic_state2+--+-- [__Name String__]+--     @VK_EXT_extended_dynamic_state2@+--+-- [__Extension Type__]+--     Device extension+--+-- [__Registered Extension Number__]+--     378+--+-- [__Revision__]+--     1+--+-- [__Extension and Version Dependencies__]+--+--     -   Requires Vulkan 1.0+--+--     -   Requires @VK_KHR_get_physical_device_properties2@+--+-- [__Contact__]+--+--     -   Vikram Kushwaha+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?title=VK_EXT_extended_dynamic_state2:%20&body=@vkushwaha-nv%20 >+--+-- == Other Extension Metadata+--+-- [__Last Modified Date__]+--     2021-04-12+--+-- [__IP Status__]+--     No known IP claims.+--+-- [__Contributors__]+--+--     -   Vikram Kushwaha, NVIDIA+--+--     -   Piers Daniell, NVIDIA+--+--     -   Jeff Bolz, NVIDIA+--+-- == Description+--+-- This extension adds some more dynamic state to support applications that+-- need to reduce the number of pipeline state objects they compile and+-- bind.+--+-- == New Commands+--+-- -   'cmdSetDepthBiasEnableEXT'+--+-- -   'cmdSetLogicOpEXT'+--+-- -   'cmdSetPatchControlPointsEXT'+--+-- -   'cmdSetPrimitiveRestartEnableEXT'+--+-- -   'cmdSetRasterizerDiscardEnableEXT'+--+-- == New Structures+--+-- -   Extending+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',+--     'Vulkan.Core10.Device.DeviceCreateInfo':+--+--     -   'PhysicalDeviceExtendedDynamicState2FeaturesEXT'+--+-- == New Enum Constants+--+-- -   'EXT_EXTENDED_DYNAMIC_STATE_2_EXTENSION_NAME'+--+-- -   'EXT_EXTENDED_DYNAMIC_STATE_2_SPEC_VERSION'+--+-- -   Extending 'Vulkan.Core10.Enums.DynamicState.DynamicState':+--+--     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS_ENABLE_EXT'+--+--     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LOGIC_OP_EXT'+--+--     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT'+--+--     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT'+--+--     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT'+--+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT'+--+-- == Version History+--+-- -   Revision 1, 2021-04-12 (Vikram Kushwaha)+--+--     -   Internal revisions+--+-- = See Also+--+-- 'PhysicalDeviceExtendedDynamicState2FeaturesEXT',+-- 'cmdSetDepthBiasEnableEXT', 'cmdSetLogicOpEXT',+-- 'cmdSetPatchControlPointsEXT', 'cmdSetPrimitiveRestartEnableEXT',+-- 'cmdSetRasterizerDiscardEnableEXT'+--+-- = Document Notes+--+-- For more information, see the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state2 Vulkan Specification>+--+-- This page is a generated document. Fixes and changes should be made to+-- the generator scripts, not directly.+module Vulkan.Extensions.VK_EXT_extended_dynamic_state2  ( cmdSetPatchControlPointsEXT+                                                         , cmdSetRasterizerDiscardEnableEXT+                                                         , cmdSetDepthBiasEnableEXT+                                                         , cmdSetLogicOpEXT+                                                         , cmdSetPrimitiveRestartEnableEXT+                                                         , PhysicalDeviceExtendedDynamicState2FeaturesEXT(..)+                                                         , EXT_EXTENDED_DYNAMIC_STATE_2_SPEC_VERSION+                                                         , pattern EXT_EXTENDED_DYNAMIC_STATE_2_SPEC_VERSION+                                                         , EXT_EXTENDED_DYNAMIC_STATE_2_EXTENSION_NAME+                                                         , pattern EXT_EXTENDED_DYNAMIC_STATE_2_EXTENSION_NAME+                                                         ) where++import Vulkan.Internal.Utils (traceAroundEvent)+import Control.Monad (unless)+import Control.Monad.IO.Class (liftIO)+import Foreign.Marshal.Alloc (allocaBytesAligned)+import GHC.IO (throwIO)+import GHC.Ptr (nullFunPtr)+import Foreign.Ptr (nullPtr)+import Foreign.Ptr (plusPtr)+import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (FromCStruct(..))+import Vulkan.CStruct (ToCStruct)+import Vulkan.CStruct (ToCStruct(..))+import Vulkan.Zero (Zero(..))+import Control.Monad.IO.Class (MonadIO)+import Data.String (IsString)+import Data.Typeable (Typeable)+import Foreign.Storable (Storable)+import Foreign.Storable (Storable(peek))+import Foreign.Storable (Storable(poke))+import qualified Foreign.Storable (Storable(..))+import GHC.Generics (Generic)+import GHC.IO.Exception (IOErrorType(..))+import GHC.IO.Exception (IOException(..))+import Foreign.Ptr (FunPtr)+import Foreign.Ptr (Ptr)+import Data.Word (Word32)+import Data.Kind (Type)+import Vulkan.Core10.FundamentalTypes (bool32ToBool)+import Vulkan.Core10.FundamentalTypes (boolToBool32)+import Vulkan.NamedType ((:::))+import Vulkan.Core10.FundamentalTypes (Bool32)+import Vulkan.Core10.FundamentalTypes (Bool32(..))+import Vulkan.Core10.Handles (CommandBuffer)+import Vulkan.Core10.Handles (CommandBuffer(..))+import Vulkan.Core10.Handles (CommandBuffer_T)+import Vulkan.Dynamic (DeviceCmds(pVkCmdSetDepthBiasEnableEXT))+import Vulkan.Dynamic (DeviceCmds(pVkCmdSetLogicOpEXT))+import Vulkan.Dynamic (DeviceCmds(pVkCmdSetPatchControlPointsEXT))+import Vulkan.Dynamic (DeviceCmds(pVkCmdSetPrimitiveRestartEnableEXT))+import Vulkan.Dynamic (DeviceCmds(pVkCmdSetRasterizerDiscardEnableEXT))+import Vulkan.Core10.Enums.LogicOp (LogicOp)+import Vulkan.Core10.Enums.LogicOp (LogicOp(..))+import Vulkan.Core10.Enums.StructureType (StructureType)+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT))+foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdSetPatchControlPointsEXT+  :: FunPtr (Ptr CommandBuffer_T -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> IO ()++-- | vkCmdSetPatchControlPointsEXT - specifies the number of control points+-- per patch+--+-- = Description+--+-- This command sets the state for a given draw when the graphics pipeline+-- is created with+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT'+-- set in+-- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.+--+-- == Valid Usage+--+-- -   #VUID-vkCmdSetPatchControlPointsEXT-None-04873# The+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState2PatchControlPoints extendedDynamicState2PatchControlPoints>+--     feature /must/ be enabled+--+-- -   #VUID-vkCmdSetPatchControlPointsEXT-patchControlPoints-04874#+--     @patchControlPoints@ /must/ be greater than zero and less than or+--     equal to+--     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxTessellationPatchSize@+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCmdSetPatchControlPointsEXT-commandBuffer-parameter#+--     @commandBuffer@ /must/ be a valid+--     'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   #VUID-vkCmdSetPatchControlPointsEXT-commandBuffer-recording#+--     @commandBuffer@ /must/ be in the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>+--+-- -   #VUID-vkCmdSetPatchControlPointsEXT-commandBuffer-cmdpool# The+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support graphics operations+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-pipeline-stages-types Pipeline Type> |+-- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+=====================================================================================================================================++-- | Primary                                                                                                                    | Both                                                                                                                   | Graphics                                                                                                              |                                                                                                                                     |+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                       |                                                                                                                                     |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- 'Vulkan.Core10.Handles.CommandBuffer'+cmdSetPatchControlPointsEXT :: forall io+                             . (MonadIO io)+                            => -- | @commandBuffer@ is the command buffer into which the command will be+                               -- recorded.+                               CommandBuffer+                            -> -- | @patchControlPoints@ specifies number of control points per patch.+                               ("patchControlPoints" ::: Word32)+                            -> io ()+cmdSetPatchControlPointsEXT commandBuffer patchControlPoints = liftIO $ do+  let vkCmdSetPatchControlPointsEXTPtr = pVkCmdSetPatchControlPointsEXT (deviceCmds (commandBuffer :: CommandBuffer))+  unless (vkCmdSetPatchControlPointsEXTPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetPatchControlPointsEXT is null" Nothing Nothing+  let vkCmdSetPatchControlPointsEXT' = mkVkCmdSetPatchControlPointsEXT vkCmdSetPatchControlPointsEXTPtr+  traceAroundEvent "vkCmdSetPatchControlPointsEXT" (vkCmdSetPatchControlPointsEXT' (commandBufferHandle (commandBuffer)) (patchControlPoints))+  pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdSetRasterizerDiscardEnableEXT+  :: FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) -> Ptr CommandBuffer_T -> Bool32 -> IO ()++-- | vkCmdSetRasterizerDiscardEnableEXT - Control whether primitives are+-- discarded before the rasterization stage for a command buffer+--+-- = Description+--+-- This command sets the state for a given draw when the graphics pipeline+-- is created with+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT'+-- set in+-- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.+--+-- == Valid Usage+--+-- -   #VUID-vkCmdSetRasterizerDiscardEnableEXT-None-04871# The+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState2 extendedDynamicState2>+--     feature /must/ be enabled+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCmdSetRasterizerDiscardEnableEXT-commandBuffer-parameter#+--     @commandBuffer@ /must/ be a valid+--     'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   #VUID-vkCmdSetRasterizerDiscardEnableEXT-commandBuffer-recording#+--     @commandBuffer@ /must/ be in the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>+--+-- -   #VUID-vkCmdSetRasterizerDiscardEnableEXT-commandBuffer-cmdpool# The+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support graphics operations+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-pipeline-stages-types Pipeline Type> |+-- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+=====================================================================================================================================++-- | Primary                                                                                                                    | Both                                                                                                                   | Graphics                                                                                                              |                                                                                                                                     |+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                       |                                                                                                                                     |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Handles.CommandBuffer'+cmdSetRasterizerDiscardEnableEXT :: forall io+                                  . (MonadIO io)+                                 => -- | @commandBuffer@ is the command buffer into which the command will be+                                    -- recorded.+                                    CommandBuffer+                                 -> -- | @rasterizerDiscardEnable@ controls whether primitives are discarded+                                    -- immediately before the rasterization stage.+                                    ("rasterizerDiscardEnable" ::: Bool)+                                 -> io ()+cmdSetRasterizerDiscardEnableEXT commandBuffer rasterizerDiscardEnable = liftIO $ do+  let vkCmdSetRasterizerDiscardEnableEXTPtr = pVkCmdSetRasterizerDiscardEnableEXT (deviceCmds (commandBuffer :: CommandBuffer))+  unless (vkCmdSetRasterizerDiscardEnableEXTPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetRasterizerDiscardEnableEXT is null" Nothing Nothing+  let vkCmdSetRasterizerDiscardEnableEXT' = mkVkCmdSetRasterizerDiscardEnableEXT vkCmdSetRasterizerDiscardEnableEXTPtr+  traceAroundEvent "vkCmdSetRasterizerDiscardEnableEXT" (vkCmdSetRasterizerDiscardEnableEXT' (commandBufferHandle (commandBuffer)) (boolToBool32 (rasterizerDiscardEnable)))+  pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdSetDepthBiasEnableEXT+  :: FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) -> Ptr CommandBuffer_T -> Bool32 -> IO ()++-- | vkCmdSetDepthBiasEnableEXT - Controls whether to bias fragment depth+-- values for a command buffer+--+-- = Description+--+-- This command sets the state for a given draw when the graphics pipeline+-- is created with+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS_ENABLE_EXT'+-- set in+-- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.+--+-- == Valid Usage+--+-- -   #VUID-vkCmdSetDepthBiasEnableEXT-None-04872# The+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState2 extendedDynamicState2>+--     feature /must/ be enabled+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCmdSetDepthBiasEnableEXT-commandBuffer-parameter#+--     @commandBuffer@ /must/ be a valid+--     'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   #VUID-vkCmdSetDepthBiasEnableEXT-commandBuffer-recording#+--     @commandBuffer@ /must/ be in the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>+--+-- -   #VUID-vkCmdSetDepthBiasEnableEXT-commandBuffer-cmdpool# The+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support graphics operations+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-pipeline-stages-types Pipeline Type> |+-- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+=====================================================================================================================================++-- | Primary                                                                                                                    | Both                                                                                                                   | Graphics                                                                                                              |                                                                                                                                     |+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                       |                                                                                                                                     |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Handles.CommandBuffer'+cmdSetDepthBiasEnableEXT :: forall io+                          . (MonadIO io)+                         => -- | @commandBuffer@ is the command buffer into which the command will be+                            -- recorded.+                            CommandBuffer+                         -> -- | @depthBiasEnable@ controls whether to bias fragment depth values.+                            ("depthBiasEnable" ::: Bool)+                         -> io ()+cmdSetDepthBiasEnableEXT commandBuffer depthBiasEnable = liftIO $ do+  let vkCmdSetDepthBiasEnableEXTPtr = pVkCmdSetDepthBiasEnableEXT (deviceCmds (commandBuffer :: CommandBuffer))+  unless (vkCmdSetDepthBiasEnableEXTPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetDepthBiasEnableEXT is null" Nothing Nothing+  let vkCmdSetDepthBiasEnableEXT' = mkVkCmdSetDepthBiasEnableEXT vkCmdSetDepthBiasEnableEXTPtr+  traceAroundEvent "vkCmdSetDepthBiasEnableEXT" (vkCmdSetDepthBiasEnableEXT' (commandBufferHandle (commandBuffer)) (boolToBool32 (depthBiasEnable)))+  pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdSetLogicOpEXT+  :: FunPtr (Ptr CommandBuffer_T -> LogicOp -> IO ()) -> Ptr CommandBuffer_T -> LogicOp -> IO ()++-- | vkCmdSetLogicOpEXT - selects which logical operation to apply for blend+-- state+--+-- = Description+--+-- This command sets the state for a given draw when the graphics pipeline+-- is created with+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LOGIC_OP_EXT' set in+-- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.+--+-- == Valid Usage+--+-- -   #VUID-vkCmdSetLogicOpEXT-None-04867# The+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState2LogicOp extendedDynamicState2LogicOp>+--     feature /must/ be enabled+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCmdSetLogicOpEXT-commandBuffer-parameter# @commandBuffer@+--     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   #VUID-vkCmdSetLogicOpEXT-logicOp-parameter# @logicOp@ /must/ be a+--     valid 'Vulkan.Core10.Enums.LogicOp.LogicOp' value+--+-- -   #VUID-vkCmdSetLogicOpEXT-commandBuffer-recording# @commandBuffer@+--     /must/ be in the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>+--+-- -   #VUID-vkCmdSetLogicOpEXT-commandBuffer-cmdpool# The+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support graphics operations+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-pipeline-stages-types Pipeline Type> |+-- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+=====================================================================================================================================++-- | Primary                                                                                                                    | Both                                                                                                                   | Graphics                                                                                                              |                                                                                                                                     |+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                       |                                                                                                                                     |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- 'Vulkan.Core10.Handles.CommandBuffer',+-- 'Vulkan.Core10.Enums.LogicOp.LogicOp'+cmdSetLogicOpEXT :: forall io+                  . (MonadIO io)+                 => -- | @commandBuffer@ is the command buffer into which the command will be+                    -- recorded.+                    CommandBuffer+                 -> -- | @logicOp@ specifies the logical operation to apply for blend state.+                    LogicOp+                 -> io ()+cmdSetLogicOpEXT commandBuffer logicOp = liftIO $ do+  let vkCmdSetLogicOpEXTPtr = pVkCmdSetLogicOpEXT (deviceCmds (commandBuffer :: CommandBuffer))+  unless (vkCmdSetLogicOpEXTPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetLogicOpEXT is null" Nothing Nothing+  let vkCmdSetLogicOpEXT' = mkVkCmdSetLogicOpEXT vkCmdSetLogicOpEXTPtr+  traceAroundEvent "vkCmdSetLogicOpEXT" (vkCmdSetLogicOpEXT' (commandBufferHandle (commandBuffer)) (logicOp))+  pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdSetPrimitiveRestartEnableEXT+  :: FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) -> Ptr CommandBuffer_T -> Bool32 -> IO ()++-- | vkCmdSetPrimitiveRestartEnableEXT - controls whether a special vertex+-- index value is treated as restarting the assembly of primitives+--+-- = Description+--+-- This command sets the state for a given draw when the graphics pipeline+-- is created with+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT'+-- set in+-- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.+--+-- == Valid Usage+--+-- -   #VUID-vkCmdSetPrimitiveRestartEnableEXT-None-04866# The+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-extendedDynamicState2 extendedDynamicState2>+--     feature /must/ be enabled+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCmdSetPrimitiveRestartEnableEXT-commandBuffer-parameter#+--     @commandBuffer@ /must/ be a valid+--     'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   #VUID-vkCmdSetPrimitiveRestartEnableEXT-commandBuffer-recording#+--     @commandBuffer@ /must/ be in the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>+--+-- -   #VUID-vkCmdSetPrimitiveRestartEnableEXT-commandBuffer-cmdpool# The+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support graphics operations+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-pipeline-stages-types Pipeline Type> |+-- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+=====================================================================================================================================++-- | Primary                                                                                                                    | Both                                                                                                                   | Graphics                                                                                                              |                                                                                                                                     |+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                       |                                                                                                                                     |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Handles.CommandBuffer'+cmdSetPrimitiveRestartEnableEXT :: forall io+                                 . (MonadIO io)+                                => -- | @commandBuffer@ is the command buffer into which the command will be+                                   -- recorded.+                                   CommandBuffer+                                -> -- | @primitiveRestartEnable@ controls whether a special vertex index value+                                   -- is treated as restarting the assembly of primitives. It behaves in the+                                   -- same way as+                                   -- 'Vulkan.Core10.Pipeline.PipelineInputAssemblyStateCreateInfo'::@primitiveRestartEnable@+                                   ("primitiveRestartEnable" ::: Bool)+                                -> io ()+cmdSetPrimitiveRestartEnableEXT commandBuffer primitiveRestartEnable = liftIO $ do+  let vkCmdSetPrimitiveRestartEnableEXTPtr = pVkCmdSetPrimitiveRestartEnableEXT (deviceCmds (commandBuffer :: CommandBuffer))+  unless (vkCmdSetPrimitiveRestartEnableEXTPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetPrimitiveRestartEnableEXT is null" Nothing Nothing+  let vkCmdSetPrimitiveRestartEnableEXT' = mkVkCmdSetPrimitiveRestartEnableEXT vkCmdSetPrimitiveRestartEnableEXTPtr+  traceAroundEvent "vkCmdSetPrimitiveRestartEnableEXT" (vkCmdSetPrimitiveRestartEnableEXT' (commandBufferHandle (commandBuffer)) (boolToBool32 (primitiveRestartEnable)))+  pure $ ()+++-- | VkPhysicalDeviceExtendedDynamicState2FeaturesEXT - Structure describing+-- what extended dynamic state can be used+--+-- = Members+--+-- This structure describes the following features:+--+-- = Description+--+-- If the 'PhysicalDeviceExtendedDynamicState2FeaturesEXT' 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. 'PhysicalDeviceExtendedDynamicState2FeaturesEXT' /can/ also+-- be used in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo'+-- to selectively enable these features.+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data PhysicalDeviceExtendedDynamicState2FeaturesEXT = PhysicalDeviceExtendedDynamicState2FeaturesEXT+  { -- | #features-extendedDynamicState2# @extendedDynamicState2@ indicates that+    -- the implementation supports the following dynamic states:+    --+    -- -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS_ENABLE_EXT'+    --+    -- -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT'+    --+    -- -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT'+    extendedDynamicState2 :: Bool+  , -- | #features-extendedDynamicState2LogicOp# @extendedDynamicState2LogicOp@+    -- indicates that the implementation supports the following dynamic state:+    --+    -- -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LOGIC_OP_EXT'+    extendedDynamicState2LogicOp :: Bool+  , -- | #features-extendedDynamicState2PatchControlPoints#+    -- @extendedDynamicState2PatchControlPoints@ indicates that the+    -- implementation supports the following dynamic state:+    --+    -- -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT'+    extendedDynamicState2PatchControlPoints :: Bool+  }+  deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PhysicalDeviceExtendedDynamicState2FeaturesEXT)+#endif+deriving instance Show PhysicalDeviceExtendedDynamicState2FeaturesEXT++instance ToCStruct PhysicalDeviceExtendedDynamicState2FeaturesEXT where+  withCStruct x f = allocaBytesAligned 32 8 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p PhysicalDeviceExtendedDynamicState2FeaturesEXT{..} f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (extendedDynamicState2))+    poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (extendedDynamicState2LogicOp))+    poke ((p `plusPtr` 24 :: Ptr Bool32)) (boolToBool32 (extendedDynamicState2PatchControlPoints))+    f+  cStructSize = 32+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))+    poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (zero))+    poke ((p `plusPtr` 24 :: Ptr Bool32)) (boolToBool32 (zero))+    f++instance FromCStruct PhysicalDeviceExtendedDynamicState2FeaturesEXT where+  peekCStruct p = do+    extendedDynamicState2 <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))+    extendedDynamicState2LogicOp <- peek @Bool32 ((p `plusPtr` 20 :: Ptr Bool32))+    extendedDynamicState2PatchControlPoints <- peek @Bool32 ((p `plusPtr` 24 :: Ptr Bool32))+    pure $ PhysicalDeviceExtendedDynamicState2FeaturesEXT+             (bool32ToBool extendedDynamicState2) (bool32ToBool extendedDynamicState2LogicOp) (bool32ToBool extendedDynamicState2PatchControlPoints)++instance Storable PhysicalDeviceExtendedDynamicState2FeaturesEXT where+  sizeOf ~_ = 32+  alignment ~_ = 8+  peek = peekCStruct+  poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero PhysicalDeviceExtendedDynamicState2FeaturesEXT where+  zero = PhysicalDeviceExtendedDynamicState2FeaturesEXT+           zero+           zero+           zero+++type EXT_EXTENDED_DYNAMIC_STATE_2_SPEC_VERSION = 1++-- No documentation found for TopLevel "VK_EXT_EXTENDED_DYNAMIC_STATE_2_SPEC_VERSION"+pattern EXT_EXTENDED_DYNAMIC_STATE_2_SPEC_VERSION :: forall a . Integral a => a+pattern EXT_EXTENDED_DYNAMIC_STATE_2_SPEC_VERSION = 1+++type EXT_EXTENDED_DYNAMIC_STATE_2_EXTENSION_NAME = "VK_EXT_extended_dynamic_state2"++-- No documentation found for TopLevel "VK_EXT_EXTENDED_DYNAMIC_STATE_2_EXTENSION_NAME"+pattern EXT_EXTENDED_DYNAMIC_STATE_2_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a+pattern EXT_EXTENDED_DYNAMIC_STATE_2_EXTENSION_NAME = "VK_EXT_extended_dynamic_state2"+
+ src/Vulkan/Extensions/VK_EXT_extended_dynamic_state2.hs-boot view
@@ -0,0 +1,127 @@+{-# language CPP #-}+-- | = Name+--+-- VK_EXT_extended_dynamic_state2 - device extension+--+-- == VK_EXT_extended_dynamic_state2+--+-- [__Name String__]+--     @VK_EXT_extended_dynamic_state2@+--+-- [__Extension Type__]+--     Device extension+--+-- [__Registered Extension Number__]+--     378+--+-- [__Revision__]+--     1+--+-- [__Extension and Version Dependencies__]+--+--     -   Requires Vulkan 1.0+--+--     -   Requires @VK_KHR_get_physical_device_properties2@+--+-- [__Contact__]+--+--     -   Vikram Kushwaha+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?title=VK_EXT_extended_dynamic_state2:%20&body=@vkushwaha-nv%20 >+--+-- == Other Extension Metadata+--+-- [__Last Modified Date__]+--     2021-04-12+--+-- [__IP Status__]+--     No known IP claims.+--+-- [__Contributors__]+--+--     -   Vikram Kushwaha, NVIDIA+--+--     -   Piers Daniell, NVIDIA+--+--     -   Jeff Bolz, NVIDIA+--+-- == Description+--+-- This extension adds some more dynamic state to support applications that+-- need to reduce the number of pipeline state objects they compile and+-- bind.+--+-- == New Commands+--+-- -   'cmdSetDepthBiasEnableEXT'+--+-- -   'cmdSetLogicOpEXT'+--+-- -   'cmdSetPatchControlPointsEXT'+--+-- -   'cmdSetPrimitiveRestartEnableEXT'+--+-- -   'cmdSetRasterizerDiscardEnableEXT'+--+-- == New Structures+--+-- -   Extending+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',+--     'Vulkan.Core10.Device.DeviceCreateInfo':+--+--     -   'PhysicalDeviceExtendedDynamicState2FeaturesEXT'+--+-- == New Enum Constants+--+-- -   'EXT_EXTENDED_DYNAMIC_STATE_2_EXTENSION_NAME'+--+-- -   'EXT_EXTENDED_DYNAMIC_STATE_2_SPEC_VERSION'+--+-- -   Extending 'Vulkan.Core10.Enums.DynamicState.DynamicState':+--+--     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS_ENABLE_EXT'+--+--     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LOGIC_OP_EXT'+--+--     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT'+--+--     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT'+--+--     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT'+--+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT'+--+-- == Version History+--+-- -   Revision 1, 2021-04-12 (Vikram Kushwaha)+--+--     -   Internal revisions+--+-- = See Also+--+-- 'PhysicalDeviceExtendedDynamicState2FeaturesEXT',+-- 'cmdSetDepthBiasEnableEXT', 'cmdSetLogicOpEXT',+-- 'cmdSetPatchControlPointsEXT', 'cmdSetPrimitiveRestartEnableEXT',+-- 'cmdSetRasterizerDiscardEnableEXT'+--+-- = Document Notes+--+-- For more information, see the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state2 Vulkan Specification>+--+-- This page is a generated document. Fixes and changes should be made to+-- the generator scripts, not directly.+module Vulkan.Extensions.VK_EXT_extended_dynamic_state2  (PhysicalDeviceExtendedDynamicState2FeaturesEXT) where++import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (ToCStruct)+import Data.Kind (Type)++data PhysicalDeviceExtendedDynamicState2FeaturesEXT++instance ToCStruct PhysicalDeviceExtendedDynamicState2FeaturesEXT+instance Show PhysicalDeviceExtendedDynamicState2FeaturesEXT++instance FromCStruct PhysicalDeviceExtendedDynamicState2FeaturesEXT+
src/Vulkan/Extensions/VK_EXT_external_memory_host.hs view
@@ -97,55 +97,55 @@ -- -- 1) What memory type has to be used to import host pointers? ----- RESOLVED: Depends on the implementation. Applications have to use the--- new 'getMemoryHostPointerPropertiesEXT' command to query the supported--- memory types for a particular host pointer. The reported memory types--- may include memory types that come from a memory heap that is otherwise--- not usable for regular memory object allocation and thus such a heap’s--- size may be zero.+-- __RESOLVED__: Depends on the implementation. Applications have to use+-- the new 'getMemoryHostPointerPropertiesEXT' command to query the+-- supported memory types for a particular host pointer. The reported+-- memory types may include memory types that come from a memory heap that+-- is otherwise not usable for regular memory object allocation and thus+-- such a heap’s size may be zero. -- -- 2) Can the application still access the contents of the host allocation -- after importing? ----- RESOLVED: Yes. However, usual synchronization requirements apply.+-- __RESOLVED__: Yes. However, usual synchronization requirements apply. -- -- 3) Can the application free the host allocation? ----- RESOLVED: No, it violates valid usage conditions. Using the memory+-- __RESOLVED__: No, it violates valid usage conditions. Using the memory -- object imported from a host allocation that’s already freed thus results -- in undefined behavior. -- -- 4) Is 'Vulkan.Core10.Memory.mapMemory' expected to return the same host -- address which was specified when importing it to the memory object? ----- RESOLVED: No. Implementations are allowed to return the same address but--- it’s not required. Some implementations might return a different virtual--- mapping of the allocation, although the same physical pages will be--- used.+-- __RESOLVED__: No. Implementations are allowed to return the same address+-- but it’s not required. Some implementations might return a different+-- virtual mapping of the allocation, although the same physical pages will+-- be used. -- -- 5) Is there any limitation on the alignment of the host pointer and\/or -- size? ----- RESOLVED: Yes. Both the address and the size have to be an integer+-- __RESOLVED__: Yes. Both the address and the size have to be an integer -- multiple of @minImportedHostPointerAlignment@. In addition, some -- platforms and foreign devices may have additional restrictions. -- -- 6) Can the same host allocation be imported multiple times into a given -- physical device? ----- RESOLVED: No, at least not guaranteed by this extension. Some platforms--- do not allow locking the same physical pages for device access multiple--- times, so attempting to do it may result in undefined behavior.+-- __RESOLVED__: No, at least not guaranteed by this extension. Some+-- platforms do not allow locking the same physical pages for device access+-- multiple times, so attempting to do it may result in undefined behavior. -- -- 7) Does this extension support exporting the new handle type? ----- RESOLVED: No.+-- __RESOLVED__: No. -- -- 8) Should we include the possibility to import host mapped foreign -- device memory using this API? ----- RESOLVED: Yes, through a separate handle type. Implementations are still--- allowed to support only one of the handle types introduced by this+-- __RESOLVED__: Yes, through a separate handle type. Implementations are+-- still allowed to support only one of the handle types introduced by this -- extension by not returning import support for a particular handle type -- as returned in -- 'Vulkan.Extensions.VK_KHR_external_memory_capabilities.ExternalMemoryPropertiesKHR'.@@ -293,7 +293,9 @@                                    . (MonadIO io)                                   => -- | @device@ is the logical device that will be importing @pHostPointer@.                                      Device-                                  -> -- | @handleType@ is the type of the handle @pHostPointer@.+                                  -> -- | @handleType@ is a+                                     -- 'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.ExternalMemoryHandleTypeFlagBits'+                                     -- value specifying the type of the handle @pHostPointer@.                                      ExternalMemoryHandleTypeFlagBits                                   -> -- | @pHostPointer@ is the host pointer to import from.                                      ("hostPointer" ::: Ptr ())@@ -386,7 +388,9 @@ -- 'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.ExternalMemoryHandleTypeFlagBits', -- 'Vulkan.Core10.Enums.StructureType.StructureType' data ImportMemoryHostPointerInfoEXT = ImportMemoryHostPointerInfoEXT-  { -- | @handleType@ specifies the handle type.+  { -- | @handleType@ is a+    -- 'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.ExternalMemoryHandleTypeFlagBits'+    -- value specifying the handle type.     handleType :: ExternalMemoryHandleTypeFlagBits   , -- | @pHostPointer@ is the host pointer to import from.     hostPointer :: Ptr ()@@ -493,17 +497,15 @@ -- external memory host pointer limits that can be supported by an -- implementation ----- = Members------ The members of the 'PhysicalDeviceExternalMemoryHostPropertiesEXT'--- structure describe the following implementation-dependent limits:--- -- = Description -- -- If the 'PhysicalDeviceExternalMemoryHostPropertiesEXT' structure is--- included in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2',--- it is filled with the implementation-dependent limits.+-- 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) --@@ -515,7 +517,7 @@   { -- | #limits-minImportedHostPointerAlignment#     -- @minImportedHostPointerAlignment@ is the minimum /required/ alignment,     -- in bytes, for the base address and size of host pointers that /can/ be-    -- imported to a Vulkan memory object.+    -- imported to a Vulkan memory object. The value /must/ be a power of two.     minImportedHostPointerAlignment :: DeviceSize }   deriving (Typeable, Eq) #if defined(GENERIC_INSTANCES)
src/Vulkan/Extensions/VK_EXT_external_memory_host.hs-boot view
@@ -97,55 +97,55 @@ -- -- 1) What memory type has to be used to import host pointers? ----- RESOLVED: Depends on the implementation. Applications have to use the--- new 'getMemoryHostPointerPropertiesEXT' command to query the supported--- memory types for a particular host pointer. The reported memory types--- may include memory types that come from a memory heap that is otherwise--- not usable for regular memory object allocation and thus such a heap’s--- size may be zero.+-- __RESOLVED__: Depends on the implementation. Applications have to use+-- the new 'getMemoryHostPointerPropertiesEXT' command to query the+-- supported memory types for a particular host pointer. The reported+-- memory types may include memory types that come from a memory heap that+-- is otherwise not usable for regular memory object allocation and thus+-- such a heap’s size may be zero. -- -- 2) Can the application still access the contents of the host allocation -- after importing? ----- RESOLVED: Yes. However, usual synchronization requirements apply.+-- __RESOLVED__: Yes. However, usual synchronization requirements apply. -- -- 3) Can the application free the host allocation? ----- RESOLVED: No, it violates valid usage conditions. Using the memory+-- __RESOLVED__: No, it violates valid usage conditions. Using the memory -- object imported from a host allocation that’s already freed thus results -- in undefined behavior. -- -- 4) Is 'Vulkan.Core10.Memory.mapMemory' expected to return the same host -- address which was specified when importing it to the memory object? ----- RESOLVED: No. Implementations are allowed to return the same address but--- it’s not required. Some implementations might return a different virtual--- mapping of the allocation, although the same physical pages will be--- used.+-- __RESOLVED__: No. Implementations are allowed to return the same address+-- but it’s not required. Some implementations might return a different+-- virtual mapping of the allocation, although the same physical pages will+-- be used. -- -- 5) Is there any limitation on the alignment of the host pointer and\/or -- size? ----- RESOLVED: Yes. Both the address and the size have to be an integer+-- __RESOLVED__: Yes. Both the address and the size have to be an integer -- multiple of @minImportedHostPointerAlignment@. In addition, some -- platforms and foreign devices may have additional restrictions. -- -- 6) Can the same host allocation be imported multiple times into a given -- physical device? ----- RESOLVED: No, at least not guaranteed by this extension. Some platforms--- do not allow locking the same physical pages for device access multiple--- times, so attempting to do it may result in undefined behavior.+-- __RESOLVED__: No, at least not guaranteed by this extension. Some+-- platforms do not allow locking the same physical pages for device access+-- multiple times, so attempting to do it may result in undefined behavior. -- -- 7) Does this extension support exporting the new handle type? ----- RESOLVED: No.+-- __RESOLVED__: No. -- -- 8) Should we include the possibility to import host mapped foreign -- device memory using this API? ----- RESOLVED: Yes, through a separate handle type. Implementations are still--- allowed to support only one of the handle types introduced by this+-- __RESOLVED__: Yes, through a separate handle type. Implementations are+-- still allowed to support only one of the handle types introduced by this -- extension by not returning import support for a particular handle type -- as returned in -- 'Vulkan.Extensions.VK_KHR_external_memory_capabilities.ExternalMemoryPropertiesKHR'.
src/Vulkan/Extensions/VK_EXT_fragment_density_map.hs view
@@ -214,18 +214,19 @@ -- -- = Members ----- The members of the 'PhysicalDeviceFragmentDensityMapFeaturesEXT'--- structure describe the following features:+-- This structure describes the following features: -- -- = Description -- -- If the 'PhysicalDeviceFragmentDensityMapFeaturesEXT' structure is--- included in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- it is filled with values indicating whether each feature is supported.--- 'PhysicalDeviceFragmentDensityMapFeaturesEXT' /can/ also be included in--- @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to enable the--- features.+-- 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. 'PhysicalDeviceFragmentDensityMapFeaturesEXT' /can/ also be+-- used in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to+-- selectively enable these features. -- -- == Valid Usage (Implicit) --@@ -310,17 +311,17 @@ -- fragment density map properties that can be supported by an -- implementation ----- = Members+-- = Description ----- The members of the 'PhysicalDeviceFragmentDensityMapPropertiesEXT'--- structure describe the following implementation-dependent limits:+-- If the 'PhysicalDeviceFragmentDensityMapPropertiesEXT' 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)------ If the 'PhysicalDeviceFragmentDensityMapPropertiesEXT' structure is--- included in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2',--- it is filled with the implementation-dependent limits and properties. -- -- = See Also --
src/Vulkan/Extensions/VK_EXT_fragment_density_map2.hs view
@@ -182,18 +182,19 @@ -- -- = Members ----- The members of the 'PhysicalDeviceFragmentDensityMap2FeaturesEXT'--- structure describe the following features:+-- This structure describes the following features: -- -- = Description -- -- If the 'PhysicalDeviceFragmentDensityMap2FeaturesEXT' structure is--- included in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- it is filled with values indicating whether each feature is supported.--- 'PhysicalDeviceFragmentDensityMap2FeaturesEXT' /can/ also be included in--- @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to enable the--- features.+-- 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. 'PhysicalDeviceFragmentDensityMap2FeaturesEXT' /can/ also be+-- used in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to+-- selectively enable these features. -- -- == Valid Usage (Implicit) --@@ -251,17 +252,17 @@ -- additional fragment density map properties that can be supported by an -- implementation ----- = Members+-- = Description ----- The members of the 'PhysicalDeviceFragmentDensityMap2PropertiesEXT'--- structure describe the following implementation-dependent limits:+-- If the 'PhysicalDeviceFragmentDensityMap2PropertiesEXT' 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)------ If the 'PhysicalDeviceFragmentDensityMap2PropertiesEXT' structure is--- included in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2',--- it is filled with the implementation-dependent limits and properties. -- -- = See Also --
src/Vulkan/Extensions/VK_EXT_fragment_shader_interlock.hs view
@@ -159,18 +159,19 @@ -- -- = Members ----- The members of the 'PhysicalDeviceFragmentShaderInterlockFeaturesEXT'--- structure describe the following features:+-- This structure describes the following features: -- -- = Description -- -- If the 'PhysicalDeviceFragmentShaderInterlockFeaturesEXT' structure is--- included in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- it is filled with values indicating whether the feature is supported.--- 'PhysicalDeviceFragmentShaderInterlockFeaturesEXT' /can/ also be--- included in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo'--- to enable features.+-- 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. 'PhysicalDeviceFragmentShaderInterlockFeaturesEXT' /can/ also+-- be used in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo'+-- to selectively enable these features. -- -- == Valid Usage (Implicit) --
src/Vulkan/Extensions/VK_EXT_full_screen_exclusive.hs view
@@ -158,7 +158,7 @@ -- -- 1) What should the extension & flag be called? ----- RESOLVED: VK_EXT_full_screen_exclusive.+-- __RESOLVED__: VK_EXT_full_screen_exclusive. -- -- Other options considered (prior to the app-controlled mode) were: --@@ -176,7 +176,7 @@ -- -- 2) Do we need more than a boolean toggle? ----- RESOLVED: Yes.+-- __RESOLVED__: Yes. -- -- Using an enum with default\/allowed\/disallowed\/app-controlled enables -- applications to accept driver default behavior, specifically override it@@ -185,13 +185,13 @@ -- -- 3) Should this be a KHR or EXT extension? ----- RESOLVED: EXT, in order to allow it to be shipped faster.+-- __RESOLVED__: EXT, in order to allow it to be shipped faster. -- -- 4) Can the fullscreen hint affect the surface capabilities, and if so, -- should the hint also be specified as input when querying the surface -- capabilities? ----- RESOLVED: Yes on both accounts.+-- __RESOLVED__: Yes on both accounts. -- -- While the hint does not guarantee a particular fullscreen mode will be -- used when the swapchain is created, it can sometimes imply particular@@ -206,7 +206,7 @@ -- -- 5) Should full-screen be one word or two? ----- RESOLVED: Two words.+-- __RESOLVED__: Two words. -- -- \"Fullscreen\" is not in my dictionary, and web searches did not turn up -- definitive proof that it is a colloquially accepted compound word.
src/Vulkan/Extensions/VK_EXT_full_screen_exclusive.hs-boot view
@@ -158,7 +158,7 @@ -- -- 1) What should the extension & flag be called? ----- RESOLVED: VK_EXT_full_screen_exclusive.+-- __RESOLVED__: VK_EXT_full_screen_exclusive. -- -- Other options considered (prior to the app-controlled mode) were: --@@ -176,7 +176,7 @@ -- -- 2) Do we need more than a boolean toggle? ----- RESOLVED: Yes.+-- __RESOLVED__: Yes. -- -- Using an enum with default\/allowed\/disallowed\/app-controlled enables -- applications to accept driver default behavior, specifically override it@@ -185,13 +185,13 @@ -- -- 3) Should this be a KHR or EXT extension? ----- RESOLVED: EXT, in order to allow it to be shipped faster.+-- __RESOLVED__: EXT, in order to allow it to be shipped faster. -- -- 4) Can the fullscreen hint affect the surface capabilities, and if so, -- should the hint also be specified as input when querying the surface -- capabilities? ----- RESOLVED: Yes on both accounts.+-- __RESOLVED__: Yes on both accounts. -- -- While the hint does not guarantee a particular fullscreen mode will be -- used when the swapchain is created, it can sometimes imply particular@@ -206,7 +206,7 @@ -- -- 5) Should full-screen be one word or two? ----- RESOLVED: Two words.+-- __RESOLVED__: Two words. -- -- \"Fullscreen\" is not in my dictionary, and web searches did not turn up -- definitive proof that it is a colloquially accepted compound word.
src/Vulkan/Extensions/VK_EXT_image_drm_format_modifier.hs view
@@ -1,531 +1,8 @@ {-# language CPP #-}--- | = Name------ VK_EXT_image_drm_format_modifier - device extension------ == VK_EXT_image_drm_format_modifier------ [__Name String__]---     @VK_EXT_image_drm_format_modifier@------ [__Extension Type__]---     Device extension------ [__Registered Extension Number__]---     159------ [__Revision__]---     1------ [__Extension and Version Dependencies__]------     -   Requires Vulkan 1.0------     -   Requires @VK_KHR_bind_memory2@------     -   Requires @VK_KHR_get_physical_device_properties2@------     -   Requires @VK_KHR_image_format_list@------     -   Requires @VK_KHR_sampler_ycbcr_conversion@------ [__Contact__]------     -   Chad Versace---         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?title=VK_EXT_image_drm_format_modifier:%20&body=@chadversary%20 >------ == Other Extension Metadata------ [__Last Modified Date__]---     2018-08-29------ [__IP Status__]---     No known IP claims.------ [__Contributors__]------     -   Antoine Labour, Google------     -   Bas Nieuwenhuizen, Google------     -   Chad Versace, Google------     -   James Jones, NVIDIA------     -   Jason Ekstrand, Intel------     -   Jőrg Wagner, ARM------     -   Kristian Høgsberg Kristensen, Google------     -   Ray Smith, ARM------ == Description------ This extension provides the ability to use /DRM format modifiers/ with--- images, enabling Vulkan to better integrate with the Linux ecosystem of--- graphics, video, and display APIs.------ Its functionality closely overlaps with--- @EGL_EXT_image_dma_buf_import_modifiers@<VK_EXT_image_drm_format_modifier-fn2.html 2>\<\/link>^+-- | Its functionality closely overlaps with+-- @EGL_EXT_image_dma_buf_import_modifiers@<VK_EXT_image_drm_format_modifier-fn2.html 2>^ -- and--- @EGL_MESA_image_dma_buf_export@<VK_EXT_image_drm_format_modifier-fn3.html 3>\<\/link>^.--- Unlike the EGL extensions, this extension does not require the use of a--- specific handle type (such as a dma_buf) for external memory and--- provides more explicit control of image creation.------ == Introduction to DRM Format Modifiers------ A /DRM format modifier/ is a 64-bit, vendor-prefixed, semi-opaque--- unsigned integer. Most /modifiers/ represent a concrete, vendor-specific--- tiling format for images. Some exceptions are @DRM_FORMAT_MOD_LINEAR@--- (which is not vendor-specific); @DRM_FORMAT_MOD_NONE@ (which is an alias--- of @DRM_FORMAT_MOD_LINEAR@ due to historical accident); and--- @DRM_FORMAT_MOD_INVALID@ (which does not represent a tiling format). The--- /modifier’s/ vendor prefix consists of the 8 most significant bits. The--- canonical list of /modifiers/ and vendor prefixes is found in--- <https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/include/uapi/drm/drm_fourcc.h drm_fourcc.h>--- in the Linux kernel source. The other dominant source of /modifiers/ are--- vendor kernel trees.------ One goal of /modifiers/ in the Linux ecosystem is to enumerate for each--- vendor a reasonably sized set of tiling formats that are appropriate for--- images shared across processes, APIs, and\/or devices, where each--- participating component may possibly be from different vendors. A--- non-goal is to enumerate all tiling formats supported by all vendors.--- Some tiling formats used internally by vendors are inappropriate for--- sharing; no /modifiers/ should be assigned to such tiling formats.------ Modifier values typically do not /describe/ memory layouts. More--- precisely, a /modifier/\'s lower 56 bits usually have no structure.--- Instead, modifiers /name/ memory layouts; they name a small set of--- vendor-preferred layouts for image sharing. As a consequence, in each--- vendor namespace the modifier values are often sequentially allocated--- starting at 1.------ Each /modifier/ is usually supported by a single vendor and its name--- matches the pattern @{VENDOR}_FORMAT_MOD_*@ or--- @DRM_FORMAT_MOD_{VENDOR}_*@. Examples are @I915_FORMAT_MOD_X_TILED@ and--- @DRM_FORMAT_MOD_BROADCOM_VC4_T_TILED@. An exception is--- @DRM_FORMAT_MOD_LINEAR@, which is supported by most vendors.------ Many APIs in Linux use /modifiers/ to negotiate and specify the memory--- layout of shared images. For example, a Wayland compositor and Wayland--- client may, by relaying /modifiers/ over the Wayland protocol--- @zwp_linux_dmabuf_v1@, negotiate a vendor-specific tiling format for a--- shared @wl_buffer@. The client may allocate the underlying memory for--- the @wl_buffer@ with GBM, providing the chosen /modifier/ to--- @gbm_bo_create_with_modifiers@. The client may then import the--- @wl_buffer@ into Vulkan for producing image content, providing the--- resource’s dma_buf to--- 'Vulkan.Extensions.VK_KHR_external_memory_fd.ImportMemoryFdInfoKHR' and--- its /modifier/ to 'ImageDrmFormatModifierExplicitCreateInfoEXT'. The--- compositor may then import the @wl_buffer@ into OpenGL for sampling,--- providing the resource’s dma_buf and /modifier/ to @eglCreateImage@. The--- compositor may also bypass OpenGL and submit the @wl_buffer@ directly to--- the kernel’s display API, providing the dma_buf and /modifier/ through--- @drm_mode_fb_cmd2@.------ == Format Translation------ /Modifier/-capable APIs often pair /modifiers/ with DRM formats, which--- are defined in--- <https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/include/uapi/drm/drm_fourcc.h drm_fourcc.h>.--- However, @VK_EXT_image_drm_format_modifier@ uses--- 'Vulkan.Core10.Enums.Format.Format' instead of DRM formats. The--- application must convert between 'Vulkan.Core10.Enums.Format.Format' and--- DRM format when it sends or receives a DRM format to or from an external--- API.------ The mapping from 'Vulkan.Core10.Enums.Format.Format' to DRM format is--- lossy. Therefore, when receiving a DRM format from an external API,--- often the application must use information from the external API to--- accurately map the DRM format to a 'Vulkan.Core10.Enums.Format.Format'.--- For example, DRM formats do not distinguish between RGB and sRGB (as of--- 2018-03-28); external information is required to identify the image’s--- colorspace.------ The mapping between 'Vulkan.Core10.Enums.Format.Format' and DRM format--- is also incomplete. For some DRM formats there exist no corresponding--- Vulkan format, and for some Vulkan formats there exist no corresponding--- DRM format.------ == Usage Patterns------ Three primary usage patterns are intended for this extension:------ -   __Negotiation.__ The application negotiates with /modifier/-aware,---     external components to determine sets of image creation parameters---     supported among all components.------     In the Linux ecosystem, the negotiation usually assumes the image is---     a 2D, single-sampled, non-mipmapped, non-array image; this extension---     permits that assumption but does not require it. The result of the---     negotiation usually resembles a set of tuples such as /(drmFormat,---     drmFormatModifier)/, where each participating component supports all---     tuples in the set.------     Many details of this negotiation—such as the protocol used during---     negotiation, the set of image creation parameters expressable in the---     protocol, and how the protocol chooses which process and which API---     will create the image—are outside the scope of this specification.------     In this extension,---     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceFormatProperties2'---     with 'DrmFormatModifierPropertiesListEXT' serves a primary role---     during the negotiation, and---     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceImageFormatProperties2'---     with 'PhysicalDeviceImageDrmFormatModifierInfoEXT' serves a---     secondary role.------ -   __Import.__ The application imports an image with a /modifier/.------     In this pattern, the application receives from an external source---     the image’s memory and its creation parameters, which are often the---     result of the negotiation described above. Some image creation---     parameters are implicitly defined by the external source; for---     example, 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D' is often---     assumed. Some image creation parameters are usually explicit, such---     as the image’s @format@, @drmFormatModifier@, and @extent@; and each---     plane’s @offset@ and @rowPitch@.------     Before creating the image, the application first verifies that the---     physical device supports the received creation parameters by---     querying---     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceFormatProperties2'---     with 'DrmFormatModifierPropertiesListEXT' and---     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceImageFormatProperties2'---     with 'PhysicalDeviceImageDrmFormatModifierInfoEXT'. Then the---     application creates the image by chaining---     'ImageDrmFormatModifierExplicitCreateInfoEXT' and---     'Vulkan.Core11.Promoted_From_VK_KHR_external_memory.ExternalMemoryImageCreateInfo'---     onto 'Vulkan.Core10.Image.ImageCreateInfo'.------ -   __Export.__ The application creates an image and allocates its---     memory. Then the application exports to /modifier/-aware consumers---     the image’s memory handles; its creation parameters; its /modifier/;---     and the <VkSubresourceLayout.html offset>,---     <VkSubresourceLayout.html size>, and---     <VkSubresourceLayout.html rowPitch> of each /memory plane/.------     In this pattern, the Vulkan device is the authority for the image;---     it is the allocator of the image’s memory and the decider of the---     image’s creation parameters. When choosing the image’s creation---     parameters, the application usually chooses a tuple /(format,---     drmFormatModifier)/ from the result of the negotiation described---     above. The negotiation’s result often contains multiple tuples that---     share the same format but differ in their /modifier/. In this case,---     the application should defer the choice of the image’s /modifier/ to---     the Vulkan implementation by providing all such /modifiers/ to---     'ImageDrmFormatModifierListCreateInfoEXT'::@pDrmFormatModifiers@;---     and the implementation should choose from @pDrmFormatModifiers@ the---     optimal /modifier/ in consideration with the other image parameters.------     The application creates the image by chaining---     'ImageDrmFormatModifierListCreateInfoEXT' and---     'Vulkan.Core11.Promoted_From_VK_KHR_external_memory.ExternalMemoryImageCreateInfo'---     onto 'Vulkan.Core10.Image.ImageCreateInfo'. The protocol and APIs by---     which the application will share the image with external consumers---     will likely determine the value of---     'Vulkan.Core11.Promoted_From_VK_KHR_external_memory.ExternalMemoryImageCreateInfo'::@handleTypes@.---     The implementation chooses for the image an optimal /modifier/ from---     'ImageDrmFormatModifierListCreateInfoEXT'::@pDrmFormatModifiers@.---     The application then queries the implementation-chosen /modifier/---     with 'getImageDrmFormatModifierPropertiesEXT', and queries the---     memory layout of each plane with---     'Vulkan.Core10.Image.getImageSubresourceLayout'.------     The application then allocates the image’s memory with---     'Vulkan.Core10.Memory.MemoryAllocateInfo', adding chained extending---     structures for external memory; binds it to the image; and exports---     the memory, for example, with---     'Vulkan.Extensions.VK_KHR_external_memory_fd.getMemoryFdKHR'.------     Finally, the application sends the image’s creation parameters, its---     /modifier/, its per-plane memory layout, and the exported memory---     handle to the external consumers. The details of how the application---     transmits this information to external consumers is outside the---     scope of this specification.------ == Prior Art------ Extension--- @EGL_EXT_image_dma_buf_import@<VK_EXT_image_drm_format_modifier-fn1.html 1>\<\/link>^--- introduced the ability to create an @EGLImage@ by importing for each--- plane a dma_buf, offset, and row pitch.------ Later, extension--- @EGL_EXT_image_dma_buf_import_modifiers@<VK_EXT_image_drm_format_modifier-fn2.html 2>\<\/link>^--- introduced the ability to query which combination of formats and--- /modifiers/ the implementation supports and to specify /modifiers/--- during creation of the @EGLImage@.------ Extension--- @EGL_MESA_image_dma_buf_export@<VK_EXT_image_drm_format_modifier-fn3.html 3>\<\/link>^--- is the inverse of @EGL_EXT_image_dma_buf_import_modifiers@.------ The Linux kernel modesetting API (KMS), when configuring the display’s--- framebuffer with @struct--- drm_mode_fb_cmd2@<VK_EXT_image_drm_format_modifier-fn4.html 4>\<\/link>^,--- allows one to specify the frambuffer’s /modifier/ as well as a per-plane--- memory handle, offset, and row pitch.------ GBM, a graphics buffer manager for Linux, allows creation of a @gbm_bo@--- (that is, a graphics /buffer object/) by importing data similar to that--- in--- @EGL_EXT_image_dma_buf_import_modifiers@<VK_EXT_image_drm_format_modifier-fn1.html 1>\<\/link>^;--- and symmetrically allows exporting the same data from the @gbm_bo@. See--- the references to /modifier/ and /plane/ in--- @gbm.h@<VK_EXT_image_drm_format_modifier-fn5.html 5>\<\/link>^.------ == New Commands------ -   'getImageDrmFormatModifierPropertiesEXT'------ == New Structures------ -   'DrmFormatModifierPropertiesEXT'------ -   'ImageDrmFormatModifierPropertiesEXT'------ -   Extending---     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.FormatProperties2':------     -   'DrmFormatModifierPropertiesListEXT'------ -   Extending 'Vulkan.Core10.Image.ImageCreateInfo':------     -   'ImageDrmFormatModifierExplicitCreateInfoEXT'------     -   'ImageDrmFormatModifierListCreateInfoEXT'------ -   Extending---     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceImageFormatInfo2':------     -   'PhysicalDeviceImageDrmFormatModifierInfoEXT'------ == New Enum Constants------ -   'EXT_IMAGE_DRM_FORMAT_MODIFIER_EXTENSION_NAME'------ -   'EXT_IMAGE_DRM_FORMAT_MODIFIER_SPEC_VERSION'------ -   Extending---     'Vulkan.Core10.Enums.ImageAspectFlagBits.ImageAspectFlagBits':------     -   'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_MEMORY_PLANE_0_BIT_EXT'------     -   'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_MEMORY_PLANE_1_BIT_EXT'------     -   'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_MEMORY_PLANE_2_BIT_EXT'------     -   'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_MEMORY_PLANE_3_BIT_EXT'------ -   Extending 'Vulkan.Core10.Enums.ImageTiling.ImageTiling':------     -   'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT'------ -   Extending 'Vulkan.Core10.Enums.Result.Result':------     -   'Vulkan.Core10.Enums.Result.ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT'------ -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':------     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT'------     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT'------     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT'------     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT'------     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT'------ == Issues------ 1) Should this extension define a single DRM format modifier per--- 'Vulkan.Core10.Handles.Image'? Or define one per plane?------ +------ __RESOLVED__: There exists a single DRM format modifier per--- 'Vulkan.Core10.Handles.Image'.------ __DISCUSSION__: Prior art, such as--- @EGL_EXT_image_dma_buf_import_modifiers@<VK_EXT_image_drm_format_modifier-fn2.html 2>\<\/link>^,--- @struct drm_mode_fb_cmd2@<VK_EXT_image_drm_format_modifier-fn4.html 4>\<\/link>^,--- and @struct--- gbm_import_fd_modifier_data@<VK_EXT_image_drm_format_modifier-fn5.html 5>\<\/link>^,--- allows defining one /modifier/ per plane. However, developers of the GBM--- and kernel APIs concede it was a mistake. Beginning in Linux 4.10, the--- kernel requires that the application provide the same DRM format--- /modifier/ for each plane. (See Linux commit--- <https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=bae781b259269590109e8a4a8227331362b88212 bae781b259269590109e8a4a8227331362b88212>).--- And GBM provides an entry point, @gbm_bo_get_modifier@, for querying the--- /modifier/ of the image but does not provide one to query the modifier--- of individual planes.------ 2) When creating an image with--- 'ImageDrmFormatModifierExplicitCreateInfoEXT', which is typically used--- when /importing/ an image, should the application explicitly provide the--- size of each plane?------ +------ __RESOLVED__: No. The application /must/ not provide the size. To--- enforce this, the API requires that--- 'ImageDrmFormatModifierExplicitCreateInfoEXT'::@pPlaneLayouts->size@--- /must/ be 0.------ __DISCUSSION__: Prior art, such as--- @EGL_EXT_image_dma_buf_import_modifiers@<VK_EXT_image_drm_format_modifier-fn2.html 2>\<\/link>^,--- @struct drm_mode_fb_cmd2@<VK_EXT_image_drm_format_modifier-fn4.html 4>\<\/link>^,--- and @struct--- gbm_import_fd_modifier_data@<VK_EXT_image_drm_format_modifier-fn5.html 5>\<\/link>^,--- omits from the API the size of each plane. Instead, the APIs infer each--- plane’s size from the import parameters, which include the image’s pixel--- format and a dma_buf, offset, and row pitch for each plane.------ However, Vulkan differs from EGL and GBM with regards to image creation--- in the following ways:------ -   __Undedicated allocation by default.__ When importing or exporting a---     set of dma_bufs as an @EGLImage@ or @gbm_bo@, common practice---     mandates that each dma_buf’s memory be dedicated (in the sense of---     @VK_KHR_dedicated_allocation@) to the image (though not necessarily---     dedicated to a single plane). In particular, neither the GBM---     documentation nor the EGL extension specifications explicitly state---     this requirement, but in light of common practice this is likely due---     to under-specification rather than intentional omission. In---     contrast, @VK_EXT_image_drm_format_modifier@ permits, but does not---     require, the implementation to require dedicated allocations for---     images created with---     'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT'.------ -   __Separation of image creation and memory allocation.__ When---     importing a set of dma_bufs as an @EGLImage@ or @gbm_bo@, EGL and---     GBM create the image resource and bind it to memory (the dma_bufs)---     simultaneously. This allows EGL and GBM to query each dma_buf’s size---     during image creation. In Vulkan, image creation and memory---     allocation are independent unless a dedicated allocation is used (as---     in @VK_KHR_dedicated_allocation@). Therefore, without requiring---     dedicated allocation, Vulkan cannot query the size of each dma_buf---     (or other external handle) when calculating the image’s memory---     layout. Even if dedication allocation were required, Vulkan cannot---     calculate the image’s memory layout until after the image is bound---     to its dma_ufs.------ The above differences complicate the potential inference of plane size--- in Vulkan. Consider the following problematic cases:------ -   __Padding.__ Some plane of the image may require---     implementation-dependent padding.------ -   __Metadata.__ For some /modifiers/, the image may have a metadata---     plane which requires a non-trivial calculation to determine its---     size.------ -   __Mipmapped, array, and 3D images.__ The implementation may support---     'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT'---     for images whose @mipLevels@, @arrayLayers@, or @depth@ is greater---     than 1. For such images with certain /modifiers/, the calculation of---     each plane’s size may be non-trivial.------ However, an application-provided plane size solves none of the above--- problems.------ For simplicity, consider an external image with a single memory plane.--- The implementation is obviously capable calculating the image’s size--- when its tiling is--- 'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_OPTIMAL'. Likewise, any--- reasonable implementation is capable of calculating the image’s size--- when its tiling uses a supported /modifier/.------ Suppose that the external image’s size is smaller than the--- implementation-calculated size. If the application provided the external--- image’s size to 'Vulkan.Core10.Image.createImage', the implementation--- would observe the mismatched size and recognize its inability to--- comprehend the external image’s layout (unless the implementation used--- the application-provided size to select a refinement of the tiling--- layout indicated by the /modifier/, which is strongly discouraged). The--- implementation would observe the conflict, and reject image creation--- with--- 'Vulkan.Core10.Enums.Result.ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT'.--- On the other hand, if the application did not provide the external--- image’s size to 'Vulkan.Core10.Image.createImage', then the application--- would observe after calling--- 'Vulkan.Core10.MemoryManagement.getImageMemoryRequirements' that the--- external image’s size is less than the size required by the--- implementation. The application would observe the conflict and refuse to--- bind the 'Vulkan.Core10.Handles.Image' to the external memory. In both--- cases, the result is explicit failure.------ Suppose that the external image’s size is larger than the--- implementation-calculated size. If the application provided the external--- image’s size to 'Vulkan.Core10.Image.createImage', for reasons similar--- to above the implementation would observe the mismatched size and--- recognize its inability to comprehend the image data residing in the--- extra size. The implementation, however, must assume that image data--- resides in the entire size provided by the application. The--- implementation would observe the conflict and reject image creation with--- 'Vulkan.Core10.Enums.Result.ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT'.--- On the other hand, if the application did not provide the external--- image’s size to 'Vulkan.Core10.Image.createImage', then the application--- would observe after calling--- 'Vulkan.Core10.MemoryManagement.getImageMemoryRequirements' that the--- external image’s size is larger than the implementation-usable size. The--- application would observe the conflict and refuse to bind the--- 'Vulkan.Core10.Handles.Image' to the external memory. In both cases, the--- result is explicit failure.------ Therefore, an application-provided size provides no benefit, and this--- extension should not require it. This decision renders--- 'Vulkan.Core10.Image.SubresourceLayout'::@size@ an unused field during--- image creation, and thus introduces a risk that implementations may--- require applications to submit sideband creation parameters in the--- unused field. To prevent implementations from relying on sideband data,--- this extension /requires/ the application to set @size@ to 0.------ === References------ 1.  #VK_EXT_image_drm_format_modifier-fn1#---     <https://www.khronos.org/registry/EGL/extensions/EXT/EGL_EXT_image_dma_buf_import.txt EGL_EXT_image_dma_buf_import>------ 2.  #VK_EXT_image_drm_format_modifier-fn2#---     <https://www.khronos.org/registry/EGL/extensions/EXT/EGL_EXT_image_dma_buf_import_modifiers.txt EGL_EXT_image_dma_buf_import_modifiers>------ 3.  #VK_EXT_image_drm_format_modifier-fn3#---     <https://www.khronos.org/registry/EGL/extensions/MESA/EGL_MESA_image_dma_buf_export.txt EGL_MESA_image_dma_buf_export>------ 4.  #VK_EXT_image_drm_format_modifier-fn4#---     <https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/include/uapi/drm/drm_mode.h?id=refs/tags/v4.10#n392 struct---     drm_mode_fb_cmd2>------ 5.  #VK_EXT_image_drm_format_modifier-fn5#---     <https://cgit.freedesktop.org/mesa/mesa/tree/src/gbm/main/gbm.h?id=refs/tags/mesa-18.0.0-rc1 gbm.h>------ === Version History------ -   Revision 1, 2018-08-29 (Chad Versace)------     -   First stable revision------ = See Also------ 'DrmFormatModifierPropertiesEXT', 'DrmFormatModifierPropertiesListEXT',--- 'ImageDrmFormatModifierExplicitCreateInfoEXT',--- 'ImageDrmFormatModifierListCreateInfoEXT',--- 'ImageDrmFormatModifierPropertiesEXT',--- 'PhysicalDeviceImageDrmFormatModifierInfoEXT',--- 'getImageDrmFormatModifierPropertiesEXT'------ = Document Notes------ For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier Vulkan Specification>------ This page is a generated document. Fixes and changes should be made to--- the generator scripts, not directly.+-- @EGL_MESA_image_dma_buf_export@<VK_EXT_image_drm_format_modifier-fn3.html 3>^. module Vulkan.Extensions.VK_EXT_image_drm_format_modifier  ( getImageDrmFormatModifierPropertiesEXT                                                            , DrmFormatModifierPropertiesListEXT(..)                                                            , DrmFormatModifierPropertiesEXT(..)@@ -677,8 +154,8 @@   { -- | @drmFormatModifierCount@ is an inout parameter related to the number of     -- modifiers compatible with the @format@, as described below.     drmFormatModifierCount :: Word32-  , -- | @pDrmFormatModifierProperties@ is either @NULL@ or an array of-    -- 'DrmFormatModifierPropertiesEXT' structures.+  , -- | @pDrmFormatModifierProperties@ is either @NULL@ or a pointer to an array+    -- of 'DrmFormatModifierPropertiesEXT' structures.     drmFormatModifierProperties :: Ptr DrmFormatModifierPropertiesEXT   }   deriving (Typeable, Eq)@@ -921,9 +398,9 @@   , -- | @sharingMode@ specifies how the image will be accessed by multiple queue     -- families.     sharingMode :: SharingMode-  , -- | @pQueueFamilyIndices@ is a list of queue families that will access the-    -- image (ignored if @sharingMode@ is not-    -- 'Vulkan.Core10.Enums.SharingMode.SHARING_MODE_CONCURRENT').+  , -- | @pQueueFamilyIndices@ is a pointer to an array of queue families that+    -- will access the image. It is ignored if @sharingMode@ is not+    -- 'Vulkan.Core10.Enums.SharingMode.SHARING_MODE_CONCURRENT'.     queueFamilyIndices :: Vector Word32   }   deriving (Typeable)
src/Vulkan/Extensions/VK_EXT_image_drm_format_modifier.hs-boot view
@@ -1,531 +1,8 @@ {-# language CPP #-}--- | = Name------ VK_EXT_image_drm_format_modifier - device extension------ == VK_EXT_image_drm_format_modifier------ [__Name String__]---     @VK_EXT_image_drm_format_modifier@------ [__Extension Type__]---     Device extension------ [__Registered Extension Number__]---     159------ [__Revision__]---     1------ [__Extension and Version Dependencies__]------     -   Requires Vulkan 1.0------     -   Requires @VK_KHR_bind_memory2@------     -   Requires @VK_KHR_get_physical_device_properties2@------     -   Requires @VK_KHR_image_format_list@------     -   Requires @VK_KHR_sampler_ycbcr_conversion@------ [__Contact__]------     -   Chad Versace---         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?title=VK_EXT_image_drm_format_modifier:%20&body=@chadversary%20 >------ == Other Extension Metadata------ [__Last Modified Date__]---     2018-08-29------ [__IP Status__]---     No known IP claims.------ [__Contributors__]------     -   Antoine Labour, Google------     -   Bas Nieuwenhuizen, Google------     -   Chad Versace, Google------     -   James Jones, NVIDIA------     -   Jason Ekstrand, Intel------     -   Jőrg Wagner, ARM------     -   Kristian Høgsberg Kristensen, Google------     -   Ray Smith, ARM------ == Description------ This extension provides the ability to use /DRM format modifiers/ with--- images, enabling Vulkan to better integrate with the Linux ecosystem of--- graphics, video, and display APIs.------ Its functionality closely overlaps with--- @EGL_EXT_image_dma_buf_import_modifiers@<VK_EXT_image_drm_format_modifier-fn2.html 2>\<\/link>^+-- | Its functionality closely overlaps with+-- @EGL_EXT_image_dma_buf_import_modifiers@<VK_EXT_image_drm_format_modifier-fn2.html 2>^ -- and--- @EGL_MESA_image_dma_buf_export@<VK_EXT_image_drm_format_modifier-fn3.html 3>\<\/link>^.--- Unlike the EGL extensions, this extension does not require the use of a--- specific handle type (such as a dma_buf) for external memory and--- provides more explicit control of image creation.------ == Introduction to DRM Format Modifiers------ A /DRM format modifier/ is a 64-bit, vendor-prefixed, semi-opaque--- unsigned integer. Most /modifiers/ represent a concrete, vendor-specific--- tiling format for images. Some exceptions are @DRM_FORMAT_MOD_LINEAR@--- (which is not vendor-specific); @DRM_FORMAT_MOD_NONE@ (which is an alias--- of @DRM_FORMAT_MOD_LINEAR@ due to historical accident); and--- @DRM_FORMAT_MOD_INVALID@ (which does not represent a tiling format). The--- /modifier’s/ vendor prefix consists of the 8 most significant bits. The--- canonical list of /modifiers/ and vendor prefixes is found in--- <https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/include/uapi/drm/drm_fourcc.h drm_fourcc.h>--- in the Linux kernel source. The other dominant source of /modifiers/ are--- vendor kernel trees.------ One goal of /modifiers/ in the Linux ecosystem is to enumerate for each--- vendor a reasonably sized set of tiling formats that are appropriate for--- images shared across processes, APIs, and\/or devices, where each--- participating component may possibly be from different vendors. A--- non-goal is to enumerate all tiling formats supported by all vendors.--- Some tiling formats used internally by vendors are inappropriate for--- sharing; no /modifiers/ should be assigned to such tiling formats.------ Modifier values typically do not /describe/ memory layouts. More--- precisely, a /modifier/\'s lower 56 bits usually have no structure.--- Instead, modifiers /name/ memory layouts; they name a small set of--- vendor-preferred layouts for image sharing. As a consequence, in each--- vendor namespace the modifier values are often sequentially allocated--- starting at 1.------ Each /modifier/ is usually supported by a single vendor and its name--- matches the pattern @{VENDOR}_FORMAT_MOD_*@ or--- @DRM_FORMAT_MOD_{VENDOR}_*@. Examples are @I915_FORMAT_MOD_X_TILED@ and--- @DRM_FORMAT_MOD_BROADCOM_VC4_T_TILED@. An exception is--- @DRM_FORMAT_MOD_LINEAR@, which is supported by most vendors.------ Many APIs in Linux use /modifiers/ to negotiate and specify the memory--- layout of shared images. For example, a Wayland compositor and Wayland--- client may, by relaying /modifiers/ over the Wayland protocol--- @zwp_linux_dmabuf_v1@, negotiate a vendor-specific tiling format for a--- shared @wl_buffer@. The client may allocate the underlying memory for--- the @wl_buffer@ with GBM, providing the chosen /modifier/ to--- @gbm_bo_create_with_modifiers@. The client may then import the--- @wl_buffer@ into Vulkan for producing image content, providing the--- resource’s dma_buf to--- 'Vulkan.Extensions.VK_KHR_external_memory_fd.ImportMemoryFdInfoKHR' and--- its /modifier/ to 'ImageDrmFormatModifierExplicitCreateInfoEXT'. The--- compositor may then import the @wl_buffer@ into OpenGL for sampling,--- providing the resource’s dma_buf and /modifier/ to @eglCreateImage@. The--- compositor may also bypass OpenGL and submit the @wl_buffer@ directly to--- the kernel’s display API, providing the dma_buf and /modifier/ through--- @drm_mode_fb_cmd2@.------ == Format Translation------ /Modifier/-capable APIs often pair /modifiers/ with DRM formats, which--- are defined in--- <https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/include/uapi/drm/drm_fourcc.h drm_fourcc.h>.--- However, @VK_EXT_image_drm_format_modifier@ uses--- 'Vulkan.Core10.Enums.Format.Format' instead of DRM formats. The--- application must convert between 'Vulkan.Core10.Enums.Format.Format' and--- DRM format when it sends or receives a DRM format to or from an external--- API.------ The mapping from 'Vulkan.Core10.Enums.Format.Format' to DRM format is--- lossy. Therefore, when receiving a DRM format from an external API,--- often the application must use information from the external API to--- accurately map the DRM format to a 'Vulkan.Core10.Enums.Format.Format'.--- For example, DRM formats do not distinguish between RGB and sRGB (as of--- 2018-03-28); external information is required to identify the image’s--- colorspace.------ The mapping between 'Vulkan.Core10.Enums.Format.Format' and DRM format--- is also incomplete. For some DRM formats there exist no corresponding--- Vulkan format, and for some Vulkan formats there exist no corresponding--- DRM format.------ == Usage Patterns------ Three primary usage patterns are intended for this extension:------ -   __Negotiation.__ The application negotiates with /modifier/-aware,---     external components to determine sets of image creation parameters---     supported among all components.------     In the Linux ecosystem, the negotiation usually assumes the image is---     a 2D, single-sampled, non-mipmapped, non-array image; this extension---     permits that assumption but does not require it. The result of the---     negotiation usually resembles a set of tuples such as /(drmFormat,---     drmFormatModifier)/, where each participating component supports all---     tuples in the set.------     Many details of this negotiation—such as the protocol used during---     negotiation, the set of image creation parameters expressable in the---     protocol, and how the protocol chooses which process and which API---     will create the image—are outside the scope of this specification.------     In this extension,---     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceFormatProperties2'---     with 'DrmFormatModifierPropertiesListEXT' serves a primary role---     during the negotiation, and---     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceImageFormatProperties2'---     with 'PhysicalDeviceImageDrmFormatModifierInfoEXT' serves a---     secondary role.------ -   __Import.__ The application imports an image with a /modifier/.------     In this pattern, the application receives from an external source---     the image’s memory and its creation parameters, which are often the---     result of the negotiation described above. Some image creation---     parameters are implicitly defined by the external source; for---     example, 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D' is often---     assumed. Some image creation parameters are usually explicit, such---     as the image’s @format@, @drmFormatModifier@, and @extent@; and each---     plane’s @offset@ and @rowPitch@.------     Before creating the image, the application first verifies that the---     physical device supports the received creation parameters by---     querying---     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceFormatProperties2'---     with 'DrmFormatModifierPropertiesListEXT' and---     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceImageFormatProperties2'---     with 'PhysicalDeviceImageDrmFormatModifierInfoEXT'. Then the---     application creates the image by chaining---     'ImageDrmFormatModifierExplicitCreateInfoEXT' and---     'Vulkan.Core11.Promoted_From_VK_KHR_external_memory.ExternalMemoryImageCreateInfo'---     onto 'Vulkan.Core10.Image.ImageCreateInfo'.------ -   __Export.__ The application creates an image and allocates its---     memory. Then the application exports to /modifier/-aware consumers---     the image’s memory handles; its creation parameters; its /modifier/;---     and the <VkSubresourceLayout.html offset>,---     <VkSubresourceLayout.html size>, and---     <VkSubresourceLayout.html rowPitch> of each /memory plane/.------     In this pattern, the Vulkan device is the authority for the image;---     it is the allocator of the image’s memory and the decider of the---     image’s creation parameters. When choosing the image’s creation---     parameters, the application usually chooses a tuple /(format,---     drmFormatModifier)/ from the result of the negotiation described---     above. The negotiation’s result often contains multiple tuples that---     share the same format but differ in their /modifier/. In this case,---     the application should defer the choice of the image’s /modifier/ to---     the Vulkan implementation by providing all such /modifiers/ to---     'ImageDrmFormatModifierListCreateInfoEXT'::@pDrmFormatModifiers@;---     and the implementation should choose from @pDrmFormatModifiers@ the---     optimal /modifier/ in consideration with the other image parameters.------     The application creates the image by chaining---     'ImageDrmFormatModifierListCreateInfoEXT' and---     'Vulkan.Core11.Promoted_From_VK_KHR_external_memory.ExternalMemoryImageCreateInfo'---     onto 'Vulkan.Core10.Image.ImageCreateInfo'. The protocol and APIs by---     which the application will share the image with external consumers---     will likely determine the value of---     'Vulkan.Core11.Promoted_From_VK_KHR_external_memory.ExternalMemoryImageCreateInfo'::@handleTypes@.---     The implementation chooses for the image an optimal /modifier/ from---     'ImageDrmFormatModifierListCreateInfoEXT'::@pDrmFormatModifiers@.---     The application then queries the implementation-chosen /modifier/---     with 'getImageDrmFormatModifierPropertiesEXT', and queries the---     memory layout of each plane with---     'Vulkan.Core10.Image.getImageSubresourceLayout'.------     The application then allocates the image’s memory with---     'Vulkan.Core10.Memory.MemoryAllocateInfo', adding chained extending---     structures for external memory; binds it to the image; and exports---     the memory, for example, with---     'Vulkan.Extensions.VK_KHR_external_memory_fd.getMemoryFdKHR'.------     Finally, the application sends the image’s creation parameters, its---     /modifier/, its per-plane memory layout, and the exported memory---     handle to the external consumers. The details of how the application---     transmits this information to external consumers is outside the---     scope of this specification.------ == Prior Art------ Extension--- @EGL_EXT_image_dma_buf_import@<VK_EXT_image_drm_format_modifier-fn1.html 1>\<\/link>^--- introduced the ability to create an @EGLImage@ by importing for each--- plane a dma_buf, offset, and row pitch.------ Later, extension--- @EGL_EXT_image_dma_buf_import_modifiers@<VK_EXT_image_drm_format_modifier-fn2.html 2>\<\/link>^--- introduced the ability to query which combination of formats and--- /modifiers/ the implementation supports and to specify /modifiers/--- during creation of the @EGLImage@.------ Extension--- @EGL_MESA_image_dma_buf_export@<VK_EXT_image_drm_format_modifier-fn3.html 3>\<\/link>^--- is the inverse of @EGL_EXT_image_dma_buf_import_modifiers@.------ The Linux kernel modesetting API (KMS), when configuring the display’s--- framebuffer with @struct--- drm_mode_fb_cmd2@<VK_EXT_image_drm_format_modifier-fn4.html 4>\<\/link>^,--- allows one to specify the frambuffer’s /modifier/ as well as a per-plane--- memory handle, offset, and row pitch.------ GBM, a graphics buffer manager for Linux, allows creation of a @gbm_bo@--- (that is, a graphics /buffer object/) by importing data similar to that--- in--- @EGL_EXT_image_dma_buf_import_modifiers@<VK_EXT_image_drm_format_modifier-fn1.html 1>\<\/link>^;--- and symmetrically allows exporting the same data from the @gbm_bo@. See--- the references to /modifier/ and /plane/ in--- @gbm.h@<VK_EXT_image_drm_format_modifier-fn5.html 5>\<\/link>^.------ == New Commands------ -   'getImageDrmFormatModifierPropertiesEXT'------ == New Structures------ -   'DrmFormatModifierPropertiesEXT'------ -   'ImageDrmFormatModifierPropertiesEXT'------ -   Extending---     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.FormatProperties2':------     -   'DrmFormatModifierPropertiesListEXT'------ -   Extending 'Vulkan.Core10.Image.ImageCreateInfo':------     -   'ImageDrmFormatModifierExplicitCreateInfoEXT'------     -   'ImageDrmFormatModifierListCreateInfoEXT'------ -   Extending---     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceImageFormatInfo2':------     -   'PhysicalDeviceImageDrmFormatModifierInfoEXT'------ == New Enum Constants------ -   'EXT_IMAGE_DRM_FORMAT_MODIFIER_EXTENSION_NAME'------ -   'EXT_IMAGE_DRM_FORMAT_MODIFIER_SPEC_VERSION'------ -   Extending---     'Vulkan.Core10.Enums.ImageAspectFlagBits.ImageAspectFlagBits':------     -   'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_MEMORY_PLANE_0_BIT_EXT'------     -   'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_MEMORY_PLANE_1_BIT_EXT'------     -   'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_MEMORY_PLANE_2_BIT_EXT'------     -   'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_MEMORY_PLANE_3_BIT_EXT'------ -   Extending 'Vulkan.Core10.Enums.ImageTiling.ImageTiling':------     -   'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT'------ -   Extending 'Vulkan.Core10.Enums.Result.Result':------     -   'Vulkan.Core10.Enums.Result.ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT'------ -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':------     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT'------     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT'------     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT'------     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT'------     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT'------ == Issues------ 1) Should this extension define a single DRM format modifier per--- 'Vulkan.Core10.Handles.Image'? Or define one per plane?------ +------ __RESOLVED__: There exists a single DRM format modifier per--- 'Vulkan.Core10.Handles.Image'.------ __DISCUSSION__: Prior art, such as--- @EGL_EXT_image_dma_buf_import_modifiers@<VK_EXT_image_drm_format_modifier-fn2.html 2>\<\/link>^,--- @struct drm_mode_fb_cmd2@<VK_EXT_image_drm_format_modifier-fn4.html 4>\<\/link>^,--- and @struct--- gbm_import_fd_modifier_data@<VK_EXT_image_drm_format_modifier-fn5.html 5>\<\/link>^,--- allows defining one /modifier/ per plane. However, developers of the GBM--- and kernel APIs concede it was a mistake. Beginning in Linux 4.10, the--- kernel requires that the application provide the same DRM format--- /modifier/ for each plane. (See Linux commit--- <https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=bae781b259269590109e8a4a8227331362b88212 bae781b259269590109e8a4a8227331362b88212>).--- And GBM provides an entry point, @gbm_bo_get_modifier@, for querying the--- /modifier/ of the image but does not provide one to query the modifier--- of individual planes.------ 2) When creating an image with--- 'ImageDrmFormatModifierExplicitCreateInfoEXT', which is typically used--- when /importing/ an image, should the application explicitly provide the--- size of each plane?------ +------ __RESOLVED__: No. The application /must/ not provide the size. To--- enforce this, the API requires that--- 'ImageDrmFormatModifierExplicitCreateInfoEXT'::@pPlaneLayouts->size@--- /must/ be 0.------ __DISCUSSION__: Prior art, such as--- @EGL_EXT_image_dma_buf_import_modifiers@<VK_EXT_image_drm_format_modifier-fn2.html 2>\<\/link>^,--- @struct drm_mode_fb_cmd2@<VK_EXT_image_drm_format_modifier-fn4.html 4>\<\/link>^,--- and @struct--- gbm_import_fd_modifier_data@<VK_EXT_image_drm_format_modifier-fn5.html 5>\<\/link>^,--- omits from the API the size of each plane. Instead, the APIs infer each--- plane’s size from the import parameters, which include the image’s pixel--- format and a dma_buf, offset, and row pitch for each plane.------ However, Vulkan differs from EGL and GBM with regards to image creation--- in the following ways:------ -   __Undedicated allocation by default.__ When importing or exporting a---     set of dma_bufs as an @EGLImage@ or @gbm_bo@, common practice---     mandates that each dma_buf’s memory be dedicated (in the sense of---     @VK_KHR_dedicated_allocation@) to the image (though not necessarily---     dedicated to a single plane). In particular, neither the GBM---     documentation nor the EGL extension specifications explicitly state---     this requirement, but in light of common practice this is likely due---     to under-specification rather than intentional omission. In---     contrast, @VK_EXT_image_drm_format_modifier@ permits, but does not---     require, the implementation to require dedicated allocations for---     images created with---     'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT'.------ -   __Separation of image creation and memory allocation.__ When---     importing a set of dma_bufs as an @EGLImage@ or @gbm_bo@, EGL and---     GBM create the image resource and bind it to memory (the dma_bufs)---     simultaneously. This allows EGL and GBM to query each dma_buf’s size---     during image creation. In Vulkan, image creation and memory---     allocation are independent unless a dedicated allocation is used (as---     in @VK_KHR_dedicated_allocation@). Therefore, without requiring---     dedicated allocation, Vulkan cannot query the size of each dma_buf---     (or other external handle) when calculating the image’s memory---     layout. Even if dedication allocation were required, Vulkan cannot---     calculate the image’s memory layout until after the image is bound---     to its dma_ufs.------ The above differences complicate the potential inference of plane size--- in Vulkan. Consider the following problematic cases:------ -   __Padding.__ Some plane of the image may require---     implementation-dependent padding.------ -   __Metadata.__ For some /modifiers/, the image may have a metadata---     plane which requires a non-trivial calculation to determine its---     size.------ -   __Mipmapped, array, and 3D images.__ The implementation may support---     'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT'---     for images whose @mipLevels@, @arrayLayers@, or @depth@ is greater---     than 1. For such images with certain /modifiers/, the calculation of---     each plane’s size may be non-trivial.------ However, an application-provided plane size solves none of the above--- problems.------ For simplicity, consider an external image with a single memory plane.--- The implementation is obviously capable calculating the image’s size--- when its tiling is--- 'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_OPTIMAL'. Likewise, any--- reasonable implementation is capable of calculating the image’s size--- when its tiling uses a supported /modifier/.------ Suppose that the external image’s size is smaller than the--- implementation-calculated size. If the application provided the external--- image’s size to 'Vulkan.Core10.Image.createImage', the implementation--- would observe the mismatched size and recognize its inability to--- comprehend the external image’s layout (unless the implementation used--- the application-provided size to select a refinement of the tiling--- layout indicated by the /modifier/, which is strongly discouraged). The--- implementation would observe the conflict, and reject image creation--- with--- 'Vulkan.Core10.Enums.Result.ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT'.--- On the other hand, if the application did not provide the external--- image’s size to 'Vulkan.Core10.Image.createImage', then the application--- would observe after calling--- 'Vulkan.Core10.MemoryManagement.getImageMemoryRequirements' that the--- external image’s size is less than the size required by the--- implementation. The application would observe the conflict and refuse to--- bind the 'Vulkan.Core10.Handles.Image' to the external memory. In both--- cases, the result is explicit failure.------ Suppose that the external image’s size is larger than the--- implementation-calculated size. If the application provided the external--- image’s size to 'Vulkan.Core10.Image.createImage', for reasons similar--- to above the implementation would observe the mismatched size and--- recognize its inability to comprehend the image data residing in the--- extra size. The implementation, however, must assume that image data--- resides in the entire size provided by the application. The--- implementation would observe the conflict and reject image creation with--- 'Vulkan.Core10.Enums.Result.ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT'.--- On the other hand, if the application did not provide the external--- image’s size to 'Vulkan.Core10.Image.createImage', then the application--- would observe after calling--- 'Vulkan.Core10.MemoryManagement.getImageMemoryRequirements' that the--- external image’s size is larger than the implementation-usable size. The--- application would observe the conflict and refuse to bind the--- 'Vulkan.Core10.Handles.Image' to the external memory. In both cases, the--- result is explicit failure.------ Therefore, an application-provided size provides no benefit, and this--- extension should not require it. This decision renders--- 'Vulkan.Core10.Image.SubresourceLayout'::@size@ an unused field during--- image creation, and thus introduces a risk that implementations may--- require applications to submit sideband creation parameters in the--- unused field. To prevent implementations from relying on sideband data,--- this extension /requires/ the application to set @size@ to 0.------ === References------ 1.  #VK_EXT_image_drm_format_modifier-fn1#---     <https://www.khronos.org/registry/EGL/extensions/EXT/EGL_EXT_image_dma_buf_import.txt EGL_EXT_image_dma_buf_import>------ 2.  #VK_EXT_image_drm_format_modifier-fn2#---     <https://www.khronos.org/registry/EGL/extensions/EXT/EGL_EXT_image_dma_buf_import_modifiers.txt EGL_EXT_image_dma_buf_import_modifiers>------ 3.  #VK_EXT_image_drm_format_modifier-fn3#---     <https://www.khronos.org/registry/EGL/extensions/MESA/EGL_MESA_image_dma_buf_export.txt EGL_MESA_image_dma_buf_export>------ 4.  #VK_EXT_image_drm_format_modifier-fn4#---     <https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/include/uapi/drm/drm_mode.h?id=refs/tags/v4.10#n392 struct---     drm_mode_fb_cmd2>------ 5.  #VK_EXT_image_drm_format_modifier-fn5#---     <https://cgit.freedesktop.org/mesa/mesa/tree/src/gbm/main/gbm.h?id=refs/tags/mesa-18.0.0-rc1 gbm.h>------ === Version History------ -   Revision 1, 2018-08-29 (Chad Versace)------     -   First stable revision------ = See Also------ 'DrmFormatModifierPropertiesEXT', 'DrmFormatModifierPropertiesListEXT',--- 'ImageDrmFormatModifierExplicitCreateInfoEXT',--- 'ImageDrmFormatModifierListCreateInfoEXT',--- 'ImageDrmFormatModifierPropertiesEXT',--- 'PhysicalDeviceImageDrmFormatModifierInfoEXT',--- 'getImageDrmFormatModifierPropertiesEXT'------ = Document Notes------ For more information, see the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier Vulkan Specification>------ This page is a generated document. Fixes and changes should be made to--- the generator scripts, not directly.+-- @EGL_MESA_image_dma_buf_export@<VK_EXT_image_drm_format_modifier-fn3.html 3>^. module Vulkan.Extensions.VK_EXT_image_drm_format_modifier  ( DrmFormatModifierPropertiesEXT                                                            , DrmFormatModifierPropertiesListEXT                                                            , ImageDrmFormatModifierExplicitCreateInfoEXT
src/Vulkan/Extensions/VK_EXT_image_robustness.hs view
@@ -143,15 +143,19 @@ -- -- = Members ----- The members of the 'PhysicalDeviceImageRobustnessFeaturesEXT' structure--- describe the following features:+-- This structure describes the following feature: -- -- = Description -- -- If the 'PhysicalDeviceImageRobustnessFeaturesEXT' structure is included--- in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- it is filled with values indicating whether the feature is supported.+-- in the @pNext@ chain of the+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2'+-- structure passed to+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceFeatures2',+-- it is filled in to indicate whether each corresponding feature is+-- supported. 'PhysicalDeviceImageRobustnessFeaturesEXT' /can/ also be used+-- in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to+-- selectively enable these features. -- -- == Valid Usage (Implicit) --
src/Vulkan/Extensions/VK_EXT_index_type_uint8.hs view
@@ -116,18 +116,19 @@ -- -- = Members ----- The members of the 'PhysicalDeviceIndexTypeUint8FeaturesEXT' structure--- describe the following features:+-- This structure describes the following feature: -- -- = Description -- -- If the 'PhysicalDeviceIndexTypeUint8FeaturesEXT' structure is included--- in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- it is filled with values indicating whether the feature is supported.--- 'PhysicalDeviceIndexTypeUint8FeaturesEXT' /can/ also be included in the--- @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to enable--- features.+-- 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. 'PhysicalDeviceIndexTypeUint8FeaturesEXT' /can/ also be used+-- in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to+-- selectively enable these features. -- -- == Valid Usage (Implicit) --
src/Vulkan/Extensions/VK_EXT_inline_uniform_block.hs view
@@ -53,9 +53,9 @@ -- This extension introduces the ability to back uniform blocks directly -- with descriptor sets by storing inline uniform data within descriptor -- pool storage. Compared to push constants this new construct allows--- uniform data to be reused across multiple disjoint sets of draw or--- dispatch commands and /may/ enable uniform data to be accessed with less--- indirections compared to uniforms backed by buffer memory.+-- uniform data to be reused across multiple disjoint sets of drawing or+-- dispatching commands and /may/ enable uniform data to be accessed with+-- fewer indirections compared to uniforms backed by buffer memory. -- -- == New Structures --@@ -215,18 +215,19 @@ -- -- = Members ----- The members of the 'PhysicalDeviceInlineUniformBlockFeaturesEXT'--- structure describe the following features:+-- This structure describes the following features: -- -- = Description -- -- If the 'PhysicalDeviceInlineUniformBlockFeaturesEXT' structure is--- included in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- it is filled with values indicating whether each feature is supported.--- 'PhysicalDeviceInlineUniformBlockFeaturesEXT' /can/ also be included in--- the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to enable--- features.+-- included in the @pNext@ chain of the+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2'+-- structure passed to+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceFeatures2',+-- it is filled in to indicate whether each corresponding feature is+-- supported. 'PhysicalDeviceInlineUniformBlockFeaturesEXT' /can/ also be+-- used in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to+-- selectively enable these features. -- -- == Valid Usage (Implicit) --@@ -296,17 +297,15 @@ -- inline uniform block properties that can be supported by an -- implementation ----- = Members------ The members of the 'PhysicalDeviceInlineUniformBlockPropertiesEXT'--- structure describe the following implementation-dependent limits:--- -- = Description -- -- If the 'PhysicalDeviceInlineUniformBlockPropertiesEXT' structure is--- included in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2',--- it is filled with the implementation-dependent limits.+-- 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) --
src/Vulkan/Extensions/VK_EXT_inline_uniform_block.hs-boot view
@@ -53,9 +53,9 @@ -- This extension introduces the ability to back uniform blocks directly -- with descriptor sets by storing inline uniform data within descriptor -- pool storage. Compared to push constants this new construct allows--- uniform data to be reused across multiple disjoint sets of draw or--- dispatch commands and /may/ enable uniform data to be accessed with less--- indirections compared to uniforms backed by buffer memory.+-- uniform data to be reused across multiple disjoint sets of drawing or+-- dispatching commands and /may/ enable uniform data to be accessed with+-- fewer indirections compared to uniforms backed by buffer memory. -- -- == New Structures --
src/Vulkan/Extensions/VK_EXT_line_rasterization.hs view
@@ -103,9 +103,8 @@ -- == Issues -- -- > (1) Do we need to support Bresenham-style and smooth lines with more than--- >     one rasterization sample? i.e. the equivalent of--- >     glDisable(GL_MULTISAMPLE) in OpenGL when the framebuffer has more than--- >     one sample?+-- > one rasterization sample? i.e. the equivalent of glDisable(GL_MULTISAMPLE)+-- > in OpenGL when the framebuffer has more than one sample? -- -- > RESOLVED: Yes. -- > For simplicity, Bresenham line rasterization carries forward a few@@ -270,18 +269,19 @@ -- -- = Members ----- The members of the 'PhysicalDeviceLineRasterizationFeaturesEXT'--- structure describe the following features:+-- This structure describes the following features: -- -- = Description -- -- If the 'PhysicalDeviceLineRasterizationFeaturesEXT' structure is--- included in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- it is filled with values indicating whether the feature is supported.--- 'PhysicalDeviceLineRasterizationFeaturesEXT' /can/ also be included in--- the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to enable--- the feature.+-- 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. 'PhysicalDeviceLineRasterizationFeaturesEXT' /can/ also be+-- used in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to+-- selectively enable these features. -- -- == Valid Usage (Implicit) --@@ -382,17 +382,15 @@ -- | VkPhysicalDeviceLineRasterizationPropertiesEXT - Structure describing -- line rasterization properties supported by an implementation ----- = Members------ The members of the 'PhysicalDeviceLineRasterizationPropertiesEXT'--- structure describe the following implementation-dependent limits:--- -- = Description -- -- If the 'PhysicalDeviceLineRasterizationPropertiesEXT' structure is--- included in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2',--- it is filled with the implementation-dependent limits.+-- 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) --
src/Vulkan/Extensions/VK_EXT_line_rasterization.hs-boot view
@@ -103,9 +103,8 @@ -- == Issues -- -- > (1) Do we need to support Bresenham-style and smooth lines with more than--- >     one rasterization sample? i.e. the equivalent of--- >     glDisable(GL_MULTISAMPLE) in OpenGL when the framebuffer has more than--- >     one sample?+-- > one rasterization sample? i.e. the equivalent of glDisable(GL_MULTISAMPLE)+-- > in OpenGL when the framebuffer has more than one sample? -- -- > RESOLVED: Yes. -- > For simplicity, Bresenham line rasterization carries forward a few
src/Vulkan/Extensions/VK_EXT_memory_priority.hs view
@@ -131,18 +131,19 @@ -- -- = Members ----- The members of the 'PhysicalDeviceMemoryPriorityFeaturesEXT' structure--- describe the following features:+-- This structure describes the following feature: -- -- = Description -- -- If the 'PhysicalDeviceMemoryPriorityFeaturesEXT' structure is included--- in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- it is filled with values indicating whether the feature is supported.--- 'PhysicalDeviceMemoryPriorityFeaturesEXT' /can/ also be included in the--- @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to enable--- features.+-- 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. 'PhysicalDeviceMemoryPriorityFeaturesEXT' /can/ also be used+-- in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to+-- selectively enable these features. -- -- == Valid Usage (Implicit) --
src/Vulkan/Extensions/VK_EXT_pci_bus_info.hs view
@@ -127,6 +127,18 @@ -- | VkPhysicalDevicePCIBusInfoPropertiesEXT - Structure containing PCI bus -- information of a physical device --+-- = Description+--+-- If the 'PhysicalDevicePCIBusInfoPropertiesEXT' structure is included in+-- the @pNext@ chain of the+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2'+-- structure passed to+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceProperties2',+-- it is filled in with each corresponding implementation-dependent+-- property.+--+-- These are properties of the PCI bus information of a physical device.+-- -- == Valid Usage (Implicit) -- -- = See Also
src/Vulkan/Extensions/VK_EXT_pipeline_creation_cache_control.hs view
@@ -102,7 +102,7 @@ -- The job or task based game engines that are being developed to take -- advantage of explicit graphics APIs like Vulkan may behave exceptionally -- poorly if any of the above scenarios occur. However, most game engines--- are already built to \"stream\" in assets dynamically as the user plays+-- are already built to “stream” in assets dynamically as the user plays -- the game. By adding control by way of -- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PipelineCreateFlags', we can -- require an ICD to report back a failure in critical execution paths@@ -241,19 +241,20 @@ -- -- = Members ----- The members of the--- 'PhysicalDevicePipelineCreationCacheControlFeaturesEXT' structure--- describe the following features:+-- This structure describes the following feature: -- -- = Description -- -- If the 'PhysicalDevicePipelineCreationCacheControlFeaturesEXT' structure--- is included in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- it is filled with values indicating whether the feature is supported.--- 'PhysicalDevicePipelineCreationCacheControlFeaturesEXT' /can/ also be--- used in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to--- enable features.+-- is included in the @pNext@ chain of the+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2'+-- structure passed to+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceFeatures2',+-- it is filled in to indicate whether each corresponding feature is+-- supported. 'PhysicalDevicePipelineCreationCacheControlFeaturesEXT' /can/+-- also be used in the @pNext@ chain of+-- 'Vulkan.Core10.Device.DeviceCreateInfo' to selectively enable these+-- features. -- -- == Valid Usage (Implicit) --
src/Vulkan/Extensions/VK_EXT_pipeline_creation_cache_control.hs-boot view
@@ -102,7 +102,7 @@ -- The job or task based game engines that are being developed to take -- advantage of explicit graphics APIs like Vulkan may behave exceptionally -- poorly if any of the above scenarios occur. However, most game engines--- are already built to \"stream\" in assets dynamically as the user plays+-- are already built to “stream” in assets dynamically as the user plays -- the game. By adding control by way of -- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PipelineCreateFlags', we can -- require an ICD to report back a failure in critical execution paths
src/Vulkan/Extensions/VK_EXT_private_data.hs view
@@ -629,17 +629,19 @@ -- -- = Members ----- The members of the 'PhysicalDevicePrivateDataFeaturesEXT' structure--- describe the following features:+-- This structure describes the following feature: -- -- = Description -- -- If the 'PhysicalDevicePrivateDataFeaturesEXT' structure is included in--- the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- it is filled with values indicating whether the feature is supported.--- 'PhysicalDevicePrivateDataFeaturesEXT' /can/ also be used in the @pNext@--- chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to enable the features.+-- the @pNext@ chain of the+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2'+-- structure passed to+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceFeatures2',+-- it is filled in to indicate whether each corresponding feature is+-- supported. 'PhysicalDevicePrivateDataFeaturesEXT' /can/ also be used in+-- the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to+-- selectively enable these features. -- -- == Valid Usage (Implicit) --
+ src/Vulkan/Extensions/VK_EXT_provoking_vertex.hs view
@@ -0,0 +1,530 @@+{-# language CPP #-}+-- | = Name+--+-- VK_EXT_provoking_vertex - device extension+--+-- == VK_EXT_provoking_vertex+--+-- [__Name String__]+--     @VK_EXT_provoking_vertex@+--+-- [__Extension Type__]+--     Device extension+--+-- [__Registered Extension Number__]+--     255+--+-- [__Revision__]+--     1+--+-- [__Extension and Version Dependencies__]+--+--     -   Requires Vulkan 1.0+--+--     -   Requires @VK_KHR_get_physical_device_properties2@+--+-- [__Special Use__]+--+--     -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#extendingvulkan-compatibility-specialuse OpenGL \/ ES support>+--+-- [__Contact__]+--+--     -   Jesse Hall+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?title=VK_EXT_provoking_vertex:%20&body=@jessehall%20 >+--+-- == Other Extension Metadata+--+-- [__Last Modified Date__]+--     2021-02-22+--+-- [__IP Status__]+--     No known IP claims.+--+-- [__Contributors__]+--+--     -   Alexis Hétu, Google+--+--     -   Bill Licea-Kane, Qualcomm+--+--     -   Daniel Koch, Nvidia+--+--     -   Jamie Madill, Google+--+--     -   Jan-Harald Fredriksen, Arm+--+--     -   Jason Ekstrand, Intel+--+--     -   Jeff Bolz, Nvidia+--+--     -   Jeff Leger, Qualcomm+--+--     -   Jesse Hall, Google+--+--     -   Jörg Wagner, Arm+--+--     -   Matthew Netsch, Qualcomm+--+--     -   Mike Blumenkrantz, Valve+--+--     -   Piers Daniell, Nvidia+--+--     -   Tobias Hector, AMD+--+-- == Description+--+-- This extension allows changing the provoking vertex convention between+-- Vulkan’s default convention (first vertex) and OpenGL’s convention (last+-- vertex).+--+-- This extension is intended for use by API-translation layers that+-- implement APIs like OpenGL on top of Vulkan, and need to match the+-- source API’s provoking vertex convention. Applications using Vulkan+-- directly should use Vulkan’s default convention.+--+-- == New Structures+--+-- -   Extending+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',+--     'Vulkan.Core10.Device.DeviceCreateInfo':+--+--     -   'PhysicalDeviceProvokingVertexFeaturesEXT'+--+-- -   Extending+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2':+--+--     -   'PhysicalDeviceProvokingVertexPropertiesEXT'+--+-- -   Extending+--     'Vulkan.Core10.Pipeline.PipelineRasterizationStateCreateInfo':+--+--     -   'PipelineRasterizationProvokingVertexStateCreateInfoEXT'+--+-- == New Enums+--+-- -   'ProvokingVertexModeEXT'+--+-- == New Enum Constants+--+-- -   'EXT_PROVOKING_VERTEX_EXTENSION_NAME'+--+-- -   'EXT_PROVOKING_VERTEX_SPEC_VERSION'+--+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT'+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT'+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT'+--+-- == Issues+--+-- 1) At what granularity should this state be set?+--+-- __RESOLVED__: At pipeline bind, with an optional per-renderpass+-- restriction.+--+-- The most natural place to put this state is in the graphics pipeline+-- object. Some implementations require it to be known when creating the+-- pipeline, and pipeline state is convenient for implementing OpenGL 3.2’s+-- glProvokingVertex, which can change the state between draw calls.+-- However, some implementations can only change it approximately+-- renderpass granularity. To accommodate both, provoking vertex will be+-- pipeline state, but implementations can require that only one mode is+-- used within a renderpass instance; the renderpass’s mode is chosen+-- implicitly when the first pipeline is bound.+--+-- 2) Does the provoking vertex mode affect the order that vertices are+-- written to transform feedback buffers?+--+-- __RESOLVED__: Yes, to enable layered implementations of OpenGL and D3D.+--+-- All of OpenGL, OpenGL ES, and Direct3D 11 require that vertices are+-- written to transform feedback buffers such that flat-shaded attributes+-- have the same value when drawing the contents of the transform feedback+-- buffer as they did in the original drawing when the transform feedback+-- buffer was written (assuming the provoking vertex mode hasn’t changed,+-- in APIs that support more than one mode).+--+-- == Version History+--+-- -   Revision 1(c), 2021-02-22 (Jesse Hall)+--+--     -   Added+--         VkPhysicalDeviceProvokingVertexPropertiesEXT::transformFeedbackPreservesTriangleFanProvokingVertex+--         to accommodate implementations that can’t change the transform+--         feedback vertex order for triangle fans.+--+-- -   Revision 1(b), 2020-06-14 (Jesse Hall)+--+--     -   Added+--         VkPhysicalDeviceProvokingVertexFeaturesEXT::transformFeedbackPreservesProvokingVertex+--         and required that transform feedback write vertices so as to+--         preserve the provoking vertex of each primitive.+--+-- -   Revision 1(a), 2019-10-23 (Jesse Hall)+--+--     -   Initial draft, based on a proposal by Alexis Hétu+--+-- = See Also+--+-- 'PhysicalDeviceProvokingVertexFeaturesEXT',+-- 'PhysicalDeviceProvokingVertexPropertiesEXT',+-- 'PipelineRasterizationProvokingVertexStateCreateInfoEXT',+-- 'ProvokingVertexModeEXT'+--+-- = Document Notes+--+-- For more information, see the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_provoking_vertex Vulkan Specification>+--+-- This page is a generated document. Fixes and changes should be made to+-- the generator scripts, not directly.+module Vulkan.Extensions.VK_EXT_provoking_vertex  ( PhysicalDeviceProvokingVertexFeaturesEXT(..)+                                                  , PhysicalDeviceProvokingVertexPropertiesEXT(..)+                                                  , PipelineRasterizationProvokingVertexStateCreateInfoEXT(..)+                                                  , ProvokingVertexModeEXT( PROVOKING_VERTEX_MODE_FIRST_VERTEX_EXT+                                                                          , PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT+                                                                          , ..+                                                                          )+                                                  , EXT_PROVOKING_VERTEX_SPEC_VERSION+                                                  , pattern EXT_PROVOKING_VERTEX_SPEC_VERSION+                                                  , EXT_PROVOKING_VERTEX_EXTENSION_NAME+                                                  , pattern EXT_PROVOKING_VERTEX_EXTENSION_NAME+                                                  ) where++import Vulkan.Internal.Utils (enumReadPrec)+import Vulkan.Internal.Utils (enumShowsPrec)+import Foreign.Marshal.Alloc (allocaBytesAligned)+import Foreign.Ptr (nullPtr)+import Foreign.Ptr (plusPtr)+import GHC.Show (showsPrec)+import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (FromCStruct(..))+import Vulkan.CStruct (ToCStruct)+import Vulkan.CStruct (ToCStruct(..))+import Vulkan.Zero (Zero)+import Vulkan.Zero (Zero(..))+import Data.String (IsString)+import Data.Typeable (Typeable)+import Foreign.Storable (Storable)+import Foreign.Storable (Storable(peek))+import Foreign.Storable (Storable(poke))+import qualified Foreign.Storable (Storable(..))+import GHC.Generics (Generic)+import Data.Int (Int32)+import Foreign.Ptr (Ptr)+import GHC.Read (Read(readPrec))+import GHC.Show (Show(showsPrec))+import Data.Kind (Type)+import Vulkan.Core10.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_PROVOKING_VERTEX_FEATURES_EXT))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT))+-- | VkPhysicalDeviceProvokingVertexFeaturesEXT - Structure describing the+-- provoking vertex features that can be supported by an implementation+--+-- = Members+--+-- This structure describes the following feature:+--+-- = Description+--+-- If the 'PhysicalDeviceProvokingVertexFeaturesEXT' 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. 'PhysicalDeviceProvokingVertexFeaturesEXT' /can/ also be used+-- in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to+-- selectively enable these features.+--+-- When 'PhysicalDeviceProvokingVertexFeaturesEXT' is in the @pNext@ chain+-- of 'Vulkan.Core10.Device.DeviceCreateInfo' but the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-transformFeedback transform feedback feature>+-- is not enabled, the value of @transformFeedbackPreservesProvokingVertex@+-- is ignored.+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data PhysicalDeviceProvokingVertexFeaturesEXT = PhysicalDeviceProvokingVertexFeaturesEXT+  { -- | #features-provokingVertexLast# @provokingVertexLast@ indicates whether+    -- the implementation supports the 'PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT'+    -- <VkProvokingVertexModeEXT.html provoking vertex mode> for flat shading.+    provokingVertexLast :: Bool+  , -- | #features-transformFeedbackPreservesProvokingVertex#+    -- @transformFeedbackPreservesProvokingVertex@ indicates that the order of+    -- vertices within each primitive written by transform feedback will+    -- preserve the provoking vertex. This does not apply to triangle fan+    -- primitives when+    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-transformFeedbackPreservesTriangleFanProvokingVertex transformFeedbackPreservesTriangleFanProvokingVertex>+    -- is 'Vulkan.Core10.FundamentalTypes.FALSE'.+    -- @transformFeedbackPreservesProvokingVertex@ /must/ be+    -- 'Vulkan.Core10.FundamentalTypes.FALSE' when the+    -- VK_EXT_transform_feedback extension is not supported.+    transformFeedbackPreservesProvokingVertex :: Bool+  }+  deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PhysicalDeviceProvokingVertexFeaturesEXT)+#endif+deriving instance Show PhysicalDeviceProvokingVertexFeaturesEXT++instance ToCStruct PhysicalDeviceProvokingVertexFeaturesEXT where+  withCStruct x f = allocaBytesAligned 24 8 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p PhysicalDeviceProvokingVertexFeaturesEXT{..} f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (provokingVertexLast))+    poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (transformFeedbackPreservesProvokingVertex))+    f+  cStructSize = 24+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_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 PhysicalDeviceProvokingVertexFeaturesEXT where+  peekCStruct p = do+    provokingVertexLast <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))+    transformFeedbackPreservesProvokingVertex <- peek @Bool32 ((p `plusPtr` 20 :: Ptr Bool32))+    pure $ PhysicalDeviceProvokingVertexFeaturesEXT+             (bool32ToBool provokingVertexLast) (bool32ToBool transformFeedbackPreservesProvokingVertex)++instance Storable PhysicalDeviceProvokingVertexFeaturesEXT where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek = peekCStruct+  poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero PhysicalDeviceProvokingVertexFeaturesEXT where+  zero = PhysicalDeviceProvokingVertexFeaturesEXT+           zero+           zero+++-- | VkPhysicalDeviceProvokingVertexPropertiesEXT - Structure describing+-- provoking vertex properties supported by an implementation+--+-- = Description+--+-- If the 'PhysicalDeviceProvokingVertexPropertiesEXT' 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+--+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data PhysicalDeviceProvokingVertexPropertiesEXT = PhysicalDeviceProvokingVertexPropertiesEXT+  { -- | #limits-provokingVertexModePerPipeline# @provokingVertexModePerPipeline@+    -- indicates whether the implementation supports graphics pipelines with+    -- different provoking vertex modes within the same renderpass instance.+    provokingVertexModePerPipeline :: Bool+  , -- | #limits-transformFeedbackPreservesTriangleFanProvokingVertex#+    -- @transformFeedbackPreservesTriangleFanProvokingVertex@ indicates whether+    -- the implementation can preserve the provoking vertex order when writing+    -- triangle fan vertices to transform feedback.+    transformFeedbackPreservesTriangleFanProvokingVertex :: Bool+  }+  deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PhysicalDeviceProvokingVertexPropertiesEXT)+#endif+deriving instance Show PhysicalDeviceProvokingVertexPropertiesEXT++instance ToCStruct PhysicalDeviceProvokingVertexPropertiesEXT where+  withCStruct x f = allocaBytesAligned 24 8 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p PhysicalDeviceProvokingVertexPropertiesEXT{..} f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (provokingVertexModePerPipeline))+    poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (transformFeedbackPreservesTriangleFanProvokingVertex))+    f+  cStructSize = 24+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))+    poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (zero))+    f++instance FromCStruct PhysicalDeviceProvokingVertexPropertiesEXT where+  peekCStruct p = do+    provokingVertexModePerPipeline <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))+    transformFeedbackPreservesTriangleFanProvokingVertex <- peek @Bool32 ((p `plusPtr` 20 :: Ptr Bool32))+    pure $ PhysicalDeviceProvokingVertexPropertiesEXT+             (bool32ToBool provokingVertexModePerPipeline) (bool32ToBool transformFeedbackPreservesTriangleFanProvokingVertex)++instance Storable PhysicalDeviceProvokingVertexPropertiesEXT where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek = peekCStruct+  poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero PhysicalDeviceProvokingVertexPropertiesEXT where+  zero = PhysicalDeviceProvokingVertexPropertiesEXT+           zero+           zero+++-- | VkPipelineRasterizationProvokingVertexStateCreateInfoEXT - Structure+-- specifying provoking vertex mode used by a graphics pipeline+--+-- = Description+--+-- If this struct is not provided when creating the pipeline, the pipeline+-- will use the 'PROVOKING_VERTEX_MODE_FIRST_VERTEX_EXT' mode.+--+-- If the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-provokingVertexModePerPipeline provokingVertexModePerPipeline>+-- limit is 'Vulkan.Core10.FundamentalTypes.FALSE', then the all pipelines+-- bound within a renderpass instance /must/ have the same+-- @provokingVertexMode@.+--+-- == Valid Usage+--+-- -   #VUID-VkPipelineRasterizationProvokingVertexStateCreateInfoEXT-provokingVertexMode-04883#+--     If @provokingVertexMode@ is 'PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT',+--     then the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-provokingVertexLast provokingVertexLast>+--     feature /must/ be enabled+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-VkPipelineRasterizationProvokingVertexStateCreateInfoEXT-sType-sType#+--     @sType@ /must/ be+--     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT'+--+-- -   #VUID-VkPipelineRasterizationProvokingVertexStateCreateInfoEXT-provokingVertexMode-parameter#+--     @provokingVertexMode@ /must/ be a valid 'ProvokingVertexModeEXT'+--     value+--+-- = See Also+--+-- 'ProvokingVertexModeEXT',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data PipelineRasterizationProvokingVertexStateCreateInfoEXT = PipelineRasterizationProvokingVertexStateCreateInfoEXT+  { -- | @provokingVertexMode@ is a 'ProvokingVertexModeEXT' value selecting the+    -- provoking vertex mode.+    provokingVertexMode :: ProvokingVertexModeEXT }+  deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PipelineRasterizationProvokingVertexStateCreateInfoEXT)+#endif+deriving instance Show PipelineRasterizationProvokingVertexStateCreateInfoEXT++instance ToCStruct PipelineRasterizationProvokingVertexStateCreateInfoEXT where+  withCStruct x f = allocaBytesAligned 24 8 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p PipelineRasterizationProvokingVertexStateCreateInfoEXT{..} f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr ProvokingVertexModeEXT)) (provokingVertexMode)+    f+  cStructSize = 24+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr ProvokingVertexModeEXT)) (zero)+    f++instance FromCStruct PipelineRasterizationProvokingVertexStateCreateInfoEXT where+  peekCStruct p = do+    provokingVertexMode <- peek @ProvokingVertexModeEXT ((p `plusPtr` 16 :: Ptr ProvokingVertexModeEXT))+    pure $ PipelineRasterizationProvokingVertexStateCreateInfoEXT+             provokingVertexMode++instance Storable PipelineRasterizationProvokingVertexStateCreateInfoEXT where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek = peekCStruct+  poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero PipelineRasterizationProvokingVertexStateCreateInfoEXT where+  zero = PipelineRasterizationProvokingVertexStateCreateInfoEXT+           zero+++-- | VkProvokingVertexModeEXT - Specify which vertex in a primitive is the+-- provoking vertex+--+-- = Description+--+-- These modes are described more precisely in+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#drawing-primitive-topologies Primitive Topologies>.+--+-- = See Also+--+-- 'PipelineRasterizationProvokingVertexStateCreateInfoEXT'+newtype ProvokingVertexModeEXT = ProvokingVertexModeEXT Int32+  deriving newtype (Eq, Ord, Storable, Zero)++-- | 'PROVOKING_VERTEX_MODE_FIRST_VERTEX_EXT' specifies that the provoking+-- vertex is the first non-adjacency vertex in the list of vertices used by+-- a primitive.+pattern PROVOKING_VERTEX_MODE_FIRST_VERTEX_EXT = ProvokingVertexModeEXT 0+-- | 'PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT' specifies that the provoking+-- vertex is the last non-adjacency vertex in the list of vertices used by+-- a primitive.+pattern PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT  = ProvokingVertexModeEXT 1+{-# complete PROVOKING_VERTEX_MODE_FIRST_VERTEX_EXT,+             PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT :: ProvokingVertexModeEXT #-}++conNameProvokingVertexModeEXT :: String+conNameProvokingVertexModeEXT = "ProvokingVertexModeEXT"++enumPrefixProvokingVertexModeEXT :: String+enumPrefixProvokingVertexModeEXT = "PROVOKING_VERTEX_MODE_"++showTableProvokingVertexModeEXT :: [(ProvokingVertexModeEXT, String)]+showTableProvokingVertexModeEXT =+  [ (PROVOKING_VERTEX_MODE_FIRST_VERTEX_EXT, "FIRST_VERTEX_EXT")+  , (PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT , "LAST_VERTEX_EXT")+  ]++instance Show ProvokingVertexModeEXT where+  showsPrec = enumShowsPrec enumPrefixProvokingVertexModeEXT+                            showTableProvokingVertexModeEXT+                            conNameProvokingVertexModeEXT+                            (\(ProvokingVertexModeEXT x) -> x)+                            (showsPrec 11)++instance Read ProvokingVertexModeEXT where+  readPrec = enumReadPrec enumPrefixProvokingVertexModeEXT+                          showTableProvokingVertexModeEXT+                          conNameProvokingVertexModeEXT+                          ProvokingVertexModeEXT+++type EXT_PROVOKING_VERTEX_SPEC_VERSION = 1++-- No documentation found for TopLevel "VK_EXT_PROVOKING_VERTEX_SPEC_VERSION"+pattern EXT_PROVOKING_VERTEX_SPEC_VERSION :: forall a . Integral a => a+pattern EXT_PROVOKING_VERTEX_SPEC_VERSION = 1+++type EXT_PROVOKING_VERTEX_EXTENSION_NAME = "VK_EXT_provoking_vertex"++-- No documentation found for TopLevel "VK_EXT_PROVOKING_VERTEX_EXTENSION_NAME"+pattern EXT_PROVOKING_VERTEX_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a+pattern EXT_PROVOKING_VERTEX_EXTENSION_NAME = "VK_EXT_provoking_vertex"+
+ src/Vulkan/Extensions/VK_EXT_provoking_vertex.hs-boot view
@@ -0,0 +1,214 @@+{-# language CPP #-}+-- | = Name+--+-- VK_EXT_provoking_vertex - device extension+--+-- == VK_EXT_provoking_vertex+--+-- [__Name String__]+--     @VK_EXT_provoking_vertex@+--+-- [__Extension Type__]+--     Device extension+--+-- [__Registered Extension Number__]+--     255+--+-- [__Revision__]+--     1+--+-- [__Extension and Version Dependencies__]+--+--     -   Requires Vulkan 1.0+--+--     -   Requires @VK_KHR_get_physical_device_properties2@+--+-- [__Special Use__]+--+--     -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#extendingvulkan-compatibility-specialuse OpenGL \/ ES support>+--+-- [__Contact__]+--+--     -   Jesse Hall+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?title=VK_EXT_provoking_vertex:%20&body=@jessehall%20 >+--+-- == Other Extension Metadata+--+-- [__Last Modified Date__]+--     2021-02-22+--+-- [__IP Status__]+--     No known IP claims.+--+-- [__Contributors__]+--+--     -   Alexis Hétu, Google+--+--     -   Bill Licea-Kane, Qualcomm+--+--     -   Daniel Koch, Nvidia+--+--     -   Jamie Madill, Google+--+--     -   Jan-Harald Fredriksen, Arm+--+--     -   Jason Ekstrand, Intel+--+--     -   Jeff Bolz, Nvidia+--+--     -   Jeff Leger, Qualcomm+--+--     -   Jesse Hall, Google+--+--     -   Jörg Wagner, Arm+--+--     -   Matthew Netsch, Qualcomm+--+--     -   Mike Blumenkrantz, Valve+--+--     -   Piers Daniell, Nvidia+--+--     -   Tobias Hector, AMD+--+-- == Description+--+-- This extension allows changing the provoking vertex convention between+-- Vulkan’s default convention (first vertex) and OpenGL’s convention (last+-- vertex).+--+-- This extension is intended for use by API-translation layers that+-- implement APIs like OpenGL on top of Vulkan, and need to match the+-- source API’s provoking vertex convention. Applications using Vulkan+-- directly should use Vulkan’s default convention.+--+-- == New Structures+--+-- -   Extending+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',+--     'Vulkan.Core10.Device.DeviceCreateInfo':+--+--     -   'PhysicalDeviceProvokingVertexFeaturesEXT'+--+-- -   Extending+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2':+--+--     -   'PhysicalDeviceProvokingVertexPropertiesEXT'+--+-- -   Extending+--     'Vulkan.Core10.Pipeline.PipelineRasterizationStateCreateInfo':+--+--     -   'PipelineRasterizationProvokingVertexStateCreateInfoEXT'+--+-- == New Enums+--+-- -   'ProvokingVertexModeEXT'+--+-- == New Enum Constants+--+-- -   'EXT_PROVOKING_VERTEX_EXTENSION_NAME'+--+-- -   'EXT_PROVOKING_VERTEX_SPEC_VERSION'+--+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT'+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT'+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT'+--+-- == Issues+--+-- 1) At what granularity should this state be set?+--+-- __RESOLVED__: At pipeline bind, with an optional per-renderpass+-- restriction.+--+-- The most natural place to put this state is in the graphics pipeline+-- object. Some implementations require it to be known when creating the+-- pipeline, and pipeline state is convenient for implementing OpenGL 3.2’s+-- glProvokingVertex, which can change the state between draw calls.+-- However, some implementations can only change it approximately+-- renderpass granularity. To accommodate both, provoking vertex will be+-- pipeline state, but implementations can require that only one mode is+-- used within a renderpass instance; the renderpass’s mode is chosen+-- implicitly when the first pipeline is bound.+--+-- 2) Does the provoking vertex mode affect the order that vertices are+-- written to transform feedback buffers?+--+-- __RESOLVED__: Yes, to enable layered implementations of OpenGL and D3D.+--+-- All of OpenGL, OpenGL ES, and Direct3D 11 require that vertices are+-- written to transform feedback buffers such that flat-shaded attributes+-- have the same value when drawing the contents of the transform feedback+-- buffer as they did in the original drawing when the transform feedback+-- buffer was written (assuming the provoking vertex mode hasn’t changed,+-- in APIs that support more than one mode).+--+-- == Version History+--+-- -   Revision 1(c), 2021-02-22 (Jesse Hall)+--+--     -   Added+--         VkPhysicalDeviceProvokingVertexPropertiesEXT::transformFeedbackPreservesTriangleFanProvokingVertex+--         to accommodate implementations that can’t change the transform+--         feedback vertex order for triangle fans.+--+-- -   Revision 1(b), 2020-06-14 (Jesse Hall)+--+--     -   Added+--         VkPhysicalDeviceProvokingVertexFeaturesEXT::transformFeedbackPreservesProvokingVertex+--         and required that transform feedback write vertices so as to+--         preserve the provoking vertex of each primitive.+--+-- -   Revision 1(a), 2019-10-23 (Jesse Hall)+--+--     -   Initial draft, based on a proposal by Alexis Hétu+--+-- = See Also+--+-- 'PhysicalDeviceProvokingVertexFeaturesEXT',+-- 'PhysicalDeviceProvokingVertexPropertiesEXT',+-- 'PipelineRasterizationProvokingVertexStateCreateInfoEXT',+-- 'ProvokingVertexModeEXT'+--+-- = Document Notes+--+-- For more information, see the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_provoking_vertex Vulkan Specification>+--+-- This page is a generated document. Fixes and changes should be made to+-- the generator scripts, not directly.+module Vulkan.Extensions.VK_EXT_provoking_vertex  ( PhysicalDeviceProvokingVertexFeaturesEXT+                                                  , PhysicalDeviceProvokingVertexPropertiesEXT+                                                  , PipelineRasterizationProvokingVertexStateCreateInfoEXT+                                                  ) where++import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (ToCStruct)+import Data.Kind (Type)++data PhysicalDeviceProvokingVertexFeaturesEXT++instance ToCStruct PhysicalDeviceProvokingVertexFeaturesEXT+instance Show PhysicalDeviceProvokingVertexFeaturesEXT++instance FromCStruct PhysicalDeviceProvokingVertexFeaturesEXT+++data PhysicalDeviceProvokingVertexPropertiesEXT++instance ToCStruct PhysicalDeviceProvokingVertexPropertiesEXT+instance Show PhysicalDeviceProvokingVertexPropertiesEXT++instance FromCStruct PhysicalDeviceProvokingVertexPropertiesEXT+++data PipelineRasterizationProvokingVertexStateCreateInfoEXT++instance ToCStruct PipelineRasterizationProvokingVertexStateCreateInfoEXT+instance Show PipelineRasterizationProvokingVertexStateCreateInfoEXT++instance FromCStruct PipelineRasterizationProvokingVertexStateCreateInfoEXT+
src/Vulkan/Extensions/VK_EXT_robustness2.hs view
@@ -55,7 +55,7 @@ -- These additional requirements /may/ be expensive on some -- implementations, and should only be enabled when truly necessary. ----- This extension also adds support for \"null descriptors\", where+-- This extension also adds support for “null descriptors”, where -- 'Vulkan.Core10.APIConstants.NULL_HANDLE' /can/ be used instead of a -- valid handle. Accesses to null descriptors have well-defined behavior, -- and don’t rely on robustness.@@ -93,14 +93,14 @@ --     'PhysicalDeviceRobustness2PropertiesEXT'::@robustStorageBufferAccessSizeAlignment@ --     exist? ----- RESOLVED: Some implementations can’t efficiently tightly bounds-check--- all buffer accesses. Rather, the size of the bound range is padded to--- some power of two multiple, up to 256 bytes for uniform buffers and up--- to 4 bytes for storage buffers, and that padded size is bounds-checked.--- This is sufficient to implement D3D-like behavior, because D3D only--- allows binding whole uniform buffers or ranges that are a multiple of--- 256 bytes, and D3D raw and structured buffers only support 32-bit--- accesses.+-- __RESOLVED__: Some implementations can’t efficiently tightly+-- bounds-check all buffer accesses. Rather, the size of the bound range is+-- padded to some power of two multiple, up to 256 bytes for uniform+-- buffers and up to 4 bytes for storage buffers, and that padded size is+-- bounds-checked. This is sufficient to implement D3D-like behavior,+-- because D3D only allows binding whole uniform buffers or ranges that are+-- a multiple of 256 bytes, and D3D raw and structured buffers only support+-- 32-bit accesses. -- -- == Examples --@@ -161,11 +161,15 @@ -- -- = Members ----- The members of the 'PhysicalDeviceRobustness2FeaturesEXT' structure--- describe the following features:+-- This structure describes the following features: -- -- = Description --+-- -   @sType@ is the type of this structure.+--+-- -   @pNext@ is @NULL@ or a pointer to a structure extending this+--     structure.+-- -- -   #features-robustBufferAccess2# @robustBufferAccess2@ indicates --     whether buffer accesses are tightly bounds-checked against the range --     of the descriptor. Uniform buffers /must/ be bounds-checked to the@@ -193,9 +197,14 @@ --     to nothing. -- -- If the 'PhysicalDeviceRobustness2FeaturesEXT' structure is included in--- the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- it is filled with values indicating whether each feature is supported.+-- 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. 'PhysicalDeviceRobustness2FeaturesEXT' /can/ also be used in+-- the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to+-- selectively enable these features. -- -- == Valid Usage --@@ -271,17 +280,15 @@ -- | VkPhysicalDeviceRobustness2PropertiesEXT - Structure describing robust -- buffer access properties supported by an implementation ----- = Members------ The members of the 'PhysicalDeviceRobustness2PropertiesEXT' structure--- describe the following implementation-dependent limits:--- -- = Description -- -- If the 'PhysicalDeviceRobustness2PropertiesEXT' structure is included in--- the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2',--- it is filled with the implementation-dependent limits.+-- 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) --
src/Vulkan/Extensions/VK_EXT_robustness2.hs-boot view
@@ -55,7 +55,7 @@ -- These additional requirements /may/ be expensive on some -- implementations, and should only be enabled when truly necessary. ----- This extension also adds support for \"null descriptors\", where+-- This extension also adds support for “null descriptors”, where -- 'Vulkan.Core10.APIConstants.NULL_HANDLE' /can/ be used instead of a -- valid handle. Accesses to null descriptors have well-defined behavior, -- and don’t rely on robustness.@@ -93,14 +93,14 @@ --     'PhysicalDeviceRobustness2PropertiesEXT'::@robustStorageBufferAccessSizeAlignment@ --     exist? ----- RESOLVED: Some implementations can’t efficiently tightly bounds-check--- all buffer accesses. Rather, the size of the bound range is padded to--- some power of two multiple, up to 256 bytes for uniform buffers and up--- to 4 bytes for storage buffers, and that padded size is bounds-checked.--- This is sufficient to implement D3D-like behavior, because D3D only--- allows binding whole uniform buffers or ranges that are a multiple of--- 256 bytes, and D3D raw and structured buffers only support 32-bit--- accesses.+-- __RESOLVED__: Some implementations can’t efficiently tightly+-- bounds-check all buffer accesses. Rather, the size of the bound range is+-- padded to some power of two multiple, up to 256 bytes for uniform+-- buffers and up to 4 bytes for storage buffers, and that padded size is+-- bounds-checked. This is sufficient to implement D3D-like behavior,+-- because D3D only allows binding whole uniform buffers or ranges that are+-- a multiple of 256 bytes, and D3D raw and structured buffers only support+-- 32-bit accesses. -- -- == Examples --
src/Vulkan/Extensions/VK_EXT_sample_locations.hs view
@@ -355,7 +355,9 @@                                              -- @physicalDevice@ /must/ be a valid                                              -- 'Vulkan.Core10.Handles.PhysicalDevice' handle                                              PhysicalDevice-                                          -> -- | @samples@ is the sample count to query the capabilities for.+                                          -> -- | @samples@ is a+                                             -- 'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlagBits' value+                                             -- specifying the sample count to query capabilities for.                                              --                                              -- #VUID-vkGetPhysicalDeviceMultisamplePropertiesEXT-samples-parameter#                                              -- @samples@ /must/ be a valid@@ -384,10 +386,8 @@ -- The values specified in a 'SampleLocationEXT' structure are always -- clamped to the implementation-dependent sample location coordinate range -- [@sampleLocationCoordinateRange@[0],@sampleLocationCoordinateRange@[1]]--- that /can/ be queried by adding a--- 'PhysicalDeviceSampleLocationsPropertiesEXT' structure to the @pNext@--- chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2'.+-- that /can/ be queried using+-- 'PhysicalDeviceSampleLocationsPropertiesEXT'. -- -- = See Also --@@ -846,17 +846,15 @@ -- | VkPhysicalDeviceSampleLocationsPropertiesEXT - Structure describing -- sample location limits that can be supported by an implementation ----- = Members------ The members of the 'PhysicalDeviceSampleLocationsPropertiesEXT'--- structure describe the following implementation-dependent limits:--- -- = Description -- -- If the 'PhysicalDeviceSampleLocationsPropertiesEXT' structure is--- included in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2',--- it is filled with the implementation-dependent limits.+-- 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) --
src/Vulkan/Extensions/VK_EXT_shader_atomic_float.hs view
@@ -132,6 +132,22 @@ -- | VkPhysicalDeviceShaderAtomicFloatFeaturesEXT - Structure describing -- features supported by VK_EXT_shader_atomic_float --+-- = Members+--+-- This structure describes the following features:+--+-- = Description+--+-- If the 'PhysicalDeviceShaderAtomicFloatFeaturesEXT' 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. 'PhysicalDeviceShaderAtomicFloatFeaturesEXT' /can/ also be+-- used in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to+-- selectively enable these features.+-- -- == Valid Usage (Implicit) -- -- = See Also
src/Vulkan/Extensions/VK_EXT_shader_demote_to_helper_invocation.hs view
@@ -50,13 +50,13 @@ -- This extension adds Vulkan support for the -- <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/EXT/SPV_EXT_demote_to_helper_invocation.html SPV_EXT_demote_to_helper_invocation> -- SPIR-V extension. That SPIR-V extension provides a new instruction--- @OpDemoteToHelperInvocationEXT@ allowing shaders to \"demote\" a--- fragment shader invocation to behave like a helper invocation for its--- duration. The demoted invocation will have no further side effects and--- will not output to the framebuffer, but remains active and can--- participate in computing derivatives and in+-- @OpDemoteToHelperInvocationEXT@ allowing shaders to “demote” a fragment+-- shader invocation to behave like a helper invocation for its duration.+-- The demoted invocation will have no further side effects and will not+-- output to the framebuffer, but remains active and can participate in+-- computing derivatives and in -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-group-operations group operations>.--- This is a better match for the \"discard\" instruction in HLSL.+-- This is a better match for the “discard” instruction in HLSL. -- -- == New Structures --@@ -132,19 +132,20 @@ -- -- = Members ----- The members of the--- 'PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT' structure--- describe the following features:+-- This structure describes the following feature: -- -- = Description -- -- If the 'PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT'--- structure is included in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- it is filled with values indicating whether the feature is supported.--- 'PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT' /can/ also be--- included in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo'--- to enable the feature.+-- structure is included in the @pNext@ chain of the+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2'+-- structure passed to+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceFeatures2',+-- it is filled in to indicate whether each corresponding feature is+-- supported. 'PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT'+-- /can/ also be used in the @pNext@ chain of+-- 'Vulkan.Core10.Device.DeviceCreateInfo' to selectively enable these+-- features. -- -- == Valid Usage (Implicit) --
src/Vulkan/Extensions/VK_EXT_shader_demote_to_helper_invocation.hs-boot view
@@ -50,13 +50,13 @@ -- This extension adds Vulkan support for the -- <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/EXT/SPV_EXT_demote_to_helper_invocation.html SPV_EXT_demote_to_helper_invocation> -- SPIR-V extension. That SPIR-V extension provides a new instruction--- @OpDemoteToHelperInvocationEXT@ allowing shaders to \"demote\" a--- fragment shader invocation to behave like a helper invocation for its--- duration. The demoted invocation will have no further side effects and--- will not output to the framebuffer, but remains active and can--- participate in computing derivatives and in+-- @OpDemoteToHelperInvocationEXT@ allowing shaders to “demote” a fragment+-- shader invocation to behave like a helper invocation for its duration.+-- The demoted invocation will have no further side effects and will not+-- output to the framebuffer, but remains active and can participate in+-- computing derivatives and in -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-group-operations group operations>.--- This is a better match for the \"discard\" instruction in HLSL.+-- This is a better match for the “discard” instruction in HLSL. -- -- == New Structures --
src/Vulkan/Extensions/VK_EXT_shader_image_atomic_int64.hs view
@@ -140,6 +140,22 @@ -- | VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT - Structure describing -- features supported by VK_EXT_shader_image_atomic_int64 --+-- = Members+--+-- This structure describes the following features:+--+-- = Description+--+-- If the @VkPhysicalDeviceShaderAtomicInt64FeaturesEXT@ 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. @VkPhysicalDeviceShaderAtomicInt64FeaturesEXT@ /can/ also be+-- used in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to+-- selectively enable these features.+-- -- == Valid Usage (Implicit) -- -- = See Also
src/Vulkan/Extensions/VK_EXT_shader_subgroup_ballot.hs view
@@ -130,7 +130,7 @@ -- Most of the functionality in this extension is superseded by the core -- Vulkan 1.1 -- <VkPhysicalDeviceSubgroupProperties.html subgroup operations>. However,--- Vulkan 1.1 required the @OpGroupNonUniformBroadcast@ \"Id\" to be+-- Vulkan 1.1 required the @OpGroupNonUniformBroadcast@ “Id” to be -- constant. This restriction was removed in Vulkan 1.2 with the addition -- of the -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-subgroupBroadcastDynamicId subgroupBroadcastDynamicId>
src/Vulkan/Extensions/VK_EXT_subgroup_size_control.hs view
@@ -202,18 +202,19 @@ -- -- = Members ----- The members of the 'PhysicalDeviceSubgroupSizeControlFeaturesEXT'--- structure describe the following features:+-- This structure describes the following features: -- -- = Description -- -- If the 'PhysicalDeviceSubgroupSizeControlFeaturesEXT' structure is--- included in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- it is filled with values indicating whether the feature is supported.--- 'PhysicalDeviceSubgroupSizeControlFeaturesEXT' /can/ also be included in--- the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to enable--- the feature.+-- included in the @pNext@ chain of the+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2'+-- structure passed to+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceFeatures2',+-- it is filled in to indicate whether each corresponding feature is+-- supported. 'PhysicalDeviceSubgroupSizeControlFeaturesEXT' /can/ also be+-- used in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to+-- selectively enable these features. -- -- Note --@@ -297,17 +298,15 @@ -- | VkPhysicalDeviceSubgroupSizeControlPropertiesEXT - Structure describing -- the control subgroup size properties of an implementation ----- = Members------ The members of the 'PhysicalDeviceSubgroupSizeControlPropertiesEXT'--- structure describe the following properties:--- -- = Description -- -- If the 'PhysicalDeviceSubgroupSizeControlPropertiesEXT' structure is--- included in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2',--- it is filled with the implementation-dependent limits.+-- included in the @pNext@ chain of the+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2'+-- structure passed to+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceProperties2',+-- it is filled in with each corresponding implementation-dependent+-- property. -- -- If -- 'Vulkan.Core11.Originally_Based_On_VK_KHR_subgroup.PhysicalDeviceSubgroupProperties'::@supportedOperations@
src/Vulkan/Extensions/VK_EXT_texel_buffer_alignment.hs view
@@ -128,18 +128,19 @@ -- -- = Members ----- The members of the 'PhysicalDeviceTexelBufferAlignmentFeaturesEXT'--- structure describe the following features:+-- This structure describes the following feature: -- -- = Description -- -- If the 'PhysicalDeviceTexelBufferAlignmentFeaturesEXT' structure is--- included in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- it is filled with values indicating whether the feature is supported.--- 'PhysicalDeviceTexelBufferAlignmentFeaturesEXT' /can/ also be included--- in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to--- enable the feature.+-- 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. 'PhysicalDeviceTexelBufferAlignmentFeaturesEXT' /can/ also be+-- used in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to+-- selectively enable these features. -- -- == Valid Usage (Implicit) --@@ -194,17 +195,15 @@ -- | VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT - Structure describing -- the texel buffer alignment requirements supported by an implementation ----- = Members------ The members of the 'PhysicalDeviceTexelBufferAlignmentPropertiesEXT'--- structure describe the following implementation-dependent limits:--- -- = Description -- -- If the 'PhysicalDeviceTexelBufferAlignmentPropertiesEXT' structure is--- included in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2',--- it is filled with the implementation-dependent limits.+-- included in the @pNext@ chain of the+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2'+-- structure passed to+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceProperties2',+-- it is filled in with each corresponding implementation-dependent+-- property. -- -- If the single texel alignment property is -- 'Vulkan.Core10.FundamentalTypes.FALSE', then the buffer view’s offset
src/Vulkan/Extensions/VK_EXT_texture_compression_astc_hdr.hs view
@@ -174,18 +174,20 @@ -- -- = Members ----- The members of the 'PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT'--- structure describe the following features:+-- This structure describes the following feature: -- -- = Description -- -- If the 'PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT' structure is--- included in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- it is filled with values indicating whether each feature is supported.--- 'PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT' /can/ also be--- included in the @pNext@ chain of 'Vulkan.Core10.Device.createDevice' to--- enable features.+-- included in the @pNext@ chain of the+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2'+-- structure passed to+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceFeatures2',+-- it is filled in to indicate whether each corresponding feature is+-- supported. 'PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT' /can/+-- also be used in the @pNext@ chain of+-- 'Vulkan.Core10.Device.DeviceCreateInfo' to selectively enable these+-- features. -- -- == Valid Usage (Implicit) --
src/Vulkan/Extensions/VK_EXT_transform_feedback.hs view
@@ -452,12 +452,13 @@                                       ("buffers" ::: Vector Buffer)                                    -> -- | @pOffsets@ is a pointer to an array of buffer offsets.                                       ("offsets" ::: Vector DeviceSize)-                                   -> -- | @pSizes@ is an optional array of buffer sizes, specifying the maximum-                                      -- number of bytes to capture to the corresponding transform feedback-                                      -- buffer. If @pSizes@ is @NULL@, or the value of the @pSizes@ array-                                      -- element is 'Vulkan.Core10.APIConstants.WHOLE_SIZE', then the maximum-                                      -- bytes captured will be the size of the corresponding buffer minus the-                                      -- buffer offset.+                                   -> -- | @pSizes@ is @NULL@ or a pointer to an array of+                                      -- 'Vulkan.Core10.FundamentalTypes.DeviceSize' buffer sizes, specifying the+                                      -- maximum number of bytes to capture to the corresponding transform+                                      -- feedback buffer. If @pSizes@ is @NULL@, or the value of the @pSizes@+                                      -- array element is 'Vulkan.Core10.APIConstants.WHOLE_SIZE', then the+                                      -- maximum number of bytes captured will be the size of the corresponding+                                      -- buffer minus the buffer offset.                                       ("sizes" ::: Vector DeviceSize)                                    -> io () cmdBindTransformFeedbackBuffersEXT commandBuffer firstBinding buffers offsets sizes = liftIO . evalContT $ do@@ -608,26 +609,28 @@                              -> -- | @firstCounterBuffer@ is the index of the first transform feedback buffer                                 -- corresponding to @pCounterBuffers@[0] and @pCounterBufferOffsets@[0].                                 ("firstCounterBuffer" ::: Word32)-                             -> -- | @pCounterBuffers@ is an optional array of buffer handles to the counter-                                -- buffers which contain a 4 byte integer value representing the byte-                                -- offset from the start of the corresponding transform feedback buffer-                                -- from where to start capturing vertex data. If the byte offset stored to-                                -- the counter buffer location was done using 'cmdEndTransformFeedbackEXT'-                                -- it can be used to resume transform feedback from the previous location.-                                -- If @pCounterBuffers@ is @NULL@, then transform feedback will start+                             -> -- | @pCounterBuffers@ is @NULL@ or a pointer to an array of+                                -- 'Vulkan.Core10.Handles.Buffer' handles to counter buffers. Each buffer+                                -- contains a 4 byte integer value representing the byte offset from the+                                -- start of the corresponding transform feedback buffer from where to start+                                -- capturing vertex data. If the byte offset stored to the counter buffer+                                -- location was done using 'cmdEndTransformFeedbackEXT' it can be used to+                                -- resume transform feedback from the previous location. If+                                -- @pCounterBuffers@ is @NULL@, then transform feedback will start                                 -- capturing vertex data to byte offset zero in all bound transform                                 -- feedback buffers. For each element of @pCounterBuffers@ that is                                 -- 'Vulkan.Core10.APIConstants.NULL_HANDLE', transform feedback will start                                 -- capturing vertex data to byte zero in the corresponding bound transform                                 -- feedback buffer.                                 ("counterBuffers" ::: Vector Buffer)-                             -> -- | @pCounterBufferOffsets@ is an optional array of offsets within each of-                                -- the @pCounterBuffers@ where the counter values were previously written.-                                -- The location in each counter buffer at these offsets /must/ be large-                                -- enough to contain 4 bytes of data. This data is the number of bytes-                                -- captured by the previous transform feedback to this buffer. If-                                -- @pCounterBufferOffsets@ is @NULL@, then it is assumed the offsets are-                                -- zero.+                             -> -- | @pCounterBufferOffsets@ is @NULL@ or a pointer to an array of+                                -- 'Vulkan.Core10.FundamentalTypes.DeviceSize' values specifying offsets+                                -- within each of the @pCounterBuffers@ where the counter values were+                                -- previously written. The location in each counter buffer at these offsets+                                -- /must/ be large enough to contain 4 bytes of data. This data is the+                                -- number of bytes captured by the previous transform feedback to this+                                -- buffer. If @pCounterBufferOffsets@ is @NULL@, then it is assumed the+                                -- offsets are zero.                                 ("counterBufferOffsets" ::: Vector DeviceSize)                              -> io () cmdBeginTransformFeedbackEXT commandBuffer firstCounterBuffer counterBuffers counterBufferOffsets = liftIO . evalContT $ do@@ -768,21 +771,24 @@                            -> -- | @firstCounterBuffer@ is the index of the first transform feedback buffer                               -- corresponding to @pCounterBuffers@[0] and @pCounterBufferOffsets@[0].                               ("firstCounterBuffer" ::: Word32)-                           -> -- | @pCounterBuffers@ is an optional array of buffer handles to the counter-                              -- buffers used to record the current byte positions of each transform+                           -> -- | @pCounterBuffers@ is @NULL@ or a pointer to an array of+                              -- 'Vulkan.Core10.Handles.Buffer' handles to counter buffers. The counter+                              -- buffers are used to record the current byte positions of each transform                               -- feedback buffer where the next vertex output data would be captured.                               -- This /can/ be used by a subsequent 'cmdBeginTransformFeedbackEXT' call                               -- to resume transform feedback capture from this position. It can also be                               -- used by 'cmdDrawIndirectByteCountEXT' to determine the vertex count of                               -- the draw call.                               ("counterBuffers" ::: Vector Buffer)-                           -> -- | @pCounterBufferOffsets@ is an optional array of offsets within each of-                              -- the @pCounterBuffers@ where the counter values can be written. The-                              -- location in each counter buffer at these offsets /must/ be large enough-                              -- to contain 4 bytes of data. The data stored at this location is the byte-                              -- offset from the start of the transform feedback buffer binding where the-                              -- next vertex data would be written. If @pCounterBufferOffsets@ is @NULL@,-                              -- then it is assumed the offsets are zero.+                           -> -- | @pCounterBufferOffsets@ is @NULL@ or a pointer to an array of+                              -- 'Vulkan.Core10.FundamentalTypes.DeviceSize' values specifying offsets+                              -- within each of the @pCounterBuffers@ where the counter values can be+                              -- written. The location in each counter buffer at these offsets /must/ be+                              -- large enough to contain 4 bytes of data. The data stored at this+                              -- location is the byte offset from the start of the transform feedback+                              -- buffer binding where the next vertex data would be written. If+                              -- @pCounterBufferOffsets@ is @NULL@, then it is assumed the offsets are+                              -- zero.                               ("counterBufferOffsets" ::: Vector DeviceSize)                            -> io () cmdEndTransformFeedbackEXT commandBuffer firstCounterBuffer counterBuffers counterBufferOffsets = liftIO . evalContT $ do@@ -1159,8 +1165,9 @@   "dynamic" mkVkCmdDrawIndirectByteCountEXT   :: FunPtr (Ptr CommandBuffer_T -> Word32 -> Word32 -> Buffer -> DeviceSize -> Word32 -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Word32 -> Buffer -> DeviceSize -> Word32 -> Word32 -> IO () --- | vkCmdDrawIndirectByteCountEXT - Draw primitives where the vertex count--- is derived from the counter byte value in the counter buffer+-- | vkCmdDrawIndirectByteCountEXT - Draw primitives with indirect parameters+-- where the vertex count is derived from the counter byte value in the+-- counter buffer -- -- = Description --@@ -1279,9 +1286,9 @@ -- -   #VUID-vkCmdDrawIndirectByteCountEXT-commandBuffer-02701# If the --     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind --     point used by this command requires any dynamic state, that state---     /must/ have been set for @commandBuffer@, and done so after any---     previously bound pipeline with the corresponding state not specified---     as dynamic+--     /must/ have been set or inherited for @commandBuffer@, and done so+--     after any previously bound pipeline with the corresponding state not+--     specified as dynamic -- -- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-02859# There /must/ not --     have been any calls to dynamic state setting commands for any state@@ -1451,7 +1458,7 @@ --     dynamic state enabled, then --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT' --     /must/ have been called in the current command buffer prior to this---     draw command, and the @viewportCount@ parameter of+--     drawing command, and the @viewportCount@ parameter of --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT' --     /must/ match the --     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@scissorCount@@@ -1465,7 +1472,7 @@ --     dynamic state enabled, then --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT' --     /must/ have been called in the current command buffer prior to this---     draw command, and the @scissorCount@ parameter of+--     drawing command, and the @scissorCount@ parameter of --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT' --     /must/ match the --     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@viewportCount@@@ -1481,7 +1488,7 @@ --     and --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT' --     /must/ have been called in the current command buffer prior to this---     draw command, and the @viewportCount@ parameter of+--     drawing command, and the @viewportCount@ parameter of --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT' --     /must/ match the @scissorCount@ parameter of --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'@@ -1564,7 +1571,7 @@ --     dynamic state enabled then --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopologyEXT' --     /must/ have been called in the current command buffer prior to this---     draw command, and the @primitiveTopology@ parameter of+--     drawing command, and the @primitiveTopology@ parameter of --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopologyEXT' --     /must/ be of the same --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#drawing-primitive-topology-class topology class>@@ -1572,6 +1579,47 @@ --     'Vulkan.Core10.Pipeline.PipelineInputAssemblyStateCreateInfo'::@topology@ --     state --+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-04875# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetPatchControlPointsEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-04876# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnableEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-04877# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS_ENABLE_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnableEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-logicOp-04878# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LOGIC_OP_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetLogicOpEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command and the @logicOp@ /must/ be a valid+--     'Vulkan.Core10.Enums.LogicOp.LogicOp' value+--+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-04879# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetPrimitiveRestartEnableEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+-- -- -   #VUID-vkCmdDrawIndirectByteCountEXT-primitiveFragmentShadingRateWithMultipleViewports-04552# --     If the --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports primitiveFragmentShadingRateWithMultipleViewports>@@ -1583,7 +1631,7 @@ --     then --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT' --     /must/ have been called in the current command buffer prior to this---     draw command, and the @viewportCount@ parameter of+--     drawing command, and the @viewportCount@ parameter of --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT' --     /must/ be @1@ --@@ -1605,6 +1653,16 @@ --     /must/ be the same as the current subpass color and\/or --     depth\/stencil attachments --+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-pStrides-04884# If the bound+--     graphics pipeline was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT'+--     dynamic state enabled, then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command, and the @pStrides@ parameter of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT'+--     /must/ not be @NULL@+-- -- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-04007# All vertex input --     bindings accessed via vertex input variables declared in the vertex --     shader entry point’s interface /must/ have either valid or@@ -1735,18 +1793,19 @@ -- -- = Members ----- The members of the 'PhysicalDeviceTransformFeedbackFeaturesEXT'--- structure describe the following features:+-- This structure describes the following features: -- -- = Description -- -- If the 'PhysicalDeviceTransformFeedbackFeaturesEXT' structure is--- included in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- it is filled with values indicating whether each feature is supported.--- 'PhysicalDeviceTransformFeedbackFeaturesEXT' /can/ also be included in--- the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to enable--- features.+-- 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. 'PhysicalDeviceTransformFeedbackFeaturesEXT' /can/ also be+-- used in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to+-- selectively enable these features. -- -- == Valid Usage (Implicit) --@@ -1808,17 +1867,15 @@ -- | VkPhysicalDeviceTransformFeedbackPropertiesEXT - Structure describing -- transform feedback properties that can be supported by an implementation ----- = Members------ The members of the 'PhysicalDeviceTransformFeedbackPropertiesEXT'--- structure describe the following implementation-dependent limits:--- -- = Description -- -- If the 'PhysicalDeviceTransformFeedbackPropertiesEXT' structure is--- included in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2',--- it is filled with the implementation-dependent limits and properties.+-- 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) --
src/Vulkan/Extensions/VK_EXT_validation_cache.hs view
@@ -420,15 +420,16 @@ -- @pDataSize@. Otherwise, @pDataSize@ /must/ point to a variable set by -- the user to the size of the buffer, in bytes, pointed to by @pData@, and -- on return the variable is overwritten with the amount of data actually--- written to @pData@.+-- written to @pData@. If @pDataSize@ is less than the maximum size that+-- /can/ be retrieved by the validation cache, at most @pDataSize@ bytes+-- will be written to @pData@, and 'getValidationCacheDataEXT' will return+-- 'Vulkan.Core10.Enums.Result.INCOMPLETE' instead of+-- 'Vulkan.Core10.Enums.Result.SUCCESS', to indicate that not all of the+-- validation cache was returned. ----- If @pDataSize@ is less than the maximum size that /can/ be retrieved by--- the validation cache, at most @pDataSize@ bytes will be written to--- @pData@, and 'getValidationCacheDataEXT' will return--- 'Vulkan.Core10.Enums.Result.INCOMPLETE'. Any data written to @pData@ is--- valid and /can/ be provided as the @pInitialData@ member of the--- 'ValidationCacheCreateInfoEXT' structure passed to--- 'createValidationCacheEXT'.+-- Any data written to @pData@ is valid and /can/ be provided as the+-- @pInitialData@ member of the 'ValidationCacheCreateInfoEXT' structure+-- passed to 'createValidationCacheEXT'. -- -- Two calls to 'getValidationCacheDataEXT' with the same parameters /must/ -- retrieve the same data unless a command that modifies the contents of
src/Vulkan/Extensions/VK_EXT_vertex_attribute_divisor.hs view
@@ -356,17 +356,15 @@ -- describing max value of vertex attribute divisor that can be supported -- by an implementation ----- = Members------ The members of the 'PhysicalDeviceVertexAttributeDivisorPropertiesEXT'--- structure describe the following implementation-dependent limits:--- -- = Description -- -- If the 'PhysicalDeviceVertexAttributeDivisorPropertiesEXT' structure is--- included in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2',--- it is filled with the implementation-dependent limits.+-- 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) --@@ -419,15 +417,21 @@ -- | 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--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- it is filled with values indicating the implementation-dependent--- behavior. 'PhysicalDeviceVertexAttributeDivisorFeaturesEXT' /can/ also--- be included in @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo'--- to enable the feature.+-- 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) --
+ src/Vulkan/Extensions/VK_EXT_vertex_input_dynamic_state.hs view
@@ -0,0 +1,601 @@+{-# language CPP #-}+-- | = Name+--+-- VK_EXT_vertex_input_dynamic_state - device extension+--+-- == VK_EXT_vertex_input_dynamic_state+--+-- [__Name String__]+--     @VK_EXT_vertex_input_dynamic_state@+--+-- [__Extension Type__]+--     Device extension+--+-- [__Registered Extension Number__]+--     353+--+-- [__Revision__]+--     2+--+-- [__Extension and Version Dependencies__]+--+--     -   Requires Vulkan 1.0+--+--     -   Requires @VK_KHR_get_physical_device_properties2@+--+-- [__Contact__]+--+--     -   Piers Daniell+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?title=VK_EXT_vertex_input_dynamic_state:%20&body=@pdaniell-nv%20 >+--+-- == Other Extension Metadata+--+-- [__Last Modified Date__]+--     2020-08-21+--+-- [__IP Status__]+--     No known IP claims.+--+-- [__Contributors__]+--+--     -   Jeff Bolz, NVIDIA+--+--     -   Spencer Fricke, Samsung+--+--     -   Stu Smith, AMD+--+-- == Description+--+-- One of the states that contributes to the combinatorial explosion of+-- pipeline state objects that need to be created, is the vertex input+-- binding and attribute descriptions. By allowing them to be dynamic+-- applications may reduce the number of pipeline objects they need to+-- create.+--+-- This extension adds dynamic state support for what is normally static+-- state in 'Vulkan.Core10.Pipeline.PipelineVertexInputStateCreateInfo'.+--+-- == New Commands+--+-- -   'cmdSetVertexInputEXT'+--+-- == New Structures+--+-- -   'VertexInputAttributeDescription2EXT'+--+-- -   'VertexInputBindingDescription2EXT'+--+-- -   Extending+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',+--     'Vulkan.Core10.Device.DeviceCreateInfo':+--+--     -   'PhysicalDeviceVertexInputDynamicStateFeaturesEXT'+--+-- == New Enum Constants+--+-- -   'EXT_VERTEX_INPUT_DYNAMIC_STATE_EXTENSION_NAME'+--+-- -   'EXT_VERTEX_INPUT_DYNAMIC_STATE_SPEC_VERSION'+--+-- -   Extending 'Vulkan.Core10.Enums.DynamicState.DynamicState':+--+--     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'+--+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT'+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT'+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT'+--+-- == Version History+--+-- -   Revision 2, 2020-11-05 (Piers Daniell)+--+--     -   Make 'VertexInputBindingDescription2EXT' extensible+--+--     -   Add new 'VertexInputAttributeDescription2EXT' struct for the+--         @pVertexAttributeDescriptions@ parameter to+--         'cmdSetVertexInputEXT' so it is also extensible+--+-- -   Revision 1, 2020-08-21 (Piers Daniell)+--+--     -   Internal revisions+--+-- = See Also+--+-- 'PhysicalDeviceVertexInputDynamicStateFeaturesEXT',+-- 'VertexInputAttributeDescription2EXT',+-- 'VertexInputBindingDescription2EXT', 'cmdSetVertexInputEXT'+--+-- = Document Notes+--+-- For more information, see the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_vertex_input_dynamic_state Vulkan Specification>+--+-- This page is a generated document. Fixes and changes should be made to+-- the generator scripts, not directly.+module Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state  ( cmdSetVertexInputEXT+                                                            , PhysicalDeviceVertexInputDynamicStateFeaturesEXT(..)+                                                            , VertexInputBindingDescription2EXT(..)+                                                            , VertexInputAttributeDescription2EXT(..)+                                                            , EXT_VERTEX_INPUT_DYNAMIC_STATE_SPEC_VERSION+                                                            , pattern EXT_VERTEX_INPUT_DYNAMIC_STATE_SPEC_VERSION+                                                            , EXT_VERTEX_INPUT_DYNAMIC_STATE_EXTENSION_NAME+                                                            , pattern EXT_VERTEX_INPUT_DYNAMIC_STATE_EXTENSION_NAME+                                                            ) where++import Vulkan.Internal.Utils (traceAroundEvent)+import Control.Monad (unless)+import Control.Monad.IO.Class (liftIO)+import Foreign.Marshal.Alloc (allocaBytesAligned)+import GHC.IO (throwIO)+import GHC.Ptr (nullFunPtr)+import Foreign.Ptr (nullPtr)+import Foreign.Ptr (plusPtr)+import Control.Monad.Trans.Class (lift)+import Control.Monad.Trans.Cont (evalContT)+import qualified Data.Vector (imapM_)+import qualified Data.Vector (length)+import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (FromCStruct(..))+import Vulkan.CStruct (ToCStruct)+import Vulkan.CStruct (ToCStruct(..))+import Vulkan.Zero (Zero(..))+import Control.Monad.IO.Class (MonadIO)+import Data.String (IsString)+import Data.Typeable (Typeable)+import Foreign.Storable (Storable)+import Foreign.Storable (Storable(peek))+import Foreign.Storable (Storable(poke))+import qualified Foreign.Storable (Storable(..))+import GHC.Generics (Generic)+import GHC.IO.Exception (IOErrorType(..))+import GHC.IO.Exception (IOException(..))+import Foreign.Ptr (FunPtr)+import Foreign.Ptr (Ptr)+import Data.Word (Word32)+import Data.Kind (Type)+import Control.Monad.Trans.Cont (ContT(..))+import Data.Vector (Vector)+import Vulkan.Core10.FundamentalTypes (bool32ToBool)+import Vulkan.Core10.FundamentalTypes (boolToBool32)+import Vulkan.NamedType ((:::))+import Vulkan.Core10.FundamentalTypes (Bool32)+import Vulkan.Core10.Handles (CommandBuffer)+import Vulkan.Core10.Handles (CommandBuffer(..))+import Vulkan.Core10.Handles (CommandBuffer_T)+import Vulkan.Dynamic (DeviceCmds(pVkCmdSetVertexInputEXT))+import Vulkan.Core10.Enums.Format (Format)+import Vulkan.Core10.Enums.StructureType (StructureType)+import Vulkan.Core10.Enums.VertexInputRate (VertexInputRate)+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT))+foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdSetVertexInputEXT+  :: FunPtr (Ptr CommandBuffer_T -> Word32 -> Ptr VertexInputBindingDescription2EXT -> Word32 -> Ptr VertexInputAttributeDescription2EXT -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Ptr VertexInputBindingDescription2EXT -> Word32 -> Ptr VertexInputAttributeDescription2EXT -> IO ()++-- | vkCmdSetVertexInputEXT - Set the dynamic vertex input state+--+-- = Description+--+-- This command sets the vertex input attribute and vertex input binding+-- descriptions state for subsequent drawing commands.+--+-- == Valid Usage+--+-- -   #VUID-vkCmdSetVertexInputEXT-None-04790# The+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-vertexInputDynamicState vertexInputDynamicState>+--     feature /must/ be enabled+--+-- -   #VUID-vkCmdSetVertexInputEXT-vertexBindingDescriptionCount-04791#+--     @vertexBindingDescriptionCount@ /must/ be less than or equal to+--     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxVertexInputBindings@+--+-- -   #VUID-vkCmdSetVertexInputEXT-vertexAttributeDescriptionCount-04792#+--     @vertexAttributeDescriptionCount@ /must/ be less than or equal to+--     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxVertexInputAttributes@+--+-- -   #VUID-vkCmdSetVertexInputEXT-binding-04793# For every @binding@+--     specified by each element of @pVertexAttributeDescriptions@, a+--     'VertexInputBindingDescription2EXT' /must/ exist in+--     @pVertexBindingDescriptions@ with the same value of @binding@+--+-- -   #VUID-vkCmdSetVertexInputEXT-pVertexBindingDescriptions-04794# All+--     elements of @pVertexBindingDescriptions@ /must/ describe distinct+--     binding numbers+--+-- -   #VUID-vkCmdSetVertexInputEXT-pVertexAttributeDescriptions-04795# All+--     elements of @pVertexAttributeDescriptions@ /must/ describe distinct+--     attribute locations+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCmdSetVertexInputEXT-commandBuffer-parameter#+--     @commandBuffer@ /must/ be a valid+--     'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   #VUID-vkCmdSetVertexInputEXT-pVertexBindingDescriptions-parameter#+--     If @vertexBindingDescriptionCount@ is not @0@,+--     @pVertexBindingDescriptions@ /must/ be a valid pointer to an array+--     of @vertexBindingDescriptionCount@ valid+--     'VertexInputBindingDescription2EXT' structures+--+-- -   #VUID-vkCmdSetVertexInputEXT-pVertexAttributeDescriptions-parameter#+--     If @vertexAttributeDescriptionCount@ is not @0@,+--     @pVertexAttributeDescriptions@ /must/ be a valid pointer to an array+--     of @vertexAttributeDescriptionCount@ valid+--     'VertexInputAttributeDescription2EXT' structures+--+-- -   #VUID-vkCmdSetVertexInputEXT-commandBuffer-recording#+--     @commandBuffer@ /must/ be in the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>+--+-- -   #VUID-vkCmdSetVertexInputEXT-commandBuffer-cmdpool# The+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support graphics operations+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-pipeline-stages-types Pipeline Type> |+-- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+=====================================================================================================================================++-- | Primary                                                                                                                    | Both                                                                                                                   | Graphics                                                                                                              |                                                                                                                                     |+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                       |                                                                                                                                     |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- 'Vulkan.Core10.Handles.CommandBuffer',+-- 'VertexInputAttributeDescription2EXT',+-- 'VertexInputBindingDescription2EXT'+cmdSetVertexInputEXT :: forall io+                      . (MonadIO io)+                     => -- | @commandBuffer@ is the command buffer into which the command will be+                        -- recorded.+                        CommandBuffer+                     -> -- | @pVertexBindingDescriptions@ is a pointer to an array of+                        -- 'VertexInputBindingDescription2EXT' structures.+                        ("vertexBindingDescriptions" ::: Vector VertexInputBindingDescription2EXT)+                     -> -- | @pVertexAttributeDescriptions@ is a pointer to an array of+                        -- 'VertexInputAttributeDescription2EXT' structures.+                        ("vertexAttributeDescriptions" ::: Vector VertexInputAttributeDescription2EXT)+                     -> io ()+cmdSetVertexInputEXT commandBuffer vertexBindingDescriptions vertexAttributeDescriptions = liftIO . evalContT $ do+  let vkCmdSetVertexInputEXTPtr = pVkCmdSetVertexInputEXT (deviceCmds (commandBuffer :: CommandBuffer))+  lift $ unless (vkCmdSetVertexInputEXTPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetVertexInputEXT is null" Nothing Nothing+  let vkCmdSetVertexInputEXT' = mkVkCmdSetVertexInputEXT vkCmdSetVertexInputEXTPtr+  pPVertexBindingDescriptions <- ContT $ allocaBytesAligned @VertexInputBindingDescription2EXT ((Data.Vector.length (vertexBindingDescriptions)) * 32) 8+  lift $ Data.Vector.imapM_ (\i e -> poke (pPVertexBindingDescriptions `plusPtr` (32 * (i)) :: Ptr VertexInputBindingDescription2EXT) (e)) (vertexBindingDescriptions)+  pPVertexAttributeDescriptions <- ContT $ allocaBytesAligned @VertexInputAttributeDescription2EXT ((Data.Vector.length (vertexAttributeDescriptions)) * 32) 8+  lift $ Data.Vector.imapM_ (\i e -> poke (pPVertexAttributeDescriptions `plusPtr` (32 * (i)) :: Ptr VertexInputAttributeDescription2EXT) (e)) (vertexAttributeDescriptions)+  lift $ traceAroundEvent "vkCmdSetVertexInputEXT" (vkCmdSetVertexInputEXT' (commandBufferHandle (commandBuffer)) ((fromIntegral (Data.Vector.length $ (vertexBindingDescriptions)) :: Word32)) (pPVertexBindingDescriptions) ((fromIntegral (Data.Vector.length $ (vertexAttributeDescriptions)) :: Word32)) (pPVertexAttributeDescriptions))+  pure $ ()+++-- | VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT - Structure+-- describing whether the dynamic vertex input state can be used+--+-- = Members+--+-- This structure describes the following feature:+--+-- = Description+--+-- If the 'PhysicalDeviceVertexInputDynamicStateFeaturesEXT' 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. 'PhysicalDeviceVertexInputDynamicStateFeaturesEXT' /can/ also+-- be used in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo'+-- to selectively enable these features.+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data PhysicalDeviceVertexInputDynamicStateFeaturesEXT = PhysicalDeviceVertexInputDynamicStateFeaturesEXT+  { -- | #features-vertexInputDynamicState# @vertexInputDynamicState@ indicates+    -- that the implementation supports the following dynamic states:+    --+    -- -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'+    vertexInputDynamicState :: Bool }+  deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PhysicalDeviceVertexInputDynamicStateFeaturesEXT)+#endif+deriving instance Show PhysicalDeviceVertexInputDynamicStateFeaturesEXT++instance ToCStruct PhysicalDeviceVertexInputDynamicStateFeaturesEXT where+  withCStruct x f = allocaBytesAligned 24 8 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p PhysicalDeviceVertexInputDynamicStateFeaturesEXT{..} f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (vertexInputDynamicState))+    f+  cStructSize = 24+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))+    f++instance FromCStruct PhysicalDeviceVertexInputDynamicStateFeaturesEXT where+  peekCStruct p = do+    vertexInputDynamicState <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))+    pure $ PhysicalDeviceVertexInputDynamicStateFeaturesEXT+             (bool32ToBool vertexInputDynamicState)++instance Storable PhysicalDeviceVertexInputDynamicStateFeaturesEXT where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek = peekCStruct+  poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero PhysicalDeviceVertexInputDynamicStateFeaturesEXT where+  zero = PhysicalDeviceVertexInputDynamicStateFeaturesEXT+           zero+++-- | VkVertexInputBindingDescription2EXT - Structure specifying the extended+-- vertex input binding description+--+-- == Valid Usage+--+-- -   #VUID-VkVertexInputBindingDescription2EXT-binding-04796# @binding@+--     /must/ be less than+--     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxVertexInputBindings@+--+-- -   #VUID-VkVertexInputBindingDescription2EXT-stride-04797# @stride@+--     /must/ be less than or equal to+--     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxVertexInputBindingStride@+--+-- -   #VUID-VkVertexInputBindingDescription2EXT-divisor-04798# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-vertexAttributeInstanceRateZeroDivisor vertexAttributeInstanceRateZeroDivisor>+--     feature is not enabled, @divisor@ /must/ not be @0@+--+-- -   #VUID-VkVertexInputBindingDescription2EXT-divisor-04799# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-vertexAttributeInstanceRateDivisor vertexAttributeInstanceRateDivisor>+--     feature is not enabled, @divisor@ /must/ be @1@+--+-- -   #VUID-VkVertexInputBindingDescription2EXT-divisor-04800# @divisor@+--     /must/ be a value between @0@ and+--     'Vulkan.Extensions.VK_EXT_vertex_attribute_divisor.PhysicalDeviceVertexAttributeDivisorPropertiesEXT'::@maxVertexAttribDivisor@,+--     inclusive+--+-- -   #VUID-VkVertexInputBindingDescription2EXT-divisor-04801# If+--     @divisor@ is not @1@ then @inputRate@ /must/ be of type+--     'Vulkan.Core10.Enums.VertexInputRate.VERTEX_INPUT_RATE_INSTANCE'+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-VkVertexInputBindingDescription2EXT-sType-sType# @sType@+--     /must/ be+--     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT'+--+-- -   #VUID-VkVertexInputBindingDescription2EXT-inputRate-parameter#+--     @inputRate@ /must/ be a valid+--     'Vulkan.Core10.Enums.VertexInputRate.VertexInputRate' value+--+-- = See Also+--+-- 'Vulkan.Core10.Enums.StructureType.StructureType',+-- 'Vulkan.Core10.Enums.VertexInputRate.VertexInputRate',+-- 'cmdSetVertexInputEXT'+data VertexInputBindingDescription2EXT = VertexInputBindingDescription2EXT+  { -- | @binding@ is the binding number that this structure describes.+    binding :: Word32+  , -- | @stride@ is the distance in bytes between two consecutive elements+    -- within the buffer.+    stride :: Word32+  , -- | @inputRate@ is a 'Vulkan.Core10.Enums.VertexInputRate.VertexInputRate'+    -- value specifying whether vertex attribute addressing is a function of+    -- the vertex index or of the instance index.+    inputRate :: VertexInputRate+  , -- | @divisor@ is the number of successive instances that will use the same+    -- value of the vertex attribute when instanced rendering is enabled. This+    -- member /can/ be set to a value other than @1@ if the+    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-vertexAttributeInstanceRateDivisor vertexAttributeInstanceRateDivisor>+    -- feature is enabled. For example, if the divisor is N, the same vertex+    -- attribute will be applied to N successive instances before moving on to+    -- the next vertex attribute. The maximum value of divisor is+    -- implementation dependent and can be queried using+    -- 'Vulkan.Extensions.VK_EXT_vertex_attribute_divisor.PhysicalDeviceVertexAttributeDivisorPropertiesEXT'::@maxVertexAttribDivisor@.+    -- A value of @0@ /can/ be used for the divisor if the+    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-vertexAttributeInstanceRateZeroDivisor vertexAttributeInstanceRateZeroDivisor>+    -- 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 (VertexInputBindingDescription2EXT)+#endif+deriving instance Show VertexInputBindingDescription2EXT++instance ToCStruct VertexInputBindingDescription2EXT where+  withCStruct x f = allocaBytesAligned 32 8 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p VertexInputBindingDescription2EXT{..} f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Word32)) (binding)+    poke ((p `plusPtr` 20 :: Ptr Word32)) (stride)+    poke ((p `plusPtr` 24 :: Ptr VertexInputRate)) (inputRate)+    poke ((p `plusPtr` 28 :: Ptr Word32)) (divisor)+    f+  cStructSize = 32+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Word32)) (zero)+    poke ((p `plusPtr` 20 :: Ptr Word32)) (zero)+    poke ((p `plusPtr` 24 :: Ptr VertexInputRate)) (zero)+    poke ((p `plusPtr` 28 :: Ptr Word32)) (zero)+    f++instance FromCStruct VertexInputBindingDescription2EXT where+  peekCStruct p = do+    binding <- peek @Word32 ((p `plusPtr` 16 :: Ptr Word32))+    stride <- peek @Word32 ((p `plusPtr` 20 :: Ptr Word32))+    inputRate <- peek @VertexInputRate ((p `plusPtr` 24 :: Ptr VertexInputRate))+    divisor <- peek @Word32 ((p `plusPtr` 28 :: Ptr Word32))+    pure $ VertexInputBindingDescription2EXT+             binding stride inputRate divisor++instance Storable VertexInputBindingDescription2EXT where+  sizeOf ~_ = 32+  alignment ~_ = 8+  peek = peekCStruct+  poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero VertexInputBindingDescription2EXT where+  zero = VertexInputBindingDescription2EXT+           zero+           zero+           zero+           zero+++-- | VkVertexInputAttributeDescription2EXT - Structure specifying the+-- extended vertex input attribute description+--+-- == Valid Usage+--+-- -   #VUID-VkVertexInputAttributeDescription2EXT-location-04802#+--     @location@ /must/ be less than+--     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxVertexInputAttributes@+--+-- -   #VUID-VkVertexInputAttributeDescription2EXT-binding-04803# @binding@+--     /must/ be less than+--     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxVertexInputBindings@+--+-- -   #VUID-VkVertexInputAttributeDescription2EXT-offset-04804# @offset@+--     /must/ be less than or equal to+--     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxVertexInputAttributeOffset@+--+-- -   #VUID-VkVertexInputAttributeDescription2EXT-format-04805# @format@+--     /must/ be allowed as a vertex buffer format, as specified by the+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_VERTEX_BUFFER_BIT'+--     flag in+--     'Vulkan.Core10.DeviceInitialization.FormatProperties'::@bufferFeatures@+--     returned by+--     'Vulkan.Core10.DeviceInitialization.getPhysicalDeviceFormatProperties'+--+-- -   #VUID-VkVertexInputAttributeDescription2EXT-vertexAttributeAccessBeyondStride-04806#+--     If the @VK_KHR_portability_subset@ extension is enabled, and+--     'Vulkan.Extensions.VK_KHR_portability_subset.PhysicalDevicePortabilitySubsetFeaturesKHR'::@vertexAttributeAccessBeyondStride@+--     is 'Vulkan.Core10.FundamentalTypes.FALSE', the sum of @offset@ plus+--     the size of the vertex attribute data described by @format@ /must/+--     not be greater than @stride@ in the+--     'VertexInputBindingDescription2EXT' referenced in @binding@.+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-VkVertexInputAttributeDescription2EXT-sType-sType# @sType@+--     /must/ be+--     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT'+--+-- -   #VUID-VkVertexInputAttributeDescription2EXT-format-parameter#+--     @format@ /must/ be a valid 'Vulkan.Core10.Enums.Format.Format' value+--+-- = See Also+--+-- 'Vulkan.Core10.Enums.Format.Format',+-- 'Vulkan.Core10.Enums.StructureType.StructureType',+-- 'cmdSetVertexInputEXT'+data VertexInputAttributeDescription2EXT = VertexInputAttributeDescription2EXT+  { -- | @location@ is the shader input location number for this attribute.+    location :: Word32+  , -- | @binding@ is the binding number which this attribute takes its data+    -- from.+    binding :: Word32+  , -- | @format@ is the size and type of the vertex attribute data.+    format :: Format+  , -- | @offset@ is a byte offset of this attribute relative to the start of an+    -- element in the vertex input binding.+    offset :: Word32+  }+  deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (VertexInputAttributeDescription2EXT)+#endif+deriving instance Show VertexInputAttributeDescription2EXT++instance ToCStruct VertexInputAttributeDescription2EXT where+  withCStruct x f = allocaBytesAligned 32 8 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p VertexInputAttributeDescription2EXT{..} f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Word32)) (location)+    poke ((p `plusPtr` 20 :: Ptr Word32)) (binding)+    poke ((p `plusPtr` 24 :: Ptr Format)) (format)+    poke ((p `plusPtr` 28 :: Ptr Word32)) (offset)+    f+  cStructSize = 32+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Word32)) (zero)+    poke ((p `plusPtr` 20 :: Ptr Word32)) (zero)+    poke ((p `plusPtr` 24 :: Ptr Format)) (zero)+    poke ((p `plusPtr` 28 :: Ptr Word32)) (zero)+    f++instance FromCStruct VertexInputAttributeDescription2EXT where+  peekCStruct p = do+    location <- peek @Word32 ((p `plusPtr` 16 :: Ptr Word32))+    binding <- peek @Word32 ((p `plusPtr` 20 :: Ptr Word32))+    format <- peek @Format ((p `plusPtr` 24 :: Ptr Format))+    offset <- peek @Word32 ((p `plusPtr` 28 :: Ptr Word32))+    pure $ VertexInputAttributeDescription2EXT+             location binding format offset++instance Storable VertexInputAttributeDescription2EXT where+  sizeOf ~_ = 32+  alignment ~_ = 8+  peek = peekCStruct+  poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero VertexInputAttributeDescription2EXT where+  zero = VertexInputAttributeDescription2EXT+           zero+           zero+           zero+           zero+++type EXT_VERTEX_INPUT_DYNAMIC_STATE_SPEC_VERSION = 2++-- No documentation found for TopLevel "VK_EXT_VERTEX_INPUT_DYNAMIC_STATE_SPEC_VERSION"+pattern EXT_VERTEX_INPUT_DYNAMIC_STATE_SPEC_VERSION :: forall a . Integral a => a+pattern EXT_VERTEX_INPUT_DYNAMIC_STATE_SPEC_VERSION = 2+++type EXT_VERTEX_INPUT_DYNAMIC_STATE_EXTENSION_NAME = "VK_EXT_vertex_input_dynamic_state"++-- No documentation found for TopLevel "VK_EXT_VERTEX_INPUT_DYNAMIC_STATE_EXTENSION_NAME"+pattern EXT_VERTEX_INPUT_DYNAMIC_STATE_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a+pattern EXT_VERTEX_INPUT_DYNAMIC_STATE_EXTENSION_NAME = "VK_EXT_vertex_input_dynamic_state"+
+ src/Vulkan/Extensions/VK_EXT_vertex_input_dynamic_state.hs-boot view
@@ -0,0 +1,150 @@+{-# language CPP #-}+-- | = Name+--+-- VK_EXT_vertex_input_dynamic_state - device extension+--+-- == VK_EXT_vertex_input_dynamic_state+--+-- [__Name String__]+--     @VK_EXT_vertex_input_dynamic_state@+--+-- [__Extension Type__]+--     Device extension+--+-- [__Registered Extension Number__]+--     353+--+-- [__Revision__]+--     2+--+-- [__Extension and Version Dependencies__]+--+--     -   Requires Vulkan 1.0+--+--     -   Requires @VK_KHR_get_physical_device_properties2@+--+-- [__Contact__]+--+--     -   Piers Daniell+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?title=VK_EXT_vertex_input_dynamic_state:%20&body=@pdaniell-nv%20 >+--+-- == Other Extension Metadata+--+-- [__Last Modified Date__]+--     2020-08-21+--+-- [__IP Status__]+--     No known IP claims.+--+-- [__Contributors__]+--+--     -   Jeff Bolz, NVIDIA+--+--     -   Spencer Fricke, Samsung+--+--     -   Stu Smith, AMD+--+-- == Description+--+-- One of the states that contributes to the combinatorial explosion of+-- pipeline state objects that need to be created, is the vertex input+-- binding and attribute descriptions. By allowing them to be dynamic+-- applications may reduce the number of pipeline objects they need to+-- create.+--+-- This extension adds dynamic state support for what is normally static+-- state in 'Vulkan.Core10.Pipeline.PipelineVertexInputStateCreateInfo'.+--+-- == New Commands+--+-- -   'cmdSetVertexInputEXT'+--+-- == New Structures+--+-- -   'VertexInputAttributeDescription2EXT'+--+-- -   'VertexInputBindingDescription2EXT'+--+-- -   Extending+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',+--     'Vulkan.Core10.Device.DeviceCreateInfo':+--+--     -   'PhysicalDeviceVertexInputDynamicStateFeaturesEXT'+--+-- == New Enum Constants+--+-- -   'EXT_VERTEX_INPUT_DYNAMIC_STATE_EXTENSION_NAME'+--+-- -   'EXT_VERTEX_INPUT_DYNAMIC_STATE_SPEC_VERSION'+--+-- -   Extending 'Vulkan.Core10.Enums.DynamicState.DynamicState':+--+--     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'+--+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT'+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT'+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT'+--+-- == Version History+--+-- -   Revision 2, 2020-11-05 (Piers Daniell)+--+--     -   Make 'VertexInputBindingDescription2EXT' extensible+--+--     -   Add new 'VertexInputAttributeDescription2EXT' struct for the+--         @pVertexAttributeDescriptions@ parameter to+--         'cmdSetVertexInputEXT' so it is also extensible+--+-- -   Revision 1, 2020-08-21 (Piers Daniell)+--+--     -   Internal revisions+--+-- = See Also+--+-- 'PhysicalDeviceVertexInputDynamicStateFeaturesEXT',+-- 'VertexInputAttributeDescription2EXT',+-- 'VertexInputBindingDescription2EXT', 'cmdSetVertexInputEXT'+--+-- = Document Notes+--+-- For more information, see the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_vertex_input_dynamic_state Vulkan Specification>+--+-- This page is a generated document. Fixes and changes should be made to+-- the generator scripts, not directly.+module Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state  ( PhysicalDeviceVertexInputDynamicStateFeaturesEXT+                                                            , VertexInputAttributeDescription2EXT+                                                            , VertexInputBindingDescription2EXT+                                                            ) where++import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (ToCStruct)+import Data.Kind (Type)++data PhysicalDeviceVertexInputDynamicStateFeaturesEXT++instance ToCStruct PhysicalDeviceVertexInputDynamicStateFeaturesEXT+instance Show PhysicalDeviceVertexInputDynamicStateFeaturesEXT++instance FromCStruct PhysicalDeviceVertexInputDynamicStateFeaturesEXT+++data VertexInputAttributeDescription2EXT++instance ToCStruct VertexInputAttributeDescription2EXT+instance Show VertexInputAttributeDescription2EXT++instance FromCStruct VertexInputAttributeDescription2EXT+++data VertexInputBindingDescription2EXT++instance ToCStruct VertexInputBindingDescription2EXT+instance Show VertexInputBindingDescription2EXT++instance FromCStruct VertexInputBindingDescription2EXT+
+ src/Vulkan/Extensions/VK_EXT_ycbcr_2plane_444_formats.hs view
@@ -0,0 +1,214 @@+{-# language CPP #-}+-- | = Name+--+-- VK_EXT_ycbcr_2plane_444_formats - device extension+--+-- == VK_EXT_ycbcr_2plane_444_formats+--+-- [__Name String__]+--     @VK_EXT_ycbcr_2plane_444_formats@+--+-- [__Extension Type__]+--     Device extension+--+-- [__Registered Extension Number__]+--     331+--+-- [__Revision__]+--     1+--+-- [__Extension and Version Dependencies__]+--+--     -   Requires Vulkan 1.0+--+--     -   Requires @VK_KHR_sampler_ycbcr_conversion@+--+-- [__Contact__]+--+--     -   Tony Zlatinski+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?title=VK_EXT_ycbcr_2plane_444_formats:%20&body=@tzlatinski%20 >+--+-- == Other Extension Metadata+--+-- [__Last Modified Date__]+--     2020-07-28+--+-- [__IP Status__]+--     No known IP claims.+--+-- [__Contributors__]+--+--     -   Piers Daniell, NVIDIA+--+--     -   Ping Liu, Intel+--+-- == Description+--+-- This extension adds some Y′CBCR formats that are in common use for video+-- encode and decode, but were not part of the+-- <VK_KHR_sampler_ycbcr_conversion.html VK_KHR_sampler_ycbcr_conversion>+-- extension.+--+-- == New Structures+--+-- -   Extending+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',+--     'Vulkan.Core10.Device.DeviceCreateInfo':+--+--     -   'PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT'+--+-- == New Enum Constants+--+-- -   'EXT_YCBCR_2PLANE_444_FORMATS_EXTENSION_NAME'+--+-- -   'EXT_YCBCR_2PLANE_444_FORMATS_SPEC_VERSION'+--+-- -   Extending 'Vulkan.Core10.Enums.Format.Format':+--+--     -   'Vulkan.Core10.Enums.Format.FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16_EXT'+--+--     -   'Vulkan.Core10.Enums.Format.FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16_EXT'+--+--     -   'Vulkan.Core10.Enums.Format.FORMAT_G16_B16R16_2PLANE_444_UNORM_EXT'+--+--     -   'Vulkan.Core10.Enums.Format.FORMAT_G8_B8R8_2PLANE_444_UNORM_EXT'+--+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT'+--+-- == Version History+--+-- -   Revision 1, 2020-03-08 (Piers Daniell)+--+--     -   Initial draft+--+-- = See Also+--+-- 'PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT'+--+-- = Document Notes+--+-- For more information, see the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_ycbcr_2plane_444_formats Vulkan Specification>+--+-- This page is a generated document. Fixes and changes should be made to+-- the generator scripts, not directly.+module Vulkan.Extensions.VK_EXT_ycbcr_2plane_444_formats  ( PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT(..)+                                                          , EXT_YCBCR_2PLANE_444_FORMATS_SPEC_VERSION+                                                          , pattern EXT_YCBCR_2PLANE_444_FORMATS_SPEC_VERSION+                                                          , EXT_YCBCR_2PLANE_444_FORMATS_EXTENSION_NAME+                                                          , pattern EXT_YCBCR_2PLANE_444_FORMATS_EXTENSION_NAME+                                                          ) where++import Foreign.Marshal.Alloc (allocaBytesAligned)+import Foreign.Ptr (nullPtr)+import Foreign.Ptr (plusPtr)+import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (FromCStruct(..))+import Vulkan.CStruct (ToCStruct)+import Vulkan.CStruct (ToCStruct(..))+import Vulkan.Zero (Zero(..))+import Data.String (IsString)+import Data.Typeable (Typeable)+import Foreign.Storable (Storable)+import Foreign.Storable (Storable(peek))+import Foreign.Storable (Storable(poke))+import qualified Foreign.Storable (Storable(..))+import GHC.Generics (Generic)+import Foreign.Ptr (Ptr)+import Data.Kind (Type)+import Vulkan.Core10.FundamentalTypes (bool32ToBool)+import Vulkan.Core10.FundamentalTypes (boolToBool32)+import Vulkan.Core10.FundamentalTypes (Bool32)+import Vulkan.Core10.Enums.StructureType (StructureType)+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT))+-- | VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT - Structure describing+-- whether the implementation supports additional 2-plane 444 Y′CBCR+-- formats+--+-- = Members+--+-- This structure describes the following feature:+--+-- = Description+--+-- If the 'PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT' 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. 'PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT' /can/ also+-- be used in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo'+-- to selectively enable these features.+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT = PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT+  { -- | #features-ycbcr2plane444Formats# @ycbcr2plane444Formats@ indicates that+    -- the implementation supports the following 2-plane 444 Y′CBCR formats:+    --+    -- -   'Vulkan.Core10.Enums.Format.FORMAT_G8_B8R8_2PLANE_444_UNORM_EXT'+    --+    -- -   'Vulkan.Core10.Enums.Format.FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16_EXT'+    --+    -- -   'Vulkan.Core10.Enums.Format.FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16_EXT'+    --+    -- -   'Vulkan.Core10.Enums.Format.FORMAT_G16_B16R16_2PLANE_444_UNORM_EXT'+    ycbcr2plane444Formats :: Bool }+  deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT)+#endif+deriving instance Show PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT++instance ToCStruct PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT where+  withCStruct x f = allocaBytesAligned 24 8 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT{..} f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (ycbcr2plane444Formats))+    f+  cStructSize = 24+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))+    f++instance FromCStruct PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT where+  peekCStruct p = do+    ycbcr2plane444Formats <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))+    pure $ PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT+             (bool32ToBool ycbcr2plane444Formats)++instance Storable PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek = peekCStruct+  poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT where+  zero = PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT+           zero+++type EXT_YCBCR_2PLANE_444_FORMATS_SPEC_VERSION = 1++-- No documentation found for TopLevel "VK_EXT_YCBCR_2PLANE_444_FORMATS_SPEC_VERSION"+pattern EXT_YCBCR_2PLANE_444_FORMATS_SPEC_VERSION :: forall a . Integral a => a+pattern EXT_YCBCR_2PLANE_444_FORMATS_SPEC_VERSION = 1+++type EXT_YCBCR_2PLANE_444_FORMATS_EXTENSION_NAME = "VK_EXT_ycbcr_2plane_444_formats"++-- No documentation found for TopLevel "VK_EXT_YCBCR_2PLANE_444_FORMATS_EXTENSION_NAME"+pattern EXT_YCBCR_2PLANE_444_FORMATS_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a+pattern EXT_YCBCR_2PLANE_444_FORMATS_EXTENSION_NAME = "VK_EXT_ycbcr_2plane_444_formats"+
+ src/Vulkan/Extensions/VK_EXT_ycbcr_2plane_444_formats.hs-boot view
@@ -0,0 +1,109 @@+{-# language CPP #-}+-- | = Name+--+-- VK_EXT_ycbcr_2plane_444_formats - device extension+--+-- == VK_EXT_ycbcr_2plane_444_formats+--+-- [__Name String__]+--     @VK_EXT_ycbcr_2plane_444_formats@+--+-- [__Extension Type__]+--     Device extension+--+-- [__Registered Extension Number__]+--     331+--+-- [__Revision__]+--     1+--+-- [__Extension and Version Dependencies__]+--+--     -   Requires Vulkan 1.0+--+--     -   Requires @VK_KHR_sampler_ycbcr_conversion@+--+-- [__Contact__]+--+--     -   Tony Zlatinski+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?title=VK_EXT_ycbcr_2plane_444_formats:%20&body=@tzlatinski%20 >+--+-- == Other Extension Metadata+--+-- [__Last Modified Date__]+--     2020-07-28+--+-- [__IP Status__]+--     No known IP claims.+--+-- [__Contributors__]+--+--     -   Piers Daniell, NVIDIA+--+--     -   Ping Liu, Intel+--+-- == Description+--+-- This extension adds some Y′CBCR formats that are in common use for video+-- encode and decode, but were not part of the+-- <VK_KHR_sampler_ycbcr_conversion.html VK_KHR_sampler_ycbcr_conversion>+-- extension.+--+-- == New Structures+--+-- -   Extending+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',+--     'Vulkan.Core10.Device.DeviceCreateInfo':+--+--     -   'PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT'+--+-- == New Enum Constants+--+-- -   'EXT_YCBCR_2PLANE_444_FORMATS_EXTENSION_NAME'+--+-- -   'EXT_YCBCR_2PLANE_444_FORMATS_SPEC_VERSION'+--+-- -   Extending 'Vulkan.Core10.Enums.Format.Format':+--+--     -   'Vulkan.Core10.Enums.Format.FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16_EXT'+--+--     -   'Vulkan.Core10.Enums.Format.FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16_EXT'+--+--     -   'Vulkan.Core10.Enums.Format.FORMAT_G16_B16R16_2PLANE_444_UNORM_EXT'+--+--     -   'Vulkan.Core10.Enums.Format.FORMAT_G8_B8R8_2PLANE_444_UNORM_EXT'+--+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT'+--+-- == Version History+--+-- -   Revision 1, 2020-03-08 (Piers Daniell)+--+--     -   Initial draft+--+-- = See Also+--+-- 'PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT'+--+-- = Document Notes+--+-- For more information, see the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_ycbcr_2plane_444_formats Vulkan Specification>+--+-- This page is a generated document. Fixes and changes should be made to+-- the generator scripts, not directly.+module Vulkan.Extensions.VK_EXT_ycbcr_2plane_444_formats  (PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT) where++import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (ToCStruct)+import Data.Kind (Type)++data PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT++instance ToCStruct PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT+instance Show PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT++instance FromCStruct PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT+
src/Vulkan/Extensions/VK_EXT_ycbcr_image_arrays.hs view
@@ -108,23 +108,24 @@ import Vulkan.Core10.Enums.StructureType (StructureType) import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT)) -- | VkPhysicalDeviceYcbcrImageArraysFeaturesEXT - Structure describing--- extended Y’CbCr image creation features that can be supported by an+-- extended Y′CBCR image creation features that can be supported by an -- implementation -- -- = Members ----- The members of the 'PhysicalDeviceYcbcrImageArraysFeaturesEXT' structure--- describe the following features:+-- This structure describes the following feature: -- -- = Description -- -- If the 'PhysicalDeviceYcbcrImageArraysFeaturesEXT' structure is included--- in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- it is filled with values indicating whether the feature is supported.--- 'PhysicalDeviceYcbcrImageArraysFeaturesEXT' /can/ also be included in--- the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to enable--- features.+-- 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. 'PhysicalDeviceYcbcrImageArraysFeaturesEXT' /can/ also be+-- used in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to+-- selectively enable these features. -- -- == Valid Usage (Implicit) --
src/Vulkan/Extensions/VK_FUCHSIA_external_memory.hs view
@@ -207,7 +207,7 @@ -- 'Vulkan.Core10.Handles.Device', 'MemoryGetZirconHandleInfoFUCHSIA' getMemoryZirconHandleFUCHSIA :: forall io                               . (MonadIO io)-                             => -- | @device@ is the VkDevice.+                             => -- | @device@ is the 'Vulkan.Core10.Handles.Device'.                                 --                                 -- #VUID-vkGetMemoryZirconHandleFUCHSIA-device-parameter# @device@ /must/                                 -- be a valid 'Vulkan.Core10.Handles.Device' handle@@ -260,12 +260,14 @@ -- 'MemoryZirconHandlePropertiesFUCHSIA' getMemoryZirconHandlePropertiesFUCHSIA :: forall io                                         . (MonadIO io)-                                       => -- | @device@ is the VkDevice.+                                       => -- | @device@ is the 'Vulkan.Core10.Handles.Device'.                                           --                                           -- #VUID-vkGetMemoryZirconHandlePropertiesFUCHSIA-device-parameter#                                           -- @device@ /must/ be a valid 'Vulkan.Core10.Handles.Device' handle                                           Device-                                       -> -- | @handleType@ is the type of @zirconHandle@+                                       -> -- | @handleType@ is a+                                          -- 'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.ExternalMemoryHandleTypeFlagBits'+                                          -- value specifying the type of @zirconHandle@                                           --                                           -- #VUID-vkGetMemoryZirconHandlePropertiesFUCHSIA-handleType-04773#                                           -- @handleType@ /must/ be@@ -323,7 +325,9 @@ -- 'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.ExternalMemoryHandleTypeFlagBits', -- 'Vulkan.Core10.Enums.StructureType.StructureType' data ImportMemoryZirconHandleInfoFUCHSIA = ImportMemoryZirconHandleInfoFUCHSIA-  { -- | @handleType@ is the type of @handle@.+  { -- | @handleType@ is a+    -- 'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.ExternalMemoryHandleTypeFlagBits'+    -- value specifying the type of @handle@.     handleType :: ExternalMemoryHandleTypeFlagBits   , -- | @handle@ is a @zx_handle_t@ (Zircon) handle to the external memory.     handle :: Zx_handle_t@@ -436,8 +440,10 @@     -- #VUID-VkMemoryGetZirconHandleInfoFUCHSIA-memory-parameter# @memory@     -- /must/ be a valid 'Vulkan.Core10.Handles.DeviceMemory' handle     memory :: DeviceMemory-  , -- | @handleType@ is the type of the handle pointed to by @pZirconHandle@ as-    -- retrieved by the call to 'getMemoryZirconHandleFUCHSIA'.+  , -- | @handleType@ is a+    -- 'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.ExternalMemoryHandleTypeFlagBits'+    -- value specifying the type of the handle pointed to by+    -- 'getMemoryZirconHandleFUCHSIA'::@pZirconHandle@.     --     -- #VUID-VkMemoryGetZirconHandleInfoFUCHSIA-handleType-04775# @handleType@     -- /must/ be
src/Vulkan/Extensions/VK_FUCHSIA_external_semaphore.hs view
@@ -391,7 +391,9 @@     -- specifying additional parameters for the semaphore payload import     -- operation.     flags :: SemaphoreImportFlags-  , -- | @handleType@ specifies the type of @zirconHandle@.+  , -- | @handleType@ is a+    -- 'Vulkan.Core11.Enums.ExternalSemaphoreHandleTypeFlagBits.ExternalSemaphoreHandleTypeFlagBits'+    -- value specifying the type of @zirconHandle@.     handleType :: ExternalSemaphoreHandleTypeFlagBits   , -- | @zirconHandle@ is the external handle to import.     zirconHandle :: Zx_handle_t@@ -518,7 +520,9 @@ data SemaphoreGetZirconHandleInfoFUCHSIA = SemaphoreGetZirconHandleInfoFUCHSIA   { -- | @semaphore@ is the semaphore from which state will be exported.     semaphore :: Semaphore-  , -- | @handleType@ is the type of handle requested.+  , -- | @handleType@ is a+    -- 'Vulkan.Core11.Enums.ExternalSemaphoreHandleTypeFlagBits.ExternalSemaphoreHandleTypeFlagBits'+    -- value specifying the type of handle requested.     handleType :: ExternalSemaphoreHandleTypeFlagBits   }   deriving (Typeable, Eq)
src/Vulkan/Extensions/VK_FUCHSIA_imagepipe_surface.hs view
@@ -254,7 +254,7 @@   , -- | @imagePipeHandle@ is a @zx_handle_t@ referring to the ImagePipe to     -- associate with the surface.     ---    -- #VUID-VkImagePipeSurfaceCreateInfoFUCHSIA-imagePipeHandle-00000#+    -- #VUID-VkImagePipeSurfaceCreateInfoFUCHSIA-imagePipeHandle-04863#     -- @imagePipeHandle@ /must/ be a valid @zx_handle_t@     imagePipeHandle :: Zx_handle_t   }
src/Vulkan/Extensions/VK_GOOGLE_display_timing.hs view
@@ -279,12 +279,10 @@ -- with the number of structures actually written to -- @pPresentationTimings@. If the value of @pPresentationTimingCount@ is -- less than the number of newly-available timing records, at most--- @pPresentationTimingCount@ structures will be written. If--- @pPresentationTimingCount@ is smaller than the number of newly-available--- timing records for the given @swapchain@,+-- @pPresentationTimingCount@ structures will be written, 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.+-- 'Vulkan.Core10.Enums.Result.SUCCESS', to indicate that not all the+-- available timing records were returned. -- -- == Valid Usage (Implicit) --@@ -602,6 +600,10 @@  -- | VkPresentTimeGOOGLE - The earliest time image should be presented --+-- = Description+--+-- > but does not need a specific pname:desiredPresentTime.+-- -- = See Also -- -- 'PresentTimesInfoGOOGLE'@@ -618,7 +620,7 @@     -- (e.g. @CLOCK_MONOTONIC@ (see clock_gettime(2)) on Android and Linux). A     -- value of zero specifies that the presentation engine /may/ display the     -- image at any time. This is useful when the application desires to-    -- provide @presentID@, but does not need a specific @desiredPresentTime@.+    -- provide @presentID@,     desiredPresentTime :: Word64   }   deriving (Typeable, Eq)
src/Vulkan/Extensions/VK_INTEL_performance_query.hs view
@@ -1310,7 +1310,7 @@            zero  --- | VkPerformanceOverrideInfoINTEL - Performance override info+-- | VkPerformanceOverrideInfoINTEL - Performance override information -- -- == Valid Usage (Implicit) --
src/Vulkan/Extensions/VK_INTEL_shader_integer_functions2.hs view
@@ -127,18 +127,21 @@ -- -- = Members ----- The members of the 'PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL'--- structure describe the following features:+-- This structure describes the following feature: -- -- = Description ----- If the 'PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL' structure is--- included in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- it is filled with values indicating whether the feature is supported.--- 'PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL' /can/ also be--- included in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo'--- to enable features.+-- If the @VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTELfeatures@.+-- 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.+-- @VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTELfeatures@. /can/+-- also be used in the @pNext@ chain of+-- 'Vulkan.Core10.Device.DeviceCreateInfo' to selectively enable these+-- features. -- -- == Valid Usage (Implicit) --
src/Vulkan/Extensions/VK_KHR_acceleration_structure.hs view
@@ -466,7 +466,7 @@ -- --     -   'Vulkan.Extensions.VK_NV_ray_tracing.AccelerationStructureCreateInfoNV' --         → 'AccelerationStructureCreateInfoKHR' (reshuffle geometry---         layout\/info)+--         layout\/information) -- --     -   'Vulkan.Extensions.VK_NV_ray_tracing.PhysicalDeviceRayTracingPropertiesNV' --         → 'PhysicalDeviceAccelerationStructurePropertiesKHR' (for@@ -486,7 +486,7 @@ -- --     -   'Vulkan.Extensions.VK_NV_ray_tracing.createAccelerationStructureNV' --         → 'createAccelerationStructureKHR' (device address, different---         geometry layout\/info)+--         geometry layout\/information) -- --     -   'Vulkan.Extensions.VK_NV_ray_tracing.getAccelerationStructureMemoryRequirementsNV' --         (deleted - replaced by allocating on top of@@ -755,7 +755,7 @@ -- --     -   add a new --         'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR'---         buffer usage such buffers+--         buffer usage for such buffers -- --     -   add a new 'ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR' acceleration --         structure type for layering@@ -786,12 +786,12 @@ -- -- (5) What is 'ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR' for? ----- RESOLVED: It is primarily intended for API layering. In DXR, the+-- __RESOLVED__: It is primarily intended for API layering. In DXR, the -- acceleration structure is basically just a buffer in a special layout, -- and you don’t know at creation time whether it will be used as a top or -- bottom level acceleration structure. We thus added a generic -- acceleration structure type whose type is unknown at creation time, but--- is specified at build type instead. Applications which are written+-- is specified at build time instead. Applications which are written -- directly for Vulkan should not use it. -- -- == Version History@@ -815,7 +815,7 @@ --         better match its type (!3523) -- --     -   Allow VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS for pipeline---         creation if shader group handles cannot be re-used. (!3523)+--         creation if shader group handles cannot be reused (!3523) -- --     -   update documentation for the --         VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS error code and add@@ -1429,7 +1429,7 @@ -- 'Vulkan.Core10.Handles.Device' destroyAccelerationStructureKHR :: forall io                                  . (MonadIO io)-                                => -- | @device@ is the logical device that destroys the buffer.+                                => -- | @device@ is the logical device that destroys the acceleration structure.                                    Device                                 -> -- | @accelerationStructure@ is the acceleration structure to destroy.                                    AccelerationStructureKHR@@ -1461,7 +1461,7 @@ -- -- = Description ----- Accesses to @pInfo@->@src@ and @pInfo@->@dst@ /must/ be+-- Accesses to @pInfo->src@ and @pInfo->dst@ /must/ be -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies synchronized> -- with the -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR'@@ -1477,10 +1477,10 @@ -- == Valid Usage -- -- -   #VUID-vkCmdCopyAccelerationStructureKHR-buffer-03737# The @buffer@---     used to create @pInfo@->@src@ /must/ be bound to device memory+--     used to create @pInfo->src@ /must/ be bound to device memory -- -- -   #VUID-vkCmdCopyAccelerationStructureKHR-buffer-03738# The @buffer@---     used to create @pInfo@->@dst@ /must/ be bound to device memory+--     used to create @pInfo->dst@ /must/ be bound to device memory -- -- == Valid Usage (Implicit) --@@ -1571,12 +1571,10 @@ --     @deferredOperation@ /must/ be complete -- -- -   #VUID-vkCopyAccelerationStructureKHR-buffer-03727# The @buffer@ used---     to create @pInfo@->@src@ /must/ be bound to host-visible device---     memory+--     to create @pInfo->src@ /must/ be bound to host-visible device memory -- -- -   #VUID-vkCopyAccelerationStructureKHR-buffer-03728# The @buffer@ used---     to create @pInfo@->@dst@ /must/ be bound to host-visible device---     memory+--     to create @pInfo->dst@ /must/ be bound to host-visible device memory -- -- -   #VUID-vkCopyAccelerationStructureKHR-accelerationStructureHostCommands-03582# --     The@@ -1584,11 +1582,11 @@ --     feature /must/ be enabled -- -- -   #VUID-vkCopyAccelerationStructureKHR-buffer-03780# The @buffer@ used---     to create @pInfo@->@src@ /must/ be bound to memory that was not+--     to create @pInfo->src@ /must/ be bound to memory that was not --     allocated with multiple instances -- -- -   #VUID-vkCopyAccelerationStructureKHR-buffer-03781# The @buffer@ used---     to create @pInfo@->@dst@ /must/ be bound to memory that was not+--     to create @pInfo->dst@ /must/ be bound to memory that was not --     allocated with multiple instances -- -- == Valid Usage (Implicit)@@ -1666,7 +1664,7 @@ -- -- = Description ----- Accesses to @pInfo@->@src@ /must/ be+-- Accesses to @pInfo->src@ /must/ be -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies synchronized> -- with the -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR'@@ -1675,8 +1673,8 @@ -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-access-types access type> -- of -- 'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR'.--- Accesses to the buffer indicated by @pInfo@->@dst.deviceAddress@ /must/--- be synchronized with the+-- Accesses to the buffer indicated by @pInfo->dst.deviceAddress@ /must/ be+-- synchronized with the -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR' -- pipeline stage and an access type of -- 'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_TRANSFER_WRITE_BIT'.@@ -1722,19 +1720,19 @@ -- == Valid Usage -- -- -   #VUID-vkCmdCopyAccelerationStructureToMemoryKHR-pInfo-03739#---     @pInfo@->@dst.deviceAddress@ /must/ be a valid device address for a---     buffer bound to device memory.+--     @pInfo->dst.deviceAddress@ /must/ be a valid device address for a+--     buffer bound to device memory -- -- -   #VUID-vkCmdCopyAccelerationStructureToMemoryKHR-pInfo-03740#---     @pInfo@->@dst.deviceAddress@ /must/ be aligned to @256@ bytes+--     @pInfo->dst.deviceAddress@ /must/ be aligned to @256@ bytes -- -- -   #VUID-vkCmdCopyAccelerationStructureToMemoryKHR-pInfo-03741# If the---     buffer pointed to by @pInfo@->@dst.deviceAddress@ is non-sparse then+--     buffer pointed to by @pInfo->dst.deviceAddress@ is non-sparse then --     it /must/ be bound completely and contiguously to a single --     'Vulkan.Core10.Handles.DeviceMemory' object -- -- -   #VUID-vkCmdCopyAccelerationStructureToMemoryKHR-None-03559# The---     @buffer@ used to create @pInfo@->@src@ /must/ be bound to device+--     @buffer@ used to create @pInfo->src@ /must/ be bound to device --     memory -- -- == Valid Usage (Implicit)@@ -1834,14 +1832,14 @@ --     @deferredOperation@ /must/ be complete -- -- -   #VUID-vkCopyAccelerationStructureToMemoryKHR-buffer-03731# The---     @buffer@ used to create @pInfo@->@src@ /must/ be bound to---     host-visible device memory+--     @buffer@ used to create @pInfo->src@ /must/ be bound to host-visible+--     device memory -- -- -   #VUID-vkCopyAccelerationStructureToMemoryKHR-pInfo-03732#---     @pInfo@->@dst.hostAddress@ /must/ be a valid host pointer+--     @pInfo->dst.hostAddress@ /must/ be a valid host pointer -- -- -   #VUID-vkCopyAccelerationStructureToMemoryKHR-pInfo-03751#---     @pInfo@->@dst.hostAddress@ /must/ be aligned to 16 bytes+--     @pInfo->dst.hostAddress@ /must/ be aligned to 16 bytes -- -- -   #VUID-vkCopyAccelerationStructureToMemoryKHR-accelerationStructureHostCommands-03584# --     The@@ -1849,8 +1847,8 @@ --     feature /must/ be enabled -- -- -   #VUID-vkCopyAccelerationStructureToMemoryKHR-buffer-03783# The---     @buffer@ used to create @pInfo@->@src@ /must/ be bound to memory---     that was not allocated with multiple instances+--     @buffer@ used to create @pInfo->src@ /must/ be bound to memory that+--     was not allocated with multiple instances -- -- == Valid Usage (Implicit) --@@ -1893,7 +1891,7 @@ -- 'Vulkan.Core10.Handles.Device' copyAccelerationStructureToMemoryKHR :: forall io                                       . (MonadIO io)-                                     => -- | @device@ is the device which owns @pInfo@->@src@.+                                     => -- | @device@ is the device which owns @pInfo->src@.                                         Device                                      -> -- | @deferredOperation@ is an optional                                         -- 'Vulkan.Extensions.Handles.DeferredOperationKHR' to@@ -1927,7 +1925,7 @@ -- -- = Description ----- Accesses to @pInfo@->@dst@ /must/ be+-- Accesses to @pInfo->dst@ /must/ be -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies synchronized> -- with the -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR'@@ -1936,8 +1934,8 @@ -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-access-types access type> -- of -- 'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR'.--- Accesses to the buffer indicated by @pInfo@->@src.deviceAddress@ /must/--- be synchronized with the+-- Accesses to the buffer indicated by @pInfo->src.deviceAddress@ /must/ be+-- synchronized with the -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR' -- pipeline stage and an access type of -- 'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_TRANSFER_READ_BIT'.@@ -1955,19 +1953,19 @@ -- == Valid Usage -- -- -   #VUID-vkCmdCopyMemoryToAccelerationStructureKHR-pInfo-03742#---     @pInfo@->@src.deviceAddress@ /must/ be a valid device address for a+--     @pInfo->src.deviceAddress@ /must/ be a valid device address for a --     buffer bound to device memory. -- -- -   #VUID-vkCmdCopyMemoryToAccelerationStructureKHR-pInfo-03743#---     @pInfo@->@src.deviceAddress@ /must/ be aligned to @256@ bytes+--     @pInfo->src.deviceAddress@ /must/ be aligned to @256@ bytes -- -- -   #VUID-vkCmdCopyMemoryToAccelerationStructureKHR-pInfo-03744# If the---     buffer pointed to by @pInfo@->@src.deviceAddress@ is non-sparse then+--     buffer pointed to by @pInfo->src.deviceAddress@ is non-sparse then --     it /must/ be bound completely and contiguously to a single --     'Vulkan.Core10.Handles.DeviceMemory' object -- -- -   #VUID-vkCmdCopyMemoryToAccelerationStructureKHR-buffer-03745# The---     @buffer@ used to create @pInfo@->@dst@ /must/ be bound to device+--     @buffer@ used to create @pInfo->dst@ /must/ be bound to device --     memory -- -- == Valid Usage (Implicit)@@ -2063,14 +2061,14 @@ --     @deferredOperation@ /must/ be complete -- -- -   #VUID-vkCopyMemoryToAccelerationStructureKHR-pInfo-03729#---     @pInfo@->@src.hostAddress@ /must/ be a valid host pointer+--     @pInfo->src.hostAddress@ /must/ be a valid host pointer -- -- -   #VUID-vkCopyMemoryToAccelerationStructureKHR-pInfo-03750#---     @pInfo@->@src.hostAddress@ /must/ be aligned to 16 bytes+--     @pInfo->src.hostAddress@ /must/ be aligned to 16 bytes -- -- -   #VUID-vkCopyMemoryToAccelerationStructureKHR-buffer-03730# The---     @buffer@ used to create @pInfo@->@dst@ /must/ be bound to---     host-visible device memory+--     @buffer@ used to create @pInfo->dst@ /must/ be bound to host-visible+--     device memory -- -- -   #VUID-vkCopyMemoryToAccelerationStructureKHR-accelerationStructureHostCommands-03583# --     The@@ -2078,8 +2076,8 @@ --     feature /must/ be enabled -- -- -   #VUID-vkCopyMemoryToAccelerationStructureKHR-buffer-03782# The---     @buffer@ used to create @pInfo@->@dst@ /must/ be bound to memory---     that was not allocated with multiple instances+--     @buffer@ used to create @pInfo->dst@ /must/ be bound to memory that+--     was not allocated with multiple instances -- -- == Valid Usage (Implicit) --@@ -2181,6 +2179,10 @@ --     The @buffer@ used to create each acceleration structure in --     @pAccelerationStructures@ /must/ be bound to device memory --+-- -   #VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-query-04880# The+--     sum of @query@ plus @accelerationStructureCount@ /must/ be less than+--     or equal to the number of queries in @queryPool@+-- -- -   #VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-accelerationStructures-03431# --     All acceleration structures in @pAccelerationStructures@ /must/ have --     been built with@@ -2407,8 +2409,8 @@                                          => -- | @device@ is the device which owns the acceleration structures in                                             -- @pAccelerationStructures@.                                             Device-                                         -> -- | @pAccelerationStructures@ points to an array of existing previously-                                            -- built acceleration structures.+                                         -> -- | @pAccelerationStructures@ is a pointer to an array of existing+                                            -- previously built acceleration structures.                                             ("accelerationStructures" ::: Vector AccelerationStructureKHR)                                          -> -- | @queryType@ is a 'Vulkan.Core10.Enums.QueryType.QueryType' value                                             -- specifying the property to be queried.@@ -2473,8 +2475,8 @@                                                 . (MonadIO io)                                                => -- | @device@ is the device to check the version against.                                                   Device-                                               -> -- | @pVersionInfo@ points to the 'AccelerationStructureVersionInfoKHR'-                                                  -- version information to check against the device.+                                               -> -- | @pVersionInfo@ is a pointer to a 'AccelerationStructureVersionInfoKHR'+                                                  -- structure specifying version information to check against the device.                                                   AccelerationStructureVersionInfoKHR                                                -> io (AccelerationStructureCompatibilityKHR) getDeviceAccelerationStructureCompatibilityKHR device versionInfo = liftIO . evalContT $ do@@ -2643,7 +2645,7 @@ -- the builds. -- -- Accesses to the acceleration structure scratch buffers as identified by--- the 'AccelerationStructureBuildGeometryInfoKHR'→@scratchData@ buffer+-- the 'AccelerationStructureBuildGeometryInfoKHR'::@scratchData@ buffer -- device addresses /must/ be -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies synchronized> -- with the@@ -2656,16 +2658,16 @@ -- or -- 'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR'. -- Similarly for accesses to each--- 'AccelerationStructureBuildGeometryInfoKHR'→@srcAccelerationStructure@+-- 'AccelerationStructureBuildGeometryInfoKHR'::@srcAccelerationStructure@ -- and--- 'AccelerationStructureBuildGeometryInfoKHR'→@dstAccelerationStructure@.+-- 'AccelerationStructureBuildGeometryInfoKHR'::@dstAccelerationStructure@. -- -- Accesses to other input buffers as identified by any used values of--- 'AccelerationStructureGeometryTrianglesDataKHR'→@vertexData@,--- 'AccelerationStructureGeometryTrianglesDataKHR'→@indexData@,--- 'AccelerationStructureGeometryTrianglesDataKHR'→@transformData@,--- 'AccelerationStructureGeometryAabbsDataKHR'→@data@, and--- 'AccelerationStructureGeometryInstancesDataKHR'→@data@ /must/ be+-- 'AccelerationStructureGeometryTrianglesDataKHR'::@vertexData@,+-- 'AccelerationStructureGeometryTrianglesDataKHR'::@indexData@,+-- 'AccelerationStructureGeometryTrianglesDataKHR'::@transformData@,+-- 'AccelerationStructureGeometryAabbsDataKHR'::@data@, and+-- 'AccelerationStructureGeometryInstancesDataKHR'::@data@ /must/ be -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies synchronized> -- with the -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR'@@ -2785,12 +2787,6 @@ --     'GEOMETRY_TYPE_INSTANCES_KHR' in any other element of @pInfos@, --     which is accessed by this command ----- -   #VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03666# For each---     element of @pInfos@, if its @mode@ member is---     'BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR', its---     @srcAccelerationStructure@ member /must/ not be---     'Vulkan.Core10.APIConstants.NULL_HANDLE'--- -- -   #VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03667# For each --     element of @pInfos@, if its @mode@ member is --     'BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR', its@@ -2811,19 +2807,19 @@ --     element of @pInfos@, if its @mode@ member is --     'BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR', its @geometryCount@ --     member /must/ have the same value which was specified when---     @srcAccelerationStructure@ was last built.+--     @srcAccelerationStructure@ was last built -- -- -   #VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03759# For each --     element of @pInfos@, if its @mode@ member is --     'BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR', its @flags@ member --     /must/ have the same value which was specified when---     @srcAccelerationStructure@ was last built.+--     @srcAccelerationStructure@ was last built -- -- -   #VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03760# For each --     element of @pInfos@, if its @mode@ member is --     'BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR', its @type@ member --     /must/ have the same value which was specified when---     @srcAccelerationStructure@ was last built.+--     @srcAccelerationStructure@ was last built -- -- -   #VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03761# For each --     element of @pInfos@, if its @mode@ member is@@ -2831,7 +2827,7 @@ --     'AccelerationStructureGeometryKHR' structure referred to by its --     @pGeometries@ or @ppGeometries@ members, its @geometryType@ member --     /must/ have the same value which was specified when---     @srcAccelerationStructure@ was last built.+--     @srcAccelerationStructure@ was last built -- -- -   #VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03762# For each --     element of @pInfos@, if its @mode@ member is@@ -2839,7 +2835,7 @@ --     'AccelerationStructureGeometryKHR' structure referred to by its --     @pGeometries@ or @ppGeometries@ members, its @flags@ member /must/ --     have the same value which was specified when---     @srcAccelerationStructure@ was last built.+--     @srcAccelerationStructure@ was last built -- -- -   #VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03763# For each --     element of @pInfos@, if its @mode@ member is@@ -2848,7 +2844,7 @@ --     @pGeometries@ or @ppGeometries@ members, if @geometryType@ is --     'GEOMETRY_TYPE_TRIANGLES_KHR', its @geometry.triangles.vertexFormat@ --     member /must/ have the same value which was specified when---     @srcAccelerationStructure@ was last built.+--     @srcAccelerationStructure@ was last built -- -- -   #VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03764# For each --     element of @pInfos@, if its @mode@ member is@@ -2857,7 +2853,7 @@ --     @pGeometries@ or @ppGeometries@ members, if @geometryType@ is --     'GEOMETRY_TYPE_TRIANGLES_KHR', its @geometry.triangles.maxVertex@ --     member /must/ have the same value which was specified when---     @srcAccelerationStructure@ was last built.+--     @srcAccelerationStructure@ was last built -- -- -   #VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03765# For each --     element of @pInfos@, if its @mode@ member is@@ -2866,7 +2862,7 @@ --     @pGeometries@ or @ppGeometries@ members, if @geometryType@ is --     'GEOMETRY_TYPE_TRIANGLES_KHR', its @geometry.triangles.indexType@ --     member /must/ have the same value which was specified when---     @srcAccelerationStructure@ was last built.+--     @srcAccelerationStructure@ was last built -- -- -   #VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03766# For each --     element of @pInfos@, if its @mode@ member is@@ -2875,7 +2871,7 @@ --     @pGeometries@ or @ppGeometries@ members, if @geometryType@ is --     'GEOMETRY_TYPE_TRIANGLES_KHR', if its --     @geometry.triangles.transformData@ member was NULL when---     @srcAccelerationStructure@ was last built, then it must be NULL.+--     @srcAccelerationStructure@ was last built, then it /must/ be NULL -- -- -   #VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03767# For each --     element of @pInfos@, if its @mode@ member is@@ -2884,7 +2880,7 @@ --     @pGeometries@ or @ppGeometries@ members, if @geometryType@ is --     'GEOMETRY_TYPE_TRIANGLES_KHR', if its --     @geometry.triangles.transformData@ member was not NULL when---     @srcAccelerationStructure@ was last built, then it may not be NULL.+--     @srcAccelerationStructure@ was last built, then it may not be NULL -- -- -   #VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03768# For each --     element of @pInfos@, if its @mode@ member is@@ -2893,20 +2889,20 @@ --     @pGeometries@ or @ppGeometries@ members, if @geometryType@ is --     'GEOMETRY_TYPE_TRIANGLES_KHR', and @geometry.triangles.indexType@ is --     not 'Vulkan.Core10.Enums.IndexType.INDEX_TYPE_NONE_KHR', then the---     value of each index referenced index must be the same as the+--     value of each index referenced /must/ be the same as the --     corresponding index value when @srcAccelerationStructure@ was last---     built.+--     built -- -- -   #VUID-vkCmdBuildAccelerationStructuresKHR-primitiveCount-03769# For --     each 'AccelerationStructureBuildRangeInfoKHR' referenced by this --     command, its @primitiveCount@ member /must/ have the same value---     which was specified when @srcAccelerationStructure@ was last built.+--     which was specified when @srcAccelerationStructure@ was last built -- -- -   #VUID-vkCmdBuildAccelerationStructuresKHR-firstVertex-03770# For --     each 'AccelerationStructureBuildRangeInfoKHR' referenced by this --     command, if the corresponding geometry uses indices, its --     @firstVertex@ member /must/ have the same value which was specified---     when @srcAccelerationStructure@ was last built.+--     when @srcAccelerationStructure@ was last built -- -- -   #VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03801# For each --     element of @pInfos@[i].@pGeometries@ or @pInfos@[i].@ppGeometries@@@ -2959,7 +2955,8 @@ --     @geometry.triangles.vertexData@, @geometry.triangles.indexData@, --     @geometry.triangles.transformData@, @geometry.aabbs.data@, and --     @geometry.instances.data@ members of all @pInfos@[i].@pGeometries@---     and @pInfos@[i].@ppGeometries@ /must/ have been created with the+--     and @pInfos@[i].@ppGeometries@ are queried /must/ have been created+--     with the --     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR' --     usage flag --@@ -3186,16 +3183,16 @@                                   => -- | @commandBuffer@ is the command buffer into which the command will be                                      -- recorded.                                      CommandBuffer-                                  -> -- | @pInfos@ is an array of @infoCount@+                                  -> -- | @pInfos@ is a pointer to an array of @infoCount@                                      -- 'AccelerationStructureBuildGeometryInfoKHR' structures defining the                                      -- geometry used to build each acceleration structure.                                      ("infos" ::: Vector AccelerationStructureBuildGeometryInfoKHR)-                                  -> -- | @ppBuildRangeInfos@ is an array of @infoCount@ pointers to arrays of-                                     -- 'AccelerationStructureBuildRangeInfoKHR' structures. Each-                                     -- @ppBuildRangeInfos@[i] is an array of @pInfos@[i].@geometryCount@-                                     -- 'AccelerationStructureBuildRangeInfoKHR' structures defining dynamic-                                     -- offsets to the addresses where geometry data is stored, as defined by-                                     -- @pInfos@[i].+                                  -> -- | @ppBuildRangeInfos@ is a pointer to an array of @infoCount@ pointers to+                                     -- arrays of 'AccelerationStructureBuildRangeInfoKHR' structures. Each+                                     -- @ppBuildRangeInfos@[i] is a pointer to an array of+                                     -- @pInfos@[i].@geometryCount@ 'AccelerationStructureBuildRangeInfoKHR'+                                     -- structures defining dynamic offsets to the addresses where geometry data+                                     -- is stored, as defined by @pInfos@[i].                                      ("buildRangeInfos" ::: Vector (Vector AccelerationStructureBuildRangeInfoKHR))                                   -> io () cmdBuildAccelerationStructuresKHR commandBuffer infos buildRangeInfos = liftIO . evalContT $ do@@ -3354,12 +3351,6 @@ --     'GEOMETRY_TYPE_INSTANCES_KHR' in any other element of @pInfos@, --     which is accessed by this command ----- -   #VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03666# For---     each element of @pInfos@, if its @mode@ member is---     'BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR', its---     @srcAccelerationStructure@ member /must/ not be---     'Vulkan.Core10.APIConstants.NULL_HANDLE'--- -- -   #VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03667# For --     each element of @pInfos@, if its @mode@ member is --     'BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR', its@@ -3380,19 +3371,19 @@ --     each element of @pInfos@, if its @mode@ member is --     'BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR', its @geometryCount@ --     member /must/ have the same value which was specified when---     @srcAccelerationStructure@ was last built.+--     @srcAccelerationStructure@ was last built -- -- -   #VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03759# For --     each element of @pInfos@, if its @mode@ member is --     'BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR', its @flags@ member --     /must/ have the same value which was specified when---     @srcAccelerationStructure@ was last built.+--     @srcAccelerationStructure@ was last built -- -- -   #VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03760# For --     each element of @pInfos@, if its @mode@ member is --     'BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR', its @type@ member --     /must/ have the same value which was specified when---     @srcAccelerationStructure@ was last built.+--     @srcAccelerationStructure@ was last built -- -- -   #VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03761# For --     each element of @pInfos@, if its @mode@ member is@@ -3400,7 +3391,7 @@ --     'AccelerationStructureGeometryKHR' structure referred to by its --     @pGeometries@ or @ppGeometries@ members, its @geometryType@ member --     /must/ have the same value which was specified when---     @srcAccelerationStructure@ was last built.+--     @srcAccelerationStructure@ was last built -- -- -   #VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03762# For --     each element of @pInfos@, if its @mode@ member is@@ -3408,7 +3399,7 @@ --     'AccelerationStructureGeometryKHR' structure referred to by its --     @pGeometries@ or @ppGeometries@ members, its @flags@ member /must/ --     have the same value which was specified when---     @srcAccelerationStructure@ was last built.+--     @srcAccelerationStructure@ was last built -- -- -   #VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03763# For --     each element of @pInfos@, if its @mode@ member is@@ -3417,7 +3408,7 @@ --     @pGeometries@ or @ppGeometries@ members, if @geometryType@ is --     'GEOMETRY_TYPE_TRIANGLES_KHR', its @geometry.triangles.vertexFormat@ --     member /must/ have the same value which was specified when---     @srcAccelerationStructure@ was last built.+--     @srcAccelerationStructure@ was last built -- -- -   #VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03764# For --     each element of @pInfos@, if its @mode@ member is@@ -3426,7 +3417,7 @@ --     @pGeometries@ or @ppGeometries@ members, if @geometryType@ is --     'GEOMETRY_TYPE_TRIANGLES_KHR', its @geometry.triangles.maxVertex@ --     member /must/ have the same value which was specified when---     @srcAccelerationStructure@ was last built.+--     @srcAccelerationStructure@ was last built -- -- -   #VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03765# For --     each element of @pInfos@, if its @mode@ member is@@ -3435,7 +3426,7 @@ --     @pGeometries@ or @ppGeometries@ members, if @geometryType@ is --     'GEOMETRY_TYPE_TRIANGLES_KHR', its @geometry.triangles.indexType@ --     member /must/ have the same value which was specified when---     @srcAccelerationStructure@ was last built.+--     @srcAccelerationStructure@ was last built -- -- -   #VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03766# For --     each element of @pInfos@, if its @mode@ member is@@ -3444,7 +3435,7 @@ --     @pGeometries@ or @ppGeometries@ members, if @geometryType@ is --     'GEOMETRY_TYPE_TRIANGLES_KHR', if its --     @geometry.triangles.transformData@ member was NULL when---     @srcAccelerationStructure@ was last built, then it must be NULL.+--     @srcAccelerationStructure@ was last built, then it /must/ be NULL -- -- -   #VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03767# For --     each element of @pInfos@, if its @mode@ member is@@ -3453,7 +3444,7 @@ --     @pGeometries@ or @ppGeometries@ members, if @geometryType@ is --     'GEOMETRY_TYPE_TRIANGLES_KHR', if its --     @geometry.triangles.transformData@ member was not NULL when---     @srcAccelerationStructure@ was last built, then it may not be NULL.+--     @srcAccelerationStructure@ was last built, then it may not be NULL -- -- -   #VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03768# For --     each element of @pInfos@, if its @mode@ member is@@ -3462,20 +3453,20 @@ --     @pGeometries@ or @ppGeometries@ members, if @geometryType@ is --     'GEOMETRY_TYPE_TRIANGLES_KHR', and @geometry.triangles.indexType@ is --     not 'Vulkan.Core10.Enums.IndexType.INDEX_TYPE_NONE_KHR', then the---     value of each index referenced index must be the same as the+--     value of each index referenced /must/ be the same as the --     corresponding index value when @srcAccelerationStructure@ was last---     built.+--     built -- -- -   #VUID-vkCmdBuildAccelerationStructuresIndirectKHR-primitiveCount-03769# --     For each 'AccelerationStructureBuildRangeInfoKHR' referenced by this --     command, its @primitiveCount@ member /must/ have the same value---     which was specified when @srcAccelerationStructure@ was last built.+--     which was specified when @srcAccelerationStructure@ was last built -- -- -   #VUID-vkCmdBuildAccelerationStructuresIndirectKHR-firstVertex-03770# --     For each 'AccelerationStructureBuildRangeInfoKHR' referenced by this --     command, if the corresponding geometry uses indices, its --     @firstVertex@ member /must/ have the same value which was specified---     when @srcAccelerationStructure@ was last built.+--     when @srcAccelerationStructure@ was last built -- -- -   #VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03801# For --     each element of @pInfos@[i].@pGeometries@ or@@ -3529,7 +3520,8 @@ --     @geometry.triangles.vertexData@, @geometry.triangles.indexData@, --     @geometry.triangles.transformData@, @geometry.aabbs.data@, and --     @geometry.instances.data@ members of all @pInfos@[i].@pGeometries@---     and @pInfos@[i].@ppGeometries@ /must/ have been created with the+--     and @pInfos@[i].@ppGeometries@ are queried /must/ have been created+--     with the --     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR' --     usage flag --@@ -3709,7 +3701,7 @@ -- -   #VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pIndirectDeviceAddresses-03646# --     For any element of @pIndirectDeviceAddresses@[i], all device --     addresses between @pIndirectDeviceAddresses@[i] and---     @pIndirectDeviceAddresses@[i] + (@pInfos@[i]→geometryCount ×+--     @pIndirectDeviceAddresses@[i] + (@pInfos@[i].@geometryCount@ × --     @pIndirectStrides@[i]) - 1 /must/ be in the buffer device address --     range of the same buffer --@@ -3817,22 +3809,23 @@                                           => -- | @commandBuffer@ is the command buffer into which the command will be                                              -- recorded.                                              CommandBuffer-                                          -> -- | @pInfos@ is an array of @infoCount@+                                          -> -- | @pInfos@ is a pointer to an array of @infoCount@                                              -- 'AccelerationStructureBuildGeometryInfoKHR' structures defining the                                              -- geometry used to build each acceleration structure.                                              ("infos" ::: Vector AccelerationStructureBuildGeometryInfoKHR)-                                          -> -- | @pIndirectDeviceAddresses@ is an array of @infoCount@ buffer device-                                             -- addresses which point to @pInfos@[i]→@geometryCount@+                                          -> -- | @pIndirectDeviceAddresses@ is a pointer to an array of @infoCount@+                                             -- buffer device addresses which point to @pInfos@[i].@geometryCount@                                              -- 'AccelerationStructureBuildRangeInfoKHR' structures defining dynamic                                              -- offsets to the addresses where geometry data is stored, as defined by                                              -- @pInfos@[i].                                              ("indirectDeviceAddresses" ::: Vector DeviceAddress)-                                          -> -- | @pIndirectStrides@ is an array of @infoCount@ byte strides between-                                             -- elements of @pIndirectDeviceAddresses@.+                                          -> -- | @pIndirectStrides@ is a pointer to an array of @infoCount@ byte strides+                                             -- between elements of @pIndirectDeviceAddresses@.                                              ("indirectStrides" ::: Vector Word32)-                                          -> -- | @ppMaxPrimitiveCounts@ is an array of @infoCount@ arrays of-                                             -- @pInfo@[i]→@geometryCount@ values indicating the maximum number of-                                             -- primitives that will be built by this command for each geometry.+                                          -> -- | @ppMaxPrimitiveCounts@ is a pointer to an array of @infoCount@ pointers+                                             -- to arrays of @pInfos@[i].@geometryCount@ values indicating the maximum+                                             -- number of primitives that will be built by this command for each+                                             -- geometry.                                              ("maxPrimitiveCounts" ::: Vector (Vector Word32))                                           -> io () cmdBuildAccelerationStructuresIndirectKHR commandBuffer infos indirectDeviceAddresses indirectStrides maxPrimitiveCounts = liftIO . evalContT $ do@@ -4002,12 +3995,6 @@ --     'GEOMETRY_TYPE_INSTANCES_KHR' in any other element of @pInfos@, --     which is accessed by this command ----- -   #VUID-vkBuildAccelerationStructuresKHR-pInfos-03666# For each---     element of @pInfos@, if its @mode@ member is---     'BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR', its---     @srcAccelerationStructure@ member /must/ not be---     'Vulkan.Core10.APIConstants.NULL_HANDLE'--- -- -   #VUID-vkBuildAccelerationStructuresKHR-pInfos-03667# For each --     element of @pInfos@, if its @mode@ member is --     'BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR', its@@ -4028,19 +4015,19 @@ --     element of @pInfos@, if its @mode@ member is --     'BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR', its @geometryCount@ --     member /must/ have the same value which was specified when---     @srcAccelerationStructure@ was last built.+--     @srcAccelerationStructure@ was last built -- -- -   #VUID-vkBuildAccelerationStructuresKHR-pInfos-03759# For each --     element of @pInfos@, if its @mode@ member is --     'BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR', its @flags@ member --     /must/ have the same value which was specified when---     @srcAccelerationStructure@ was last built.+--     @srcAccelerationStructure@ was last built -- -- -   #VUID-vkBuildAccelerationStructuresKHR-pInfos-03760# For each --     element of @pInfos@, if its @mode@ member is --     'BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR', its @type@ member --     /must/ have the same value which was specified when---     @srcAccelerationStructure@ was last built.+--     @srcAccelerationStructure@ was last built -- -- -   #VUID-vkBuildAccelerationStructuresKHR-pInfos-03761# For each --     element of @pInfos@, if its @mode@ member is@@ -4048,7 +4035,7 @@ --     'AccelerationStructureGeometryKHR' structure referred to by its --     @pGeometries@ or @ppGeometries@ members, its @geometryType@ member --     /must/ have the same value which was specified when---     @srcAccelerationStructure@ was last built.+--     @srcAccelerationStructure@ was last built -- -- -   #VUID-vkBuildAccelerationStructuresKHR-pInfos-03762# For each --     element of @pInfos@, if its @mode@ member is@@ -4056,7 +4043,7 @@ --     'AccelerationStructureGeometryKHR' structure referred to by its --     @pGeometries@ or @ppGeometries@ members, its @flags@ member /must/ --     have the same value which was specified when---     @srcAccelerationStructure@ was last built.+--     @srcAccelerationStructure@ was last built -- -- -   #VUID-vkBuildAccelerationStructuresKHR-pInfos-03763# For each --     element of @pInfos@, if its @mode@ member is@@ -4065,7 +4052,7 @@ --     @pGeometries@ or @ppGeometries@ members, if @geometryType@ is --     'GEOMETRY_TYPE_TRIANGLES_KHR', its @geometry.triangles.vertexFormat@ --     member /must/ have the same value which was specified when---     @srcAccelerationStructure@ was last built.+--     @srcAccelerationStructure@ was last built -- -- -   #VUID-vkBuildAccelerationStructuresKHR-pInfos-03764# For each --     element of @pInfos@, if its @mode@ member is@@ -4074,7 +4061,7 @@ --     @pGeometries@ or @ppGeometries@ members, if @geometryType@ is --     'GEOMETRY_TYPE_TRIANGLES_KHR', its @geometry.triangles.maxVertex@ --     member /must/ have the same value which was specified when---     @srcAccelerationStructure@ was last built.+--     @srcAccelerationStructure@ was last built -- -- -   #VUID-vkBuildAccelerationStructuresKHR-pInfos-03765# For each --     element of @pInfos@, if its @mode@ member is@@ -4083,7 +4070,7 @@ --     @pGeometries@ or @ppGeometries@ members, if @geometryType@ is --     'GEOMETRY_TYPE_TRIANGLES_KHR', its @geometry.triangles.indexType@ --     member /must/ have the same value which was specified when---     @srcAccelerationStructure@ was last built.+--     @srcAccelerationStructure@ was last built -- -- -   #VUID-vkBuildAccelerationStructuresKHR-pInfos-03766# For each --     element of @pInfos@, if its @mode@ member is@@ -4092,7 +4079,7 @@ --     @pGeometries@ or @ppGeometries@ members, if @geometryType@ is --     'GEOMETRY_TYPE_TRIANGLES_KHR', if its --     @geometry.triangles.transformData@ member was NULL when---     @srcAccelerationStructure@ was last built, then it must be NULL.+--     @srcAccelerationStructure@ was last built, then it /must/ be NULL -- -- -   #VUID-vkBuildAccelerationStructuresKHR-pInfos-03767# For each --     element of @pInfos@, if its @mode@ member is@@ -4101,7 +4088,7 @@ --     @pGeometries@ or @ppGeometries@ members, if @geometryType@ is --     'GEOMETRY_TYPE_TRIANGLES_KHR', if its --     @geometry.triangles.transformData@ member was not NULL when---     @srcAccelerationStructure@ was last built, then it may not be NULL.+--     @srcAccelerationStructure@ was last built, then it may not be NULL -- -- -   #VUID-vkBuildAccelerationStructuresKHR-pInfos-03768# For each --     element of @pInfos@, if its @mode@ member is@@ -4110,20 +4097,20 @@ --     @pGeometries@ or @ppGeometries@ members, if @geometryType@ is --     'GEOMETRY_TYPE_TRIANGLES_KHR', and @geometry.triangles.indexType@ is --     not 'Vulkan.Core10.Enums.IndexType.INDEX_TYPE_NONE_KHR', then the---     value of each index referenced index must be the same as the+--     value of each index referenced /must/ be the same as the --     corresponding index value when @srcAccelerationStructure@ was last---     built.+--     built -- -- -   #VUID-vkBuildAccelerationStructuresKHR-primitiveCount-03769# For --     each 'AccelerationStructureBuildRangeInfoKHR' referenced by this --     command, its @primitiveCount@ member /must/ have the same value---     which was specified when @srcAccelerationStructure@ was last built.+--     which was specified when @srcAccelerationStructure@ was last built -- -- -   #VUID-vkBuildAccelerationStructuresKHR-firstVertex-03770# For each --     'AccelerationStructureBuildRangeInfoKHR' referenced by this command, --     if the corresponding geometry uses indices, its @firstVertex@ member --     /must/ have the same value which was specified when---     @srcAccelerationStructure@ was last built.+--     @srcAccelerationStructure@ was last built -- -- -   #VUID-vkBuildAccelerationStructuresKHR-pInfos-03801# For each --     element of @pInfos@[i].@pGeometries@ or @pInfos@[i].@ppGeometries@@@ -4316,12 +4303,12 @@                                   -- 'AccelerationStructureBuildGeometryInfoKHR' structures defining the                                   -- geometry used to build each acceleration structure.                                   ("infos" ::: Vector AccelerationStructureBuildGeometryInfoKHR)-                               -> -- | @ppBuildRangeInfos@ is an array of @infoCount@ pointers to arrays of-                                  -- 'AccelerationStructureBuildRangeInfoKHR' structures. Each-                                  -- @ppBuildRangeInfos@[i] is an array of @pInfos@[i].@geometryCount@-                                  -- 'AccelerationStructureBuildRangeInfoKHR' structures defining dynamic-                                  -- offsets to the addresses where geometry data is stored, as defined by-                                  -- @pInfos@[i].+                               -> -- | @ppBuildRangeInfos@ is a pointer to an array of @infoCount@ pointers to+                                  -- arrays of 'AccelerationStructureBuildRangeInfoKHR' structures. Each+                                  -- @ppBuildRangeInfos@[i] is a pointer to an array of+                                  -- @pInfos@[i].@geometryCount@ 'AccelerationStructureBuildRangeInfoKHR'+                                  -- structures defining dynamic offsets to the addresses where geometry data+                                  -- is stored, as defined by @pInfos@[i].                                   ("buildRangeInfos" ::: Vector (Vector AccelerationStructureBuildRangeInfoKHR))                                -> io (Result) buildAccelerationStructuresKHR device deferredOperation infos buildRangeInfos = liftIO . evalContT $ do@@ -4362,13 +4349,13 @@ -- structure building. -- -- If the acceleration structure was created with a non-zero value of--- 'AccelerationStructureCreateInfoKHR'::@deviceAddress@ the return value+-- 'AccelerationStructureCreateInfoKHR'::@deviceAddress@, the return value -- will be the same address. -- -- If the acceleration structure was created with a @type@ of--- 'ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR' the returned address /must/ be--- consistent with the relative offset to other acceleration structures of--- @type@ of 'ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR' allocated with the+-- 'ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR', the returned address /must/+-- be consistent with the relative offset to other acceleration structures+-- with @type@ 'ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR' allocated with the -- same 'Vulkan.Core10.Handles.Buffer'. That is, the difference in returned -- addresses between the two /must/ be the same as the difference in -- offsets provided at acceleration structure creation.@@ -4402,7 +4389,7 @@ -- 'Vulkan.Core10.Handles.Device' getAccelerationStructureDeviceAddressKHR :: forall io                                           . (MonadIO io)-                                         => -- | @device@ is the logical device that the accelerationStructure was+                                         => -- | @device@ is the logical device that the acceleration structure was                                             -- created on.                                             Device                                          -> -- | @pInfo@ is a pointer to a 'AccelerationStructureDeviceAddressInfoKHR'@@ -4585,7 +4572,7 @@   -- | VkWriteDescriptorSetAccelerationStructureKHR - Structure specifying--- acceleration structure descriptor info+-- acceleration structure descriptor information -- -- == Valid Usage --@@ -4602,7 +4589,7 @@ -- -   #VUID-VkWriteDescriptorSetAccelerationStructureKHR-pAccelerationStructures-03580# --     If the --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-nullDescriptor nullDescriptor>---     feature is not enabled, each member of @pAccelerationStructures@+--     feature is not enabled, each element of @pAccelerationStructures@ --     /must/ not be 'Vulkan.Core10.APIConstants.NULL_HANDLE' -- -- == Valid Usage (Implicit)@@ -4625,7 +4612,9 @@ -- 'Vulkan.Extensions.Handles.AccelerationStructureKHR', -- 'Vulkan.Core10.Enums.StructureType.StructureType' data WriteDescriptorSetAccelerationStructureKHR = WriteDescriptorSetAccelerationStructureKHR-  { -- | @pAccelerationStructures@ are the acceleration structures to update.+  { -- | @pAccelerationStructures@ is a pointer to an array of+    -- 'Vulkan.Extensions.Handles.AccelerationStructureKHR' structures+    -- specifying the acceleration structures to update.     accelerationStructures :: Vector AccelerationStructureKHR }   deriving (Typeable) #if defined(GENERIC_INSTANCES)@@ -4669,18 +4658,19 @@ -- -- = Members ----- The members of the 'PhysicalDeviceAccelerationStructureFeaturesKHR'--- structure describe the following features:+-- This structure describes the following features: -- -- = Description -- -- If the 'PhysicalDeviceAccelerationStructureFeaturesKHR' structure is--- included in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- it is filled with values indicating whether the feature is supported.--- 'PhysicalDeviceAccelerationStructureFeaturesKHR' /can/ also be used in--- the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to enable--- the features.+-- 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. 'PhysicalDeviceAccelerationStructureFeaturesKHR' /can/ also+-- be used in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo'+-- to selectively enable these features. -- -- == Valid Usage (Implicit) --@@ -4781,9 +4771,12 @@ -- = Description -- -- If the 'PhysicalDeviceAccelerationStructurePropertiesKHR' structure is--- included in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2',--- it is filled with the implementation-dependent limits.+-- 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. -- -- Limits specified by this structure /must/ match those specified with the -- same name in@@ -5136,23 +5129,6 @@ -- | VkAccelerationStructureGeometryKHR - Structure specifying geometries to -- be built into an acceleration structure ----- == Valid Usage------ -   #VUID-VkAccelerationStructureGeometryKHR-geometryType-03541# If---     @geometryType@ is 'GEOMETRY_TYPE_AABBS_KHR', the @aabbs@ member of---     @geometry@ /must/ be a valid---     'AccelerationStructureGeometryAabbsDataKHR' structure------ -   #VUID-VkAccelerationStructureGeometryKHR-geometryType-03542# If---     @geometryType@ is 'GEOMETRY_TYPE_TRIANGLES_KHR', the @triangles@---     member of @geometry@ /must/ be a valid---     'AccelerationStructureGeometryTrianglesDataKHR' structure------ -   #VUID-VkAccelerationStructureGeometryKHR-geometryType-03543# If---     @geometryType@ is 'GEOMETRY_TYPE_INSTANCES_KHR', the @instances@---     member of @geometry@ /must/ be a valid---     'AccelerationStructureGeometryInstancesDataKHR' structure--- -- == Valid Usage (Implicit) -- -- -   #VUID-VkAccelerationStructureGeometryKHR-sType-sType# @sType@ /must/@@ -5356,12 +5332,12 @@   , -- | @mode@ is a 'BuildAccelerationStructureModeKHR' value specifying the     -- type of operation to perform.     mode :: BuildAccelerationStructureModeKHR-  , -- | @srcAccelerationStructure@ points to an existing acceleration structure-    -- that is to be used to update the @dst@ acceleration structure when-    -- @mode@ is 'BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR'.+  , -- | @srcAccelerationStructure@ is a pointer to an existing acceleration+    -- structure that is to be used to update the @dst@ acceleration structure+    -- when @mode@ is 'BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR'.     srcAccelerationStructure :: AccelerationStructureKHR-  , -- | @dstAccelerationStructure@ points to the target acceleration structure-    -- for the build.+  , -- | @dstAccelerationStructure@ is a pointer to the target acceleration+    -- structure for the build.     dstAccelerationStructure :: AccelerationStructureKHR   , -- | @pGeometries@ is a pointer to an array of     -- 'AccelerationStructureGeometryKHR' structures.@@ -5470,7 +5446,7 @@ -- -- -   #VUID-VkAccelerationStructureBuildRangeInfoKHR-primitiveOffset-03657# --     For geometries of type 'GEOMETRY_TYPE_TRIANGLES_KHR', if the---     geometry doesn’t use indices, the offset @primitiveOffset@ from+--     geometry does not use indices, the offset @primitiveOffset@ from --     'AccelerationStructureGeometryTrianglesDataKHR'::@vertexData@ /must/ --     be a multiple of the component size of --     'AccelerationStructureGeometryTrianglesDataKHR'::@vertexFormat@@@ -5581,7 +5557,7 @@ -- 'Vulkan.Core10.Enums.BufferCreateFlagBits.BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT' -- flag to all buffers that use -- 'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT',--- and+-- and will add -- 'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT' -- to all buffers used as storage for an acceleration structure where -- @deviceAddress@ is not zero. During capture the tool will save the@@ -5921,8 +5897,8 @@ -- -- = Description ----- The C language spec does not define the ordering of bit-fields, but in--- practice, this struct produces the correct layout with existing+-- The C language specification does not define the ordering of bit-fields,+-- but in practice, this struct produces the correct layout with existing -- compilers. The intended bit pattern is for the following: -- -- If a compiler produces code that diverges from that pattern,@@ -5942,7 +5918,7 @@     -- to ray shaders in the @InstanceCustomIndexKHR@ built-in.     --     -- @instanceCustomIndex@ and @mask@ occupy the same memory as if a single-    -- @int32_t@ was specified in their place+    -- @uint32_t@ was specified in their place     --     -- -   @instanceCustomIndex@ occupies the 24 least significant bits of that     --     memory@@ -5956,7 +5932,7 @@     -- calculating the hit shader binding table index.     --     -- @instanceShaderBindingTableRecordOffset@ and @flags@ occupy the same-    -- memory as if a single @int32_t@ was specified in their place+    -- memory as if a single @uint32_t@ was specified in their place     --     -- -   @instanceShaderBindingTableRecordOffset@ occupies the 24 least     --     significant bits of that memory@@ -6703,8 +6679,8 @@ pattern BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR = BuildAccelerationStructureFlagBitsKHR 0x00000008 -- | 'BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR' indicates that this -- acceleration structure /should/ minimize the size of the scratch memory--- and the final result build, potentially at the expense of build time or--- trace performance.+-- and the final result acceleration structure, potentially at the expense+-- of build time or trace performance. pattern BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR        = BuildAccelerationStructureFlagBitsKHR 0x00000010  conNameBuildAccelerationStructureFlagBitsKHR :: String@@ -7043,11 +7019,12 @@ newtype AccelerationStructureCompatibilityKHR = AccelerationStructureCompatibilityKHR Int32   deriving newtype (Eq, Ord, Storable, Zero) --- | 'ACCELERATION_STRUCTURE_COMPATIBILITY_COMPATIBLE_KHR' when the--- @pVersion@ version acceleration structure is compatibile with @device@.+-- | 'ACCELERATION_STRUCTURE_COMPATIBILITY_COMPATIBLE_KHR' if the+-- @pVersionData@ version acceleration structure is compatible with+-- @device@. pattern ACCELERATION_STRUCTURE_COMPATIBILITY_COMPATIBLE_KHR   = AccelerationStructureCompatibilityKHR 0--- | 'ACCELERATION_STRUCTURE_COMPATIBILITY_INCOMPATIBLE_KHR' when the--- @pVersion@ version acceleration structure is not compatibile with+-- | 'ACCELERATION_STRUCTURE_COMPATIBILITY_INCOMPATIBLE_KHR' if the+-- @pVersionData@ version acceleration structure is not compatible with -- @device@. pattern ACCELERATION_STRUCTURE_COMPATIBILITY_INCOMPATIBLE_KHR = AccelerationStructureCompatibilityKHR 1 {-# complete ACCELERATION_STRUCTURE_COMPATIBILITY_COMPATIBLE_KHR,
src/Vulkan/Extensions/VK_KHR_acceleration_structure.hs-boot view
@@ -466,7 +466,7 @@ -- --     -   'Vulkan.Extensions.VK_NV_ray_tracing.AccelerationStructureCreateInfoNV' --         → 'AccelerationStructureCreateInfoKHR' (reshuffle geometry---         layout\/info)+--         layout\/information) -- --     -   'Vulkan.Extensions.VK_NV_ray_tracing.PhysicalDeviceRayTracingPropertiesNV' --         → 'PhysicalDeviceAccelerationStructurePropertiesKHR' (for@@ -486,7 +486,7 @@ -- --     -   'Vulkan.Extensions.VK_NV_ray_tracing.createAccelerationStructureNV' --         → 'createAccelerationStructureKHR' (device address, different---         geometry layout\/info)+--         geometry layout\/information) -- --     -   'Vulkan.Extensions.VK_NV_ray_tracing.getAccelerationStructureMemoryRequirementsNV' --         (deleted - replaced by allocating on top of@@ -755,7 +755,7 @@ -- --     -   add a new --         'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR'---         buffer usage such buffers+--         buffer usage for such buffers -- --     -   add a new 'ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR' acceleration --         structure type for layering@@ -786,12 +786,12 @@ -- -- (5) What is 'ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR' for? ----- RESOLVED: It is primarily intended for API layering. In DXR, the+-- __RESOLVED__: It is primarily intended for API layering. In DXR, the -- acceleration structure is basically just a buffer in a special layout, -- and you don’t know at creation time whether it will be used as a top or -- bottom level acceleration structure. We thus added a generic -- acceleration structure type whose type is unknown at creation time, but--- is specified at build type instead. Applications which are written+-- is specified at build time instead. Applications which are written -- directly for Vulkan should not use it. -- -- == Version History@@ -815,7 +815,7 @@ --         better match its type (!3523) -- --     -   Allow VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS for pipeline---         creation if shader group handles cannot be re-used. (!3523)+--         creation if shader group handles cannot be reused (!3523) -- --     -   update documentation for the --         VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS error code and add
src/Vulkan/Extensions/VK_KHR_buffer_device_address.hs view
@@ -79,8 +79,8 @@ -- <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/KHR/SPV_KHR_physical_storage_buffer.html SPV_KHR_physical_storage_buffer> -- SPIR-V extension. ----- Another way to describe this extension is that it adds \"pointers to--- buffer memory in shaders\". By calling+-- Another way to describe this extension is that it adds “pointers to+-- buffer memory in shaders”. By calling -- 'Vulkan.Core12.Promoted_From_VK_KHR_buffer_device_address.getBufferDeviceAddress' -- with a 'Vulkan.Core10.Handles.Buffer', it will return a -- 'Vulkan.Core10.FundamentalTypes.DeviceAddress' value which represents
src/Vulkan/Extensions/VK_KHR_copy_commands2.hs view
@@ -28,14 +28,14 @@ -- -- == Other Extension Metadata ----- [Last Modified Date]+-- [__Last Modified Date__] --     2020-07-06 -- -- [__Interactions and External Dependencies__] -- --     -   None ----- [Contributors]+-- [__Contributors__] -- --     -   Jeff Leger, Qualcomm --@@ -56,10 +56,10 @@ -- The following extensible copy commands are introduced with this -- extension: 'cmdCopyBuffer2KHR', 'cmdCopyImage2KHR', -- 'cmdCopyBufferToImage2KHR', 'cmdCopyImageToBuffer2KHR',--- 'cmdBlitImage2KHR', and 'cmdResolveImage2KHR'. Each command--- contain@*Info2KHR@ structure parameter that includes @sType@\/@pNext@--- members. Lower level structures that describe each region to be copied--- are also extended with @sType@\/@pNext@ members.+-- 'cmdBlitImage2KHR', and 'cmdResolveImage2KHR'. Each command contains an+-- @*Info2KHR@ structure parameter that includes @sType@\/@pNext@ members.+-- Lower level structures that describe each region to be copied are also+-- extended with @sType@\/@pNext@ members. -- -- == New Commands --@@ -701,7 +701,7 @@                          => -- | @commandBuffer@ is the command buffer into which the command will be                             -- recorded.                             CommandBuffer-                         -> -- | @pCopyImageToBufferInfo@ is a pointer to a 'cmdCopyImageToBuffer2KHR'+                         -> -- | @pCopyImageToBufferInfo@ is a pointer to a 'CopyImageToBufferInfo2KHR'                             -- structure describing the copy parameters.                             CopyImageToBufferInfo2KHR                          -> io ()@@ -1672,12 +1672,12 @@ -- -- -   #VUID-VkCopyImageInfo2KHR-srcImage-04443# If @srcImage@ is of type --     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D', then for each element---     of @pRegions@, @srcSubresource.baseArrayLayer@ /must/ be @0@ and and+--     of @pRegions@, @srcSubresource.baseArrayLayer@ /must/ be @0@ and --     @srcSubresource.layerCount@ /must/ be @1@ -- -- -   #VUID-VkCopyImageInfo2KHR-dstImage-04444# If @dstImage@ is of type --     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D', then for each element---     of @pRegions@, @dstSubresource.baseArrayLayer@ /must/ be @0@ and and+--     of @pRegions@, @dstSubresource.baseArrayLayer@ /must/ be @0@ and --     @dstSubresource.layerCount@ /must/ be @1@ -- -- -   #VUID-VkCopyImageInfo2KHR-aspectMask-00142# For each element of@@ -2080,55 +2080,55 @@ --     present in @dstImage@ -- -- -   #VUID-VkBlitImageInfo2KHR-srcOffset-00243# For each element of---     @pRegions@, @srcOffset@[0].x and @srcOffset@[1].x /must/ both be+--     @pRegions@, @srcOffsets@[0].x and @srcOffsets@[1].x /must/ both be --     greater than or equal to @0@ and less than or equal to the width of --     the specified @srcSubresource@ of @srcImage@ -- -- -   #VUID-VkBlitImageInfo2KHR-srcOffset-00244# For each element of---     @pRegions@, @srcOffset@[0].y and @srcOffset@[1].y /must/ both be+--     @pRegions@, @srcOffsets@[0].y and @srcOffsets@[1].y /must/ both be --     greater than or equal to @0@ and less than or equal to the height of --     the specified @srcSubresource@ of @srcImage@ -- -- -   #VUID-VkBlitImageInfo2KHR-srcImage-00245# If @srcImage@ is of type --     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D', then for each element---     of @pRegions@, @srcOffset@[0].y /must/ be @0@ and @srcOffset@[1].y+--     of @pRegions@, @srcOffsets@[0].y /must/ be @0@ and @srcOffsets@[1].y --     /must/ be @1@ -- -- -   #VUID-VkBlitImageInfo2KHR-srcOffset-00246# For each element of---     @pRegions@, @srcOffset@[0].z and @srcOffset@[1].z /must/ both be+--     @pRegions@, @srcOffsets@[0].z and @srcOffsets@[1].z /must/ both be --     greater than or equal to @0@ and less than or equal to the depth of --     the specified @srcSubresource@ of @srcImage@ -- -- -   #VUID-VkBlitImageInfo2KHR-srcImage-00247# If @srcImage@ is of type --     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D' or --     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D', then for each element---     of @pRegions@, @srcOffset@[0].z /must/ be @0@ and @srcOffset@[1].z+--     of @pRegions@, @srcOffsets@[0].z /must/ be @0@ and @srcOffsets@[1].z --     /must/ be @1@ -- -- -   #VUID-VkBlitImageInfo2KHR-dstOffset-00248# For each element of---     @pRegions@, @dstOffset@[0].x and @dstOffset@[1].x /must/ both be+--     @pRegions@, @dstOffsets@[0].x and @dstOffsets@[1].x /must/ both be --     greater than or equal to @0@ and less than or equal to the width of --     the specified @dstSubresource@ of @dstImage@ -- -- -   #VUID-VkBlitImageInfo2KHR-dstOffset-00249# For each element of---     @pRegions@, @dstOffset@[0].y and @dstOffset@[1].y /must/ both be+--     @pRegions@, @dstOffsets@[0].y and @dstOffsets@[1].y /must/ both be --     greater than or equal to @0@ and less than or equal to the height of --     the specified @dstSubresource@ of @dstImage@ -- -- -   #VUID-VkBlitImageInfo2KHR-dstImage-00250# If @dstImage@ is of type --     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D', then for each element---     of @pRegions@, @dstOffset@[0].y /must/ be @0@ and @dstOffset@[1].y+--     of @pRegions@, @dstOffsets@[0].y /must/ be @0@ and @dstOffsets@[1].y --     /must/ be @1@ -- -- -   #VUID-VkBlitImageInfo2KHR-dstOffset-00251# For each element of---     @pRegions@, @dstOffset@[0].z and @dstOffset@[1].z /must/ both be+--     @pRegions@, @dstOffsets@[0].z and @dstOffsets@[1].z /must/ both be --     greater than or equal to @0@ and less than or equal to the depth of --     the specified @dstSubresource@ of @dstImage@ -- -- -   #VUID-VkBlitImageInfo2KHR-dstImage-00252# If @dstImage@ is of type --     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D' or --     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D', then for each element---     of @pRegions@, @dstOffset@[0].z /must/ be @0@ and @dstOffset@[1].z+--     of @pRegions@, @dstOffsets@[0].z /must/ be @0@ and @dstOffsets@[1].z --     /must/ be @1@ -- -- -   #VUID-VkBlitImageInfo2KHR-pRegions-04561# If any element of@@ -2376,7 +2376,7 @@ -- -   #VUID-VkCopyBufferToImageInfo2KHR-imageOffset-00197# For each --     element of @pRegions@ not containing --     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'---     in its @pNext@ chain, , @imageOffset.x@ and (@imageExtent.width@ ++--     in its @pNext@ chain, @imageOffset.x@ and (@imageExtent.width@ + --     @imageOffset.x@) /must/ both be greater than or equal to @0@ and --     less than or equal to the width of the specified @imageSubresource@ --     of @dstImage@ where this refers to the width of the /plane/ of the@@ -2386,7 +2386,7 @@ -- -   #VUID-VkCopyBufferToImageInfo2KHR-imageOffset-00198# For each --     element of @pRegions@ not containing --     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'---     in its @pNext@ chain, , @imageOffset.y@ and (imageExtent.height ++--     in its @pNext@ chain, @imageOffset.y@ and (@imageExtent.height@ + --     @imageOffset.y@) /must/ both be greater than or equal to @0@ and --     less than or equal to the height of the specified @imageSubresource@ --     of @dstImage@ where this refers to the height of the /plane/ of the@@ -2413,7 +2413,7 @@ --     @imageExtent.height@ /must/ be @1@ -- -- -   #VUID-VkCopyBufferToImageInfo2KHR-imageOffset-00200# For each---     element of @pRegions@, @imageOffset.z@ and (imageExtent.depth ++--     element of @pRegions@, @imageOffset.z@ and (@imageExtent.depth@ + --     @imageOffset.z@) /must/ both be greater than or equal to @0@ and --     less than or equal to the depth of the specified @imageSubresource@ --     of @dstImage@@@ -2734,7 +2734,7 @@ -- -   #VUID-VkCopyImageToBufferInfo2KHR-imageOffset-00198# For each --     element of @pRegions@ not containing --     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'---     in its @pNext@ chain, , @imageOffset.y@ and (imageExtent.height ++--     in its @pNext@ chain, , @imageOffset.y@ and (@imageExtent.height@ + --     @imageOffset.y@) /must/ both be greater than or equal to @0@ and --     less than or equal to the height of the specified @imageSubresource@ --     of @srcImage@ where this refers to the height of the /plane/ of the@@ -2761,7 +2761,7 @@ --     @imageExtent.height@ /must/ be @1@ -- -- -   #VUID-VkCopyImageToBufferInfo2KHR-imageOffset-00200# For each---     element of @pRegions@, @imageOffset.z@ and (imageExtent.depth ++--     element of @pRegions@, @imageOffset.z@ and (@imageExtent.depth@ + --     @imageOffset.z@) /must/ both be greater than or equal to @0@ and --     less than or equal to the depth of the specified @imageSubresource@ --     of {imageparam}
src/Vulkan/Extensions/VK_KHR_copy_commands2.hs-boot view
@@ -28,14 +28,14 @@ -- -- == Other Extension Metadata ----- [Last Modified Date]+-- [__Last Modified Date__] --     2020-07-06 -- -- [__Interactions and External Dependencies__] -- --     -   None ----- [Contributors]+-- [__Contributors__] -- --     -   Jeff Leger, Qualcomm --@@ -56,10 +56,10 @@ -- The following extensible copy commands are introduced with this -- extension: 'cmdCopyBuffer2KHR', 'cmdCopyImage2KHR', -- 'cmdCopyBufferToImage2KHR', 'cmdCopyImageToBuffer2KHR',--- 'cmdBlitImage2KHR', and 'cmdResolveImage2KHR'. Each command--- contain@*Info2KHR@ structure parameter that includes @sType@\/@pNext@--- members. Lower level structures that describe each region to be copied--- are also extended with @sType@\/@pNext@ members.+-- 'cmdBlitImage2KHR', and 'cmdResolveImage2KHR'. Each command contains an+-- @*Info2KHR@ structure parameter that includes @sType@\/@pNext@ members.+-- Lower level structures that describe each region to be copied are also+-- extended with @sType@\/@pNext@ members. -- -- == New Commands --
src/Vulkan/Extensions/VK_KHR_create_renderpass2.hs view
@@ -37,14 +37,14 @@ -- -- == Other Extension Metadata ----- [Last Modified Date]+-- [__Last Modified Date__] --     2018-02-07 -- -- [__Interactions and External Dependencies__] -- --     -   Promoted to Vulkan 1.2 Core ----- [Contributors]+-- [__Contributors__] -- --     -   Tobias Hector --
src/Vulkan/Extensions/VK_KHR_dedicated_allocation.hs view
@@ -200,7 +200,7 @@ -- -- -   Revision 3, 2017-07-31 (Jason Ekstrand) -----     -   Clarify that memory objects created with+--     -   Clarify that memory objects allocated with --         VkMemoryDedicatedAllocateInfoKHR can only have the specified --         resource bound and no others. --
src/Vulkan/Extensions/VK_KHR_deferred_host_operations.hs view
@@ -137,6 +137,43 @@ -- >     } -- > ); --+-- The following example illustrates extracting concurrency from a single+-- deferred operation:+--+-- > // create a deferred operation+-- > VkDeferredOperationKHR hOp;+-- > VkResult result = vkCreateDeferredOperationKHR(device, pCallbacks, &hOp);+-- > assert(result == VK_SUCCESS);+-- >+-- > result = vkDoSomethingExpensive(device, hOp, ...);+-- > assert( result == VK_OPERATION_DEFERRED_KHR );+-- >+-- > // Query the maximum amount of concurrency and clamp to the desired maximum+-- > uint32_t numLaunches = std::min(vkGetDeferredOperationMaxConcurrencyKHR(device, hOp), maxThreads);+-- >+-- > std::vector<std::future<void> > joins;+-- >+-- > for (uint32_t i = 0; i < numLaunches; i++) {+-- >   joins.emplace_back(std::async::launch(+-- >     [ hOp ] ( )+-- >     {+-- >         vkDeferredOperationJoinKHR(device, hOp);+-- > 		// in a job system, a return of VK_THREAD_IDLE_KHR should queue another+-- > 		// job, but it's not functionally required+-- >     }+-- >   );+-- > }+-- >+-- > for (auto &f : joins) {+-- >   f.get();+-- > }+-- >+-- > result = vkGetDeferredOperationResultKHR(device, hOp);+-- >+-- > // deferred operation is now complete.  'result' indicates success or failure+-- >+-- > vkDestroyDeferredOperationKHR(device, hOp, pCallbacks);+-- -- The following example shows a subroutine which guarantees completion of -- a deferred operation, in the presence of multiple worker threads, and -- returns the result of the operation.@@ -183,13 +220,13 @@ -- -- == Issues ----- 1.  Should this entension have a VkPhysicalDevice*FeaturesKHR structure?+-- 1.  Should this extension have a VkPhysicalDevice*FeaturesKHR structure? ----- RESOLVED: No. This extension does not add any functionality on its own--- and requires a dependent extension to actually enable functionality and--- thus there is no value in adding a feature structure. If necessary, any--- dependent extension could add a feature boolean if it wanted to indicate--- that it is adding optional deferral support.+-- __RESOLVED__: No. This extension does not add any functionality on its+-- own and requires a dependent extension to actually enable functionality+-- and thus there is no value in adding a feature structure. If necessary,+-- any dependent extension could add a feature boolean if it wanted to+-- indicate that it is adding optional deferral support. -- -- == Version History --
src/Vulkan/Extensions/VK_KHR_descriptor_update_template.hs view
@@ -54,7 +54,7 @@ -- == Description -- -- Applications may wish to update a fixed set of descriptors in a large--- number of descriptors sets very frequently, i.e. during initializaton+-- number of descriptor sets very frequently, i.e. during initializaton -- phase or if it is required to rebuild descriptor sets for each frame. -- For those cases it is also not unlikely that all information required to -- update a single descriptor set is stored in a single struct. This
src/Vulkan/Extensions/VK_KHR_device_group.hs view
@@ -342,8 +342,8 @@ -- -- -   Revision 4, 2017-10-10 (Jeff Bolz) -----     -   Rename \"SFR\" bits and structure members to use the phrase---         \"split instance bind regions\".+--     -   Rename “SFR” bits and structure members to use the phrase “split+--         instance bind regions”. -- -- = See Also --
src/Vulkan/Extensions/VK_KHR_display.hs view
@@ -126,9 +126,9 @@ -- -- == Issues ----- 1) Which properties of a mode should be fixed in the mode info vs.--- settable in some other function when setting the mode? E.g., do we need--- to double the size of the mode pool to include both stereo and+-- 1) Which properties of a mode should be fixed in the mode information+-- vs. settable in some other function when setting the mode? E.g., do we+-- need to double the size of the mode pool to include both stereo and -- non-stereo modes? YUV and RGB scanout even if they both take RGB input -- images? BGR vs. RGB input? etc. --@@ -181,9 +181,9 @@ -- monitor side or in the GPU display engine, making “modes” something of a -- relic\/compatibility construct). ----- __PROPOSED RESOLUTION__: Expose both. Display info structures will--- expose a set of predefined modes, as well as any attributes necessary to--- construct a customized mode.+-- __PROPOSED RESOLUTION__: Expose both. Display information structures+-- will expose a set of predefined modes, as well as any attributes+-- necessary to construct a customized mode. -- -- 6) Is it fine if we return the display and display mode handles in the -- structure used to query their properties?@@ -204,12 +204,11 @@ -- __PROPOSED RESOLUTION__: Require specifying a plane explicitly. -- -- 9) Should displays have an associated window system display, such as an--- @HDC@ or 'Vulkan.Extensions.VK_KHR_xlib_surface.Display'*?+-- @HDC@ or @Display*@? -- -- __PROPOSED RESOLUTION__: No. Displays are independent of any windowing--- system in use on the system. Further, neither @HDC@ nor--- 'Vulkan.Extensions.VK_KHR_xlib_surface.Display'* refer to a physical--- display object.+-- system in use on the system. Further, neither @HDC@ nor @Display*@ refer+-- to a physical display object. -- -- 10) Are displays queried from a physical GPU or from a device instance? --@@ -312,7 +311,7 @@ -- --     -   Added functions to query count of display, mode and overlay. -----     -   Added native display handle, which is maybe needed on some+--     -   Added native display handle, which may be needed on some --         platforms to create a native Window. -- -- -   Revision 4, 2015-03-18 (Norbert Nopper)@@ -320,7 +319,7 @@ --     -   Removed primary and virtualPostion members (see comment of James --         Jones in Bugzilla). -----     -   Added native overlay handle to info structure.+--     -   Added native overlay handle to information structure. -- --     -   Replaced , with ; in struct. --@@ -328,7 +327,7 @@ -- --     -   Added WSI extension suffix to all items. -----     -   Made the whole API more \"Vulkanish\".+--     -   Made the whole API more “Vulkanish”. -- --     -   Replaced all functions with a single vkGetDisplayInfoKHR --         function to better match the rest of the API.@@ -340,8 +339,8 @@ --     -   Renamed *Info structures to *Properties. -- --     -   Removed overlayIndex field from VkOverlayProperties as there is---         an implicit index already as a result of moving to a---         \"Vulkanish\" API.+--         an implicit index already as a result of moving to a “Vulkanish”+--         API. -- --     -   Displays are not get through device, but through physical GPU to --         match the rest of the Vulkan API. Also this is something ISVs@@ -392,14 +391,14 @@ --         swapchain specifications and the latest Vulkan API. -- --     -   Address overlay planes by their index rather than an object---         handle and refer to them as \"planes\" rather than \"overlays\"---         to make it slightly clearer that even a display with no---         \"overlays\" still has at least one base \"plane\" that images---         can be displayed on.+--         handle and refer to them as “planes” rather than “overlays” to+--         make it slightly clearer that even a display with no “overlays”+--         still has at least one base “plane” that images can be displayed+--         on. -- --     -   Updated most of the issues. -----     -   Added an \"extension type\" section to the specification header.+--     -   Added an “extension type” section to the specification header. -- --     -   Re-used the VK_EXT_KHR_surface surface transform enumerations --         rather than redefining them here.@@ -412,7 +411,7 @@ --         functions, etc. This makes it compliant with the proposed --         standard for Vulkan extensions. -----     -   Switched from \"revision\" to \"version\", including use of the+--     -   Switched from “revision” to “version”, including use of the --         VK_MAKE_VERSION macro in the header file. -- -- -   Revision 14, 2015-09-01 (James Jones)@@ -443,7 +442,7 @@ -- --     -   Removed detailed mode timing data. It was agreed that the mode --         extents and refresh rate are sufficient for current use cases.---         Other information could be added back2 in as an extension if it+--         Other information could be added back in as an extension if it --         is needed in the future. -- --     -   Added support for smart\/persistent\/buffered display devices.@@ -477,7 +476,7 @@ -- -- -   Revision 22, 2015-12-18 (James Jones) -----     -   Added missing \"planeIndex\" parameter to+--     -   Added missing “planeIndex” parameter to --         vkGetDisplayPlaneSupportedDisplaysKHR() -- -- -   Revision 23, 2017-03-13 (James Jones)@@ -660,11 +659,9 @@ -- variable is overwritten with the number of structures actually written -- to @pProperties@. If the value of @pPropertyCount@ is less than the -- number of display devices for @physicalDevice@, at most @pPropertyCount@--- structures will be written. If @pPropertyCount@ is smaller than the--- number of display devices available for @physicalDevice@,--- '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.+-- structures will be written, and 'Vulkan.Core10.Enums.Result.INCOMPLETE'+-- will be returned instead of 'Vulkan.Core10.Enums.Result.SUCCESS', to+-- indicate that not all the available properties were returned. -- -- == Valid Usage (Implicit) --@@ -816,12 +813,11 @@ -- set by the user to the number of elements in the @pDisplays@ array, and -- on return the variable is overwritten with the number of handles -- actually written to @pDisplays@. If the value of @pDisplayCount@ is less--- than the number of display planes for @physicalDevice@, at most--- @pDisplayCount@ handles will be written. If @pDisplayCount@ is smaller--- than the number of displays usable with the specified @planeIndex@ for--- @physicalDevice@, '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.+-- than the number of usable display-plane pairs for @physicalDevice@, at+-- most @pDisplayCount@ handles will be written, and+-- 'Vulkan.Core10.Enums.Result.INCOMPLETE' will be returned instead of+-- 'Vulkan.Core10.Enums.Result.SUCCESS', to indicate that not all the+-- available pairs were returned. -- -- == Valid Usage --@@ -907,11 +903,10 @@ -- and on return the variable is overwritten with the number of structures -- actually written to @pProperties@. If the value of @pPropertyCount@ is -- less than the number of display modes for @physicalDevice@, at most--- @pPropertyCount@ structures will be written. If @pPropertyCount@ is--- smaller than the number of display modes available on the specified--- @display@ for @physicalDevice@, '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.+-- @pPropertyCount@ structures will be written, and+-- 'Vulkan.Core10.Enums.Result.INCOMPLETE' will be returned instead of+-- 'Vulkan.Core10.Enums.Result.SUCCESS', to indicate that not all the+-- available display modes were returned. -- -- == Valid Usage (Implicit) --@@ -1039,8 +1034,8 @@                         PhysicalDevice                      -> -- | @display@ is the display to create an additional mode for.                         DisplayKHR-                     -> -- | @pCreateInfo@ is a 'DisplayModeCreateInfoKHR' structure describing the-                        -- new mode to create.+                     -> -- | @pCreateInfo@ is a pointer to a 'DisplayModeCreateInfoKHR' structure+                        -- describing the new mode to create.                         DisplayModeCreateInfoKHR                      -> -- | @pAllocator@ is the allocator used for host memory allocated for the                         -- display mode object when there is no more specific allocator available@@ -1109,7 +1104,8 @@ -- 'DisplayPlaneCapabilitiesKHR', 'Vulkan.Core10.Handles.PhysicalDevice' getDisplayPlaneCapabilitiesKHR :: forall io                                 . (MonadIO io)-                               => -- | @physicalDevice@ is the physical device associated with @display@+                               => -- | @physicalDevice@ is the physical device associated with the display+                                  -- specified by @mode@                                   PhysicalDevice                                -> -- | @mode@ is the display mode the application intends to program when using                                   -- the specified plane. Note this parameter also implicitly specifies a@@ -1236,11 +1232,11 @@   { -- | @display@ is a handle that is used to refer to the display described     -- here. This handle will be valid for the lifetime of the Vulkan instance.     display :: DisplayKHR-  , -- | @displayName@ is a pointer to a null-terminated UTF-8 string containing-    -- the name of the display. Generally, this will be the name provided by-    -- the display’s EDID. It /can/ be @NULL@ if no suitable name is available.-    -- If not @NULL@, the memory it points to /must/ remain accessible as long-    -- as @display@ is valid.+  , -- | @displayName@ is @NULL@ or a pointer to a null-terminated UTF-8 string+    -- containing the name of the display. Generally, this will be the name+    -- provided by the display’s EDID. If @NULL@, no suitable name is+    -- available. If not @NULL@, the string pointed to /must/ remain accessible+    -- and unmodified as long as @display@ is valid.     displayName :: ByteString   , -- | @physicalDimensions@ describes the physical width and height of the     -- visible portion of the display, in millimeters.@@ -1573,16 +1569,16 @@ -- swapchain’s presentable images on the specified display plane. This is -- expressed by returning @minSrcPosition@, @maxSrcPosition@, -- @minSrcExtent@, and @maxSrcExtent@ values that indicate a range of--- possible positions and sizes /may/ be used to specify the region within--- the presentable images that source pixels will be read from when+-- possible positions and sizes which /may/ be used to specify the region+-- within the presentable images that source pixels will be read from when -- creating a swapchain on the specified display mode and plane. -- -- Vendors /may/ also support mapping the presentable images’ content to a -- subset or superset of the visible region in the specified display mode. -- This is expressed by returning @minDstPosition@, @maxDstPosition@, -- @minDstExtent@ and @maxDstExtent@ values that indicate a range of--- possible positions and sizes /may/ be used to describe the region within--- the display mode that the source pixels will be mapped to.+-- possible positions and sizes which /may/ be used to describe the region+-- within the display mode that the source pixels will be mapped to. -- -- Other vendors /may/ support only a 1-1 mapping between pixels in the -- presentable images and the display mode. This /may/ be indicated by@@ -1799,7 +1795,7 @@   , -- | @alphaMode@ is a 'DisplayPlaneAlphaFlagBitsKHR' value specifying the     -- type of alpha blending to use.     alphaMode :: DisplayPlaneAlphaFlagBitsKHR-  , -- | @imageExtent@ The size of the presentable images to use with the+  , -- | @imageExtent@ is the size of the presentable images to use with the     -- surface.     imageExtent :: Extent2D   }
src/Vulkan/Extensions/VK_KHR_display.hs-boot view
@@ -126,9 +126,9 @@ -- -- == Issues ----- 1) Which properties of a mode should be fixed in the mode info vs.--- settable in some other function when setting the mode? E.g., do we need--- to double the size of the mode pool to include both stereo and+-- 1) Which properties of a mode should be fixed in the mode information+-- vs. settable in some other function when setting the mode? E.g., do we+-- need to double the size of the mode pool to include both stereo and -- non-stereo modes? YUV and RGB scanout even if they both take RGB input -- images? BGR vs. RGB input? etc. --@@ -181,9 +181,9 @@ -- monitor side or in the GPU display engine, making “modes” something of a -- relic\/compatibility construct). ----- __PROPOSED RESOLUTION__: Expose both. Display info structures will--- expose a set of predefined modes, as well as any attributes necessary to--- construct a customized mode.+-- __PROPOSED RESOLUTION__: Expose both. Display information structures+-- will expose a set of predefined modes, as well as any attributes+-- necessary to construct a customized mode. -- -- 6) Is it fine if we return the display and display mode handles in the -- structure used to query their properties?@@ -204,12 +204,11 @@ -- __PROPOSED RESOLUTION__: Require specifying a plane explicitly. -- -- 9) Should displays have an associated window system display, such as an--- @HDC@ or 'Vulkan.Extensions.VK_KHR_xlib_surface.Display'*?+-- @HDC@ or @Display*@? -- -- __PROPOSED RESOLUTION__: No. Displays are independent of any windowing--- system in use on the system. Further, neither @HDC@ nor--- 'Vulkan.Extensions.VK_KHR_xlib_surface.Display'* refer to a physical--- display object.+-- system in use on the system. Further, neither @HDC@ nor @Display*@ refer+-- to a physical display object. -- -- 10) Are displays queried from a physical GPU or from a device instance? --@@ -312,7 +311,7 @@ -- --     -   Added functions to query count of display, mode and overlay. -----     -   Added native display handle, which is maybe needed on some+--     -   Added native display handle, which may be needed on some --         platforms to create a native Window. -- -- -   Revision 4, 2015-03-18 (Norbert Nopper)@@ -320,7 +319,7 @@ --     -   Removed primary and virtualPostion members (see comment of James --         Jones in Bugzilla). -----     -   Added native overlay handle to info structure.+--     -   Added native overlay handle to information structure. -- --     -   Replaced , with ; in struct. --@@ -328,7 +327,7 @@ -- --     -   Added WSI extension suffix to all items. -----     -   Made the whole API more \"Vulkanish\".+--     -   Made the whole API more “Vulkanish”. -- --     -   Replaced all functions with a single vkGetDisplayInfoKHR --         function to better match the rest of the API.@@ -340,8 +339,8 @@ --     -   Renamed *Info structures to *Properties. -- --     -   Removed overlayIndex field from VkOverlayProperties as there is---         an implicit index already as a result of moving to a---         \"Vulkanish\" API.+--         an implicit index already as a result of moving to a “Vulkanish”+--         API. -- --     -   Displays are not get through device, but through physical GPU to --         match the rest of the Vulkan API. Also this is something ISVs@@ -392,14 +391,14 @@ --         swapchain specifications and the latest Vulkan API. -- --     -   Address overlay planes by their index rather than an object---         handle and refer to them as \"planes\" rather than \"overlays\"---         to make it slightly clearer that even a display with no---         \"overlays\" still has at least one base \"plane\" that images---         can be displayed on.+--         handle and refer to them as “planes” rather than “overlays” to+--         make it slightly clearer that even a display with no “overlays”+--         still has at least one base “plane” that images can be displayed+--         on. -- --     -   Updated most of the issues. -----     -   Added an \"extension type\" section to the specification header.+--     -   Added an “extension type” section to the specification header. -- --     -   Re-used the VK_EXT_KHR_surface surface transform enumerations --         rather than redefining them here.@@ -412,7 +411,7 @@ --         functions, etc. This makes it compliant with the proposed --         standard for Vulkan extensions. -----     -   Switched from \"revision\" to \"version\", including use of the+--     -   Switched from “revision” to “version”, including use of the --         VK_MAKE_VERSION macro in the header file. -- -- -   Revision 14, 2015-09-01 (James Jones)@@ -443,7 +442,7 @@ -- --     -   Removed detailed mode timing data. It was agreed that the mode --         extents and refresh rate are sufficient for current use cases.---         Other information could be added back2 in as an extension if it+--         Other information could be added back in as an extension if it --         is needed in the future. -- --     -   Added support for smart\/persistent\/buffered display devices.@@ -477,7 +476,7 @@ -- -- -   Revision 22, 2015-12-18 (James Jones) -----     -   Added missing \"planeIndex\" parameter to+--     -   Added missing “planeIndex” parameter to --         vkGetDisplayPlaneSupportedDisplaysKHR() -- -- -   Revision 23, 2017-03-13 (James Jones)
src/Vulkan/Extensions/VK_KHR_display_swapchain.hs view
@@ -85,7 +85,7 @@ -- already complex enough. -- -- 2) Should the @srcRect@ and @dstRect@ parameters be specified as part of--- the present command, or at swapchain creation time?+-- the presentation command, or at swapchain creation time? -- -- __RESOLVED__: As part of the presentation command. This allows moving -- and scaling the image on the screen without the need to respecify the@@ -149,7 +149,7 @@ --         functions, etc. This makes it compliant with the proposed --         standard for Vulkan extensions. -----     -   Switched from \"revision\" to \"version\", including use of the+--     -   Switched from “revision” to “version”, including use of the --         VK_MAKE_VERSION macro in the header file. -- -- -   Revision 3, 2015-09-01 (James Jones)@@ -434,8 +434,9 @@ --     'Vulkan.Extensions.VK_KHR_display.DisplayPropertiesKHR' structure --     returned by --     'Vulkan.Extensions.VK_KHR_display.getPhysicalDeviceDisplayPropertiesKHR'---     for the display the present operation targets then @persistent@---     /must/ be 'Vulkan.Core10.FundamentalTypes.FALSE'+--     for the display the present operation targets is+--     'Vulkan.Core10.FundamentalTypes.FALSE', then @persistent@ /must/ be+--     'Vulkan.Core10.FundamentalTypes.FALSE' -- -- == Valid Usage (Implicit) --@@ -456,13 +457,13 @@   , -- | @dstRect@ is a rectangular region within the visible region of the     -- swapchain’s display mode. If 'DisplayPresentInfoKHR' is not specified,     -- this region will be assumed to be the entire visible region of the-    -- visible region of the swapchain’s mode. If the specified rectangle is a-    -- subset of the display mode’s visible region, content from display planes-    -- below the swapchain’s plane will be visible outside the rectangle. If-    -- there are no planes below the swapchain’s, the area outside the-    -- specified rectangle will be black. If portions of the specified-    -- rectangle are outside of the display’s visible region, pixels mapping-    -- only to those portions of the rectangle will be discarded.+    -- swapchain’s mode. If the specified rectangle is a subset of the display+    -- mode’s visible region, content from display planes below the swapchain’s+    -- plane will be visible outside the rectangle. If there are no planes+    -- below the swapchain’s, the area outside the specified rectangle will be+    -- black. If portions of the specified rectangle are outside of the+    -- display’s visible region, pixels mapping only to those portions of the+    -- rectangle will be discarded.     dstRect :: Rect2D   , -- | @persistent@: If this is 'Vulkan.Core10.FundamentalTypes.TRUE', the     -- display engine will enable buffered mode on displays that support it.
src/Vulkan/Extensions/VK_KHR_display_swapchain.hs-boot view
@@ -85,7 +85,7 @@ -- already complex enough. -- -- 2) Should the @srcRect@ and @dstRect@ parameters be specified as part of--- the present command, or at swapchain creation time?+-- the presentation command, or at swapchain creation time? -- -- __RESOLVED__: As part of the presentation command. This allows moving -- and scaling the image on the screen without the need to respecify the@@ -149,7 +149,7 @@ --         functions, etc. This makes it compliant with the proposed --         standard for Vulkan extensions. -----     -   Switched from \"revision\" to \"version\", including use of the+--     -   Switched from “revision” to “version”, including use of the --         VK_MAKE_VERSION macro in the header file. -- -- -   Revision 3, 2015-09-01 (James Jones)
src/Vulkan/Extensions/VK_KHR_draw_indirect_count.hs view
@@ -60,12 +60,12 @@ -- == Description -- -- This extension is based off the @VK_AMD_draw_indirect_count@ extension.--- This extension allows an application to source the number of draw calls--- for indirect draw calls from a buffer.+-- This extension allows an application to source the number of draws for+-- indirect draw calls from a buffer. -- -- Applications might want to do culling on the GPU via a compute shader--- prior to the draw. This enables the application to generate arbitrary--- amounts of draw commands and execute them without host intervention.+-- prior to drawing. This enables the application to generate an arbitrary+-- number of drawing commands and execute them without host intervention. -- -- == Promotion to Vulkan 1.2 --
src/Vulkan/Extensions/VK_KHR_external_fence_fd.hs view
@@ -389,7 +389,9 @@     -- 'Vulkan.Core11.Enums.FenceImportFlagBits.FenceImportFlagBits' specifying     -- additional parameters for the fence payload import operation.     flags :: FenceImportFlags-  , -- | @handleType@ specifies the type of @fd@.+  , -- | @handleType@ is a+    -- 'Vulkan.Core11.Enums.ExternalFenceHandleTypeFlagBits.ExternalFenceHandleTypeFlagBits'+    -- value specifying the type of @fd@.     handleType :: ExternalFenceHandleTypeFlagBits   , -- | @fd@ is the external handle to import.     fd :: Int32@@ -501,7 +503,9 @@ data FenceGetFdInfoKHR = FenceGetFdInfoKHR   { -- | @fence@ is the fence from which state will be exported.     fence :: Fence-  , -- | @handleType@ is the type of handle requested.+  , -- | @handleType@ is a+    -- 'Vulkan.Core11.Enums.ExternalFenceHandleTypeFlagBits.ExternalFenceHandleTypeFlagBits'+    -- value specifying the type of handle requested.     handleType :: ExternalFenceHandleTypeFlagBits   }   deriving (Typeable, Eq)
src/Vulkan/Extensions/VK_KHR_external_fence_win32.hs view
@@ -401,12 +401,14 @@     -- 'Vulkan.Core11.Enums.FenceImportFlagBits.FenceImportFlagBits' specifying     -- additional parameters for the fence payload import operation.     flags :: FenceImportFlags-  , -- | @handleType@ specifies the type of @handle@.+  , -- | @handleType@ is a+    -- 'Vulkan.Core11.Enums.ExternalFenceHandleTypeFlagBits.ExternalFenceHandleTypeFlagBits'+    -- value specifying the type of @handle@.     handleType :: ExternalFenceHandleTypeFlagBits-  , -- | @handle@ is the external handle to import, or @NULL@.+  , -- | @handle@ is @NULL@ or the external handle to import.     handle :: HANDLE-  , -- | @name@ is a null-terminated UTF-16 string naming the underlying-    -- synchronization primitive to import, or @NULL@.+  , -- | @name@ is @NULL@ or a null-terminated UTF-16 string naming the+    -- underlying synchronization primitive to import.     name :: LPCWSTR   }   deriving (Typeable, Eq)@@ -635,7 +637,9 @@ data FenceGetWin32HandleInfoKHR = FenceGetWin32HandleInfoKHR   { -- | @fence@ is the fence from which state will be exported.     fence :: Fence-  , -- | @handleType@ is the type of handle requested.+  , -- | @handleType@ is a+    -- 'Vulkan.Core11.Enums.ExternalFenceHandleTypeFlagBits.ExternalFenceHandleTypeFlagBits'+    -- value specifying the type of handle requested.     handleType :: ExternalFenceHandleTypeFlagBits   }   deriving (Typeable, Eq)
src/Vulkan/Extensions/VK_KHR_external_memory.hs view
@@ -174,9 +174,9 @@ -- receive it from another instance or API? -- -- __RESOLVED__: Yes. Some implementations need to perform additional cache--- management when transitioning memory between address spaces, and other--- APIs, instances, or processes may operate in a separate address space.--- Options for defining this transition include:+-- management when transitioning memory between address spaces and other+-- APIs, instances, or processes which may operate in a separate address+-- space. Options for defining this transition include: -- -- -   A new structure that can be added to the @pNext@ list in --     'Vulkan.Core10.OtherTypes.MemoryBarrier',@@ -212,7 +212,7 @@ -- external→internal barrier. This may not be a problem in practice, but -- seems like the wrong scope. Another downside of -- 'Vulkan.Core10.Enums.DependencyFlagBits.DependencyFlags' is that it--- lacks inherent directionality: There are not @src@ and @dst@ variants of+-- lacks inherent directionality: there are no @src@ and @dst@ variants of -- it in the barrier or dependency description semantics, so two bits might -- need to be added to describe both internal→external and -- external→internal transitions. Transitioning a resource to a special@@ -237,7 +237,7 @@ -- -- __RESOLVED__: Some vendors claim this is necessary on their -- implementations, but it was determined that the security risks of--- allowing opaque meta data to be passed from applications to the driver+-- allowing opaque metadata to be passed from applications to the driver -- were too high. Therefore, implementations which require metadata will -- need to associate it with the objects represented by the external -- handles, and rely on the dedicated allocation mechanism to associate the@@ -256,29 +256,30 @@ -- containing brief descriptions of the layout of bits within that memory. -- -- Because memory object-based sharing is aligned with the overall Vulkan--- API design, it exposes the full power of Vulkan on external objects.--- External memory can be used as backing for sparse images, for example,--- whereas such usage would be awkward at best with a sharing mechanism--- based on higher-level primitives such as images. Further, aligning the--- mechanism with the API in this way provides some hope of trivial--- compatibility with future API enhancements. If new objects backed by--- memory objects are added to the API, they too can be used across--- processes with minimal additions to the base external memory APIs.+-- API design, it enables the full range of Vulkan capabilities with+-- external objects. External memory can be used as backing for sparse+-- images, for example, whereas such usage would be awkward at best with a+-- sharing mechanism based on higher-level primitives such as images.+-- Further, aligning the mechanism with the API in this way provides some+-- hope of trivial compatibility with future API enhancements. If new+-- objects backed by memory objects are added to the API, they too can be+-- used across processes with minimal additions to the base external memory+-- APIs. -- -- Earlier APIs implemented interop at a higher level, and this -- necessitated entirely separate sharing APIs for images and buffers. To -- co-exist and interoperate with those APIs, the Vulkan external sharing -- mechanism must accommodate their model. However, if it can be agreed -- that memory-based sharing is the more desirable and forward-looking--- design, legacy interoperation considerations can be considered another--- reason to favor memory-based sharing: While native and legacy driver+-- design, legacy interoperation constraints can be considered another+-- reason to favor memory-based sharing: while native and legacy driver -- primitives that may be used to implement sharing may not be as low-level -- as the API here suggests, raw memory is still the least common -- denominator among the types. Image-based sharing can be cleanly derived -- from a set of base memory- object sharing APIs with minimal effort, -- whereas image-based sharing does not generalize well to buffer or -- raw-memory sharing. Therefore, following the general Vulkan design--- principle of minimalism, it is better to expose even interopability with+-- principle of minimalism, it is better to expose interopability with -- image-based native and external primitives via the memory sharing API, -- and place sufficient limits on their usage to ensure they can be used -- only as backing for equivalent Vulkan images. This provides a consistent@@ -310,7 +311,7 @@ -- not be visible to applications importing an exported memory object. -- -- 9) Must implementations validate external handles the application--- provides as input to memory import operations?+-- provides as inputs to memory import operations? -- -- __RESOLVED__: Implementations must return an error to the application if -- the provided memory handle cannot be used to complete the requested
src/Vulkan/Extensions/VK_KHR_external_memory_capabilities.hs view
@@ -212,9 +212,9 @@ -- API are added. To allow correlating with Direct3D devices, a device LUID -- is added that corresponds to a DXGI adapter LUID. A driver ID is not -- needed for Direct3D because mismatched driver component versions are not--- a currently supported configuration on the Windows OS. Should support--- for such configurations be introduced at the OS level, further Vulkan--- extensions would be needed to correlate userspace component builds.+-- currently supported on the Windows OS. Should support for such+-- configurations be introduced at the OS level, further Vulkan extensions+-- would be needed to correlate userspace component builds. -- -- == Version History --
src/Vulkan/Extensions/VK_KHR_external_memory_fd.hs view
@@ -289,7 +289,9 @@                             -- #VUID-vkGetMemoryFdPropertiesKHR-device-parameter# @device@ /must/ be a                             -- valid 'Vulkan.Core10.Handles.Device' handle                             Device-                         -> -- | @handleType@ is the type of the handle @fd@.+                         -> -- | @handleType@ is a+                            -- 'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.ExternalMemoryHandleTypeFlagBits'+                            -- value specifying the type of the handle @fd@.                             --                             -- #VUID-vkGetMemoryFdPropertiesKHR-handleType-00674# @handleType@ /must/                             -- not be@@ -348,10 +350,13 @@ -- -- -   #VUID-VkImportMemoryFdInfoKHR-handleType-00669# If @handleType@ is --     not @0@, it /must/ be---     'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT'.+--     'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT'+--     or+--     'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT' -- -- -   #VUID-VkImportMemoryFdInfoKHR-handleType-00670# If @handleType@ is---     not @0@, @fd@ /must/ be a valid POSIX file descriptor handle.+--     not @0@, @fd@ /must/ be a valid handle of the type specified by+--     @handleType@ -- -- -   #VUID-VkImportMemoryFdInfoKHR-fd-01746# The memory represented by --     @fd@ /must/ have been created from a physical device and driver that@@ -377,7 +382,9 @@ -- 'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.ExternalMemoryHandleTypeFlagBits', -- 'Vulkan.Core10.Enums.StructureType.StructureType' data ImportMemoryFdInfoKHR = ImportMemoryFdInfoKHR-  { -- | @handleType@ specifies the handle type of @fd@.+  { -- | @handleType@ is a+    -- 'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.ExternalMemoryHandleTypeFlagBits'+    -- value specifying the handle type of @fd@.     handleType :: ExternalMemoryHandleTypeFlagBits   , -- | @fd@ is the external handle to import.     fd :: Int32@@ -487,7 +494,7 @@ -- Note -- -- The size of the exported file /may/ be larger than the size requested by--- 'Vulkan.Core10.Memory.MemoryAllocateInfo'::allocationSize. If+-- 'Vulkan.Core10.Memory.MemoryAllocateInfo'::@allocationSize@. If -- @handleType@ is -- 'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT', -- then the application /can/ query the file’s actual size with@@ -506,7 +513,9 @@     -- #VUID-VkMemoryGetFdInfoKHR-memory-parameter# @memory@ /must/ be a valid     -- 'Vulkan.Core10.Handles.DeviceMemory' handle     memory :: DeviceMemory-  , -- | @handleType@ is the type of handle requested.+  , -- | @handleType@ is a+    -- 'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.ExternalMemoryHandleTypeFlagBits'+    -- value specifying the type of handle requested.     --     -- #VUID-VkMemoryGetFdInfoKHR-handleType-00671# @handleType@ /must/ have     -- been included in@@ -514,7 +523,9 @@     -- when @memory@ was created     --     -- #VUID-VkMemoryGetFdInfoKHR-handleType-00672# @handleType@ /must/ be-    -- defined as a POSIX file descriptor handle+    -- 'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT'+    -- or+    -- 'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT'     --     -- #VUID-VkMemoryGetFdInfoKHR-handleType-parameter# @handleType@ /must/ be     -- a valid
src/Vulkan/Extensions/VK_KHR_external_memory_win32.hs view
@@ -310,7 +310,9 @@                                      -- #VUID-vkGetMemoryWin32HandlePropertiesKHR-device-parameter# @device@                                      -- /must/ be a valid 'Vulkan.Core10.Handles.Device' handle                                      Device-                                  -> -- | @handleType@ is the type of the handle @handle@.+                                  -> -- | @handleType@ is a+                                     -- 'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.ExternalMemoryHandleTypeFlagBits'+                                     -- value specifying the type of the handle @handle@.                                      --                                      -- #VUID-vkGetMemoryWin32HandlePropertiesKHR-handleType-00666# @handleType@                                      -- /must/ not be one of the handle types defined as opaque@@ -424,12 +426,14 @@ -- 'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.ExternalMemoryHandleTypeFlagBits', -- 'Vulkan.Core10.Enums.StructureType.StructureType' data ImportMemoryWin32HandleInfoKHR = ImportMemoryWin32HandleInfoKHR-  { -- | @handleType@ specifies the type of @handle@ or @name@.+  { -- | @handleType@ is a+    -- 'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.ExternalMemoryHandleTypeFlagBits'+    -- value specifying the type of @handle@ or @name@.     handleType :: ExternalMemoryHandleTypeFlagBits-  , -- | @handle@ is the external handle to import, or @NULL@.+  , -- | @handle@ is @NULL@ or the external handle to import.     handle :: HANDLE-  , -- | @name@ is a null-terminated UTF-16 string naming the payload to import,-    -- or @NULL@.+  , -- | @name@ is @NULL@ or a null-terminated UTF-16 string naming the payload+    -- to import.     name :: LPCWSTR   }   deriving (Typeable, Eq)@@ -498,23 +502,25 @@ -- -- For handles of the following types: ----- 'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT'--- 'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT'+-- -   'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT' --+-- -   'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT'+-- -- The implementation /must/ ensure the access rights allow read and write -- access to the memory. -- -- For handles of the following types: ----- 'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT'--- 'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT'+-- -   'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT' --+-- -   'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT'+-- -- The access rights /must/ be: ----- @GENERIC_ALL@+-- -   @GENERIC_ALL@ ----- [1]---     <https://docs.microsoft.com/en-us/windows/win32/sync/synchronization-object-security-and-access-rights>+--     [1]+--         <https://docs.microsoft.com/en-us/windows/win32/sync/synchronization-object-security-and-access-rights> -- -- == Valid Usage --@@ -703,7 +709,9 @@ data MemoryGetWin32HandleInfoKHR = MemoryGetWin32HandleInfoKHR   { -- | @memory@ is the memory object from which the handle will be exported.     memory :: DeviceMemory-  , -- | @handleType@ is the type of handle requested.+  , -- | @handleType@ is a+    -- 'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.ExternalMemoryHandleTypeFlagBits'+    -- value specifying the type of handle requested.     handleType :: ExternalMemoryHandleTypeFlagBits   }   deriving (Typeable, Eq)
src/Vulkan/Extensions/VK_KHR_external_semaphore_fd.hs view
@@ -416,7 +416,9 @@     -- specifying additional parameters for the semaphore payload import     -- operation.     flags :: SemaphoreImportFlags-  , -- | @handleType@ specifies the type of @fd@.+  , -- | @handleType@ is a+    -- 'Vulkan.Core11.Enums.ExternalSemaphoreHandleTypeFlagBits.ExternalSemaphoreHandleTypeFlagBits'+    -- value specifying the type of @fd@.     handleType :: ExternalSemaphoreHandleTypeFlagBits   , -- | @fd@ is the external handle to import.     fd :: Int32@@ -547,7 +549,9 @@ data SemaphoreGetFdInfoKHR = SemaphoreGetFdInfoKHR   { -- | @semaphore@ is the semaphore from which state will be exported.     semaphore :: Semaphore-  , -- | @handleType@ is the type of handle requested.+  , -- | @handleType@ is a+    -- 'Vulkan.Core11.Enums.ExternalSemaphoreHandleTypeFlagBits.ExternalSemaphoreHandleTypeFlagBits'+    -- value specifying the type of handle requested.     handleType :: ExternalSemaphoreHandleTypeFlagBits   }   deriving (Typeable, Eq)
src/Vulkan/Extensions/VK_KHR_external_semaphore_win32.hs view
@@ -475,12 +475,14 @@     -- specifying additional parameters for the semaphore payload import     -- operation.     flags :: SemaphoreImportFlags-  , -- | @handleType@ specifies the type of @handle@.+  , -- | @handleType@ is a+    -- 'Vulkan.Core11.Enums.ExternalSemaphoreHandleTypeFlagBits.ExternalSemaphoreHandleTypeFlagBits'+    -- value specifying the type of @handle@.     handleType :: ExternalSemaphoreHandleTypeFlagBits-  , -- | @handle@ is the external handle to import, or @NULL@.+  , -- | @handle@ is @NULL@ or the external handle to import.     handle :: HANDLE-  , -- | @name@ is a null-terminated UTF-16 string naming the underlying-    -- synchronization primitive to import, or @NULL@.+  , -- | @name@ is @NULL@ or a null-terminated UTF-16 string naming the+    -- underlying synchronization primitive to import.     name :: LPCWSTR   }   deriving (Typeable, Eq)@@ -693,13 +695,13 @@ --     @waitSemaphoreValuesCount@ /must/ be the same value as --     'Vulkan.Core10.Queue.SubmitInfo'::@waitSemaphoreCount@, where --     'Vulkan.Core10.Queue.SubmitInfo' is in the @pNext@ chain of this---     'D3D12FenceSubmitInfoKHR' structure+--     'D3D12FenceSubmitInfoKHR' structure. -- -- -   #VUID-VkD3D12FenceSubmitInfoKHR-signalSemaphoreValuesCount-00080# --     @signalSemaphoreValuesCount@ /must/ be the same value as --     'Vulkan.Core10.Queue.SubmitInfo'::@signalSemaphoreCount@, where --     'Vulkan.Core10.Queue.SubmitInfo' is in the @pNext@ chain of this---     'D3D12FenceSubmitInfoKHR' structure+--     'D3D12FenceSubmitInfoKHR' structure. -- -- == Valid Usage (Implicit) --@@ -881,7 +883,9 @@ data SemaphoreGetWin32HandleInfoKHR = SemaphoreGetWin32HandleInfoKHR   { -- | @semaphore@ is the semaphore from which state will be exported.     semaphore :: Semaphore-  , -- | @handleType@ is the type of handle requested.+  , -- | @handleType@ is a+    -- 'Vulkan.Core11.Enums.ExternalSemaphoreHandleTypeFlagBits.ExternalSemaphoreHandleTypeFlagBits'+    -- value specifying the type of handle requested.     handleType :: ExternalSemaphoreHandleTypeFlagBits   }   deriving (Typeable, Eq)
src/Vulkan/Extensions/VK_KHR_fragment_shading_rate.hs view
@@ -138,7 +138,7 @@ -- -- -   Extending 'Vulkan.Core10.Enums.AccessFlagBits.AccessFlagBits': -----     -   'ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR'+--     -   'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR' -- -- -   Extending 'Vulkan.Core10.Enums.DynamicState.DynamicState': --@@ -151,17 +151,17 @@ -- -- -   Extending 'Vulkan.Core10.Enums.ImageLayout.ImageLayout': -----     -   'IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR'+--     -   'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR' -- -- -   Extending --     'Vulkan.Core10.Enums.ImageUsageFlagBits.ImageUsageFlagBits': -----     -   'IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'+--     -   'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR' -- -- -   Extending --     'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits': -----     -   'PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'+--     -   'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR' -- -- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType': --@@ -201,10 +201,6 @@ -- the generator scripts, not directly. module Vulkan.Extensions.VK_KHR_fragment_shading_rate  ( cmdSetFragmentShadingRateKHR                                                        , getPhysicalDeviceFragmentShadingRatesKHR-                                                       , pattern IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR-                                                       , pattern ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR-                                                       , pattern IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR-                                                       , pattern PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR                                                        , FragmentShadingRateAttachmentInfoKHR(..)                                                        , PipelineFragmentShadingRateStateCreateInfoKHR(..)                                                        , PhysicalDeviceFragmentShadingRateFeaturesKHR(..)@@ -233,6 +229,7 @@ import Foreign.Marshal.Alloc (allocaBytesAligned) import Foreign.Marshal.Alloc (callocBytes) import Foreign.Marshal.Alloc (free)+import Foreign.Marshal.Utils (maybePeek) import GHC.Base (when) import GHC.IO (throwIO) import GHC.Ptr (castPtr)@@ -292,16 +289,8 @@ import Vulkan.Core10.Enums.SampleCountFlagBits (SampleCountFlagBits) import Vulkan.Core10.Enums.SampleCountFlagBits (SampleCountFlags) import Vulkan.CStruct.Extends (SomeStruct)-import Vulkan.CStruct.Extends (SomeStruct(..)) import Vulkan.Core10.Enums.StructureType (StructureType) import Vulkan.Exception (VulkanException(..))-import Vulkan.Core10.Enums.AccessFlagBits (AccessFlags)-import Vulkan.Core10.Enums.AccessFlagBits (AccessFlagBits(ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV))-import Vulkan.Core10.Enums.ImageLayout (ImageLayout(IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV))-import Vulkan.Core10.Enums.ImageUsageFlagBits (ImageUsageFlags)-import Vulkan.Core10.Enums.ImageUsageFlagBits (ImageUsageFlagBits(IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV))-import Vulkan.Core10.Enums.PipelineStageFlagBits (PipelineStageFlags)-import Vulkan.Core10.Enums.PipelineStageFlagBits (PipelineStageFlagBits(PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV)) import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR)) import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR)) import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR))@@ -323,12 +312,12 @@ -- -   #VUID-vkCmdSetFragmentShadingRateKHR-pipelineFragmentShadingRate-04507# --     If --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-pipelineFragmentShadingRate pipelineFragmentShadingRate>---     is not enabled, @pFragmentSize@->@width@ /must/ be @1@+--     is not enabled, @pFragmentSize->width@ /must/ be @1@ -- -- -   #VUID-vkCmdSetFragmentShadingRateKHR-pipelineFragmentShadingRate-04508# --     If --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-pipelineFragmentShadingRate pipelineFragmentShadingRate>---     is not enabled, @pFragmentSize@->@height@ /must/ be @1@+--     is not enabled, @pFragmentSize->height@ /must/ be @1@ -- -- -   #VUID-vkCmdSetFragmentShadingRateKHR-pipelineFragmentShadingRate-04509# --     One of@@ -358,22 +347,22 @@ --     'FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR' -- -- -   #VUID-vkCmdSetFragmentShadingRateKHR-pFragmentSize-04513#---     @pFragmentSize@->@width@ /must/ be greater than or equal to @1@+--     @pFragmentSize->width@ /must/ be greater than or equal to @1@ -- -- -   #VUID-vkCmdSetFragmentShadingRateKHR-pFragmentSize-04514#---     @pFragmentSize@->@height@ /must/ be greater than or equal to @1@+--     @pFragmentSize->height@ /must/ be greater than or equal to @1@ -- -- -   #VUID-vkCmdSetFragmentShadingRateKHR-pFragmentSize-04515#---     @pFragmentSize@->@width@ /must/ be a power-of-two value+--     @pFragmentSize->width@ /must/ be a power-of-two value -- -- -   #VUID-vkCmdSetFragmentShadingRateKHR-pFragmentSize-04516#---     @pFragmentSize@->@height@ /must/ be a power-of-two value+--     @pFragmentSize->height@ /must/ be a power-of-two value -- -- -   #VUID-vkCmdSetFragmentShadingRateKHR-pFragmentSize-04517#---     @pFragmentSize@->@width@ /must/ be less than or equal to @4@+--     @pFragmentSize->width@ /must/ be less than or equal to @4@ -- -- -   #VUID-vkCmdSetFragmentShadingRateKHR-pFragmentSize-04518#---     @pFragmentSize@->@height@ /must/ be less than or equal to @4@+--     @pFragmentSize->height@ /must/ be less than or equal to @4@ -- -- == Valid Usage (Implicit) --@@ -426,7 +415,7 @@                                 -- recorded.                                 CommandBuffer                              -> -- | @pFragmentSize@ specifies the pipeline fragment shading rate for-                                -- subsequent draw commands.+                                -- subsequent drawing commands.                                 ("fragmentSize" ::: Extent2D)                              -> -- | @combinerOps@ specifies a 'FragmentShadingRateCombinerOpKHR' determining                                 -- how the@@ -538,8 +527,27 @@ -- -- Including the {1,1} fragment size is done for completeness; it has no -- actual effect on the support of rendering without setting the fragment--- size. All sample counts are supported for this rate.+-- size. All sample counts and render pass transforms are supported for+-- this rate. --+-- The returned set of fragment shading rates /must/ be returned in the+-- native (rotated) coordinate system. For rasterization using render pass+-- @transform@ not equal to+-- 'Vulkan.Extensions.VK_KHR_surface.SURFACE_TRANSFORM_IDENTITY_BIT_KHR',+-- the application /must/ transform the returned fragment shading rates+-- into the current (unrotated) coordinate system to get the supported+-- rates for that transform.+--+-- Note+--+-- For example, consider an implementation returning support for 4x2, but+-- not 2x4 in the set of supported fragment shading rates. This means that+-- for transforms+-- 'Vulkan.Extensions.VK_KHR_surface.SURFACE_TRANSFORM_ROTATE_90_BIT_KHR'+-- and+-- 'Vulkan.Extensions.VK_KHR_surface.SURFACE_TRANSFORM_ROTATE_270_BIT_KHR',+-- 2x4 is a supported rate, but 4x2 is an unsupported rate.+-- -- == Valid Usage (Implicit) -- -- -   #VUID-vkGetPhysicalDeviceFragmentShadingRatesKHR-physicalDevice-parameter#@@ -597,28 +605,12 @@   pure $ ((r'), pFragmentShadingRates')  --- No documentation found for TopLevel "VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR"-pattern IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR = IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV----- No documentation found for TopLevel "VK_ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR"-pattern ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR = ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV----- No documentation found for TopLevel "VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR"-pattern IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV----- No documentation found for TopLevel "VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR"-pattern PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV-- -- | VkFragmentShadingRateAttachmentInfoKHR - Structure specifying a fragment -- shading rate attachment for a subpass -- -- = Description ----- If no shading rate attachment is specified, or if this structure isn’t+-- If no shading rate attachment is specified, or if this structure is not -- specified, the implementation behaves as if a valid shading rate -- attachment was specified with all texels specifying a single pixel per -- fragment.@@ -631,7 +623,7 @@ --     'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED', its @layout@ member --     /must/ be equal to --     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL' or---     'IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR'+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR' -- -- -   #VUID-VkFragmentShadingRateAttachmentInfoKHR-pFragmentShadingRateAttachment-04525# --     If @pFragmentShadingRateAttachment@ is not @NULL@ and its@@ -704,6 +696,7 @@ --     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR' -- -- -   #VUID-VkFragmentShadingRateAttachmentInfoKHR-pFragmentShadingRateAttachment-parameter#+--     If @pFragmentShadingRateAttachment@ is not @NULL@, --     @pFragmentShadingRateAttachment@ /must/ be a valid pointer to a --     valid --     'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.AttachmentReference2'@@ -715,11 +708,11 @@ -- 'Vulkan.Core10.FundamentalTypes.Extent2D', -- 'Vulkan.Core10.Enums.StructureType.StructureType' data FragmentShadingRateAttachmentInfoKHR = FragmentShadingRateAttachmentInfoKHR-  { -- | @pFragmentShadingRateAttachment@ is an optional-    -- 'Vulkan.Extensions.VK_KHR_create_renderpass2.AttachmentReference2KHR'+  { -- | @pFragmentShadingRateAttachment@ is @NULL@ or a pointer to a+    -- 'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.AttachmentReference2'     -- structure defining the fragment shading rate attachment for this     -- subpass.-    fragmentShadingRateAttachment :: SomeStruct AttachmentReference2+    fragmentShadingRateAttachment :: Maybe (SomeStruct AttachmentReference2)   , -- | @shadingRateAttachmentTexelSize@ specifies the size of the portion of     -- the framebuffer corresponding to each texel in     -- @pFragmentShadingRateAttachment@.@@ -736,30 +729,31 @@   pokeCStruct p FragmentShadingRateAttachmentInfoKHR{..} f = evalContT $ do     lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR)     lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)-    pFragmentShadingRateAttachment'' <- ContT @_ @_ @(Ptr (AttachmentReference2 '[])) $ \cont -> withSomeCStruct @AttachmentReference2 (fragmentShadingRateAttachment) (cont . castPtr)+    pFragmentShadingRateAttachment'' <- case (fragmentShadingRateAttachment) of+      Nothing -> pure nullPtr+      Just j -> ContT @_ @_ @(Ptr (AttachmentReference2 '[])) $ \cont -> withSomeCStruct @AttachmentReference2 (j) (cont . castPtr)     lift $ poke ((p `plusPtr` 16 :: Ptr (Ptr (AttachmentReference2 _)))) pFragmentShadingRateAttachment''     lift $ poke ((p `plusPtr` 24 :: Ptr Extent2D)) (shadingRateAttachmentTexelSize)     lift $ f   cStructSize = 32   cStructAlignment = 8-  pokeZeroCStruct p f = evalContT $ do-    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR)-    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)-    pFragmentShadingRateAttachment'' <- ContT @_ @_ @(Ptr (AttachmentReference2 '[])) $ \cont -> withSomeCStruct @AttachmentReference2 ((SomeStruct zero)) (cont . castPtr)-    lift $ poke ((p `plusPtr` 16 :: Ptr (Ptr (AttachmentReference2 _)))) pFragmentShadingRateAttachment''-    lift $ poke ((p `plusPtr` 24 :: Ptr Extent2D)) (zero)-    lift $ f+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 24 :: Ptr Extent2D)) (zero)+    f  instance FromCStruct FragmentShadingRateAttachmentInfoKHR where   peekCStruct p = do-    pFragmentShadingRateAttachment <- peekSomeCStruct . forgetExtensions =<< peek ((p `plusPtr` 16 :: Ptr (Ptr (AttachmentReference2 _))))+    pFragmentShadingRateAttachment <- peek @(Ptr (AttachmentReference2 _)) ((p `plusPtr` 16 :: Ptr (Ptr (AttachmentReference2 _))))+    pFragmentShadingRateAttachment' <- maybePeek (\j -> peekSomeCStruct (forgetExtensions (j))) pFragmentShadingRateAttachment     shadingRateAttachmentTexelSize <- peekCStruct @Extent2D ((p `plusPtr` 24 :: Ptr Extent2D))     pure $ FragmentShadingRateAttachmentInfoKHR-             pFragmentShadingRateAttachment shadingRateAttachmentTexelSize+             pFragmentShadingRateAttachment' shadingRateAttachmentTexelSize  instance Zero FragmentShadingRateAttachmentInfoKHR where   zero = FragmentShadingRateAttachmentInfoKHR-           (SomeStruct zero)+           Nothing            zero  @@ -796,7 +790,7 @@ data PipelineFragmentShadingRateStateCreateInfoKHR = PipelineFragmentShadingRateStateCreateInfoKHR   { -- | @fragmentSize@ specifies a 'Vulkan.Core10.FundamentalTypes.Extent2D'     -- structure containing the fragment size used to define the pipeline-    -- fragment shading rate for draw commands using this pipeline.+    -- fragment shading rate for drawing commands using this pipeline.     fragmentSize :: Extent2D   , -- | @combinerOps@ specifies a 'FragmentShadingRateCombinerOpKHR' value     -- determining how the@@ -866,18 +860,19 @@ -- -- = Members ----- The members of the 'PhysicalDeviceFragmentShadingRateFeaturesKHR'--- structure describe the following features:+-- This structure describes the following features: -- -- = Description -- -- If the 'PhysicalDeviceFragmentShadingRateFeaturesKHR' structure is--- included in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- it is filled with values indicating whether each feature is supported.--- 'PhysicalDeviceFragmentShadingRateFeaturesKHR' /can/ also be used in the--- @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to enable these--- features.+-- 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. 'PhysicalDeviceFragmentShadingRateFeaturesKHR' /can/ also be+-- used in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to+-- selectively enable these features. -- -- == Valid Usage (Implicit) --@@ -949,13 +944,6 @@ -- variable fragment shading rate limits that can be supported by an -- implementation ----- = Members------ The members of the 'PhysicalDeviceFragmentShadingRatePropertiesKHR'--- structure describe the following implementation-dependent properties--- related to--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-primsrast-fragment-shading-rate fragment shading rates>:--- -- = Description -- -- Note@@ -974,10 +962,16 @@ -- will not affect the correct operation of applications. -- -- If the 'PhysicalDeviceFragmentShadingRatePropertiesKHR' structure is--- included in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2',--- it is filled with the implementation-dependent limits.+-- included in the @pNext@ chain of the+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2'+-- structure passed to+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceProperties2',+-- it is filled in with each corresponding implementation-dependent+-- property. --+-- These properties are related to+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-primsrast-fragment-shading-rate fragment shading rates>.+-- -- == Valid Usage (Implicit) -- -- = See Also@@ -1043,9 +1037,9 @@     -- with multiple layers. If this value is     -- 'Vulkan.Core10.FundamentalTypes.FALSE', when creating an image view with     -- a @usage@ that includes-    -- 'IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR', @layerCount@-    -- /must/ be @1@. It /must/ be 'Vulkan.Core10.FundamentalTypes.FALSE' if-    -- the+    -- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR',+    -- @layerCount@ /must/ be @1@. It /must/ be+    -- 'Vulkan.Core10.FundamentalTypes.FALSE' if the     -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multiview multiview>     -- feature, the     -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderOutputViewportIndex shaderOutputViewportIndex>@@ -1092,9 +1086,11 @@     -- is supported. This limit is purely informational, and is not validated.     maxFragmentShadingRateCoverageSamples :: Word32   , -- | #limits-maxFragmentShadingRateRasterizationSamples#-    -- @maxFragmentShadingRateRasterizationSamples@ specifies the maximum-    -- sample rate supported when a fragment covers multiple pixels. This limit-    -- is purely informational, and is not validated.+    -- @maxFragmentShadingRateRasterizationSamples@ is a+    -- 'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlagBits' value+    -- specifying the maximum sample rate supported when a fragment covers+    -- multiple pixels. This limit is purely informational, and is not+    -- validated.     maxFragmentShadingRateRasterizationSamples :: SampleCountFlagBits   , -- | #limits-fragmentShadingRateWithShaderDepthStencilWrites#     -- @fragmentShadingRateWithShaderDepthStencilWrites@ specifies whether the@@ -1106,7 +1102,7 @@   , -- | #limits-fragmentShadingRateWithSampleMask#     -- @fragmentShadingRateWithSampleMask@ specifies whether the the     -- implementation supports setting valid bits of-    -- 'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::pSampleMask+    -- 'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@pSampleMask@     -- to @0@ for multi-pixel fragments. If this value is     -- 'Vulkan.Core10.FundamentalTypes.FALSE', zeroing valid bits in the sample     -- mask will clamp the fragment shading rate to (1,1).@@ -1366,8 +1362,8 @@ -- | 'FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_KHR' specifies a combiner -- operation of combine(Axy,Bxy) = max(Axy,Bxy). pattern FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_KHR     = FragmentShadingRateCombinerOpKHR 3--- | 'FRAGMENT_SHADING_RATE_COMBINER_OP_MUL_KHR' combiner operation of--- combine(Axy,Bxy) = Axy*Bxy.+-- | 'FRAGMENT_SHADING_RATE_COMBINER_OP_MUL_KHR' specifies a combiner+-- operation of combine(Axy,Bxy) = Axy*Bxy. pattern FRAGMENT_SHADING_RATE_COMBINER_OP_MUL_KHR     = FragmentShadingRateCombinerOpKHR 4 {-# complete FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR,              FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR,
src/Vulkan/Extensions/VK_KHR_fragment_shading_rate.hs-boot view
@@ -138,7 +138,7 @@ -- -- -   Extending 'Vulkan.Core10.Enums.AccessFlagBits.AccessFlagBits': -----     -   'ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR'+--     -   'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR' -- -- -   Extending 'Vulkan.Core10.Enums.DynamicState.DynamicState': --@@ -151,17 +151,17 @@ -- -- -   Extending 'Vulkan.Core10.Enums.ImageLayout.ImageLayout': -----     -   'IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR'+--     -   'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR' -- -- -   Extending --     'Vulkan.Core10.Enums.ImageUsageFlagBits.ImageUsageFlagBits': -----     -   'IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'+--     -   'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR' -- -- -   Extending --     'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits': -----     -   'PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'+--     -   'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR' -- -- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType': --
src/Vulkan/Extensions/VK_KHR_get_physical_device_properties2.hs view
@@ -142,14 +142,14 @@ -- >     // Get features with a hypothetical future extension. -- >     VkHypotheticalExtensionFeaturesKHR hypotheticalFeatures = -- >     {--- >         VK_STRUCTURE_TYPE_HYPOTHETICAL_FEATURES_KHR,                            // sType--- >         NULL,                                                                   // pNext+-- >         VK_STRUCTURE_TYPE_HYPOTHETICAL_FEATURES_KHR,                // sType+-- >         NULL,                                                       // pNext -- >     }; -- > -- >     VkPhysicalDeviceFeatures2KHR features = -- >     {--- >         VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2_KHR,                       // sType--- >         &hypotheticalFeatures,                                                  // pNext+-- >         VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2_KHR,           // sType+-- >         &hypotheticalFeatures,                                      // pNext -- >     }; -- > -- >     // After this call, features and hypotheticalFeatures have been filled out.@@ -160,14 +160,14 @@ -- >     // Enable some features: -- >     VkHypotheticalExtensionFeaturesKHR enabledHypotheticalFeatures = -- >     {--- >         VK_STRUCTURE_TYPE_HYPOTHETICAL_FEATURES_KHR,                            // sType--- >         NULL,                                                                   // pNext+-- >         VK_STRUCTURE_TYPE_HYPOTHETICAL_FEATURES_KHR,                // sType+-- >         NULL,                                                       // pNext -- >     }; -- > -- >     VkPhysicalDeviceFeatures2KHR enabledFeatures = -- >     {--- >         VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2_KHR,                       // sType--- >         &enabledHypotheticalFeatures,                                           // pNext+-- >         VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2_KHR,           // sType+-- >         &enabledHypotheticalFeatures,                               // pNext -- >     }; -- > -- >     enabledFeatures.features.xyz = VK_TRUE;@@ -175,11 +175,11 @@ -- > -- >     VkDeviceCreateInfo deviceCreateInfo = -- >     {--- >         VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO,                                   // sType--- >         &enabledFeatures,                                                       // pNext+-- >         VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO,                       // sType+-- >         &enabledFeatures,                                           // pNext -- >         ...--- >         NULL,                                                                   // pEnabledFeatures--- >     }+-- >         NULL,                                                       // pEnabledFeatures+-- >     }; -- > -- >     VkDevice device; -- >     vkCreateDevice(physicalDevice, &deviceCreateInfo, NULL, &device);
src/Vulkan/Extensions/VK_KHR_get_surface_capabilities2.hs view
@@ -347,11 +347,9 @@ -- return the variable is overwritten with the number of structures -- actually written to @pSurfaceFormats@. If the value of -- @pSurfaceFormatCount@ is less than the number of format tuples--- supported, at most @pSurfaceFormatCount@ structures will be written. If--- @pSurfaceFormatCount@ is smaller than the number of format tuples--- supported for the surface parameters described in @pSurfaceInfo@,+-- supported, at most @pSurfaceFormatCount@ structures will be written, and -- 'Vulkan.Core10.Enums.Result.INCOMPLETE' will be returned instead of--- 'Vulkan.Core10.Enums.Result.SUCCESS' to indicate that not all the+-- 'Vulkan.Core10.Enums.Result.SUCCESS', to indicate that not all the -- available values were returned. -- -- == Valid Usage
src/Vulkan/Extensions/VK_KHR_imageless_framebuffer.hs view
@@ -37,14 +37,14 @@ -- -- == Other Extension Metadata ----- [Last Modified Date]+-- [__Last Modified Date__] --     2018-12-14 -- -- [__Interactions and External Dependencies__] -- --     -   Promoted to Vulkan 1.2 Core ----- [Contributors]+-- [__Contributors__] -- --     -   Tobias Hector --
src/Vulkan/Extensions/VK_KHR_incremental_present.hs view
@@ -15,7 +15,7 @@ --     85 -- -- [__Revision__]---     1+--     2 -- -- [__Extension and Version Dependencies__] --@@ -127,12 +127,30 @@ -- 'Vulkan.Extensions.VK_KHR_swapchain.queuePresentKHR' must still be -- honored, including waiting for semaphores to signal. --+-- 5) When the swapchain is created with+-- 'Vulkan.Extensions.VK_KHR_swapchain.SwapchainCreateInfoKHR'::@preTransform@+-- set to a value other than+-- 'Vulkan.Extensions.VK_KHR_surface.SURFACE_TRANSFORM_IDENTITY_BIT_KHR',+-- should the rectangular region, 'RectLayerKHR', be transformed to align+-- with the @preTransform@?+--+-- __RESOLVED__: No. The rectangular region in 'RectLayerKHR' should not be+-- tranformed. As such, it may not align with the extents of the+-- swapchain’s image(s). It is the responsibility of the presentation+-- engine to transform the rectangular region. This matches the behavior of+-- the Android presentation engine, which set the precedent.+-- -- == Version History -- -- -   Revision 1, 2016-11-02 (Ian Elliott) -- --     -   Internal revisions --+-- -   Revision 2, 2021-03-18 (Ian Elliott)+--+--     -   Clarified alignment of rectangles for presentation engines that+--         support transformed swapchains.+-- -- = See Also -- -- 'PresentRegionKHR', 'PresentRegionsKHR', 'RectLayerKHR'@@ -297,7 +315,12 @@     -- framebuffer coordinates, plus layer, of a portion of a presentable image     -- that has changed and /must/ be presented. If non-@NULL@, each entry in     -- @pRectangles@ is a rectangle of the given image that has changed since-    -- the last image was presented to the given swapchain.+    -- the last image was presented to the given swapchain. The rectangles+    -- /must/ be specified relative to+    -- 'Vulkan.Extensions.VK_KHR_surface.SurfaceCapabilitiesKHR'::@currentTransform@,+    -- regardless of the swapchain’s @preTransform@. The presentation engine+    -- will apply the @preTransform@ transformation to the rectangles, along+    -- with any further transformation it applies to the image content.     rectangles :: Vector RectLayerKHR   }   deriving (Typeable)@@ -347,13 +370,22 @@ -- | VkRectLayerKHR - Structure containing a rectangle, including layer, -- changed by vkQueuePresentKHR for a given VkImage --+-- = Description+--+-- Some platforms allow the size of a surface to change, and then scale the+-- pixels of the image to fit the surface. 'RectLayerKHR' specifies pixels+-- of the swapchain’s image(s), which will be constant for the life of the+-- swapchain.+-- -- == Valid Usage ----- -   #VUID-VkRectLayerKHR-offset-01261# The sum of @offset@ and @extent@---     /must/ be no greater than the @imageExtent@ member of the+-- -   #VUID-VkRectLayerKHR-offset-04864# The sum of @offset@ and @extent@,+--     after being transformed according to the @preTransform@ member of+--     the 'Vulkan.Extensions.VK_KHR_swapchain.SwapchainCreateInfoKHR'+--     structure, /must/ be no greater than the @imageExtent@ member of the --     'Vulkan.Extensions.VK_KHR_swapchain.SwapchainCreateInfoKHR' --     structure passed to---     'Vulkan.Extensions.VK_KHR_swapchain.createSwapchainKHR'+--     'Vulkan.Extensions.VK_KHR_swapchain.createSwapchainKHR'. -- -- -   #VUID-VkRectLayerKHR-layer-01262# @layer@ /must/ be less than the --     @imageArrayLayers@ member of the@@ -361,11 +393,6 @@ --     structure passed to --     'Vulkan.Extensions.VK_KHR_swapchain.createSwapchainKHR' ----- Some platforms allow the size of a surface to change, and then scale the--- pixels of the image to fit the surface. 'RectLayerKHR' specifies pixels--- of the swapchain’s image(s), which will be constant for the life of the--- swapchain.--- -- = See Also -- -- 'Vulkan.Core10.FundamentalTypes.Extent2D',@@ -421,11 +448,11 @@            zero  -type KHR_INCREMENTAL_PRESENT_SPEC_VERSION = 1+type KHR_INCREMENTAL_PRESENT_SPEC_VERSION = 2  -- No documentation found for TopLevel "VK_KHR_INCREMENTAL_PRESENT_SPEC_VERSION" pattern KHR_INCREMENTAL_PRESENT_SPEC_VERSION :: forall a . Integral a => a-pattern KHR_INCREMENTAL_PRESENT_SPEC_VERSION = 1+pattern KHR_INCREMENTAL_PRESENT_SPEC_VERSION = 2   type KHR_INCREMENTAL_PRESENT_EXTENSION_NAME = "VK_KHR_incremental_present"
src/Vulkan/Extensions/VK_KHR_incremental_present.hs-boot view
@@ -15,7 +15,7 @@ --     85 -- -- [__Revision__]---     1+--     2 -- -- [__Extension and Version Dependencies__] --@@ -127,11 +127,29 @@ -- 'Vulkan.Extensions.VK_KHR_swapchain.queuePresentKHR' must still be -- honored, including waiting for semaphores to signal. --+-- 5) When the swapchain is created with+-- 'Vulkan.Extensions.VK_KHR_swapchain.SwapchainCreateInfoKHR'::@preTransform@+-- set to a value other than+-- 'Vulkan.Extensions.VK_KHR_surface.SURFACE_TRANSFORM_IDENTITY_BIT_KHR',+-- should the rectangular region, 'RectLayerKHR', be transformed to align+-- with the @preTransform@?+--+-- __RESOLVED__: No. The rectangular region in 'RectLayerKHR' should not be+-- tranformed. As such, it may not align with the extents of the+-- swapchain’s image(s). It is the responsibility of the presentation+-- engine to transform the rectangular region. This matches the behavior of+-- the Android presentation engine, which set the precedent.+-- -- == Version History -- -- -   Revision 1, 2016-11-02 (Ian Elliott) -- --     -   Internal revisions+--+-- -   Revision 2, 2021-03-18 (Ian Elliott)+--+--     -   Clarified alignment of rectangles for presentation engines that+--         support transformed swapchains. -- -- = See Also --
src/Vulkan/Extensions/VK_KHR_maintenance2.hs view
@@ -205,7 +205,7 @@ -- >         ... -- >         .pNext = &specifyAspects, -- >         ...--- >     }+-- >     }; -- > -- >     vkCreateRenderPass(...); --
src/Vulkan/Extensions/VK_KHR_multiview.hs view
@@ -60,7 +60,7 @@ -- This extension has the same goal as the OpenGL ES @GL_OVR_multiview@ -- extension. Multiview is a rendering technique originally designed for VR -- where it is more efficient to record a single set of commands to be--- executed with slightly different behavior for each \"view\".+-- executed with slightly different behavior for each “view”. -- -- It includes a concise way to declare a render pass with multiple views, -- and gives implementations freedom to render the views in the most@@ -73,9 +73,9 @@ -- -- This extension enables the use of the -- <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/KHR/SPV_KHR_multiview.html SPV_KHR_multiview>--- shader extension which adds a new @ViewIndex@ built-in type to shaders--- that allow shaders to control what to do for each view. If using GLSL--- there is also a+-- shader extension, which adds a new @ViewIndex@ built-in type that allows+-- shaders to control what to do for each view. If using GLSL there is also+-- the -- <https://raw.githubusercontent.com/KhronosGroup/GLSL/master/extensions/ext/GL_EXT_multiview.txt GL_EXT_multiview> -- extension that introduces a @highp int gl_ViewIndex;@ built-in variable -- for vertex, tessellation, geometry, and fragment shaders.
src/Vulkan/Extensions/VK_KHR_performance_query.hs view
@@ -225,9 +225,9 @@ -- 10) Should we introduce an indirect mechanism to set the counter pass -- index? ----- __RESOLVED__ Specify the counter pass index at submit time instead to+-- __RESOLVED__ Specify the counter pass index at submit time instead, to -- avoid requiring re-recording of command buffers when multiple counter--- passes needed.+-- passes are needed. -- -- == Examples --@@ -648,9 +648,10 @@ -- of elements in the @pCounters@, @pCounterDescriptions@, or both arrays -- and on return the variable is overwritten with the number of structures -- actually written out. If @pCounterCount@ is less than the number of--- counters available, at most @pCounterCount@ structures will be written+-- counters available, at most @pCounterCount@ structures will be written, -- and 'Vulkan.Core10.Enums.Result.INCOMPLETE' will be returned instead of--- 'Vulkan.Core10.Enums.Result.SUCCESS'.+-- 'Vulkan.Core10.Enums.Result.SUCCESS', to indicate that not all the+-- available counters were returned. -- -- == Valid Usage (Implicit) --@@ -892,6 +893,22 @@ -- | VkPhysicalDevicePerformanceQueryFeaturesKHR - Structure describing -- performance query support for an implementation --+-- = Members+--+-- This structure describes the following features:+--+-- = Description+--+-- If the 'PhysicalDevicePerformanceQueryFeaturesKHR' 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. 'PhysicalDevicePerformanceQueryFeaturesKHR' /can/ also be+-- used in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to+-- selectively enable these features.+-- -- == Valid Usage (Implicit) -- -- = See Also@@ -954,18 +971,18 @@ -- | VkPhysicalDevicePerformanceQueryPropertiesKHR - Structure describing -- performance query properties for an implementation ----- = Members+-- = Description ----- The members of the 'PhysicalDevicePerformanceQueryPropertiesKHR'--- structure describe the following implementation-dependent properties:+-- If the 'PhysicalDevicePerformanceQueryPropertiesKHR' 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) ----- If the 'PhysicalDevicePerformanceQueryPropertiesKHR' structure is--- included in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2',--- it is filled with the implementation-dependent properties.--- -- = See Also -- -- 'Vulkan.Core10.FundamentalTypes.Bool32',@@ -1206,7 +1223,7 @@   { -- | @queueFamilyIndex@ is the queue family index to create this performance     -- query pool for.     queueFamilyIndex :: Word32-  , -- | @pCounterIndices@ is the array of indices into the+  , -- | @pCounterIndices@ is a pointer to an array of indices into the     -- 'enumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR'::@pCounters@     -- to enable in this performance query pool.     counterIndices :: Vector Word32
src/Vulkan/Extensions/VK_KHR_performance_query.hs-boot view
@@ -225,9 +225,9 @@ -- 10) Should we introduce an indirect mechanism to set the counter pass -- index? ----- __RESOLVED__ Specify the counter pass index at submit time instead to+-- __RESOLVED__ Specify the counter pass index at submit time instead, to -- avoid requiring re-recording of command buffers when multiple counter--- passes needed.+-- passes are needed. -- -- == Examples --
src/Vulkan/Extensions/VK_KHR_pipeline_executable_properties.hs view
@@ -145,9 +145,9 @@ -- the compilation process and about which you can query properties and -- statistics? ----- __RESOLVED__: Call them \"executables\". The name \"binary\" was used in--- early drafts of the extension but it was determined that \"pipeline--- binary\" could have a fairly broad meaning (such as a binary serialized+-- __RESOLVED__: Call them “executables”. The name “binary” was used in+-- early drafts of the extension but it was determined that “pipeline+-- binary” could have a fairly broad meaning (such as a binary serialized -- form of an entire pipeline) and was too big of a namespace for the very -- specific needs of this extension. --@@ -296,15 +296,17 @@ -- -- = Description ----- If @pProperties@ is @NULL@, then the number of executables associated--- with the pipeline is returned in @pExecutableCount@. Otherwise,--- @pExecutableCount@ /must/ point to a variable set by the user to the--- number of elements in the @pProperties@ array, and on return the+-- If @pProperties@ is @NULL@, then the number of pipeline executables+-- associated with the pipeline is returned in @pExecutableCount@.+-- Otherwise, @pExecutableCount@ /must/ point to a variable set by the user+-- to the number of elements in the @pProperties@ array, and on return the -- variable is overwritten with the number of structures actually written -- to @pProperties@. If @pExecutableCount@ is less than the number of--- executables associated with the pipeline, at most @pExecutableCount@--- structures will be written and 'getPipelineExecutablePropertiesKHR' will--- return 'Vulkan.Core10.Enums.Result.INCOMPLETE'.+-- pipeline executables associated with the pipeline, at most+-- @pExecutableCount@ structures will be written, and+-- 'Vulkan.Core10.Enums.Result.INCOMPLETE' will be returned instead of+-- 'Vulkan.Core10.Enums.Result.SUCCESS', to indicate that not all the+-- available properties were returned. -- -- == Valid Usage --@@ -398,9 +400,10 @@ -- variable is overwritten with the number of structures actually written -- to @pStatistics@. If @pStatisticCount@ is less than the number of -- statistics associated with the pipeline executable, at most--- @pStatisticCount@ structures will be written and--- 'getPipelineExecutableStatisticsKHR' will return--- 'Vulkan.Core10.Enums.Result.INCOMPLETE'.+-- @pStatisticCount@ structures will be written, and+-- 'Vulkan.Core10.Enums.Result.INCOMPLETE' will be returned instead of+-- 'Vulkan.Core10.Enums.Result.SUCCESS', to indicate that not all the+-- available statistics were returned. -- -- == Valid Usage --@@ -500,14 +503,15 @@ -- actually written to @pInternalRepresentations@. If -- @pInternalRepresentationCount@ is less than the number of internal -- representations associated with the pipeline executable, at most--- @pInternalRepresentationCount@ structures will be written and--- 'getPipelineExecutableInternalRepresentationsKHR' will return--- 'Vulkan.Core10.Enums.Result.INCOMPLETE'.+-- @pInternalRepresentationCount@ structures will be written, and+-- 'Vulkan.Core10.Enums.Result.INCOMPLETE' will be returned instead of+-- 'Vulkan.Core10.Enums.Result.SUCCESS', to indicate that not all the+-- available representations were returned. -- -- While the details of the internal representations remain implementation -- dependent, the implementation /should/ order the internal--- representations in the order in which they occur in the compile pipeline--- with the final shader assembly (if any) last.+-- representations in the order in which they occur in the compiled+-- pipeline with the final shader assembly (if any) last. -- -- == Valid Usage --@@ -593,19 +597,20 @@ -- -- = Members ----- The members of the--- 'PhysicalDevicePipelineExecutablePropertiesFeaturesKHR' structure--- describe the following features:+-- This structure describes the following feature: -- -- = Description -- -- If the 'PhysicalDevicePipelineExecutablePropertiesFeaturesKHR' structure--- is included in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- it is filled with values indicating whether the feature is supported.--- 'PhysicalDevicePipelineExecutablePropertiesFeaturesKHR' /can/ also be--- included in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo'--- to enable features.+-- 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. 'PhysicalDevicePipelineExecutablePropertiesFeaturesKHR' /can/+-- also be used in the @pNext@ chain of+-- 'Vulkan.Core10.Device.DeviceCreateInfo' to selectively enable these+-- features. -- -- == Valid Usage (Implicit) --@@ -616,7 +621,7 @@ data PhysicalDevicePipelineExecutablePropertiesFeaturesKHR = PhysicalDevicePipelineExecutablePropertiesFeaturesKHR   { -- | #features-pipelineExecutableInfo# @pipelineExecutableInfo@ indicates     -- that the implementation supports reporting properties and statistics-    -- about the executables associated with a compiled pipeline.+    -- about the pipeline executables associated with a compiled pipeline.     pipelineExecutableInfo :: Bool }   deriving (Typeable, Eq) #if defined(GENERIC_INSTANCES)@@ -714,17 +719,15 @@ -- -- = Description ----- The @stages@ field /may/ be zero or it /may/ contain one or more bits--- describing the stages principally used to compile this pipeline. Not all--- implementations have a 1:1 mapping between shader stages and pipeline--- executables and some implementations /may/ reduce a given shader stage--- to fixed function hardware programming such that no executable is--- available. No guarantees are provided about the mapping between shader--- stages and pipeline executables and @stages@ /should/ be considered a--- best effort hint. Because the application /cannot/ rely on the @stages@--- field to provide an exact description, @name@ and @description@ provide--- a human readable name and description which more accurately describes--- the given pipeline executable.+-- Not all implementations have a 1:1 mapping between shader stages and+-- pipeline executables and some implementations /may/ reduce a given+-- shader stage to fixed function hardware programming such that no+-- pipeline executable is available. No guarantees are provided about the+-- mapping between shader stages and pipeline executables and @stages@+-- /should/ be considered a best effort hint. Because the application+-- /cannot/ rely on the @stages@ field to provide an exact description,+-- @name@ and @description@ provide a human readable name and description+-- which more accurately describes the given pipeline executable. -- -- == Valid Usage (Implicit) --@@ -734,22 +737,22 @@ -- 'Vulkan.Core10.Enums.StructureType.StructureType', -- 'getPipelineExecutablePropertiesKHR' data PipelineExecutablePropertiesKHR = PipelineExecutablePropertiesKHR-  { -- | @stages@ is a bitmask of+  { -- | @stages@ is a bitmask of zero or more     -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.ShaderStageFlagBits' indicating     -- which shader stages (if any) were principally used as inputs to compile     -- this pipeline executable.     stages :: ShaderStageFlags   , -- | @name@ is an array of 'Vulkan.Core10.APIConstants.MAX_DESCRIPTION_SIZE'     -- @char@ containing a null-terminated UTF-8 string which is a short human-    -- readable name for this executable.+    -- readable name for this pipeline executable.     name :: ByteString   , -- | @description@ is an array of     -- 'Vulkan.Core10.APIConstants.MAX_DESCRIPTION_SIZE' @char@ containing a     -- null-terminated UTF-8 string which is a human readable description for-    -- this executable.+    -- this pipeline executable.     description :: ByteString-  , -- | @subgroupSize@ is the subgroup size with which this executable is-    -- dispatched.+  , -- | @subgroupSize@ is the subgroup size with which this pipeline executable+    -- is dispatched.     subgroupSize :: Word32   }   deriving (Typeable)@@ -819,12 +822,12 @@     -- #VUID-VkPipelineExecutableInfoKHR-pipeline-parameter# @pipeline@ /must/     -- be a valid 'Vulkan.Core10.Handles.Pipeline' handle     pipeline :: Pipeline-  , -- | @executableIndex@ is the index of the executable to query in the array-    -- of executable properties returned by+  , -- | @executableIndex@ is the index of the pipeline executable to query in+    -- the array of executable properties returned by     -- 'getPipelineExecutablePropertiesKHR'.     --     -- #VUID-VkPipelineExecutableInfoKHR-executableIndex-03275#-    -- @executableIndex@ /must/ be less than the number of executables+    -- @executableIndex@ /must/ be less than the number of pipeline executables     -- associated with @pipeline@ as returned in the @pExecutableCount@     -- parameter of 'getPipelineExecutablePropertiesKHR'     executableIndex :: Word32@@ -953,13 +956,15 @@ -- return @dataSize@ is overwritten with the number of bytes of data -- actually written to @pData@ including any trailing null character. If -- @dataSize@ is less than the size, in bytes, of the internal--- representation data, at most @dataSize@ bytes of data will be written to--- @pData@ and 'getPipelineExecutableInternalRepresentationsKHR' will--- return 'Vulkan.Core10.Enums.Result.INCOMPLETE'. If @isText@ is--- 'Vulkan.Core10.FundamentalTypes.TRUE' and @pData@ is not @NULL@ and--- @dataSize@ is not zero, the last byte written to @pData@ will be a null--- character.+-- representation’s data, at most @dataSize@ bytes of data will be written+-- to @pData@, and 'Vulkan.Core10.Enums.Result.INCOMPLETE' will be returned+-- instead of 'Vulkan.Core10.Enums.Result.SUCCESS', to indicate that not+-- all the available representation was returned. --+-- If @isText@ is 'Vulkan.Core10.FundamentalTypes.TRUE' and @pData@ is not+-- @NULL@ and @dataSize@ is not zero, the last byte written to @pData@ will+-- be a null character.+-- -- == Valid Usage (Implicit) -- -- = See Also@@ -983,11 +988,10 @@     -- string.     isText :: Bool   , -- | @dataSize@ is an integer related to the size, in bytes, of the internal-    -- representation data, as described below.+    -- representation’s data, as described below.     dataSize :: Word64-  , -- | @pData@ is either @NULL@ or a pointer to an block of data into which the-    -- implementation will write the textual form of the internal-    -- representation.+  , -- | @pData@ is either @NULL@ or a pointer to a block of data into which the+    -- implementation will write the internal representation.     data' :: Ptr ()   }   deriving (Typeable)
src/Vulkan/Extensions/VK_KHR_pipeline_executable_properties.hs-boot view
@@ -145,9 +145,9 @@ -- the compilation process and about which you can query properties and -- statistics? ----- __RESOLVED__: Call them \"executables\". The name \"binary\" was used in--- early drafts of the extension but it was determined that \"pipeline--- binary\" could have a fairly broad meaning (such as a binary serialized+-- __RESOLVED__: Call them “executables”. The name “binary” was used in+-- early drafts of the extension but it was determined that “pipeline+-- binary” could have a fairly broad meaning (such as a binary serialized -- form of an entire pipeline) and was too big of a namespace for the very -- specific needs of this extension. --
src/Vulkan/Extensions/VK_KHR_pipeline_library.hs view
@@ -144,8 +144,9 @@ -- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.RayTracingPipelineCreateInfoKHR', -- 'Vulkan.Core10.Enums.StructureType.StructureType' data PipelineLibraryCreateInfoKHR = PipelineLibraryCreateInfoKHR-  { -- | @pLibraries@ is an array of pipeline libraries to use when creating a-    -- pipeline.+  { -- | @pLibraries@ is a pointer to an array of+    -- 'Vulkan.Core10.Handles.Pipeline' structures specifying pipeline+    -- libraries to use when creating a pipeline.     libraries :: Vector Pipeline }   deriving (Typeable) #if defined(GENERIC_INSTANCES)
src/Vulkan/Extensions/VK_KHR_portability_subset.hs view
@@ -56,11 +56,13 @@ -- --     -   Neil Trevett, NVIDIA ----- This extension allows a non-conformant Vulkan implementation to be built--- on top of another non-Vulkan graphics API, and identifies differences--- between that implementation and a fully-conformant native Vulkan--- implementation.+-- == Description --+-- The \`VK_KHR_portability_subset extension allows a non-conformant Vulkan+-- implementation to be built on top of another non-Vulkan graphics API,+-- and identifies differences between that implementation and a+-- fully-conformant native Vulkan implementation.+-- -- This extension provides Vulkan implementations with the ability to mark -- otherwise-required capabilities as unsupported, or to establish -- additional properties and limits that the application should adhere to@@ -172,18 +174,19 @@ -- -- = Members ----- The members of the 'PhysicalDevicePortabilitySubsetFeaturesKHR'--- structure describe the following features:+-- This structure describes the following features: -- -- = Description -- -- If the 'PhysicalDevicePortabilitySubsetFeaturesKHR' structure is--- included in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- it is filled with values indicating whether the features are supported.--- 'PhysicalDevicePortabilitySubsetFeaturesKHR' /can/ also be used in the--- @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to enable the--- features.+-- 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. 'PhysicalDevicePortabilitySubsetFeaturesKHR' /can/ also be+-- used in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to+-- selectively enable these features. -- -- == Valid Usage (Implicit) --@@ -383,17 +386,15 @@ -- | VkPhysicalDevicePortabilitySubsetPropertiesKHR - Structure describing -- additional properties supported by a portable implementation ----- = Members------ The members of the 'PhysicalDevicePortabilitySubsetPropertiesKHR'--- structure describe the following implementation-dependent limits:--- -- = Description -- -- If the 'PhysicalDevicePortabilitySubsetPropertiesKHR' structure is--- included in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2',--- it is filled with the implementation-dependent limits.+-- 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) --
src/Vulkan/Extensions/VK_KHR_portability_subset.hs-boot view
@@ -56,10 +56,12 @@ -- --     -   Neil Trevett, NVIDIA ----- This extension allows a non-conformant Vulkan implementation to be built--- on top of another non-Vulkan graphics API, and identifies differences--- between that implementation and a fully-conformant native Vulkan--- implementation.+-- == Description+--+-- The \`VK_KHR_portability_subset extension allows a non-conformant Vulkan+-- implementation to be built on top of another non-Vulkan graphics API,+-- and identifies differences between that implementation and a+-- fully-conformant native Vulkan implementation. -- -- This extension provides Vulkan implementations with the ability to mark -- otherwise-required capabilities as unsupported, or to establish
src/Vulkan/Extensions/VK_KHR_push_descriptor.hs view
@@ -216,8 +216,8 @@ -- -- Push descriptors that are -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-staticuse statically used>--- by a pipeline /must/ not be undefined at the time that a draw or--- dispatch command is recorded to execute using that pipeline. This+-- by a pipeline /must/ not be undefined at the time that a drawing or+-- dispatching command is recorded to execute using that pipeline. This -- includes immutable sampler descriptors, which /must/ be pushed before -- they are accessed by a pipeline (the immutable samplers are pushed, -- rather than the samplers in @pDescriptorWrites@). Push descriptors that@@ -441,7 +441,7 @@ -- >     } -- > }; -- >--- > // create a descriptor update template for descriptor set updates+-- > // create a descriptor update template for push descriptor set updates -- > const VkDescriptorUpdateTemplateCreateInfo createInfo = -- > { -- >     VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO,  // sType@@ -462,7 +462,6 @@ -- >     &createInfo, -- >     NULL, -- >     &myDescriptorUpdateTemplate);--- > } -- > -- > AppDataStructure appData; -- > // fill appData here or cache it in your engine@@ -505,17 +504,15 @@ -- | VkPhysicalDevicePushDescriptorPropertiesKHR - Structure describing push -- descriptor limits that can be supported by an implementation ----- = Members------ The members of the 'PhysicalDevicePushDescriptorPropertiesKHR' structure--- describe the following implementation-dependent limits:--- -- = Description -- -- If the 'PhysicalDevicePushDescriptorPropertiesKHR' structure is included--- in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2',--- it is filled with the implementation-dependent limits.+-- 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) --
src/Vulkan/Extensions/VK_KHR_ray_query.hs view
@@ -279,17 +279,19 @@ -- -- = Members ----- The members of the 'PhysicalDeviceRayQueryFeaturesKHR' structure--- describe the following features:+-- This structure describes the following feature: -- -- = Description -- -- If the 'PhysicalDeviceRayQueryFeaturesKHR' structure is included in the--- @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- it is filled with values indicating whether the feature is supported.--- 'PhysicalDeviceRayQueryFeaturesKHR' /can/ also be used in the @pNext@--- chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to enable the features.+-- @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. 'PhysicalDeviceRayQueryFeaturesKHR' /can/ also be used in the+-- @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to selectively+-- enable these features. -- -- == Valid Usage (Implicit) --
src/Vulkan/Extensions/VK_KHR_ray_tracing_pipeline.hs view
@@ -602,14 +602,15 @@ -- with gl_InstanceIndex. Which should be used for Vulkan in this -- extension? ----- RESOLVED: This extension uses gl_InstanceID and maps it to @InstanceId@--- in SPIR-V. It is acknowledged that this is different than other shader--- stages in Vulkan. There are two main reasons for the difference here:+-- __RESOLVED__: This extension uses gl_InstanceID and maps it to+-- @InstanceId@ in SPIR-V. It is acknowledged that this is different than+-- other shader stages in Vulkan. There are two main reasons for the+-- difference here: -- -- -   symmetry with gl_PrimitiveID which is also available in these --     shaders ----- -   there is no \"baseInstance\" relevant for these shaders, and so ID+-- -   there is no “baseInstance” relevant for these shaders, and so ID --     makes it more obvious that this is zero-based. -- -- == Sample Code@@ -984,9 +985,9 @@ -- -   #VUID-vkCmdTraceRaysKHR-commandBuffer-02701# If the --     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind --     point used by this command requires any dynamic state, that state---     /must/ have been set for @commandBuffer@, and done so after any---     previously bound pipeline with the corresponding state not specified---     as dynamic+--     /must/ have been set or inherited for @commandBuffer@, and done so+--     after any previously bound pipeline with the corresponding state not+--     specified as dynamic -- -- -   #VUID-vkCmdTraceRaysKHR-None-02859# There /must/ not have been any --     calls to dynamic state setting commands for any state not specified@@ -1105,7 +1106,7 @@ -- -- -   #VUID-vkCmdTraceRaysKHR-None-03429# Any shader group handle --     referenced by this call /must/ have been queried from the currently---     bound ray tracing shader pipeline+--     bound ray tracing pipeline -- -- -   #VUID-vkCmdTraceRaysKHR-maxPipelineRayRecursionDepth-03679# This --     command /must/ not cause a shader call instruction to be executed@@ -1691,10 +1692,10 @@                               . (MonadIO io)                              => -- | @device@ is the logical device that creates the ray tracing pipelines.                                 Device-                             -> -- | @deferredOperation@ is an optional-                                -- 'Vulkan.Extensions.Handles.DeferredOperationKHR' to+                             -> -- | @deferredOperation@ is 'Vulkan.Core10.APIConstants.NULL_HANDLE' or the+                                -- handle of a valid 'Vulkan.Extensions.Handles.DeferredOperationKHR'                                 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#deferred-host-operations-requesting request deferral>-                                -- for this command.+                                -- object for this command.                                 DeferredOperationKHR                              -> -- | @pipelineCache@ is either 'Vulkan.Core10.APIConstants.NULL_HANDLE',                                 -- indicating that pipeline caching is disabled, or the handle of a valid@@ -1857,9 +1858,9 @@ -- -   #VUID-vkCmdTraceRaysIndirectKHR-commandBuffer-02701# If the --     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind --     point used by this command requires any dynamic state, that state---     /must/ have been set for @commandBuffer@, and done so after any---     previously bound pipeline with the corresponding state not specified---     as dynamic+--     /must/ have been set or inherited for @commandBuffer@, and done so+--     after any previously bound pipeline with the corresponding state not+--     specified as dynamic -- -- -   #VUID-vkCmdTraceRaysIndirectKHR-None-02859# There /must/ not have --     been any calls to dynamic state setting commands for any state not@@ -1981,7 +1982,7 @@ -- -- -   #VUID-vkCmdTraceRaysIndirectKHR-None-03429# Any shader group handle --     referenced by this call /must/ have been queried from the currently---     bound ray tracing shader pipeline+--     bound ray tracing pipeline -- -- -   #VUID-vkCmdTraceRaysIndirectKHR-maxPipelineRayRecursionDepth-03679# --     This command /must/ not cause a shader call instruction to be@@ -2155,7 +2156,7 @@ --     1 /must/ be in the buffer device address range of the same buffer -- -- -   #VUID-vkCmdTraceRaysIndirectKHR-rayTracingPipelineTraceRaysIndirect-03637#---     the+--     The --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-rayTracingPipelineTraceRaysIndirect ::rayTracingPipelineTraceRaysIndirect> --     feature /must/ be enabled --@@ -2232,8 +2233,8 @@                         -> -- | @pCallableShaderBindingTable@ is a 'StridedDeviceAddressRegionKHR' that                            -- holds the shader binding table data for the callable shader stage.                            ("callableShaderBindingTable" ::: StridedDeviceAddressRegionKHR)-                        -> -- | @indirectDeviceAddress@ is a buffer device address which points to a-                           -- 'TraceRaysIndirectCommandKHR' structure which contains the trace ray+                        -> -- | @indirectDeviceAddress@ is a buffer device address which is a pointer to+                           -- a 'TraceRaysIndirectCommandKHR' structure containing the trace ray                            -- parameters.                            ("indirectDeviceAddress" ::: DeviceAddress)                         -> io ()@@ -2682,9 +2683,9 @@ --     @NULL@ -- -- -   #VUID-VkRayTracingPipelineCreateInfoKHR-pLibraries-03591# Each---     element of the @pLibraries@ member of @pLibraryInfo@ /must/ have---     been created with the value of @maxPipelineRayRecursionDepth@ equal---     to that in this pipeline+--     element of @pLibraryInfo->pLibraries@ /must/ have been created with+--     the value of @maxPipelineRayRecursionDepth@ equal to that in this+--     pipeline -- -- -   #VUID-VkRayTracingPipelineCreateInfoKHR-pLibraryInfo-03592# If --     @pLibraryInfo@ is not @NULL@, each element of its @pLibraries@@@ -2700,56 +2701,56 @@ -- -   #VUID-VkRayTracingPipelineCreateInfoKHR-flags-03594# If @flags@ --     includes --     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR',---     each element of the @pLibraries@ member of @libraries@ /must/ have---     been created with the+--     each element of @pLibraryInfo->pLibraries@ /must/ have been created+--     with the --     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR' --     bit set -- -- -   #VUID-VkRayTracingPipelineCreateInfoKHR-flags-04718# If @flags@ --     includes --     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR',---     each element of the @pLibraries@ member of @libraries@ /must/ have---     been created with the+--     each element of @pLibraryInfo->pLibraries@ /must/ have been created+--     with the --     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR' --     bit set -- -- -   #VUID-VkRayTracingPipelineCreateInfoKHR-flags-04719# If @flags@ --     includes --     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR',---     each element of the @pLibraries@ member of @libraries@ /must/ have---     been created with the+--     each element of @pLibraryInfo->pLibraries@ /must/ have been created+--     with the --     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR' --     bit set -- -- -   #VUID-VkRayTracingPipelineCreateInfoKHR-flags-04720# If @flags@ --     includes --     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR',---     each element of the @pLibraries@ member of @libraries@ /must/ have---     been created with the+--     each element of @pLibraryInfo->pLibraries@ /must/ have been created+--     with the --     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR' --     bit set -- -- -   #VUID-VkRayTracingPipelineCreateInfoKHR-flags-04721# If @flags@ --     includes --     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR',---     each element of the @pLibraries@ member of @libraries@ /must/ have---     been created with the+--     each element of @pLibraryInfo->pLibraries@ /must/ have been created+--     with the --     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR' --     bit set -- -- -   #VUID-VkRayTracingPipelineCreateInfoKHR-flags-04722# If @flags@ --     includes --     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR',---     each element of the @pLibraries@ member of @libraries@ /must/ have---     been created with the+--     each element of @pLibraryInfo->pLibraries@ /must/ have been created+--     with the --     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR' --     bit set -- -- -   #VUID-VkRayTracingPipelineCreateInfoKHR-flags-04723# If @flags@ --     includes --     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR',---     each element of the @pLibraries@ member of @libraries@ /must/ have---     been created with the+--     each element of @pLibraryInfo->pLibraries@ /must/ have been created+--     with the --     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR' --     bit set --@@ -3025,11 +3026,15 @@ -- -- = Members ----- The members of the 'PhysicalDeviceRayTracingPipelineFeaturesKHR'--- structure describe the following features:+-- This structure describes the following features: -- -- = Description --+-- -   @sType@ is the type of this structure.+--+-- -   @pNext@ is @NULL@ or a pointer to a structure extending this+--     structure.+-- -- -   #features-rayTracingPipeline# @rayTracingPipeline@ indicates whether --     the implementation supports the ray tracing pipeline functionality. --     See@@ -3059,12 +3064,14 @@ --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#ray-traversal-culling-primitive primitive culling during ray traversal>. -- -- If the 'PhysicalDeviceRayTracingPipelineFeaturesKHR' structure is--- included in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- it is filled with values indicating whether the feature is supported.--- 'PhysicalDeviceRayTracingPipelineFeaturesKHR' /can/ also be used in the--- @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to enable the--- features.+-- 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. 'PhysicalDeviceRayTracingPipelineFeaturesKHR' /can/ also be+-- used in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to+-- selectively enable these features. -- -- == Valid Usage --@@ -3156,9 +3163,12 @@ -- = Description -- -- If the 'PhysicalDeviceRayTracingPipelinePropertiesKHR' structure is--- included in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2',--- it is filled with the implementation-dependent limits.+-- 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. -- -- Limits specified by this structure /must/ match those specified with the -- same name in@@ -3170,7 +3180,7 @@ -- -- 'Vulkan.Core10.Enums.StructureType.StructureType' data PhysicalDeviceRayTracingPipelinePropertiesKHR = PhysicalDeviceRayTracingPipelinePropertiesKHR-  { -- | @shaderGroupHandleSize@ size in bytes of the shader header.+  { -- | @shaderGroupHandleSize@ is the size in bytes of the shader header.     shaderGroupHandleSize :: Word32   , -- | #limits-maxRayRecursionDepth# @maxRayRecursionDepth@ is the maximum     -- number of levels of ray recursion allowed in a trace command.@@ -3272,8 +3282,8 @@ --     buffer -- -- -   #VUID-VkStridedDeviceAddressRegionKHR-size-04632# If @size@ is not---     zero, @stride@ /must/ be less than the size of the buffer from which---     @deviceAddress@ was queried+--     zero, @stride@ /must/ be less than or equal to the size of the+--     buffer from which @deviceAddress@ was queried -- -- = See Also --
src/Vulkan/Extensions/VK_KHR_ray_tracing_pipeline.hs-boot view
@@ -602,14 +602,15 @@ -- with gl_InstanceIndex. Which should be used for Vulkan in this -- extension? ----- RESOLVED: This extension uses gl_InstanceID and maps it to @InstanceId@--- in SPIR-V. It is acknowledged that this is different than other shader--- stages in Vulkan. There are two main reasons for the difference here:+-- __RESOLVED__: This extension uses gl_InstanceID and maps it to+-- @InstanceId@ in SPIR-V. It is acknowledged that this is different than+-- other shader stages in Vulkan. There are two main reasons for the+-- difference here: -- -- -   symmetry with gl_PrimitiveID which is also available in these --     shaders ----- -   there is no \"baseInstance\" relevant for these shaders, and so ID+-- -   there is no “baseInstance” relevant for these shaders, and so ID --     makes it more obvious that this is zero-based. -- -- == Sample Code
src/Vulkan/Extensions/VK_KHR_sampler_ycbcr_conversion.hs view
@@ -336,11 +336,11 @@ -- --     -   Added query function, formats as RGB, clarifications ----- -   Revision 5, 2017-04 (Andrew Garrard)+-- -   Revision 5, 2017-04-?? (Andrew Garrard) -- --     -   Simplified query and removed output conversions ----- -   Revision 6, 2017-4-24 (Andrew Garrard)+-- -   Revision 6, 2017-04-24 (Andrew Garrard) -- --     -   Tidying, incorporated new image query, restored transfer --         functions@@ -348,7 +348,7 @@ -- -   Revision 7, 2017-04-25 (Andrew Garrard) -- --     -   Added cosited option\/midpoint requirement for formats,---         \"bypassConversion\"+--         “bypassConversion” -- -- -   Revision 8, 2017-04-25 (Andrew Garrard) --
src/Vulkan/Extensions/VK_KHR_shader_clock.hs view
@@ -61,9 +61,9 @@ -- 'Vulkan.Core10.Handles.Device'. -- -- When using GLSL source-based shading languages, the--- @clockRealtime@*@EXT@() timing functions map to the @OpReadClockKHR@+-- @clockRealtime*EXT@() timing functions map to the @OpReadClockKHR@ -- instruction with a scope of 'Vulkan.Core10.Handles.Device', and the--- @clock@*@ARB@() timing functions map to the @OpReadClockKHR@ instruction+-- @clock*ARB@() timing functions map to the @OpReadClockKHR@ instruction -- with a scope of @Subgroup@. -- -- == New Structures@@ -137,15 +137,21 @@ -- | VkPhysicalDeviceShaderClockFeaturesKHR - Structure describing features -- supported by VK_KHR_shader_clock --+-- = Members+--+-- This structure describes the following features:+-- -- = Description -- -- If the 'PhysicalDeviceShaderClockFeaturesKHR' structure is included in--- the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- it is filled with values indicating whether each feature is supported.--- 'PhysicalDeviceShaderClockFeaturesKHR' can also be included in the--- @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to enable the--- features.+-- 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. 'PhysicalDeviceShaderClockFeaturesKHR' /can/ also be used in+-- the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to+-- selectively enable these features. -- -- == Valid Usage (Implicit) --
src/Vulkan/Extensions/VK_KHR_shader_clock.hs-boot view
@@ -61,9 +61,9 @@ -- 'Vulkan.Core10.Handles.Device'. -- -- When using GLSL source-based shading languages, the--- @clockRealtime@*@EXT@() timing functions map to the @OpReadClockKHR@+-- @clockRealtime*EXT@() timing functions map to the @OpReadClockKHR@ -- instruction with a scope of 'Vulkan.Core10.Handles.Device', and the--- @clock@*@ARB@() timing functions map to the @OpReadClockKHR@ instruction+-- @clock*ARB@() timing functions map to the @OpReadClockKHR@ instruction -- with a scope of @Subgroup@. -- -- == New Structures
src/Vulkan/Extensions/VK_KHR_shader_draw_parameters.hs view
@@ -74,10 +74,10 @@ -- variables in Vulkan: -- -- -   @BaseInstance@, which contains the @firstInstance@ parameter passed---     to draw commands,+--     to drawing commands, -- -- -   @BaseVertex@, which contains the @firstVertex@ or @vertexOffset@---     parameter passed to draw commands, and+--     parameter passed to drawing commands, and -- -- -   @DrawIndex@, which contains the index of the draw call currently --     being processed from an indirect draw call.
src/Vulkan/Extensions/VK_KHR_shader_float_controls.hs view
@@ -126,11 +126,15 @@ -- 2) What is the denorm behavior for intermediate results? -- -- __RESOLVED__: When a SPIR-V instruction is implemented as a sequence of--- other instructions: - in the @DenormFlushToZero@ execution mode the--- intermediate instructions may flush denormals, the final result of the--- sequence /must/ not be denormal. - in the @DenormPreserve@ execution--- mode denormals must be preserved throughout the whole sequence.+-- other instructions: --+-- -   in the @DenormFlushToZero@ execution mode, the intermediate+--     instructions may flush denormals, the final result of the sequence+--     /must/ not be denormal.+--+-- -   in the @DenormPreserve@ execution mode, denormals must be preserved+--     throughout the whole sequence.+-- -- 3) Do denorm and rounding mode controls apply to @OpSpecConstantOp@? -- -- __RESOLVED__: Yes, except when the opcode is @OpQuantizeToF16@.@@ -141,12 +145,12 @@ -- -- __RESOLVED__: No, these instructions unconditionally round towards zero. ----- 5) Do any of the \"Pack\" GLSL.std.450 instructions count as conversion--- instructions and have the rounding mode apply?+-- 5) Do any of the “Pack” GLSL.std.450 instructions count as conversion+-- instructions and have the rounding mode applied? ----- __RESOLVED__: No, only instructions listed in the section \"3.32.11.--- Conversion Instructions\" of the SPIR-V specification count as--- conversion instructions.+-- __RESOLVED__: No, only instructions listed in “section 3.32.11.+-- Conversion Instructions” of the SPIR-V specification count as conversion+-- instructions. -- -- 6) When using inf\/nan-ignore mode, what is expected of @OpIsNan@ and -- @OpIsInf@?@@ -159,7 +163,7 @@ -- The original versions of @VK_KHR_shader_float_controls@ shipped with -- booleans named “separateDenormSettings” and -- “separateRoundingModeSettings”, which at first glance could have--- indicated “they can all independently set, or not”. However the spec+-- indicated “they can all be set independently, or not”. However the spec -- language as written indicated that the 32-bit value could always be set -- independently, and only the 16- and 64-bit controls needed to be the -- same if these values were 'Vulkan.Core10.FundamentalTypes.FALSE'.
src/Vulkan/Extensions/VK_KHR_shader_terminate_invocation.hs view
@@ -137,18 +137,20 @@ -- -- = Members ----- The members of the 'PhysicalDeviceShaderTerminateInvocationFeaturesKHR'--- structure describe the following feature:+-- This structure describes the following feature: -- -- = Description -- -- If the 'PhysicalDeviceShaderTerminateInvocationFeaturesKHR' structure is--- included in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- it is filled with a value indicating whether the feature is supported.--- 'PhysicalDeviceShaderTerminateInvocationFeaturesKHR' /can/ also be--- included in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo'--- to enable the features.+-- included in the @pNext@ chain of the+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2'+-- structure passed to+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceFeatures2',+-- it is filled in to indicate whether each corresponding feature is+-- supported. 'PhysicalDeviceShaderTerminateInvocationFeaturesKHR' /can/+-- also be used in the @pNext@ chain of+-- 'Vulkan.Core10.Device.DeviceCreateInfo' to selectively enable these+-- features. -- -- == Valid Usage (Implicit) --
src/Vulkan/Extensions/VK_KHR_spirv_1_4.hs view
@@ -97,7 +97,7 @@ -- version-generic query for SPIR-V version? SPIR-V 1.4 doesn’t need any -- other API changes. ----- RESOLVED: Just expose SPIR-V 1.4.+-- __RESOLVED__: Just expose SPIR-V 1.4. -- -- Most new SPIR-V versions introduce optionally-required capabilities or -- have implementation-defined limits, and would need more API and@@ -118,7 +118,7 @@ -- 2. Can different stages of the same pipeline use shaders with different -- SPIR-V versions? ----- RESOLVED: Yes.+-- __RESOLVED__: Yes. -- -- Mixing SPIR-V versions 1.0-1.3 in the same pipeline has not been -- disallowed, so it would be inconsistent to disallow mixing 1.4 with@@ -129,7 +129,7 @@ -- promoted to core in 1.4 be enabled in order to use that functionality in -- a SPIR-V 1.4 module? ----- RESOLVED: No, with caveats.+-- __RESOLVED__: No, with caveats. -- -- The SPIR-V 1.4 module does not need to declare the SPIR-V extensions, -- since the functionality is now part of core, so there is no need to
src/Vulkan/Extensions/VK_KHR_surface.hs view
@@ -165,16 +165,16 @@ -- 'Vulkan.Core10.Handles.Device' (and therefore on enabled extensions and -- features) for the queries, Vulkan was released only with the -- 'Vulkan.Core10.Handles.PhysicalDevice' versions. Many cases can be--- resolved by a Valid Usage. And\\or by a separate @pNext@ chain version--- of the query struct specific to a given extension or parameters, via--- extensible versions of the queries:+-- resolved by a Valid Usage statement, and\/or by a separate @pNext@ chain+-- version of the query struct specific to a given extension or parameters,+-- via extensible versions of the queries: -- 'Vulkan.Extensions.VK_KHR_get_surface_capabilities2.getPhysicalDeviceSurfaceCapabilities2KHR',--- 'Vulkan.Extensions.VK_KHR_get_surface_capabilities2.getPhysicalDeviceSurfaceFormats2KHR',+-- 'Vulkan.Extensions.VK_KHR_get_surface_capabilities2.getPhysicalDeviceSurfaceFormats2KHR'. -- and--- 'Vulkan.Extensions.VK_EXT_full_screen_exclusive.getPhysicalDeviceSurfacePresentModes2EXT'.+-- 'Vulkan.Extensions.VK_EXT_full_screen_exclusive.getPhysicalDeviceSurfacePresentModes2EXT', ----- 3) Should Vulkan include support Xlib or XCB as the API for accessing--- the X Window System platform?+-- 3) Should Vulkan support Xlib or XCB as the API for accessing the X+-- Window System platform? -- -- __RESOLVED__: Both. XCB is a more modern and efficient API, but Xlib -- usage is deeply ingrained in many applications and likely will remain in@@ -262,9 +262,9 @@ --     -   Added error section describing when each error is expected to be --         reported. -----     -   Replaced the term \"queue node index\" with \"queue family---         index\" in the spec as that is the agreed term to be used in the---         latest version of the core header and spec.+--     -   Replaced the term “queue node index” with “queue family index”+--         in the spec as that is the agreed term to be used in the latest+--         version of the core header and spec. -- --     -   Replaced bool32_t with VkBool32. --@@ -278,7 +278,7 @@ --         functions, etc. This makes it compliant with the proposed --         standard for Vulkan extensions. -----     -   Switched from \"revision\" to \"version\", including use of the+--     -   Switched from “revision” to “version”, including use of the --         VK_MAKE_VERSION macro in the header file. -- --     -   Did miscellaneous cleanup, etc.@@ -287,7 +287,7 @@ --     from James Jones) -- --     -   Moved the surface transform enums here from VK_WSI_swapchain so---         they could be re-used by VK_WSI_display.+--         they could be reused by VK_WSI_display. -- -- -   Revision 16, 2015-09-01 (James Jones) --@@ -746,12 +746,10 @@ -- return the variable is overwritten with the number of structures -- actually written to @pSurfaceFormats@. If the value of -- @pSurfaceFormatCount@ is less than the number of format pairs supported,--- at most @pSurfaceFormatCount@ structures will be written. If--- @pSurfaceFormatCount@ is smaller than the number of format pairs--- supported for the given @surface@,+-- at most @pSurfaceFormatCount@ structures will be written, 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.+-- 'Vulkan.Core10.Enums.Result.SUCCESS', to indicate that not all the+-- available format pairs were returned. -- -- The number of format pairs supported /must/ be greater than or equal to -- 1. @pSurfaceFormats@ /must/ not contain an entry whose value for@@ -864,11 +862,10 @@ -- return the variable is overwritten with the number of values actually -- written to @pPresentModes@. If the value of @pPresentModeCount@ is less -- than the number of presentation modes supported, at most--- @pPresentModeCount@ values will be written. If @pPresentModeCount@ is--- smaller than the number of presentation modes supported for the given--- @surface@, '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.+-- @pPresentModeCount@ values will be written, and+-- 'Vulkan.Core10.Enums.Result.INCOMPLETE' will be returned instead of+-- 'Vulkan.Core10.Enums.Result.SUCCESS', to indicate that not all the+-- available modes were returned. -- -- == Valid Usage (Implicit) --@@ -1025,8 +1022,8 @@     -- 'PRESENT_MODE_MAILBOX_KHR', 'PRESENT_MODE_FIFO_KHR' or     -- 'PRESENT_MODE_FIFO_RELAXED_KHR' for the surface on the specified device.     -- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_COLOR_ATTACHMENT_BIT'-    -- /must/ be included in the set but implementations /may/ support-    -- additional usages.+    -- /must/ be included in the set. Implementations /may/ support additional+    -- usages.     supportedUsageFlags :: ImageUsageFlags   }   deriving (Typeable)@@ -1058,7 +1055,10 @@     poke ((p `plusPtr` 16 :: Ptr Extent2D)) (zero)     poke ((p `plusPtr` 24 :: Ptr Extent2D)) (zero)     poke ((p `plusPtr` 32 :: Ptr Word32)) (zero)+    poke ((p `plusPtr` 36 :: Ptr SurfaceTransformFlagsKHR)) (zero)     poke ((p `plusPtr` 40 :: Ptr SurfaceTransformFlagBitsKHR)) (zero)+    poke ((p `plusPtr` 44 :: Ptr CompositeAlphaFlagsKHR)) (zero)+    poke ((p `plusPtr` 48 :: Ptr ImageUsageFlags)) (zero)     f  instance FromCStruct SurfaceCapabilitiesKHR where
src/Vulkan/Extensions/VK_KHR_surface.hs-boot view
@@ -165,16 +165,16 @@ -- 'Vulkan.Core10.Handles.Device' (and therefore on enabled extensions and -- features) for the queries, Vulkan was released only with the -- 'Vulkan.Core10.Handles.PhysicalDevice' versions. Many cases can be--- resolved by a Valid Usage. And\\or by a separate @pNext@ chain version--- of the query struct specific to a given extension or parameters, via--- extensible versions of the queries:+-- resolved by a Valid Usage statement, and\/or by a separate @pNext@ chain+-- version of the query struct specific to a given extension or parameters,+-- via extensible versions of the queries: -- 'Vulkan.Extensions.VK_KHR_get_surface_capabilities2.getPhysicalDeviceSurfaceCapabilities2KHR',--- 'Vulkan.Extensions.VK_KHR_get_surface_capabilities2.getPhysicalDeviceSurfaceFormats2KHR',+-- 'Vulkan.Extensions.VK_KHR_get_surface_capabilities2.getPhysicalDeviceSurfaceFormats2KHR'. -- and--- 'Vulkan.Extensions.VK_EXT_full_screen_exclusive.getPhysicalDeviceSurfacePresentModes2EXT'.+-- 'Vulkan.Extensions.VK_EXT_full_screen_exclusive.getPhysicalDeviceSurfacePresentModes2EXT', ----- 3) Should Vulkan include support Xlib or XCB as the API for accessing--- the X Window System platform?+-- 3) Should Vulkan support Xlib or XCB as the API for accessing the X+-- Window System platform? -- -- __RESOLVED__: Both. XCB is a more modern and efficient API, but Xlib -- usage is deeply ingrained in many applications and likely will remain in@@ -262,9 +262,9 @@ --     -   Added error section describing when each error is expected to be --         reported. -----     -   Replaced the term \"queue node index\" with \"queue family---         index\" in the spec as that is the agreed term to be used in the---         latest version of the core header and spec.+--     -   Replaced the term “queue node index” with “queue family index”+--         in the spec as that is the agreed term to be used in the latest+--         version of the core header and spec. -- --     -   Replaced bool32_t with VkBool32. --@@ -278,7 +278,7 @@ --         functions, etc. This makes it compliant with the proposed --         standard for Vulkan extensions. -----     -   Switched from \"revision\" to \"version\", including use of the+--     -   Switched from “revision” to “version”, including use of the --         VK_MAKE_VERSION macro in the header file. -- --     -   Did miscellaneous cleanup, etc.@@ -287,7 +287,7 @@ --     from James Jones) -- --     -   Moved the surface transform enums here from VK_WSI_swapchain so---         they could be re-used by VK_WSI_display.+--         they could be reused by VK_WSI_display. -- -- -   Revision 16, 2015-09-01 (James Jones) --
src/Vulkan/Extensions/VK_KHR_swapchain.hs view
@@ -307,7 +307,7 @@ -- __RESOLVED__: Accept a semaphore to signal as an object handle. This -- avoids the need to specify whether the application must destroy the -- semaphore or whether it is owned by the swapchain, and if the latter,--- what its lifetime is and whether it can be re-used for other operations+-- what its lifetime is and whether it can be reused for other operations -- once it is received from 'acquireNextImageKHR'. -- -- 11) What types of swapchain queuing behavior should be exposed? Options@@ -329,7 +329,7 @@ --     single-entry queue is used to hold pending presentation requests. If --     the queue is full when a new presentation request is received, the --     new request replaces the existing entry, and any images associated---     with the prior entry become available for re-use by the application.+--     with the prior entry become available for reuse by the application. -- -- -   FIFO queue: Waits for the next vertical blanking period to update --     the current image. No tearing should be observed. An internal queue@@ -340,10 +340,10 @@ --     queue is non-empty -- -- Not all surfaces will support all of these modes, so the modes supported--- will be returned using a surface info query. All surfaces must support--- the FIFO queue mode. Applications must choose one of these modes up--- front when creating a swapchain. Switching modes can be accomplished by--- recreating the swapchain.+-- will be returned using a surface information query. All surfaces must+-- support the FIFO queue mode. Applications must choose one of these modes+-- up front when creating a swapchain. Switching modes can be accomplished+-- by recreating the swapchain. -- -- 12) Can 'Vulkan.Extensions.VK_KHR_surface.PRESENT_MODE_MAILBOX_KHR' -- provide non-blocking guarantees for 'acquireNextImageKHR'? If so, what@@ -379,11 +379,11 @@ -- to indicate there are no practical limits on the number of images in a -- swapchain? ----- __RESOLVED__: Yes. There where often be cases where there is no--- practical limit to the number of images in a swapchain other than the--- amount of available resources (I.e., memory) in the system. Trying to--- derive a hard limit from things like memory size is prone to failure. It--- is better in such cases to leave it to applications to figure such soft+-- __RESOLVED__: Yes. There will often be cases where there is no practical+-- limit to the number of images in a swapchain other than the amount of+-- available resources (i.e., memory) in the system. Trying to derive a+-- hard limit from things like memory size is prone to failure. It is+-- better in such cases to leave it to applications to figure such soft -- limits out via trial\/failure iterations. -- -- 15) Should there be a special value for@@ -411,7 +411,7 @@ -- __RESOLVED__: Applications can query both the supported and current -- transforms of a surface. Both are specified relative to the device’s -- “natural” display rotation and direction. The supported transforms--- indicates which orientations the presentation engine accepts images in.+-- indicate which orientations the presentation engine accepts images in. -- For example, a presentation engine that does not support transforming -- surfaces as part of presentation, and which is presenting to a surface -- that is displayed with a 90-degree rotation, would return only one@@ -484,7 +484,7 @@ -- obscuring their target surface? -- -- __RESOLVED__: Applications can choose which behavior they prefer.--- Allowing the content to be clipped could enable more optimal+-- Allowing the content to be clipped could enable more efficient -- presentation methods on some platforms, but some applications might rely -- on the content of presentable images to perform techniques such as -- partial updates or motion blurs.@@ -513,9 +513,9 @@ -- using such formats does not guarantee working in a specific color space. -- It merely means that the hardware can directly support applying the -- non-linear transfer functions defined by the sRGB standard color space--- when reading from or writing to images of that these formats. Still, it--- is unlikely that a swapchain will expose a @*_SRGB@ format along with--- any color space other than+-- when reading from or writing to images of those formats. Still, it is+-- unlikely that a swapchain will expose a @*_SRGB@ format along with any+-- color space other than -- 'Vulkan.Extensions.VK_KHR_surface.COLOR_SPACE_SRGB_NONLINEAR_KHR'. -- -- On the other hand, non-@*_SRGB@ formats will be very likely exposed in@@ -525,7 +525,7 @@ -- characteristics. In this case the application is responsible for -- applying the transfer function, for instance by using shader math. ----- 25) How are the lifetime of surfaces and swapchains targeting them+-- 25) How are the lifetimes of surfaces and swapchains targeting them -- related? -- -- __RESOLVED__: A surface must outlive any swapchains targeting it. A@@ -665,7 +665,7 @@ -- --     -   Renamed VkSurfaceCapabilityPropertiesKHR to --         VkSurfacePropertiesKHR to better convey the mutable nature of---         the info it contains.+--         the information it contains. -- -- -   Revision 12, 2015-05-28 (James Jones) --@@ -753,8 +753,8 @@ -- -   Revision 24, 2015-06-19 (Ian Elliott) -- --     -   Changed special value for VkSurfacePropertiesKHR::currentExtent---         back to \"-1\" from \"0\". This value will never need to be---         unsigned, and \"0\" is actually a legal value.+--         back to “-1” from “0”. This value will never need to be+--         unsigned, and “0” is actually a legal value. -- -- -   Revision 25, 2015-06-23 (Ian Elliott) --@@ -773,12 +773,12 @@ -- -- -   Revision 28, 2015-06-25 (James Jones) -----     -   Added the \"inherit\" bits to the rotation and mirroring flags---         and the associated issue 21.+--     -   Added the “inherit” bits to the rotation and mirroring flags and+--         the associated issue 21. -- -- -   Revision 29, 2015-06-25 (James Jones) -----     -   Added the \"clipped\" flag to VkSwapchainCreateInfoKHR, and the+--     -   Added the “clipped” flag to VkSwapchainCreateInfoKHR, and the --         associated issue 22. -- --     -   Specified that presenting an image does not modify it.@@ -791,13 +791,13 @@ -- -- -   Revision 31, 2015-06-26 (Ian Elliott) -----     -   Example of new VkSwapchainCreateInfoKHR members,---         \"oldSwapchain\" and \"clipped\".+--     -   Example of new VkSwapchainCreateInfoKHR members, “oldSwapchain”+--         and “clipped”. -- --     -   Example of using VkSurfacePropertiesKHR::{min|max}ImageCount to --         set VkSwapchainCreateInfoKHR::minImageCount. -----     -   Rename vkGetSurfaceInfoKHR()\'s 4th parameter to \"pDataSize\",+--     -   Rename vkGetSurfaceInfoKHR()\'s 4th parameter to “pDataSize”, --         for consistency with other functions. -- --     -   Add macro with C-string name of extension (just to header file).@@ -805,7 +805,7 @@ -- -   Revision 32, 2015-06-26 (James Jones) -- --     -   Minor adjustments to the language describing the behavior of---         \"oldSwapchain\"+--         “oldSwapchain” -- --     -   Fixed the version date on my previous two updates. --@@ -815,7 +815,7 @@ -- -- -   Revision 34, 2015-06-26 (Ian Elliott) -----     -   Rename vkQueuePresentKHR()\'s 2nd parameter to \"pPresentInfo\",+--     -   Rename vkQueuePresentKHR()\'s 2nd parameter to “pPresentInfo”, --         for consistency with other functions. -- -- -   Revision 35, 2015-06-26 (Jason Ekstrand)@@ -855,8 +855,8 @@ -- -- -   Revision 40, 2015-07-10 (Ian Elliott) -----     -   Updated to work with version 138 of the \"vulkan.h\" header.---         This includes declaring the VkSwapchainKHR type using the new+--     -   Updated to work with version 138 of the @vulkan.h@ header. This+--         includes declaring the VkSwapchainKHR type using the new --         VK_DEFINE_NONDISP_HANDLE macro, and no longer extending --         VkObjectType (which was eliminated). --@@ -869,7 +869,7 @@ --     -   Updated query mechanism to reflect the convention changes done --         in the core spec. -----     -   Removed \"queue\" from the name of+--     -   Removed “queue” from the name of --         VK_STRUCTURE_TYPE_QUEUE_PRESENT_INFO_KHR to be consistent with --         the established naming convention. --@@ -895,7 +895,7 @@ --         VkSwapchainCreateInfoKHR struct). -- --     -   Corrected a typo in header file (last parameter in---         PFN_vkGetSurfacePropertiesKHR was missing \"KHR\" at the end of+--         PFN_vkGetSurfacePropertiesKHR was missing “KHR” at the end of --         type: VkSurfacePropertiesKHR). -- -- -   Revision 46, 2015-08-20 (Ian Elliott)@@ -904,7 +904,7 @@ --         functions, etc. This makes it compliant with the proposed --         standard for Vulkan extensions. -----     -   Switched from \"revision\" to \"version\", including use of the+--     -   Switched from “revision” to “version”, including use of the --         VK_MAKE_VERSION macro in the header file. -- --     -   Made improvements to several descriptions.@@ -918,7 +918,7 @@ --     from James Jones) -- --     -   Moved the surface transform enums to VK_WSI_swapchain so they---         could be re-used by VK_WSI_display.+--         could be reused by VK_WSI_display. -- -- -   Revision 48, 2015-09-01 (James Jones) --@@ -1029,22 +1029,21 @@ -- -- -   Revision 68, 2016-04-05 (Ian Elliott) -----     -   Moved the \"validity\" include for vkAcquireNextImage to be in---         its proper place, after the prototype and list of parameters.+--     -   Moved the “validity” include for vkAcquireNextImage to be in its+--         proper place, after the prototype and list of parameters. -- --     -   Clarified language about presentable images, including how they --         are acquired, when applications can and cannot use them, etc. As---         part of this, removed language about \"ownership\" of---         presentable images, and replaced it with more-consistent---         language about presentable images being \"acquired\" by the---         application.+--         part of this, removed language about “ownership” of presentable+--         images, and replaced it with more-consistent language about+--         presentable images being “acquired” by the application. -- -- -   2016-08-23 (Ian Elliott) -- --     -   Update the example code, to use the final API command names, to --         not have so many characters per line, and to split out a new --         example to show how to obtain function pointers. This code is---         more similar to the LunarG \"cube\" demo program.+--         more similar to the LunarG “cube” demo program. -- -- -   2016-08-25 (Ian Elliott) --@@ -1516,11 +1515,10 @@ -- variable is overwritten with the number of structures actually written -- to @pSwapchainImages@. If the value of @pSwapchainImageCount@ is less -- than the number of presentable images for @swapchain@, at most--- @pSwapchainImageCount@ structures will be written. If--- @pSwapchainImageCount@ is smaller than the number of presentable images--- for @swapchain@, '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.+-- @pSwapchainImageCount@ structures will be written, and+-- 'Vulkan.Core10.Enums.Result.INCOMPLETE' will be returned instead of+-- 'Vulkan.Core10.Enums.Result.SUCCESS', to indicate that not all the+-- available presentable images were returned. -- -- == Valid Usage (Implicit) --@@ -2201,11 +2199,10 @@ -- elements in the @pRects@ array, and on return the variable is -- overwritten with the number of structures actually written to @pRects@. -- If the value of @pRectCount@ is less than the number of rectangles, at--- most @pRectCount@ structures will be written. If @pRectCount@ is smaller--- than the number of rectangles used for the given @surface@,+-- most @pRectCount@ structures will be written, 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.+-- 'Vulkan.Core10.Enums.Result.SUCCESS', to indicate that not all the+-- available rectangles were returned. -- -- The values returned by this command are not invariant, and /may/ change -- in response to the surface being moved, resized, or occluded.@@ -2288,84 +2285,6 @@ -- -- = Description ----- Note------ On some platforms, it is normal that @maxImageExtent@ /may/ become @(0,--- 0)@, for example when the window is minimized. In such a case, it is not--- possible to create a swapchain due to the Valid Usage requirements.------ -   @imageArrayLayers@ is the number of views in a multiview\/stereo---     surface. For non-stereoscopic-3D applications, this value is 1.------ -   @imageUsage@ is a bitmask of---     'Vulkan.Core10.Enums.ImageUsageFlagBits.ImageUsageFlagBits'---     describing the intended usage of the (acquired) swapchain images.------ -   @imageSharingMode@ is the sharing mode used for the image(s) of the---     swapchain.------ -   @queueFamilyIndexCount@ is the number of queue families having---     access to the image(s) of the swapchain when @imageSharingMode@ is---     'Vulkan.Core10.Enums.SharingMode.SHARING_MODE_CONCURRENT'.------ -   @pQueueFamilyIndices@ is a pointer to an array of queue family---     indices having access to the images(s) of the swapchain when---     @imageSharingMode@ is---     'Vulkan.Core10.Enums.SharingMode.SHARING_MODE_CONCURRENT'.------ -   @preTransform@ is a---     'Vulkan.Extensions.VK_KHR_surface.SurfaceTransformFlagBitsKHR' value---     describing the transform, relative to the presentation engine’s---     natural orientation, applied to the image content prior to---     presentation. If it does not match the @currentTransform@ value---     returned by---     'Vulkan.Extensions.VK_KHR_surface.getPhysicalDeviceSurfaceCapabilitiesKHR',---     the presentation engine will transform the image content as part of---     the presentation operation.------ -   @compositeAlpha@ is a---     'Vulkan.Extensions.VK_KHR_surface.CompositeAlphaFlagBitsKHR' value---     indicating the alpha compositing mode to use when this surface is---     composited together with other surfaces on certain window systems.------ -   @presentMode@ is the presentation mode the swapchain will use. A---     swapchain’s present mode determines how incoming present requests---     will be processed and queued internally.------ -   @clipped@ specifies whether the Vulkan implementation is allowed to---     discard rendering operations that affect regions of the surface that---     are not visible.------     -   If set to 'Vulkan.Core10.FundamentalTypes.TRUE', the presentable---         images associated with the swapchain /may/ not own all of their---         pixels. Pixels in the presentable images that correspond to---         regions of the target surface obscured by another window on the---         desktop, or subject to some other clipping mechanism will have---         undefined content when read back. Fragment shaders /may/ not---         execute for these pixels, and thus any side effects they would---         have had will not occur. 'Vulkan.Core10.FundamentalTypes.TRUE'---         value does not guarantee any clipping will occur, but allows---         more optimal presentation methods to be used on some platforms.------     -   If set to 'Vulkan.Core10.FundamentalTypes.FALSE', presentable---         images associated with the swapchain will own all of the pixels---         they contain.------ Note------ Applications /should/ set this value to--- 'Vulkan.Core10.FundamentalTypes.TRUE' if they do not expect to read back--- the content of presentable images before presenting them or after--- reacquiring them, and if their fragment shaders do not have any side--- effects that require them to run for all pixels in the presentable--- image.------ -   @oldSwapchain@ is 'Vulkan.Core10.APIConstants.NULL_HANDLE', or the---     existing non-retired swapchain currently associated with @surface@.---     Providing a valid @oldSwapchain@ /may/ aid in the resource reuse,---     and also allows the application to still present any images that are---     already acquired from it.--- -- Upon calling 'createSwapchainKHR' with an @oldSwapchain@ that is not -- 'Vulkan.Core10.APIConstants.NULL_HANDLE', @oldSwapchain@ is -- retired — even if creation of the new swapchain fails. The new swapchain@@ -2691,24 +2610,78 @@     -- behavior is platform-dependent if the image extent does not match the     -- surface’s @currentExtent@ as returned by     -- 'Vulkan.Extensions.VK_KHR_surface.getPhysicalDeviceSurfaceCapabilitiesKHR'.+    --+    -- Note+    --+    -- On some platforms, it is normal that @maxImageExtent@ /may/ become @(0,+    -- 0)@, for example when the window is minimized. In such a case, it is not+    -- possible to create a swapchain due to the Valid Usage requirements.     imageExtent :: Extent2D-  , -- No documentation found for Nested "VkSwapchainCreateInfoKHR" "imageArrayLayers"+  , -- | @imageArrayLayers@ is the number of views in a multiview\/stereo+    -- surface. For non-stereoscopic-3D applications, this value is 1.     imageArrayLayers :: Word32-  , -- No documentation found for Nested "VkSwapchainCreateInfoKHR" "imageUsage"+  , -- | @imageUsage@ is a bitmask of+    -- 'Vulkan.Core10.Enums.ImageUsageFlagBits.ImageUsageFlagBits' describing+    -- the intended usage of the (acquired) swapchain images.     imageUsage :: ImageUsageFlags-  , -- No documentation found for Nested "VkSwapchainCreateInfoKHR" "imageSharingMode"+  , -- | @imageSharingMode@ is the sharing mode used for the image(s) of the+    -- swapchain.     imageSharingMode :: SharingMode-  , -- No documentation found for Nested "VkSwapchainCreateInfoKHR" "pQueueFamilyIndices"+  , -- | @pQueueFamilyIndices@ is a pointer to an array of queue family indices+    -- having access to the images(s) of the swapchain when @imageSharingMode@+    -- is 'Vulkan.Core10.Enums.SharingMode.SHARING_MODE_CONCURRENT'.     queueFamilyIndices :: Vector Word32-  , -- No documentation found for Nested "VkSwapchainCreateInfoKHR" "preTransform"+  , -- | @preTransform@ is a+    -- 'Vulkan.Extensions.VK_KHR_surface.SurfaceTransformFlagBitsKHR' value+    -- describing the transform, relative to the presentation engine’s natural+    -- orientation, applied to the image content prior to presentation. If it+    -- does not match the @currentTransform@ value returned by+    -- 'Vulkan.Extensions.VK_KHR_surface.getPhysicalDeviceSurfaceCapabilitiesKHR',+    -- the presentation engine will transform the image content as part of the+    -- presentation operation.     preTransform :: SurfaceTransformFlagBitsKHR-  , -- No documentation found for Nested "VkSwapchainCreateInfoKHR" "compositeAlpha"+  , -- | @compositeAlpha@ is a+    -- 'Vulkan.Extensions.VK_KHR_surface.CompositeAlphaFlagBitsKHR' value+    -- indicating the alpha compositing mode to use when this surface is+    -- composited together with other surfaces on certain window systems.     compositeAlpha :: CompositeAlphaFlagBitsKHR-  , -- No documentation found for Nested "VkSwapchainCreateInfoKHR" "presentMode"+  , -- | @presentMode@ is the presentation mode the swapchain will use. A+    -- swapchain’s present mode determines how incoming present requests will+    -- be processed and queued internally.     presentMode :: PresentModeKHR-  , -- No documentation found for Nested "VkSwapchainCreateInfoKHR" "clipped"+  , -- | @clipped@ specifies whether the Vulkan implementation is allowed to+    -- discard rendering operations that affect regions of the surface that are+    -- not visible.+    --+    -- -   If set to 'Vulkan.Core10.FundamentalTypes.TRUE', the presentable+    --     images associated with the swapchain /may/ not own all of their+    --     pixels. Pixels in the presentable images that correspond to regions+    --     of the target surface obscured by another window on the desktop, or+    --     subject to some other clipping mechanism will have undefined content+    --     when read back. Fragment shaders /may/ not execute for these pixels,+    --     and thus any side effects they would have had will not occur.+    --     Setting 'Vulkan.Core10.FundamentalTypes.TRUE' does not guarantee any+    --     clipping will occur, but allows more efficient presentation methods+    --     to be used on some platforms.+    --+    -- -   If set to 'Vulkan.Core10.FundamentalTypes.FALSE', presentable images+    --     associated with the swapchain will own all of the pixels they+    --     contain.+    --+    --     Note+    --+    --     Applications /should/ set this value to+    --     'Vulkan.Core10.FundamentalTypes.TRUE' if they do not expect to read+    --     back the content of presentable images before presenting them or+    --     after reacquiring them, and if their fragment shaders do not have+    --     any side effects that require them to run for all pixels in the+    --     presentable image.     clipped :: Bool-  , -- No documentation found for Nested "VkSwapchainCreateInfoKHR" "oldSwapchain"+  , -- | @oldSwapchain@ is 'Vulkan.Core10.APIConstants.NULL_HANDLE', or the+    -- existing non-retired swapchain currently associated with @surface@.+    -- Providing a valid @oldSwapchain@ /may/ aid in the resource reuse, and+    -- also allows the application to still present any images that are already+    -- acquired from it.     oldSwapchain :: SwapchainKHR   }   deriving (Typeable)@@ -3482,8 +3455,8 @@   { -- | @pDeviceMasks@ is a pointer to an array of device masks, one for each     -- element of 'PresentInfoKHR'::pSwapchains.     deviceMasks :: Vector Word32-  , -- | @mode@ is the device group present mode that will be used for this-    -- present.+  , -- | @mode@ is a 'DeviceGroupPresentModeFlagBitsKHR' value specifying the+    -- device group present mode that will be used for this present.     mode :: DeviceGroupPresentModeFlagBitsKHR   }   deriving (Typeable)@@ -3657,7 +3630,7 @@ -- | 'SWAPCHAIN_CREATE_MUTABLE_FORMAT_BIT_KHR' specifies that the images of -- the swapchain /can/ be used to create a -- 'Vulkan.Core10.Handles.ImageView' with a different format than what the--- swapchain was created with. The list of allowed image view formats are+-- swapchain was created with. The list of allowed image view formats is -- specified by adding a -- 'Vulkan.Core12.Promoted_From_VK_KHR_image_format_list.ImageFormatListCreateInfo' -- structure to the @pNext@ chain of 'SwapchainCreateInfoKHR'. In addition,
src/Vulkan/Extensions/VK_KHR_swapchain.hs-boot view
@@ -307,7 +307,7 @@ -- __RESOLVED__: Accept a semaphore to signal as an object handle. This -- avoids the need to specify whether the application must destroy the -- semaphore or whether it is owned by the swapchain, and if the latter,--- what its lifetime is and whether it can be re-used for other operations+-- what its lifetime is and whether it can be reused for other operations -- once it is received from 'acquireNextImageKHR'. -- -- 11) What types of swapchain queuing behavior should be exposed? Options@@ -329,7 +329,7 @@ --     single-entry queue is used to hold pending presentation requests. If --     the queue is full when a new presentation request is received, the --     new request replaces the existing entry, and any images associated---     with the prior entry become available for re-use by the application.+--     with the prior entry become available for reuse by the application. -- -- -   FIFO queue: Waits for the next vertical blanking period to update --     the current image. No tearing should be observed. An internal queue@@ -340,10 +340,10 @@ --     queue is non-empty -- -- Not all surfaces will support all of these modes, so the modes supported--- will be returned using a surface info query. All surfaces must support--- the FIFO queue mode. Applications must choose one of these modes up--- front when creating a swapchain. Switching modes can be accomplished by--- recreating the swapchain.+-- will be returned using a surface information query. All surfaces must+-- support the FIFO queue mode. Applications must choose one of these modes+-- up front when creating a swapchain. Switching modes can be accomplished+-- by recreating the swapchain. -- -- 12) Can 'Vulkan.Extensions.VK_KHR_surface.PRESENT_MODE_MAILBOX_KHR' -- provide non-blocking guarantees for 'acquireNextImageKHR'? If so, what@@ -379,11 +379,11 @@ -- to indicate there are no practical limits on the number of images in a -- swapchain? ----- __RESOLVED__: Yes. There where often be cases where there is no--- practical limit to the number of images in a swapchain other than the--- amount of available resources (I.e., memory) in the system. Trying to--- derive a hard limit from things like memory size is prone to failure. It--- is better in such cases to leave it to applications to figure such soft+-- __RESOLVED__: Yes. There will often be cases where there is no practical+-- limit to the number of images in a swapchain other than the amount of+-- available resources (i.e., memory) in the system. Trying to derive a+-- hard limit from things like memory size is prone to failure. It is+-- better in such cases to leave it to applications to figure such soft -- limits out via trial\/failure iterations. -- -- 15) Should there be a special value for@@ -411,7 +411,7 @@ -- __RESOLVED__: Applications can query both the supported and current -- transforms of a surface. Both are specified relative to the device’s -- “natural” display rotation and direction. The supported transforms--- indicates which orientations the presentation engine accepts images in.+-- indicate which orientations the presentation engine accepts images in. -- For example, a presentation engine that does not support transforming -- surfaces as part of presentation, and which is presenting to a surface -- that is displayed with a 90-degree rotation, would return only one@@ -484,7 +484,7 @@ -- obscuring their target surface? -- -- __RESOLVED__: Applications can choose which behavior they prefer.--- Allowing the content to be clipped could enable more optimal+-- Allowing the content to be clipped could enable more efficient -- presentation methods on some platforms, but some applications might rely -- on the content of presentable images to perform techniques such as -- partial updates or motion blurs.@@ -513,9 +513,9 @@ -- using such formats does not guarantee working in a specific color space. -- It merely means that the hardware can directly support applying the -- non-linear transfer functions defined by the sRGB standard color space--- when reading from or writing to images of that these formats. Still, it--- is unlikely that a swapchain will expose a @*_SRGB@ format along with--- any color space other than+-- when reading from or writing to images of those formats. Still, it is+-- unlikely that a swapchain will expose a @*_SRGB@ format along with any+-- color space other than -- 'Vulkan.Extensions.VK_KHR_surface.COLOR_SPACE_SRGB_NONLINEAR_KHR'. -- -- On the other hand, non-@*_SRGB@ formats will be very likely exposed in@@ -525,7 +525,7 @@ -- characteristics. In this case the application is responsible for -- applying the transfer function, for instance by using shader math. ----- 25) How are the lifetime of surfaces and swapchains targeting them+-- 25) How are the lifetimes of surfaces and swapchains targeting them -- related? -- -- __RESOLVED__: A surface must outlive any swapchains targeting it. A@@ -665,7 +665,7 @@ -- --     -   Renamed VkSurfaceCapabilityPropertiesKHR to --         VkSurfacePropertiesKHR to better convey the mutable nature of---         the info it contains.+--         the information it contains. -- -- -   Revision 12, 2015-05-28 (James Jones) --@@ -753,8 +753,8 @@ -- -   Revision 24, 2015-06-19 (Ian Elliott) -- --     -   Changed special value for VkSurfacePropertiesKHR::currentExtent---         back to \"-1\" from \"0\". This value will never need to be---         unsigned, and \"0\" is actually a legal value.+--         back to “-1” from “0”. This value will never need to be+--         unsigned, and “0” is actually a legal value. -- -- -   Revision 25, 2015-06-23 (Ian Elliott) --@@ -773,12 +773,12 @@ -- -- -   Revision 28, 2015-06-25 (James Jones) -----     -   Added the \"inherit\" bits to the rotation and mirroring flags---         and the associated issue 21.+--     -   Added the “inherit” bits to the rotation and mirroring flags and+--         the associated issue 21. -- -- -   Revision 29, 2015-06-25 (James Jones) -----     -   Added the \"clipped\" flag to VkSwapchainCreateInfoKHR, and the+--     -   Added the “clipped” flag to VkSwapchainCreateInfoKHR, and the --         associated issue 22. -- --     -   Specified that presenting an image does not modify it.@@ -791,13 +791,13 @@ -- -- -   Revision 31, 2015-06-26 (Ian Elliott) -----     -   Example of new VkSwapchainCreateInfoKHR members,---         \"oldSwapchain\" and \"clipped\".+--     -   Example of new VkSwapchainCreateInfoKHR members, “oldSwapchain”+--         and “clipped”. -- --     -   Example of using VkSurfacePropertiesKHR::{min|max}ImageCount to --         set VkSwapchainCreateInfoKHR::minImageCount. -----     -   Rename vkGetSurfaceInfoKHR()\'s 4th parameter to \"pDataSize\",+--     -   Rename vkGetSurfaceInfoKHR()\'s 4th parameter to “pDataSize”, --         for consistency with other functions. -- --     -   Add macro with C-string name of extension (just to header file).@@ -805,7 +805,7 @@ -- -   Revision 32, 2015-06-26 (James Jones) -- --     -   Minor adjustments to the language describing the behavior of---         \"oldSwapchain\"+--         “oldSwapchain” -- --     -   Fixed the version date on my previous two updates. --@@ -815,7 +815,7 @@ -- -- -   Revision 34, 2015-06-26 (Ian Elliott) -----     -   Rename vkQueuePresentKHR()\'s 2nd parameter to \"pPresentInfo\",+--     -   Rename vkQueuePresentKHR()\'s 2nd parameter to “pPresentInfo”, --         for consistency with other functions. -- -- -   Revision 35, 2015-06-26 (Jason Ekstrand)@@ -855,8 +855,8 @@ -- -- -   Revision 40, 2015-07-10 (Ian Elliott) -----     -   Updated to work with version 138 of the \"vulkan.h\" header.---         This includes declaring the VkSwapchainKHR type using the new+--     -   Updated to work with version 138 of the @vulkan.h@ header. This+--         includes declaring the VkSwapchainKHR type using the new --         VK_DEFINE_NONDISP_HANDLE macro, and no longer extending --         VkObjectType (which was eliminated). --@@ -869,7 +869,7 @@ --     -   Updated query mechanism to reflect the convention changes done --         in the core spec. -----     -   Removed \"queue\" from the name of+--     -   Removed “queue” from the name of --         VK_STRUCTURE_TYPE_QUEUE_PRESENT_INFO_KHR to be consistent with --         the established naming convention. --@@ -895,7 +895,7 @@ --         VkSwapchainCreateInfoKHR struct). -- --     -   Corrected a typo in header file (last parameter in---         PFN_vkGetSurfacePropertiesKHR was missing \"KHR\" at the end of+--         PFN_vkGetSurfacePropertiesKHR was missing “KHR” at the end of --         type: VkSurfacePropertiesKHR). -- -- -   Revision 46, 2015-08-20 (Ian Elliott)@@ -904,7 +904,7 @@ --         functions, etc. This makes it compliant with the proposed --         standard for Vulkan extensions. -----     -   Switched from \"revision\" to \"version\", including use of the+--     -   Switched from “revision” to “version”, including use of the --         VK_MAKE_VERSION macro in the header file. -- --     -   Made improvements to several descriptions.@@ -918,7 +918,7 @@ --     from James Jones) -- --     -   Moved the surface transform enums to VK_WSI_swapchain so they---         could be re-used by VK_WSI_display.+--         could be reused by VK_WSI_display. -- -- -   Revision 48, 2015-09-01 (James Jones) --@@ -1029,22 +1029,21 @@ -- -- -   Revision 68, 2016-04-05 (Ian Elliott) -----     -   Moved the \"validity\" include for vkAcquireNextImage to be in---         its proper place, after the prototype and list of parameters.+--     -   Moved the “validity” include for vkAcquireNextImage to be in its+--         proper place, after the prototype and list of parameters. -- --     -   Clarified language about presentable images, including how they --         are acquired, when applications can and cannot use them, etc. As---         part of this, removed language about \"ownership\" of---         presentable images, and replaced it with more-consistent---         language about presentable images being \"acquired\" by the---         application.+--         part of this, removed language about “ownership” of presentable+--         images, and replaced it with more-consistent language about+--         presentable images being “acquired” by the application. -- -- -   2016-08-23 (Ian Elliott) -- --     -   Update the example code, to use the final API command names, to --         not have so many characters per line, and to split out a new --         example to show how to obtain function pointers. This code is---         more similar to the LunarG \"cube\" demo program.+--         more similar to the LunarG “cube” demo program. -- -- -   2016-08-25 (Ian Elliott) --
src/Vulkan/Extensions/VK_KHR_synchronization2.hs view
@@ -30,12 +30,14 @@ -- -- == Other Extension Metadata ----- [Last Modified Date]---     2020-12-03 Interactions and External Dependencies:+-- [__Last Modified Date__]+--     2020-12-03 --+-- [__Interactions and External Dependencies__]+-- --     -   Interacts with @VK_KHR_create_renderpass2@ ----- [Contributors]+-- [__Contributors__] -- --     -   Tobias Hector --@@ -719,7 +721,7 @@ --     feature /must/ be enabled -- -- -   #VUID-vkCmdSetEvent2KHR-dependencyFlags-03825# The @dependencyFlags@---     member of @dependencyInfo@ /must/ be @0@+--     member of @pDependencyInfo@ /must/ be @0@ -- -- -   #VUID-vkCmdSetEvent2KHR-commandBuffer-03826# The current device mask --     of @commandBuffer@ /must/ include exactly one physical device.@@ -827,20 +829,18 @@ -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope> -- includes all commands that occur earlier in -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-submission-order submission order>.--- The synchronization scope is limited to operations by @stage@ or stages--- that are+-- The synchronization scope is limited to operations by @stageMask@ or+-- stages that are -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-pipeline-stages-order logically earlier>--- than @stage@.+-- than @stageMask@. -- -- The second -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope> -- includes only the event unsignal operation. ----- If @event@ is already in the unsignaled state when--- 'Vulkan.Core10.CommandBufferBuilding.cmdResetEvent' is executed on the--- device, then 'Vulkan.Core10.CommandBufferBuilding.cmdResetEvent' has no--- effect, no event unsignal operation occurs, and no execution dependency--- is generated.+-- If @event@ is already in the unsignaled state when 'cmdResetEvent2KHR'+-- is executed on the device, then this command has no effect, no event+-- unsignal operation occurs, and no execution dependency is generated. -- -- == Valid Usage --@@ -962,8 +962,8 @@                      CommandBuffer                   -> -- | @event@ is the event that will be unsignaled.                      Event-                  -> -- | @stageMask@ is a is a 'PipelineStageFlags2KHR' mask of pipeline stages-                     -- used to determine the first+                  -> -- | @stageMask@ is a 'PipelineStageFlags2KHR' mask of pipeline stages used+                     -- to determine the first                      -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>.                      ("stageMask" ::: PipelineStageFlags2KHR)                   -> io ()@@ -994,10 +994,10 @@                               -> -- | @commandBuffer@ is the command buffer into which the command is                                  -- recorded.                                  CommandBuffer-                              -> -- | @pEvents@ is an array of events to wait on.+                              -> -- | @pEvents@ is a pointer to an array of @eventCount@ events to wait on.                                  ("events" ::: Vector Event)-                              -> -- | @pDependencyInfos@ is an array of 'DependencyInfoKHR' structures,-                                 -- defining the second+                              -> -- | @pDependencyInfos@ is a pointer to an array of @eventCount@+                                 -- 'DependencyInfoKHR' structures, defining the second                                  -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>.                                  ("dependencyInfos" ::: Vector DependencyInfoKHR)                               -> io ()@@ -1032,7 +1032,7 @@ -- and -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope> -- of each memory dependency defined by any element i of @pDependencyInfos@--- are applied to operations commands that occurred earlier in+-- are applied to operations that occurred earlier in -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-submission-order submission order> -- than the last event signal operation on element i of @pEvents@. --@@ -1056,7 +1056,7 @@ -- and -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope> -- of each memory dependency defined by any element i of @pDependencyInfos@--- are applied to operations commands that occurred later in+-- are applied to operations that occurred later in -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-submission-order submission order> -- than 'cmdWaitEvents2KHR'. --@@ -1108,13 +1108,14 @@ -- -   #VUID-vkCmdWaitEvents2KHR-pEvents-03841# For any element i of --     @pEvents@, if barriers in the ith element of @pDependencyInfos@ do --     not include host operations, the ith element of @pEvents@ /must/ be---     by a corresponding 'cmdSetEvent2KHR' that occurred earlier in+--     signaled by a corresponding 'cmdSetEvent2KHR' that occurred earlier+--     in --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-submission-order submission order> -- -- -   #VUID-vkCmdWaitEvents2KHR-srcStageMask-03842# The @srcStageMask@ --     member of any element of the @pMemoryBarriers@, --     @pBufferMemoryBarriers@, or @pImageMemoryBarriers@ members of---     @pDependencyInfo@ /must/ either include only pipeline stages valid+--     @pDependencyInfos@ /must/ either include only pipeline stages valid --     for the queue family that was used to create the command pool that --     @commandBuffer@ was allocated from, or include only --     'PIPELINE_STAGE_2_HOST_BIT_KHR'@@ -1122,12 +1123,12 @@ -- -   #VUID-vkCmdWaitEvents2KHR-dstStageMask-03843# The @dstStageMask@ --     member of any element of the @pMemoryBarriers@, --     @pBufferMemoryBarriers@, or @pImageMemoryBarriers@ members of---     @pDependencyInfo@ /must/ only include pipeline stages valid for the+--     @pDependencyInfos@ /must/ only include pipeline stages valid for the --     queue family that was used to create the command pool that --     @commandBuffer@ was allocated from -- -- -   #VUID-vkCmdWaitEvents2KHR-dependencyFlags-03844# The---     @dependencyFlags@ member of any element of @dependencyInfo@ /must/+--     @dependencyFlags@ member of any element of @pDependencyInfo@ /must/ --     be @0@ -- -- -   #VUID-vkCmdWaitEvents2KHR-pEvents-03845# If @pEvents@ includes one@@ -1194,10 +1195,10 @@                   => -- | @commandBuffer@ is the command buffer into which the command is                      -- recorded.                      CommandBuffer-                  -> -- | @pEvents@ is an array of events to wait on.+                  -> -- | @pEvents@ is a pointer to an array of @eventCount@ events to wait on.                      ("events" ::: Vector Event)-                  -> -- | @pDependencyInfos@ is an array of 'DependencyInfoKHR' structures,-                     -- defining the second+                  -> -- | @pDependencyInfos@ is a pointer to an array of @eventCount@+                     -- 'DependencyInfoKHR' structures, defining the second                      -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>.                      ("dependencyInfos" ::: Vector DependencyInfoKHR)                   -> io ()@@ -1209,10 +1210,10 @@                       => -- | @commandBuffer@ is the command buffer into which the command is                          -- recorded.                          CommandBuffer-                      -> -- | @pEvents@ is an array of events to wait on.+                      -> -- | @pEvents@ is a pointer to an array of @eventCount@ events to wait on.                          ("events" ::: Vector Event)-                      -> -- | @pDependencyInfos@ is an array of 'DependencyInfoKHR' structures,-                         -- defining the second+                      -> -- | @pDependencyInfos@ is a pointer to an array of @eventCount@+                         -- 'DependencyInfoKHR' structures, defining the second                          -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>.                          ("dependencyInfos" ::: Vector DependencyInfoKHR)                       -> io ()@@ -1239,7 +1240,7 @@ -- and -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope> -- of each memory dependency defined by any element i of @pDependencyInfos@--- are applied to operations commands that occurred earlier in+-- are applied to operations that occurred earlier in -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-submission-order submission order>. -- -- The second@@ -1247,7 +1248,7 @@ -- and -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope> -- of each memory dependency defined by any element i of @pDependencyInfos@--- are applied to operations commands that occurred later in+-- are applied to operations that occurred later in -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-submission-order submission order>. -- -- If 'cmdPipelineBarrier2KHR' is recorded within a render pass instance,@@ -1424,6 +1425,15 @@ -- -- == Valid Usage --+-- -   #VUID-vkQueueSubmit2KHR-fence-04894# If @fence@ is not+--     'Vulkan.Core10.APIConstants.NULL_HANDLE', @fence@ /must/ be+--     unsignaled+--+-- -   #VUID-vkQueueSubmit2KHR-fence-04895# If @fence@ is not+--     'Vulkan.Core10.APIConstants.NULL_HANDLE', @fence@ /must/ not be+--     associated with any other queue command that has not yet completed+--     execution on that queue+-- -- -   #VUID-vkQueueSubmit2KHR-synchronization2-03866# The --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-synchronization2 synchronization2> --     feature /must/ be enabled@@ -1436,9 +1446,9 @@ --     is still in the /pending state/ -- -- -   #VUID-vkQueueSubmit2KHR-semaphore-03868# The @semaphore@ member of---     any element of the @pSignalSemaphoreInfos@ member of any element of---     @pSubmits@ /must/ be unsignaled when the semaphore signal operation---     it defines is executed on the device+--     any binary semaphore element of the @pSignalSemaphoreInfos@ member+--     of any element of @pSubmits@ /must/ be unsignaled when the semaphore+--     signal operation it defines is executed on the device -- -- -   #VUID-vkQueueSubmit2KHR-stageMask-03869# The @stageMask@ member of --     any element of the @pSignalSemaphoreInfos@ member of any element of@@ -1626,7 +1636,7 @@ -- includes all commands that occur earlier in -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-submission-order submission order>. -- The synchronization scope is limited to operations on the pipeline stage--- specified by @pipelineStage@.+-- specified by @stage@. -- -- The second -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>@@ -1735,6 +1745,9 @@ -- -   #VUID-vkCmdWriteTimestamp2KHR-timestampValidBits-03863# The command --     pool’s queue family /must/ support a non-zero @timestampValidBits@ --+-- -   #VUID-vkCmdWriteTimestamp2KHR-query-04903# @query@ /must/ be less+--     than the number of queries in @queryPool@+-- -- -   #VUID-vkCmdWriteTimestamp2KHR-None-03864# All queries used by the --     command /must/ be unavailable --@@ -1834,16 +1847,16 @@ -- specified pipeline stage. This includes the completion of other -- preceding 'cmdWriteBufferMarker2AMD' commands so long as their specified -- pipeline stages occur either at the same time or earlier than this--- command’s specified @pipelineStage@.+-- command’s specified @stage@. ----- While consecutive buffer marker writes with the same @pipelineStage@--- parameter implicitly complete in submission order, memory and execution+-- While consecutive buffer marker writes with the same @stage@ parameter+-- implicitly complete in submission order, memory and execution -- dependencies between buffer marker writes and other operations /must/ -- still be explicitly ordered using synchronization commands. The access -- scope for buffer marker writes falls under the -- 'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_TRANSFER_WRITE_BIT', and the -- pipeline stages for identifying the synchronization scope /must/ include--- both @pipelineStage@ and+-- both @stage@ and -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFER_BIT'. -- -- Note@@ -2120,23 +2133,6 @@ -- described by this structure include only operations and memory accesses -- specified by @dstStageMask@ and @dstAccessMask@. ----- == Valid Usage (Implicit)------ -   #VUID-VkMemoryBarrier2KHR-sType-sType# @sType@ /must/ be---     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_MEMORY_BARRIER_2_KHR'------ -   #VUID-VkMemoryBarrier2KHR-srcStageMask-parameter# @srcStageMask@---     /must/ be a valid combination of 'PipelineStageFlagBits2KHR' values------ -   #VUID-VkMemoryBarrier2KHR-srcAccessMask-parameter# @srcAccessMask@---     /must/ be a valid combination of 'AccessFlagBits2KHR' values------ -   #VUID-VkMemoryBarrier2KHR-dstStageMask-parameter# @dstStageMask@---     /must/ be a valid combination of 'PipelineStageFlagBits2KHR' values------ -   #VUID-VkMemoryBarrier2KHR-dstAccessMask-parameter# @dstAccessMask@---     /must/ be a valid combination of 'AccessFlagBits2KHR' values--- -- == Valid Usage -- -- -   #VUID-VkMemoryBarrier2KHR-srcStageMask-03929# If the@@ -2597,6 +2593,23 @@ --     'PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR' or --     'PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR' --+-- == Valid Usage (Implicit)+--+-- -   #VUID-VkMemoryBarrier2KHR-sType-sType# @sType@ /must/ be+--     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_MEMORY_BARRIER_2_KHR'+--+-- -   #VUID-VkMemoryBarrier2KHR-srcStageMask-parameter# @srcStageMask@+--     /must/ be a valid combination of 'PipelineStageFlagBits2KHR' values+--+-- -   #VUID-VkMemoryBarrier2KHR-srcAccessMask-parameter# @srcAccessMask@+--     /must/ be a valid combination of 'AccessFlagBits2KHR' values+--+-- -   #VUID-VkMemoryBarrier2KHR-dstStageMask-parameter# @dstStageMask@+--     /must/ be a valid combination of 'PipelineStageFlagBits2KHR' values+--+-- -   #VUID-VkMemoryBarrier2KHR-dstAccessMask-parameter# @dstAccessMask@+--     /must/ be a valid combination of 'AccessFlagBits2KHR' values+-- -- = See Also -- -- 'AccessFlags2KHR', 'DependencyInfoKHR', 'PipelineStageFlags2KHR',@@ -2612,11 +2625,9 @@   , -- | @dstStageMask@ is a 'PipelineStageFlags2KHR' mask of pipeline stages to     -- be included in the     -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-scopes second synchronization scope>.-    ---    -- @dstStageMask@ is a 'AccessFlags2KHR' mask of pipeline-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-access-scopes second access scope>.     dstStageMask :: PipelineStageFlags2KHR-  , -- No documentation found for Nested "VkMemoryBarrier2KHR" "dstAccessMask"+  , -- | @dstAccessMask@ is a 'AccessFlags2KHR' mask of pipeline+    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-access-scopes second access scope>.     dstAccessMask :: AccessFlags2KHR   }   deriving (Typeable, Eq)@@ -2682,14 +2693,14 @@ -- and -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope> -- described by this structure include only operations and memory accesses--- specified by elements @srcStageMask@ and @srcAccessMask@.+-- specified by @srcStageMask@ and @srcAccessMask@. -- -- The second -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope> -- and -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope> -- described by this structure include only operations and memory accesses--- specified by elements @dstStageMask@ and @dstAccessMask@.+-- specified by @dstStageMask@ and @dstAccessMask@. -- -- Both -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scopes>@@ -3446,9 +3457,9 @@ --     or @oldLayout@ and @newLayout@ define an --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-image-layout-transitions image layout transition>, --     and @oldLayout@ or @newLayout@ is---     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR'+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR' --     then @image@ /must/ have been created with---     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR' --     set -- -- -   #VUID-VkImageMemoryBarrier2KHR-image-01671# If @image@ has a@@ -3498,9 +3509,10 @@ --     with a sharing mode of --     'Vulkan.Core10.Enums.SharingMode.SHARING_MODE_CONCURRENT', --     @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ are not equal, and---     one of @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ is a special---     queue family values reserved for external memory transfers, the---     other /must/ be 'Vulkan.Core10.APIConstants.QUEUE_FAMILY_IGNORED'+--     one of @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ is one of the+--     special queue family values reserved for external memory transfers,+--     the other /must/ be+--     'Vulkan.Core10.APIConstants.QUEUE_FAMILY_IGNORED' -- -- -   #VUID-VkImageMemoryBarrier2KHR-image-04072# If @image@ was created --     with a sharing mode of@@ -3511,15 +3523,16 @@ --     for external memory transfers, as described in --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfers ???> ----- -   #VUID-VkImageMemoryBarrier2KHR-srcStageMask-03854# If @srcStageMask@---     or @dstStageMask@ include 'PIPELINE_STAGE_2_HOST_BIT_KHR',---     @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ /must/ be equal+-- -   #VUID-VkImageMemoryBarrier2KHR-srcStageMask-03854# If either+--     @srcStageMask@ or @dstStageMask@ includes+--     'PIPELINE_STAGE_2_HOST_BIT_KHR', @srcQueueFamilyIndex@ and+--     @dstQueueFamilyIndex@ /must/ be equal -- -- -   #VUID-VkImageMemoryBarrier2KHR-srcStageMask-03855# If @srcStageMask@ --     includes 'PIPELINE_STAGE_2_HOST_BIT_KHR', and @srcQueueFamilyIndex@ --     and @dstQueueFamilyIndex@ define a --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfers queue family ownership transfer>---     or @oldLayout@ and @newLayout@ define a+--     or @oldLayout@ and @newLayout@ define an --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-image-layout-transitions image layout transition>, --     @oldLayout@ /must/ be one of --     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_PREINITIALIZED',@@ -3589,11 +3602,9 @@   , -- | @dstStageMask@ is a 'PipelineStageFlags2KHR' mask of pipeline stages to     -- be included in the     -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-scopes second synchronization scope>.-    ---    -- @dstStageMask@ is a 'AccessFlags2KHR' mask of pipeline-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-access-scopes second access scope>.     dstStageMask :: PipelineStageFlags2KHR-  , -- No documentation found for Nested "VkImageMemoryBarrier2KHR" "dstAccessMask"+  , -- | @dstAccessMask@ is a 'AccessFlags2KHR' mask of pipeline+    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-access-scopes second access scope>.     dstAccessMask :: AccessFlags2KHR   , -- | @oldLayout@ is the old layout in an     -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-image-layout-transitions image layout transition>.@@ -3707,14 +3718,14 @@ -- and -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope> -- described by this structure include only operations and memory accesses--- specified by elements @srcStageMask@ and @srcAccessMask@.+-- specified by @srcStageMask@ and @srcAccessMask@. -- -- The second -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope> -- and -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scope> -- described by this structure include only operations and memory accesses--- specified by elements @dstStageMask@ and @dstAccessMask@.+-- specified by @dstStageMask@ and @dstAccessMask@. -- -- Both -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-access-scopes access scopes>@@ -3722,7 +3733,7 @@ -- @offset@ and @size@. -- -- If @buffer@ was created with--- 'Vulkan.Core10.Enums.SharingMode.SHARING_MODE_CONCURRENT', and+-- 'Vulkan.Core10.Enums.SharingMode.SHARING_MODE_EXCLUSIVE', and -- @srcQueueFamilyIndex@ is not equal to @dstQueueFamilyIndex@, this memory -- barrier defines a -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfers queue family transfer operation>.@@ -4270,9 +4281,10 @@ --     created with a sharing mode of --     'Vulkan.Core10.Enums.SharingMode.SHARING_MODE_CONCURRENT', --     @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ are not equal, and---     one of @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ is a special---     queue family values reserved for external memory transfers, the---     other /must/ be 'Vulkan.Core10.APIConstants.QUEUE_FAMILY_IGNORED'+--     one of @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ is one of the+--     special queue family values reserved for external memory transfers,+--     the other /must/ be+--     'Vulkan.Core10.APIConstants.QUEUE_FAMILY_IGNORED' -- -- -   #VUID-VkBufferMemoryBarrier2KHR-buffer-04089# If @buffer@ was --     created with a sharing mode of@@ -4283,8 +4295,8 @@ --     for external memory transfers, as described in --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfers ???> ----- -   #VUID-VkBufferMemoryBarrier2KHR-srcStageMask-03851# If---     @srcStageMask@ or @dstStageMask@ include+-- -   #VUID-VkBufferMemoryBarrier2KHR-srcStageMask-03851# If either+--     @srcStageMask@ or @dstStageMask@ includes --     'PIPELINE_STAGE_2_HOST_BIT_KHR', @srcQueueFamilyIndex@ and --     @dstQueueFamilyIndex@ /must/ be equal --@@ -4331,11 +4343,9 @@   , -- | @dstStageMask@ is a 'PipelineStageFlags2KHR' mask of pipeline stages to     -- be included in the     -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-scopes second synchronization scope>.-    ---    -- @dstStageMask@ is a 'AccessFlags2KHR' mask of pipeline-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-access-scopes second access scope>.     dstStageMask :: PipelineStageFlags2KHR-  , -- No documentation found for Nested "VkBufferMemoryBarrier2KHR" "dstAccessMask"+  , -- | @dstAccessMask@ is a 'AccessFlags2KHR' mask of pipeline+    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-dependencies-access-scopes second access scope>.     dstAccessMask :: AccessFlags2KHR   , -- | @srcQueueFamilyIndex@ is the source queue family for a     -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-queue-transfers queue family ownership transfer>.@@ -4936,7 +4946,7 @@   -- | VkQueueFamilyCheckpointProperties2NV - return structure for queue family--- checkpoint info query+-- checkpoint information query -- -- = Description --@@ -5061,18 +5071,19 @@ -- -- = Members ----- The members of the 'PhysicalDeviceSynchronization2FeaturesKHR' structure--- describes the following feature:+-- This structure describes the following feature: -- -- = Description -- -- If the 'PhysicalDeviceSynchronization2FeaturesKHR' structure is included--- in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- it is filled with a value indicating whether the feature is supported.--- 'PhysicalDeviceSynchronization2FeaturesKHR' /can/ also be used in the--- @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to enable the--- feature.+-- in the @pNext@ chain of the+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2'+-- structure passed to+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceFeatures2',+-- it is filled in to indicate whether each corresponding feature is+-- supported. 'PhysicalDeviceSynchronization2FeaturesKHR' /can/ also be+-- used in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to+-- selectively enable these features. -- -- == Valid Usage (Implicit) --
src/Vulkan/Extensions/VK_KHR_synchronization2.hs-boot view
@@ -30,12 +30,14 @@ -- -- == Other Extension Metadata ----- [Last Modified Date]---     2020-12-03 Interactions and External Dependencies:+-- [__Last Modified Date__]+--     2020-12-03 --+-- [__Interactions and External Dependencies__]+-- --     -   Interacts with @VK_KHR_create_renderpass2@ ----- [Contributors]+-- [__Contributors__] -- --     -   Tobias Hector --
src/Vulkan/Extensions/VK_KHR_timeline_semaphore.hs view
@@ -197,7 +197,7 @@ -- -- 4) Does the new synchronization primitive allow resetting its payload? ----- __RESOLVED__: No, allowing the payload value to \"go backwards\" is+-- __RESOLVED__: No, allowing the payload value to “go backwards” is -- problematic. Applications looking for reset behavior should create a new -- instance of the sychronization primitive instead. --
src/Vulkan/Extensions/VK_KHR_wayland_surface.hs view
@@ -147,7 +147,7 @@ -- --     -   Adjusted wording of issue #1 to match the agreed-upon solution. -----     -   Renamed \"window\" parameters to \"surface\" to match Wayland+--     -   Renamed “window” parameters to “surface” to match Wayland --         conventions. -- -- -   Revision 3, 2015-10-26 (Ian Elliott)
src/Vulkan/Extensions/VK_KHR_wayland_surface.hs-boot view
@@ -147,7 +147,7 @@ -- --     -   Adjusted wording of issue #1 to match the agreed-upon solution. -----     -   Renamed \"window\" parameters to \"surface\" to match Wayland+--     -   Renamed “window” parameters to “surface” to match Wayland --         conventions. -- -- -   Revision 3, 2015-10-26 (Ian Elliott)
src/Vulkan/Extensions/VK_KHR_win32_keyed_mutex.hs view
@@ -187,7 +187,8 @@     -- prior to beginning the submitted work. Entries refer to the keyed mutex     -- associated with the corresponding entries in @pAcquireSyncs@.     acquireKeys :: Vector Word64-  , -- No documentation found for Nested "VkWin32KeyedMutexAcquireReleaseInfoKHR" "pAcquireTimeouts"+  , -- | @pAcquireTimeouts@ is a pointer to an array of timeout values, in+    -- millisecond units, for each acquire specified in @pAcquireKeys@.     acquireTimeouts :: Vector Word32   , -- | @pReleaseSyncs@ is a pointer to an array of     -- 'Vulkan.Core10.Handles.DeviceMemory' objects which were imported from
src/Vulkan/Extensions/VK_KHR_win32_surface.hs view
@@ -167,9 +167,9 @@ --     object’s pixel format can be set only one time. -- -- -   Creating a 'Vulkan.Extensions.Handles.SwapchainKHR' over a window---     object can alter the object for the remaining life of its lifetime.---     Either of the above alterations may occur as a side-effect of---     'Vulkan.Extensions.Handles.SwapchainKHR'.+--     object can alter the object for its remaining lifetime. Either of+--     the above alterations may occur as a side effect of+--     'Vulkan.Extensions.VK_KHR_swapchain.createSwapchainKHR'. -- -- == Version History --
src/Vulkan/Extensions/VK_KHR_win32_surface.hs-boot view
@@ -167,9 +167,9 @@ --     object’s pixel format can be set only one time. -- -- -   Creating a 'Vulkan.Extensions.Handles.SwapchainKHR' over a window---     object can alter the object for the remaining life of its lifetime.---     Either of the above alterations may occur as a side-effect of---     'Vulkan.Extensions.Handles.SwapchainKHR'.+--     object can alter the object for its remaining lifetime. Either of+--     the above alterations may occur as a side effect of+--     'Vulkan.Extensions.VK_KHR_swapchain.createSwapchainKHR'. -- -- == Version History --
src/Vulkan/Extensions/VK_KHR_workgroup_memory_explicit_layout.hs view
@@ -61,7 +61,7 @@ -- of @Workgroup@ storage class memory and create aliases between variables -- from that storage class in a compute shader. ----- The aliasing feature allows different \"views\" on the same data, so the+-- The aliasing feature allows different “views” on the same data, so the -- shader can bulk copy data from another storage class using one type -- (e.g. an array of large vectors), and then use the data with a more -- specific type. It also enables reducing the amount of workgroup memory@@ -149,19 +149,20 @@ -- -- = Members ----- The members of the--- 'PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR' structure--- describe the following features:+-- This structure describes the following features: -- -- = Description -- -- If the 'PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR'--- structure is included in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- it is filled with values indicating whether the feature is supported.--- 'PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR' /can/ also be--- included in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo'--- to enable the feature.+-- 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. 'PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR'+-- /can/ also be used in the @pNext@ chain of+-- 'Vulkan.Core10.Device.DeviceCreateInfo' to selectively enable these+-- features. -- -- == Valid Usage (Implicit) --
src/Vulkan/Extensions/VK_KHR_workgroup_memory_explicit_layout.hs-boot view
@@ -61,7 +61,7 @@ -- of @Workgroup@ storage class memory and create aliases between variables -- from that storage class in a compute shader. ----- The aliasing feature allows different \"views\" on the same data, so the+-- The aliasing feature allows different “views” on the same data, so the -- shader can bulk copy data from another storage class using one type -- (e.g. an array of large vectors), and then use the data with a more -- specific type. It also enables reducing the amount of workgroup memory
src/Vulkan/Extensions/VK_KHR_xcb_surface.hs view
@@ -133,15 +133,15 @@ --     -   Added presentation support query for an (xcb_connection_t*, --         xcb_visualid_t) pair. -----     -   Removed \"root\" parameter from CreateXcbSurfaceKHR(), as it is+--     -   Removed “root” parameter from CreateXcbSurfaceKHR(), as it is --         redundant when a window on the same screen is specified as well. -- --     -   Adjusted wording of issue #1 and added agreed upon resolution. -- -- -   Revision 3, 2015-10-14 (Ian Elliott) -----     -   Removed \"root\" parameter from CreateXcbSurfaceKHR() in one---         more place.+--     -   Removed “root” parameter from CreateXcbSurfaceKHR() in one more+--         place. -- -- -   Revision 4, 2015-10-26 (Ian Elliott) --
src/Vulkan/Extensions/VK_KHR_xcb_surface.hs-boot view
@@ -133,15 +133,15 @@ --     -   Added presentation support query for an (xcb_connection_t*, --         xcb_visualid_t) pair. -----     -   Removed \"root\" parameter from CreateXcbSurfaceKHR(), as it is+--     -   Removed “root” parameter from CreateXcbSurfaceKHR(), as it is --         redundant when a window on the same screen is specified as well. -- --     -   Adjusted wording of issue #1 and added agreed upon resolution. -- -- -   Revision 3, 2015-10-14 (Ian Elliott) -----     -   Removed \"root\" parameter from CreateXcbSurfaceKHR() in one---         more place.+--     -   Removed “root” parameter from CreateXcbSurfaceKHR() in one more+--         place. -- -- -   Revision 4, 2015-10-26 (Ian Elliott) --
src/Vulkan/Extensions/VK_KHR_xlib_surface.hs view
@@ -131,7 +131,7 @@ -- --     -   Added presentation support query for (Display*, VisualID) pair. -----     -   Removed \"root\" parameter from CreateXlibSurfaceKHR(), as it is+--     -   Removed “root” parameter from CreateXlibSurfaceKHR(), as it is --         redundant when a window on the same screen is specified as well. -- --     -   Added appropriate X errors.
src/Vulkan/Extensions/VK_KHR_xlib_surface.hs-boot view
@@ -131,7 +131,7 @@ -- --     -   Added presentation support query for (Display*, VisualID) pair. -----     -   Removed \"root\" parameter from CreateXlibSurfaceKHR(), as it is+--     -   Removed “root” parameter from CreateXlibSurfaceKHR(), as it is --         redundant when a window on the same screen is specified as well. -- --     -   Added appropriate X errors.
src/Vulkan/Extensions/VK_KHR_zero_initialize_workgroup_memory.hs view
@@ -28,6 +28,8 @@ --     -   Alan Baker --         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?title=VK_KHR_zero_initialize_workgroup_memory:%20&body=@alan-baker%20 > --+-- == Other Extension Metadata+-- -- [__Last Modified Date__] --     2020-11-18 --@@ -45,6 +47,8 @@ -- --     -   Jason Ekstrand, Intel --+-- == Description+-- -- This extension allows the use of a null constant initializer on shader -- Workgroup memory variables, allowing implementations to expose any -- special hardware or instructions they may have. Zero initialization is@@ -121,19 +125,20 @@ -- -- = Members ----- The member of the--- 'PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR' structure--- describe the following feature:+-- This structure describes the following feature: -- -- = Description -- -- If the 'PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR'--- structure is included in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- it is filled with a value indicating whether the feature is supported.--- 'PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR' /can/ also be--- included in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo'--- to enable the features.+-- structure is included in the @pNext@ chain of the+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2'+-- structure passed to+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceFeatures2',+-- it is filled in to indicate whether each corresponding feature is+-- supported. 'PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR'+-- /can/ also be used in the @pNext@ chain of+-- 'Vulkan.Core10.Device.DeviceCreateInfo' to selectively enable these+-- features. -- -- == Valid Usage (Implicit) --
src/Vulkan/Extensions/VK_KHR_zero_initialize_workgroup_memory.hs-boot view
@@ -28,6 +28,8 @@ --     -   Alan Baker --         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?title=VK_KHR_zero_initialize_workgroup_memory:%20&body=@alan-baker%20 > --+-- == Other Extension Metadata+-- -- [__Last Modified Date__] --     2020-11-18 --@@ -44,6 +46,8 @@ --     -   Jeff Bolz, Nvidia -- --     -   Jason Ekstrand, Intel+--+-- == Description -- -- This extension allows the use of a null constant initializer on shader -- Workgroup memory variables, allowing implementations to expose any
src/Vulkan/Extensions/VK_NN_vi_surface.hs view
@@ -84,13 +84,13 @@ -- -- 2) 'ViSurfaceCreateInfoNN'::@pWindow@ is intended to store an -- @nn@::@vi@::@NativeWindowHandle@, but its declared type is a bare--- @void@* to store the window handle. Why the discrepancy?+-- @void*@ to store the window handle. Why the discrepancy? -- -- __RESOLVED__: It is for C compatibility. The definition for the VI -- native window handle type is defined inside the @nn@::@vi@ C++ -- namespace. This prevents its use in C source files.--- @nn@::@vi@::@NativeWindowHandle@ is always defined to be @void@*, so--- this extension uses @void@* to match.+-- @nn@::@vi@::@NativeWindowHandle@ is always defined to be @void*@, so+-- this extension uses @void*@ to match. -- -- == Version History --
src/Vulkan/Extensions/VK_NN_vi_surface.hs-boot view
@@ -84,13 +84,13 @@ -- -- 2) 'ViSurfaceCreateInfoNN'::@pWindow@ is intended to store an -- @nn@::@vi@::@NativeWindowHandle@, but its declared type is a bare--- @void@* to store the window handle. Why the discrepancy?+-- @void*@ to store the window handle. Why the discrepancy? -- -- __RESOLVED__: It is for C compatibility. The definition for the VI -- native window handle type is defined inside the @nn@::@vi@ C++ -- namespace. This prevents its use in C source files.--- @nn@::@vi@::@NativeWindowHandle@ is always defined to be @void@*, so--- this extension uses @void@* to match.+-- @nn@::@vi@::@NativeWindowHandle@ is always defined to be @void*@, so+-- this extension uses @void*@ to match. -- -- == Version History --
+ src/Vulkan/Extensions/VK_NVX_binary_import.hs view
@@ -0,0 +1,602 @@+{-# language CPP #-}+-- | = Name+--+-- VK_NVX_binary_import - device extension+--+-- == VK_NVX_binary_import+--+-- [__Name String__]+--     @VK_NVX_binary_import@+--+-- [__Extension Type__]+--     Device extension+--+-- [__Registered Extension Number__]+--     30+--+-- [__Revision__]+--     1+--+-- [__Extension and Version Dependencies__]+--+--     -   Requires Vulkan 1.0+--+-- [__Contact__]+--+--     -   Eric Werness+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?title=VK_NVX_binary_import:%20&body=@ewerness%20 >+--+--     -   Liam Middlebrook+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?title=VK_NVX_binary_import:%20&body=@liam-middlebrook%20 >+--+-- == Other Extension Metadata+--+-- [__Last Modified Date__]+--     2021-04-09+--+-- [__Contributors__]+--+--     -   Eric Werness, NVIDIA+--+--     -   Liam Middlebrook, NVIDIA+--+-- == Description+--+-- This extension allows applications to import CuBIN binaries and execute+-- them.+--+-- == New Object Types+--+-- -   'Vulkan.Extensions.Handles.CuFunctionNVX'+--+-- -   'Vulkan.Extensions.Handles.CuModuleNVX'+--+-- == New Commands+--+-- -   'cmdCuLaunchKernelNVX'+--+-- -   'createCuFunctionNVX'+--+-- -   'createCuModuleNVX'+--+-- -   'destroyCuFunctionNVX'+--+-- -   'destroyCuModuleNVX'+--+-- == New Structures+--+-- -   'CuFunctionCreateInfoNVX'+--+-- -   'CuLaunchInfoNVX'+--+-- -   'CuModuleCreateInfoNVX'+--+-- == New Enum Constants+--+-- -   'NVX_BINARY_IMPORT_EXTENSION_NAME'+--+-- -   'NVX_BINARY_IMPORT_SPEC_VERSION'+--+-- -   Extending+--     'Vulkan.Extensions.VK_EXT_debug_report.DebugReportObjectTypeEXT':+--+--     -   'Vulkan.Extensions.VK_EXT_debug_report.DEBUG_REPORT_OBJECT_TYPE_CU_FUNCTION_NVX_EXT'+--+--     -   'Vulkan.Extensions.VK_EXT_debug_report.DEBUG_REPORT_OBJECT_TYPE_CU_MODULE_NVX_EXT'+--+-- -   Extending 'Vulkan.Core10.Enums.ObjectType.ObjectType':+--+--     -   'Vulkan.Core10.Enums.ObjectType.OBJECT_TYPE_CU_FUNCTION_NVX'+--+--     -   'Vulkan.Core10.Enums.ObjectType.OBJECT_TYPE_CU_MODULE_NVX'+--+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_CU_FUNCTION_CREATE_INFO_NVX'+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_CU_LAUNCH_INFO_NVX'+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_CU_MODULE_CREATE_INFO_NVX'+--+-- == Version History+--+-- -   Revision 1, 2021-04-09 (Eric Werness)+--+--     -   Internal revisions+--+-- = See Also+--+-- 'CuFunctionCreateInfoNVX', 'Vulkan.Extensions.Handles.CuFunctionNVX',+-- 'CuLaunchInfoNVX', 'CuModuleCreateInfoNVX',+-- 'Vulkan.Extensions.Handles.CuModuleNVX', 'cmdCuLaunchKernelNVX',+-- 'createCuFunctionNVX', 'createCuModuleNVX', 'destroyCuFunctionNVX',+-- 'destroyCuModuleNVX'+--+-- = Document Notes+--+-- For more information, see the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NVX_binary_import Vulkan Specification>+--+-- This page is a generated document. Fixes and changes should be made to+-- the generator scripts, not directly.+module Vulkan.Extensions.VK_NVX_binary_import  ( createCuModuleNVX+                                               , withCuModuleNVX+                                               , createCuFunctionNVX+                                               , withCuFunctionNVX+                                               , destroyCuModuleNVX+                                               , destroyCuFunctionNVX+                                               , cmdCuLaunchKernelNVX+                                               , CuModuleCreateInfoNVX(..)+                                               , CuFunctionCreateInfoNVX(..)+                                               , CuLaunchInfoNVX(..)+                                               , NVX_BINARY_IMPORT_SPEC_VERSION+                                               , pattern NVX_BINARY_IMPORT_SPEC_VERSION+                                               , NVX_BINARY_IMPORT_EXTENSION_NAME+                                               , pattern NVX_BINARY_IMPORT_EXTENSION_NAME+                                               , CuModuleNVX(..)+                                               , CuFunctionNVX(..)+                                               , DebugReportObjectTypeEXT(..)+                                               ) where++import Vulkan.Internal.Utils (traceAroundEvent)+import Control.Exception.Base (bracket)+import Control.Monad (unless)+import Control.Monad.IO.Class (liftIO)+import Foreign.Marshal.Alloc (allocaBytesAligned)+import Foreign.Marshal.Alloc (callocBytes)+import Foreign.Marshal.Alloc (free)+import GHC.Base (when)+import GHC.IO (throwIO)+import GHC.Ptr (nullFunPtr)+import Foreign.Ptr (nullPtr)+import Foreign.Ptr (plusPtr)+import Data.ByteString (packCString)+import Data.ByteString (useAsCString)+import Data.Coerce (coerce)+import Control.Monad.Trans.Class (lift)+import Control.Monad.Trans.Cont (evalContT)+import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (FromCStruct(..))+import Vulkan.CStruct (ToCStruct)+import Vulkan.CStruct (ToCStruct(..))+import Vulkan.Zero (Zero(..))+import Control.Monad.IO.Class (MonadIO)+import Data.String (IsString)+import Data.Typeable (Typeable)+import Foreign.C.Types (CChar)+import Foreign.C.Types (CSize)+import Foreign.C.Types (CSize(..))+import Foreign.C.Types (CSize(CSize))+import Foreign.Storable (Storable)+import Foreign.Storable (Storable(peek))+import Foreign.Storable (Storable(poke))+import qualified Foreign.Storable (Storable(..))+import GHC.Generics (Generic)+import GHC.IO.Exception (IOErrorType(..))+import GHC.IO.Exception (IOException(..))+import Foreign.Ptr (FunPtr)+import Foreign.Ptr (Ptr)+import Data.Word (Word32)+import Data.Word (Word64)+import Data.ByteString (ByteString)+import Data.Kind (Type)+import Control.Monad.Trans.Cont (ContT(..))+import Vulkan.NamedType ((:::))+import Vulkan.Core10.AllocationCallbacks (AllocationCallbacks)+import Vulkan.Core10.Handles (CommandBuffer)+import Vulkan.Core10.Handles (CommandBuffer(..))+import Vulkan.Core10.Handles (CommandBuffer_T)+import Vulkan.Extensions.Handles (CuFunctionNVX)+import Vulkan.Extensions.Handles (CuFunctionNVX(..))+import Vulkan.Extensions.Handles (CuModuleNVX)+import Vulkan.Extensions.Handles (CuModuleNVX(..))+import Vulkan.Core10.Handles (Device)+import Vulkan.Core10.Handles (Device(..))+import Vulkan.Dynamic (DeviceCmds(pVkCmdCuLaunchKernelNVX))+import Vulkan.Dynamic (DeviceCmds(pVkCreateCuFunctionNVX))+import Vulkan.Dynamic (DeviceCmds(pVkCreateCuModuleNVX))+import Vulkan.Dynamic (DeviceCmds(pVkDestroyCuFunctionNVX))+import Vulkan.Dynamic (DeviceCmds(pVkDestroyCuModuleNVX))+import Vulkan.Core10.Handles (Device_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_CU_FUNCTION_CREATE_INFO_NVX))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_CU_LAUNCH_INFO_NVX))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_CU_MODULE_CREATE_INFO_NVX))+import Vulkan.Core10.Enums.Result (Result(SUCCESS))+import Vulkan.Extensions.Handles (CuFunctionNVX(..))+import Vulkan.Extensions.Handles (CuModuleNVX(..))+import Vulkan.Extensions.VK_EXT_debug_report (DebugReportObjectTypeEXT(..))+foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCreateCuModuleNVX+  :: FunPtr (Ptr Device_T -> Ptr CuModuleCreateInfoNVX -> Ptr AllocationCallbacks -> Ptr CuModuleNVX -> IO Result) -> Ptr Device_T -> Ptr CuModuleCreateInfoNVX -> Ptr AllocationCallbacks -> Ptr CuModuleNVX -> IO Result++-- No documentation found for TopLevel "vkCreateCuModuleNVX"+createCuModuleNVX :: forall io+                   . (MonadIO io)+                  => -- No documentation found for Nested "vkCreateCuModuleNVX" "device"+                     Device+                  -> -- No documentation found for Nested "vkCreateCuModuleNVX" "pCreateInfo"+                     CuModuleCreateInfoNVX+                  -> -- No documentation found for Nested "vkCreateCuModuleNVX" "pAllocator"+                     ("allocator" ::: Maybe AllocationCallbacks)+                  -> io (CuModuleNVX)+createCuModuleNVX device createInfo allocator = liftIO . evalContT $ do+  let vkCreateCuModuleNVXPtr = pVkCreateCuModuleNVX (deviceCmds (device :: Device))+  lift $ unless (vkCreateCuModuleNVXPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCreateCuModuleNVX is null" Nothing Nothing+  let vkCreateCuModuleNVX' = mkVkCreateCuModuleNVX vkCreateCuModuleNVXPtr+  pCreateInfo <- ContT $ withCStruct (createInfo)+  pAllocator <- case (allocator) of+    Nothing -> pure nullPtr+    Just j -> ContT $ withCStruct (j)+  pPModule <- ContT $ bracket (callocBytes @CuModuleNVX 8) free+  r <- lift $ traceAroundEvent "vkCreateCuModuleNVX" (vkCreateCuModuleNVX' (deviceHandle (device)) pCreateInfo pAllocator (pPModule))+  lift $ when (r < SUCCESS) (throwIO (VulkanException r))+  pModule <- lift $ peek @CuModuleNVX pPModule+  pure $ (pModule)++-- | A convenience wrapper to make a compatible pair of calls to+-- 'createCuModuleNVX' and 'destroyCuModuleNVX'+--+-- To ensure that 'destroyCuModuleNVX' is always called: pass+-- 'Control.Exception.bracket' (or the allocate function from your+-- favourite resource management library) as the last argument.+-- To just extract the pair pass '(,)' as the last argument.+--+withCuModuleNVX :: forall io r . MonadIO io => Device -> CuModuleCreateInfoNVX -> Maybe AllocationCallbacks -> (io CuModuleNVX -> (CuModuleNVX -> io ()) -> r) -> r+withCuModuleNVX device pCreateInfo pAllocator b =+  b (createCuModuleNVX device pCreateInfo pAllocator)+    (\(o0) -> destroyCuModuleNVX device o0 pAllocator)+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCreateCuFunctionNVX+  :: FunPtr (Ptr Device_T -> Ptr CuFunctionCreateInfoNVX -> Ptr AllocationCallbacks -> Ptr CuFunctionNVX -> IO Result) -> Ptr Device_T -> Ptr CuFunctionCreateInfoNVX -> Ptr AllocationCallbacks -> Ptr CuFunctionNVX -> IO Result++-- No documentation found for TopLevel "vkCreateCuFunctionNVX"+createCuFunctionNVX :: forall io+                     . (MonadIO io)+                    => -- No documentation found for Nested "vkCreateCuFunctionNVX" "device"+                       Device+                    -> -- No documentation found for Nested "vkCreateCuFunctionNVX" "pCreateInfo"+                       CuFunctionCreateInfoNVX+                    -> -- No documentation found for Nested "vkCreateCuFunctionNVX" "pAllocator"+                       ("allocator" ::: Maybe AllocationCallbacks)+                    -> io (CuFunctionNVX)+createCuFunctionNVX device createInfo allocator = liftIO . evalContT $ do+  let vkCreateCuFunctionNVXPtr = pVkCreateCuFunctionNVX (deviceCmds (device :: Device))+  lift $ unless (vkCreateCuFunctionNVXPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCreateCuFunctionNVX is null" Nothing Nothing+  let vkCreateCuFunctionNVX' = mkVkCreateCuFunctionNVX vkCreateCuFunctionNVXPtr+  pCreateInfo <- ContT $ withCStruct (createInfo)+  pAllocator <- case (allocator) of+    Nothing -> pure nullPtr+    Just j -> ContT $ withCStruct (j)+  pPFunction <- ContT $ bracket (callocBytes @CuFunctionNVX 8) free+  r <- lift $ traceAroundEvent "vkCreateCuFunctionNVX" (vkCreateCuFunctionNVX' (deviceHandle (device)) pCreateInfo pAllocator (pPFunction))+  lift $ when (r < SUCCESS) (throwIO (VulkanException r))+  pFunction <- lift $ peek @CuFunctionNVX pPFunction+  pure $ (pFunction)++-- | A convenience wrapper to make a compatible pair of calls to+-- 'createCuFunctionNVX' and 'destroyCuFunctionNVX'+--+-- To ensure that 'destroyCuFunctionNVX' is always called: pass+-- 'Control.Exception.bracket' (or the allocate function from your+-- favourite resource management library) as the last argument.+-- To just extract the pair pass '(,)' as the last argument.+--+withCuFunctionNVX :: forall io r . MonadIO io => Device -> CuFunctionCreateInfoNVX -> Maybe AllocationCallbacks -> (io CuFunctionNVX -> (CuFunctionNVX -> io ()) -> r) -> r+withCuFunctionNVX device pCreateInfo pAllocator b =+  b (createCuFunctionNVX device pCreateInfo pAllocator)+    (\(o0) -> destroyCuFunctionNVX device o0 pAllocator)+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkDestroyCuModuleNVX+  :: FunPtr (Ptr Device_T -> CuModuleNVX -> Ptr AllocationCallbacks -> IO ()) -> Ptr Device_T -> CuModuleNVX -> Ptr AllocationCallbacks -> IO ()++-- No documentation found for TopLevel "vkDestroyCuModuleNVX"+destroyCuModuleNVX :: forall io+                    . (MonadIO io)+                   => -- No documentation found for Nested "vkDestroyCuModuleNVX" "device"+                      Device+                   -> -- No documentation found for Nested "vkDestroyCuModuleNVX" "module"+                      CuModuleNVX+                   -> -- No documentation found for Nested "vkDestroyCuModuleNVX" "pAllocator"+                      ("allocator" ::: Maybe AllocationCallbacks)+                   -> io ()+destroyCuModuleNVX device module' allocator = liftIO . evalContT $ do+  let vkDestroyCuModuleNVXPtr = pVkDestroyCuModuleNVX (deviceCmds (device :: Device))+  lift $ unless (vkDestroyCuModuleNVXPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkDestroyCuModuleNVX is null" Nothing Nothing+  let vkDestroyCuModuleNVX' = mkVkDestroyCuModuleNVX vkDestroyCuModuleNVXPtr+  pAllocator <- case (allocator) of+    Nothing -> pure nullPtr+    Just j -> ContT $ withCStruct (j)+  lift $ traceAroundEvent "vkDestroyCuModuleNVX" (vkDestroyCuModuleNVX' (deviceHandle (device)) (module') pAllocator)+  pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkDestroyCuFunctionNVX+  :: FunPtr (Ptr Device_T -> CuFunctionNVX -> Ptr AllocationCallbacks -> IO ()) -> Ptr Device_T -> CuFunctionNVX -> Ptr AllocationCallbacks -> IO ()++-- No documentation found for TopLevel "vkDestroyCuFunctionNVX"+destroyCuFunctionNVX :: forall io+                      . (MonadIO io)+                     => -- No documentation found for Nested "vkDestroyCuFunctionNVX" "device"+                        Device+                     -> -- No documentation found for Nested "vkDestroyCuFunctionNVX" "function"+                        CuFunctionNVX+                     -> -- No documentation found for Nested "vkDestroyCuFunctionNVX" "pAllocator"+                        ("allocator" ::: Maybe AllocationCallbacks)+                     -> io ()+destroyCuFunctionNVX device function allocator = liftIO . evalContT $ do+  let vkDestroyCuFunctionNVXPtr = pVkDestroyCuFunctionNVX (deviceCmds (device :: Device))+  lift $ unless (vkDestroyCuFunctionNVXPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkDestroyCuFunctionNVX is null" Nothing Nothing+  let vkDestroyCuFunctionNVX' = mkVkDestroyCuFunctionNVX vkDestroyCuFunctionNVXPtr+  pAllocator <- case (allocator) of+    Nothing -> pure nullPtr+    Just j -> ContT $ withCStruct (j)+  lift $ traceAroundEvent "vkDestroyCuFunctionNVX" (vkDestroyCuFunctionNVX' (deviceHandle (device)) (function) pAllocator)+  pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdCuLaunchKernelNVX+  :: FunPtr (Ptr CommandBuffer_T -> Ptr CuLaunchInfoNVX -> IO ()) -> Ptr CommandBuffer_T -> Ptr CuLaunchInfoNVX -> IO ()++-- No documentation found for TopLevel "vkCmdCuLaunchKernelNVX"+cmdCuLaunchKernelNVX :: forall io+                      . (MonadIO io)+                     => -- No documentation found for Nested "vkCmdCuLaunchKernelNVX" "commandBuffer"+                        CommandBuffer+                     -> -- No documentation found for Nested "vkCmdCuLaunchKernelNVX" "pLaunchInfo"+                        CuLaunchInfoNVX+                     -> io ()+cmdCuLaunchKernelNVX commandBuffer launchInfo = liftIO . evalContT $ do+  let vkCmdCuLaunchKernelNVXPtr = pVkCmdCuLaunchKernelNVX (deviceCmds (commandBuffer :: CommandBuffer))+  lift $ unless (vkCmdCuLaunchKernelNVXPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdCuLaunchKernelNVX is null" Nothing Nothing+  let vkCmdCuLaunchKernelNVX' = mkVkCmdCuLaunchKernelNVX vkCmdCuLaunchKernelNVXPtr+  pLaunchInfo <- ContT $ withCStruct (launchInfo)+  lift $ traceAroundEvent "vkCmdCuLaunchKernelNVX" (vkCmdCuLaunchKernelNVX' (commandBufferHandle (commandBuffer)) pLaunchInfo)+  pure $ ()+++-- No documentation found for TopLevel "VkCuModuleCreateInfoNVX"+data CuModuleCreateInfoNVX = CuModuleCreateInfoNVX+  { -- No documentation found for Nested "VkCuModuleCreateInfoNVX" "dataSize"+    dataSize :: Word64+  , -- No documentation found for Nested "VkCuModuleCreateInfoNVX" "pData"+    data' :: Ptr ()+  }+  deriving (Typeable)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (CuModuleCreateInfoNVX)+#endif+deriving instance Show CuModuleCreateInfoNVX++instance ToCStruct CuModuleCreateInfoNVX where+  withCStruct x f = allocaBytesAligned 32 8 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p CuModuleCreateInfoNVX{..} f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_CU_MODULE_CREATE_INFO_NVX)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr CSize)) (CSize (dataSize))+    poke ((p `plusPtr` 24 :: Ptr (Ptr ()))) (data')+    f+  cStructSize = 32+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_CU_MODULE_CREATE_INFO_NVX)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr CSize)) (CSize (zero))+    poke ((p `plusPtr` 24 :: Ptr (Ptr ()))) (zero)+    f++instance FromCStruct CuModuleCreateInfoNVX where+  peekCStruct p = do+    dataSize <- peek @CSize ((p `plusPtr` 16 :: Ptr CSize))+    pData <- peek @(Ptr ()) ((p `plusPtr` 24 :: Ptr (Ptr ())))+    pure $ CuModuleCreateInfoNVX+             (coerce @CSize @Word64 dataSize) pData++instance Storable CuModuleCreateInfoNVX where+  sizeOf ~_ = 32+  alignment ~_ = 8+  peek = peekCStruct+  poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero CuModuleCreateInfoNVX where+  zero = CuModuleCreateInfoNVX+           zero+           zero+++-- No documentation found for TopLevel "VkCuFunctionCreateInfoNVX"+data CuFunctionCreateInfoNVX = CuFunctionCreateInfoNVX+  { -- No documentation found for Nested "VkCuFunctionCreateInfoNVX" "module"+    module' :: CuModuleNVX+  , -- No documentation found for Nested "VkCuFunctionCreateInfoNVX" "pName"+    name :: ByteString+  }+  deriving (Typeable)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (CuFunctionCreateInfoNVX)+#endif+deriving instance Show CuFunctionCreateInfoNVX++instance ToCStruct CuFunctionCreateInfoNVX where+  withCStruct x f = allocaBytesAligned 32 8 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p CuFunctionCreateInfoNVX{..} f = evalContT $ do+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_CU_FUNCTION_CREATE_INFO_NVX)+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    lift $ poke ((p `plusPtr` 16 :: Ptr CuModuleNVX)) (module')+    pName'' <- ContT $ useAsCString (name)+    lift $ poke ((p `plusPtr` 24 :: Ptr (Ptr CChar))) pName''+    lift $ f+  cStructSize = 32+  cStructAlignment = 8+  pokeZeroCStruct p f = evalContT $ do+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_CU_FUNCTION_CREATE_INFO_NVX)+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    lift $ poke ((p `plusPtr` 16 :: Ptr CuModuleNVX)) (zero)+    pName'' <- ContT $ useAsCString (mempty)+    lift $ poke ((p `plusPtr` 24 :: Ptr (Ptr CChar))) pName''+    lift $ f++instance FromCStruct CuFunctionCreateInfoNVX where+  peekCStruct p = do+    module' <- peek @CuModuleNVX ((p `plusPtr` 16 :: Ptr CuModuleNVX))+    pName <- packCString =<< peek ((p `plusPtr` 24 :: Ptr (Ptr CChar)))+    pure $ CuFunctionCreateInfoNVX+             module' pName++instance Zero CuFunctionCreateInfoNVX where+  zero = CuFunctionCreateInfoNVX+           zero+           mempty+++-- No documentation found for TopLevel "VkCuLaunchInfoNVX"+data CuLaunchInfoNVX = CuLaunchInfoNVX+  { -- No documentation found for Nested "VkCuLaunchInfoNVX" "function"+    function :: CuFunctionNVX+  , -- No documentation found for Nested "VkCuLaunchInfoNVX" "gridDimX"+    gridDimX :: Word32+  , -- No documentation found for Nested "VkCuLaunchInfoNVX" "gridDimY"+    gridDimY :: Word32+  , -- No documentation found for Nested "VkCuLaunchInfoNVX" "gridDimZ"+    gridDimZ :: Word32+  , -- No documentation found for Nested "VkCuLaunchInfoNVX" "blockDimX"+    blockDimX :: Word32+  , -- No documentation found for Nested "VkCuLaunchInfoNVX" "blockDimY"+    blockDimY :: Word32+  , -- No documentation found for Nested "VkCuLaunchInfoNVX" "blockDimZ"+    blockDimZ :: Word32+  , -- No documentation found for Nested "VkCuLaunchInfoNVX" "sharedMemBytes"+    sharedMemBytes :: Word32+  , -- No documentation found for Nested "VkCuLaunchInfoNVX" "paramCount"+    paramCount :: Word64+  , -- No documentation found for Nested "VkCuLaunchInfoNVX" "pParams"+    params :: Ptr (Ptr ())+  , -- No documentation found for Nested "VkCuLaunchInfoNVX" "extraCount"+    extraCount :: Word64+  , -- No documentation found for Nested "VkCuLaunchInfoNVX" "pExtras"+    extras :: Ptr (Ptr ())+  }+  deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (CuLaunchInfoNVX)+#endif+deriving instance Show CuLaunchInfoNVX++instance ToCStruct CuLaunchInfoNVX where+  withCStruct x f = allocaBytesAligned 88 8 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p CuLaunchInfoNVX{..} f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_CU_LAUNCH_INFO_NVX)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr CuFunctionNVX)) (function)+    poke ((p `plusPtr` 24 :: Ptr Word32)) (gridDimX)+    poke ((p `plusPtr` 28 :: Ptr Word32)) (gridDimY)+    poke ((p `plusPtr` 32 :: Ptr Word32)) (gridDimZ)+    poke ((p `plusPtr` 36 :: Ptr Word32)) (blockDimX)+    poke ((p `plusPtr` 40 :: Ptr Word32)) (blockDimY)+    poke ((p `plusPtr` 44 :: Ptr Word32)) (blockDimZ)+    poke ((p `plusPtr` 48 :: Ptr Word32)) (sharedMemBytes)+    poke ((p `plusPtr` 56 :: Ptr CSize)) (CSize (paramCount))+    poke ((p `plusPtr` 64 :: Ptr (Ptr (Ptr ())))) (params)+    poke ((p `plusPtr` 72 :: Ptr CSize)) (CSize (extraCount))+    poke ((p `plusPtr` 80 :: Ptr (Ptr (Ptr ())))) (extras)+    f+  cStructSize = 88+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_CU_LAUNCH_INFO_NVX)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr CuFunctionNVX)) (zero)+    poke ((p `plusPtr` 24 :: Ptr Word32)) (zero)+    poke ((p `plusPtr` 28 :: Ptr Word32)) (zero)+    poke ((p `plusPtr` 32 :: Ptr Word32)) (zero)+    poke ((p `plusPtr` 36 :: Ptr Word32)) (zero)+    poke ((p `plusPtr` 40 :: Ptr Word32)) (zero)+    poke ((p `plusPtr` 44 :: Ptr Word32)) (zero)+    poke ((p `plusPtr` 48 :: Ptr Word32)) (zero)+    poke ((p `plusPtr` 56 :: Ptr CSize)) (CSize (zero))+    poke ((p `plusPtr` 64 :: Ptr (Ptr (Ptr ())))) (zero)+    poke ((p `plusPtr` 72 :: Ptr CSize)) (CSize (zero))+    poke ((p `plusPtr` 80 :: Ptr (Ptr (Ptr ())))) (zero)+    f++instance FromCStruct CuLaunchInfoNVX where+  peekCStruct p = do+    function <- peek @CuFunctionNVX ((p `plusPtr` 16 :: Ptr CuFunctionNVX))+    gridDimX <- peek @Word32 ((p `plusPtr` 24 :: Ptr Word32))+    gridDimY <- peek @Word32 ((p `plusPtr` 28 :: Ptr Word32))+    gridDimZ <- peek @Word32 ((p `plusPtr` 32 :: Ptr Word32))+    blockDimX <- peek @Word32 ((p `plusPtr` 36 :: Ptr Word32))+    blockDimY <- peek @Word32 ((p `plusPtr` 40 :: Ptr Word32))+    blockDimZ <- peek @Word32 ((p `plusPtr` 44 :: Ptr Word32))+    sharedMemBytes <- peek @Word32 ((p `plusPtr` 48 :: Ptr Word32))+    paramCount <- peek @CSize ((p `plusPtr` 56 :: Ptr CSize))+    pParams <- peek @(Ptr (Ptr ())) ((p `plusPtr` 64 :: Ptr (Ptr (Ptr ()))))+    extraCount <- peek @CSize ((p `plusPtr` 72 :: Ptr CSize))+    pExtras <- peek @(Ptr (Ptr ())) ((p `plusPtr` 80 :: Ptr (Ptr (Ptr ()))))+    pure $ CuLaunchInfoNVX+             function gridDimX gridDimY gridDimZ blockDimX blockDimY blockDimZ sharedMemBytes (coerce @CSize @Word64 paramCount) pParams (coerce @CSize @Word64 extraCount) pExtras++instance Storable CuLaunchInfoNVX where+  sizeOf ~_ = 88+  alignment ~_ = 8+  peek = peekCStruct+  poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero CuLaunchInfoNVX where+  zero = CuLaunchInfoNVX+           zero+           zero+           zero+           zero+           zero+           zero+           zero+           zero+           zero+           zero+           zero+           zero+++type NVX_BINARY_IMPORT_SPEC_VERSION = 1++-- No documentation found for TopLevel "VK_NVX_BINARY_IMPORT_SPEC_VERSION"+pattern NVX_BINARY_IMPORT_SPEC_VERSION :: forall a . Integral a => a+pattern NVX_BINARY_IMPORT_SPEC_VERSION = 1+++type NVX_BINARY_IMPORT_EXTENSION_NAME = "VK_NVX_binary_import"++-- No documentation found for TopLevel "VK_NVX_BINARY_IMPORT_EXTENSION_NAME"+pattern NVX_BINARY_IMPORT_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a+pattern NVX_BINARY_IMPORT_EXTENSION_NAME = "VK_NVX_binary_import"+
+ src/Vulkan/Extensions/VK_NVX_binary_import.hs-boot view
@@ -0,0 +1,153 @@+{-# language CPP #-}+-- | = Name+--+-- VK_NVX_binary_import - device extension+--+-- == VK_NVX_binary_import+--+-- [__Name String__]+--     @VK_NVX_binary_import@+--+-- [__Extension Type__]+--     Device extension+--+-- [__Registered Extension Number__]+--     30+--+-- [__Revision__]+--     1+--+-- [__Extension and Version Dependencies__]+--+--     -   Requires Vulkan 1.0+--+-- [__Contact__]+--+--     -   Eric Werness+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?title=VK_NVX_binary_import:%20&body=@ewerness%20 >+--+--     -   Liam Middlebrook+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?title=VK_NVX_binary_import:%20&body=@liam-middlebrook%20 >+--+-- == Other Extension Metadata+--+-- [__Last Modified Date__]+--     2021-04-09+--+-- [__Contributors__]+--+--     -   Eric Werness, NVIDIA+--+--     -   Liam Middlebrook, NVIDIA+--+-- == Description+--+-- This extension allows applications to import CuBIN binaries and execute+-- them.+--+-- == New Object Types+--+-- -   'Vulkan.Extensions.Handles.CuFunctionNVX'+--+-- -   'Vulkan.Extensions.Handles.CuModuleNVX'+--+-- == New Commands+--+-- -   'cmdCuLaunchKernelNVX'+--+-- -   'createCuFunctionNVX'+--+-- -   'createCuModuleNVX'+--+-- -   'destroyCuFunctionNVX'+--+-- -   'destroyCuModuleNVX'+--+-- == New Structures+--+-- -   'CuFunctionCreateInfoNVX'+--+-- -   'CuLaunchInfoNVX'+--+-- -   'CuModuleCreateInfoNVX'+--+-- == New Enum Constants+--+-- -   'NVX_BINARY_IMPORT_EXTENSION_NAME'+--+-- -   'NVX_BINARY_IMPORT_SPEC_VERSION'+--+-- -   Extending+--     'Vulkan.Extensions.VK_EXT_debug_report.DebugReportObjectTypeEXT':+--+--     -   'Vulkan.Extensions.VK_EXT_debug_report.DEBUG_REPORT_OBJECT_TYPE_CU_FUNCTION_NVX_EXT'+--+--     -   'Vulkan.Extensions.VK_EXT_debug_report.DEBUG_REPORT_OBJECT_TYPE_CU_MODULE_NVX_EXT'+--+-- -   Extending 'Vulkan.Core10.Enums.ObjectType.ObjectType':+--+--     -   'Vulkan.Core10.Enums.ObjectType.OBJECT_TYPE_CU_FUNCTION_NVX'+--+--     -   'Vulkan.Core10.Enums.ObjectType.OBJECT_TYPE_CU_MODULE_NVX'+--+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_CU_FUNCTION_CREATE_INFO_NVX'+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_CU_LAUNCH_INFO_NVX'+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_CU_MODULE_CREATE_INFO_NVX'+--+-- == Version History+--+-- -   Revision 1, 2021-04-09 (Eric Werness)+--+--     -   Internal revisions+--+-- = See Also+--+-- 'CuFunctionCreateInfoNVX', 'Vulkan.Extensions.Handles.CuFunctionNVX',+-- 'CuLaunchInfoNVX', 'CuModuleCreateInfoNVX',+-- 'Vulkan.Extensions.Handles.CuModuleNVX', 'cmdCuLaunchKernelNVX',+-- 'createCuFunctionNVX', 'createCuModuleNVX', 'destroyCuFunctionNVX',+-- 'destroyCuModuleNVX'+--+-- = Document Notes+--+-- For more information, see the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NVX_binary_import Vulkan Specification>+--+-- This page is a generated document. Fixes and changes should be made to+-- the generator scripts, not directly.+module Vulkan.Extensions.VK_NVX_binary_import  ( CuFunctionCreateInfoNVX+                                               , CuLaunchInfoNVX+                                               , CuModuleCreateInfoNVX+                                               ) where++import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (ToCStruct)+import Data.Kind (Type)++data CuFunctionCreateInfoNVX++instance ToCStruct CuFunctionCreateInfoNVX+instance Show CuFunctionCreateInfoNVX++instance FromCStruct CuFunctionCreateInfoNVX+++data CuLaunchInfoNVX++instance ToCStruct CuLaunchInfoNVX+instance Show CuLaunchInfoNVX++instance FromCStruct CuLaunchInfoNVX+++data CuModuleCreateInfoNVX++instance ToCStruct CuModuleCreateInfoNVX+instance Show CuModuleCreateInfoNVX++instance FromCStruct CuModuleCreateInfoNVX+
src/Vulkan/Extensions/VK_NVX_multiview_per_view_attributes.hs view
@@ -186,18 +186,15 @@ -- | VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX - Structure -- describing multiview limits that can be supported by an implementation ----- = Members------ The members of the--- 'PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX' structure--- describe the following implementation-dependent limits:--- -- = Description -- -- If the 'PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX' structure--- is included in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2',--- it is filled with the implementation-dependent limits.+-- 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) --
src/Vulkan/Extensions/VK_NV_compute_shader_derivatives.hs view
@@ -152,22 +152,24 @@ -- -- = Members ----- The members of the 'PhysicalDeviceComputeShaderDerivativesFeaturesNV'--- structure describe the following features:+-- This structure describes the following features: -- -- = Description -- -- See--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-scope-quad>--- chapter for more information.+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-scope-quad Quad shader scope>+-- for more information. ----- If the 'PhysicalDeviceComputeShaderDerivativesFeaturesNV' structure is--- included in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- it is filled with values indicating whether each feature is supported.--- 'PhysicalDeviceComputeShaderDerivativesFeaturesNV' /can/ also be--- included in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo'--- to enable features.+-- If the @VkPhysicalDeviceComputeShaderDerivativesFeaturesNVfeatures@.+-- 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. @VkPhysicalDeviceComputeShaderDerivativesFeaturesNVfeatures@.+-- /can/ also be used in the @pNext@ chain of+-- 'Vulkan.Core10.Device.DeviceCreateInfo' to selectively enable these+-- features. -- -- == Valid Usage (Implicit) --
src/Vulkan/Extensions/VK_NV_cooperative_matrix.hs view
@@ -113,7 +113,7 @@ -- -- (1) What matrix properties will be supported in practice? ----- RESOLVED: In NVIDIA’s initial implementation, we will support:+-- __RESOLVED__: In NVIDIA’s initial implementation, we will support: -- -- -   AType = BType = fp16 CType = DType = fp16 MxNxK = 16x8x16 scope = --     Subgroup@@ -256,11 +256,10 @@ -- variable is overwritten with the number of structures actually written -- to @pProperties@. If @pPropertyCount@ is less than the number of -- cooperative matrix properties available, at most @pPropertyCount@--- structures will be written. If @pPropertyCount@ is smaller than the--- number of cooperative matrix properties available,--- 'Vulkan.Core10.Enums.Result.INCOMPLETE' will be returned instead of--- 'Vulkan.Core10.Enums.Result.SUCCESS', to indicate that not all the--- available cooperative matrix properties were returned.+-- structures will be written, and 'Vulkan.Core10.Enums.Result.INCOMPLETE'+-- will be returned instead of 'Vulkan.Core10.Enums.Result.SUCCESS', to+-- indicate that not all the available cooperative matrix properties were+-- returned. -- -- == Valid Usage (Implicit) --@@ -323,18 +322,19 @@ -- -- = Members ----- The members of the 'PhysicalDeviceCooperativeMatrixFeaturesNV' structure--- describe the following features:+-- This structure describes the following features: -- -- = Description -- -- If the 'PhysicalDeviceCooperativeMatrixFeaturesNV' structure is included--- in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- it is filled with values indicating whether the feature is supported.--- 'PhysicalDeviceCooperativeMatrixFeaturesNV' /can/ also be included in--- the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to enable--- features.+-- 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. 'PhysicalDeviceCooperativeMatrixFeaturesNV' /can/ also be+-- used in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to+-- selectively enable these features. -- -- == Valid Usage (Implicit) --@@ -397,17 +397,15 @@ -- | VkPhysicalDeviceCooperativeMatrixPropertiesNV - Structure describing -- cooperative matrix properties supported by an implementation ----- = Members------ The members of the 'PhysicalDeviceCooperativeMatrixPropertiesNV'--- structure describe the following implementation-dependent limits:--- -- = Description -- -- If the 'PhysicalDeviceCooperativeMatrixPropertiesNV' structure is--- included in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2',--- it is filled with the implementation-dependent limits.+-- 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) --
src/Vulkan/Extensions/VK_NV_cooperative_matrix.hs-boot view
@@ -113,7 +113,7 @@ -- -- (1) What matrix properties will be supported in practice? ----- RESOLVED: In NVIDIA’s initial implementation, we will support:+-- __RESOLVED__: In NVIDIA’s initial implementation, we will support: -- -- -   AType = BType = fp16 CType = DType = fp16 MxNxK = 16x8x16 scope = --     Subgroup
src/Vulkan/Extensions/VK_NV_corner_sampled_image.hs view
@@ -102,7 +102,7 @@ -- -- 1.  What should this extension be named? -----     DISCUSSION: While naming this extension, we chose the most+--     __DISCUSSION__: While naming this extension, we chose the most --     distinctive aspect of the image organization and referred to such --     images as “corner-sampled images”. As a result, we decided to name --     the extension NV_corner_sampled_image.@@ -110,7 +110,7 @@ -- 2.  Do we need a format feature flag so formats can advertise if they --     support corner-sampling? -----     DISCUSSION: Currently NVIDIA supports this for all 2D and 3D+--     __DISCUSSION__: Currently NVIDIA supports this for all 2D and 3D --     formats, but not for cubemaps or depth-stencil formats. A format --     feature might be useful if other vendors would only support this on --     some formats.@@ -118,18 +118,18 @@ -- 3.  Do integer texel coordinates have a different range for --     corner-sampled images? -----     RESOLVED: No, these are unchanged.+--     __RESOLVED__: No, these are unchanged. -- -- 4.  Do unnormalized sampler coordinates work with corner-sampled images? --     Are there any functional differences? -----     RESOLVED: Yes they work. Unnormalized coordinates are treated as---     already scaled for corner-sample usage.+--     __RESOLVED__: Yes. Unnormalized coordinates are treated as already+--     scaled for corner-sample usage. -- -- 5.  Should we have a diagram in the “Image Operations” chapter --     demonstrating different texel sampling locations? -----     UNRESOLVED: Probaby, but later.+--     __UNRESOLVED__: Probaby, but later. -- -- == Version History --@@ -186,18 +186,19 @@ -- -- = Members ----- The members of the 'PhysicalDeviceCornerSampledImageFeaturesNV'--- structure describe the following features:+-- This structure describes the following feature: -- -- = Description -- -- If the 'PhysicalDeviceCornerSampledImageFeaturesNV' structure is--- included in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- it is filled with values indicating whether each feature is supported.--- 'PhysicalDeviceCornerSampledImageFeaturesNV' /can/ also be included in--- the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to enable--- features.+-- 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. 'PhysicalDeviceCornerSampledImageFeaturesNV' /can/ also be+-- used in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to+-- selectively enable these features. -- -- == Valid Usage (Implicit) --
src/Vulkan/Extensions/VK_NV_corner_sampled_image.hs-boot view
@@ -102,7 +102,7 @@ -- -- 1.  What should this extension be named? -----     DISCUSSION: While naming this extension, we chose the most+--     __DISCUSSION__: While naming this extension, we chose the most --     distinctive aspect of the image organization and referred to such --     images as “corner-sampled images”. As a result, we decided to name --     the extension NV_corner_sampled_image.@@ -110,7 +110,7 @@ -- 2.  Do we need a format feature flag so formats can advertise if they --     support corner-sampling? -----     DISCUSSION: Currently NVIDIA supports this for all 2D and 3D+--     __DISCUSSION__: Currently NVIDIA supports this for all 2D and 3D --     formats, but not for cubemaps or depth-stencil formats. A format --     feature might be useful if other vendors would only support this on --     some formats.@@ -118,18 +118,18 @@ -- 3.  Do integer texel coordinates have a different range for --     corner-sampled images? -----     RESOLVED: No, these are unchanged.+--     __RESOLVED__: No, these are unchanged. -- -- 4.  Do unnormalized sampler coordinates work with corner-sampled images? --     Are there any functional differences? -----     RESOLVED: Yes they work. Unnormalized coordinates are treated as---     already scaled for corner-sample usage.+--     __RESOLVED__: Yes. Unnormalized coordinates are treated as already+--     scaled for corner-sample usage. -- -- 5.  Should we have a diagram in the “Image Operations” chapter --     demonstrating different texel sampling locations? -----     UNRESOLVED: Probaby, but later.+--     __UNRESOLVED__: Probaby, but later. -- -- == Version History --
src/Vulkan/Extensions/VK_NV_coverage_reduction_mode.hs view
@@ -231,9 +231,9 @@ -- return the variable is overwritten with the number of values actually -- written to @pCombinations@. If the value of @pCombinationCount@ is less -- than the number of combinations supported for the given--- @physicalDevice@, at most @pCombinationCount@ values will be written--- @pCombinations@ and 'Vulkan.Core10.Enums.Result.INCOMPLETE' will be--- returned instead of 'Vulkan.Core10.Enums.Result.SUCCESS' to indicate+-- @physicalDevice@, at most @pCombinationCount@ values will be written to+-- @pCombinations@, and 'Vulkan.Core10.Enums.Result.INCOMPLETE' will be+-- returned instead of 'Vulkan.Core10.Enums.Result.SUCCESS', to indicate -- that not all the supported values were returned. -- -- == Valid Usage (Implicit)@@ -300,18 +300,19 @@ -- -- = Members ----- The members of the 'PhysicalDeviceCoverageReductionModeFeaturesNV'--- structure describe the following features:+-- This structure describes the following feature: -- -- = Description -- -- If the 'PhysicalDeviceCoverageReductionModeFeaturesNV' structure is--- included in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- it is filled with values indicating whether the feature is supported.--- 'PhysicalDeviceCoverageReductionModeFeaturesNV' /can/ also be included--- in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to--- enable the feature.+-- 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. 'PhysicalDeviceCoverageReductionModeFeaturesNV' /can/ also be+-- used in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to+-- selectively enable these features. -- -- == Valid Usage (Implicit) --@@ -464,8 +465,9 @@   { -- | @coverageReductionMode@ is a 'CoverageReductionModeNV' value specifying     -- the coverage reduction mode.     coverageReductionMode :: CoverageReductionModeNV-  , -- | @rasterizationSamples@ specifies the number of rasterization samples in-    -- the supported combination.+  , -- | @rasterizationSamples@ is a+    -- 'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlagBits' specifying+    -- the number of rasterization samples in the supported combination.     rasterizationSamples :: SampleCountFlagBits   , -- | @depthStencilSamples@ specifies the number of samples in the depth     -- stencil attachment in the supported combination. A value of 0 indicates
src/Vulkan/Extensions/VK_NV_dedicated_allocation_image_aliasing.hs view
@@ -121,19 +121,20 @@ -- -- = Members ----- The members of the--- 'PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV' structure--- describe the following features:+-- This structure describes the following feature: -- -- = Description -- -- If the 'PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV'--- structure is included in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- it is filled with values indicating whether each feature is supported.--- 'PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV' /can/ also be--- included in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo'--- to enable features.+-- 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. 'PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV'+-- /can/ also be used in the @pNext@ chain of+-- 'Vulkan.Core10.Device.DeviceCreateInfo' to selectively enable these+-- features. -- -- == Valid Usage (Implicit) --
src/Vulkan/Extensions/VK_NV_device_diagnostic_checkpoints.hs view
@@ -295,7 +295,7 @@   -- | VkQueueFamilyCheckpointPropertiesNV - return structure for queue family--- checkpoint info query+-- checkpoint information query -- -- = Description --@@ -367,8 +367,9 @@ -- 'Vulkan.Core10.Enums.StructureType.StructureType', -- 'getQueueCheckpointDataNV' data CheckpointDataNV = CheckpointDataNV-  { -- | @stage@ indicates which pipeline stage the checkpoint marker data refers-    -- to.+  { -- | @stage@ is a+    -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits' value+    -- specifying which pipeline stage the checkpoint marker data refers to.     stage :: PipelineStageFlagBits   , -- | @pCheckpointMarker@ contains the value of the last checkpoint marker     -- executed in the stage that @stage@ refers to.
src/Vulkan/Extensions/VK_NV_device_diagnostics_config.hs view
@@ -149,18 +149,19 @@ -- -- = Members ----- The members of the 'PhysicalDeviceDiagnosticsConfigFeaturesNV' structure--- describe the following features:+-- This structure describes the following feature: -- -- = Description -- -- If the 'PhysicalDeviceDiagnosticsConfigFeaturesNV' structure is included--- in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- it is filled with values indicating whether the feature is supported.--- 'PhysicalDeviceDiagnosticsConfigFeaturesNV' /can/ also be used in the--- @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to enable the--- feature.+-- 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. 'PhysicalDeviceDiagnosticsConfigFeaturesNV' /can/ also be+-- used in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to+-- selectively enable these features. -- -- == Valid Usage (Implicit) --
src/Vulkan/Extensions/VK_NV_device_generated_commands.hs view
@@ -304,7 +304,7 @@ -- the command buffer reservation process, however as the memory -- requirements can be substantial, we want to give developers the ability -- to budget the memory themselves. By lowering the @maxSequencesCount@ the--- memory consumption can be reduced. Furthermore re-use of the memory is+-- memory consumption can be reduced. Furthermore reuse of the memory is -- possible, for example for doing explicit preprocessing and execution in -- a ping-pong fashion. --@@ -334,7 +334,7 @@ -- -- 8) How do we allow re-using already “generated” @indirectCommands@? ----- Expose a @preprocessBuffer@ to re-use implementation-dependencyFlags+-- Expose a @preprocessBuffer@ to reuse implementation-dependencyFlags -- data. Set the @isPreprocessed@ to true in -- 'cmdExecuteGeneratedCommandsNV'. --@@ -506,6 +506,15 @@ -- --     -   Initial version --+-- -   Revision 2, 2020-03-09 (Christoph Kubisch)+--+--     -   Remove VK_EXT_debug_report interactions+--+-- -   Revision 3, 2020-03-09 (Christoph Kubisch)+--+--     -   Fix naming VkPhysicalDeviceGenerated to+--         VkPhysicalDeviceDeviceGenerated+-- -- = See Also -- -- 'BindIndexBufferIndirectCommandNV', 'BindShaderGroupIndirectCommandNV',@@ -696,8 +705,8 @@   "dynamic" mkVkCmdExecuteGeneratedCommandsNV   :: FunPtr (Ptr CommandBuffer_T -> Bool32 -> Ptr GeneratedCommandsInfoNV -> IO ()) -> Ptr CommandBuffer_T -> Bool32 -> Ptr GeneratedCommandsInfoNV -> IO () --- | vkCmdExecuteGeneratedCommandsNV - Performs the generation and execution--- of commands on the device+-- | vkCmdExecuteGeneratedCommandsNV - Generate and execute commands on the+-- device -- -- == Valid Usage --@@ -801,9 +810,9 @@ -- -   #VUID-vkCmdExecuteGeneratedCommandsNV-commandBuffer-02701# If the --     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind --     point used by this command requires any dynamic state, that state---     /must/ have been set for @commandBuffer@, and done so after any---     previously bound pipeline with the corresponding state not specified---     as dynamic+--     /must/ have been set or inherited for @commandBuffer@, and done so+--     after any previously bound pipeline with the corresponding state not+--     specified as dynamic -- -- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-02859# There /must/ not --     have been any calls to dynamic state setting commands for any state@@ -973,7 +982,7 @@ --     dynamic state enabled, then --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT' --     /must/ have been called in the current command buffer prior to this---     draw command, and the @viewportCount@ parameter of+--     drawing command, and the @viewportCount@ parameter of --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT' --     /must/ match the --     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@scissorCount@@@ -987,7 +996,7 @@ --     dynamic state enabled, then --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT' --     /must/ have been called in the current command buffer prior to this---     draw command, and the @scissorCount@ parameter of+--     drawing command, and the @scissorCount@ parameter of --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT' --     /must/ match the --     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@viewportCount@@@ -1003,7 +1012,7 @@ --     and --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT' --     /must/ have been called in the current command buffer prior to this---     draw command, and the @viewportCount@ parameter of+--     drawing command, and the @viewportCount@ parameter of --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT' --     /must/ match the @scissorCount@ parameter of --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'@@ -1086,7 +1095,7 @@ --     dynamic state enabled then --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopologyEXT' --     /must/ have been called in the current command buffer prior to this---     draw command, and the @primitiveTopology@ parameter of+--     drawing command, and the @primitiveTopology@ parameter of --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopologyEXT' --     /must/ be of the same --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#drawing-primitive-topology-class topology class>@@ -1094,6 +1103,47 @@ --     'Vulkan.Core10.Pipeline.PipelineInputAssemblyStateCreateInfo'::@topology@ --     state --+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-04875# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetPatchControlPointsEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-04876# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnableEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-04877# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS_ENABLE_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnableEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-logicOp-04878# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LOGIC_OP_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetLogicOpEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command and the @logicOp@ /must/ be a valid+--     'Vulkan.Core10.Enums.LogicOp.LogicOp' value+--+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-04879# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetPrimitiveRestartEnableEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+-- -- -   #VUID-vkCmdExecuteGeneratedCommandsNV-primitiveFragmentShadingRateWithMultipleViewports-04552# --     If the --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports primitiveFragmentShadingRateWithMultipleViewports>@@ -1105,7 +1155,7 @@ --     then --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT' --     /must/ have been called in the current command buffer prior to this---     draw command, and the @viewportCount@ parameter of+--     drawing command, and the @viewportCount@ parameter of --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT' --     /must/ be @1@ --@@ -1127,6 +1177,16 @@ --     /must/ be the same as the current subpass color and\/or --     depth\/stencil attachments --+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-pStrides-04884# If the bound+--     graphics pipeline was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT'+--     dynamic state enabled, then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command, and the @pStrides@ parameter of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT'+--     /must/ not be @NULL@+-- -- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-04007# All vertex input --     bindings accessed via vertex input variables declared in the vertex --     shader entry point’s interface /must/ have either valid or@@ -1664,18 +1724,19 @@ -- -- = Members ----- The members of the 'PhysicalDeviceDeviceGeneratedCommandsFeaturesNV'--- structure describe the following features:+-- This structure describes the following feature: -- -- = Description -- -- If the 'PhysicalDeviceDeviceGeneratedCommandsFeaturesNV' structure is--- included in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- it is filled with values indicating whether the feature is supported.--- 'PhysicalDeviceDeviceGeneratedCommandsFeaturesNV' /can/ also be used in--- the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to enable--- the features.+-- 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. 'PhysicalDeviceDeviceGeneratedCommandsFeaturesNV' /can/ also+-- be used in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo'+-- to selectively enable these features. -- -- == Valid Usage (Implicit) --@@ -1731,6 +1792,16 @@ -- describing push descriptor limits that can be supported by an -- implementation --+-- = Description+--+-- If the 'PhysicalDeviceDeviceGeneratedCommandsPropertiesNV' 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@@ -1882,14 +1953,15 @@ -- 'Vulkan.Core10.Pipeline.PipelineVertexInputStateCreateInfo', -- 'Vulkan.Core10.Enums.StructureType.StructureType' data GraphicsShaderGroupCreateInfoNV = GraphicsShaderGroupCreateInfoNV-  { -- | @pStages@ is an array of size @stageCount@ structures of type-    -- 'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo' describing the-    -- set of the shader stages to be included in this shader group.+  { -- | @pStages@ is a pointer to an array+    -- 'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo' structures+    -- specifying the set of the shader stages to be included in this shader+    -- group.     stages :: Vector (SomeStruct PipelineShaderStageCreateInfo)-  , -- | @pVertexInputState@ is a pointer to an instance of the+  , -- | @pVertexInputState@ is a pointer to a     -- 'Vulkan.Core10.Pipeline.PipelineVertexInputStateCreateInfo' structure.     vertexInputState :: Maybe (SomeStruct PipelineVertexInputStateCreateInfo)-  , -- | @pTessellationState@ is a pointer to an instance of the+  , -- | @pTessellationState@ is a pointer to a     -- 'Vulkan.Core10.Pipeline.PipelineTessellationStateCreateInfo' structure,     -- and is ignored if the shader group does not include a tessellation     -- control shader stage and tessellation evaluation shader stage.@@ -2021,14 +2093,14 @@ -- 'GraphicsShaderGroupCreateInfoNV', 'Vulkan.Core10.Handles.Pipeline', -- 'Vulkan.Core10.Enums.StructureType.StructureType' data GraphicsPipelineShaderGroupsCreateInfoNV = GraphicsPipelineShaderGroupsCreateInfoNV-  { -- | @pGroups@ is an array of 'GraphicsShaderGroupCreateInfoNV' values-    -- specifying which state of the original+  { -- | @pGroups@ is a pointer to an array of 'GraphicsShaderGroupCreateInfoNV'+    -- structures specifying which state of the original     -- 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo' each shader group     -- overrides.     groups :: Vector GraphicsShaderGroupCreateInfoNV-  , -- | @pPipelines@ is an array of graphics 'Vulkan.Core10.Handles.Pipeline',-    -- which are referenced within the created pipeline, including all their-    -- shader groups.+  , -- | @pPipelines@ is a pointer to an array of graphics+    -- 'Vulkan.Core10.Handles.Pipeline' structures which are referenced within+    -- the created pipeline, including all their shader groups.     pipelines :: Vector Pipeline   }   deriving (Typeable)@@ -2463,11 +2535,11 @@ --     @pushconstantSize@ and for each push constant range that overlaps --     that byte, @pushconstantShaderStageFlags@ /must/ include all stages --     in that push constant range’s---     'Vulkan.Core10.PipelineLayout.PushConstantRange'::@pushconstantShaderStageFlags@+--     'Vulkan.Core10.PipelineLayout.PushConstantRange'::@stageFlags@ -- -- -   #VUID-VkIndirectCommandsLayoutTokenNV-tokenType-02984# If --     @tokenType@ is 'INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV',---     @indirectStateFlags@ /must/ not be ´0´+--     @indirectStateFlags@ /must/ not be @0@ -- -- == Valid Usage (Implicit) --@@ -2706,9 +2778,6 @@ --     /must/ be a valid combination of --     'IndirectCommandsLayoutUsageFlagBitsNV' values ----- -   #VUID-VkIndirectCommandsLayoutCreateInfoNV-flags-requiredbitmask#---     @flags@ /must/ not be @0@--- -- -   #VUID-VkIndirectCommandsLayoutCreateInfoNV-pipelineBindPoint-parameter# --     @pipelineBindPoint@ /must/ be a valid --     'Vulkan.Core10.Enums.PipelineBindPoint.PipelineBindPoint' value@@ -2776,7 +2845,6 @@   pokeZeroCStruct p f = do     poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV)     poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)-    poke ((p `plusPtr` 16 :: Ptr IndirectCommandsLayoutUsageFlagsNV)) (zero)     poke ((p `plusPtr` 20 :: Ptr PipelineBindPoint)) (zero)     f @@ -2972,8 +3040,9 @@     -- 'Vulkan.Extensions.Handles.IndirectCommandsLayoutNV' that provides the     -- command sequence to generate.     indirectCommandsLayout :: IndirectCommandsLayoutNV-  , -- | @pStreams@ provides an array of 'IndirectCommandsStreamNV' that provide-    -- the input data for the tokens used in @indirectCommandsLayout@.+  , -- | @pStreams@ is a pointer to an array of @streamCount@+    -- 'IndirectCommandsStreamNV' structures providing the input data for the+    -- tokens used in @indirectCommandsLayout@.     streams :: Vector IndirectCommandsStreamNV   , -- | @sequencesCount@ is the maximum number of sequences to reserve. If     -- @sequencesCountBuffer@ is 'Vulkan.Core10.APIConstants.NULL_HANDLE', this
src/Vulkan/Extensions/VK_NV_device_generated_commands.hs-boot view
@@ -304,7 +304,7 @@ -- the command buffer reservation process, however as the memory -- requirements can be substantial, we want to give developers the ability -- to budget the memory themselves. By lowering the @maxSequencesCount@ the--- memory consumption can be reduced. Furthermore re-use of the memory is+-- memory consumption can be reduced. Furthermore reuse of the memory is -- possible, for example for doing explicit preprocessing and execution in -- a ping-pong fashion. --@@ -334,7 +334,7 @@ -- -- 8) How do we allow re-using already “generated” @indirectCommands@? ----- Expose a @preprocessBuffer@ to re-use implementation-dependencyFlags+-- Expose a @preprocessBuffer@ to reuse implementation-dependencyFlags -- data. Set the @isPreprocessed@ to true in -- 'cmdExecuteGeneratedCommandsNV'. --@@ -505,6 +505,15 @@ -- -   Revision 1, 2020-02-20 (Christoph Kubisch) -- --     -   Initial version+--+-- -   Revision 2, 2020-03-09 (Christoph Kubisch)+--+--     -   Remove VK_EXT_debug_report interactions+--+-- -   Revision 3, 2020-03-09 (Christoph Kubisch)+--+--     -   Fix naming VkPhysicalDeviceGenerated to+--         VkPhysicalDeviceDeviceGenerated -- -- = See Also --
src/Vulkan/Extensions/VK_NV_fragment_shader_barycentric.hs view
@@ -215,8 +215,7 @@ -- -- = Members ----- The members of the 'PhysicalDeviceFragmentShaderBarycentricFeaturesNV'--- structure describe the following features:+-- This structure describes the following feature: -- -- = Description --@@ -225,12 +224,15 @@ -- for more information. -- -- If the 'PhysicalDeviceFragmentShaderBarycentricFeaturesNV' structure is--- included in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- it is filled with values indicating whether the feature is supported.--- 'PhysicalDeviceFragmentShaderBarycentricFeaturesNV' /can/ also be--- included in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo'--- to enable features.+-- 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. 'PhysicalDeviceFragmentShaderBarycentricFeaturesNV' /can/+-- also be used in the @pNext@ chain of+-- 'Vulkan.Core10.Device.DeviceCreateInfo' to selectively enable these+-- features. -- -- == Valid Usage (Implicit) --
src/Vulkan/Extensions/VK_NV_fragment_shading_rate_enums.hs view
@@ -43,10 +43,10 @@ -- -- This extension builds on the fragment shading rate functionality -- provided by the VK_KHR_fragment_shading_rate extension, adding support--- for \"supersample\" fragment shading rates that trigger multiple--- fragment shader invocations per pixel as well as a \"no invocations\"--- shading rate that discards any portions of a primitive that would use--- that shading rate.+-- for “supersample” fragment shading rates that trigger multiple fragment+-- shader invocations per pixel as well as a “no invocations” shading rate+-- that discards any portions of a primitive that would use that shading+-- rate. -- -- == New Commands --@@ -93,9 +93,9 @@ -- -- 1.  Why was this extension created? How should it be named? -----     RESOLVED: The primary goal of this extension was to expose support---     for supersample and \"no invocations\" shading rates, which are---     supported by the VK_NV_shading_rate_image extension but not by+--     __RESOLVED__: The primary goal of this extension was to expose+--     support for supersample and “no invocations” shading rates, which+--     are supported by the VK_NV_shading_rate_image extension but not by --     VK_KHR_fragment_shading_rate. Because VK_KHR_fragment_shading_rate --     specifies the primitive shading rate using a fragment size in --     pixels, it lacks a good way to specify supersample rates. To deal@@ -109,32 +109,33 @@ -- -- 2.  Is this a standalone extension? -----     RESOLVED: No, this extension requires VK_KHR_fragment_shading_rate.---     In order to use the features of this extension, applications must---     enable the relevant features of KHR extension.+--     __RESOLVED__: No, this extension requires+--     VK_KHR_fragment_shading_rate. In order to use the features of this+--     extension, applications must enable the relevant features of KHR+--     extension. -- -- 3.  How are the shading rate enums used, and how were the enum values --     assigned? -----     RESOLVED: The shading rates supported by the enums in this extension---     are accepted as pipeline, primitive, and attachment shading rates---     and behave identically. For the shading rates also supported by the---     KHR extension, the values assigned to the corresponding enums are---     identical to the values already used for the primitive and---     attachment shading rates in the KHR extension. For those enums, bits---     0 and 1 specify the base two logarithm of the fragment height and---     bits 2 and 3 specify the base two logarithm of the fragment width.---     For the new shading rates added by this extension, we chose to use---     11 through 14 (10 plus the base two logarithm of the invocation---     count) for the supersample rates and 15 for the \"no invocations\"---     rate. None of those values are supported as primitive or attachment---     shading rates by the KHR extension.+--     __RESOLVED__: The shading rates supported by the enums in this+--     extension are accepted as pipeline, primitive, and attachment+--     shading rates and behave identically. For the shading rates also+--     supported by the KHR extension, the values assigned to the+--     corresponding enums are identical to the values already used for the+--     primitive and attachment shading rates in the KHR extension. For+--     those enums, bits 0 and 1 specify the base two logarithm of the+--     fragment height and bits 2 and 3 specify the base two logarithm of+--     the fragment width. For the new shading rates added by this+--     extension, we chose to use 11 through 14 (10 plus the base two+--     logarithm of the invocation count) for the supersample rates and 15+--     for the “no invocations” rate. None of those values are supported as+--     primitive or attachment shading rates by the KHR extension. -- -- 4.  Between this extension, VK_KHR_fragment_shading_rate, and --     VK_NV_shading_rate_image, there are three different ways to specify --     shading rate state in a pipeline. How should we handle this? -----     RESOLVED: We don’t allow the concurrent use of+--     __RESOLVED__: We don’t allow the concurrent use of --     VK_NV_shading_rate_image and VK_KHR_fragment_shading_rate; it is an --     error to enable shading rate features from both extensions. But we --     do allow applications to enable this extension together with@@ -373,7 +374,7 @@                                    -- recorded.                                    CommandBuffer                                 -> -- | @shadingRate@ specifies a 'FragmentShadingRateNV' enum indicating the-                                   -- pipeline fragment shading rate for subsequent draw commands.+                                   -- pipeline fragment shading rate for subsequent drawing commands.                                    FragmentShadingRateNV                                 -> -- | @combinerOps@ specifies a                                    -- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.FragmentShadingRateCombinerOpKHR'@@ -407,18 +408,19 @@ -- -- = Members ----- The members of the 'PhysicalDeviceFragmentShadingRateEnumsFeaturesNV'--- structure describe the following features:+-- This structure describes the following features: -- -- = Description -- -- If the 'PhysicalDeviceFragmentShadingRateEnumsFeaturesNV' structure is--- included in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- it is filled with values indicating whether each feature is supported.--- 'PhysicalDeviceFragmentShadingRateEnumsFeaturesNV' /can/ also be used in--- the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to enable--- these features.+-- 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. 'PhysicalDeviceFragmentShadingRateEnumsFeaturesNV' /can/ also+-- be used in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo'+-- to selectively enable these features. -- -- == Valid Usage (Implicit) --@@ -492,20 +494,19 @@ -- describing fragment shading rate limits that can be supported by an -- implementation ----- = Members------ The members of the 'PhysicalDeviceFragmentShadingRateEnumsPropertiesNV'--- structure describe the following implementation-dependent properties--- related to--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-primsrast-fragment-shading-rate fragment shading rates>:--- -- = Description -- -- If the 'PhysicalDeviceFragmentShadingRateEnumsPropertiesNV' structure is--- included in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2',--- it is filled with the implementation-dependent limits.+-- included in the @pNext@ chain of the+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2'+-- structure passed to+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceProperties2',+-- it is filled in with each corresponding implementation-dependent+-- property. --+-- These properties are related to+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-primsrast-fragment-shading-rate fragment shading rates>.+-- -- == Valid Usage (Implicit) -- -- = See Also@@ -514,9 +515,11 @@ -- 'Vulkan.Core10.Enums.StructureType.StructureType' data PhysicalDeviceFragmentShadingRateEnumsPropertiesNV = PhysicalDeviceFragmentShadingRateEnumsPropertiesNV   { -- | #limits-maxFragmentShadingRateInvocationCount#-    -- @maxFragmentShadingRateInvocationCount@ indicates the maximum number of-    -- fragment shader invocations per fragment supported in pipeline,-    -- primitive, and attachment fragment shading rates.+    -- @maxFragmentShadingRateInvocationCount@ is a+    -- 'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlagBits' value+    -- indicating the maximum number of fragment shader invocations per+    -- fragment supported in pipeline, primitive, and attachment fragment+    -- shading rates.     --     -- #VUID-VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV-maxFragmentShadingRateInvocationCount-parameter#     -- @maxFragmentShadingRateInvocationCount@ /must/ be a valid
src/Vulkan/Extensions/VK_NV_fragment_shading_rate_enums.hs-boot view
@@ -43,10 +43,10 @@ -- -- This extension builds on the fragment shading rate functionality -- provided by the VK_KHR_fragment_shading_rate extension, adding support--- for \"supersample\" fragment shading rates that trigger multiple--- fragment shader invocations per pixel as well as a \"no invocations\"--- shading rate that discards any portions of a primitive that would use--- that shading rate.+-- for “supersample” fragment shading rates that trigger multiple fragment+-- shader invocations per pixel as well as a “no invocations” shading rate+-- that discards any portions of a primitive that would use that shading+-- rate. -- -- == New Commands --@@ -93,9 +93,9 @@ -- -- 1.  Why was this extension created? How should it be named? -----     RESOLVED: The primary goal of this extension was to expose support---     for supersample and \"no invocations\" shading rates, which are---     supported by the VK_NV_shading_rate_image extension but not by+--     __RESOLVED__: The primary goal of this extension was to expose+--     support for supersample and “no invocations” shading rates, which+--     are supported by the VK_NV_shading_rate_image extension but not by --     VK_KHR_fragment_shading_rate. Because VK_KHR_fragment_shading_rate --     specifies the primitive shading rate using a fragment size in --     pixels, it lacks a good way to specify supersample rates. To deal@@ -109,32 +109,33 @@ -- -- 2.  Is this a standalone extension? -----     RESOLVED: No, this extension requires VK_KHR_fragment_shading_rate.---     In order to use the features of this extension, applications must---     enable the relevant features of KHR extension.+--     __RESOLVED__: No, this extension requires+--     VK_KHR_fragment_shading_rate. In order to use the features of this+--     extension, applications must enable the relevant features of KHR+--     extension. -- -- 3.  How are the shading rate enums used, and how were the enum values --     assigned? -----     RESOLVED: The shading rates supported by the enums in this extension---     are accepted as pipeline, primitive, and attachment shading rates---     and behave identically. For the shading rates also supported by the---     KHR extension, the values assigned to the corresponding enums are---     identical to the values already used for the primitive and---     attachment shading rates in the KHR extension. For those enums, bits---     0 and 1 specify the base two logarithm of the fragment height and---     bits 2 and 3 specify the base two logarithm of the fragment width.---     For the new shading rates added by this extension, we chose to use---     11 through 14 (10 plus the base two logarithm of the invocation---     count) for the supersample rates and 15 for the \"no invocations\"---     rate. None of those values are supported as primitive or attachment---     shading rates by the KHR extension.+--     __RESOLVED__: The shading rates supported by the enums in this+--     extension are accepted as pipeline, primitive, and attachment+--     shading rates and behave identically. For the shading rates also+--     supported by the KHR extension, the values assigned to the+--     corresponding enums are identical to the values already used for the+--     primitive and attachment shading rates in the KHR extension. For+--     those enums, bits 0 and 1 specify the base two logarithm of the+--     fragment height and bits 2 and 3 specify the base two logarithm of+--     the fragment width. For the new shading rates added by this+--     extension, we chose to use 11 through 14 (10 plus the base two+--     logarithm of the invocation count) for the supersample rates and 15+--     for the “no invocations” rate. None of those values are supported as+--     primitive or attachment shading rates by the KHR extension. -- -- 4.  Between this extension, VK_KHR_fragment_shading_rate, and --     VK_NV_shading_rate_image, there are three different ways to specify --     shading rate state in a pipeline. How should we handle this? -----     RESOLVED: We don’t allow the concurrent use of+--     __RESOLVED__: We don’t allow the concurrent use of --     VK_NV_shading_rate_image and VK_KHR_fragment_shading_rate; it is an --     error to enable shading rate features from both extensions. But we --     do allow applications to enable this extension together with
+ src/Vulkan/Extensions/VK_NV_inherited_viewport_scissor.hs view
@@ -0,0 +1,457 @@+{-# language CPP #-}+-- | = Name+--+-- VK_NV_inherited_viewport_scissor - device extension+--+-- == VK_NV_inherited_viewport_scissor+--+-- [__Name String__]+--     @VK_NV_inherited_viewport_scissor@+--+-- [__Extension Type__]+--     Device extension+--+-- [__Registered Extension Number__]+--     279+--+-- [__Revision__]+--     1+--+-- [__Extension and Version Dependencies__]+--+--     -   Requires Vulkan 1.0+--+-- [__Contact__]+--+--     -   David Zhao Akeley+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?title=VK_NV_inherited_viewport_scissor:%20&body=@akeley98%20 >+--+-- == Other Extension Metadata+--+-- [__Last Modified Date__]+--     2021-02-04+--+-- [__Contributors__]+--+--     -   David Zhao Akeley, NVIDIA+--+--     -   Jeff Bolz, NVIDIA+--+--     -   Piers Daniell, NVIDIA+--+--     -   Christoph Kubisch, NVIDIA+--+-- == Description+--+-- This extension adds the ability for a secondary command buffer to+-- inherit the dynamic viewport and scissor state from a primary command+-- 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+-- buffers. The functionality is provided through+-- 'CommandBufferInheritanceViewportScissorInfoNV'. Viewport inheritance is+-- effectively limited to the 2D rectangle; secondary command buffers must+-- re-specify the inherited depth range values.+--+-- == New Structures+--+-- -   Extending+--     'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo':+--+--     -   'CommandBufferInheritanceViewportScissorInfoNV'+--+-- -   Extending+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',+--     'Vulkan.Core10.Device.DeviceCreateInfo':+--+--     -   'PhysicalDeviceInheritedViewportScissorFeaturesNV'+--+-- == New Enum Constants+--+-- -   'NV_INHERITED_VIEWPORT_SCISSOR_EXTENSION_NAME'+--+-- -   'NV_INHERITED_VIEWPORT_SCISSOR_SPEC_VERSION'+--+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV'+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV'+--+-- == Issues+--+-- (1) Why are viewport depth values configured in the+-- 'CommandBufferInheritanceViewportScissorInfoNV' struct, rather than by a+-- @vkCmd…​@ function?+--+-- __DISCUSSION__:+--+-- We considered both adding a new @vkCmdSetViewportDepthNV@ function, and+-- modifying 'Vulkan.Core10.CommandBufferBuilding.cmdSetViewport' to ignore+-- the @x@, @y@, @width@, and @height@ values when called with a secondary+-- command buffer that activates this extension.+--+-- The primary design considerations for this extension are debuggability+-- and easy integration into existing applications. The main issue with+-- adding a new @vkCmdSetViewportDepthNV@ function is reducing+-- ease-of-integration. A new function pointer will have to be loaded, but+-- more importantly, a new function would require changes to be supported+-- in graphics debuggers; this would delay widespread adoption of the+-- extension.+--+-- The proposal to modify+-- 'Vulkan.Core10.CommandBufferBuilding.cmdSetViewport' would avoid these+-- issues. However, we expect that the intent of applications using this+-- extension is to have the viewport values used for drawing exactly match+-- the inherited values; thus, it would be better for debuggability if no+-- function for modifying the viewport depth alone is provided. By+-- specifying viewport depth values when starting secondary command buffer+-- recording, and requiring the specified depth values to match the+-- inherited depth values, we allow for validation layers that flag depth+-- changes as errors.+--+-- This design also better matches the hardware model. In fact, there is no+-- need to re-execute a depth-setting command. The graphics device retains+-- the viewport depth state; it’s the CPU-side state of+-- 'Vulkan.Core10.Handles.CommandBuffer' that must be re-initialized.+--+-- (2) Why are viewport depth values specified as a partial+-- 'Vulkan.Core10.Pipeline.Viewport' struct, rather than a leaner+-- depth-only struct?+--+-- __DISCUSSION__:+--+-- We considered adding a new @VkViewportDepthNV@ struct containing only+-- @minDepth@ and @maxDepth@. However, as application developers would need+-- to maintain both a @VK_NV_inherited_viewport_scissor@ code path and a+-- fallback code path (at least in the short term), we ultimately chose to+-- continue using the existing 'Vulkan.Core10.Pipeline.Viewport' structure.+-- Doing so would allow application developers to reuse the same+-- 'Vulkan.Core10.Pipeline.Viewport' array for both code paths, rather than+-- constructing separate @VkViewportDepthNV@ and+-- 'Vulkan.Core10.Pipeline.Viewport' arrays for each code path.+--+-- == Version History+--+-- -   Revision 1, 2020-02-04 (David Zhao Akeley)+--+--     -   Internal revisions+--+-- = See Also+--+-- 'CommandBufferInheritanceViewportScissorInfoNV',+-- 'PhysicalDeviceInheritedViewportScissorFeaturesNV'+--+-- = Document Notes+--+-- For more information, see the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_inherited_viewport_scissor Vulkan Specification>+--+-- This page is a generated document. Fixes and changes should be made to+-- the generator scripts, not directly.+module Vulkan.Extensions.VK_NV_inherited_viewport_scissor  ( PhysicalDeviceInheritedViewportScissorFeaturesNV(..)+                                                           , CommandBufferInheritanceViewportScissorInfoNV(..)+                                                           , NV_INHERITED_VIEWPORT_SCISSOR_SPEC_VERSION+                                                           , pattern NV_INHERITED_VIEWPORT_SCISSOR_SPEC_VERSION+                                                           , NV_INHERITED_VIEWPORT_SCISSOR_EXTENSION_NAME+                                                           , pattern NV_INHERITED_VIEWPORT_SCISSOR_EXTENSION_NAME+                                                           ) where++import Foreign.Marshal.Alloc (allocaBytesAligned)+import Foreign.Ptr (nullPtr)+import Foreign.Ptr (plusPtr)+import Control.Monad.Trans.Class (lift)+import Control.Monad.Trans.Cont (evalContT)+import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (FromCStruct(..))+import Vulkan.CStruct (ToCStruct)+import Vulkan.CStruct (ToCStruct(..))+import Vulkan.Zero (Zero(..))+import 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 Vulkan.Core10.FundamentalTypes (bool32ToBool)+import Vulkan.Core10.FundamentalTypes (boolToBool32)+import Vulkan.Core10.FundamentalTypes (Bool32)+import Vulkan.Core10.Enums.StructureType (StructureType)+import Vulkan.Core10.Pipeline (Viewport)+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV))+-- | VkPhysicalDeviceInheritedViewportScissorFeaturesNV - Structure+-- describing the viewport scissor inheritance behavior for an+-- implementation+--+-- = Members+--+-- This structure describes the following feature:+--+-- = Description+--+-- If the 'PhysicalDeviceInheritedViewportScissorFeaturesNV' 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. 'PhysicalDeviceInheritedViewportScissorFeaturesNV' /can/ also+-- be used in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo'+-- to selectively enable these features.+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data PhysicalDeviceInheritedViewportScissorFeaturesNV = PhysicalDeviceInheritedViewportScissorFeaturesNV+  { -- | #features-inheritedViewportScissor2D# @inheritedViewportScissor2D@+    -- indicates whether secondary command buffers can inherit most of the+    -- dynamic state affected by+    -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT',+    -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT',+    -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_EXT',+    -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT' or+    -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR', from a primary+    -- command buffer.+    inheritedViewportScissor2D :: Bool }+  deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PhysicalDeviceInheritedViewportScissorFeaturesNV)+#endif+deriving instance Show PhysicalDeviceInheritedViewportScissorFeaturesNV++instance ToCStruct PhysicalDeviceInheritedViewportScissorFeaturesNV where+  withCStruct x f = allocaBytesAligned 24 8 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p PhysicalDeviceInheritedViewportScissorFeaturesNV{..} f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (inheritedViewportScissor2D))+    f+  cStructSize = 24+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))+    f++instance FromCStruct PhysicalDeviceInheritedViewportScissorFeaturesNV where+  peekCStruct p = do+    inheritedViewportScissor2D <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))+    pure $ PhysicalDeviceInheritedViewportScissorFeaturesNV+             (bool32ToBool inheritedViewportScissor2D)++instance Storable PhysicalDeviceInheritedViewportScissorFeaturesNV where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek = peekCStruct+  poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero PhysicalDeviceInheritedViewportScissorFeaturesNV where+  zero = PhysicalDeviceInheritedViewportScissorFeaturesNV+           zero+++-- | VkCommandBufferInheritanceViewportScissorInfoNV - Structure specifying+-- command buffer inheritance information+--+-- = Description+--+-- If the @pNext@ chain of+-- 'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo' includes a+-- 'CommandBufferInheritanceViewportScissorInfoNV' structure, then that+-- structure controls whether a command buffer /can/ inherit the following+-- state from other command buffers:+--+-- -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR'+--+-- -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT'+--+-- -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_EXT'+--+-- as well as the following state, with restrictions on inherited depth+-- values and viewport count:+--+-- -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT'+--+-- -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+--+-- If @viewportScissor2D@ is 'Vulkan.Core10.FundamentalTypes.FALSE', then+-- the command buffer does not inherit the listed dynamic state, and+-- /should/ set this state itself. If this structure is not present, the+-- behavior is as if @viewportScissor2D@ is+-- 'Vulkan.Core10.FundamentalTypes.FALSE'.+--+-- If @viewportScissor2D@ is 'Vulkan.Core10.FundamentalTypes.TRUE', then+-- the listed dynamic state is inherited, and the command buffer /must/ not+-- set this state, except that the viewport and scissor count /may/ be set+-- by binding a graphics pipeline that does not specify this state as+-- dynamic.+--+-- Note+--+-- Due to this restriction, applications /should/ ensure either all or none+-- of the graphics pipelines bound in this secondary command buffer use+-- dynamic viewport\/scissor counts.+--+-- When the command buffer is executed as part of a the execution of a+-- 'Vulkan.Core10.CommandBufferBuilding.cmdExecuteCommands' command, the+-- inherited state (if enabled) is determined by the following procedure,+-- performed separately for each dynamic state, and separately for each+-- value for dynamic state that consists of multiple values (e.g. multiple+-- viewports).+--+-- -   With \(i\) being the index of the executed command buffer in the+--     @pCommandBuffers@ array of+--     'Vulkan.Core10.CommandBufferBuilding.cmdExecuteCommands', if+--     \(i > 0\) and any secondary command buffer from index \(0\) to+--     \(i-1\) modifies the state, the inherited state is provisionally set+--     to the final value set by the last such secondary command buffer.+--     Binding a graphics pipeline that defines the state statically is+--     equivalent to setting the state to an undefined value.+--+-- -   Otherwise, the tentatative inherited state is that of the primary+--     command buffer at the point the+--     'Vulkan.Core10.CommandBufferBuilding.cmdExecuteCommands' command was+--     recorded; if the state is undefined, then so is the provisional+--     inherited state.+--+-- -   If the provisional inherited state is an undefined value, then the+--     state is not inherited.+--+-- -   If the provisional inherited state is a viewport, with \(n\) being+--     its viewport index, then if \(n \ge\) @viewportDepthCount@, or if+--     either 'Vulkan.Core10.Pipeline.Viewport'::@minDepth@ or+--     'Vulkan.Core10.Pipeline.Viewport'::@maxDepth@ are not equal to the+--     respective values of the \(n^{th}\) element of @pViewportDepths@,+--     then the state is not inherited.+--+-- -   If the provisional inherited state passes both checks, then it+--     becomes the actual inherited state.+--+-- Note+--+-- There is no support for inheriting dynamic state from a secondary+-- command buffer executed as part of a different+-- 'Vulkan.Core10.CommandBufferBuilding.cmdExecuteCommands' command.+--+-- == Valid Usage+--+-- -   #VUID-VkCommandBufferInheritanceViewportScissorInfoNV-viewportScissor2D-04782#+--     If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-inheritedViewportScissor2D inherited viewport scissor>+--     feature is not enabled, @viewportScissor2D@ /must/ be+--     'Vulkan.Core10.FundamentalTypes.FALSE'+--+-- -   #VUID-VkCommandBufferInheritanceViewportScissorInfoNV-viewportScissor2D-04783#+--     If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multiViewport multiple viewports>+--     feature is not enabled and @viewportScissor2D@ is+--     'Vulkan.Core10.FundamentalTypes.TRUE', then @viewportDepthCount@+--     /must/ be @1@+--+-- -   #VUID-VkCommandBufferInheritanceViewportScissorInfoNV-viewportScissor2D-04784#+--     If @viewportScissor2D@ is 'Vulkan.Core10.FundamentalTypes.TRUE',+--     then @viewportDepthCount@ /must/ be greater than @0@+--+-- -   #VUID-VkCommandBufferInheritanceViewportScissorInfoNV-viewportScissor2D-04785#+--     If @viewportScissor2D@ is 'Vulkan.Core10.FundamentalTypes.TRUE',+--     then @pViewportDepths@ /must/ be a valid pointer to an array of+--     @viewportDepthCount@ valid 'Vulkan.Core10.Pipeline.Viewport'+--     structures, except any requirements on @x@, @y@, @width@, and+--     @height@ do not apply.+--+-- -   #VUID-VkCommandBufferInheritanceViewportScissorInfoNV-viewportScissor2D-04786#+--     If @viewportScissor2D@ is 'Vulkan.Core10.FundamentalTypes.TRUE',+--     then the command buffer /must/ be recorded with the+--     'Vulkan.Core10.Enums.CommandBufferUsageFlagBits.COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT'.+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-VkCommandBufferInheritanceViewportScissorInfoNV-sType-sType#+--     @sType@ /must/ be+--     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV'+--+-- = See Also+--+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Enums.StructureType.StructureType',+-- 'Vulkan.Core10.Pipeline.Viewport'+data CommandBufferInheritanceViewportScissorInfoNV = CommandBufferInheritanceViewportScissorInfoNV+  { -- | @viewportScissor2D@ specifies whether the listed dynamic state is+    -- inherited.+    viewportScissor2D :: Bool+  , -- | @viewportDepthCount@ specifies the maximum number of viewports to+    -- inherit. When @viewportScissor2D@ is+    -- 'Vulkan.Core10.FundamentalTypes.FALSE', the behavior is as if this value+    -- is zero.+    viewportDepthCount :: Word32+  , -- | @pViewportDepths@ is a pointer to a 'Vulkan.Core10.Pipeline.Viewport'+    -- structure specifying the expected depth range for each inherited+    -- viewport.+    viewportDepths :: Viewport+  }+  deriving (Typeable)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (CommandBufferInheritanceViewportScissorInfoNV)+#endif+deriving instance Show CommandBufferInheritanceViewportScissorInfoNV++instance ToCStruct CommandBufferInheritanceViewportScissorInfoNV where+  withCStruct x f = allocaBytesAligned 32 8 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p CommandBufferInheritanceViewportScissorInfoNV{..} f = evalContT $ do+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV)+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    lift $ poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (viewportScissor2D))+    lift $ poke ((p `plusPtr` 20 :: Ptr Word32)) (viewportDepthCount)+    pViewportDepths'' <- ContT $ withCStruct (viewportDepths)+    lift $ poke ((p `plusPtr` 24 :: Ptr (Ptr Viewport))) pViewportDepths''+    lift $ f+  cStructSize = 32+  cStructAlignment = 8+  pokeZeroCStruct p f = evalContT $ do+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV)+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    lift $ poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))+    lift $ poke ((p `plusPtr` 20 :: Ptr Word32)) (zero)+    pViewportDepths'' <- ContT $ withCStruct (zero)+    lift $ poke ((p `plusPtr` 24 :: Ptr (Ptr Viewport))) pViewportDepths''+    lift $ f++instance FromCStruct CommandBufferInheritanceViewportScissorInfoNV where+  peekCStruct p = do+    viewportScissor2D <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))+    viewportDepthCount <- peek @Word32 ((p `plusPtr` 20 :: Ptr Word32))+    pViewportDepths <- peekCStruct @Viewport =<< peek ((p `plusPtr` 24 :: Ptr (Ptr Viewport)))+    pure $ CommandBufferInheritanceViewportScissorInfoNV+             (bool32ToBool viewportScissor2D) viewportDepthCount pViewportDepths++instance Zero CommandBufferInheritanceViewportScissorInfoNV where+  zero = CommandBufferInheritanceViewportScissorInfoNV+           zero+           zero+           zero+++type NV_INHERITED_VIEWPORT_SCISSOR_SPEC_VERSION = 1++-- No documentation found for TopLevel "VK_NV_INHERITED_VIEWPORT_SCISSOR_SPEC_VERSION"+pattern NV_INHERITED_VIEWPORT_SCISSOR_SPEC_VERSION :: forall a . Integral a => a+pattern NV_INHERITED_VIEWPORT_SCISSOR_SPEC_VERSION = 1+++type NV_INHERITED_VIEWPORT_SCISSOR_EXTENSION_NAME = "VK_NV_inherited_viewport_scissor"++-- No documentation found for TopLevel "VK_NV_INHERITED_VIEWPORT_SCISSOR_EXTENSION_NAME"+pattern NV_INHERITED_VIEWPORT_SCISSOR_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a+pattern NV_INHERITED_VIEWPORT_SCISSOR_EXTENSION_NAME = "VK_NV_inherited_viewport_scissor"+
+ src/Vulkan/Extensions/VK_NV_inherited_viewport_scissor.hs-boot view
@@ -0,0 +1,175 @@+{-# language CPP #-}+-- | = Name+--+-- VK_NV_inherited_viewport_scissor - device extension+--+-- == VK_NV_inherited_viewport_scissor+--+-- [__Name String__]+--     @VK_NV_inherited_viewport_scissor@+--+-- [__Extension Type__]+--     Device extension+--+-- [__Registered Extension Number__]+--     279+--+-- [__Revision__]+--     1+--+-- [__Extension and Version Dependencies__]+--+--     -   Requires Vulkan 1.0+--+-- [__Contact__]+--+--     -   David Zhao Akeley+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?title=VK_NV_inherited_viewport_scissor:%20&body=@akeley98%20 >+--+-- == Other Extension Metadata+--+-- [__Last Modified Date__]+--     2021-02-04+--+-- [__Contributors__]+--+--     -   David Zhao Akeley, NVIDIA+--+--     -   Jeff Bolz, NVIDIA+--+--     -   Piers Daniell, NVIDIA+--+--     -   Christoph Kubisch, NVIDIA+--+-- == Description+--+-- This extension adds the ability for a secondary command buffer to+-- inherit the dynamic viewport and scissor state from a primary command+-- 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+-- buffers. The functionality is provided through+-- 'CommandBufferInheritanceViewportScissorInfoNV'. Viewport inheritance is+-- effectively limited to the 2D rectangle; secondary command buffers must+-- re-specify the inherited depth range values.+--+-- == New Structures+--+-- -   Extending+--     'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo':+--+--     -   'CommandBufferInheritanceViewportScissorInfoNV'+--+-- -   Extending+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',+--     'Vulkan.Core10.Device.DeviceCreateInfo':+--+--     -   'PhysicalDeviceInheritedViewportScissorFeaturesNV'+--+-- == New Enum Constants+--+-- -   'NV_INHERITED_VIEWPORT_SCISSOR_EXTENSION_NAME'+--+-- -   'NV_INHERITED_VIEWPORT_SCISSOR_SPEC_VERSION'+--+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV'+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV'+--+-- == Issues+--+-- (1) Why are viewport depth values configured in the+-- 'CommandBufferInheritanceViewportScissorInfoNV' struct, rather than by a+-- @vkCmd…​@ function?+--+-- __DISCUSSION__:+--+-- We considered both adding a new @vkCmdSetViewportDepthNV@ function, and+-- modifying 'Vulkan.Core10.CommandBufferBuilding.cmdSetViewport' to ignore+-- the @x@, @y@, @width@, and @height@ values when called with a secondary+-- command buffer that activates this extension.+--+-- The primary design considerations for this extension are debuggability+-- and easy integration into existing applications. The main issue with+-- adding a new @vkCmdSetViewportDepthNV@ function is reducing+-- ease-of-integration. A new function pointer will have to be loaded, but+-- more importantly, a new function would require changes to be supported+-- in graphics debuggers; this would delay widespread adoption of the+-- extension.+--+-- The proposal to modify+-- 'Vulkan.Core10.CommandBufferBuilding.cmdSetViewport' would avoid these+-- issues. However, we expect that the intent of applications using this+-- extension is to have the viewport values used for drawing exactly match+-- the inherited values; thus, it would be better for debuggability if no+-- function for modifying the viewport depth alone is provided. By+-- specifying viewport depth values when starting secondary command buffer+-- recording, and requiring the specified depth values to match the+-- inherited depth values, we allow for validation layers that flag depth+-- changes as errors.+--+-- This design also better matches the hardware model. In fact, there is no+-- need to re-execute a depth-setting command. The graphics device retains+-- the viewport depth state; it’s the CPU-side state of+-- 'Vulkan.Core10.Handles.CommandBuffer' that must be re-initialized.+--+-- (2) Why are viewport depth values specified as a partial+-- 'Vulkan.Core10.Pipeline.Viewport' struct, rather than a leaner+-- depth-only struct?+--+-- __DISCUSSION__:+--+-- We considered adding a new @VkViewportDepthNV@ struct containing only+-- @minDepth@ and @maxDepth@. However, as application developers would need+-- to maintain both a @VK_NV_inherited_viewport_scissor@ code path and a+-- fallback code path (at least in the short term), we ultimately chose to+-- continue using the existing 'Vulkan.Core10.Pipeline.Viewport' structure.+-- Doing so would allow application developers to reuse the same+-- 'Vulkan.Core10.Pipeline.Viewport' array for both code paths, rather than+-- constructing separate @VkViewportDepthNV@ and+-- 'Vulkan.Core10.Pipeline.Viewport' arrays for each code path.+--+-- == Version History+--+-- -   Revision 1, 2020-02-04 (David Zhao Akeley)+--+--     -   Internal revisions+--+-- = See Also+--+-- 'CommandBufferInheritanceViewportScissorInfoNV',+-- 'PhysicalDeviceInheritedViewportScissorFeaturesNV'+--+-- = Document Notes+--+-- For more information, see the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_inherited_viewport_scissor Vulkan Specification>+--+-- This page is a generated document. Fixes and changes should be made to+-- the generator scripts, not directly.+module Vulkan.Extensions.VK_NV_inherited_viewport_scissor  ( CommandBufferInheritanceViewportScissorInfoNV+                                                           , PhysicalDeviceInheritedViewportScissorFeaturesNV+                                                           ) where++import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (ToCStruct)+import Data.Kind (Type)++data CommandBufferInheritanceViewportScissorInfoNV++instance ToCStruct CommandBufferInheritanceViewportScissorInfoNV+instance Show CommandBufferInheritanceViewportScissorInfoNV++instance FromCStruct CommandBufferInheritanceViewportScissorInfoNV+++data PhysicalDeviceInheritedViewportScissorFeaturesNV++instance ToCStruct PhysicalDeviceInheritedViewportScissorFeaturesNV+instance Show PhysicalDeviceInheritedViewportScissorFeaturesNV++instance FromCStruct PhysicalDeviceInheritedViewportScissorFeaturesNV+
src/Vulkan/Extensions/VK_NV_mesh_shader.hs view
@@ -180,7 +180,7 @@ -- -- 1.  How to name this extension? -----     RESOLVED: VK_NV_mesh_shader+--     __RESOLVED__: VK_NV_mesh_shader -- --     Other options considered: --@@ -194,25 +194,25 @@ -- -- 2.  Do we need a new VkPrimitiveTopology? -----     RESOLVED: NO, we skip the InputAssembler stage+--     __RESOLVED__: No. We skip the InputAssembler stage. -- -- 3.  Should we allow Instancing? -----     RESOLVED: NO, there is no fixed function input, other than the IDs.---     However, allow offsetting with a \"first\" value.+--     __RESOLVED__: No. There is no fixed function input, other than the+--     IDs. However, allow offsetting with a “first” value. -- -- 4.  Should we use existing vkCmdDraw or introduce new functions? -----     RESOLVED: Introduce new functions.+--     __RESOLVED__: Introduce new functions. -----     New functions make it easier to separate from \"programmable---     primitive shading\" chapter, less \"dual use\" language about---     existing functions having alternative behavior. The text around the---     existing \"draws\" is heavily based around emitting vertices.+--     New functions make it easier to separate from “programmable+--     primitive shading” chapter, less “dual use” language about existing+--     functions having alternative behavior. The text around the existing+--     “draws” is heavily based around emitting vertices. -- -- 5.  If new functions, how to name? -----     RESOLVED: CmdDrawMeshTasks*+--     __RESOLVED__: CmdDrawMeshTasks* -- --     Other options considered: --@@ -225,13 +225,13 @@ -- 6.  Should VK_SHADER_STAGE_ALL_GRAPHICS be updated to include the new --     stages? -----     RESOLVED: No. If an application were to be recompiled with headers---     that include additional shader stage bits in+--     __RESOLVED__: No. If an application were to be recompiled with+--     headers that include additional shader stage bits in --     VK_SHADER_STAGE_ALL_GRAPHICS, then the previously valid application --     would no longer be valid on implementations that don’t support mesh --     or task shaders. This means the change would not be backwards --     compatible. It’s too bad VkShaderStageFlagBits doesn’t have a---     dedicated \"all supported graphics stages\" bit like+--     dedicated “all supported graphics stages” bit like --     VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT, which would have avoided this --     problem. --@@ -428,9 +428,9 @@ -- -   #VUID-vkCmdDrawMeshTasksNV-commandBuffer-02701# If the --     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind --     point used by this command requires any dynamic state, that state---     /must/ have been set for @commandBuffer@, and done so after any---     previously bound pipeline with the corresponding state not specified---     as dynamic+--     /must/ have been set or inherited for @commandBuffer@, and done so+--     after any previously bound pipeline with the corresponding state not+--     specified as dynamic -- -- -   #VUID-vkCmdDrawMeshTasksNV-None-02859# There /must/ not have been --     any calls to dynamic state setting commands for any state not@@ -597,7 +597,7 @@ --     dynamic state enabled, then --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT' --     /must/ have been called in the current command buffer prior to this---     draw command, and the @viewportCount@ parameter of+--     drawing command, and the @viewportCount@ parameter of --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT' --     /must/ match the --     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@scissorCount@@@ -611,7 +611,7 @@ --     dynamic state enabled, then --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT' --     /must/ have been called in the current command buffer prior to this---     draw command, and the @scissorCount@ parameter of+--     drawing command, and the @scissorCount@ parameter of --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT' --     /must/ match the --     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@viewportCount@@@ -627,7 +627,7 @@ --     and --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT' --     /must/ have been called in the current command buffer prior to this---     draw command, and the @viewportCount@ parameter of+--     drawing command, and the @viewportCount@ parameter of --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT' --     /must/ match the @scissorCount@ parameter of --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'@@ -710,7 +710,7 @@ --     dynamic state enabled then --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopologyEXT' --     /must/ have been called in the current command buffer prior to this---     draw command, and the @primitiveTopology@ parameter of+--     drawing command, and the @primitiveTopology@ parameter of --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopologyEXT' --     /must/ be of the same --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#drawing-primitive-topology-class topology class>@@ -718,6 +718,47 @@ --     'Vulkan.Core10.Pipeline.PipelineInputAssemblyStateCreateInfo'::@topology@ --     state --+-- -   #VUID-vkCmdDrawMeshTasksNV-None-04875# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetPatchControlPointsEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawMeshTasksNV-None-04876# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnableEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawMeshTasksNV-None-04877# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS_ENABLE_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnableEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawMeshTasksNV-logicOp-04878# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LOGIC_OP_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetLogicOpEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command and the @logicOp@ /must/ be a valid+--     'Vulkan.Core10.Enums.LogicOp.LogicOp' value+--+-- -   #VUID-vkCmdDrawMeshTasksNV-None-04879# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetPrimitiveRestartEnableEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+-- -- -   #VUID-vkCmdDrawMeshTasksNV-primitiveFragmentShadingRateWithMultipleViewports-04552# --     If the --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports primitiveFragmentShadingRateWithMultipleViewports>@@ -729,7 +770,7 @@ --     then --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT' --     /must/ have been called in the current command buffer prior to this---     draw command, and the @viewportCount@ parameter of+--     drawing command, and the @viewportCount@ parameter of --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT' --     /must/ be @1@ --@@ -750,6 +791,16 @@ --     /must/ be the same as the current subpass color and\/or --     depth\/stencil attachments --+-- -   #VUID-vkCmdDrawMeshTasksNV-pStrides-04884# If the bound graphics+--     pipeline was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT'+--     dynamic state enabled, then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command, and the @pStrides@ parameter of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT'+--     /must/ not be @NULL@+-- -- -   #VUID-vkCmdDrawMeshTasksNV-taskCount-02119# @taskCount@ /must/ be --     less than or equal to --     'PhysicalDeviceMeshShaderPropertiesNV'::@maxDrawMeshTasksCount@@@ -933,9 +984,9 @@ -- -   #VUID-vkCmdDrawMeshTasksIndirectNV-commandBuffer-02701# If the --     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind --     point used by this command requires any dynamic state, that state---     /must/ have been set for @commandBuffer@, and done so after any---     previously bound pipeline with the corresponding state not specified---     as dynamic+--     /must/ have been set or inherited for @commandBuffer@, and done so+--     after any previously bound pipeline with the corresponding state not+--     specified as dynamic -- -- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-02859# There /must/ not have --     been any calls to dynamic state setting commands for any state not@@ -1105,7 +1156,7 @@ --     dynamic state enabled, then --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT' --     /must/ have been called in the current command buffer prior to this---     draw command, and the @viewportCount@ parameter of+--     drawing command, and the @viewportCount@ parameter of --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT' --     /must/ match the --     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@scissorCount@@@ -1119,7 +1170,7 @@ --     dynamic state enabled, then --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT' --     /must/ have been called in the current command buffer prior to this---     draw command, and the @scissorCount@ parameter of+--     drawing command, and the @scissorCount@ parameter of --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT' --     /must/ match the --     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@viewportCount@@@ -1135,7 +1186,7 @@ --     and --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT' --     /must/ have been called in the current command buffer prior to this---     draw command, and the @viewportCount@ parameter of+--     drawing command, and the @viewportCount@ parameter of --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT' --     /must/ match the @scissorCount@ parameter of --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'@@ -1218,7 +1269,7 @@ --     dynamic state enabled then --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopologyEXT' --     /must/ have been called in the current command buffer prior to this---     draw command, and the @primitiveTopology@ parameter of+--     drawing command, and the @primitiveTopology@ parameter of --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopologyEXT' --     /must/ be of the same --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#drawing-primitive-topology-class topology class>@@ -1226,6 +1277,47 @@ --     'Vulkan.Core10.Pipeline.PipelineInputAssemblyStateCreateInfo'::@topology@ --     state --+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-04875# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetPatchControlPointsEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-04876# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnableEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-04877# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS_ENABLE_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnableEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-logicOp-04878# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LOGIC_OP_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetLogicOpEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command and the @logicOp@ /must/ be a valid+--     'Vulkan.Core10.Enums.LogicOp.LogicOp' value+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-04879# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetPrimitiveRestartEnableEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+-- -- -   #VUID-vkCmdDrawMeshTasksIndirectNV-primitiveFragmentShadingRateWithMultipleViewports-04552# --     If the --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports primitiveFragmentShadingRateWithMultipleViewports>@@ -1237,7 +1329,7 @@ --     then --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT' --     /must/ have been called in the current command buffer prior to this---     draw command, and the @viewportCount@ parameter of+--     drawing command, and the @viewportCount@ parameter of --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT' --     /must/ be @1@ --@@ -1259,6 +1351,16 @@ --     /must/ be the same as the current subpass color and\/or --     depth\/stencil attachments --+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-pStrides-04884# If the bound+--     graphics pipeline was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT'+--     dynamic state enabled, then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command, and the @pStrides@ parameter of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT'+--     /must/ not be @NULL@+-- -- -   #VUID-vkCmdDrawMeshTasksIndirectNV-buffer-02708# If @buffer@ is --     non-sparse then it /must/ be bound completely and contiguously to a --     single 'Vulkan.Core10.Handles.DeviceMemory' object@@ -1486,9 +1588,9 @@ -- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-commandBuffer-02701# If the --     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind --     point used by this command requires any dynamic state, that state---     /must/ have been set for @commandBuffer@, and done so after any---     previously bound pipeline with the corresponding state not specified---     as dynamic+--     /must/ have been set or inherited for @commandBuffer@, and done so+--     after any previously bound pipeline with the corresponding state not+--     specified as dynamic -- -- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02859# There /must/ not --     have been any calls to dynamic state setting commands for any state@@ -1658,7 +1760,7 @@ --     dynamic state enabled, then --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT' --     /must/ have been called in the current command buffer prior to this---     draw command, and the @viewportCount@ parameter of+--     drawing command, and the @viewportCount@ parameter of --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT' --     /must/ match the --     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@scissorCount@@@ -1672,7 +1774,7 @@ --     dynamic state enabled, then --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT' --     /must/ have been called in the current command buffer prior to this---     draw command, and the @scissorCount@ parameter of+--     drawing command, and the @scissorCount@ parameter of --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT' --     /must/ match the --     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@viewportCount@@@ -1688,7 +1790,7 @@ --     and --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT' --     /must/ have been called in the current command buffer prior to this---     draw command, and the @viewportCount@ parameter of+--     drawing command, and the @viewportCount@ parameter of --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT' --     /must/ match the @scissorCount@ parameter of --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT'@@ -1771,7 +1873,7 @@ --     dynamic state enabled then --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopologyEXT' --     /must/ have been called in the current command buffer prior to this---     draw command, and the @primitiveTopology@ parameter of+--     drawing command, and the @primitiveTopology@ parameter of --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopologyEXT' --     /must/ be of the same --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#drawing-primitive-topology-class topology class>@@ -1779,6 +1881,47 @@ --     'Vulkan.Core10.Pipeline.PipelineInputAssemblyStateCreateInfo'::@topology@ --     state --+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-04875# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetPatchControlPointsEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-04876# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnableEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-04877# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS_ENABLE_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnableEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-logicOp-04878# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LOGIC_OP_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetLogicOpEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command and the @logicOp@ /must/ be a valid+--     'Vulkan.Core10.Enums.LogicOp.LogicOp' value+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-04879# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetPrimitiveRestartEnableEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+-- -- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-primitiveFragmentShadingRateWithMultipleViewports-04552# --     If the --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports primitiveFragmentShadingRateWithMultipleViewports>@@ -1790,7 +1933,7 @@ --     then --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT' --     /must/ have been called in the current command buffer prior to this---     draw command, and the @viewportCount@ parameter of+--     drawing command, and the @viewportCount@ parameter of --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT' --     /must/ be @1@ --@@ -1812,6 +1955,16 @@ --     /must/ be the same as the current subpass color and\/or --     depth\/stencil attachments --+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-pStrides-04884# If the bound+--     graphics pipeline was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT'+--     dynamic state enabled, then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command, and the @pStrides@ parameter of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT'+--     /must/ not be @NULL@+-- -- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-buffer-02708# If @buffer@ is --     non-sparse then it /must/ be bound completely and contiguously to a --     single 'Vulkan.Core10.Handles.DeviceMemory' object@@ -1956,14 +2109,21 @@ -- | VkPhysicalDeviceMeshShaderFeaturesNV - Structure describing mesh shading -- features that can be supported by an implementation --+-- = Members+--+-- This structure describes the following features:+-- -- = Description -- -- If the 'PhysicalDeviceMeshShaderFeaturesNV' structure is included in the--- @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- it is filled with a value indicating whether the feature is supported.--- 'PhysicalDeviceMeshShaderFeaturesNV' /can/ also be included in @pNext@--- chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to enable the features.+-- @pNext@ chain of the+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2'+-- structure passed to+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceFeatures2',+-- it is filled in to indicate whether each corresponding feature is+-- supported. 'PhysicalDeviceMeshShaderFeaturesNV' /can/ also be used in+-- the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to+-- selectively enable these features. -- -- == Valid Usage (Implicit) --@@ -2024,17 +2184,15 @@ -- | VkPhysicalDeviceMeshShaderPropertiesNV - Structure describing mesh -- shading properties ----- = Members------ The members of the 'PhysicalDeviceMeshShaderPropertiesNV' structure--- describe the following implementation-dependent limits:--- -- = Description -- -- If the 'PhysicalDeviceMeshShaderPropertiesNV' structure is included in--- the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2',--- it is filled with the implementation-dependent limits.+-- 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) --
src/Vulkan/Extensions/VK_NV_mesh_shader.hs-boot view
@@ -180,7 +180,7 @@ -- -- 1.  How to name this extension? -----     RESOLVED: VK_NV_mesh_shader+--     __RESOLVED__: VK_NV_mesh_shader -- --     Other options considered: --@@ -194,25 +194,25 @@ -- -- 2.  Do we need a new VkPrimitiveTopology? -----     RESOLVED: NO, we skip the InputAssembler stage+--     __RESOLVED__: No. We skip the InputAssembler stage. -- -- 3.  Should we allow Instancing? -----     RESOLVED: NO, there is no fixed function input, other than the IDs.---     However, allow offsetting with a \"first\" value.+--     __RESOLVED__: No. There is no fixed function input, other than the+--     IDs. However, allow offsetting with a “first” value. -- -- 4.  Should we use existing vkCmdDraw or introduce new functions? -----     RESOLVED: Introduce new functions.+--     __RESOLVED__: Introduce new functions. -----     New functions make it easier to separate from \"programmable---     primitive shading\" chapter, less \"dual use\" language about---     existing functions having alternative behavior. The text around the---     existing \"draws\" is heavily based around emitting vertices.+--     New functions make it easier to separate from “programmable+--     primitive shading” chapter, less “dual use” language about existing+--     functions having alternative behavior. The text around the existing+--     “draws” is heavily based around emitting vertices. -- -- 5.  If new functions, how to name? -----     RESOLVED: CmdDrawMeshTasks*+--     __RESOLVED__: CmdDrawMeshTasks* -- --     Other options considered: --@@ -225,13 +225,13 @@ -- 6.  Should VK_SHADER_STAGE_ALL_GRAPHICS be updated to include the new --     stages? -----     RESOLVED: No. If an application were to be recompiled with headers---     that include additional shader stage bits in+--     __RESOLVED__: No. If an application were to be recompiled with+--     headers that include additional shader stage bits in --     VK_SHADER_STAGE_ALL_GRAPHICS, then the previously valid application --     would no longer be valid on implementations that don’t support mesh --     or task shaders. This means the change would not be backwards --     compatible. It’s too bad VkShaderStageFlagBits doesn’t have a---     dedicated \"all supported graphics stages\" bit like+--     dedicated “all supported graphics stages” bit like --     VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT, which would have avoided this --     problem. --
src/Vulkan/Extensions/VK_NV_ray_tracing.hs view
@@ -857,10 +857,10 @@ -- -- = Description ----- Similar to other objects in Vulkan, the acceleration structure creation--- merely creates an object with a specific “shape” as specified by the--- information in 'AccelerationStructureInfoNV' and @compactedSize@ in--- @pCreateInfo@. Populating the data in the object after allocating and+-- Similarly to other objects in Vulkan, the acceleration structure+-- creation merely creates an object with a specific “shape” as specified+-- by the information in 'AccelerationStructureInfoNV' and @compactedSize@+-- in @pCreateInfo@. Populating the data in the object after allocating and -- binding memory is done with 'cmdBuildAccelerationStructureNV' and -- 'cmdCopyAccelerationStructureNV'. --@@ -1047,8 +1047,9 @@                                                 -- #VUID-vkGetAccelerationStructureMemoryRequirementsNV-device-parameter#                                                 -- @device@ /must/ be a valid 'Vulkan.Core10.Handles.Device' handle                                                 Device-                                             -> -- | @pInfo@ specifies the acceleration structure to get memory requirements-                                                -- for.+                                             -> -- | @pInfo@ is a pointer to a+                                                -- 'AccelerationStructureMemoryRequirementsInfoNV' structure specifying the+                                                -- acceleration structure to get memory requirements for.                                                 --                                                 -- #VUID-vkGetAccelerationStructureMemoryRequirementsNV-pInfo-parameter#                                                 -- @pInfo@ /must/ be a valid pointer to a valid@@ -1706,9 +1707,9 @@ -- -   #VUID-vkCmdTraceRaysNV-commandBuffer-02701# If the --     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind --     point used by this command requires any dynamic state, that state---     /must/ have been set for @commandBuffer@, and done so after any---     previously bound pipeline with the corresponding state not specified---     as dynamic+--     /must/ have been set or inherited for @commandBuffer@, and done so+--     after any previously bound pipeline with the corresponding state not+--     specified as dynamic -- -- -   #VUID-vkCmdTraceRaysNV-None-02859# There /must/ not have been any --     calls to dynamic state setting commands for any state not specified@@ -1827,7 +1828,7 @@ -- -- -   #VUID-vkCmdTraceRaysNV-None-03429# Any shader group handle --     referenced by this call /must/ have been queried from the currently---     bound ray tracing shader pipeline+--     bound ray tracing pipeline -- -- -   #VUID-vkCmdTraceRaysNV-commandBuffer-04624# @commandBuffer@ /must/ --     not be a protected command buffer@@ -2713,13 +2714,15 @@     -- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PipelineCreateFlagBits'     -- specifying how the pipeline will be generated.     flags :: PipelineCreateFlags-  , -- | @pStages@ is an array of size @stageCount@ structures of type-    -- 'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo' describing the-    -- set of the shader stages to be included in the ray tracing pipeline.+  , -- | @pStages@ is a pointer to an array of+    -- 'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo' structures+    -- specifying the set of the shader stages to be included in the ray+    -- tracing pipeline.     stages :: Vector (SomeStruct PipelineShaderStageCreateInfo)-  , -- | @pGroups@ is an array of size @groupCount@ structures of type-    -- 'RayTracingShaderGroupCreateInfoNV' describing the set of the shader-    -- stages to be included in each shader group in the ray tracing pipeline.+  , -- | @pGroups@ is a pointer to an array of+    -- 'RayTracingShaderGroupCreateInfoNV' structures describing the set of the+    -- shader stages to be included in each shader group in the ray tracing+    -- pipeline.     groups :: Vector RayTracingShaderGroupCreateInfoNV   , -- | @maxRecursionDepth@ is the     -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#ray-tracing-recursion-depth maximum recursion depth>@@ -3592,7 +3595,7 @@   -- | VkWriteDescriptorSetAccelerationStructureNV - Structure specifying--- acceleration structure descriptor info+-- acceleration structure descriptor information -- -- == Valid Usage --@@ -3631,7 +3634,9 @@ -- 'Vulkan.Extensions.Handles.AccelerationStructureNV', -- 'Vulkan.Core10.Enums.StructureType.StructureType' data WriteDescriptorSetAccelerationStructureNV = WriteDescriptorSetAccelerationStructureNV-  { -- | @pAccelerationStructures@ are the acceleration structures to update.+  { -- | @pAccelerationStructures@ is a pointer to an array of+    -- 'Vulkan.Extensions.Handles.AccelerationStructureNV' structures+    -- specifying the acceleration structures to update.     accelerationStructures :: Vector AccelerationStructureNV }   deriving (Typeable) #if defined(GENERIC_INSTANCES)@@ -3751,9 +3756,12 @@ -- = Description -- -- If the 'PhysicalDeviceRayTracingPropertiesNV' structure is included in--- the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2',--- it is filled with the implementation-dependent limits.+-- 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. -- -- Limits specified by this structure /must/ match those specified with the -- same name in@@ -3767,7 +3775,7 @@ -- -- 'Vulkan.Core10.Enums.StructureType.StructureType' data PhysicalDeviceRayTracingPropertiesNV = PhysicalDeviceRayTracingPropertiesNV-  { -- | @shaderGroupHandleSize@ size in bytes of the shader header.+  { -- | @shaderGroupHandleSize@ is the size in bytes of the shader header.     shaderGroupHandleSize :: Word32   , -- | #limits-maxRecursionDepth# @maxRecursionDepth@ is the maximum number of     -- levels of recursion allowed in a trace command.
src/Vulkan/Extensions/VK_NV_representative_fragment_test.hs view
@@ -197,18 +197,20 @@ -- -- = Members ----- The members of the 'PhysicalDeviceRepresentativeFragmentTestFeaturesNV'--- structure describe the following features:+-- This structure describes the following feature: -- -- = Description -- -- If the 'PhysicalDeviceRepresentativeFragmentTestFeaturesNV' structure is--- included in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- it is filled with values indicating whether the feature is supported.--- 'PhysicalDeviceRepresentativeFragmentTestFeaturesNV' /can/ also be--- included in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo'--- to enable the feature.+-- 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. 'PhysicalDeviceRepresentativeFragmentTestFeaturesNV' /can/+-- also be used in the @pNext@ chain of+-- 'Vulkan.Core10.Device.DeviceCreateInfo' to selectively enable these+-- features. -- -- == Valid Usage (Implicit) --
src/Vulkan/Extensions/VK_NV_scissor_exclusive.hs view
@@ -306,8 +306,7 @@ -- -- = Members ----- The members of the 'PhysicalDeviceExclusiveScissorFeaturesNV' structure--- describe the following features:+-- This structure describes the following feature: -- -- = Description --@@ -316,12 +315,14 @@ -- for more information. -- -- If the 'PhysicalDeviceExclusiveScissorFeaturesNV' structure is included--- in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- it is filled with values indicating whether the feature is supported.--- 'PhysicalDeviceExclusiveScissorFeaturesNV' /can/ also be included in the--- @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to enable the--- feature.+-- 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. 'PhysicalDeviceExclusiveScissorFeaturesNV' /can/ also be used+-- in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to+-- selectively enable these features. -- -- == Valid Usage (Implicit) --
src/Vulkan/Extensions/VK_NV_shader_image_footprint.hs view
@@ -104,7 +104,7 @@ -- -- When using SPIR-V generated from the OpenGL Shading Language, the new -- instruction will be generated from code using the new--- @textureFootprint@*NV built-in functions from the+-- @textureFootprint*NV@ built-in functions from the -- @GL_NV_shader_texture_footprint@ shading language extension. -- -- == New Structures@@ -299,6 +299,10 @@ -- shader image footprint features that can be supported by an -- implementation --+-- = Members+--+-- This structure describes the following feature:+-- -- = Description -- -- See@@ -306,12 +310,14 @@ -- for more information. -- -- If the 'PhysicalDeviceShaderImageFootprintFeaturesNV' structure is--- included in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- it is filled with values indicating whether each feature is supported.--- 'PhysicalDeviceShaderImageFootprintFeaturesNV' /can/ also be included in--- the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to enable--- features.+-- 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. 'PhysicalDeviceShaderImageFootprintFeaturesNV' /can/ also be+-- used in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to+-- selectively enable these features. -- -- == Valid Usage (Implicit) --
src/Vulkan/Extensions/VK_NV_shader_image_footprint.hs-boot view
@@ -104,7 +104,7 @@ -- -- When using SPIR-V generated from the OpenGL Shading Language, the new -- instruction will be generated from code using the new--- @textureFootprint@*NV built-in functions from the+-- @textureFootprint*NV@ built-in functions from the -- @GL_NV_shader_texture_footprint@ shading language extension. -- -- == New Structures
src/Vulkan/Extensions/VK_NV_shader_sm_builtins.hs view
@@ -103,14 +103,14 @@ -- -- 1.  What should we call this extension? -----     RESOLVED: Using NV_shader_sm_builtins. Other options considered+--     __RESOLVED__: @NV_shader_sm_builtins@. Other options considered --     included: -----     -   NV_shader_smid - but SMID is really easy to typo\/confuse as+--     -   @NV_shader_smid@ - but SMID is really easy to typo\/confuse as --         SIMD. -----     -   NV_shader_sm_info - but __Info__ is typically reserved for input---         structures+--     -   @NV_shader_sm_info@ - but __Info__ is typically reserved for+--         input structures -- -- == Version History --@@ -165,17 +165,15 @@ -- | VkPhysicalDeviceShaderSMBuiltinsPropertiesNV - Structure describing -- shader SM Builtins properties supported by an implementation ----- = Members------ The members of the 'PhysicalDeviceShaderSMBuiltinsPropertiesNV'--- structure describe the following implementation-dependent limits:--- -- = Description -- -- If the 'PhysicalDeviceShaderSMBuiltinsPropertiesNV' structure is--- included in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2',--- it is filled with the implementation-dependent limits.+-- 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) --@@ -237,18 +235,19 @@ -- -- = Members ----- The members of the 'PhysicalDeviceShaderSMBuiltinsFeaturesNV' structure--- describe the following features:+-- This structure describes the following feature: -- -- = Description -- -- If the 'PhysicalDeviceShaderSMBuiltinsFeaturesNV' structure is included--- in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- it is filled with values indicating whether the feature is supported.--- 'PhysicalDeviceShaderSMBuiltinsFeaturesNV' /can/ also be included in the--- @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to enable the--- feature.+-- 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. 'PhysicalDeviceShaderSMBuiltinsFeaturesNV' /can/ also be used+-- in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to+-- selectively enable these features. -- -- == Valid Usage (Implicit) --
src/Vulkan/Extensions/VK_NV_shader_sm_builtins.hs-boot view
@@ -103,14 +103,14 @@ -- -- 1.  What should we call this extension? -----     RESOLVED: Using NV_shader_sm_builtins. Other options considered+--     __RESOLVED__: @NV_shader_sm_builtins@. Other options considered --     included: -----     -   NV_shader_smid - but SMID is really easy to typo\/confuse as+--     -   @NV_shader_smid@ - but SMID is really easy to typo\/confuse as --         SIMD. -----     -   NV_shader_sm_info - but __Info__ is typically reserved for input---         structures+--     -   @NV_shader_sm_info@ - but __Info__ is typically reserved for+--         input structures -- -- == Version History --
src/Vulkan/Extensions/VK_NV_shading_rate_image.hs view
@@ -142,7 +142,7 @@ -- -- -   Extending 'Vulkan.Core10.Enums.AccessFlagBits.AccessFlagBits': -----     -   'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV'+--     -   'ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV' -- -- -   Extending 'Vulkan.Core10.Enums.DynamicState.DynamicState': --@@ -152,17 +152,17 @@ -- -- -   Extending 'Vulkan.Core10.Enums.ImageLayout.ImageLayout': -----     -   'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV'+--     -   'IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV' -- -- -   Extending --     'Vulkan.Core10.Enums.ImageUsageFlagBits.ImageUsageFlagBits': -----     -   'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV'+--     -   'IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV' -- -- -   Extending --     'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits': -----     -   'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV'+--     -   'PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV' -- -- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType': --@@ -201,8 +201,7 @@ -- perform such a query, it could instead just set its own order, also -- using custom per-pixel sample locations if required. ----- (2) For the pipeline stage--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV',+-- (2) For the pipeline stage 'PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV', -- should we specify a precise location in the pipeline the shading rate -- image is accessed (after geometry shading, but before the early fragment -- tests) or leave it under-specified in case there are other@@ -277,6 +276,10 @@ module Vulkan.Extensions.VK_NV_shading_rate_image  ( cmdBindShadingRateImageNV                                                    , cmdSetViewportShadingRatePaletteNV                                                    , cmdSetCoarseSampleOrderNV+                                                   , pattern IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV+                                                   , pattern ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV+                                                   , pattern IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV+                                                   , pattern PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV                                                    , ShadingRatePaletteNV(..)                                                    , PipelineViewportShadingRateImageStateCreateInfoNV(..)                                                    , PhysicalDeviceShadingRateImageFeaturesNV(..)@@ -368,6 +371,13 @@ import Vulkan.Core10.Handles (ImageView) import Vulkan.Core10.Handles (ImageView(..)) import Vulkan.Core10.Enums.StructureType (StructureType)+import Vulkan.Core10.Enums.AccessFlagBits (AccessFlags)+import Vulkan.Core10.Enums.AccessFlagBits (AccessFlagBits(ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR))+import Vulkan.Core10.Enums.ImageLayout (ImageLayout(IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR))+import Vulkan.Core10.Enums.ImageUsageFlagBits (ImageUsageFlags)+import Vulkan.Core10.Enums.ImageUsageFlagBits (ImageUsageFlagBits(IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR))+import Vulkan.Core10.Enums.PipelineStageFlagBits (PipelineStageFlags)+import Vulkan.Core10.Enums.PipelineStageFlagBits (PipelineStageFlagBits(PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR)) import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV)) import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV)) import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV))@@ -401,7 +411,7 @@ -- -   #VUID-vkCmdBindShadingRateImageNV-imageView-02061# If @imageView@ is --     not 'Vulkan.Core10.APIConstants.NULL_HANDLE', it /must/ have been --     created with a @usage@ value including---     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV'+--     'IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV' -- -- -   #VUID-vkCmdBindShadingRateImageNV-imageView-02062# If @imageView@ is --     not 'Vulkan.Core10.APIConstants.NULL_HANDLE', @imageLayout@ /must/@@ -411,9 +421,8 @@ -- -- -   #VUID-vkCmdBindShadingRateImageNV-imageLayout-02063# If @imageView@ --     is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', @imageLayout@---     /must/ be---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV'---     or 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL'+--     /must/ be 'IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV' or+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL' -- -- == Valid Usage (Implicit) --@@ -682,6 +691,22 @@   pure $ ()  +-- No documentation found for TopLevel "VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV"+pattern IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV = IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR+++-- No documentation found for TopLevel "VK_ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV"+pattern ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV = ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR+++-- No documentation found for TopLevel "VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV"+pattern IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV = IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR+++-- No documentation found for TopLevel "VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV"+pattern PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV = PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR++ -- | VkShadingRatePaletteNV - Structure specifying a single shading rate -- palette --@@ -822,8 +847,7 @@ -- -- = Members ----- The members of the 'PhysicalDeviceShadingRateImageFeaturesNV' structure--- describe the following features:+-- This structure describes the following features: -- -- = Description --@@ -832,12 +856,14 @@ -- for more information. -- -- If the 'PhysicalDeviceShadingRateImageFeaturesNV' structure is included--- in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- it is filled with values indicating whether the feature is supported.--- 'PhysicalDeviceShadingRateImageFeaturesNV' /can/ also be included in the--- @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to enable--- features.+-- 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. 'PhysicalDeviceShadingRateImageFeaturesNV' /can/ also be used+-- in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to+-- selectively enable these features. -- -- == Valid Usage (Implicit) --@@ -901,20 +927,19 @@ -- | VkPhysicalDeviceShadingRateImagePropertiesNV - Structure describing -- shading rate image limits that can be supported by an implementation ----- = Members------ The members of the 'PhysicalDeviceShadingRateImagePropertiesNV'--- structure describe the following implementation-dependent properties--- related to the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-shading-rate-image shading rate image>--- feature:--- -- = Description -- -- If the 'PhysicalDeviceShadingRateImagePropertiesNV' structure is--- included in the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2',--- it is filled with the implementation-dependent limits.+-- included in the @pNext@ chain of the+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2'+-- structure passed to+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceProperties2',+-- it is filled in with each corresponding implementation-dependent+-- property.+--+-- These properties are related to the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-shading-rate-image shading rate image>+-- feature. -- -- == Valid Usage (Implicit) --
src/Vulkan/Extensions/VK_NV_shading_rate_image.hs-boot view
@@ -142,7 +142,7 @@ -- -- -   Extending 'Vulkan.Core10.Enums.AccessFlagBits.AccessFlagBits': -----     -   'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV'+--     -   'ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV' -- -- -   Extending 'Vulkan.Core10.Enums.DynamicState.DynamicState': --@@ -152,17 +152,17 @@ -- -- -   Extending 'Vulkan.Core10.Enums.ImageLayout.ImageLayout': -----     -   'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV'+--     -   'IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV' -- -- -   Extending --     'Vulkan.Core10.Enums.ImageUsageFlagBits.ImageUsageFlagBits': -----     -   'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV'+--     -   'IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV' -- -- -   Extending --     'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits': -----     -   'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV'+--     -   'PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV' -- -- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType': --@@ -201,8 +201,7 @@ -- perform such a query, it could instead just set its own order, also -- using custom per-pixel sample locations if required. ----- (2) For the pipeline stage--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV',+-- (2) For the pipeline stage 'PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV', -- should we specify a precise location in the pipeline the shading rate -- image is accessed (after geometry shading, but before the early fragment -- tests) or leave it under-specified in case there are other
src/Vulkan/Extensions/VK_QCOM_render_pass_store_ops.hs view
@@ -68,9 +68,9 @@ -- -- == New Enum Constants ----- -   'QCOM_render_pass_store_ops_EXTENSION_NAME'+-- -   'QCOM_RENDER_PASS_STORE_OPS_EXTENSION_NAME' ----- -   'QCOM_render_pass_store_ops_SPEC_VERSION'+-- -   'QCOM_RENDER_PASS_STORE_OPS_SPEC_VERSION' -- -- -   Extending 'Vulkan.Core10.Enums.AttachmentStoreOp.AttachmentStoreOp': --@@ -97,24 +97,24 @@ -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.-module Vulkan.Extensions.VK_QCOM_render_pass_store_ops  ( QCOM_render_pass_store_ops_SPEC_VERSION-                                                        , pattern QCOM_render_pass_store_ops_SPEC_VERSION-                                                        , QCOM_render_pass_store_ops_EXTENSION_NAME-                                                        , pattern QCOM_render_pass_store_ops_EXTENSION_NAME+module Vulkan.Extensions.VK_QCOM_render_pass_store_ops  ( QCOM_RENDER_PASS_STORE_OPS_SPEC_VERSION+                                                        , pattern QCOM_RENDER_PASS_STORE_OPS_SPEC_VERSION+                                                        , QCOM_RENDER_PASS_STORE_OPS_EXTENSION_NAME+                                                        , pattern QCOM_RENDER_PASS_STORE_OPS_EXTENSION_NAME                                                         ) where  import Data.String (IsString) -type QCOM_render_pass_store_ops_SPEC_VERSION = 2+type QCOM_RENDER_PASS_STORE_OPS_SPEC_VERSION = 2 --- No documentation found for TopLevel "VK_QCOM_render_pass_store_ops_SPEC_VERSION"-pattern QCOM_render_pass_store_ops_SPEC_VERSION :: forall a . Integral a => a-pattern QCOM_render_pass_store_ops_SPEC_VERSION = 2+-- No documentation found for TopLevel "VK_QCOM_RENDER_PASS_STORE_OPS_SPEC_VERSION"+pattern QCOM_RENDER_PASS_STORE_OPS_SPEC_VERSION :: forall a . Integral a => a+pattern QCOM_RENDER_PASS_STORE_OPS_SPEC_VERSION = 2  -type QCOM_render_pass_store_ops_EXTENSION_NAME = "VK_QCOM_render_pass_store_ops"+type QCOM_RENDER_PASS_STORE_OPS_EXTENSION_NAME = "VK_QCOM_render_pass_store_ops" --- No documentation found for TopLevel "VK_QCOM_render_pass_store_ops_EXTENSION_NAME"-pattern QCOM_render_pass_store_ops_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a-pattern QCOM_render_pass_store_ops_EXTENSION_NAME = "VK_QCOM_render_pass_store_ops"+-- No documentation found for TopLevel "VK_QCOM_RENDER_PASS_STORE_OPS_EXTENSION_NAME"+pattern QCOM_RENDER_PASS_STORE_OPS_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a+pattern QCOM_RENDER_PASS_STORE_OPS_EXTENSION_NAME = "VK_QCOM_render_pass_store_ops" 
src/Vulkan/Extensions/VK_QCOM_render_pass_transform.hs view
@@ -15,7 +15,7 @@ --     283 -- -- [__Revision__]---     1+--     2 -- -- [__Extension and Version Dependencies__] --@@ -33,7 +33,7 @@ -- == Other Extension Metadata -- -- [__Last Modified Date__]---     2020-10-15+--     2021-03-09 -- -- [__Interactions and External Dependencies__] --@@ -41,12 +41,16 @@ -- --     -   This extension interacts with @VK_EXT_fragment_density_map@ --+--     -   This extension interacts with @VK_KHR_fragment_shading_rate@+-- -- [__Contributors__] -- --     -   Jeff Leger, Qualcomm Technologies, Inc. -- --     -   Brandon Light, Qualcomm Technologies, Inc. --+--     -   Matthew Netsch, Qualcomm Technologies, Inc.+-- -- == Description -- -- This extension provides a mechanism for applications to enable driver@@ -56,13 +60,13 @@ -- Mobile devices can be rotated and mobile applications need to render -- properly when a device is held in a landscape or portrait orientation. -- When the current orientation differs from the device’s native--- orientation, a rotation is required so that the \"up\" direction of the+-- orientation, a rotation is required so that the “up” direction of the -- rendered scene matches the current orientation. -- -- If the Display Processing Unit (DPU) doesnt natively support rotation, -- the Vulkan presentation engine can handle this rotation in a separate -- composition pass. Alternatively, the application can render frames--- \"pre-rotated\" to avoid this extra pass. The latter is preferred to+-- “pre-rotated” to avoid this extra pass. The latter is preferred to -- reduce power consumption and achieve the best performance because it -- avoids tasking the GPU with extra work to perform the copy\/rotate -- operation.@@ -70,7 +74,7 @@ -- Unlike OpenGL ES, the burden of pre-rotation in Vulkan falls on the -- application. To implement pre-rotation, applications render into -- swapchain images matching the device native aspect ratio of the display--- and \"pre-rotate\" the rendering content to match the device’s current+-- and “pre-rotate” the rendering content to match the device’s current -- orientation. The burden is more than adjusting the Model View Projection -- (MVP) matrix in the vertex shader to account for rotation and aspect -- ratio. The coordinate systems of scissors, viewports, derivatives and@@ -103,13 +107,15 @@ --     'CommandBufferInheritanceRenderPassTransformInfoQCOM' specifying the --     render pass transform parameters. ----- -   The @renderArea@, viewPorts and scissors are all provided in the---     current (non-rotated) coordinate system. The implementation will---     transform those into the native (rotated) coordinate system.+-- -   The @renderArea@, viewports, scissors, and @fragmentSize@ are all+--     provided in the current (non-rotated) coordinate system. The+--     implementation will transform those into the native (rotated)+--     coordinate system. -- -- -   The implementation is responsible for transforming shader built-ins---     (@FragCoord@, @PointCoord@, @SamplePosition@, interpolateAt(), dFdx,---     dFdy, fWidth) into the rotated coordinate system.+--     (@FragCoord@, @PointCoord@, @SamplePosition@,+--     @PrimitiveShadingRateKHR@, interpolateAt(), dFdx, dFdy, fWidth) into+--     the rotated coordinate system. -- -- -   The implementation is responsible for transforming @position@ to the --     rotated coordinate system.@@ -191,25 +197,49 @@ -- 3) How does this extension interact with VK_EXT_fragment_density_map? -- -- __RESOLVED__ Some implementations may not be able to support a render--- pass that enables both renderpass transform and fragment density maps.+-- pass that enables both render pass transform and fragment density maps. -- For simplicity, this extension disallows enabling both features within a -- single render pass. -- -- 4) What should this extension be named? ----- We considered names such as \"rotated_rendering\", \"pre_rotation\" and+-- We considered names such as “rotated_rendering”, “pre_rotation” and -- others. Since the functionality is limited to a render pass, it seemed--- the name should include \"render_pass\". While the current extension is+-- the name should include “render_pass”. While the current extension is -- limited to rotations, it could be extended to other transforms (like -- mirror) in the future. ----- __RESOLVED__ The name \"render_pass_transform\" seems like the most+-- __RESOLVED__ The name “render_pass_transform” seems like the most -- accurate description of the introduced functionality. --+-- 5) How does this extension interact with VK_KHR_fragment_shading_rate?+--+-- __RESOLVED__: For the same reasons as issue 3, this extension disallows+-- enabling both @pFragmentShadingRateAttachment@ and render pass transform+-- within a single render pass.+--+-- However, pipeline shading rate and primitive shading rate are supported,+-- and their respective @fragmentSize@ and @PrimitiveShadingRateKHR@ are+-- provided in the current (non-rotated) coordinate system. The+-- implementation is responsible for transforming them to the rotated+-- coordinate system.+--+-- The+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-fragment-shading-rate set of supported shading rates>+-- /may/ be different per transform. Supported rates queried from+-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.getPhysicalDeviceFragmentShadingRatesKHR'+-- are in the native (rotated) coordinate system. This means that the+-- application /must/ swap the x\/y of the reported rates to get the set of+-- rates supported for 90 and 270 degree rotation.+-- -- == Version History -- -- -   Revision 1, 2020-02-05 (Jeff Leger) --+-- -   Revision 2, 2021-03-09 (Matthew Netsch)+--+--     -   Adds interactions with VK_KHR_fragment_shading_rate+-- -- = See Also -- -- 'CommandBufferInheritanceRenderPassTransformInfoQCOM',@@ -405,11 +435,11 @@            zero  -type QCOM_RENDER_PASS_TRANSFORM_SPEC_VERSION = 1+type QCOM_RENDER_PASS_TRANSFORM_SPEC_VERSION = 2  -- No documentation found for TopLevel "VK_QCOM_RENDER_PASS_TRANSFORM_SPEC_VERSION" pattern QCOM_RENDER_PASS_TRANSFORM_SPEC_VERSION :: forall a . Integral a => a-pattern QCOM_RENDER_PASS_TRANSFORM_SPEC_VERSION = 1+pattern QCOM_RENDER_PASS_TRANSFORM_SPEC_VERSION = 2   type QCOM_RENDER_PASS_TRANSFORM_EXTENSION_NAME = "VK_QCOM_render_pass_transform"
src/Vulkan/Extensions/VK_QCOM_render_pass_transform.hs-boot view
@@ -15,7 +15,7 @@ --     283 -- -- [__Revision__]---     1+--     2 -- -- [__Extension and Version Dependencies__] --@@ -33,7 +33,7 @@ -- == Other Extension Metadata -- -- [__Last Modified Date__]---     2020-10-15+--     2021-03-09 -- -- [__Interactions and External Dependencies__] --@@ -41,12 +41,16 @@ -- --     -   This extension interacts with @VK_EXT_fragment_density_map@ --+--     -   This extension interacts with @VK_KHR_fragment_shading_rate@+-- -- [__Contributors__] -- --     -   Jeff Leger, Qualcomm Technologies, Inc. -- --     -   Brandon Light, Qualcomm Technologies, Inc. --+--     -   Matthew Netsch, Qualcomm Technologies, Inc.+-- -- == Description -- -- This extension provides a mechanism for applications to enable driver@@ -56,13 +60,13 @@ -- Mobile devices can be rotated and mobile applications need to render -- properly when a device is held in a landscape or portrait orientation. -- When the current orientation differs from the device’s native--- orientation, a rotation is required so that the \"up\" direction of the+-- orientation, a rotation is required so that the “up” direction of the -- rendered scene matches the current orientation. -- -- If the Display Processing Unit (DPU) doesnt natively support rotation, -- the Vulkan presentation engine can handle this rotation in a separate -- composition pass. Alternatively, the application can render frames--- \"pre-rotated\" to avoid this extra pass. The latter is preferred to+-- “pre-rotated” to avoid this extra pass. The latter is preferred to -- reduce power consumption and achieve the best performance because it -- avoids tasking the GPU with extra work to perform the copy\/rotate -- operation.@@ -70,7 +74,7 @@ -- Unlike OpenGL ES, the burden of pre-rotation in Vulkan falls on the -- application. To implement pre-rotation, applications render into -- swapchain images matching the device native aspect ratio of the display--- and \"pre-rotate\" the rendering content to match the device’s current+-- and “pre-rotate” the rendering content to match the device’s current -- orientation. The burden is more than adjusting the Model View Projection -- (MVP) matrix in the vertex shader to account for rotation and aspect -- ratio. The coordinate systems of scissors, viewports, derivatives and@@ -103,13 +107,15 @@ --     'CommandBufferInheritanceRenderPassTransformInfoQCOM' specifying the --     render pass transform parameters. ----- -   The @renderArea@, viewPorts and scissors are all provided in the---     current (non-rotated) coordinate system. The implementation will---     transform those into the native (rotated) coordinate system.+-- -   The @renderArea@, viewports, scissors, and @fragmentSize@ are all+--     provided in the current (non-rotated) coordinate system. The+--     implementation will transform those into the native (rotated)+--     coordinate system. -- -- -   The implementation is responsible for transforming shader built-ins---     (@FragCoord@, @PointCoord@, @SamplePosition@, interpolateAt(), dFdx,---     dFdy, fWidth) into the rotated coordinate system.+--     (@FragCoord@, @PointCoord@, @SamplePosition@,+--     @PrimitiveShadingRateKHR@, interpolateAt(), dFdx, dFdy, fWidth) into+--     the rotated coordinate system. -- -- -   The implementation is responsible for transforming @position@ to the --     rotated coordinate system.@@ -191,24 +197,48 @@ -- 3) How does this extension interact with VK_EXT_fragment_density_map? -- -- __RESOLVED__ Some implementations may not be able to support a render--- pass that enables both renderpass transform and fragment density maps.+-- pass that enables both render pass transform and fragment density maps. -- For simplicity, this extension disallows enabling both features within a -- single render pass. -- -- 4) What should this extension be named? ----- We considered names such as \"rotated_rendering\", \"pre_rotation\" and+-- We considered names such as “rotated_rendering”, “pre_rotation” and -- others. Since the functionality is limited to a render pass, it seemed--- the name should include \"render_pass\". While the current extension is+-- the name should include “render_pass”. While the current extension is -- limited to rotations, it could be extended to other transforms (like -- mirror) in the future. ----- __RESOLVED__ The name \"render_pass_transform\" seems like the most+-- __RESOLVED__ The name “render_pass_transform” seems like the most -- accurate description of the introduced functionality. --+-- 5) How does this extension interact with VK_KHR_fragment_shading_rate?+--+-- __RESOLVED__: For the same reasons as issue 3, this extension disallows+-- enabling both @pFragmentShadingRateAttachment@ and render pass transform+-- within a single render pass.+--+-- However, pipeline shading rate and primitive shading rate are supported,+-- and their respective @fragmentSize@ and @PrimitiveShadingRateKHR@ are+-- provided in the current (non-rotated) coordinate system. The+-- implementation is responsible for transforming them to the rotated+-- coordinate system.+--+-- The+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-fragment-shading-rate set of supported shading rates>+-- /may/ be different per transform. Supported rates queried from+-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.getPhysicalDeviceFragmentShadingRatesKHR'+-- are in the native (rotated) coordinate system. This means that the+-- application /must/ swap the x\/y of the reported rates to get the set of+-- rates supported for 90 and 270 degree rotation.+-- -- == Version History -- -- -   Revision 1, 2020-02-05 (Jeff Leger)+--+-- -   Revision 2, 2021-03-09 (Matthew Netsch)+--+--     -   Adds interactions with VK_KHR_fragment_shading_rate -- -- = See Also --
src/Vulkan/Extensions/VK_QCOM_rotated_copy_commands.hs view
@@ -15,7 +15,7 @@ --     334 -- -- [__Revision__]---     0+--     1 -- -- [__Extension and Version Dependencies__] --@@ -32,14 +32,14 @@ -- -- == Other Extension Metadata ----- [Last Modified Date]+-- [__Last Modified Date__] --     2020-09-18 -- -- [__Interactions and External Dependencies__] -- --     -   None ----- [Contributors]+-- [__Contributors__] -- --     -   Jeff Leger, Qualcomm Technologies, Inc. --@@ -61,12 +61,13 @@ -- == Issues -- -- 1) What is an appropriate name for the added extension structure? The--- style guide says \"Structures which extend other structures through the--- pNext chain should reflect the name of the base structure they--- extend.\", but in this case a single extension structure is used to--- extend three base structures (vkCmdBlitImage2KHR,--- vkCmdCopyImageToBuffer2KHR and vkCmdCopyBufferToImage2KHR). Creating--- three identical structures with unique names seemed undesirable.+-- style guide says “Structures which extend other structures through the+-- pNext chain should reflect the name of the base structure they extend.”,+-- but in this case a single extension structure is used to extend three+-- base structures (vkCmdBlitImage2KHR, vkCmdCopyImageToBuffer2KHR and+-- vkCmdCopyBufferToImage2KHR). Creating three identical structures with+-- unique names seemed undesirable.+-- -- __RESOLVED__: Deviate from the style guide for extension structure -- naming. --@@ -209,11 +210,11 @@            zero  -type QCOM_ROTATED_COPY_COMMANDS_SPEC_VERSION = 0+type QCOM_ROTATED_COPY_COMMANDS_SPEC_VERSION = 1  -- No documentation found for TopLevel "VK_QCOM_ROTATED_COPY_COMMANDS_SPEC_VERSION" pattern QCOM_ROTATED_COPY_COMMANDS_SPEC_VERSION :: forall a . Integral a => a-pattern QCOM_ROTATED_COPY_COMMANDS_SPEC_VERSION = 0+pattern QCOM_ROTATED_COPY_COMMANDS_SPEC_VERSION = 1   type QCOM_ROTATED_COPY_COMMANDS_EXTENSION_NAME = "VK_QCOM_rotated_copy_commands"
src/Vulkan/Extensions/VK_QCOM_rotated_copy_commands.hs-boot view
@@ -15,7 +15,7 @@ --     334 -- -- [__Revision__]---     0+--     1 -- -- [__Extension and Version Dependencies__] --@@ -32,14 +32,14 @@ -- -- == Other Extension Metadata ----- [Last Modified Date]+-- [__Last Modified Date__] --     2020-09-18 -- -- [__Interactions and External Dependencies__] -- --     -   None ----- [Contributors]+-- [__Contributors__] -- --     -   Jeff Leger, Qualcomm Technologies, Inc. --@@ -61,12 +61,13 @@ -- == Issues -- -- 1) What is an appropriate name for the added extension structure? The--- style guide says \"Structures which extend other structures through the--- pNext chain should reflect the name of the base structure they--- extend.\", but in this case a single extension structure is used to--- extend three base structures (vkCmdBlitImage2KHR,--- vkCmdCopyImageToBuffer2KHR and vkCmdCopyBufferToImage2KHR). Creating--- three identical structures with unique names seemed undesirable.+-- style guide says “Structures which extend other structures through the+-- pNext chain should reflect the name of the base structure they extend.”,+-- but in this case a single extension structure is used to extend three+-- base structures (vkCmdBlitImage2KHR, vkCmdCopyImageToBuffer2KHR and+-- vkCmdCopyBufferToImage2KHR). Creating three identical structures with+-- unique names seemed undesirable.+-- -- __RESOLVED__: Deviate from the style guide for extension structure -- naming. --
src/Vulkan/Extensions/VK_VALVE_mutable_descriptor_type.hs view
@@ -3,123 +3,8 @@ -- -- VK_VALVE_mutable_descriptor_type - device extension ----- == VK_VALVE_mutable_descriptor_type------ [__Name String__]---     @VK_VALVE_mutable_descriptor_type@------ [__Extension Type__]---     Device extension------ [__Registered Extension Number__]---     352------ [__Revision__]---     1------ [__Extension and Version Dependencies__]------     -   Requires Vulkan 1.0------     -   Requires @VK_KHR_maintenance3@------ [__Special Use__]------     -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#extendingvulkan-compatibility-specialuse D3D support>------ [__Contact__]------     -   Joshua Ashton---         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?title=VK_VALVE_mutable_descriptor_type:%20&body=@Joshua-Ashton%20 >------     -   Hans-Kristian Arntzen---         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?title=VK_VALVE_mutable_descriptor_type:%20&body=@HansKristian-Work%20 >------ == Other Extension Metadata------ [__Last Modified Date__]---     2020-12-02------ [__IP Status__]---     No known IP claims.------ [__Contributors__]------     -   Joshua Ashton, Valve------     -   Hans-Kristian Arntzen, Valve------ == Description------ This extension allows applications to reduce descriptor memory footprint--- by allowing a descriptor to be able to mutate to a given list of--- descriptor types depending on which descriptor types are written into,--- or copied into a descriptor set.------ The main use case this extension intends to address is descriptor--- indexing with--- 'Vulkan.Core12.Enums.DescriptorBindingFlagBits.DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT'--- where the descriptor types are completely generic, as this means--- applications can allocate one large descriptor set, rather than having--- one large descriptor set per descriptor type, which significantly bloats--- descriptor memory usage and causes performance issues.------ This extension also adds a mechanism to declare that a descriptor pool,--- and therefore the descriptor sets that are allocated from it, reside--- only in host memory; as such these descriptors can only be--- updated\/copied, but not bound.------ These features together allow much more efficient emulation of the raw--- D3D12 binding model. This extension is primarily intended to be useful--- for API layering efforts.------ == New Structures------ -   'MutableDescriptorTypeListVALVE'------ -   Extending---     'Vulkan.Core10.DescriptorSet.DescriptorSetLayoutCreateInfo',---     'Vulkan.Core10.DescriptorSet.DescriptorPoolCreateInfo':------     -   'MutableDescriptorTypeCreateInfoVALVE'------ -   Extending---     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',---     'Vulkan.Core10.Device.DeviceCreateInfo':------     -   'PhysicalDeviceMutableDescriptorTypeFeaturesVALVE'------ == New Enum Constants------ -   'VALVE_MUTABLE_DESCRIPTOR_TYPE_EXTENSION_NAME'------ -   'VALVE_MUTABLE_DESCRIPTOR_TYPE_SPEC_VERSION'------ -   Extending---     'Vulkan.Core10.Enums.DescriptorPoolCreateFlagBits.DescriptorPoolCreateFlagBits':------     -   'Vulkan.Core10.Enums.DescriptorPoolCreateFlagBits.DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_VALVE'------ -   Extending---     'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DescriptorSetLayoutCreateFlagBits':------     -   'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_VALVE'------ -   Extending 'Vulkan.Core10.Enums.DescriptorType.DescriptorType':------     -   'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_MUTABLE_VALVE'------ -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':------     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE'------     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE'------ == Version History------ -   Revision 1, 2020-12-01 (Joshua Ashton, Hans-Kristian Arntzen)------     -   Initial specification, squashed from public draft.+-- -   Joshua Ashton+--     <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?title=VK_VALVE_mutable_descriptor_type:%20&body=@Joshua-Ashton%20 > -- -- = See Also --@@ -181,11 +66,15 @@ -- -- = Members ----- The members of the 'PhysicalDeviceMutableDescriptorTypeFeaturesVALVE'--- structure describe the following features:+-- This structure describes the following feature: -- -- = Description --+-- -   @sType@ is the type of this structure.+--+-- -   @pNext@ is @NULL@ or a pointer to a structure extending this+--     structure.+-- -- -   #features-mutableDescriptorType# @mutableDescriptorType@ indicates --     that the implementation /must/ support using the --     'Vulkan.Core10.Enums.DescriptorType.DescriptorType' of@@ -231,6 +120,16 @@ -- --     -   'Vulkan.Core10.Enums.DescriptorPoolCreateFlagBits.DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_VALVE' --         /must/ be supported.+--+-- If the 'PhysicalDeviceMutableDescriptorTypeFeaturesVALVE' 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. 'PhysicalDeviceMutableDescriptorTypeFeaturesVALVE' /can/ also+-- be used in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo'+-- to selectively enable these features. -- -- == Valid Usage (Implicit) --
src/Vulkan/Extensions/VK_VALVE_mutable_descriptor_type.hs-boot view
@@ -3,123 +3,8 @@ -- -- VK_VALVE_mutable_descriptor_type - device extension ----- == VK_VALVE_mutable_descriptor_type------ [__Name String__]---     @VK_VALVE_mutable_descriptor_type@------ [__Extension Type__]---     Device extension------ [__Registered Extension Number__]---     352------ [__Revision__]---     1------ [__Extension and Version Dependencies__]------     -   Requires Vulkan 1.0------     -   Requires @VK_KHR_maintenance3@------ [__Special Use__]------     -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#extendingvulkan-compatibility-specialuse D3D support>------ [__Contact__]------     -   Joshua Ashton---         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?title=VK_VALVE_mutable_descriptor_type:%20&body=@Joshua-Ashton%20 >------     -   Hans-Kristian Arntzen---         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?title=VK_VALVE_mutable_descriptor_type:%20&body=@HansKristian-Work%20 >------ == Other Extension Metadata------ [__Last Modified Date__]---     2020-12-02------ [__IP Status__]---     No known IP claims.------ [__Contributors__]------     -   Joshua Ashton, Valve------     -   Hans-Kristian Arntzen, Valve------ == Description------ This extension allows applications to reduce descriptor memory footprint--- by allowing a descriptor to be able to mutate to a given list of--- descriptor types depending on which descriptor types are written into,--- or copied into a descriptor set.------ The main use case this extension intends to address is descriptor--- indexing with--- 'Vulkan.Core12.Enums.DescriptorBindingFlagBits.DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT'--- where the descriptor types are completely generic, as this means--- applications can allocate one large descriptor set, rather than having--- one large descriptor set per descriptor type, which significantly bloats--- descriptor memory usage and causes performance issues.------ This extension also adds a mechanism to declare that a descriptor pool,--- and therefore the descriptor sets that are allocated from it, reside--- only in host memory; as such these descriptors can only be--- updated\/copied, but not bound.------ These features together allow much more efficient emulation of the raw--- D3D12 binding model. This extension is primarily intended to be useful--- for API layering efforts.------ == New Structures------ -   'MutableDescriptorTypeListVALVE'------ -   Extending---     'Vulkan.Core10.DescriptorSet.DescriptorSetLayoutCreateInfo',---     'Vulkan.Core10.DescriptorSet.DescriptorPoolCreateInfo':------     -   'MutableDescriptorTypeCreateInfoVALVE'------ -   Extending---     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',---     'Vulkan.Core10.Device.DeviceCreateInfo':------     -   'PhysicalDeviceMutableDescriptorTypeFeaturesVALVE'------ == New Enum Constants------ -   'VALVE_MUTABLE_DESCRIPTOR_TYPE_EXTENSION_NAME'------ -   'VALVE_MUTABLE_DESCRIPTOR_TYPE_SPEC_VERSION'------ -   Extending---     'Vulkan.Core10.Enums.DescriptorPoolCreateFlagBits.DescriptorPoolCreateFlagBits':------     -   'Vulkan.Core10.Enums.DescriptorPoolCreateFlagBits.DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_VALVE'------ -   Extending---     'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DescriptorSetLayoutCreateFlagBits':------     -   'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_VALVE'------ -   Extending 'Vulkan.Core10.Enums.DescriptorType.DescriptorType':------     -   'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_MUTABLE_VALVE'------ -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':------     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE'------     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE'------ == Version History------ -   Revision 1, 2020-12-01 (Joshua Ashton, Hans-Kristian Arntzen)------     -   Initial specification, squashed from public draft.+-- -   Joshua Ashton+--     <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?title=VK_VALVE_mutable_descriptor_type:%20&body=@Joshua-Ashton%20 > -- -- = See Also --
src/Vulkan/SPIRVRequirements.hs view
@@ -122,7 +122,7 @@ import Vulkan.Extensions.VK_KHR_variable_pointers (pattern KHR_VARIABLE_POINTERS_EXTENSION_NAME) import Vulkan.Extensions.VK_KHR_vulkan_memory_model (pattern KHR_VULKAN_MEMORY_MODEL_EXTENSION_NAME) import Vulkan.Extensions.VK_KHR_workgroup_memory_explicit_layout (pattern KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_EXTENSION_NAME)-import Vulkan.Version (pattern MAKE_VERSION)+import Vulkan.Version (pattern MAKE_API_VERSION) import Vulkan.Extensions.VK_NVX_multiview_per_view_attributes (pattern NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_EXTENSION_NAME) import Vulkan.Extensions.VK_NV_compute_shader_derivatives (pattern NV_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME) import Vulkan.Extensions.VK_NV_cooperative_matrix (pattern NV_COOPERATIVE_MATRIX_EXTENSION_NAME)@@ -161,7 +161,7 @@ spirvExtensionRequirements :: ByteString -> ([InstanceRequirement], [DeviceRequirement]) spirvExtensionRequirements = \case   "SPV_KHR_variable_pointers" ->-    (,) [RequireInstanceVersion $ MAKE_VERSION 1 1 0] [RequireDeviceVersion $ MAKE_VERSION 1 1 0]+    (,) [RequireInstanceVersion $ MAKE_API_VERSION 1 1 0] [RequireDeviceVersion $ MAKE_API_VERSION 1 1 0]   "SPV_AMD_shader_explicit_vertex_parameter" -> (,)     []     [ RequireDeviceExtension { deviceExtensionLayerName  = Nothing@@ -230,11 +230,11 @@                              }     ]   "SPV_KHR_shader_draw_parameters" ->-    (,) [RequireInstanceVersion $ MAKE_VERSION 1 1 0] [RequireDeviceVersion $ MAKE_VERSION 1 1 0]+    (,) [RequireInstanceVersion $ MAKE_API_VERSION 1 1 0] [RequireDeviceVersion $ MAKE_API_VERSION 1 1 0]   "SPV_KHR_8bit_storage" ->-    (,) [RequireInstanceVersion $ MAKE_VERSION 1 2 0] [RequireDeviceVersion $ MAKE_VERSION 1 2 0]+    (,) [RequireInstanceVersion $ MAKE_API_VERSION 1 2 0] [RequireDeviceVersion $ MAKE_API_VERSION 1 2 0]   "SPV_KHR_16bit_storage" ->-    (,) [RequireInstanceVersion $ MAKE_VERSION 1 1 0] [RequireDeviceVersion $ MAKE_VERSION 1 1 0]+    (,) [RequireInstanceVersion $ MAKE_API_VERSION 1 1 0] [RequireDeviceVersion $ MAKE_API_VERSION 1 1 0]   "SPV_KHR_shader_clock" -> (,)     [ RequireInstanceExtension { instanceExtensionLayerName  = Nothing                                , instanceExtensionName       = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME@@ -247,9 +247,9 @@                              }     ]   "SPV_KHR_float_controls" ->-    (,) [RequireInstanceVersion $ MAKE_VERSION 1 2 0] [RequireDeviceVersion $ MAKE_VERSION 1 2 0]+    (,) [RequireInstanceVersion $ MAKE_API_VERSION 1 2 0] [RequireDeviceVersion $ MAKE_API_VERSION 1 2 0]   "SPV_KHR_storage_buffer_storage_class" ->-    (,) [RequireInstanceVersion $ MAKE_VERSION 1 1 0] [RequireDeviceVersion $ MAKE_VERSION 1 1 0]+    (,) [RequireInstanceVersion $ MAKE_API_VERSION 1 1 0] [RequireDeviceVersion $ MAKE_API_VERSION 1 1 0]   "SPV_KHR_post_depth_coverage" -> (,)     []     [ RequireDeviceExtension { deviceExtensionLayerName  = Nothing@@ -318,7 +318,7 @@                              }     ]   "SPV_EXT_shader_viewport_index_layer" ->-    (,) [RequireInstanceVersion $ MAKE_VERSION 1 2 0] [RequireDeviceVersion $ MAKE_VERSION 1 2 0]+    (,) [RequireInstanceVersion $ MAKE_API_VERSION 1 2 0] [RequireDeviceVersion $ MAKE_API_VERSION 1 2 0]   "SPV_NVX_multiview_per_view_attributes" -> (,)     [ RequireInstanceExtension { instanceExtensionLayerName  = Nothing                                , instanceExtensionName       = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME@@ -335,9 +335,9 @@                              }     ]   "SPV_EXT_descriptor_indexing" ->-    (,) [RequireInstanceVersion $ MAKE_VERSION 1 2 0] [RequireDeviceVersion $ MAKE_VERSION 1 2 0]+    (,) [RequireInstanceVersion $ MAKE_API_VERSION 1 2 0] [RequireDeviceVersion $ MAKE_API_VERSION 1 2 0]   "SPV_KHR_vulkan_memory_model" ->-    (,) [RequireInstanceVersion $ MAKE_VERSION 1 2 0] [RequireDeviceVersion $ MAKE_VERSION 1 2 0]+    (,) [RequireInstanceVersion $ MAKE_API_VERSION 1 2 0] [RequireDeviceVersion $ MAKE_API_VERSION 1 2 0]   "SPV_NV_compute_shader_derivatives" -> (,)     [ RequireInstanceExtension { instanceExtensionLayerName  = Nothing                                , instanceExtensionName       = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME@@ -508,7 +508,7 @@                              }     ]   "SPV_KHR_physical_storage_buffer" ->-    (,) [RequireInstanceVersion $ MAKE_VERSION 1 2 0] [RequireDeviceVersion $ MAKE_VERSION 1 2 0]+    (,) [RequireInstanceVersion $ MAKE_API_VERSION 1 2 0] [RequireDeviceVersion $ MAKE_API_VERSION 1 2 0]   "SPV_EXT_physical_storage_buffer" -> (,)     [ RequireInstanceExtension { instanceExtensionLayerName  = Nothing                                , instanceExtensionName       = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME@@ -612,7 +612,8 @@                              , deviceExtensionMinVersion = 0                              }     ]-  "SPV_KHR_multiview" -> (,) [RequireInstanceVersion $ MAKE_VERSION 1 1 0] [RequireDeviceVersion $ MAKE_VERSION 1 1 0]+  "SPV_KHR_multiview" ->+    (,) [RequireInstanceVersion $ MAKE_API_VERSION 1 1 0] [RequireDeviceVersion $ MAKE_API_VERSION 1 1 0]   "SPV_KHR_workgroup_memory_explicit_layout" -> (,)     [ RequireInstanceExtension { instanceExtensionLayerName  = Nothing                                , instanceExtensionName       = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME@@ -639,16 +640,20 @@  spirvCapabilityRequirements :: ByteString -> ([InstanceRequirement], [DeviceRequirement]) spirvCapabilityRequirements = \case-  "Matrix"            -> (,) [RequireInstanceVersion $ MAKE_VERSION 1 0 0] [RequireDeviceVersion $ MAKE_VERSION 1 0 0]-  "Shader"            -> (,) [RequireInstanceVersion $ MAKE_VERSION 1 0 0] [RequireDeviceVersion $ MAKE_VERSION 1 0 0]-  "InputAttachment"   -> (,) [RequireInstanceVersion $ MAKE_VERSION 1 0 0] [RequireDeviceVersion $ MAKE_VERSION 1 0 0]-  "Sampled1D"         -> (,) [RequireInstanceVersion $ MAKE_VERSION 1 0 0] [RequireDeviceVersion $ MAKE_VERSION 1 0 0]-  "Image1D"           -> (,) [RequireInstanceVersion $ MAKE_VERSION 1 0 0] [RequireDeviceVersion $ MAKE_VERSION 1 0 0]-  "SampledBuffer"     -> (,) [RequireInstanceVersion $ MAKE_VERSION 1 0 0] [RequireDeviceVersion $ MAKE_VERSION 1 0 0]-  "ImageBuffer"       -> (,) [RequireInstanceVersion $ MAKE_VERSION 1 0 0] [RequireDeviceVersion $ MAKE_VERSION 1 0 0]-  "ImageQuery"        -> (,) [RequireInstanceVersion $ MAKE_VERSION 1 0 0] [RequireDeviceVersion $ MAKE_VERSION 1 0 0]-  "DerivativeControl" -> (,) [RequireInstanceVersion $ MAKE_VERSION 1 0 0] [RequireDeviceVersion $ MAKE_VERSION 1 0 0]-  "Geometry"          -> (,)+  "Matrix" -> (,) [RequireInstanceVersion $ MAKE_API_VERSION 1 0 0] [RequireDeviceVersion $ MAKE_API_VERSION 1 0 0]+  "Shader" -> (,) [RequireInstanceVersion $ MAKE_API_VERSION 1 0 0] [RequireDeviceVersion $ MAKE_API_VERSION 1 0 0]+  "InputAttachment" ->+    (,) [RequireInstanceVersion $ MAKE_API_VERSION 1 0 0] [RequireDeviceVersion $ MAKE_API_VERSION 1 0 0]+  "Sampled1D" -> (,) [RequireInstanceVersion $ MAKE_API_VERSION 1 0 0] [RequireDeviceVersion $ MAKE_API_VERSION 1 0 0]+  "Image1D"   -> (,) [RequireInstanceVersion $ MAKE_API_VERSION 1 0 0] [RequireDeviceVersion $ MAKE_API_VERSION 1 0 0]+  "SampledBuffer" ->+    (,) [RequireInstanceVersion $ MAKE_API_VERSION 1 0 0] [RequireDeviceVersion $ MAKE_API_VERSION 1 0 0]+  "ImageBuffer" ->+    (,) [RequireInstanceVersion $ MAKE_API_VERSION 1 0 0] [RequireDeviceVersion $ MAKE_API_VERSION 1 0 0]+  "ImageQuery" -> (,) [RequireInstanceVersion $ MAKE_API_VERSION 1 0 0] [RequireDeviceVersion $ MAKE_API_VERSION 1 0 0]+  "DerivativeControl" ->+    (,) [RequireInstanceVersion $ MAKE_API_VERSION 1 0 0] [RequireDeviceVersion $ MAKE_API_VERSION 1 0 0]+  "Geometry" -> (,)     []     [ RequireDeviceFeature { featureName   = "geometryShader"                            , checkFeature  = geometryShader :: PhysicalDeviceFeatures -> Bool@@ -677,7 +682,7 @@                            }     ]   "Int64Atomics" -> (,)-    [ RequireInstanceVersion $ MAKE_VERSION 1 2 0+    [ RequireInstanceVersion $ MAKE_API_VERSION 1 2 0     , RequireInstanceExtension { instanceExtensionLayerName  = Nothing                                , instanceExtensionName       = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME                                , instanceExtensionMinVersion = 0@@ -688,7 +693,7 @@       , checkFeature  = shaderBufferInt64Atomics :: PhysicalDeviceVulkan12Features -> Bool       , enableFeature = \f -> f { shaderBufferInt64Atomics = True } :: PhysicalDeviceVulkan12Features       }-    , RequireDeviceVersion $ MAKE_VERSION 1 2 0+    , RequireDeviceVersion $ MAKE_API_VERSION 1 2 0     , RequireDeviceExtension { deviceExtensionLayerName  = Nothing                              , deviceExtensionName       = KHR_SHADER_ATOMIC_INT64_EXTENSION_NAME                              , deviceExtensionMinVersion = 0@@ -868,7 +873,7 @@                            }     ]   "StorageImageExtendedFormats" ->-    (,) [RequireInstanceVersion $ MAKE_VERSION 1 0 0] [RequireDeviceVersion $ MAKE_VERSION 1 0 0]+    (,) [RequireInstanceVersion $ MAKE_API_VERSION 1 0 0] [RequireDeviceVersion $ MAKE_API_VERSION 1 0 0]   "InterpolationFunction" -> (,)     []     [ RequireDeviceFeature { featureName   = "sampleRateShading"@@ -900,38 +905,39 @@                            }     ]   "DrawParameters" -> (,)-    [RequireInstanceVersion $ MAKE_VERSION 1 2 0]+    [RequireInstanceVersion $ MAKE_API_VERSION 1 2 0]     [ RequireDeviceFeature { featureName   = "shaderDrawParameters"                            , checkFeature  = shaderDrawParameters :: PhysicalDeviceVulkan11Features -> Bool                            , enableFeature = \f -> f { shaderDrawParameters = True } :: PhysicalDeviceVulkan11Features                            }-    , RequireDeviceVersion $ MAKE_VERSION 1 2 0+    , RequireDeviceVersion $ MAKE_API_VERSION 1 2 0     ]   "MultiView" -> (,)-    [RequireInstanceVersion $ MAKE_VERSION 1 2 0]+    [RequireInstanceVersion $ MAKE_API_VERSION 1 2 0]     [ RequireDeviceFeature { featureName   = "multiview"                            , checkFeature  = multiview :: PhysicalDeviceVulkan11Features -> Bool                            , enableFeature = \f -> f { multiview = True } :: PhysicalDeviceVulkan11Features                            }-    , RequireDeviceVersion $ MAKE_VERSION 1 2 0+    , RequireDeviceVersion $ MAKE_API_VERSION 1 2 0     ]-  "DeviceGroup" -> (,) [RequireInstanceVersion $ MAKE_VERSION 1 1 0] [RequireDeviceVersion $ MAKE_VERSION 1 1 0]+  "DeviceGroup" ->+    (,) [RequireInstanceVersion $ MAKE_API_VERSION 1 1 0] [RequireDeviceVersion $ MAKE_API_VERSION 1 1 0]   "VariablePointersStorageBuffer" -> (,)-    [RequireInstanceVersion $ MAKE_VERSION 1 2 0]+    [RequireInstanceVersion $ MAKE_API_VERSION 1 2 0]     [ RequireDeviceFeature       { featureName   = "variablePointersStorageBuffer"       , checkFeature  = variablePointersStorageBuffer :: PhysicalDeviceVulkan11Features -> Bool       , enableFeature = \f -> f { variablePointersStorageBuffer = True } :: PhysicalDeviceVulkan11Features       }-    , RequireDeviceVersion $ MAKE_VERSION 1 2 0+    , RequireDeviceVersion $ MAKE_API_VERSION 1 2 0     ]   "VariablePointers" -> (,)-    [RequireInstanceVersion $ MAKE_VERSION 1 2 0]+    [RequireInstanceVersion $ MAKE_API_VERSION 1 2 0]     [ RequireDeviceFeature { featureName   = "variablePointers"                            , checkFeature  = variablePointers :: PhysicalDeviceVulkan11Features -> Bool                            , enableFeature = \f -> f { variablePointers = True } :: PhysicalDeviceVulkan11Features                            }-    , RequireDeviceVersion $ MAKE_VERSION 1 2 0+    , RequireDeviceVersion $ MAKE_API_VERSION 1 2 0     ]   "ShaderClockKHR" -> (,)     [ RequireInstanceExtension { instanceExtensionLayerName  = Nothing@@ -1005,21 +1011,21 @@                              }     ]   "ShaderViewportIndex" -> (,)-    [RequireInstanceVersion $ MAKE_VERSION 1 2 0]+    [RequireInstanceVersion $ MAKE_API_VERSION 1 2 0]     [ RequireDeviceFeature       { featureName   = "shaderOutputViewportIndex"       , checkFeature  = shaderOutputViewportIndex :: PhysicalDeviceVulkan12Features -> Bool       , enableFeature = \f -> f { shaderOutputViewportIndex = True } :: PhysicalDeviceVulkan12Features       }-    , RequireDeviceVersion $ MAKE_VERSION 1 2 0+    , RequireDeviceVersion $ MAKE_API_VERSION 1 2 0     ]   "ShaderLayer" -> (,)-    [RequireInstanceVersion $ MAKE_VERSION 1 2 0]+    [RequireInstanceVersion $ MAKE_API_VERSION 1 2 0]     [ RequireDeviceFeature { featureName   = "shaderOutputLayer"                            , checkFeature  = shaderOutputLayer :: PhysicalDeviceVulkan12Features -> Bool                            , enableFeature = \f -> f { shaderOutputLayer = True } :: PhysicalDeviceVulkan12Features                            }-    , RequireDeviceVersion $ MAKE_VERSION 1 2 0+    , RequireDeviceVersion $ MAKE_API_VERSION 1 2 0     ]   "ShaderViewportIndexLayerEXT" -> (,)     []@@ -1058,110 +1064,110 @@                              }     ]   "StorageBuffer16BitAccess" -> (,)-    [RequireInstanceVersion $ MAKE_VERSION 1 2 0]+    [RequireInstanceVersion $ MAKE_API_VERSION 1 2 0]     [ RequireDeviceFeature       { featureName   = "storageBuffer16BitAccess"       , checkFeature  = storageBuffer16BitAccess :: PhysicalDeviceVulkan11Features -> Bool       , enableFeature = \f -> f { storageBuffer16BitAccess = True } :: PhysicalDeviceVulkan11Features       }-    , RequireDeviceVersion $ MAKE_VERSION 1 2 0+    , RequireDeviceVersion $ MAKE_API_VERSION 1 2 0     ]   "UniformAndStorageBuffer16BitAccess" -> (,)-    [RequireInstanceVersion $ MAKE_VERSION 1 2 0]+    [RequireInstanceVersion $ MAKE_API_VERSION 1 2 0]     [ RequireDeviceFeature       { featureName   = "uniformAndStorageBuffer16BitAccess"       , checkFeature  = uniformAndStorageBuffer16BitAccess :: PhysicalDeviceVulkan11Features -> Bool       , enableFeature = \f -> f { uniformAndStorageBuffer16BitAccess = True } :: PhysicalDeviceVulkan11Features       }-    , RequireDeviceVersion $ MAKE_VERSION 1 2 0+    , RequireDeviceVersion $ MAKE_API_VERSION 1 2 0     ]   "StoragePushConstant16" -> (,)-    [RequireInstanceVersion $ MAKE_VERSION 1 2 0]+    [RequireInstanceVersion $ MAKE_API_VERSION 1 2 0]     [ RequireDeviceFeature { featureName   = "storagePushConstant16"                            , checkFeature  = storagePushConstant16 :: PhysicalDeviceVulkan11Features -> Bool                            , enableFeature = \f -> f { storagePushConstant16 = True } :: PhysicalDeviceVulkan11Features                            }-    , RequireDeviceVersion $ MAKE_VERSION 1 2 0+    , RequireDeviceVersion $ MAKE_API_VERSION 1 2 0     ]   "StorageInputOutput16" -> (,)-    [RequireInstanceVersion $ MAKE_VERSION 1 2 0]+    [RequireInstanceVersion $ MAKE_API_VERSION 1 2 0]     [ RequireDeviceFeature { featureName   = "storageInputOutput16"                            , checkFeature  = storageInputOutput16 :: PhysicalDeviceVulkan11Features -> Bool                            , enableFeature = \f -> f { storageInputOutput16 = True } :: PhysicalDeviceVulkan11Features                            }-    , RequireDeviceVersion $ MAKE_VERSION 1 2 0+    , RequireDeviceVersion $ MAKE_API_VERSION 1 2 0     ]   "GroupNonUniform" -> (,)-    [RequireInstanceVersion $ MAKE_VERSION 1 1 0]+    [RequireInstanceVersion $ MAKE_API_VERSION 1 1 0]     [ RequireDeviceProperty       { propertyName  = "VkPhysicalDeviceVulkan11Properties"       , checkProperty = \p ->         SUBGROUP_FEATURE_BASIC_BIT .&&. subgroupSupportedOperations (p :: PhysicalDeviceVulkan11Properties)       }-    , RequireDeviceVersion $ MAKE_VERSION 1 1 0+    , RequireDeviceVersion $ MAKE_API_VERSION 1 1 0     ]   "GroupNonUniformVote" -> (,)-    [RequireInstanceVersion $ MAKE_VERSION 1 1 0]+    [RequireInstanceVersion $ MAKE_API_VERSION 1 1 0]     [ RequireDeviceProperty       { propertyName  = "VkPhysicalDeviceVulkan11Properties"       , checkProperty = \p ->         SUBGROUP_FEATURE_VOTE_BIT .&&. subgroupSupportedOperations (p :: PhysicalDeviceVulkan11Properties)       }-    , RequireDeviceVersion $ MAKE_VERSION 1 1 0+    , RequireDeviceVersion $ MAKE_API_VERSION 1 1 0     ]   "GroupNonUniformArithmetic" -> (,)-    [RequireInstanceVersion $ MAKE_VERSION 1 1 0]+    [RequireInstanceVersion $ MAKE_API_VERSION 1 1 0]     [ RequireDeviceProperty       { propertyName  = "VkPhysicalDeviceVulkan11Properties"       , checkProperty = \p ->         SUBGROUP_FEATURE_ARITHMETIC_BIT .&&. subgroupSupportedOperations (p :: PhysicalDeviceVulkan11Properties)       }-    , RequireDeviceVersion $ MAKE_VERSION 1 1 0+    , RequireDeviceVersion $ MAKE_API_VERSION 1 1 0     ]   "GroupNonUniformBallot" -> (,)-    [RequireInstanceVersion $ MAKE_VERSION 1 1 0]+    [RequireInstanceVersion $ MAKE_API_VERSION 1 1 0]     [ RequireDeviceProperty       { propertyName  = "VkPhysicalDeviceVulkan11Properties"       , checkProperty = \p ->         SUBGROUP_FEATURE_BALLOT_BIT .&&. subgroupSupportedOperations (p :: PhysicalDeviceVulkan11Properties)       }-    , RequireDeviceVersion $ MAKE_VERSION 1 1 0+    , RequireDeviceVersion $ MAKE_API_VERSION 1 1 0     ]   "GroupNonUniformShuffle" -> (,)-    [RequireInstanceVersion $ MAKE_VERSION 1 1 0]+    [RequireInstanceVersion $ MAKE_API_VERSION 1 1 0]     [ RequireDeviceProperty       { propertyName  = "VkPhysicalDeviceVulkan11Properties"       , checkProperty = \p ->         SUBGROUP_FEATURE_SHUFFLE_BIT .&&. subgroupSupportedOperations (p :: PhysicalDeviceVulkan11Properties)       }-    , RequireDeviceVersion $ MAKE_VERSION 1 1 0+    , RequireDeviceVersion $ MAKE_API_VERSION 1 1 0     ]   "GroupNonUniformShuffleRelative" -> (,)-    [RequireInstanceVersion $ MAKE_VERSION 1 1 0]+    [RequireInstanceVersion $ MAKE_API_VERSION 1 1 0]     [ RequireDeviceProperty       { propertyName  = "VkPhysicalDeviceVulkan11Properties"       , checkProperty = \p ->         SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT .&&. subgroupSupportedOperations (p :: PhysicalDeviceVulkan11Properties)       }-    , RequireDeviceVersion $ MAKE_VERSION 1 1 0+    , RequireDeviceVersion $ MAKE_API_VERSION 1 1 0     ]   "GroupNonUniformClustered" -> (,)-    [RequireInstanceVersion $ MAKE_VERSION 1 1 0]+    [RequireInstanceVersion $ MAKE_API_VERSION 1 1 0]     [ RequireDeviceProperty       { propertyName  = "VkPhysicalDeviceVulkan11Properties"       , checkProperty = \p ->         SUBGROUP_FEATURE_CLUSTERED_BIT .&&. subgroupSupportedOperations (p :: PhysicalDeviceVulkan11Properties)       }-    , RequireDeviceVersion $ MAKE_VERSION 1 1 0+    , RequireDeviceVersion $ MAKE_API_VERSION 1 1 0     ]   "GroupNonUniformQuad" -> (,)-    [RequireInstanceVersion $ MAKE_VERSION 1 1 0]+    [RequireInstanceVersion $ MAKE_API_VERSION 1 1 0]     [ RequireDeviceProperty       { propertyName  = "VkPhysicalDeviceVulkan11Properties"       , checkProperty = \p ->         SUBGROUP_FEATURE_QUAD_BIT .&&. subgroupSupportedOperations (p :: PhysicalDeviceVulkan11Properties)       }-    , RequireDeviceVersion $ MAKE_VERSION 1 1 0+    , RequireDeviceVersion $ MAKE_API_VERSION 1 1 0     ]   "GroupNonUniformPartitionedNV" -> (,)     []@@ -1182,9 +1188,10 @@                              , deviceExtensionMinVersion = 0                              }     ]-  "ShaderNonUniform" -> (,) [RequireInstanceVersion $ MAKE_VERSION 1 2 0] [RequireDeviceVersion $ MAKE_VERSION 1 2 0]+  "ShaderNonUniform" ->+    (,) [RequireInstanceVersion $ MAKE_API_VERSION 1 2 0] [RequireDeviceVersion $ MAKE_API_VERSION 1 2 0]   "RuntimeDescriptorArray" -> (,)-    [ RequireInstanceVersion $ MAKE_VERSION 1 2 0+    [ RequireInstanceVersion $ MAKE_API_VERSION 1 2 0     , RequireInstanceExtension { instanceExtensionLayerName  = Nothing                                , instanceExtensionName       = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME                                , instanceExtensionMinVersion = 0@@ -1194,7 +1201,7 @@                            , checkFeature  = runtimeDescriptorArray :: PhysicalDeviceVulkan12Features -> Bool                            , enableFeature = \f -> f { runtimeDescriptorArray = True } :: PhysicalDeviceVulkan12Features                            }-    , RequireDeviceVersion $ MAKE_VERSION 1 2 0+    , RequireDeviceVersion $ MAKE_API_VERSION 1 2 0     , RequireDeviceExtension { deviceExtensionLayerName  = Nothing                              , deviceExtensionName       = EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME                              , deviceExtensionMinVersion = 0@@ -1205,7 +1212,7 @@                              }     ]   "InputAttachmentArrayDynamicIndexing" -> (,)-    [ RequireInstanceVersion $ MAKE_VERSION 1 2 0+    [ RequireInstanceVersion $ MAKE_API_VERSION 1 2 0     , RequireInstanceExtension { instanceExtensionLayerName  = Nothing                                , instanceExtensionName       = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME                                , instanceExtensionMinVersion = 0@@ -1216,7 +1223,7 @@       , checkFeature  = shaderInputAttachmentArrayDynamicIndexing :: PhysicalDeviceVulkan12Features -> Bool       , enableFeature = \f -> f { shaderInputAttachmentArrayDynamicIndexing = True } :: PhysicalDeviceVulkan12Features       }-    , RequireDeviceVersion $ MAKE_VERSION 1 2 0+    , RequireDeviceVersion $ MAKE_API_VERSION 1 2 0     , RequireDeviceExtension { deviceExtensionLayerName  = Nothing                              , deviceExtensionName       = EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME                              , deviceExtensionMinVersion = 0@@ -1227,7 +1234,7 @@                              }     ]   "UniformTexelBufferArrayDynamicIndexing" -> (,)-    [ RequireInstanceVersion $ MAKE_VERSION 1 2 0+    [ RequireInstanceVersion $ MAKE_API_VERSION 1 2 0     , RequireInstanceExtension { instanceExtensionLayerName  = Nothing                                , instanceExtensionName       = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME                                , instanceExtensionMinVersion = 0@@ -1239,7 +1246,7 @@       , enableFeature = \f ->                           f { shaderUniformTexelBufferArrayDynamicIndexing = True } :: PhysicalDeviceVulkan12Features       }-    , RequireDeviceVersion $ MAKE_VERSION 1 2 0+    , RequireDeviceVersion $ MAKE_API_VERSION 1 2 0     , RequireDeviceExtension { deviceExtensionLayerName  = Nothing                              , deviceExtensionName       = EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME                              , deviceExtensionMinVersion = 0@@ -1250,7 +1257,7 @@                              }     ]   "StorageTexelBufferArrayDynamicIndexing" -> (,)-    [ RequireInstanceVersion $ MAKE_VERSION 1 2 0+    [ RequireInstanceVersion $ MAKE_API_VERSION 1 2 0     , RequireInstanceExtension { instanceExtensionLayerName  = Nothing                                , instanceExtensionName       = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME                                , instanceExtensionMinVersion = 0@@ -1262,7 +1269,7 @@       , enableFeature = \f ->                           f { shaderStorageTexelBufferArrayDynamicIndexing = True } :: PhysicalDeviceVulkan12Features       }-    , RequireDeviceVersion $ MAKE_VERSION 1 2 0+    , RequireDeviceVersion $ MAKE_API_VERSION 1 2 0     , RequireDeviceExtension { deviceExtensionLayerName  = Nothing                              , deviceExtensionName       = EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME                              , deviceExtensionMinVersion = 0@@ -1273,7 +1280,7 @@                              }     ]   "UniformBufferArrayNonUniformIndexing" -> (,)-    [ RequireInstanceVersion $ MAKE_VERSION 1 2 0+    [ RequireInstanceVersion $ MAKE_API_VERSION 1 2 0     , RequireInstanceExtension { instanceExtensionLayerName  = Nothing                                , instanceExtensionName       = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME                                , instanceExtensionMinVersion = 0@@ -1284,7 +1291,7 @@       , checkFeature  = shaderUniformBufferArrayNonUniformIndexing :: PhysicalDeviceVulkan12Features -> Bool       , enableFeature = \f -> f { shaderUniformBufferArrayNonUniformIndexing = True } :: PhysicalDeviceVulkan12Features       }-    , RequireDeviceVersion $ MAKE_VERSION 1 2 0+    , RequireDeviceVersion $ MAKE_API_VERSION 1 2 0     , RequireDeviceExtension { deviceExtensionLayerName  = Nothing                              , deviceExtensionName       = EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME                              , deviceExtensionMinVersion = 0@@ -1295,7 +1302,7 @@                              }     ]   "SampledImageArrayNonUniformIndexing" -> (,)-    [ RequireInstanceVersion $ MAKE_VERSION 1 2 0+    [ RequireInstanceVersion $ MAKE_API_VERSION 1 2 0     , RequireInstanceExtension { instanceExtensionLayerName  = Nothing                                , instanceExtensionName       = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME                                , instanceExtensionMinVersion = 0@@ -1306,7 +1313,7 @@       , checkFeature  = shaderSampledImageArrayNonUniformIndexing :: PhysicalDeviceVulkan12Features -> Bool       , enableFeature = \f -> f { shaderSampledImageArrayNonUniformIndexing = True } :: PhysicalDeviceVulkan12Features       }-    , RequireDeviceVersion $ MAKE_VERSION 1 2 0+    , RequireDeviceVersion $ MAKE_API_VERSION 1 2 0     , RequireDeviceExtension { deviceExtensionLayerName  = Nothing                              , deviceExtensionName       = EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME                              , deviceExtensionMinVersion = 0@@ -1317,7 +1324,7 @@                              }     ]   "StorageBufferArrayNonUniformIndexing" -> (,)-    [ RequireInstanceVersion $ MAKE_VERSION 1 2 0+    [ RequireInstanceVersion $ MAKE_API_VERSION 1 2 0     , RequireInstanceExtension { instanceExtensionLayerName  = Nothing                                , instanceExtensionName       = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME                                , instanceExtensionMinVersion = 0@@ -1328,7 +1335,7 @@       , checkFeature  = shaderStorageBufferArrayNonUniformIndexing :: PhysicalDeviceVulkan12Features -> Bool       , enableFeature = \f -> f { shaderStorageBufferArrayNonUniformIndexing = True } :: PhysicalDeviceVulkan12Features       }-    , RequireDeviceVersion $ MAKE_VERSION 1 2 0+    , RequireDeviceVersion $ MAKE_API_VERSION 1 2 0     , RequireDeviceExtension { deviceExtensionLayerName  = Nothing                              , deviceExtensionName       = EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME                              , deviceExtensionMinVersion = 0@@ -1339,7 +1346,7 @@                              }     ]   "StorageImageArrayNonUniformIndexing" -> (,)-    [ RequireInstanceVersion $ MAKE_VERSION 1 2 0+    [ RequireInstanceVersion $ MAKE_API_VERSION 1 2 0     , RequireInstanceExtension { instanceExtensionLayerName  = Nothing                                , instanceExtensionName       = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME                                , instanceExtensionMinVersion = 0@@ -1350,7 +1357,7 @@       , checkFeature  = shaderStorageImageArrayNonUniformIndexing :: PhysicalDeviceVulkan12Features -> Bool       , enableFeature = \f -> f { shaderStorageImageArrayNonUniformIndexing = True } :: PhysicalDeviceVulkan12Features       }-    , RequireDeviceVersion $ MAKE_VERSION 1 2 0+    , RequireDeviceVersion $ MAKE_API_VERSION 1 2 0     , RequireDeviceExtension { deviceExtensionLayerName  = Nothing                              , deviceExtensionName       = EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME                              , deviceExtensionMinVersion = 0@@ -1361,7 +1368,7 @@                              }     ]   "InputAttachmentArrayNonUniformIndexing" -> (,)-    [ RequireInstanceVersion $ MAKE_VERSION 1 2 0+    [ RequireInstanceVersion $ MAKE_API_VERSION 1 2 0     , RequireInstanceExtension { instanceExtensionLayerName  = Nothing                                , instanceExtensionName       = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME                                , instanceExtensionMinVersion = 0@@ -1373,7 +1380,7 @@       , enableFeature = \f ->                           f { shaderInputAttachmentArrayNonUniformIndexing = True } :: PhysicalDeviceVulkan12Features       }-    , RequireDeviceVersion $ MAKE_VERSION 1 2 0+    , RequireDeviceVersion $ MAKE_API_VERSION 1 2 0     , RequireDeviceExtension { deviceExtensionLayerName  = Nothing                              , deviceExtensionName       = EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME                              , deviceExtensionMinVersion = 0@@ -1384,7 +1391,7 @@                              }     ]   "UniformTexelBufferArrayNonUniformIndexing" -> (,)-    [ RequireInstanceVersion $ MAKE_VERSION 1 2 0+    [ RequireInstanceVersion $ MAKE_API_VERSION 1 2 0     , RequireInstanceExtension { instanceExtensionLayerName  = Nothing                                , instanceExtensionName       = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME                                , instanceExtensionMinVersion = 0@@ -1396,7 +1403,7 @@       , enableFeature = \f ->                           f { shaderUniformTexelBufferArrayNonUniformIndexing = True } :: PhysicalDeviceVulkan12Features       }-    , RequireDeviceVersion $ MAKE_VERSION 1 2 0+    , RequireDeviceVersion $ MAKE_API_VERSION 1 2 0     , RequireDeviceExtension { deviceExtensionLayerName  = Nothing                              , deviceExtensionName       = EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME                              , deviceExtensionMinVersion = 0@@ -1407,7 +1414,7 @@                              }     ]   "StorageTexelBufferArrayNonUniformIndexing" -> (,)-    [ RequireInstanceVersion $ MAKE_VERSION 1 2 0+    [ RequireInstanceVersion $ MAKE_API_VERSION 1 2 0     , RequireInstanceExtension { instanceExtensionLayerName  = Nothing                                , instanceExtensionName       = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME                                , instanceExtensionMinVersion = 0@@ -1419,7 +1426,7 @@       , enableFeature = \f ->                           f { shaderStorageTexelBufferArrayNonUniformIndexing = True } :: PhysicalDeviceVulkan12Features       }-    , RequireDeviceVersion $ MAKE_VERSION 1 2 0+    , RequireDeviceVersion $ MAKE_API_VERSION 1 2 0     , RequireDeviceExtension { deviceExtensionLayerName  = Nothing                              , deviceExtensionName       = EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME                              , deviceExtensionMinVersion = 0@@ -1430,7 +1437,7 @@                              }     ]   "Float16" -> (,)-    [ RequireInstanceVersion $ MAKE_VERSION 1 2 0+    [ RequireInstanceVersion $ MAKE_API_VERSION 1 2 0     , RequireInstanceExtension { instanceExtensionLayerName  = Nothing                                , instanceExtensionName       = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME                                , instanceExtensionMinVersion = 0@@ -1440,14 +1447,14 @@                            , checkFeature  = shaderFloat16 :: PhysicalDeviceVulkan12Features -> Bool                            , enableFeature = \f -> f { shaderFloat16 = True } :: PhysicalDeviceVulkan12Features                            }-    , RequireDeviceVersion $ MAKE_VERSION 1 2 0+    , RequireDeviceVersion $ MAKE_API_VERSION 1 2 0     , RequireDeviceExtension { deviceExtensionLayerName  = Nothing                              , deviceExtensionName       = KHR_SHADER_FLOAT16_INT8_EXTENSION_NAME                              , deviceExtensionMinVersion = 0                              }     ]   "Int8" -> (,)-    [ RequireInstanceVersion $ MAKE_VERSION 1 2 0+    [ RequireInstanceVersion $ MAKE_API_VERSION 1 2 0     , RequireInstanceExtension { instanceExtensionLayerName  = Nothing                                , instanceExtensionName       = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME                                , instanceExtensionMinVersion = 0@@ -1457,14 +1464,14 @@                            , checkFeature  = shaderInt8 :: PhysicalDeviceVulkan12Features -> Bool                            , enableFeature = \f -> f { shaderInt8 = True } :: PhysicalDeviceVulkan12Features                            }-    , RequireDeviceVersion $ MAKE_VERSION 1 2 0+    , RequireDeviceVersion $ MAKE_API_VERSION 1 2 0     , RequireDeviceExtension { deviceExtensionLayerName  = Nothing                              , deviceExtensionName       = KHR_SHADER_FLOAT16_INT8_EXTENSION_NAME                              , deviceExtensionMinVersion = 0                              }     ]   "StorageBuffer8BitAccess" -> (,)-    [ RequireInstanceVersion $ MAKE_VERSION 1 2 0+    [ RequireInstanceVersion $ MAKE_API_VERSION 1 2 0     , RequireInstanceExtension { instanceExtensionLayerName  = Nothing                                , instanceExtensionName       = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME                                , instanceExtensionMinVersion = 0@@ -1475,7 +1482,7 @@       , checkFeature  = storageBuffer8BitAccess :: PhysicalDeviceVulkan12Features -> Bool       , enableFeature = \f -> f { storageBuffer8BitAccess = True } :: PhysicalDeviceVulkan12Features       }-    , RequireDeviceVersion $ MAKE_VERSION 1 2 0+    , RequireDeviceVersion $ MAKE_API_VERSION 1 2 0     , RequireDeviceExtension { deviceExtensionLayerName  = Nothing                              , deviceExtensionName       = KHR_8BIT_STORAGE_EXTENSION_NAME                              , deviceExtensionMinVersion = 0@@ -1486,7 +1493,7 @@                              }     ]   "UniformAndStorageBuffer8BitAccess" -> (,)-    [ RequireInstanceVersion $ MAKE_VERSION 1 2 0+    [ RequireInstanceVersion $ MAKE_API_VERSION 1 2 0     , RequireInstanceExtension { instanceExtensionLayerName  = Nothing                                , instanceExtensionName       = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME                                , instanceExtensionMinVersion = 0@@ -1497,7 +1504,7 @@       , checkFeature  = uniformAndStorageBuffer8BitAccess :: PhysicalDeviceVulkan12Features -> Bool       , enableFeature = \f -> f { uniformAndStorageBuffer8BitAccess = True } :: PhysicalDeviceVulkan12Features       }-    , RequireDeviceVersion $ MAKE_VERSION 1 2 0+    , RequireDeviceVersion $ MAKE_API_VERSION 1 2 0     , RequireDeviceExtension { deviceExtensionLayerName  = Nothing                              , deviceExtensionName       = KHR_8BIT_STORAGE_EXTENSION_NAME                              , deviceExtensionMinVersion = 0@@ -1508,7 +1515,7 @@                              }     ]   "StoragePushConstant8" -> (,)-    [ RequireInstanceVersion $ MAKE_VERSION 1 2 0+    [ RequireInstanceVersion $ MAKE_API_VERSION 1 2 0     , RequireInstanceExtension { instanceExtensionLayerName  = Nothing                                , instanceExtensionName       = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME                                , instanceExtensionMinVersion = 0@@ -1518,7 +1525,7 @@                            , checkFeature  = storagePushConstant8 :: PhysicalDeviceVulkan12Features -> Bool                            , enableFeature = \f -> f { storagePushConstant8 = True } :: PhysicalDeviceVulkan12Features                            }-    , RequireDeviceVersion $ MAKE_VERSION 1 2 0+    , RequireDeviceVersion $ MAKE_API_VERSION 1 2 0     , RequireDeviceExtension { deviceExtensionLayerName  = Nothing                              , deviceExtensionName       = KHR_8BIT_STORAGE_EXTENSION_NAME                              , deviceExtensionMinVersion = 0@@ -1529,32 +1536,32 @@                              }     ]   "VulkanMemoryModel" -> (,)-    [RequireInstanceVersion $ MAKE_VERSION 1 2 0]+    [RequireInstanceVersion $ MAKE_API_VERSION 1 2 0]     [ RequireDeviceFeature { featureName   = "vulkanMemoryModel"                            , checkFeature  = vulkanMemoryModel :: PhysicalDeviceVulkan12Features -> Bool                            , enableFeature = \f -> f { vulkanMemoryModel = True } :: PhysicalDeviceVulkan12Features                            }-    , RequireDeviceVersion $ MAKE_VERSION 1 2 0+    , RequireDeviceVersion $ MAKE_API_VERSION 1 2 0     , RequireDeviceExtension { deviceExtensionLayerName  = Nothing                              , deviceExtensionName       = KHR_VULKAN_MEMORY_MODEL_EXTENSION_NAME                              , deviceExtensionMinVersion = 0                              }     ]   "VulkanMemoryModelDeviceScope" -> (,)-    [RequireInstanceVersion $ MAKE_VERSION 1 2 0]+    [RequireInstanceVersion $ MAKE_API_VERSION 1 2 0]     [ RequireDeviceFeature       { featureName   = "vulkanMemoryModelDeviceScope"       , checkFeature  = vulkanMemoryModelDeviceScope :: PhysicalDeviceVulkan12Features -> Bool       , enableFeature = \f -> f { vulkanMemoryModelDeviceScope = True } :: PhysicalDeviceVulkan12Features       }-    , RequireDeviceVersion $ MAKE_VERSION 1 2 0+    , RequireDeviceVersion $ MAKE_API_VERSION 1 2 0     , RequireDeviceExtension { deviceExtensionLayerName  = Nothing                              , deviceExtensionName       = KHR_VULKAN_MEMORY_MODEL_EXTENSION_NAME                              , deviceExtensionMinVersion = 0                              }     ]   "DenormPreserve" -> (,)-    [ RequireInstanceVersion $ MAKE_VERSION 1 2 0+    [ RequireInstanceVersion $ MAKE_API_VERSION 1 2 0     , RequireInstanceExtension { instanceExtensionLayerName  = Nothing                                , instanceExtensionName       = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME                                , instanceExtensionMinVersion = 0@@ -1563,14 +1570,14 @@     [ RequireDeviceProperty { propertyName  = "VkPhysicalDeviceVulkan12Properties"                             , checkProperty = \p -> shaderDenormPreserveFloat16 (p :: PhysicalDeviceVulkan12Properties)                             }-    , RequireDeviceVersion $ MAKE_VERSION 1 2 0+    , RequireDeviceVersion $ MAKE_API_VERSION 1 2 0     , RequireDeviceExtension { deviceExtensionLayerName  = Nothing                              , deviceExtensionName       = KHR_SHADER_FLOAT_CONTROLS_EXTENSION_NAME                              , deviceExtensionMinVersion = 0                              }     ]   "DenormFlushToZero" -> (,)-    [ RequireInstanceVersion $ MAKE_VERSION 1 2 0+    [ RequireInstanceVersion $ MAKE_API_VERSION 1 2 0     , RequireInstanceExtension { instanceExtensionLayerName  = Nothing                                , instanceExtensionName       = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME                                , instanceExtensionMinVersion = 0@@ -1580,14 +1587,14 @@       { propertyName  = "VkPhysicalDeviceVulkan12Properties"       , checkProperty = \p -> shaderDenormFlushToZeroFloat16 (p :: PhysicalDeviceVulkan12Properties)       }-    , RequireDeviceVersion $ MAKE_VERSION 1 2 0+    , RequireDeviceVersion $ MAKE_API_VERSION 1 2 0     , RequireDeviceExtension { deviceExtensionLayerName  = Nothing                              , deviceExtensionName       = KHR_SHADER_FLOAT_CONTROLS_EXTENSION_NAME                              , deviceExtensionMinVersion = 0                              }     ]   "SignedZeroInfNanPreserve" -> (,)-    [ RequireInstanceVersion $ MAKE_VERSION 1 2 0+    [ RequireInstanceVersion $ MAKE_API_VERSION 1 2 0     , RequireInstanceExtension { instanceExtensionLayerName  = Nothing                                , instanceExtensionName       = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME                                , instanceExtensionMinVersion = 0@@ -1597,14 +1604,14 @@       { propertyName  = "VkPhysicalDeviceVulkan12Properties"       , checkProperty = \p -> shaderSignedZeroInfNanPreserveFloat16 (p :: PhysicalDeviceVulkan12Properties)       }-    , RequireDeviceVersion $ MAKE_VERSION 1 2 0+    , RequireDeviceVersion $ MAKE_API_VERSION 1 2 0     , RequireDeviceExtension { deviceExtensionLayerName  = Nothing                              , deviceExtensionName       = KHR_SHADER_FLOAT_CONTROLS_EXTENSION_NAME                              , deviceExtensionMinVersion = 0                              }     ]   "RoundingModeRTE" -> (,)-    [ RequireInstanceVersion $ MAKE_VERSION 1 2 0+    [ RequireInstanceVersion $ MAKE_API_VERSION 1 2 0     , RequireInstanceExtension { instanceExtensionLayerName  = Nothing                                , instanceExtensionName       = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME                                , instanceExtensionMinVersion = 0@@ -1613,14 +1620,14 @@     [ RequireDeviceProperty { propertyName  = "VkPhysicalDeviceVulkan12Properties"                             , checkProperty = \p -> shaderRoundingModeRTEFloat16 (p :: PhysicalDeviceVulkan12Properties)                             }-    , RequireDeviceVersion $ MAKE_VERSION 1 2 0+    , RequireDeviceVersion $ MAKE_API_VERSION 1 2 0     , RequireDeviceExtension { deviceExtensionLayerName  = Nothing                              , deviceExtensionName       = KHR_SHADER_FLOAT_CONTROLS_EXTENSION_NAME                              , deviceExtensionMinVersion = 0                              }     ]   "RoundingModeRTZ" -> (,)-    [ RequireInstanceVersion $ MAKE_VERSION 1 2 0+    [ RequireInstanceVersion $ MAKE_API_VERSION 1 2 0     , RequireInstanceExtension { instanceExtensionLayerName  = Nothing                                , instanceExtensionName       = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME                                , instanceExtensionMinVersion = 0@@ -1629,7 +1636,7 @@     [ RequireDeviceProperty { propertyName  = "VkPhysicalDeviceVulkan12Properties"                             , checkProperty = \p -> shaderRoundingModeRTZFloat16 (p :: PhysicalDeviceVulkan12Properties)                             }-    , RequireDeviceVersion $ MAKE_VERSION 1 2 0+    , RequireDeviceVersion $ MAKE_API_VERSION 1 2 0     , RequireDeviceExtension { deviceExtensionLayerName  = Nothing                              , deviceExtensionName       = KHR_SHADER_FLOAT_CONTROLS_EXTENSION_NAME                              , deviceExtensionMinVersion = 0@@ -1924,7 +1931,7 @@                              }     ]   "PhysicalStorageBufferAddresses" -> (,)-    [ RequireInstanceVersion $ MAKE_VERSION 1 2 0+    [ RequireInstanceVersion $ MAKE_API_VERSION 1 2 0     , RequireInstanceExtension { instanceExtensionLayerName  = Nothing                                , instanceExtensionName       = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME                                , instanceExtensionMinVersion = 0@@ -1934,7 +1941,7 @@                            , checkFeature  = bufferDeviceAddress :: PhysicalDeviceVulkan12Features -> Bool                            , enableFeature = \f -> f { bufferDeviceAddress = True } :: PhysicalDeviceVulkan12Features                            }-    , RequireDeviceVersion $ MAKE_VERSION 1 2 0+    , RequireDeviceVersion $ MAKE_API_VERSION 1 2 0     , RequireDeviceExtension { deviceExtensionLayerName  = Nothing                              , deviceExtensionName       = KHR_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME                              , deviceExtensionMinVersion = 0
src/Vulkan/Version.hs view
@@ -2,10 +2,14 @@ -- No documentation found for Chapter "Version" module Vulkan.Version  ( pattern HEADER_VERSION                        , pattern HEADER_VERSION_COMPLETE+                       , pattern MAKE_API_VERSION                        , pattern MAKE_VERSION                        , _VERSION_MAJOR                        , _VERSION_MINOR                        , _VERSION_PATCH+                       , _API_VERSION_MAJOR+                       , _API_VERSION_MINOR+                       , _API_VERSION_PATCH                        ) where  import Data.Bits ((.&.))@@ -15,26 +19,44 @@ import Data.Word (Word32)  pattern HEADER_VERSION :: Word32-pattern HEADER_VERSION = 174+pattern HEADER_VERSION = 179   pattern HEADER_VERSION_COMPLETE :: Word32-pattern HEADER_VERSION_COMPLETE = MAKE_VERSION 1 2 174+pattern HEADER_VERSION_COMPLETE = MAKE_API_VERSION 1 2 179  -pattern MAKE_VERSION :: Word32 -> Word32 -> Word32 -> Word32-pattern MAKE_VERSION major minor patch <-+pattern MAKE_API_VERSION :: Word32 -> Word32 -> Word32 -> Word32+pattern MAKE_API_VERSION major minor patch <-   (\v -> (_VERSION_MAJOR v, _VERSION_MINOR v, _VERSION_PATCH v) -> (major, minor, patch))-  where MAKE_VERSION major minor patch = major `shiftL` 22 .|. minor `shiftL` 12 .|. patch+  where MAKE_API_VERSION major minor patch = major `shiftL` 22 .|. minor `shiftL` 12 .|. patch +{-# complete MAKE_API_VERSION #-}++{-# deprecated MAKE_VERSION "This pattern is deprecated. MAKE_API_VERSION should be used instead." #-}+pattern MAKE_VERSION :: Word32 -> Word32 -> Word32 -> Word32+pattern MAKE_VERSION major minor patch = MAKE_API_VERSION major minor patch+ {-# complete MAKE_VERSION #-} +{-# deprecated _VERSION_MAJOR "This function is deprecated. _API_VERSION_MAJOR should be used instead." #-} _VERSION_MAJOR :: Word32 -> Word32-_VERSION_MAJOR v = v `shiftR` 22+_VERSION_MAJOR = _API_VERSION_MAJOR +{-# deprecated _VERSION_MINOR "This function is deprecated. _API_VERSION_MINOR should be used instead." #-} _VERSION_MINOR :: Word32 -> Word32-_VERSION_MINOR v = v `shiftR` 12 .&. 0x3ff+_VERSION_MINOR = _API_VERSION_MINOR +{-# deprecated _VERSION_PATCH "This function is deprecated. _API_VERSION_PATCH should be used instead." #-} _VERSION_PATCH :: Word32 -> Word32-_VERSION_PATCH v = v .&. 0xfff+_VERSION_PATCH = _API_VERSION_PATCH++_API_VERSION_MAJOR :: Word32 -> Word32+_API_VERSION_MAJOR v = v `shiftR` 22++_API_VERSION_MINOR :: Word32 -> Word32+_API_VERSION_MINOR v = v `shiftR` 12 .&. 0x3ff++_API_VERSION_PATCH :: Word32 -> Word32+_API_VERSION_PATCH v = v .&. 0xfff 
vulkan.cabal view
@@ -5,7 +5,7 @@ -- see: https://github.com/sol/hpack  name:           vulkan-version:        3.10.1+version:        3.10.2 synopsis:       Bindings to the Vulkan graphics API. category:       Graphics homepage:       https://github.com/expipiplus1/vulkan#readme@@ -281,6 +281,7 @@       Vulkan.Extensions.VK_EXT_blend_operation_advanced       Vulkan.Extensions.VK_EXT_buffer_device_address       Vulkan.Extensions.VK_EXT_calibrated_timestamps+      Vulkan.Extensions.VK_EXT_color_write_enable       Vulkan.Extensions.VK_EXT_conditional_rendering       Vulkan.Extensions.VK_EXT_conservative_rasterization       Vulkan.Extensions.VK_EXT_custom_border_color@@ -297,6 +298,7 @@       Vulkan.Extensions.VK_EXT_display_control       Vulkan.Extensions.VK_EXT_display_surface_counter       Vulkan.Extensions.VK_EXT_extended_dynamic_state+      Vulkan.Extensions.VK_EXT_extended_dynamic_state2       Vulkan.Extensions.VK_EXT_external_memory_dma_buf       Vulkan.Extensions.VK_EXT_external_memory_host       Vulkan.Extensions.VK_EXT_filter_cubic@@ -321,6 +323,7 @@       Vulkan.Extensions.VK_EXT_pipeline_creation_feedback       Vulkan.Extensions.VK_EXT_post_depth_coverage       Vulkan.Extensions.VK_EXT_private_data+      Vulkan.Extensions.VK_EXT_provoking_vertex       Vulkan.Extensions.VK_EXT_queue_family_foreign       Vulkan.Extensions.VK_EXT_robustness2       Vulkan.Extensions.VK_EXT_sample_locations@@ -344,6 +347,8 @@       Vulkan.Extensions.VK_EXT_validation_features       Vulkan.Extensions.VK_EXT_validation_flags       Vulkan.Extensions.VK_EXT_vertex_attribute_divisor+      Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state+      Vulkan.Extensions.VK_EXT_ycbcr_2plane_444_formats       Vulkan.Extensions.VK_EXT_ycbcr_image_arrays       Vulkan.Extensions.VK_FUCHSIA_external_memory       Vulkan.Extensions.VK_FUCHSIA_external_semaphore@@ -462,6 +467,7 @@       Vulkan.Extensions.VK_NV_framebuffer_mixed_samples       Vulkan.Extensions.VK_NV_geometry_shader_passthrough       Vulkan.Extensions.VK_NV_glsl_shader+      Vulkan.Extensions.VK_NV_inherited_viewport_scissor       Vulkan.Extensions.VK_NV_mesh_shader       Vulkan.Extensions.VK_NV_ray_tracing       Vulkan.Extensions.VK_NV_representative_fragment_test@@ -474,6 +480,7 @@       Vulkan.Extensions.VK_NV_viewport_array2       Vulkan.Extensions.VK_NV_viewport_swizzle       Vulkan.Extensions.VK_NV_win32_keyed_mutex+      Vulkan.Extensions.VK_NVX_binary_import       Vulkan.Extensions.VK_NVX_image_view_handle       Vulkan.Extensions.VK_NVX_multiview_per_view_attributes       Vulkan.Extensions.VK_QCOM_render_pass_shader_resolve