From 4dac95be63c97caf881a7f88eca83c911e48fb26 Mon Sep 17 00:00:00 2001 From: Ellie Hermaszewska Date: Tue, 17 Oct 2023 17:31:33 +0800 Subject: [PATCH 01/12] Bump VMA --- VulkanMemoryAllocator/VulkanMemoryAllocator | 2 +- .../src/VulkanMemoryAllocator.hs | 35 ++++++++++++++++--- generate-new/readme.md | 2 ++ 3 files changed, 33 insertions(+), 6 deletions(-) diff --git a/VulkanMemoryAllocator/VulkanMemoryAllocator b/VulkanMemoryAllocator/VulkanMemoryAllocator index 413fc4f98..2f382df21 160000 --- a/VulkanMemoryAllocator/VulkanMemoryAllocator +++ b/VulkanMemoryAllocator/VulkanMemoryAllocator @@ -1 +1 @@ -Subproject commit 413fc4f98812994e295d05491254823a8ba89400 +Subproject commit 2f382df218d7e8516dee3b3caccb819a62b571a2 diff --git a/VulkanMemoryAllocator/src/VulkanMemoryAllocator.hs b/VulkanMemoryAllocator/src/VulkanMemoryAllocator.hs index a6e87489e..8d44e32d5 100644 --- a/VulkanMemoryAllocator/src/VulkanMemoryAllocator.hs +++ b/VulkanMemoryAllocator/src/VulkanMemoryAllocator.hs @@ -175,6 +175,8 @@ module VulkanMemoryAllocator ( createAllocator , AllocationCreateInfo(..) , PoolCreateInfo(..) , AllocationInfo(..) + , PFN_vmaCheckDefragmentationBreakFunction + , FN_vmaCheckDefragmentationBreakFunction , DefragmentationInfo(..) , DefragmentationMove(..) , DefragmentationPassMoveInfo(..) @@ -5545,6 +5547,11 @@ instance Zero AllocationInfo where Nothing +type FN_vmaCheckDefragmentationBreakFunction = ("pUserData" ::: Ptr ()) -> IO Bool32 +-- No documentation found for TopLevel "PFN_vmaCheckDefragmentationBreakFunction" +type PFN_vmaCheckDefragmentationBreakFunction = FunPtr FN_vmaCheckDefragmentationBreakFunction + + -- | VmaDefragmentationInfo -- -- Parameters for defragmentation. @@ -5567,22 +5574,31 @@ data DefragmentationInfo = DefragmentationInfo -- -- @0@ means no limit. maxAllocationsPerPass :: Word32 + , -- | Optional custom callback for stopping 'beginDefragmentation'. + -- + -- Have to return true for breaking current defragmentation pass. + pfnBreakCallback :: PFN_vmaCheckDefragmentationBreakFunction + , -- | Optional data to pass to custom callback for stopping pass of + -- defragmentation. + breakCallbackUserData :: Ptr () } - deriving (Typeable, Eq) + deriving (Typeable) #if defined(GENERIC_INSTANCES) deriving instance Generic (DefragmentationInfo) #endif deriving instance Show DefragmentationInfo instance ToCStruct DefragmentationInfo where - withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p) + withCStruct x f = allocaBytes 48 $ \p -> pokeCStruct p x (f p) pokeCStruct p DefragmentationInfo{..} f = do poke ((p `plusPtr` 0 :: Ptr DefragmentationFlags)) (flags) poke ((p `plusPtr` 8 :: Ptr Pool)) (pool) poke ((p `plusPtr` 16 :: Ptr DeviceSize)) (maxBytesPerPass) poke ((p `plusPtr` 24 :: Ptr Word32)) (maxAllocationsPerPass) + poke ((p `plusPtr` 32 :: Ptr PFN_vmaCheckDefragmentationBreakFunction)) (pfnBreakCallback) + poke ((p `plusPtr` 40 :: Ptr (Ptr ()))) (breakCallbackUserData) f - cStructSize = 32 + cStructSize = 48 cStructAlignment = 8 pokeZeroCStruct p f = do poke ((p `plusPtr` 0 :: Ptr DefragmentationFlags)) (zero) @@ -5596,11 +5612,18 @@ instance FromCStruct DefragmentationInfo where pool <- peek @Pool ((p `plusPtr` 8 :: Ptr Pool)) maxBytesPerPass <- peek @DeviceSize ((p `plusPtr` 16 :: Ptr DeviceSize)) maxAllocationsPerPass <- peek @Word32 ((p `plusPtr` 24 :: Ptr Word32)) + pfnBreakCallback <- peek @PFN_vmaCheckDefragmentationBreakFunction ((p `plusPtr` 32 :: Ptr PFN_vmaCheckDefragmentationBreakFunction)) + pBreakCallbackUserData <- peek @(Ptr ()) ((p `plusPtr` 40 :: Ptr (Ptr ()))) pure $ DefragmentationInfo - flags pool maxBytesPerPass maxAllocationsPerPass + flags + pool + maxBytesPerPass + maxAllocationsPerPass + pfnBreakCallback + pBreakCallbackUserData instance Storable DefragmentationInfo where - sizeOf ~_ = 32 + sizeOf ~_ = 48 alignment ~_ = 8 peek = peekCStruct poke ptr poked = pokeCStruct ptr poked (pure ()) @@ -5611,6 +5634,8 @@ instance Zero DefragmentationInfo where zero zero zero + zero + zero -- | VmaDefragmentationMove diff --git a/generate-new/readme.md b/generate-new/readme.md index 5a1cc72d4..2ffda9427 100644 --- a/generate-new/readme.md +++ b/generate-new/readme.md @@ -36,6 +36,8 @@ In an environment with `doxygen` (`nix-shell -p doxygen`), in the sed -i -e 's|^GENERATE_DOCBOOK.*|GENERATE_DOCBOOK=YES|' \ -e 's|^BRIEF_MEMBER_DESC.*|BRIEF_MEMBER_DESC=NO|' \ -e 's|^PREDEFINED *=|PREDEFINED = VMA_STATS_STRING_ENABLED=1 |' \ + -e 's|^PREDEFINED *=|PREDEFINED = VMA_EXTENDS_VK_STRUCT(s)=s |' \ + -e 's|@CMAKE_SOURCE_DIR@/||' \ Doxyfile && doxygen Doxyfile) ``` From c9aad508f37e38fc95279bf43e0ec2e9db9df982 Mon Sep 17 00:00:00 2001 From: Ellie Hermaszewska Date: Tue, 17 Oct 2023 17:32:32 +0800 Subject: [PATCH 02/12] bump vma changelog --- VulkanMemoryAllocator/changelog.md | 1 + 1 file changed, 1 insertion(+) diff --git a/VulkanMemoryAllocator/changelog.md b/VulkanMemoryAllocator/changelog.md index da5c2c7b5..eb3c24ae7 100644 --- a/VulkanMemoryAllocator/changelog.md +++ b/VulkanMemoryAllocator/changelog.md @@ -1,6 +1,7 @@ # Change Log ## WIP +- Bump VMA ## [0.10.5.1] - 2023-10-17 - Raise upper bound on `vulkan` From a9425a0a561a7c582fd238c758a32590b3b2e125 Mon Sep 17 00:00:00 2001 From: Ellie Hermaszewska Date: Tue, 17 Oct 2023 17:33:18 +0800 Subject: [PATCH 03/12] vma-v0.11 - Bump VMA --- VulkanMemoryAllocator/VulkanMemoryAllocator.cabal | 2 +- VulkanMemoryAllocator/changelog.md | 2 ++ VulkanMemoryAllocator/package.yaml | 2 +- 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/VulkanMemoryAllocator/VulkanMemoryAllocator.cabal b/VulkanMemoryAllocator/VulkanMemoryAllocator.cabal index e9f4a38da..d4f26a21e 100644 --- a/VulkanMemoryAllocator/VulkanMemoryAllocator.cabal +++ b/VulkanMemoryAllocator/VulkanMemoryAllocator.cabal @@ -5,7 +5,7 @@ cabal-version: 2.2 -- see: https://github.com/sol/hpack name: VulkanMemoryAllocator -version: 0.10.5.1 +version: 0.11 synopsis: Bindings to the VulkanMemoryAllocator library category: Graphics homepage: https://github.com/expipiplus1/vulkan#readme diff --git a/VulkanMemoryAllocator/changelog.md b/VulkanMemoryAllocator/changelog.md index eb3c24ae7..1ceb00c23 100644 --- a/VulkanMemoryAllocator/changelog.md +++ b/VulkanMemoryAllocator/changelog.md @@ -1,6 +1,8 @@ # Change Log ## WIP + +## [0.11] - 2023-10-17 - Bump VMA ## [0.10.5.1] - 2023-10-17 diff --git a/VulkanMemoryAllocator/package.yaml b/VulkanMemoryAllocator/package.yaml index c1f43482c..54b75d255 100644 --- a/VulkanMemoryAllocator/package.yaml +++ b/VulkanMemoryAllocator/package.yaml @@ -1,5 +1,5 @@ name: VulkanMemoryAllocator -version: "0.10.5.1" +version: "0.11" synopsis: Bindings to the VulkanMemoryAllocator library category: Graphics maintainer: Ellie Hermaszewska From ecec6aea03c136f63a244fac5896ae91f0b8564b Mon Sep 17 00:00:00 2001 From: Ellie Hermaszewska Date: Tue, 17 Oct 2023 18:21:57 +0800 Subject: [PATCH 04/12] generator changes for recent vulkan --- generate-new/src/Bespoke.hs | 2 +- generate-new/src/Bespoke/MarshalParams.hs | 2 ++ generate-new/src/Bespoke/RenderParams.hs | 1 + generate-new/src/Documentation/RunAsciiDoctor.hs | 2 -- 4 files changed, 4 insertions(+), 3 deletions(-) diff --git a/generate-new/src/Bespoke.hs b/generate-new/src/Bespoke.hs index 5dcabdebd..74d18f4ec 100644 --- a/generate-new/src/Bespoke.hs +++ b/generate-new/src/Bespoke.hs @@ -1160,7 +1160,7 @@ directfb :: HasRenderParams r => [Sem r RenderElement] directfb = [voidData "IDirectFB", voidData "IDirectFBSurface"] screen :: HasRenderParams r => [Sem r RenderElement] -screen = [voidData "_screen_window", voidData "screen_context"] +screen = [voidData "_screen_window", voidData "_screen_context", voidData "_screen_buffer"] nvscisyncUnsized :: HasRenderParams r => [Sem r RenderElement] nvscisyncUnsized = [voidData "NvSciSyncFence"] diff --git a/generate-new/src/Bespoke/MarshalParams.hs b/generate-new/src/Bespoke/MarshalParams.hs index 0b6ea7e2c..a80d9efcf 100644 --- a/generate-new/src/Bespoke/MarshalParams.hs +++ b/generate-new/src/Bespoke/MarshalParams.hs @@ -99,6 +99,7 @@ isIntegral = , TypeName "size_t" , TypeName "VkDeviceSize" , TypeName "VkDeviceAddress" + , TypeName "VkDeviceOrHostAddressConstAMDX" , TypeName "VkDeviceOrHostAddressConstKHR" , TypeName "VkDeviceOrHostAddressKHR" , TypeName "VkBool32" @@ -157,6 +158,7 @@ isPassAsPointerType' = \case , "IDirectFBSurface" , "IUnknown" , "jobject" + , "_screen_buffer" , "_screen_window" , "_screen_context" , "NvSciSyncFence" diff --git a/generate-new/src/Bespoke/RenderParams.hs b/generate-new/src/Bespoke/RenderParams.hs index d4e2b62e8..4bda24a94 100644 --- a/generate-new/src/Bespoke/RenderParams.hs +++ b/generate-new/src/Bespoke/RenderParams.hs @@ -48,6 +48,7 @@ renderParams handles = r . ( case parent of "VkPerformanceCounterResultKHR" -> (<> "Counter") "VkDeviceOrHostAddressConstKHR" -> (<> "Const") + "VkDeviceOrHostAddressConstAMDX" -> (<> "ConstAMDX") "VkDescriptorDataEXT" -> articalize _ -> id ) diff --git a/generate-new/src/Documentation/RunAsciiDoctor.hs b/generate-new/src/Documentation/RunAsciiDoctor.hs index 76587047e..8037924ad 100644 --- a/generate-new/src/Documentation/RunAsciiDoctor.hs +++ b/generate-new/src/Documentation/RunAsciiDoctor.hs @@ -82,8 +82,6 @@ asciidoctor specFlavor extensions vkPathRelative manTxt = do , vkPath "gen" , "-r" , vkPath "config/spec-macros.rb" - , "-r" - , vkPath "config/tilde_open_block.rb" ] SpecXr -> ["-r", vkPath "scripts/openxr-macros.rb"] adocOpts = attribOpts ++ noteOpts ++ adocExts From 7ef30041e51ef22b4e4ee2fc69ec8b34780947cf Mon Sep 17 00:00:00 2001 From: Ellie Hermaszewska Date: Tue, 17 Oct 2023 19:19:11 +0800 Subject: [PATCH 05/12] Bump vulkan to v1.3.268 --- generate-new/Vulkan-Docs | 2 +- src/Vulkan/CStruct/Extends.hs | 257 +- src/Vulkan/Core10/APIConstants.hs | 15 +- src/Vulkan/Core10/AllocationCallbacks.hs | 62 +- src/Vulkan/Core10/Buffer.hs | 70 +- src/Vulkan/Core10/BufferView.hs | 47 +- src/Vulkan/Core10/CommandBuffer.hs | 55 +- src/Vulkan/Core10/CommandBufferBuilding.hs | 5141 +++++++++++++---- src/Vulkan/Core10/DescriptorSet.hs | 81 +- src/Vulkan/Core10/Device.hs | 63 +- src/Vulkan/Core10/DeviceInitialization.hs | 80 +- src/Vulkan/Core10/Enums/AccessFlagBits.hs | 366 +- src/Vulkan/Core10/Enums/AttachmentLoadOp.hs | 13 +- src/Vulkan/Core10/Enums/AttachmentStoreOp.hs | 11 +- .../Core10/Enums/BufferUsageFlagBits.hs | 11 + .../Enums/CommandBufferUsageFlagBits.hs | 5 +- .../Enums/DescriptorPoolCreateFlagBits.hs | 32 + .../DescriptorSetLayoutCreateFlagBits.hs | 13 + src/Vulkan/Core10/Enums/DynamicState.hs | 33 +- src/Vulkan/Core10/Enums/Format.hs | 22 + .../Core10/Enums/FormatFeatureFlagBits.hs | 10 +- .../Core10/Enums/ImageAspectFlagBits.hs-boot | 12 + .../Core10/Enums/ImageCreateFlagBits.hs | 8 +- src/Vulkan/Core10/Enums/ImageLayout.hs | 5 + src/Vulkan/Core10/Enums/ImageUsageFlagBits.hs | 9 + src/Vulkan/Core10/Enums/IndexType.hs | 3 +- src/Vulkan/Core10/Enums/ObjectType.hs | 184 +- src/Vulkan/Core10/Enums/PipelineBindPoint.hs | 16 +- .../Enums/PipelineCacheHeaderVersion.hs | 3 +- .../PipelineColorBlendStateCreateFlagBits.hs | 45 +- .../Core10/Enums/PipelineCreateFlagBits.hs | 8 +- ...PipelineDepthStencilStateCreateFlagBits.hs | 93 +- .../PipelineShaderStageCreateFlagBits.hs | 2 +- .../Core10/Enums/PipelineStageFlagBits.hs | 19 +- src/Vulkan/Core10/Enums/PolygonMode.hs | 14 + src/Vulkan/Core10/Enums/Result.hs | 8 +- .../Core10/Enums/SamplerCreateFlagBits.hs | 4 +- src/Vulkan/Core10/Enums/StructureType.hs | 739 ++- src/Vulkan/Core10/Enums/SubpassContents.hs | 16 +- src/Vulkan/Core10/FundamentalTypes.hs | 66 +- src/Vulkan/Core10/FundamentalTypes.hs-boot | 13 + src/Vulkan/Core10/Handles.hs | 50 +- src/Vulkan/Core10/Image.hs | 151 +- src/Vulkan/Core10/ImageView.hs | 82 +- src/Vulkan/Core10/Memory.hs | 76 +- src/Vulkan/Core10/MemoryManagement.hs | 36 +- src/Vulkan/Core10/OtherTypes.hs | 301 +- src/Vulkan/Core10/OtherTypes.hs-boot | 11 +- src/Vulkan/Core10/Pass.hs | 197 +- src/Vulkan/Core10/Pipeline.hs | 1526 +++-- src/Vulkan/Core10/Query.hs | 36 +- src/Vulkan/Core10/Queue.hs | 15 +- src/Vulkan/Core10/Sampler.hs | 21 +- src/Vulkan/Core10/Shader.hs | 92 +- .../Core10/SparseResourceMemoryManagement.hs | 31 +- src/Vulkan/Core11/Enums/ChromaLocation.hs | 4 +- .../Enums/ExternalMemoryFeatureFlagBits.hs | 4 + .../Enums/ExternalMemoryHandleTypeFlagBits.hs | 14 + .../Enums/SamplerYcbcrModelConversion.hs | 3 +- src/Vulkan/Core11/Enums/SamplerYcbcrRange.hs | 3 +- .../Promoted_From_VK_KHR_bind_memory2.hs | 33 +- ...omoted_From_VK_KHR_dedicated_allocation.hs | 6 +- ..._From_VK_KHR_descriptor_update_template.hs | 62 +- .../Promoted_From_VK_KHR_device_group.hs | 175 +- ...rom_VK_KHR_external_memory_capabilities.hs | 152 +- ...K_KHR_external_memory_capabilities.hs-boot | 16 +- ...ed_From_VK_KHR_get_memory_requirements2.hs | 8 +- ..._VK_KHR_get_physical_device_properties2.hs | 74 + .../Promoted_From_VK_KHR_maintenance1.hs | 2 +- .../Core11/Promoted_From_VK_KHR_multiview.hs | 3 +- ...ed_From_VK_KHR_sampler_ycbcr_conversion.hs | 42 +- .../Promoted_From_VK_KHR_variable_pointers.hs | 3 +- src/Vulkan/Core12.hs | 10 +- src/Vulkan/Core12/Enums/DriverId.hs | 8 +- .../Core12/Enums/ResolveModeFlagBits.hs | 36 + .../Core12/Enums/SamplerReductionMode.hs | 14 +- ...romoted_From_VK_EXT_descriptor_indexing.hs | 24 +- ...Promoted_From_VK_KHR_create_renderpass2.hs | 280 +- ...moted_From_VK_KHR_depth_stencil_resolve.hs | 19 +- ...romoted_From_VK_KHR_draw_indirect_count.hs | 1948 ++++++- src/Vulkan/Core13.hs | 11 +- src/Vulkan/Core13/Enums/AccessFlags2.hs | 63 +- .../Core13/Enums/FormatFeatureFlags2.hs | 24 +- .../Core13/Enums/PipelineStageFlags2.hs | 29 +- src/Vulkan/Core13/Enums/RenderingFlagBits.hs | 19 +- ...oted_From_VK_EXT_extended_dynamic_state.hs | 214 +- ...ted_From_VK_EXT_extended_dynamic_state2.hs | 54 + ...omoted_From_VK_EXT_inline_uniform_block.hs | 11 +- .../Promoted_From_VK_KHR_copy_commands2.hs | 468 +- ...romoted_From_VK_KHR_copy_commands2.hs-boot | 11 +- .../Promoted_From_VK_KHR_dynamic_rendering.hs | 202 +- .../Promoted_From_VK_KHR_maintenance4.hs | 15 +- .../Promoted_From_VK_KHR_synchronization2.hs | 405 +- ...moted_From_VK_KHR_synchronization2.hs-boot | 11 +- src/Vulkan/Dynamic.hs | 152 +- src/Vulkan/Exception.hs | 1 + src/Vulkan/Extensions.hs | 44 + src/Vulkan/Extensions/Handles.hs | 4 + .../Extensions/VK_AMDX_shader_enqueue.hs | 4113 +++++++++++++ .../Extensions/VK_AMDX_shader_enqueue.hs-boot | 268 + src/Vulkan/Extensions/VK_AMD_buffer_marker.hs | 3 + .../VK_AMD_device_coherent_memory.hs | 3 + .../VK_AMD_device_coherent_memory.hs-boot | 3 + .../Extensions/VK_AMD_display_native_hdr.hs | 7 +- .../VK_AMD_display_native_hdr.hs-boot | 7 +- .../Extensions/VK_AMD_draw_indirect_count.hs | 5 +- src/Vulkan/Extensions/VK_AMD_gcn_shader.hs | 3 + .../VK_AMD_gpu_shader_half_float.hs | 5 +- .../Extensions/VK_AMD_gpu_shader_int16.hs | 5 +- .../VK_AMD_memory_overallocation_behavior.hs | 3 + ...AMD_memory_overallocation_behavior.hs-boot | 3 + .../VK_AMD_mixed_attachment_samples.hs | 3 + .../VK_AMD_negative_viewport_height.hs | 5 +- .../VK_AMD_pipeline_compiler_control.hs | 6 +- .../VK_AMD_pipeline_compiler_control.hs-boot | 6 +- .../Extensions/VK_AMD_rasterization_order.hs | 3 + .../VK_AMD_rasterization_order.hs-boot | 3 + src/Vulkan/Extensions/VK_AMD_shader_ballot.hs | 3 + .../VK_AMD_shader_core_properties.hs | 7 +- .../VK_AMD_shader_core_properties.hs-boot | 3 + .../VK_AMD_shader_core_properties2.hs | 3 + .../VK_AMD_shader_core_properties2.hs-boot | 3 + ...MD_shader_early_and_late_fragment_tests.hs | 3 + ...ader_early_and_late_fragment_tests.hs-boot | 3 + ...VK_AMD_shader_explicit_vertex_parameter.hs | 3 + .../Extensions/VK_AMD_shader_fragment_mask.hs | 3 + .../VK_AMD_shader_image_load_store_lod.hs | 3 + src/Vulkan/Extensions/VK_AMD_shader_info.hs | 3 + .../Extensions/VK_AMD_shader_info.hs-boot | 3 + .../VK_AMD_shader_trinary_minmax.hs | 3 + .../VK_AMD_texture_gather_bias_lod.hs | 3 + .../VK_AMD_texture_gather_bias_lod.hs-boot | 3 + .../VK_ANDROID_external_format_resolve.hs | 432 ++ ...VK_ANDROID_external_format_resolve.hs-boot | 169 + ...external_memory_android_hardware_buffer.hs | 31 +- ...nal_memory_android_hardware_buffer.hs-boot | 8 +- ...M_rasterization_order_attachment_access.hs | 9 +- .../Extensions/VK_ARM_shader_core_builtins.hs | 5 +- .../VK_ARM_shader_core_builtins.hs-boot | 5 +- .../VK_ARM_shader_core_properties.hs | 3 + .../VK_ARM_shader_core_properties.hs-boot | 3 + src/Vulkan/Extensions/VK_EXT_4444_formats.hs | 5 +- .../Extensions/VK_EXT_4444_formats.hs-boot | 5 +- .../Extensions/VK_EXT_acquire_drm_display.hs | 3 + .../Extensions/VK_EXT_acquire_xlib_display.hs | 3 + .../VK_EXT_acquire_xlib_display.hs-boot | 3 + .../Extensions/VK_EXT_astc_decode_mode.hs | 15 +- .../VK_EXT_astc_decode_mode.hs-boot | 15 +- ..._attachment_feedback_loop_dynamic_state.hs | 337 ++ ...chment_feedback_loop_dynamic_state.hs-boot | 117 + .../VK_EXT_attachment_feedback_loop_layout.hs | 3 + ...XT_attachment_feedback_loop_layout.hs-boot | 3 + .../VK_EXT_blend_operation_advanced.hs | 3 + .../VK_EXT_blend_operation_advanced.hs-boot | 3 + .../Extensions/VK_EXT_border_color_swizzle.hs | 3 + .../VK_EXT_border_color_swizzle.hs-boot | 3 + .../VK_EXT_buffer_device_address.hs | 5 +- .../VK_EXT_buffer_device_address.hs-boot | 5 +- .../VK_EXT_calibrated_timestamps.hs | 112 +- .../VK_EXT_calibrated_timestamps.hs-boot | 80 +- .../Extensions/VK_EXT_color_write_enable.hs | 4 + .../VK_EXT_color_write_enable.hs-boot | 3 + .../VK_EXT_conditional_rendering.hs | 3 + .../VK_EXT_conditional_rendering.hs-boot | 3 + .../VK_EXT_conservative_rasterization.hs | 3 + .../VK_EXT_conservative_rasterization.hs-boot | 3 + .../Extensions/VK_EXT_custom_border_color.hs | 23 +- .../VK_EXT_custom_border_color.hs-boot | 3 + src/Vulkan/Extensions/VK_EXT_debug_marker.hs | 31 +- .../Extensions/VK_EXT_debug_marker.hs-boot | 31 +- src/Vulkan/Extensions/VK_EXT_debug_report.hs | 27 +- .../Extensions/VK_EXT_debug_report.hs-boot | 27 +- src/Vulkan/Extensions/VK_EXT_debug_utils.hs | 129 +- .../Extensions/VK_EXT_debug_utils.hs-boot | 92 +- .../Extensions/VK_EXT_depth_bias_control.hs | 657 +++ .../VK_EXT_depth_bias_control.hs-boot | 174 + .../Extensions/VK_EXT_depth_clamp_zero_one.hs | 3 + .../VK_EXT_depth_clamp_zero_one.hs-boot | 3 + .../Extensions/VK_EXT_depth_clip_control.hs | 3 + .../VK_EXT_depth_clip_control.hs-boot | 3 + .../Extensions/VK_EXT_depth_clip_enable.hs | 3 + .../VK_EXT_depth_clip_enable.hs-boot | 3 + .../VK_EXT_depth_range_unrestricted.hs | 3 + .../Extensions/VK_EXT_descriptor_buffer.hs | 65 +- .../VK_EXT_descriptor_buffer.hs-boot | 3 + .../Extensions/VK_EXT_descriptor_indexing.hs | 5 +- .../VK_EXT_device_address_binding_report.hs | 3 + ..._EXT_device_address_binding_report.hs-boot | 3 + src/Vulkan/Extensions/VK_EXT_device_fault.hs | 39 +- .../Extensions/VK_EXT_device_fault.hs-boot | 11 +- .../Extensions/VK_EXT_device_memory_report.hs | 3 + .../VK_EXT_device_memory_report.hs-boot | 3 + .../Extensions/VK_EXT_direct_mode_display.hs | 3 + .../Extensions/VK_EXT_directfb_surface.hs | 3 + .../VK_EXT_directfb_surface.hs-boot | 3 + .../Extensions/VK_EXT_discard_rectangles.hs | 3 + .../VK_EXT_discard_rectangles.hs-boot | 3 + .../Extensions/VK_EXT_display_control.hs | 3 + .../Extensions/VK_EXT_display_control.hs-boot | 3 + .../VK_EXT_display_surface_counter.hs | 12 +- .../VK_EXT_display_surface_counter.hs-boot | 3 + ...XT_dynamic_rendering_unused_attachments.hs | 266 + ...namic_rendering_unused_attachments.hs-boot | 127 + .../VK_EXT_extended_dynamic_state.hs | 12 +- .../VK_EXT_extended_dynamic_state.hs-boot | 12 +- .../VK_EXT_extended_dynamic_state2.hs | 5 +- .../VK_EXT_extended_dynamic_state2.hs-boot | 5 +- .../VK_EXT_extended_dynamic_state3.hs | 191 +- .../VK_EXT_extended_dynamic_state3.hs-boot | 163 +- ..._EXT_external_memory_acquire_unmodified.hs | 248 + ...external_memory_acquire_unmodified.hs-boot | 106 + .../VK_EXT_external_memory_dma_buf.hs | 3 + .../Extensions/VK_EXT_external_memory_host.hs | 9 + .../VK_EXT_external_memory_host.hs-boot | 3 + src/Vulkan/Extensions/VK_EXT_filter_cubic.hs | 5 +- .../Extensions/VK_EXT_filter_cubic.hs-boot | 5 +- .../Extensions/VK_EXT_fragment_density_map.hs | 3 + .../VK_EXT_fragment_density_map.hs-boot | 3 + .../VK_EXT_fragment_density_map2.hs | 3 + .../VK_EXT_fragment_density_map2.hs-boot | 3 + .../VK_EXT_fragment_shader_interlock.hs | 3 + .../VK_EXT_fragment_shader_interlock.hs-boot | 3 + .../Extensions/VK_EXT_frame_boundary.hs | 497 ++ .../Extensions/VK_EXT_frame_boundary.hs-boot | 139 + .../VK_EXT_full_screen_exclusive.hs | 3 + .../VK_EXT_full_screen_exclusive.hs-boot | 3 + .../Extensions/VK_EXT_global_priority.hs | 5 +- .../VK_EXT_global_priority_query.hs | 5 +- .../VK_EXT_graphics_pipeline_library.hs | 3 + .../VK_EXT_graphics_pipeline_library.hs-boot | 3 + src/Vulkan/Extensions/VK_EXT_hdr_metadata.hs | 5 +- .../Extensions/VK_EXT_hdr_metadata.hs-boot | 5 +- .../Extensions/VK_EXT_headless_surface.hs | 3 + .../VK_EXT_headless_surface.hs-boot | 3 + .../Extensions/VK_EXT_host_image_copy.hs | 2645 +++++++++ .../Extensions/VK_EXT_host_image_copy.hs-boot | 344 ++ .../Extensions/VK_EXT_host_query_reset.hs | 5 +- .../Extensions/VK_EXT_image_2d_view_of_3d.hs | 3 + .../VK_EXT_image_2d_view_of_3d.hs-boot | 3 + .../VK_EXT_image_compression_control.hs | 348 +- .../VK_EXT_image_compression_control.hs-boot | 46 +- ...EXT_image_compression_control_swapchain.hs | 3 + ...mage_compression_control_swapchain.hs-boot | 3 + .../VK_EXT_image_drm_format_modifier.hs | 12 +- .../VK_EXT_image_drm_format_modifier.hs-boot | 5 +- .../Extensions/VK_EXT_image_robustness.hs | 5 +- .../VK_EXT_image_sliced_view_of_3d.hs | 9 +- .../VK_EXT_image_sliced_view_of_3d.hs-boot | 3 + .../Extensions/VK_EXT_image_view_min_lod.hs | 7 +- .../VK_EXT_image_view_min_lod.hs-boot | 3 + .../Extensions/VK_EXT_index_type_uint8.hs | 4 + .../VK_EXT_index_type_uint8.hs-boot | 3 + .../Extensions/VK_EXT_inline_uniform_block.hs | 5 +- .../Extensions/VK_EXT_legacy_dithering.hs | 3 + .../VK_EXT_legacy_dithering.hs-boot | 3 + .../Extensions/VK_EXT_line_rasterization.hs | 17 +- .../VK_EXT_line_rasterization.hs-boot | 17 +- .../Extensions/VK_EXT_load_store_op_none.hs | 3 + src/Vulkan/Extensions/VK_EXT_memory_budget.hs | 3 + .../Extensions/VK_EXT_memory_budget.hs-boot | 3 + .../Extensions/VK_EXT_memory_priority.hs | 3 + .../Extensions/VK_EXT_memory_priority.hs-boot | 3 + src/Vulkan/Extensions/VK_EXT_mesh_shader.hs | 2754 +++++++-- .../Extensions/VK_EXT_mesh_shader.hs-boot | 3 + src/Vulkan/Extensions/VK_EXT_metal_objects.hs | 3 + .../Extensions/VK_EXT_metal_objects.hs-boot | 3 + src/Vulkan/Extensions/VK_EXT_metal_surface.hs | 3 + .../Extensions/VK_EXT_metal_surface.hs-boot | 3 + src/Vulkan/Extensions/VK_EXT_multi_draw.hs | 2007 ++++++- .../Extensions/VK_EXT_multi_draw.hs-boot | 3 + ...T_multisampled_render_to_single_sampled.hs | 8 +- ...tisampled_render_to_single_sampled.hs-boot | 3 + .../VK_EXT_mutable_descriptor_type.hs | 6 +- .../VK_EXT_mutable_descriptor_type.hs-boot | 3 + .../VK_EXT_nested_command_buffer.hs | 331 ++ .../VK_EXT_nested_command_buffer.hs-boot | 144 + .../VK_EXT_non_seamless_cube_map.hs | 3 + .../VK_EXT_non_seamless_cube_map.hs-boot | 3 + .../Extensions/VK_EXT_opacity_micromap.hs | 29 +- .../VK_EXT_opacity_micromap.hs-boot | 5 +- .../VK_EXT_pageable_device_local_memory.hs | 3 + ...K_EXT_pageable_device_local_memory.hs-boot | 3 + src/Vulkan/Extensions/VK_EXT_pci_bus_info.hs | 3 + .../Extensions/VK_EXT_pci_bus_info.hs-boot | 3 + .../Extensions/VK_EXT_physical_device_drm.hs | 3 + .../VK_EXT_physical_device_drm.hs-boot | 3 + .../VK_EXT_pipeline_creation_cache_control.hs | 5 +- .../VK_EXT_pipeline_creation_feedback.hs | 8 +- .../VK_EXT_pipeline_library_group_handles.hs | 3 + ...EXT_pipeline_library_group_handles.hs-boot | 3 + .../Extensions/VK_EXT_pipeline_properties.hs | 3 + .../VK_EXT_pipeline_properties.hs-boot | 3 + .../VK_EXT_pipeline_protected_access.hs | 3 + .../VK_EXT_pipeline_protected_access.hs-boot | 3 + .../Extensions/VK_EXT_pipeline_robustness.hs | 3 + .../VK_EXT_pipeline_robustness.hs-boot | 3 + .../Extensions/VK_EXT_post_depth_coverage.hs | 3 + .../VK_EXT_primitive_topology_list_restart.hs | 3 + ...XT_primitive_topology_list_restart.hs-boot | 3 + .../VK_EXT_primitives_generated_query.hs | 3 + .../VK_EXT_primitives_generated_query.hs-boot | 3 + src/Vulkan/Extensions/VK_EXT_private_data.hs | 5 +- .../Extensions/VK_EXT_provoking_vertex.hs | 3 + .../VK_EXT_provoking_vertex.hs-boot | 3 + .../Extensions/VK_EXT_queue_family_foreign.hs | 3 + ...T_rasterization_order_attachment_access.hs | 3 + ...terization_order_attachment_access.hs-boot | 3 + .../Extensions/VK_EXT_rgba10x6_formats.hs | 3 + .../VK_EXT_rgba10x6_formats.hs-boot | 3 + src/Vulkan/Extensions/VK_EXT_robustness2.hs | 6 +- .../Extensions/VK_EXT_robustness2.hs-boot | 3 + .../Extensions/VK_EXT_sample_locations.hs | 3 + .../VK_EXT_sample_locations.hs-boot | 3 + .../VK_EXT_sampler_filter_minmax.hs | 5 +- .../Extensions/VK_EXT_scalar_block_layout.hs | 5 +- .../VK_EXT_separate_stencil_usage.hs | 5 +- .../Extensions/VK_EXT_shader_atomic_float.hs | 3 + .../VK_EXT_shader_atomic_float.hs-boot | 3 + .../Extensions/VK_EXT_shader_atomic_float2.hs | 3 + .../VK_EXT_shader_atomic_float2.hs-boot | 3 + ..._EXT_shader_demote_to_helper_invocation.hs | 5 +- .../VK_EXT_shader_image_atomic_int64.hs | 3 + .../VK_EXT_shader_image_atomic_int64.hs-boot | 3 + .../VK_EXT_shader_module_identifier.hs | 5 +- .../VK_EXT_shader_module_identifier.hs-boot | 3 + src/Vulkan/Extensions/VK_EXT_shader_object.hs | 525 +- .../Extensions/VK_EXT_shader_object.hs-boot | 179 +- .../VK_EXT_shader_stencil_export.hs | 3 + .../VK_EXT_shader_subgroup_ballot.hs | 5 +- .../Extensions/VK_EXT_shader_subgroup_vote.hs | 5 +- .../Extensions/VK_EXT_shader_tile_image.hs | 7 +- .../VK_EXT_shader_tile_image.hs-boot | 5 +- .../VK_EXT_shader_viewport_index_layer.hs | 5 +- .../VK_EXT_subgroup_size_control.hs | 5 +- .../VK_EXT_subpass_merge_feedback.hs | 3 + .../VK_EXT_subpass_merge_feedback.hs-boot | 3 + .../Extensions/VK_EXT_surface_maintenance1.hs | 3 + .../VK_EXT_surface_maintenance1.hs-boot | 3 + .../Extensions/VK_EXT_swapchain_colorspace.hs | 17 +- .../VK_EXT_swapchain_maintenance1.hs | 12 +- .../VK_EXT_swapchain_maintenance1.hs-boot | 3 + .../VK_EXT_texel_buffer_alignment.hs | 5 +- .../VK_EXT_texel_buffer_alignment.hs-boot | 5 +- .../VK_EXT_texture_compression_astc_hdr.hs | 5 +- src/Vulkan/Extensions/VK_EXT_tooling_info.hs | 5 +- .../Extensions/VK_EXT_transform_feedback.hs | 990 +++- .../VK_EXT_transform_feedback.hs-boot | 3 + .../Extensions/VK_EXT_validation_cache.hs | 3 + .../VK_EXT_validation_cache.hs-boot | 3 + .../Extensions/VK_EXT_validation_features.hs | 3 + .../VK_EXT_validation_features.hs-boot | 3 + .../Extensions/VK_EXT_validation_flags.hs | 5 +- .../VK_EXT_validation_flags.hs-boot | 5 +- .../VK_EXT_vertex_attribute_divisor.hs | 25 +- .../VK_EXT_vertex_attribute_divisor.hs-boot | 25 +- .../VK_EXT_vertex_input_dynamic_state.hs | 3 + .../VK_EXT_vertex_input_dynamic_state.hs-boot | 3 + .../VK_EXT_ycbcr_2plane_444_formats.hs | 5 +- .../VK_EXT_ycbcr_2plane_444_formats.hs-boot | 5 +- .../Extensions/VK_EXT_ycbcr_image_arrays.hs | 3 + .../VK_EXT_ycbcr_image_arrays.hs-boot | 3 + .../VK_FUCHSIA_buffer_collection.hs | 17 +- .../VK_FUCHSIA_buffer_collection.hs-boot | 17 +- .../Extensions/VK_FUCHSIA_external_memory.hs | 3 + .../VK_FUCHSIA_external_memory.hs-boot | 3 + .../VK_FUCHSIA_external_semaphore.hs | 3 + .../VK_FUCHSIA_external_semaphore.hs-boot | 3 + .../VK_FUCHSIA_imagepipe_surface.hs | 3 + .../VK_FUCHSIA_imagepipe_surface.hs-boot | 3 + src/Vulkan/Extensions/VK_GGP_frame_token.hs | 3 + .../Extensions/VK_GGP_frame_token.hs-boot | 3 + .../VK_GGP_stream_descriptor_surface.hs | 3 + .../VK_GGP_stream_descriptor_surface.hs-boot | 3 + .../Extensions/VK_GOOGLE_decorate_string.hs | 3 + .../Extensions/VK_GOOGLE_display_timing.hs | 3 + .../VK_GOOGLE_display_timing.hs-boot | 3 + .../VK_GOOGLE_hlsl_functionality1.hs | 3 + .../Extensions/VK_GOOGLE_surfaceless_query.hs | 8 +- src/Vulkan/Extensions/VK_GOOGLE_user_type.hs | 3 + .../VK_HUAWEI_cluster_culling_shader.hs | 1902 ++++-- .../VK_HUAWEI_cluster_culling_shader.hs-boot | 57 +- .../Extensions/VK_HUAWEI_invocation_mask.hs | 7 +- .../VK_HUAWEI_invocation_mask.hs-boot | 3 + .../Extensions/VK_HUAWEI_subpass_shading.hs | 185 +- .../VK_HUAWEI_subpass_shading.hs-boot | 19 +- src/Vulkan/Extensions/VK_IMG_filter_cubic.hs | 5 +- src/Vulkan/Extensions/VK_IMG_format_pvrtc.hs | 5 +- .../Extensions/VK_INTEL_performance_query.hs | 4 + .../VK_INTEL_performance_query.hs-boot | 3 + .../VK_INTEL_shader_integer_functions2.hs | 3 + ...VK_INTEL_shader_integer_functions2.hs-boot | 3 + src/Vulkan/Extensions/VK_KHR_16bit_storage.hs | 5 +- src/Vulkan/Extensions/VK_KHR_8bit_storage.hs | 5 +- .../VK_KHR_acceleration_structure.hs | 184 +- .../VK_KHR_acceleration_structure.hs-boot | 17 +- .../Extensions/VK_KHR_android_surface.hs | 3 + .../Extensions/VK_KHR_android_surface.hs-boot | 3 + src/Vulkan/Extensions/VK_KHR_bind_memory2.hs | 5 +- .../VK_KHR_buffer_device_address.hs | 5 +- .../Extensions/VK_KHR_cooperative_matrix.hs | 776 +++ .../VK_KHR_cooperative_matrix.hs-boot | 179 + .../Extensions/VK_KHR_copy_commands2.hs | 5 +- .../Extensions/VK_KHR_create_renderpass2.hs | 5 +- .../Extensions/VK_KHR_dedicated_allocation.hs | 39 +- .../VK_KHR_deferred_host_operations.hs | 3 + .../VK_KHR_depth_stencil_resolve.hs | 5 +- .../VK_KHR_descriptor_update_template.hs | 5 +- src/Vulkan/Extensions/VK_KHR_device_group.hs | 5 +- .../VK_KHR_device_group_creation.hs | 5 +- src/Vulkan/Extensions/VK_KHR_display.hs | 8 +- src/Vulkan/Extensions/VK_KHR_display.hs-boot | 5 +- .../Extensions/VK_KHR_display_swapchain.hs | 5 +- .../VK_KHR_display_swapchain.hs-boot | 5 +- .../Extensions/VK_KHR_draw_indirect_count.hs | 5 +- .../Extensions/VK_KHR_driver_properties.hs | 5 +- .../Extensions/VK_KHR_dynamic_rendering.hs | 7 +- .../VK_KHR_dynamic_rendering.hs-boot | 5 +- .../Extensions/VK_KHR_external_fence.hs | 5 +- .../VK_KHR_external_fence_capabilities.hs | 5 +- .../Extensions/VK_KHR_external_fence_fd.hs | 3 + .../VK_KHR_external_fence_fd.hs-boot | 3 + .../Extensions/VK_KHR_external_fence_win32.hs | 9 +- .../VK_KHR_external_fence_win32.hs-boot | 3 + .../Extensions/VK_KHR_external_memory.hs | 5 +- .../VK_KHR_external_memory_capabilities.hs | 5 +- .../Extensions/VK_KHR_external_memory_fd.hs | 7 +- .../VK_KHR_external_memory_fd.hs-boot | 3 + .../VK_KHR_external_memory_win32.hs | 17 +- .../VK_KHR_external_memory_win32.hs-boot | 3 + .../Extensions/VK_KHR_external_semaphore.hs | 5 +- .../VK_KHR_external_semaphore_capabilities.hs | 5 +- .../VK_KHR_external_semaphore_fd.hs | 3 + .../VK_KHR_external_semaphore_fd.hs-boot | 3 + .../VK_KHR_external_semaphore_win32.hs | 15 +- .../VK_KHR_external_semaphore_win32.hs-boot | 3 + .../VK_KHR_format_feature_flags2.hs | 5 +- .../VK_KHR_fragment_shader_barycentric.hs | 28 +- ...VK_KHR_fragment_shader_barycentric.hs-boot | 3 + .../VK_KHR_fragment_shading_rate.hs | 7 +- .../VK_KHR_fragment_shading_rate.hs-boot | 3 + .../VK_KHR_get_display_properties2.hs | 11 +- .../VK_KHR_get_display_properties2.hs-boot | 11 +- .../VK_KHR_get_memory_requirements2.hs | 11 +- .../VK_KHR_get_memory_requirements2.hs-boot | 11 +- .../VK_KHR_get_physical_device_properties2.hs | 49 +- .../VK_KHR_get_surface_capabilities2.hs | 15 +- .../VK_KHR_get_surface_capabilities2.hs-boot | 12 +- .../Extensions/VK_KHR_global_priority.hs | 5 +- .../Extensions/VK_KHR_global_priority.hs-boot | 3 + .../Extensions/VK_KHR_image_format_list.hs | 5 +- .../VK_KHR_imageless_framebuffer.hs | 5 +- .../Extensions/VK_KHR_incremental_present.hs | 3 + .../VK_KHR_incremental_present.hs-boot | 3 + src/Vulkan/Extensions/VK_KHR_maintenance1.hs | 5 +- src/Vulkan/Extensions/VK_KHR_maintenance2.hs | 5 +- src/Vulkan/Extensions/VK_KHR_maintenance3.hs | 5 +- src/Vulkan/Extensions/VK_KHR_maintenance4.hs | 5 +- src/Vulkan/Extensions/VK_KHR_maintenance5.hs | 2295 ++++++++ .../Extensions/VK_KHR_maintenance5.hs-boot | 592 ++ src/Vulkan/Extensions/VK_KHR_map_memory2.hs | 7 +- .../Extensions/VK_KHR_map_memory2.hs-boot | 7 +- src/Vulkan/Extensions/VK_KHR_multiview.hs | 5 +- .../Extensions/VK_KHR_performance_query.hs | 46 +- .../VK_KHR_performance_query.hs-boot | 46 +- .../VK_KHR_pipeline_executable_properties.hs | 7 +- ...KHR_pipeline_executable_properties.hs-boot | 5 +- .../Extensions/VK_KHR_pipeline_library.hs | 4 + .../VK_KHR_pipeline_library.hs-boot | 3 + .../VK_KHR_portability_enumeration.hs | 3 + .../Extensions/VK_KHR_portability_subset.hs | 5 +- .../VK_KHR_portability_subset.hs-boot | 5 +- src/Vulkan/Extensions/VK_KHR_present_id.hs | 5 +- .../Extensions/VK_KHR_present_id.hs-boot | 3 + src/Vulkan/Extensions/VK_KHR_present_wait.hs | 3 + .../Extensions/VK_KHR_present_wait.hs-boot | 3 + .../Extensions/VK_KHR_push_descriptor.hs | 35 +- .../Extensions/VK_KHR_push_descriptor.hs-boot | 3 + src/Vulkan/Extensions/VK_KHR_ray_query.hs | 3 + .../Extensions/VK_KHR_ray_query.hs-boot | 3 + .../VK_KHR_ray_tracing_maintenance1.hs | 159 +- .../VK_KHR_ray_tracing_maintenance1.hs-boot | 3 + .../Extensions/VK_KHR_ray_tracing_pipeline.hs | 331 +- .../VK_KHR_ray_tracing_pipeline.hs-boot | 3 + .../VK_KHR_ray_tracing_position_fetch.hs | 253 + .../VK_KHR_ray_tracing_position_fetch.hs-boot | 151 + .../Extensions/VK_KHR_relaxed_block_layout.hs | 5 +- .../VK_KHR_sampler_mirror_clamp_to_edge.hs | 7 +- .../VK_KHR_sampler_ycbcr_conversion.hs | 22 +- .../VK_KHR_separate_depth_stencil_layouts.hs | 5 +- .../Extensions/VK_KHR_shader_atomic_int64.hs | 5 +- src/Vulkan/Extensions/VK_KHR_shader_clock.hs | 3 + .../Extensions/VK_KHR_shader_clock.hs-boot | 3 + .../VK_KHR_shader_draw_parameters.hs | 5 +- .../Extensions/VK_KHR_shader_float16_int8.hs | 5 +- .../VK_KHR_shader_float_controls.hs | 7 +- .../VK_KHR_shader_integer_dot_product.hs | 9 +- .../VK_KHR_shader_non_semantic_info.hs | 5 +- .../VK_KHR_shader_subgroup_extended_types.hs | 5 +- ...HR_shader_subgroup_uniform_control_flow.hs | 3 + ...ader_subgroup_uniform_control_flow.hs-boot | 3 + .../VK_KHR_shader_terminate_invocation.hs | 5 +- .../VK_KHR_shared_presentable_image.hs | 3 + .../VK_KHR_shared_presentable_image.hs-boot | 3 + src/Vulkan/Extensions/VK_KHR_spirv_1_4.hs | 5 +- .../VK_KHR_storage_buffer_storage_class.hs | 5 +- src/Vulkan/Extensions/VK_KHR_surface.hs | 10 +- src/Vulkan/Extensions/VK_KHR_surface.hs-boot | 3 + .../VK_KHR_surface_protected_capabilities.hs | 3 + ...KHR_surface_protected_capabilities.hs-boot | 3 + src/Vulkan/Extensions/VK_KHR_swapchain.hs | 44 +- .../Extensions/VK_KHR_swapchain.hs-boot | 3 + .../VK_KHR_swapchain_mutable_format.hs | 3 + .../Extensions/VK_KHR_synchronization2.hs | 10 +- .../VK_KHR_synchronization2.hs-boot | 5 +- .../Extensions/VK_KHR_timeline_semaphore.hs | 5 +- .../VK_KHR_uniform_buffer_standard_layout.hs | 5 +- .../Extensions/VK_KHR_variable_pointers.hs | 5 +- .../Extensions/VK_KHR_vulkan_memory_model.hs | 5 +- .../Extensions/VK_KHR_wayland_surface.hs | 3 + .../Extensions/VK_KHR_wayland_surface.hs-boot | 3 + .../Extensions/VK_KHR_win32_keyed_mutex.hs | 3 + .../VK_KHR_win32_keyed_mutex.hs-boot | 3 + src/Vulkan/Extensions/VK_KHR_win32_surface.hs | 3 + .../Extensions/VK_KHR_win32_surface.hs-boot | 3 + ...VK_KHR_workgroup_memory_explicit_layout.hs | 3 + ...R_workgroup_memory_explicit_layout.hs-boot | 3 + src/Vulkan/Extensions/VK_KHR_xcb_surface.hs | 3 + .../Extensions/VK_KHR_xcb_surface.hs-boot | 3 + src/Vulkan/Extensions/VK_KHR_xlib_surface.hs | 3 + .../Extensions/VK_KHR_xlib_surface.hs-boot | 3 + ...VK_KHR_zero_initialize_workgroup_memory.hs | 5 +- .../VK_LUNARG_direct_driver_loading.hs | 3 + .../VK_LUNARG_direct_driver_loading.hs-boot | 3 + .../Extensions/VK_MSFT_layered_driver.hs | 258 + .../Extensions/VK_MSFT_layered_driver.hs-boot | 107 + src/Vulkan/Extensions/VK_MVK_ios_surface.hs | 5 +- .../Extensions/VK_MVK_ios_surface.hs-boot | 5 +- src/Vulkan/Extensions/VK_MVK_macos_surface.hs | 5 +- .../Extensions/VK_MVK_macos_surface.hs-boot | 5 +- src/Vulkan/Extensions/VK_NN_vi_surface.hs | 3 + .../Extensions/VK_NN_vi_surface.hs-boot | 3 + src/Vulkan/Extensions/VK_NVX_binary_import.hs | 21 +- .../Extensions/VK_NVX_binary_import.hs-boot | 21 +- .../Extensions/VK_NVX_image_view_handle.hs | 3 + .../VK_NVX_image_view_handle.hs-boot | 3 + .../VK_NVX_multiview_per_view_attributes.hs | 3 + ..._NVX_multiview_per_view_attributes.hs-boot | 3 + .../Extensions/VK_NV_acquire_winrt_display.hs | 3 + .../Extensions/VK_NV_clip_space_w_scaling.hs | 3 + .../VK_NV_clip_space_w_scaling.hs-boot | 3 + .../VK_NV_compute_shader_derivatives.hs | 3 + .../VK_NV_compute_shader_derivatives.hs-boot | 3 + .../Extensions/VK_NV_cooperative_matrix.hs | 336 +- .../VK_NV_cooperative_matrix.hs-boot | 38 + .../Extensions/VK_NV_copy_memory_indirect.hs | 24 +- .../VK_NV_copy_memory_indirect.hs-boot | 3 + .../Extensions/VK_NV_corner_sampled_image.hs | 11 +- .../VK_NV_corner_sampled_image.hs-boot | 11 +- .../VK_NV_coverage_reduction_mode.hs | 3 + .../VK_NV_coverage_reduction_mode.hs-boot | 3 + .../Extensions/VK_NV_dedicated_allocation.hs | 35 +- .../VK_NV_dedicated_allocation.hs-boot | 35 +- ..._NV_dedicated_allocation_image_aliasing.hs | 3 + ...edicated_allocation_image_aliasing.hs-boot | 3 + .../VK_NV_descriptor_pool_overallocation.hs | 219 + ..._NV_descriptor_pool_overallocation.hs-boot | 116 + .../VK_NV_device_diagnostic_checkpoints.hs | 3 + ...K_NV_device_diagnostic_checkpoints.hs-boot | 3 + .../VK_NV_device_diagnostics_config.hs | 3 + .../VK_NV_device_diagnostics_config.hs-boot | 3 + .../VK_NV_device_generated_commands.hs | 1118 +++- .../VK_NV_device_generated_commands.hs-boot | 5 +- ...VK_NV_device_generated_commands_compute.hs | 836 +++ ..._device_generated_commands_compute.hs-boot | 173 + .../Extensions/VK_NV_displacement_micromap.hs | 16 +- .../VK_NV_displacement_micromap.hs-boot | 10 +- .../VK_NV_extended_sparse_address_space.hs | 309 + ...K_NV_extended_sparse_address_space.hs-boot | 119 + .../Extensions/VK_NV_external_memory.hs | 5 +- .../Extensions/VK_NV_external_memory.hs-boot | 5 +- .../VK_NV_external_memory_capabilities.hs | 5 +- ...VK_NV_external_memory_capabilities.hs-boot | 5 +- .../Extensions/VK_NV_external_memory_rdma.hs | 3 + .../VK_NV_external_memory_rdma.hs-boot | 3 + .../Extensions/VK_NV_external_memory_win32.hs | 5 +- .../VK_NV_external_memory_win32.hs-boot | 5 +- src/Vulkan/Extensions/VK_NV_fill_rectangle.hs | 3 + .../VK_NV_fragment_coverage_to_color.hs | 3 + .../VK_NV_fragment_coverage_to_color.hs-boot | 3 + .../VK_NV_fragment_shader_barycentric.hs | 5 +- .../VK_NV_fragment_shading_rate_enums.hs | 7 +- .../VK_NV_fragment_shading_rate_enums.hs-boot | 3 + .../VK_NV_framebuffer_mixed_samples.hs | 3 + .../VK_NV_framebuffer_mixed_samples.hs-boot | 3 + .../VK_NV_geometry_shader_passthrough.hs | 3 + src/Vulkan/Extensions/VK_NV_glsl_shader.hs | 5 +- .../VK_NV_inherited_viewport_scissor.hs | 3 + .../VK_NV_inherited_viewport_scissor.hs-boot | 3 + .../VK_NV_linear_color_attachment.hs | 3 + .../VK_NV_linear_color_attachment.hs-boot | 3 + src/Vulkan/Extensions/VK_NV_low_latency.hs | 3 + .../Extensions/VK_NV_low_latency.hs-boot | 3 + src/Vulkan/Extensions/VK_NV_low_latency2.hs | 1327 +++++ .../Extensions/VK_NV_low_latency2.hs-boot | 247 + .../Extensions/VK_NV_memory_decompression.hs | 3 + .../VK_NV_memory_decompression.hs-boot | 3 + src/Vulkan/Extensions/VK_NV_mesh_shader.hs | 2711 +++++++-- .../Extensions/VK_NV_mesh_shader.hs-boot | 3 + src/Vulkan/Extensions/VK_NV_optical_flow.hs | 5 +- .../Extensions/VK_NV_optical_flow.hs-boot | 3 + .../Extensions/VK_NV_present_barrier.hs | 3 + .../Extensions/VK_NV_present_barrier.hs-boot | 3 + src/Vulkan/Extensions/VK_NV_ray_tracing.hs | 208 +- .../Extensions/VK_NV_ray_tracing.hs-boot | 29 +- .../VK_NV_ray_tracing_invocation_reorder.hs | 131 + ..._NV_ray_tracing_invocation_reorder.hs-boot | 131 + .../VK_NV_ray_tracing_motion_blur.hs | 3 + .../VK_NV_ray_tracing_motion_blur.hs-boot | 3 + .../VK_NV_representative_fragment_test.hs | 15 +- ...VK_NV_representative_fragment_test.hs-boot | 15 +- .../VK_NV_sample_mask_override_coverage.hs | 3 + .../Extensions/VK_NV_scissor_exclusive.hs | 3 + .../VK_NV_scissor_exclusive.hs-boot | 3 + .../VK_NV_shader_image_footprint.hs | 11 +- .../VK_NV_shader_image_footprint.hs-boot | 11 +- .../Extensions/VK_NV_shader_sm_builtins.hs | 3 + .../VK_NV_shader_sm_builtins.hs-boot | 3 + .../VK_NV_shader_subgroup_partitioned.hs | 3 + .../Extensions/VK_NV_shading_rate_image.hs | 3 + .../VK_NV_shading_rate_image.hs-boot | 3 + .../Extensions/VK_NV_viewport_array2.hs | 3 + .../Extensions/VK_NV_viewport_swizzle.hs | 3 + .../Extensions/VK_NV_viewport_swizzle.hs-boot | 3 + .../Extensions/VK_NV_win32_keyed_mutex.hs | 5 +- .../VK_NV_win32_keyed_mutex.hs-boot | 5 +- .../Extensions/VK_QCOM_filter_cubic_clamp.hs | 222 + .../VK_QCOM_filter_cubic_clamp.hs-boot | 124 + .../VK_QCOM_filter_cubic_weights.hs | 440 ++ .../VK_QCOM_filter_cubic_weights.hs-boot | 150 + .../VK_QCOM_fragment_density_map_offset.hs | 5 +- ...K_QCOM_fragment_density_map_offset.hs-boot | 3 + .../Extensions/VK_QCOM_image_processing.hs | 8 +- .../VK_QCOM_image_processing.hs-boot | 5 +- .../Extensions/VK_QCOM_image_processing2.hs | 535 ++ .../VK_QCOM_image_processing2.hs-boot | 245 + ...VK_QCOM_multiview_per_view_render_areas.hs | 5 +- ...OM_multiview_per_view_render_areas.hs-boot | 5 +- .../VK_QCOM_multiview_per_view_viewports.hs | 17 +- ..._QCOM_multiview_per_view_viewports.hs-boot | 17 +- .../VK_QCOM_render_pass_shader_resolve.hs | 3 + .../VK_QCOM_render_pass_store_ops.hs | 5 +- .../VK_QCOM_render_pass_transform.hs | 9 +- .../VK_QCOM_render_pass_transform.hs-boot | 9 +- .../VK_QCOM_rotated_copy_commands.hs | 5 +- .../VK_QCOM_rotated_copy_commands.hs-boot | 5 +- .../Extensions/VK_QCOM_tile_properties.hs | 16 +- .../VK_QCOM_tile_properties.hs-boot | 16 +- .../Extensions/VK_QCOM_ycbcr_degamma.hs | 325 ++ .../Extensions/VK_QCOM_ycbcr_degamma.hs-boot | 173 + .../VK_QNX_external_memory_screen_buffer.hs | 762 +++ ..._QNX_external_memory_screen_buffer.hs-boot | 205 + .../Extensions/VK_QNX_screen_surface.hs | 3 + .../Extensions/VK_QNX_screen_surface.hs-boot | 3 + .../Extensions/VK_SEC_amigo_profiling.hs | 3 + .../Extensions/VK_SEC_amigo_profiling.hs-boot | 3 + .../VK_VALVE_descriptor_set_host_mapping.hs | 11 + ..._VALVE_descriptor_set_host_mapping.hs-boot | 7 + .../VK_VALVE_mutable_descriptor_type.hs | 5 +- src/Vulkan/SPIRVRequirements.hs | 120 +- src/Vulkan/Version.hs | 4 +- vulkan.cabal | 22 + 671 files changed, 48390 insertions(+), 7131 deletions(-) create mode 100644 src/Vulkan/Core10/Enums/ImageAspectFlagBits.hs-boot create mode 100644 src/Vulkan/Extensions/VK_AMDX_shader_enqueue.hs create mode 100644 src/Vulkan/Extensions/VK_AMDX_shader_enqueue.hs-boot create mode 100644 src/Vulkan/Extensions/VK_ANDROID_external_format_resolve.hs create mode 100644 src/Vulkan/Extensions/VK_ANDROID_external_format_resolve.hs-boot create mode 100644 src/Vulkan/Extensions/VK_EXT_attachment_feedback_loop_dynamic_state.hs create mode 100644 src/Vulkan/Extensions/VK_EXT_attachment_feedback_loop_dynamic_state.hs-boot create mode 100644 src/Vulkan/Extensions/VK_EXT_depth_bias_control.hs create mode 100644 src/Vulkan/Extensions/VK_EXT_depth_bias_control.hs-boot create mode 100644 src/Vulkan/Extensions/VK_EXT_dynamic_rendering_unused_attachments.hs create mode 100644 src/Vulkan/Extensions/VK_EXT_dynamic_rendering_unused_attachments.hs-boot create mode 100644 src/Vulkan/Extensions/VK_EXT_external_memory_acquire_unmodified.hs create mode 100644 src/Vulkan/Extensions/VK_EXT_external_memory_acquire_unmodified.hs-boot create mode 100644 src/Vulkan/Extensions/VK_EXT_frame_boundary.hs create mode 100644 src/Vulkan/Extensions/VK_EXT_frame_boundary.hs-boot create mode 100644 src/Vulkan/Extensions/VK_EXT_host_image_copy.hs create mode 100644 src/Vulkan/Extensions/VK_EXT_host_image_copy.hs-boot create mode 100644 src/Vulkan/Extensions/VK_EXT_nested_command_buffer.hs create mode 100644 src/Vulkan/Extensions/VK_EXT_nested_command_buffer.hs-boot create mode 100644 src/Vulkan/Extensions/VK_KHR_cooperative_matrix.hs create mode 100644 src/Vulkan/Extensions/VK_KHR_cooperative_matrix.hs-boot create mode 100644 src/Vulkan/Extensions/VK_KHR_maintenance5.hs create mode 100644 src/Vulkan/Extensions/VK_KHR_maintenance5.hs-boot create mode 100644 src/Vulkan/Extensions/VK_KHR_ray_tracing_position_fetch.hs create mode 100644 src/Vulkan/Extensions/VK_KHR_ray_tracing_position_fetch.hs-boot create mode 100644 src/Vulkan/Extensions/VK_MSFT_layered_driver.hs create mode 100644 src/Vulkan/Extensions/VK_MSFT_layered_driver.hs-boot create mode 100644 src/Vulkan/Extensions/VK_NV_descriptor_pool_overallocation.hs create mode 100644 src/Vulkan/Extensions/VK_NV_descriptor_pool_overallocation.hs-boot create mode 100644 src/Vulkan/Extensions/VK_NV_device_generated_commands_compute.hs create mode 100644 src/Vulkan/Extensions/VK_NV_device_generated_commands_compute.hs-boot create mode 100644 src/Vulkan/Extensions/VK_NV_extended_sparse_address_space.hs create mode 100644 src/Vulkan/Extensions/VK_NV_extended_sparse_address_space.hs-boot create mode 100644 src/Vulkan/Extensions/VK_NV_low_latency2.hs create mode 100644 src/Vulkan/Extensions/VK_NV_low_latency2.hs-boot create mode 100644 src/Vulkan/Extensions/VK_QCOM_filter_cubic_clamp.hs create mode 100644 src/Vulkan/Extensions/VK_QCOM_filter_cubic_clamp.hs-boot create mode 100644 src/Vulkan/Extensions/VK_QCOM_filter_cubic_weights.hs create mode 100644 src/Vulkan/Extensions/VK_QCOM_filter_cubic_weights.hs-boot create mode 100644 src/Vulkan/Extensions/VK_QCOM_image_processing2.hs create mode 100644 src/Vulkan/Extensions/VK_QCOM_image_processing2.hs-boot create mode 100644 src/Vulkan/Extensions/VK_QCOM_ycbcr_degamma.hs create mode 100644 src/Vulkan/Extensions/VK_QCOM_ycbcr_degamma.hs-boot create mode 100644 src/Vulkan/Extensions/VK_QNX_external_memory_screen_buffer.hs create mode 100644 src/Vulkan/Extensions/VK_QNX_external_memory_screen_buffer.hs-boot diff --git a/generate-new/Vulkan-Docs b/generate-new/Vulkan-Docs index ce847fd14..5c80e2c54 160000 --- a/generate-new/Vulkan-Docs +++ b/generate-new/Vulkan-Docs @@ -1 +1 @@ -Subproject commit ce847fd14cc3a81751329352ce505501c46ce35e +Subproject commit 5c80e2c54664807c1a847631a7ca4b055df57526 diff --git a/src/Vulkan/CStruct/Extends.hs b/src/Vulkan/CStruct/Extends.hs index ca98a685a..8e60e853c 100644 --- a/src/Vulkan/CStruct/Extends.hs +++ b/src/Vulkan/CStruct/Extends.hs @@ -78,6 +78,7 @@ import {-# SOURCE #-} Vulkan.Core10.AllocationCallbacks (AllocationCallbacks) import {-# SOURCE #-} Vulkan.Extensions.VK_SEC_amigo_profiling (AmigoProfilingSubmitInfoSEC) import {-# SOURCE #-} Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer (AndroidHardwareBufferFormatProperties2ANDROID) import {-# SOURCE #-} Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer (AndroidHardwareBufferFormatPropertiesANDROID) +import {-# SOURCE #-} Vulkan.Extensions.VK_ANDROID_external_format_resolve (AndroidHardwareBufferFormatResolvePropertiesANDROID) import {-# SOURCE #-} Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer (AndroidHardwareBufferPropertiesANDROID) import {-# SOURCE #-} Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer (AndroidHardwareBufferUsageANDROID) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_android_surface (AndroidSurfaceCreateInfoKHR) @@ -98,9 +99,11 @@ import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_bind_memory2 (BindImage import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_swapchain (BindImageMemorySwapchainInfoKHR) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion (BindImagePlaneMemoryInfo) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_device_generated_commands (BindIndexBufferIndirectCommandNV) +import {-# SOURCE #-} Vulkan.Extensions.VK_NV_device_generated_commands_compute (BindPipelineIndirectCommandNV) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_device_generated_commands (BindShaderGroupIndirectCommandNV) import {-# SOURCE #-} Vulkan.Core10.SparseResourceMemoryManagement (BindSparseInfo) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_device_generated_commands (BindVertexBufferIndirectCommandNV) +import {-# SOURCE #-} Vulkan.Extensions.VK_QCOM_filter_cubic_weights (BlitImageCubicWeightsInfoQCOM) import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2 (BlitImageInfo2) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_descriptor_buffer (BufferCaptureDescriptorDataInfoEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_FUCHSIA_buffer_collection (BufferCollectionBufferCreateInfoFUCHSIA) @@ -120,6 +123,7 @@ import {-# SOURCE #-} Vulkan.Core10.OtherTypes (BufferMemoryBarrier) import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_synchronization2 (BufferMemoryBarrier2) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2 (BufferMemoryRequirementsInfo2) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_buffer_device_address (BufferOpaqueCaptureAddressCreateInfo) +import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_maintenance5 (BufferUsageFlags2CreateInfoKHR) import {-# SOURCE #-} Vulkan.Core10.BufferView (BufferViewCreateInfo) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_calibrated_timestamps (CalibratedTimestampInfoEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_synchronization2 (CheckpointData2NV) @@ -142,8 +146,10 @@ import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_synchronization2 (Comma import {-# SOURCE #-} Vulkan.Core10.CommandPool (CommandPoolCreateInfo) import {-# SOURCE #-} Vulkan.Core10.ImageView (ComponentMapping) import {-# SOURCE #-} Vulkan.Core10.Pipeline (ComputePipelineCreateInfo) +import {-# SOURCE #-} Vulkan.Extensions.VK_NV_device_generated_commands_compute (ComputePipelineIndirectBufferInfoNV) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_conditional_rendering (ConditionalRenderingBeginInfoEXT) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_driver_properties (ConformanceVersion) +import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_cooperative_matrix (CooperativeMatrixPropertiesKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_cooperative_matrix (CooperativeMatrixPropertiesNV) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_acceleration_structure (CopyAccelerationStructureInfoKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_acceleration_structure (CopyAccelerationStructureToMemoryInfoKHR) @@ -153,9 +159,12 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_QCOM_rotated_copy_commands (CopyComma import {-# SOURCE #-} Vulkan.Core10.DescriptorSet (CopyDescriptorSet) import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2 (CopyImageInfo2) import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2 (CopyImageToBufferInfo2) +import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_host_image_copy (CopyImageToImageInfoEXT) +import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_host_image_copy (CopyImageToMemoryInfoEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_copy_memory_indirect (CopyMemoryIndirectCommandNV) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_acceleration_structure (CopyMemoryToAccelerationStructureInfoKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_copy_memory_indirect (CopyMemoryToImageIndirectCommandNV) +import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_host_image_copy (CopyMemoryToImageInfoEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_opacity_micromap (CopyMemoryToMicromapInfoEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_opacity_micromap (CopyMicromapInfoEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_opacity_micromap (CopyMicromapToMemoryInfoEXT) @@ -177,6 +186,8 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_NV_dedicated_allocation (DedicatedAll import {-# SOURCE #-} Vulkan.Extensions.VK_NV_dedicated_allocation (DedicatedAllocationImageCreateInfoNV) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_dedicated_allocation (DedicatedAllocationMemoryAllocateInfoNV) import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_synchronization2 (DependencyInfo) +import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_depth_bias_control (DepthBiasInfoEXT) +import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_depth_bias_control (DepthBiasRepresentationInfoEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_descriptor_buffer (DescriptorAddressInfoEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_descriptor_buffer (DescriptorBufferBindingInfoEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_descriptor_buffer (DescriptorBufferBindingPushDescriptorBufferHandleEXT) @@ -217,6 +228,7 @@ import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_device_group (DeviceGro import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_device_group (DeviceGroupSubmitInfo) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_swapchain (DeviceGroupSwapchainCreateInfoKHR) import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_maintenance4 (DeviceImageMemoryRequirements) +import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_maintenance5 (DeviceImageSubresourceInfoKHR) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_buffer_device_address (DeviceMemoryOpaqueCaptureAddressInfo) import {-# SOURCE #-} Vulkan.Extensions.VK_AMD_memory_overallocation_behavior (DeviceMemoryOverallocationCreateInfoAMD) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_device_memory_report (DeviceMemoryReportCallbackDataEXT) @@ -227,6 +239,8 @@ import {-# SOURCE #-} Vulkan.Core11.Originally_Based_On_VK_KHR_protected_memory import {-# SOURCE #-} Vulkan.Extensions.VK_LUNARG_direct_driver_loading (DirectDriverLoadingInfoLUNARG) import {-# SOURCE #-} Vulkan.Extensions.VK_LUNARG_direct_driver_loading (DirectDriverLoadingListLUNARG) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_directfb_surface (DirectFBSurfaceCreateInfoEXT) +import {-# SOURCE #-} Vulkan.Extensions.VK_AMDX_shader_enqueue (DispatchGraphCountInfoAMDX) +import {-# SOURCE #-} Vulkan.Extensions.VK_AMDX_shader_enqueue (DispatchGraphInfoAMDX) import {-# SOURCE #-} Vulkan.Core10.OtherTypes (DispatchIndirectCommand) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_display_control (DisplayEventInfoEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_display (DisplayModeCreateInfoKHR) @@ -253,6 +267,8 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_image_drm_format_modifier (DrmFor import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_image_drm_format_modifier (DrmFormatModifierPropertiesList2EXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_image_drm_format_modifier (DrmFormatModifierPropertiesListEXT) import {-# SOURCE #-} Vulkan.Core10.Event (EventCreateInfo) +import {-# SOURCE #-} Vulkan.Extensions.VK_AMDX_shader_enqueue (ExecutionGraphPipelineCreateInfoAMDX) +import {-# SOURCE #-} Vulkan.Extensions.VK_AMDX_shader_enqueue (ExecutionGraphPipelineScratchSizeAMDX) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_external_fence (ExportFenceCreateInfo) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_external_fence_win32 (ExportFenceWin32HandleInfoKHR) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_external_memory (ExportMemoryAllocateInfo) @@ -275,8 +291,10 @@ import {-# SOURCE #-} Vulkan.Core10.FundamentalTypes (Extent3D) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_external_memory_capabilities (ExternalBufferProperties) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_external_fence_capabilities (ExternalFenceProperties) import {-# SOURCE #-} Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer (ExternalFormatANDROID) +import {-# SOURCE #-} Vulkan.Extensions.VK_QNX_external_memory_screen_buffer (ExternalFormatQNX) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_external_memory_capabilities (ExternalImageFormatProperties) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_external_memory_capabilities (ExternalImageFormatPropertiesNV) +import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_external_memory_acquire_unmodified (ExternalMemoryAcquireUnmodifiedEXT) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_external_memory (ExternalMemoryBufferCreateInfo) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_external_memory (ExternalMemoryImageCreateInfo) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_external_memory (ExternalMemoryImageCreateInfoNV) @@ -290,6 +308,7 @@ import {-# SOURCE #-} Vulkan.Core10.DeviceInitialization (FormatProperties) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2 (FormatProperties2) import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_format_feature_flags2 (FormatProperties3) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_fragment_shading_rate (FragmentShadingRateAttachmentInfoKHR) +import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_frame_boundary (FrameBoundaryEXT) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer (FramebufferAttachmentImageInfo) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer (FramebufferAttachmentsCreateInfo) import {-# SOURCE #-} Vulkan.Core10.Pass (FramebufferCreateInfo) @@ -300,12 +319,15 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_NV_ray_tracing (GeometryAABBNV) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_ray_tracing (GeometryDataNV) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_ray_tracing (GeometryNV) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_ray_tracing (GeometryTrianglesNV) +import {-# SOURCE #-} Vulkan.Extensions.VK_NV_low_latency2 (GetLatencyMarkerInfoNV) import {-# SOURCE #-} Vulkan.Core10.Pipeline (GraphicsPipelineCreateInfo) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_graphics_pipeline_library (GraphicsPipelineLibraryCreateInfoEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_device_generated_commands (GraphicsPipelineShaderGroupsCreateInfoNV) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_device_generated_commands (GraphicsShaderGroupCreateInfoNV) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_hdr_metadata (HdrMetadataEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_headless_surface (HeadlessSurfaceCreateInfoEXT) +import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_host_image_copy (HostImageCopyDevicePerformanceQueryEXT) +import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_host_image_copy (HostImageLayoutTransitionInfoEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_MVK_ios_surface (IOSSurfaceCreateInfoMVK) import {-# SOURCE #-} Vulkan.Core10.CommandBufferBuilding (ImageBlit) import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2 (ImageBlit2) @@ -333,10 +355,11 @@ import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2 (ImageRe import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2 (ImageSparseMemoryRequirementsInfo2) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_EXT_separate_stencil_usage (ImageStencilUsageCreateInfo) import {-# SOURCE #-} Vulkan.Core10.SparseResourceMemoryManagement (ImageSubresource) -import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_image_compression_control (ImageSubresource2EXT) +import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_maintenance5 (ImageSubresource2KHR) import {-# SOURCE #-} Vulkan.Core10.CommandBufferBuilding (ImageSubresourceLayers) import {-# SOURCE #-} Vulkan.Core10.ImageView (ImageSubresourceRange) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_swapchain (ImageSwapchainCreateInfoKHR) +import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_host_image_copy (ImageToMemoryCopyEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_astc_decode_mode (ImageViewASTCDecodeModeEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_NVX_image_view_handle (ImageViewAddressPropertiesNVX) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_descriptor_buffer (ImageViewCaptureDescriptorDataInfoEXT) @@ -359,6 +382,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_metal_objects (ImportMetalBufferI import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_metal_objects (ImportMetalIOSurfaceInfoEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_metal_objects (ImportMetalSharedEventInfoEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_metal_objects (ImportMetalTextureInfoEXT) +import {-# SOURCE #-} Vulkan.Extensions.VK_QNX_external_memory_screen_buffer (ImportScreenBufferInfoQNX) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_external_semaphore_fd (ImportSemaphoreFdInfoKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_external_semaphore_win32 (ImportSemaphoreWin32HandleInfoKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_FUCHSIA_external_semaphore (ImportSemaphoreZirconHandleInfoFUCHSIA) @@ -368,6 +392,11 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_NV_device_generated_commands (Indirec import {-# SOURCE #-} Vulkan.Extensions.VK_INTEL_performance_query (InitializePerformanceApiInfoINTEL) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_maintenance2 (InputAttachmentAspectReference) import {-# SOURCE #-} Vulkan.Core10.DeviceInitialization (InstanceCreateInfo) +import {-# SOURCE #-} Vulkan.Extensions.VK_NV_low_latency2 (LatencySleepInfoNV) +import {-# SOURCE #-} Vulkan.Extensions.VK_NV_low_latency2 (LatencySleepModeInfoNV) +import {-# SOURCE #-} Vulkan.Extensions.VK_NV_low_latency2 (LatencySubmissionPresentIdNV) +import {-# SOURCE #-} Vulkan.Extensions.VK_NV_low_latency2 (LatencySurfaceCapabilitiesNV) +import {-# SOURCE #-} Vulkan.Extensions.VK_NV_low_latency2 (LatencyTimingsFrameReportNV) import {-# SOURCE #-} Vulkan.Core10.LayerDiscovery (LayerProperties) import {-# SOURCE #-} Vulkan.Extensions.VK_MVK_macos_surface (MacOSSurfaceCreateInfoMVK) import {-# SOURCE #-} Vulkan.Core10.Memory (MappedMemoryRange) @@ -390,6 +419,7 @@ import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_buffer_device_address ( import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_memory_priority (MemoryPriorityAllocateInfoEXT) import {-# SOURCE #-} Vulkan.Core10.MemoryManagement (MemoryRequirements) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2 (MemoryRequirements2) +import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_host_image_copy (MemoryToImageCopyEXT) import {-# SOURCE #-} Vulkan.Core10.DeviceInitialization (MemoryType) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_map_memory2 (MemoryUnmapInfoKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_external_memory_win32 (MemoryWin32HandlePropertiesKHR) @@ -417,6 +447,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_NV_optical_flow (OpticalFlowImageForm import {-# SOURCE #-} Vulkan.Extensions.VK_NV_optical_flow (OpticalFlowImageFormatPropertiesNV) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_optical_flow (OpticalFlowSessionCreateInfoNV) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_optical_flow (OpticalFlowSessionCreatePrivateDataInfoNV) +import {-# SOURCE #-} Vulkan.Extensions.VK_NV_low_latency2 (OutOfBandQueueTypeInfoNV) import {-# SOURCE #-} Vulkan.Extensions.VK_GOOGLE_display_timing (PastPresentationTimingGOOGLE) import {-# SOURCE #-} Vulkan.Extensions.VK_INTEL_performance_query (PerformanceConfigurationAcquireInfoINTEL) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_performance_query (PerformanceCounterDescriptionKHR) @@ -434,6 +465,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_acceleration_structure (PhysicalD import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_acceleration_structure (PhysicalDeviceAccelerationStructurePropertiesKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_device_address_binding_report (PhysicalDeviceAddressBindingReportFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_SEC_amigo_profiling (PhysicalDeviceAmigoProfilingFeaturesSEC) +import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state (PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_attachment_feedback_loop_layout (PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_blend_operation_advanced (PhysicalDeviceBlendOperationAdvancedFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_blend_operation_advanced (PhysicalDeviceBlendOperationAdvancedPropertiesEXT) @@ -447,15 +479,20 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_color_write_enable (PhysicalDevic 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) +import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_cooperative_matrix (PhysicalDeviceCooperativeMatrixFeaturesKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_cooperative_matrix (PhysicalDeviceCooperativeMatrixFeaturesNV) +import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_cooperative_matrix (PhysicalDeviceCooperativeMatrixPropertiesKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_cooperative_matrix (PhysicalDeviceCooperativeMatrixPropertiesNV) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_copy_memory_indirect (PhysicalDeviceCopyMemoryIndirectFeaturesNV) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_copy_memory_indirect (PhysicalDeviceCopyMemoryIndirectPropertiesNV) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_corner_sampled_image (PhysicalDeviceCornerSampledImageFeaturesNV) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_coverage_reduction_mode (PhysicalDeviceCoverageReductionModeFeaturesNV) +import {-# SOURCE #-} Vulkan.Extensions.VK_QCOM_filter_cubic_clamp (PhysicalDeviceCubicClampFeaturesQCOM) +import {-# SOURCE #-} Vulkan.Extensions.VK_QCOM_filter_cubic_weights (PhysicalDeviceCubicWeightsFeaturesQCOM) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_custom_border_color (PhysicalDeviceCustomBorderColorFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_custom_border_color (PhysicalDeviceCustomBorderColorPropertiesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_dedicated_allocation_image_aliasing (PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV) +import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_depth_bias_control (PhysicalDeviceDepthBiasControlFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_depth_clamp_zero_one (PhysicalDeviceDepthClampZeroOneFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_depth_clip_control (PhysicalDeviceDepthClipControlFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_depth_clip_enable (PhysicalDeviceDepthClipEnableFeaturesEXT) @@ -465,7 +502,9 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_descriptor_buffer (PhysicalDevice import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_descriptor_buffer (PhysicalDeviceDescriptorBufferPropertiesEXT) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_EXT_descriptor_indexing (PhysicalDeviceDescriptorIndexingFeatures) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_EXT_descriptor_indexing (PhysicalDeviceDescriptorIndexingProperties) +import {-# SOURCE #-} Vulkan.Extensions.VK_NV_descriptor_pool_overallocation (PhysicalDeviceDescriptorPoolOverallocationFeaturesNV) import {-# SOURCE #-} Vulkan.Extensions.VK_VALVE_descriptor_set_host_mapping (PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE) +import {-# SOURCE #-} Vulkan.Extensions.VK_NV_device_generated_commands_compute (PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_device_generated_commands (PhysicalDeviceDeviceGeneratedCommandsFeaturesNV) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_device_generated_commands (PhysicalDeviceDeviceGeneratedCommandsPropertiesNV) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_device_memory_report (PhysicalDeviceDeviceMemoryReportFeaturesEXT) @@ -476,16 +515,22 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_NV_displacement_micromap (PhysicalDev import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_driver_properties (PhysicalDeviceDriverProperties) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_physical_device_drm (PhysicalDeviceDrmPropertiesEXT) import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering (PhysicalDeviceDynamicRenderingFeatures) +import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_dynamic_rendering_unused_attachments (PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_scissor_exclusive (PhysicalDeviceExclusiveScissorFeaturesNV) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_extended_dynamic_state2 (PhysicalDeviceExtendedDynamicState2FeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_extended_dynamic_state3 (PhysicalDeviceExtendedDynamicState3FeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_extended_dynamic_state3 (PhysicalDeviceExtendedDynamicState3PropertiesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_extended_dynamic_state (PhysicalDeviceExtendedDynamicStateFeaturesEXT) +import {-# SOURCE #-} Vulkan.Extensions.VK_NV_extended_sparse_address_space (PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV) +import {-# SOURCE #-} Vulkan.Extensions.VK_NV_extended_sparse_address_space (PhysicalDeviceExtendedSparseAddressSpacePropertiesNV) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_external_memory_capabilities (PhysicalDeviceExternalBufferInfo) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_external_fence_capabilities (PhysicalDeviceExternalFenceInfo) +import {-# SOURCE #-} Vulkan.Extensions.VK_ANDROID_external_format_resolve (PhysicalDeviceExternalFormatResolveFeaturesANDROID) +import {-# SOURCE #-} Vulkan.Extensions.VK_ANDROID_external_format_resolve (PhysicalDeviceExternalFormatResolvePropertiesANDROID) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_external_memory_capabilities (PhysicalDeviceExternalImageFormatInfo) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_external_memory_host (PhysicalDeviceExternalMemoryHostPropertiesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_external_memory_rdma (PhysicalDeviceExternalMemoryRDMAFeaturesNV) +import {-# SOURCE #-} Vulkan.Extensions.VK_QNX_external_memory_screen_buffer (PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_external_semaphore_capabilities (PhysicalDeviceExternalSemaphoreInfo) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_device_fault (PhysicalDeviceFaultFeaturesEXT) import {-# SOURCE #-} Vulkan.Core10.DeviceInitialization (PhysicalDeviceFeatures) @@ -505,10 +550,13 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_NV_fragment_shading_rate_enums (Physi import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_fragment_shading_rate (PhysicalDeviceFragmentShadingRateFeaturesKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_fragment_shading_rate (PhysicalDeviceFragmentShadingRateKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_fragment_shading_rate (PhysicalDeviceFragmentShadingRatePropertiesKHR) +import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_frame_boundary (PhysicalDeviceFrameBoundaryFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_global_priority (PhysicalDeviceGlobalPriorityQueryFeaturesKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_graphics_pipeline_library (PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_graphics_pipeline_library (PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_device_group_creation (PhysicalDeviceGroupProperties) +import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_host_image_copy (PhysicalDeviceHostImageCopyFeaturesEXT) +import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_host_image_copy (PhysicalDeviceHostImageCopyPropertiesEXT) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_EXT_host_query_reset (PhysicalDeviceHostQueryResetFeatures) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_external_memory_capabilities (PhysicalDeviceIDProperties) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_image_2d_view_of_3d (PhysicalDeviceImage2DViewOf3DFeaturesEXT) @@ -516,6 +564,8 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_image_compression_control (Physic import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_image_compression_control_swapchain (PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_image_drm_format_modifier (PhysicalDeviceImageDrmFormatModifierInfoEXT) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2 (PhysicalDeviceImageFormatInfo2) +import {-# SOURCE #-} Vulkan.Extensions.VK_QCOM_image_processing2 (PhysicalDeviceImageProcessing2FeaturesQCOM) +import {-# SOURCE #-} Vulkan.Extensions.VK_QCOM_image_processing2 (PhysicalDeviceImageProcessing2PropertiesQCOM) import {-# SOURCE #-} Vulkan.Extensions.VK_QCOM_image_processing (PhysicalDeviceImageProcessingFeaturesQCOM) import {-# SOURCE #-} Vulkan.Extensions.VK_QCOM_image_processing (PhysicalDeviceImageProcessingPropertiesQCOM) import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_image_robustness (PhysicalDeviceImageRobustnessFeatures) @@ -528,6 +578,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_NV_inherited_viewport_scissor (Physic import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_inline_uniform_block (PhysicalDeviceInlineUniformBlockFeatures) import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_inline_uniform_block (PhysicalDeviceInlineUniformBlockProperties) import {-# SOURCE #-} Vulkan.Extensions.VK_HUAWEI_invocation_mask (PhysicalDeviceInvocationMaskFeaturesHUAWEI) +import {-# SOURCE #-} Vulkan.Extensions.VK_MSFT_layered_driver (PhysicalDeviceLayeredDriverPropertiesMSFT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_legacy_dithering (PhysicalDeviceLegacyDitheringFeaturesEXT) import {-# SOURCE #-} Vulkan.Core10.DeviceInitialization (PhysicalDeviceLimits) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_line_rasterization (PhysicalDeviceLineRasterizationFeaturesEXT) @@ -536,6 +587,8 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_NV_linear_color_attachment (PhysicalD import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_maintenance3 (PhysicalDeviceMaintenance3Properties) import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_maintenance4 (PhysicalDeviceMaintenance4Features) import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_maintenance4 (PhysicalDeviceMaintenance4Properties) +import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_maintenance5 (PhysicalDeviceMaintenance5FeaturesKHR) +import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_maintenance5 (PhysicalDeviceMaintenance5PropertiesKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_memory_budget (PhysicalDeviceMemoryBudgetPropertiesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_memory_decompression (PhysicalDeviceMemoryDecompressionFeaturesNV) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_memory_decompression (PhysicalDeviceMemoryDecompressionPropertiesNV) @@ -555,6 +608,8 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_QCOM_multiview_per_view_render_areas import {-# SOURCE #-} Vulkan.Extensions.VK_QCOM_multiview_per_view_viewports (PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_multiview (PhysicalDeviceMultiviewProperties) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_mutable_descriptor_type (PhysicalDeviceMutableDescriptorTypeFeaturesEXT) +import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_nested_command_buffer (PhysicalDeviceNestedCommandBufferFeaturesEXT) +import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_nested_command_buffer (PhysicalDeviceNestedCommandBufferPropertiesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_non_seamless_cube_map (PhysicalDeviceNonSeamlessCubeMapFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_opacity_micromap (PhysicalDeviceOpacityMicromapFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_opacity_micromap (PhysicalDeviceOpacityMicromapPropertiesEXT) @@ -596,6 +651,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_ray_tracing_maintenance1 (Physica import {-# SOURCE #-} Vulkan.Extensions.VK_NV_ray_tracing_motion_blur (PhysicalDeviceRayTracingMotionBlurFeaturesNV) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_ray_tracing_pipeline (PhysicalDeviceRayTracingPipelineFeaturesKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_ray_tracing_pipeline (PhysicalDeviceRayTracingPipelinePropertiesKHR) +import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_ray_tracing_position_fetch (PhysicalDeviceRayTracingPositionFetchFeaturesKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_ray_tracing (PhysicalDeviceRayTracingPropertiesNV) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_representative_fragment_test (PhysicalDeviceRepresentativeFragmentTestFeaturesNV) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_robustness2 (PhysicalDeviceRobustness2FeaturesEXT) @@ -617,6 +673,8 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_ARM_shader_core_properties (PhysicalD import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_shader_demote_to_helper_invocation (PhysicalDeviceShaderDemoteToHelperInvocationFeatures) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_shader_draw_parameters (PhysicalDeviceShaderDrawParametersFeatures) import {-# SOURCE #-} Vulkan.Extensions.VK_AMD_shader_early_and_late_fragment_tests (PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD) +import {-# SOURCE #-} Vulkan.Extensions.VK_AMDX_shader_enqueue (PhysicalDeviceShaderEnqueueFeaturesAMDX) +import {-# SOURCE #-} Vulkan.Extensions.VK_AMDX_shader_enqueue (PhysicalDeviceShaderEnqueuePropertiesAMDX) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_shader_float16_int8 (PhysicalDeviceShaderFloat16Int8Features) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_shader_image_atomic_int64 (PhysicalDeviceShaderImageAtomicInt64FeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_shader_image_footprint (PhysicalDeviceShaderImageFootprintFeaturesNV) @@ -670,6 +728,7 @@ import {-# SOURCE #-} Vulkan.Core13 (PhysicalDeviceVulkan13Properties) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_vulkan_memory_model (PhysicalDeviceVulkanMemoryModelFeatures) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_workgroup_memory_explicit_layout (PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_ycbcr_2plane_444_formats (PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT) +import {-# SOURCE #-} Vulkan.Extensions.VK_QCOM_ycbcr_degamma (PhysicalDeviceYcbcrDegammaFeaturesQCOM) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_ycbcr_image_arrays (PhysicalDeviceYcbcrImageArraysFeaturesEXT) import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_zero_initialize_workgroup_memory (PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures) import {-# SOURCE #-} Vulkan.Core10.PipelineCache (PipelineCacheCreateInfo) @@ -682,6 +741,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_AMD_pipeline_compiler_control (Pipeli import {-# SOURCE #-} Vulkan.Extensions.VK_NV_framebuffer_mixed_samples (PipelineCoverageModulationStateCreateInfoNV) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_coverage_reduction_mode (PipelineCoverageReductionStateCreateInfoNV) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_fragment_coverage_to_color (PipelineCoverageToColorStateCreateInfoNV) +import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_maintenance5 (PipelineCreateFlags2CreateInfoKHR) import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_pipeline_creation_feedback (PipelineCreationFeedback) import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_pipeline_creation_feedback (PipelineCreationFeedbackCreateInfo) import {-# SOURCE #-} Vulkan.Core10.Pipeline (PipelineDepthStencilStateCreateInfo) @@ -693,6 +753,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_pipeline_executable_properties (P import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_pipeline_executable_properties (PipelineExecutableStatisticKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_fragment_shading_rate_enums (PipelineFragmentShadingRateEnumStateCreateInfoNV) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_fragment_shading_rate (PipelineFragmentShadingRateStateCreateInfoKHR) +import {-# SOURCE #-} Vulkan.Extensions.VK_NV_device_generated_commands_compute (PipelineIndirectDeviceAddressInfoNV) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_pipeline_executable_properties (PipelineInfoKHR) import {-# SOURCE #-} Vulkan.Core10.Pipeline (PipelineInputAssemblyStateCreateInfo) import {-# SOURCE #-} Vulkan.Core10.PipelineLayout (PipelineLayoutCreateInfo) @@ -712,6 +773,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_pipeline_robustness (PipelineRobu import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_sample_locations (PipelineSampleLocationsStateCreateInfoEXT) import {-# SOURCE #-} Vulkan.Core10.Pipeline (PipelineShaderStageCreateInfo) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_shader_module_identifier (PipelineShaderStageModuleIdentifierCreateInfoEXT) +import {-# SOURCE #-} Vulkan.Extensions.VK_AMDX_shader_enqueue (PipelineShaderStageNodeCreateInfoAMDX) import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_subgroup_size_control (PipelineShaderStageRequiredSubgroupSizeCreateInfo) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_maintenance2 (PipelineTessellationDomainOriginStateCreateInfo) import {-# SOURCE #-} Vulkan.Core10.Pipeline (PipelineTessellationStateCreateInfo) @@ -766,6 +828,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_sample_locations (RenderPassSampl import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_subpass_merge_feedback (RenderPassSubpassFeedbackCreateInfoEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_subpass_merge_feedback (RenderPassSubpassFeedbackInfoEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_QCOM_render_pass_transform (RenderPassTransformBeginInfoQCOM) +import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_maintenance5 (RenderingAreaInfoKHR) import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering (RenderingAttachmentInfo) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_dynamic_rendering (RenderingFragmentDensityMapAttachmentInfoEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_dynamic_rendering (RenderingFragmentShadingRateAttachmentInfoKHR) @@ -774,14 +837,19 @@ import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2 (Resolve import {-# SOURCE #-} Vulkan.Extensions.VK_NV_ray_tracing_motion_blur (SRTDataNV) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_sample_locations (SampleLocationEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_sample_locations (SampleLocationsInfoEXT) +import {-# SOURCE #-} Vulkan.Extensions.VK_QCOM_image_processing2 (SamplerBlockMatchWindowCreateInfoQCOM) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_border_color_swizzle (SamplerBorderColorComponentMappingCreateInfoEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_descriptor_buffer (SamplerCaptureDescriptorDataInfoEXT) import {-# SOURCE #-} Vulkan.Core10.Sampler (SamplerCreateInfo) +import {-# SOURCE #-} Vulkan.Extensions.VK_QCOM_filter_cubic_weights (SamplerCubicWeightsCreateInfoQCOM) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_custom_border_color (SamplerCustomBorderColorCreateInfoEXT) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax (SamplerReductionModeCreateInfo) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion (SamplerYcbcrConversionCreateInfo) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion (SamplerYcbcrConversionImageFormatProperties) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion (SamplerYcbcrConversionInfo) +import {-# SOURCE #-} Vulkan.Extensions.VK_QCOM_ycbcr_degamma (SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM) +import {-# SOURCE #-} Vulkan.Extensions.VK_QNX_external_memory_screen_buffer (ScreenBufferFormatPropertiesQNX) +import {-# SOURCE #-} Vulkan.Extensions.VK_QNX_external_memory_screen_buffer (ScreenBufferPropertiesQNX) import {-# SOURCE #-} Vulkan.Extensions.VK_QNX_screen_surface (ScreenSurfaceCreateInfoQNX) import {-# SOURCE #-} Vulkan.Core10.QueueSemaphore (SemaphoreCreateInfo) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_external_semaphore_fd (SemaphoreGetFdInfoKHR) @@ -791,6 +859,7 @@ import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore (Sem import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_synchronization2 (SemaphoreSubmitInfo) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore (SemaphoreTypeCreateInfo) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore (SemaphoreWaitInfo) +import {-# SOURCE #-} Vulkan.Extensions.VK_NV_low_latency2 (SetLatencyMarkerInfoNV) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_device_generated_commands (SetStateFlagsIndirectCommandNV) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_shader_object (ShaderCreateInfoEXT) import {-# SOURCE #-} Vulkan.Core10.Shader (ShaderModuleCreateInfo) @@ -829,8 +898,9 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_QCOM_fragment_density_map_offset (Sub import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled (SubpassResolvePerformanceQueryEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_sample_locations (SubpassSampleLocationsEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_HUAWEI_subpass_shading (SubpassShadingPipelineCreateInfoHUAWEI) +import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_host_image_copy (SubresourceHostMemcpySizeEXT) import {-# SOURCE #-} Vulkan.Core10.Image (SubresourceLayout) -import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_image_compression_control (SubresourceLayout2EXT) +import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_maintenance5 (SubresourceLayout2KHR) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_display_surface_counter (SurfaceCapabilities2EXT) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_get_surface_capabilities2 (SurfaceCapabilities2KHR) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_full_screen_exclusive (SurfaceCapabilitiesFullScreenExclusiveEXT) @@ -847,6 +917,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_surface_protected_capabilities (S import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_display_control (SwapchainCounterCreateInfoEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_swapchain (SwapchainCreateInfoKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_AMD_display_native_hdr (SwapchainDisplayNativeHdrCreateInfoAMD) +import {-# SOURCE #-} Vulkan.Extensions.VK_NV_low_latency2 (SwapchainLatencyCreateInfoNV) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_present_barrier (SwapchainPresentBarrierCreateInfoNV) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_swapchain_maintenance1 (SwapchainPresentFenceInfoEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_swapchain_maintenance1 (SwapchainPresentModeInfoEXT) @@ -1002,6 +1073,8 @@ type family Extends (a :: [Type] -> Type) (b :: Type) :: Constraint where Extends AccelerationStructureGeometryTrianglesDataKHR AccelerationStructureTrianglesDisplacementMicromapNV = () Extends AndroidHardwareBufferPropertiesANDROID AndroidHardwareBufferFormatPropertiesANDROID = () Extends AndroidHardwareBufferPropertiesANDROID AndroidHardwareBufferFormatProperties2ANDROID = () + Extends AndroidHardwareBufferPropertiesANDROID AndroidHardwareBufferFormatResolvePropertiesANDROID = () + Extends AttachmentDescription2 ExternalFormatANDROID = () Extends AttachmentDescription2 AttachmentDescriptionStencilLayout = () Extends AttachmentReference2 AttachmentReferenceStencilLayout = () Extends BindBufferMemoryInfo BindBufferMemoryDeviceGroupInfo = () @@ -1010,6 +1083,9 @@ type family Extends (a :: [Type] -> Type) (b :: Type) :: Constraint where Extends BindImageMemoryInfo BindImagePlaneMemoryInfo = () Extends BindSparseInfo DeviceGroupBindSparseInfo = () Extends BindSparseInfo TimelineSemaphoreSubmitInfo = () + Extends BindSparseInfo FrameBoundaryEXT = () + Extends BlitImageInfo2 BlitImageCubicWeightsInfoQCOM = () + Extends BufferCreateInfo BufferUsageFlags2CreateInfoKHR = () Extends BufferCreateInfo DedicatedAllocationBufferCreateInfoNV = () Extends BufferCreateInfo ExternalMemoryBufferCreateInfo = () Extends BufferCreateInfo BufferOpaqueCaptureAddressCreateInfo = () @@ -1017,19 +1093,26 @@ type family Extends (a :: [Type] -> Type) (b :: Type) :: Constraint where Extends BufferCreateInfo OpaqueCaptureDescriptorDataCreateInfoEXT = () Extends BufferCreateInfo BufferCollectionBufferCreateInfoFUCHSIA = () Extends BufferImageCopy2 CopyCommandTransformInfoQCOM = () + Extends BufferMemoryBarrier ExternalMemoryAcquireUnmodifiedEXT = () + Extends BufferMemoryBarrier2 ExternalMemoryAcquireUnmodifiedEXT = () + Extends BufferViewCreateInfo BufferUsageFlags2CreateInfoKHR = () Extends BufferViewCreateInfo ExportMetalObjectCreateInfoEXT = () Extends CommandBufferBeginInfo DeviceGroupCommandBufferBeginInfo = () Extends CommandBufferInheritanceInfo CommandBufferInheritanceConditionalRenderingInfoEXT = () + Extends CommandBufferInheritanceInfo ExternalFormatANDROID = () Extends CommandBufferInheritanceInfo CommandBufferInheritanceRenderPassTransformInfoQCOM = () Extends CommandBufferInheritanceInfo CommandBufferInheritanceViewportScissorInfoNV = () Extends CommandBufferInheritanceInfo CommandBufferInheritanceRenderingInfo = () Extends CommandBufferInheritanceInfo AttachmentSampleCountInfoAMD = () Extends CommandBufferInheritanceInfo MultiviewPerViewAttributesInfoNVX = () + Extends ComputePipelineCreateInfo PipelineCreateFlags2CreateInfoKHR = () Extends ComputePipelineCreateInfo PipelineCreationFeedbackCreateInfo = () Extends ComputePipelineCreateInfo SubpassShadingPipelineCreateInfoHUAWEI = () Extends ComputePipelineCreateInfo PipelineCompilerControlCreateInfoAMD = () Extends ComputePipelineCreateInfo PipelineRobustnessCreateInfoEXT = () Extends DebugUtilsMessengerCallbackDataEXT DeviceAddressBindingCallbackDataEXT = () + Extends DepthBiasInfoEXT DepthBiasRepresentationInfoEXT = () + Extends DescriptorBufferBindingInfoEXT BufferUsageFlags2CreateInfoKHR = () Extends DescriptorBufferBindingInfoEXT DescriptorBufferBindingPushDescriptorBufferHandleEXT = () Extends DescriptorPoolCreateInfo DescriptorPoolInlineUniformBlockCreateInfo = () Extends DescriptorPoolCreateInfo MutableDescriptorTypeCreateInfoEXT = () @@ -1038,6 +1121,7 @@ type family Extends (a :: [Type] -> Type) (b :: Type) :: Constraint where Extends DescriptorSetLayoutCreateInfo MutableDescriptorTypeCreateInfoEXT = () Extends DescriptorSetLayoutSupport DescriptorSetVariableDescriptorCountLayoutSupport = () Extends DeviceCreateInfo PhysicalDeviceDeviceGeneratedCommandsFeaturesNV = () + Extends DeviceCreateInfo PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV = () Extends DeviceCreateInfo DevicePrivateDataCreateInfo = () Extends DeviceCreateInfo PhysicalDevicePrivateDataFeatures = () Extends DeviceCreateInfo (PhysicalDeviceFeatures2 '[]) = () @@ -1054,6 +1138,7 @@ type family Extends (a :: [Type] -> Type) (b :: Type) :: Constraint where Extends DeviceCreateInfo PhysicalDeviceMultiDrawFeaturesEXT = () Extends DeviceCreateInfo PhysicalDeviceInlineUniformBlockFeatures = () Extends DeviceCreateInfo PhysicalDeviceMaintenance4Features = () + Extends DeviceCreateInfo PhysicalDeviceMaintenance5FeaturesKHR = () Extends DeviceCreateInfo PhysicalDeviceShaderDrawParametersFeatures = () Extends DeviceCreateInfo PhysicalDeviceShaderFloat16Int8Features = () Extends DeviceCreateInfo PhysicalDeviceHostQueryResetFeatures = () @@ -1144,12 +1229,14 @@ type family Extends (a :: [Type] -> Type) (b :: Type) :: Constraint where Extends DeviceCreateInfo PhysicalDeviceFragmentShadingRateEnumsFeaturesNV = () Extends DeviceCreateInfo PhysicalDeviceImage2DViewOf3DFeaturesEXT = () Extends DeviceCreateInfo PhysicalDeviceImageSlicedViewOf3DFeaturesEXT = () + Extends DeviceCreateInfo PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT = () Extends DeviceCreateInfo PhysicalDeviceMutableDescriptorTypeFeaturesEXT = () Extends DeviceCreateInfo PhysicalDeviceDepthClipControlFeaturesEXT = () Extends DeviceCreateInfo PhysicalDeviceVertexInputDynamicStateFeaturesEXT = () Extends DeviceCreateInfo PhysicalDeviceExternalMemoryRDMAFeaturesNV = () Extends DeviceCreateInfo PhysicalDeviceColorWriteEnableFeaturesEXT = () Extends DeviceCreateInfo PhysicalDeviceSynchronization2Features = () + Extends DeviceCreateInfo PhysicalDeviceHostImageCopyFeaturesEXT = () Extends DeviceCreateInfo PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT = () Extends DeviceCreateInfo PhysicalDeviceLegacyDitheringFeaturesEXT = () Extends DeviceCreateInfo PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT = () @@ -1168,6 +1255,7 @@ type family Extends (a :: [Type] -> Type) (b :: Type) :: Constraint where Extends DeviceCreateInfo PhysicalDeviceLinearColorAttachmentFeaturesNV = () Extends DeviceCreateInfo PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT = () Extends DeviceCreateInfo PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE = () + Extends DeviceCreateInfo PhysicalDeviceNestedCommandBufferFeaturesEXT = () Extends DeviceCreateInfo PhysicalDeviceShaderModuleIdentifierFeaturesEXT = () Extends DeviceCreateInfo PhysicalDeviceImageCompressionControlFeaturesEXT = () Extends DeviceCreateInfo PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT = () @@ -1188,15 +1276,31 @@ type family Extends (a :: [Type] -> Type) (b :: Type) :: Constraint where Extends DeviceCreateInfo PhysicalDeviceFaultFeaturesEXT = () Extends DeviceCreateInfo PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT = () Extends DeviceCreateInfo PhysicalDeviceShaderCoreBuiltinsFeaturesARM = () + Extends DeviceCreateInfo PhysicalDeviceFrameBoundaryFeaturesEXT = () + Extends DeviceCreateInfo PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT = () Extends DeviceCreateInfo PhysicalDeviceSwapchainMaintenance1FeaturesEXT = () + Extends DeviceCreateInfo PhysicalDeviceDepthBiasControlFeaturesEXT = () Extends DeviceCreateInfo PhysicalDeviceRayTracingInvocationReorderFeaturesNV = () + Extends DeviceCreateInfo PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV = () Extends DeviceCreateInfo PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM = () + Extends DeviceCreateInfo PhysicalDeviceRayTracingPositionFetchFeaturesKHR = () Extends DeviceCreateInfo PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM = () Extends DeviceCreateInfo PhysicalDeviceShaderObjectFeaturesEXT = () Extends DeviceCreateInfo PhysicalDeviceShaderTileImageFeaturesEXT = () + Extends DeviceCreateInfo PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX = () + Extends DeviceCreateInfo PhysicalDeviceCooperativeMatrixFeaturesKHR = () + Extends DeviceCreateInfo PhysicalDeviceShaderEnqueueFeaturesAMDX = () + Extends DeviceCreateInfo PhysicalDeviceCubicClampFeaturesQCOM = () + Extends DeviceCreateInfo PhysicalDeviceYcbcrDegammaFeaturesQCOM = () + Extends DeviceCreateInfo PhysicalDeviceCubicWeightsFeaturesQCOM = () + Extends DeviceCreateInfo PhysicalDeviceImageProcessing2FeaturesQCOM = () + Extends DeviceCreateInfo PhysicalDeviceDescriptorPoolOverallocationFeaturesNV = () + Extends DeviceCreateInfo PhysicalDeviceExternalFormatResolveFeaturesANDROID = () Extends DeviceQueueCreateInfo DeviceQueueGlobalPriorityCreateInfoKHR = () Extends EventCreateInfo ExportMetalObjectCreateInfoEXT = () Extends EventCreateInfo ImportMetalSharedEventInfoEXT = () + Extends ExecutionGraphPipelineCreateInfoAMDX PipelineCreationFeedbackCreateInfo = () + Extends ExecutionGraphPipelineCreateInfoAMDX PipelineCompilerControlCreateInfoAMD = () Extends ExportMetalObjectsInfoEXT ExportMetalDeviceInfoEXT = () Extends ExportMetalObjectsInfoEXT ExportMetalCommandQueueInfoEXT = () Extends ExportMetalObjectsInfoEXT ExportMetalBufferInfoEXT = () @@ -1210,8 +1314,10 @@ type family Extends (a :: [Type] -> Type) (b :: Type) :: Constraint where Extends FormatProperties2 FormatProperties3 = () Extends FormatProperties2 DrmFormatModifierPropertiesList2EXT = () Extends FramebufferCreateInfo FramebufferAttachmentsCreateInfo = () + Extends GraphicsPipelineCreateInfo PipelineCreateFlags2CreateInfoKHR = () Extends GraphicsPipelineCreateInfo GraphicsPipelineShaderGroupsCreateInfoNV = () Extends GraphicsPipelineCreateInfo PipelineDiscardRectangleStateCreateInfoEXT = () + Extends GraphicsPipelineCreateInfo ExternalFormatANDROID = () Extends GraphicsPipelineCreateInfo PipelineRepresentativeFragmentTestStateCreateInfoNV = () Extends GraphicsPipelineCreateInfo PipelineCreationFeedbackCreateInfo = () Extends GraphicsPipelineCreateInfo PipelineCompilerControlCreateInfoAMD = () @@ -1240,14 +1346,18 @@ type family Extends (a :: [Type] -> Type) (b :: Type) :: Constraint where Extends ImageCreateInfo ImportMetalTextureInfoEXT = () Extends ImageCreateInfo ImportMetalIOSurfaceInfoEXT = () Extends ImageCreateInfo OpticalFlowImageFormatInfoNV = () + Extends ImageCreateInfo ExternalFormatQNX = () Extends ImageFormatProperties2 ExternalImageFormatProperties = () Extends ImageFormatProperties2 SamplerYcbcrConversionImageFormatProperties = () Extends ImageFormatProperties2 TextureLODGatherFormatPropertiesAMD = () Extends ImageFormatProperties2 AndroidHardwareBufferUsageANDROID = () Extends ImageFormatProperties2 FilterCubicImageViewImageFormatPropertiesEXT = () + Extends ImageFormatProperties2 HostImageCopyDevicePerformanceQueryEXT = () Extends ImageFormatProperties2 ImageCompressionPropertiesEXT = () Extends ImageMemoryBarrier SampleLocationsInfoEXT = () + Extends ImageMemoryBarrier ExternalMemoryAcquireUnmodifiedEXT = () Extends ImageMemoryBarrier2 SampleLocationsInfoEXT = () + Extends ImageMemoryBarrier2 ExternalMemoryAcquireUnmodifiedEXT = () Extends ImageMemoryRequirementsInfo2 ImagePlaneMemoryRequirementsInfo = () Extends ImageViewCreateInfo ImageViewUsageCreateInfo = () Extends ImageViewCreateInfo ImageViewSlicedCreateInfoEXT = () @@ -1281,10 +1391,13 @@ type family Extends (a :: [Type] -> Type) (b :: Type) :: Constraint where Extends MemoryAllocateInfo ImportMemoryBufferCollectionFUCHSIA = () Extends MemoryAllocateInfo ExportMetalObjectCreateInfoEXT = () Extends MemoryAllocateInfo ImportMetalBufferInfoEXT = () + Extends MemoryAllocateInfo ImportScreenBufferInfoQNX = () Extends MemoryRequirements2 MemoryDedicatedRequirements = () Extends OpticalFlowSessionCreateInfoNV OpticalFlowSessionCreatePrivateDataInfoNV = () + Extends PhysicalDeviceExternalBufferInfo BufferUsageFlags2CreateInfoKHR = () Extends PhysicalDeviceExternalSemaphoreInfo SemaphoreTypeCreateInfo = () Extends PhysicalDeviceFeatures2 PhysicalDeviceDeviceGeneratedCommandsFeaturesNV = () + Extends PhysicalDeviceFeatures2 PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV = () Extends PhysicalDeviceFeatures2 PhysicalDevicePrivateDataFeatures = () Extends PhysicalDeviceFeatures2 PhysicalDeviceVariablePointersFeatures = () Extends PhysicalDeviceFeatures2 PhysicalDeviceMultiviewFeatures = () @@ -1298,6 +1411,7 @@ type family Extends (a :: [Type] -> Type) (b :: Type) :: Constraint where Extends PhysicalDeviceFeatures2 PhysicalDeviceMultiDrawFeaturesEXT = () Extends PhysicalDeviceFeatures2 PhysicalDeviceInlineUniformBlockFeatures = () Extends PhysicalDeviceFeatures2 PhysicalDeviceMaintenance4Features = () + Extends PhysicalDeviceFeatures2 PhysicalDeviceMaintenance5FeaturesKHR = () Extends PhysicalDeviceFeatures2 PhysicalDeviceShaderDrawParametersFeatures = () Extends PhysicalDeviceFeatures2 PhysicalDeviceShaderFloat16Int8Features = () Extends PhysicalDeviceFeatures2 PhysicalDeviceHostQueryResetFeatures = () @@ -1385,12 +1499,14 @@ type family Extends (a :: [Type] -> Type) (b :: Type) :: Constraint where Extends PhysicalDeviceFeatures2 PhysicalDeviceFragmentShadingRateEnumsFeaturesNV = () Extends PhysicalDeviceFeatures2 PhysicalDeviceImage2DViewOf3DFeaturesEXT = () Extends PhysicalDeviceFeatures2 PhysicalDeviceImageSlicedViewOf3DFeaturesEXT = () + Extends PhysicalDeviceFeatures2 PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT = () Extends PhysicalDeviceFeatures2 PhysicalDeviceMutableDescriptorTypeFeaturesEXT = () Extends PhysicalDeviceFeatures2 PhysicalDeviceDepthClipControlFeaturesEXT = () Extends PhysicalDeviceFeatures2 PhysicalDeviceVertexInputDynamicStateFeaturesEXT = () Extends PhysicalDeviceFeatures2 PhysicalDeviceExternalMemoryRDMAFeaturesNV = () Extends PhysicalDeviceFeatures2 PhysicalDeviceColorWriteEnableFeaturesEXT = () Extends PhysicalDeviceFeatures2 PhysicalDeviceSynchronization2Features = () + Extends PhysicalDeviceFeatures2 PhysicalDeviceHostImageCopyFeaturesEXT = () Extends PhysicalDeviceFeatures2 PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT = () Extends PhysicalDeviceFeatures2 PhysicalDeviceLegacyDitheringFeaturesEXT = () Extends PhysicalDeviceFeatures2 PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT = () @@ -1409,6 +1525,7 @@ type family Extends (a :: [Type] -> Type) (b :: Type) :: Constraint where Extends PhysicalDeviceFeatures2 PhysicalDeviceLinearColorAttachmentFeaturesNV = () Extends PhysicalDeviceFeatures2 PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT = () Extends PhysicalDeviceFeatures2 PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE = () + Extends PhysicalDeviceFeatures2 PhysicalDeviceNestedCommandBufferFeaturesEXT = () Extends PhysicalDeviceFeatures2 PhysicalDeviceShaderModuleIdentifierFeaturesEXT = () Extends PhysicalDeviceFeatures2 PhysicalDeviceImageCompressionControlFeaturesEXT = () Extends PhysicalDeviceFeatures2 PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT = () @@ -1429,12 +1546,26 @@ type family Extends (a :: [Type] -> Type) (b :: Type) :: Constraint where Extends PhysicalDeviceFeatures2 PhysicalDeviceFaultFeaturesEXT = () Extends PhysicalDeviceFeatures2 PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT = () Extends PhysicalDeviceFeatures2 PhysicalDeviceShaderCoreBuiltinsFeaturesARM = () + Extends PhysicalDeviceFeatures2 PhysicalDeviceFrameBoundaryFeaturesEXT = () + Extends PhysicalDeviceFeatures2 PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT = () Extends PhysicalDeviceFeatures2 PhysicalDeviceSwapchainMaintenance1FeaturesEXT = () + Extends PhysicalDeviceFeatures2 PhysicalDeviceDepthBiasControlFeaturesEXT = () Extends PhysicalDeviceFeatures2 PhysicalDeviceRayTracingInvocationReorderFeaturesNV = () + Extends PhysicalDeviceFeatures2 PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV = () Extends PhysicalDeviceFeatures2 PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM = () + Extends PhysicalDeviceFeatures2 PhysicalDeviceRayTracingPositionFetchFeaturesKHR = () Extends PhysicalDeviceFeatures2 PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM = () Extends PhysicalDeviceFeatures2 PhysicalDeviceShaderObjectFeaturesEXT = () Extends PhysicalDeviceFeatures2 PhysicalDeviceShaderTileImageFeaturesEXT = () + Extends PhysicalDeviceFeatures2 PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX = () + Extends PhysicalDeviceFeatures2 PhysicalDeviceCooperativeMatrixFeaturesKHR = () + Extends PhysicalDeviceFeatures2 PhysicalDeviceShaderEnqueueFeaturesAMDX = () + Extends PhysicalDeviceFeatures2 PhysicalDeviceCubicClampFeaturesQCOM = () + Extends PhysicalDeviceFeatures2 PhysicalDeviceYcbcrDegammaFeaturesQCOM = () + Extends PhysicalDeviceFeatures2 PhysicalDeviceCubicWeightsFeaturesQCOM = () + Extends PhysicalDeviceFeatures2 PhysicalDeviceImageProcessing2FeaturesQCOM = () + Extends PhysicalDeviceFeatures2 PhysicalDeviceDescriptorPoolOverallocationFeaturesNV = () + Extends PhysicalDeviceFeatures2 PhysicalDeviceExternalFormatResolveFeaturesANDROID = () Extends PhysicalDeviceImageFormatInfo2 PhysicalDeviceExternalImageFormatInfo = () Extends PhysicalDeviceImageFormatInfo2 ImageFormatListCreateInfo = () Extends PhysicalDeviceImageFormatInfo2 PhysicalDeviceImageDrmFormatModifierInfoEXT = () @@ -1460,6 +1591,7 @@ type family Extends (a :: [Type] -> Type) (b :: Type) :: Constraint where Extends PhysicalDeviceProperties2 PhysicalDeviceInlineUniformBlockProperties = () Extends PhysicalDeviceProperties2 PhysicalDeviceMaintenance3Properties = () Extends PhysicalDeviceProperties2 PhysicalDeviceMaintenance4Properties = () + Extends PhysicalDeviceProperties2 PhysicalDeviceMaintenance5PropertiesKHR = () Extends PhysicalDeviceProperties2 PhysicalDeviceFloatControlsProperties = () Extends PhysicalDeviceProperties2 PhysicalDeviceExternalMemoryHostPropertiesEXT = () Extends PhysicalDeviceProperties2 PhysicalDeviceConservativeRasterizationPropertiesEXT = () @@ -1499,6 +1631,7 @@ type family Extends (a :: [Type] -> Type) (b :: Type) :: Constraint where Extends PhysicalDeviceProperties2 PhysicalDevicePortabilitySubsetPropertiesKHR = () Extends PhysicalDeviceProperties2 PhysicalDeviceFragmentShadingRatePropertiesKHR = () Extends PhysicalDeviceProperties2 PhysicalDeviceFragmentShadingRateEnumsPropertiesNV = () + Extends PhysicalDeviceProperties2 PhysicalDeviceHostImageCopyPropertiesEXT = () Extends PhysicalDeviceProperties2 PhysicalDeviceProvokingVertexPropertiesEXT = () Extends PhysicalDeviceProperties2 PhysicalDeviceDescriptorBufferPropertiesEXT = () Extends PhysicalDeviceProperties2 PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT = () @@ -1506,6 +1639,7 @@ type family Extends (a :: [Type] -> Type) (b :: Type) :: Constraint where Extends PhysicalDeviceProperties2 PhysicalDeviceDrmPropertiesEXT = () Extends PhysicalDeviceProperties2 PhysicalDeviceFragmentShaderBarycentricPropertiesKHR = () Extends PhysicalDeviceProperties2 PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT = () + Extends PhysicalDeviceProperties2 PhysicalDeviceNestedCommandBufferPropertiesEXT = () Extends PhysicalDeviceProperties2 PhysicalDeviceShaderModuleIdentifierPropertiesEXT = () Extends PhysicalDeviceProperties2 PhysicalDeviceOpacityMicromapPropertiesEXT = () Extends PhysicalDeviceProperties2 PhysicalDeviceDisplacementMicromapPropertiesNV = () @@ -1514,9 +1648,15 @@ type family Extends (a :: [Type] -> Type) (b :: Type) :: Constraint where Extends PhysicalDeviceProperties2 PhysicalDeviceOpticalFlowPropertiesNV = () Extends PhysicalDeviceProperties2 PhysicalDeviceShaderCoreBuiltinsPropertiesARM = () Extends PhysicalDeviceProperties2 PhysicalDeviceRayTracingInvocationReorderPropertiesNV = () + Extends PhysicalDeviceProperties2 PhysicalDeviceExtendedSparseAddressSpacePropertiesNV = () Extends PhysicalDeviceProperties2 PhysicalDeviceShaderCorePropertiesARM = () Extends PhysicalDeviceProperties2 PhysicalDeviceShaderObjectPropertiesEXT = () Extends PhysicalDeviceProperties2 PhysicalDeviceShaderTileImagePropertiesEXT = () + Extends PhysicalDeviceProperties2 PhysicalDeviceCooperativeMatrixPropertiesKHR = () + Extends PhysicalDeviceProperties2 PhysicalDeviceShaderEnqueuePropertiesAMDX = () + Extends PhysicalDeviceProperties2 PhysicalDeviceImageProcessing2PropertiesQCOM = () + Extends PhysicalDeviceProperties2 PhysicalDeviceLayeredDriverPropertiesMSFT = () + Extends PhysicalDeviceProperties2 PhysicalDeviceExternalFormatResolvePropertiesANDROID = () Extends PhysicalDeviceSurfaceInfo2KHR SurfaceFullScreenExclusiveInfoEXT = () Extends PhysicalDeviceSurfaceInfo2KHR SurfaceFullScreenExclusiveWin32InfoEXT = () Extends PhysicalDeviceSurfaceInfo2KHR SurfacePresentModeEXT = () @@ -1532,12 +1672,14 @@ type family Extends (a :: [Type] -> Type) (b :: Type) :: Constraint where Extends PipelineRasterizationStateCreateInfo PipelineRasterizationDepthClipStateCreateInfoEXT = () Extends PipelineRasterizationStateCreateInfo PipelineRasterizationLineStateCreateInfoEXT = () Extends PipelineRasterizationStateCreateInfo PipelineRasterizationProvokingVertexStateCreateInfoEXT = () + Extends PipelineRasterizationStateCreateInfo DepthBiasRepresentationInfoEXT = () Extends PipelineShaderStageCreateInfo (ShaderModuleCreateInfo '[]) = () Extends PipelineShaderStageCreateInfo ShaderModuleValidationCacheCreateInfoEXT = () Extends PipelineShaderStageCreateInfo DebugUtilsObjectNameInfoEXT = () Extends PipelineShaderStageCreateInfo PipelineShaderStageRequiredSubgroupSizeCreateInfo = () Extends PipelineShaderStageCreateInfo PipelineShaderStageModuleIdentifierCreateInfoEXT = () Extends PipelineShaderStageCreateInfo PipelineRobustnessCreateInfoEXT = () + Extends PipelineShaderStageCreateInfo PipelineShaderStageNodeCreateInfoAMDX = () Extends PipelineTessellationStateCreateInfo PipelineTessellationDomainOriginStateCreateInfo = () Extends PipelineVertexInputStateCreateInfo PipelineVertexInputDivisorStateCreateInfoEXT = () Extends PipelineViewportStateCreateInfo PipelineViewportWScalingStateCreateInfoNV = () @@ -1552,6 +1694,7 @@ type family Extends (a :: [Type] -> Type) (b :: Type) :: Constraint where Extends PresentInfoKHR PresentIdKHR = () Extends PresentInfoKHR PresentTimesInfoGOOGLE = () Extends PresentInfoKHR PresentFrameTokenGGP = () + Extends PresentInfoKHR FrameBoundaryEXT = () Extends PresentInfoKHR SwapchainPresentFenceInfoEXT = () Extends PresentInfoKHR SwapchainPresentModeInfoEXT = () Extends QueryPoolCreateInfo QueryPoolPerformanceCreateInfoKHR = () @@ -1559,8 +1702,10 @@ type family Extends (a :: [Type] -> Type) (b :: Type) :: Constraint where Extends QueueFamilyProperties2 QueueFamilyGlobalPriorityPropertiesKHR = () Extends QueueFamilyProperties2 QueueFamilyCheckpointPropertiesNV = () Extends QueueFamilyProperties2 QueueFamilyCheckpointProperties2NV = () + Extends RayTracingPipelineCreateInfoKHR PipelineCreateFlags2CreateInfoKHR = () Extends RayTracingPipelineCreateInfoKHR PipelineCreationFeedbackCreateInfo = () Extends RayTracingPipelineCreateInfoKHR PipelineRobustnessCreateInfoEXT = () + Extends RayTracingPipelineCreateInfoNV PipelineCreateFlags2CreateInfoKHR = () Extends RayTracingPipelineCreateInfoNV PipelineCreationFeedbackCreateInfo = () Extends RenderPassBeginInfo DeviceGroupRenderPassBeginInfo = () Extends RenderPassBeginInfo RenderPassSampleLocationsBeginInfoEXT = () @@ -1584,7 +1729,12 @@ type family Extends (a :: [Type] -> Type) (b :: Type) :: Constraint where Extends SamplerCreateInfo SamplerCustomBorderColorCreateInfoEXT = () Extends SamplerCreateInfo SamplerBorderColorComponentMappingCreateInfoEXT = () Extends SamplerCreateInfo OpaqueCaptureDescriptorDataCreateInfoEXT = () + Extends SamplerCreateInfo SamplerCubicWeightsCreateInfoQCOM = () + Extends SamplerCreateInfo SamplerBlockMatchWindowCreateInfoQCOM = () Extends SamplerYcbcrConversionCreateInfo ExternalFormatANDROID = () + Extends SamplerYcbcrConversionCreateInfo ExternalFormatQNX = () + Extends SamplerYcbcrConversionCreateInfo SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM = () + Extends ScreenBufferPropertiesQNX ScreenBufferFormatPropertiesQNX = () Extends SemaphoreCreateInfo ExportSemaphoreCreateInfo = () Extends SemaphoreCreateInfo ExportSemaphoreWin32HandleInfoKHR = () Extends SemaphoreCreateInfo SemaphoreTypeCreateInfo = () @@ -1601,9 +1751,13 @@ type family Extends (a :: [Type] -> Type) (b :: Type) :: Constraint where Extends SubmitInfo TimelineSemaphoreSubmitInfo = () Extends SubmitInfo PerformanceQuerySubmitInfoKHR = () Extends SubmitInfo AmigoProfilingSubmitInfoSEC = () + Extends SubmitInfo FrameBoundaryEXT = () + Extends SubmitInfo LatencySubmissionPresentIdNV = () Extends SubmitInfo2 Win32KeyedMutexAcquireReleaseInfoNV = () Extends SubmitInfo2 Win32KeyedMutexAcquireReleaseInfoKHR = () Extends SubmitInfo2 PerformanceQuerySubmitInfoKHR = () + Extends SubmitInfo2 FrameBoundaryEXT = () + Extends SubmitInfo2 LatencySubmissionPresentIdNV = () Extends SubpassDependency2 MemoryBarrier2 = () Extends SubpassDescription2 SubpassDescriptionDepthStencilResolve = () Extends SubpassDescription2 FragmentShadingRateAttachmentInfoKHR = () @@ -1611,7 +1765,8 @@ type family Extends (a :: [Type] -> Type) (b :: Type) :: Constraint where Extends SubpassDescription2 RenderPassCreationControlEXT = () Extends SubpassDescription2 RenderPassSubpassFeedbackCreateInfoEXT = () Extends SubpassEndInfo SubpassFragmentDensityMapOffsetEndInfoQCOM = () - Extends SubresourceLayout2EXT ImageCompressionPropertiesEXT = () + Extends SubresourceLayout2KHR SubresourceHostMemcpySizeEXT = () + Extends SubresourceLayout2KHR ImageCompressionPropertiesEXT = () Extends SurfaceCapabilities2KHR DisplayNativeHdrSurfaceCapabilitiesAMD = () Extends SurfaceCapabilities2KHR SharedPresentSurfaceCapabilitiesKHR = () Extends SurfaceCapabilities2KHR SurfaceProtectedCapabilitiesKHR = () @@ -1619,6 +1774,7 @@ type family Extends (a :: [Type] -> Type) (b :: Type) :: Constraint where Extends SurfaceCapabilities2KHR SurfaceCapabilitiesPresentBarrierNV = () Extends SurfaceCapabilities2KHR SurfacePresentScalingCapabilitiesEXT = () Extends SurfaceCapabilities2KHR SurfacePresentModeCompatibilityEXT = () + Extends SurfaceCapabilities2KHR LatencySurfaceCapabilitiesNV = () Extends SurfaceFormat2KHR ImageCompressionPropertiesEXT = () Extends SwapchainCreateInfoKHR SwapchainCounterCreateInfoEXT = () Extends SwapchainCreateInfoKHR DeviceGroupSwapchainCreateInfoKHR = () @@ -1630,6 +1786,7 @@ type family Extends (a :: [Type] -> Type) (b :: Type) :: Constraint where Extends SwapchainCreateInfoKHR ImageCompressionControlEXT = () Extends SwapchainCreateInfoKHR SwapchainPresentModesCreateInfoEXT = () Extends SwapchainCreateInfoKHR SwapchainPresentScalingCreateInfoEXT = () + Extends SwapchainCreateInfoKHR SwapchainLatencyCreateInfoNV = () Extends WriteDescriptorSet WriteDescriptorSetInlineUniformBlock = () Extends WriteDescriptorSet WriteDescriptorSetAccelerationStructureKHR = () Extends WriteDescriptorSet WriteDescriptorSetAccelerationStructureNV = () @@ -1735,7 +1892,9 @@ peekChainHead -> (forall e . (Extends a e, ToCStruct e, Show e) => e -> b) -> IO b peekChainHead ty p c = case ty of + STRUCTURE_TYPE_BUFFER_USAGE_FLAGS_2_CREATE_INFO_KHR -> go @BufferUsageFlags2CreateInfoKHR STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO -> go @(ShaderModuleCreateInfo '[]) + STRUCTURE_TYPE_PIPELINE_CREATE_FLAGS_2_CREATE_INFO_KHR -> go @PipelineCreateFlags2CreateInfoKHR STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR -> go @DisplayPresentInfoKHR STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT -> go @DebugReportCallbackCreateInfoEXT STRUCTURE_TYPE_VALIDATION_FLAGS_EXT -> go @ValidationFlagsEXT @@ -1750,6 +1909,7 @@ peekChainHead ty p c = case ty of STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV -> go @ExportMemoryWin32HandleInfoNV STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV -> go @Win32KeyedMutexAcquireReleaseInfoNV STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV -> go @PhysicalDeviceDeviceGeneratedCommandsFeaturesNV + STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_COMPUTE_FEATURES_NV -> go @PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO -> go @DevicePrivateDataCreateInfo STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES -> go @PhysicalDevicePrivateDataFeatures STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV -> go @PhysicalDeviceDeviceGeneratedCommandsPropertiesNV @@ -1844,6 +2004,8 @@ peekChainHead ty p c = case ty of STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES -> go @PhysicalDeviceMaintenance3Properties STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES -> go @PhysicalDeviceMaintenance4Features STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES -> go @PhysicalDeviceMaintenance4Properties + STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_FEATURES_KHR -> go @PhysicalDeviceMaintenance5FeaturesKHR + STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_PROPERTIES_KHR -> go @PhysicalDeviceMaintenance5PropertiesKHR STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES -> go @PhysicalDeviceShaderDrawParametersFeatures STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES -> go @PhysicalDeviceShaderFloat16Int8Features STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES -> go @PhysicalDeviceFloatControlsProperties @@ -2044,6 +2206,7 @@ peekChainHead ty p c = case ty of STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV -> go @PipelineFragmentShadingRateEnumStateCreateInfoNV STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT -> go @PhysicalDeviceImage2DViewOf3DFeaturesEXT STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_SLICED_VIEW_OF_3D_FEATURES_EXT -> go @PhysicalDeviceImageSlicedViewOf3DFeaturesEXT + STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_FEATURES_EXT -> go @PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT -> go @PhysicalDeviceMutableDescriptorTypeFeaturesEXT STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_EXT -> go @MutableDescriptorTypeCreateInfoEXT STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT -> go @PhysicalDeviceDepthClipControlFeaturesEXT @@ -2055,6 +2218,10 @@ peekChainHead ty p c = case ty of STRUCTURE_TYPE_MEMORY_BARRIER_2 -> go @MemoryBarrier2 STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV -> go @QueueFamilyCheckpointProperties2NV STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES -> go @PhysicalDeviceSynchronization2Features + STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_FEATURES_EXT -> go @PhysicalDeviceHostImageCopyFeaturesEXT + STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_PROPERTIES_EXT -> go @PhysicalDeviceHostImageCopyPropertiesEXT + STRUCTURE_TYPE_SUBRESOURCE_HOST_MEMCPY_SIZE_EXT -> go @SubresourceHostMemcpySizeEXT + STRUCTURE_TYPE_HOST_IMAGE_COPY_DEVICE_PERFORMANCE_QUERY_EXT -> go @HostImageCopyDevicePerformanceQueryEXT STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT -> go @PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_DITHERING_FEATURES_EXT -> go @PhysicalDeviceLegacyDitheringFeaturesEXT STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_FEATURES_EXT -> go @PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT @@ -2102,6 +2269,8 @@ peekChainHead ty p c = case ty of STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT -> go @PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT STRUCTURE_TYPE_GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT -> go @GraphicsPipelineLibraryCreateInfoEXT STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_SET_HOST_MAPPING_FEATURES_VALVE -> go @PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE + STRUCTURE_TYPE_PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_FEATURES_EXT -> go @PhysicalDeviceNestedCommandBufferFeaturesEXT + STRUCTURE_TYPE_PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_PROPERTIES_EXT -> go @PhysicalDeviceNestedCommandBufferPropertiesEXT STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT -> go @PhysicalDeviceShaderModuleIdentifierFeaturesEXT STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT -> go @PhysicalDeviceShaderModuleIdentifierPropertiesEXT STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_MODULE_IDENTIFIER_CREATE_INFO_EXT -> go @PipelineShaderStageModuleIdentifierCreateInfoEXT @@ -2121,6 +2290,7 @@ peekChainHead ty p c = case ty of STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_DISPLACEMENT_MICROMAP_NV -> throwIO $ IOError Nothing InvalidArgument "peekChainHead" ("struct type STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_DISPLACEMENT_MICROMAP_NV contains an undiscriminated union (DeviceOrHostAddressConstKHR) and can't be safely peeked") Nothing Nothing STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT -> go @PhysicalDevicePipelinePropertiesFeaturesEXT STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_FEATURES_AMD -> go @PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD + STRUCTURE_TYPE_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_EXT -> go @ExternalMemoryAcquireUnmodifiedEXT STRUCTURE_TYPE_EXPORT_METAL_OBJECT_CREATE_INFO_EXT -> go @ExportMetalObjectCreateInfoEXT STRUCTURE_TYPE_EXPORT_METAL_DEVICE_INFO_EXT -> go @ExportMetalDeviceInfoEXT STRUCTURE_TYPE_EXPORT_METAL_COMMAND_QUEUE_INFO_EXT -> go @ExportMetalCommandQueueInfoEXT @@ -2152,8 +2322,12 @@ peekChainHead ty p c = case ty of STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_PRIVATE_DATA_INFO_NV -> go @OpticalFlowSessionCreatePrivateDataInfoNV STRUCTURE_TYPE_PHYSICAL_DEVICE_FAULT_FEATURES_EXT -> go @PhysicalDeviceFaultFeaturesEXT STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_LIBRARY_GROUP_HANDLES_FEATURES_EXT -> go @PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT + STRUCTURE_TYPE_DEPTH_BIAS_REPRESENTATION_INFO_EXT -> go @DepthBiasRepresentationInfoEXT STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_PROPERTIES_ARM -> go @PhysicalDeviceShaderCoreBuiltinsPropertiesARM STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_FEATURES_ARM -> go @PhysicalDeviceShaderCoreBuiltinsFeaturesARM + STRUCTURE_TYPE_FRAME_BOUNDARY_EXT -> go @FrameBoundaryEXT + STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAME_BOUNDARY_FEATURES_EXT -> go @PhysicalDeviceFrameBoundaryFeaturesEXT + STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_FEATURES_EXT -> go @PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT STRUCTURE_TYPE_SURFACE_PRESENT_MODE_EXT -> go @SurfacePresentModeEXT STRUCTURE_TYPE_SURFACE_PRESENT_SCALING_CAPABILITIES_EXT -> go @SurfacePresentScalingCapabilitiesEXT STRUCTURE_TYPE_SURFACE_PRESENT_MODE_COMPATIBILITY_EXT -> go @SurfacePresentModeCompatibilityEXT @@ -2162,10 +2336,14 @@ peekChainHead ty p c = case ty of STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODES_CREATE_INFO_EXT -> go @SwapchainPresentModesCreateInfoEXT STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODE_INFO_EXT -> go @SwapchainPresentModeInfoEXT STRUCTURE_TYPE_SWAPCHAIN_PRESENT_SCALING_CREATE_INFO_EXT -> go @SwapchainPresentScalingCreateInfoEXT + STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_BIAS_CONTROL_FEATURES_EXT -> go @PhysicalDeviceDepthBiasControlFeaturesEXT STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_FEATURES_NV -> go @PhysicalDeviceRayTracingInvocationReorderFeaturesNV STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_PROPERTIES_NV -> go @PhysicalDeviceRayTracingInvocationReorderPropertiesNV + STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_FEATURES_NV -> go @PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV + STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_PROPERTIES_NV -> go @PhysicalDeviceExtendedSparseAddressSpacePropertiesNV STRUCTURE_TYPE_DIRECT_DRIVER_LOADING_LIST_LUNARG -> go @DirectDriverLoadingListLUNARG STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_VIEWPORTS_FEATURES_QCOM -> go @PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM + STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_POSITION_FETCH_FEATURES_KHR -> go @PhysicalDeviceRayTracingPositionFetchFeaturesKHR STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_ARM -> go @PhysicalDeviceShaderCorePropertiesARM STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_RENDER_AREAS_FEATURES_QCOM -> go @PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_RENDER_AREAS_RENDER_PASS_BEGIN_INFO_QCOM -> go @MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM @@ -2174,6 +2352,32 @@ peekChainHead ty p c = case ty of STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_OBJECT_PROPERTIES_EXT -> go @PhysicalDeviceShaderObjectPropertiesEXT STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TILE_IMAGE_FEATURES_EXT -> go @PhysicalDeviceShaderTileImageFeaturesEXT STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TILE_IMAGE_PROPERTIES_EXT -> go @PhysicalDeviceShaderTileImagePropertiesEXT + STRUCTURE_TYPE_IMPORT_SCREEN_BUFFER_INFO_QNX -> go @ImportScreenBufferInfoQNX + STRUCTURE_TYPE_SCREEN_BUFFER_FORMAT_PROPERTIES_QNX -> go @ScreenBufferFormatPropertiesQNX + STRUCTURE_TYPE_EXTERNAL_FORMAT_QNX -> go @ExternalFormatQNX + STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_SCREEN_BUFFER_FEATURES_QNX -> go @PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX + STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_KHR -> go @PhysicalDeviceCooperativeMatrixFeaturesKHR + STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_KHR -> go @PhysicalDeviceCooperativeMatrixPropertiesKHR + STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ENQUEUE_PROPERTIES_AMDX -> go @PhysicalDeviceShaderEnqueuePropertiesAMDX + STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ENQUEUE_FEATURES_AMDX -> go @PhysicalDeviceShaderEnqueueFeaturesAMDX + STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_NODE_CREATE_INFO_AMDX -> go @PipelineShaderStageNodeCreateInfoAMDX + STRUCTURE_TYPE_PHYSICAL_DEVICE_CUBIC_CLAMP_FEATURES_QCOM -> go @PhysicalDeviceCubicClampFeaturesQCOM + STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_DEGAMMA_FEATURES_QCOM -> go @PhysicalDeviceYcbcrDegammaFeaturesQCOM + STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_YCBCR_DEGAMMA_CREATE_INFO_QCOM -> go @SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM + STRUCTURE_TYPE_PHYSICAL_DEVICE_CUBIC_WEIGHTS_FEATURES_QCOM -> go @PhysicalDeviceCubicWeightsFeaturesQCOM + STRUCTURE_TYPE_SAMPLER_CUBIC_WEIGHTS_CREATE_INFO_QCOM -> go @SamplerCubicWeightsCreateInfoQCOM + STRUCTURE_TYPE_BLIT_IMAGE_CUBIC_WEIGHTS_INFO_QCOM -> go @BlitImageCubicWeightsInfoQCOM + STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_2_FEATURES_QCOM -> go @PhysicalDeviceImageProcessing2FeaturesQCOM + STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_2_PROPERTIES_QCOM -> go @PhysicalDeviceImageProcessing2PropertiesQCOM + STRUCTURE_TYPE_SAMPLER_BLOCK_MATCH_WINDOW_CREATE_INFO_QCOM -> go @SamplerBlockMatchWindowCreateInfoQCOM + STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_POOL_OVERALLOCATION_FEATURES_NV -> go @PhysicalDeviceDescriptorPoolOverallocationFeaturesNV + STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_DRIVER_PROPERTIES_MSFT -> go @PhysicalDeviceLayeredDriverPropertiesMSFT + STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_FEATURES_ANDROID -> go @PhysicalDeviceExternalFormatResolveFeaturesANDROID + STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_PROPERTIES_ANDROID -> go @PhysicalDeviceExternalFormatResolvePropertiesANDROID + STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_RESOLVE_PROPERTIES_ANDROID -> go @AndroidHardwareBufferFormatResolvePropertiesANDROID + STRUCTURE_TYPE_LATENCY_SUBMISSION_PRESENT_ID_NV -> go @LatencySubmissionPresentIdNV + STRUCTURE_TYPE_SWAPCHAIN_LATENCY_CREATE_INFO_NV -> go @SwapchainLatencyCreateInfoNV + STRUCTURE_TYPE_LATENCY_SURFACE_CAPABILITIES_NV -> go @LatencySurfaceCapabilitiesNV 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 @@ -2227,7 +2431,9 @@ pattern (::&) :: Extensible a => a es' -> Chain es -> a es pattern a ::& es <- (\a -> (a, getNext a) -> (a, es)) where a ::& es = setNext a es infix 6 ::& +{-# complete (::&) :: BufferUsageFlags2CreateInfoKHR #-} {-# complete (::&) :: ShaderModuleCreateInfo #-} +{-# complete (::&) :: PipelineCreateFlags2CreateInfoKHR #-} {-# complete (::&) :: DisplayPresentInfoKHR #-} {-# complete (::&) :: DebugReportCallbackCreateInfoEXT #-} {-# complete (::&) :: ValidationFlagsEXT #-} @@ -2242,6 +2448,7 @@ infix 6 ::& {-# complete (::&) :: ExportMemoryWin32HandleInfoNV #-} {-# complete (::&) :: Win32KeyedMutexAcquireReleaseInfoNV #-} {-# complete (::&) :: PhysicalDeviceDeviceGeneratedCommandsFeaturesNV #-} +{-# complete (::&) :: PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV #-} {-# complete (::&) :: DevicePrivateDataCreateInfo #-} {-# complete (::&) :: PhysicalDevicePrivateDataFeatures #-} {-# complete (::&) :: PhysicalDeviceDeviceGeneratedCommandsPropertiesNV #-} @@ -2336,6 +2543,8 @@ infix 6 ::& {-# complete (::&) :: PhysicalDeviceMaintenance3Properties #-} {-# complete (::&) :: PhysicalDeviceMaintenance4Features #-} {-# complete (::&) :: PhysicalDeviceMaintenance4Properties #-} +{-# complete (::&) :: PhysicalDeviceMaintenance5FeaturesKHR #-} +{-# complete (::&) :: PhysicalDeviceMaintenance5PropertiesKHR #-} {-# complete (::&) :: PhysicalDeviceShaderDrawParametersFeatures #-} {-# complete (::&) :: PhysicalDeviceShaderFloat16Int8Features #-} {-# complete (::&) :: PhysicalDeviceFloatControlsProperties #-} @@ -2536,6 +2745,7 @@ infix 6 ::& {-# complete (::&) :: PipelineFragmentShadingRateEnumStateCreateInfoNV #-} {-# complete (::&) :: PhysicalDeviceImage2DViewOf3DFeaturesEXT #-} {-# complete (::&) :: PhysicalDeviceImageSlicedViewOf3DFeaturesEXT #-} +{-# complete (::&) :: PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT #-} {-# complete (::&) :: PhysicalDeviceMutableDescriptorTypeFeaturesEXT #-} {-# complete (::&) :: MutableDescriptorTypeCreateInfoEXT #-} {-# complete (::&) :: PhysicalDeviceDepthClipControlFeaturesEXT #-} @@ -2547,6 +2757,10 @@ infix 6 ::& {-# complete (::&) :: MemoryBarrier2 #-} {-# complete (::&) :: QueueFamilyCheckpointProperties2NV #-} {-# complete (::&) :: PhysicalDeviceSynchronization2Features #-} +{-# complete (::&) :: PhysicalDeviceHostImageCopyFeaturesEXT #-} +{-# complete (::&) :: PhysicalDeviceHostImageCopyPropertiesEXT #-} +{-# complete (::&) :: SubresourceHostMemcpySizeEXT #-} +{-# complete (::&) :: HostImageCopyDevicePerformanceQueryEXT #-} {-# complete (::&) :: PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT #-} {-# complete (::&) :: PhysicalDeviceLegacyDitheringFeaturesEXT #-} {-# complete (::&) :: PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT #-} @@ -2594,6 +2808,8 @@ infix 6 ::& {-# complete (::&) :: PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT #-} {-# complete (::&) :: GraphicsPipelineLibraryCreateInfoEXT #-} {-# complete (::&) :: PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE #-} +{-# complete (::&) :: PhysicalDeviceNestedCommandBufferFeaturesEXT #-} +{-# complete (::&) :: PhysicalDeviceNestedCommandBufferPropertiesEXT #-} {-# complete (::&) :: PhysicalDeviceShaderModuleIdentifierFeaturesEXT #-} {-# complete (::&) :: PhysicalDeviceShaderModuleIdentifierPropertiesEXT #-} {-# complete (::&) :: PipelineShaderStageModuleIdentifierCreateInfoEXT #-} @@ -2613,6 +2829,7 @@ infix 6 ::& {-# complete (::&) :: AccelerationStructureTrianglesDisplacementMicromapNV #-} {-# complete (::&) :: PhysicalDevicePipelinePropertiesFeaturesEXT #-} {-# complete (::&) :: PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD #-} +{-# complete (::&) :: ExternalMemoryAcquireUnmodifiedEXT #-} {-# complete (::&) :: ExportMetalObjectCreateInfoEXT #-} {-# complete (::&) :: ExportMetalDeviceInfoEXT #-} {-# complete (::&) :: ExportMetalCommandQueueInfoEXT #-} @@ -2644,8 +2861,12 @@ infix 6 ::& {-# complete (::&) :: OpticalFlowSessionCreatePrivateDataInfoNV #-} {-# complete (::&) :: PhysicalDeviceFaultFeaturesEXT #-} {-# complete (::&) :: PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT #-} +{-# complete (::&) :: DepthBiasRepresentationInfoEXT #-} {-# complete (::&) :: PhysicalDeviceShaderCoreBuiltinsPropertiesARM #-} {-# complete (::&) :: PhysicalDeviceShaderCoreBuiltinsFeaturesARM #-} +{-# complete (::&) :: FrameBoundaryEXT #-} +{-# complete (::&) :: PhysicalDeviceFrameBoundaryFeaturesEXT #-} +{-# complete (::&) :: PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT #-} {-# complete (::&) :: SurfacePresentModeEXT #-} {-# complete (::&) :: SurfacePresentScalingCapabilitiesEXT #-} {-# complete (::&) :: SurfacePresentModeCompatibilityEXT #-} @@ -2654,10 +2875,14 @@ infix 6 ::& {-# complete (::&) :: SwapchainPresentModesCreateInfoEXT #-} {-# complete (::&) :: SwapchainPresentModeInfoEXT #-} {-# complete (::&) :: SwapchainPresentScalingCreateInfoEXT #-} +{-# complete (::&) :: PhysicalDeviceDepthBiasControlFeaturesEXT #-} {-# complete (::&) :: PhysicalDeviceRayTracingInvocationReorderFeaturesNV #-} {-# complete (::&) :: PhysicalDeviceRayTracingInvocationReorderPropertiesNV #-} +{-# complete (::&) :: PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV #-} +{-# complete (::&) :: PhysicalDeviceExtendedSparseAddressSpacePropertiesNV #-} {-# complete (::&) :: DirectDriverLoadingListLUNARG #-} {-# complete (::&) :: PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM #-} +{-# complete (::&) :: PhysicalDeviceRayTracingPositionFetchFeaturesKHR #-} {-# complete (::&) :: PhysicalDeviceShaderCorePropertiesARM #-} {-# complete (::&) :: PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM #-} {-# complete (::&) :: MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM #-} @@ -2666,6 +2891,32 @@ infix 6 ::& {-# complete (::&) :: PhysicalDeviceShaderObjectPropertiesEXT #-} {-# complete (::&) :: PhysicalDeviceShaderTileImageFeaturesEXT #-} {-# complete (::&) :: PhysicalDeviceShaderTileImagePropertiesEXT #-} +{-# complete (::&) :: ImportScreenBufferInfoQNX #-} +{-# complete (::&) :: ScreenBufferFormatPropertiesQNX #-} +{-# complete (::&) :: ExternalFormatQNX #-} +{-# complete (::&) :: PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX #-} +{-# complete (::&) :: PhysicalDeviceCooperativeMatrixFeaturesKHR #-} +{-# complete (::&) :: PhysicalDeviceCooperativeMatrixPropertiesKHR #-} +{-# complete (::&) :: PhysicalDeviceShaderEnqueuePropertiesAMDX #-} +{-# complete (::&) :: PhysicalDeviceShaderEnqueueFeaturesAMDX #-} +{-# complete (::&) :: PipelineShaderStageNodeCreateInfoAMDX #-} +{-# complete (::&) :: PhysicalDeviceCubicClampFeaturesQCOM #-} +{-# complete (::&) :: PhysicalDeviceYcbcrDegammaFeaturesQCOM #-} +{-# complete (::&) :: SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM #-} +{-# complete (::&) :: PhysicalDeviceCubicWeightsFeaturesQCOM #-} +{-# complete (::&) :: SamplerCubicWeightsCreateInfoQCOM #-} +{-# complete (::&) :: BlitImageCubicWeightsInfoQCOM #-} +{-# complete (::&) :: PhysicalDeviceImageProcessing2FeaturesQCOM #-} +{-# complete (::&) :: PhysicalDeviceImageProcessing2PropertiesQCOM #-} +{-# complete (::&) :: SamplerBlockMatchWindowCreateInfoQCOM #-} +{-# complete (::&) :: PhysicalDeviceDescriptorPoolOverallocationFeaturesNV #-} +{-# complete (::&) :: PhysicalDeviceLayeredDriverPropertiesMSFT #-} +{-# complete (::&) :: PhysicalDeviceExternalFormatResolveFeaturesANDROID #-} +{-# complete (::&) :: PhysicalDeviceExternalFormatResolvePropertiesANDROID #-} +{-# complete (::&) :: AndroidHardwareBufferFormatResolvePropertiesANDROID #-} +{-# complete (::&) :: LatencySubmissionPresentIdNV #-} +{-# complete (::&) :: SwapchainLatencyCreateInfoNV #-} +{-# complete (::&) :: LatencySurfaceCapabilitiesNV #-} -- | View the head and tail of a 'Chain', see '::&' -- diff --git a/src/Vulkan/Core10/APIConstants.hs b/src/Vulkan/Core10/APIConstants.hs index 392d8a691..8e8cf021f 100644 --- a/src/Vulkan/Core10/APIConstants.hs +++ b/src/Vulkan/Core10/APIConstants.hs @@ -52,6 +52,8 @@ module Vulkan.Core10.APIConstants ( pattern LOD_CLAMP_NONE , pattern MAX_GLOBAL_PRIORITY_SIZE_KHR , MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT , pattern MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT + , SHADER_INDEX_UNUSED_AMDX + , pattern SHADER_INDEX_UNUSED_AMDX , pattern NULL_HANDLE , IsHandle , HasObjectType(..) @@ -65,7 +67,7 @@ import Data.Word (Word64) import Vulkan.Core10.Enums.ObjectType (ObjectType) import Vulkan.Core10.FundamentalTypes (Bool32(..)) import Vulkan.Core10.Enums.PipelineCacheHeaderVersion (PipelineCacheHeaderVersion(..)) --- | VK_LOD_CLAMP_NONE - Maximum level of detail unclamped access sentinel +-- | VK_LOD_CLAMP_NONE - Maximum LOD unclamped access sentinel -- -- = See Also -- @@ -360,6 +362,17 @@ pattern MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT :: forall a . Integral a => a pattern MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT = 32 +type SHADER_INDEX_UNUSED_AMDX = 0xffffffff + +-- | VK_SHADER_INDEX_UNUSED_AMDX - Sentinel for an unused shader index +-- +-- = See Also +-- +-- +pattern SHADER_INDEX_UNUSED_AMDX :: Word32 +pattern SHADER_INDEX_UNUSED_AMDX = 0xffffffff + + -- | VK_NULL_HANDLE - Reserved non-valid object handle -- -- = See Also diff --git a/src/Vulkan/Core10/AllocationCallbacks.hs b/src/Vulkan/Core10/AllocationCallbacks.hs index 20a4e6511..33b49b1c7 100644 --- a/src/Vulkan/Core10/AllocationCallbacks.hs +++ b/src/Vulkan/Core10/AllocationCallbacks.hs @@ -25,6 +25,36 @@ import Vulkan.Core10.FuncPointers (PFN_vkReallocationFunction) -- | VkAllocationCallbacks - Structure containing callback function pointers -- for memory allocation -- +-- = Description +-- +-- - @pUserData@ is a value to be interpreted by the implementation of +-- the callbacks. When any of the callbacks in 'AllocationCallbacks' +-- are called, the Vulkan implementation will pass this value as the +-- first parameter to the callback. This value /can/ vary each time an +-- allocator is passed into a command, even when the same object takes +-- an allocator in multiple commands. +-- +-- - @pfnAllocation@ is a +-- 'Vulkan.Core10.FuncPointers.PFN_vkAllocationFunction' pointer to an +-- application-defined memory allocation function. +-- +-- - @pfnReallocation@ is a +-- 'Vulkan.Core10.FuncPointers.PFN_vkReallocationFunction' pointer to +-- an application-defined memory reallocation function. +-- +-- - @pfnFree@ is a 'Vulkan.Core10.FuncPointers.PFN_vkFreeFunction' +-- pointer to an application-defined memory free function. +-- +-- - @pfnInternalAllocation@ is a +-- 'Vulkan.Core10.FuncPointers.PFN_vkInternalAllocationNotification' +-- pointer to an application-defined function that is called by the +-- implementation when the implementation makes internal allocations. +-- +-- - @pfnInternalFree@ is a +-- 'Vulkan.Core10.FuncPointers.PFN_vkInternalFreeNotification' pointer +-- to an application-defined function that is called by the +-- implementation when the implementation frees internal allocations. +-- -- == Valid Usage -- -- - #VUID-VkAllocationCallbacks-pfnAllocation-00632# @pfnAllocation@ @@ -73,7 +103,9 @@ import Vulkan.Core10.FuncPointers (PFN_vkReallocationFunction) -- 'Vulkan.Extensions.VK_EXT_directfb_surface.createDirectFBSurfaceEXT', -- 'Vulkan.Extensions.VK_KHR_display.createDisplayModeKHR', -- 'Vulkan.Extensions.VK_KHR_display.createDisplayPlaneSurfaceKHR', --- 'Vulkan.Core10.Event.createEvent', 'Vulkan.Core10.Fence.createFence', +-- 'Vulkan.Core10.Event.createEvent', +-- 'Vulkan.Extensions.VK_AMDX_shader_enqueue.createExecutionGraphPipelinesAMDX', +-- 'Vulkan.Core10.Fence.createFence', -- 'Vulkan.Core10.Pass.createFramebuffer', -- 'Vulkan.Core10.Pipeline.createGraphicsPipelines', -- 'Vulkan.Extensions.VK_EXT_headless_surface.createHeadlessSurfaceEXT', @@ -161,33 +193,17 @@ import Vulkan.Core10.FuncPointers (PFN_vkReallocationFunction) -- 'Vulkan.Extensions.VK_EXT_display_control.registerDeviceEventEXT', -- 'Vulkan.Extensions.VK_EXT_display_control.registerDisplayEventEXT' data AllocationCallbacks = AllocationCallbacks - { -- | @pUserData@ is a value to be interpreted by the implementation of the - -- callbacks. When any of the callbacks in 'AllocationCallbacks' are - -- called, the Vulkan implementation will pass this value as the first - -- parameter to the callback. This value /can/ vary each time an allocator - -- is passed into a command, even when the same object takes an allocator - -- in multiple commands. + { -- No documentation found for Nested "VkAllocationCallbacks" "pUserData" userData :: Ptr () - , -- | @pfnAllocation@ is a - -- 'Vulkan.Core10.FuncPointers.PFN_vkAllocationFunction' pointer to an - -- application-defined memory allocation function. + , -- No documentation found for Nested "VkAllocationCallbacks" "pfnAllocation" pfnAllocation :: PFN_vkAllocationFunction - , -- | @pfnReallocation@ is a - -- 'Vulkan.Core10.FuncPointers.PFN_vkReallocationFunction' pointer to an - -- application-defined memory reallocation function. + , -- No documentation found for Nested "VkAllocationCallbacks" "pfnReallocation" pfnReallocation :: PFN_vkReallocationFunction - , -- | @pfnFree@ is a 'Vulkan.Core10.FuncPointers.PFN_vkFreeFunction' pointer - -- to an application-defined memory free function. + , -- No documentation found for Nested "VkAllocationCallbacks" "pfnFree" pfnFree :: PFN_vkFreeFunction - , -- | @pfnInternalAllocation@ is a - -- 'Vulkan.Core10.FuncPointers.PFN_vkInternalAllocationNotification' - -- pointer to an application-defined function that is called by the - -- implementation when the implementation makes internal allocations. + , -- No documentation found for Nested "VkAllocationCallbacks" "pfnInternalAllocation" pfnInternalAllocation :: PFN_vkInternalAllocationNotification - , -- | @pfnInternalFree@ is a - -- 'Vulkan.Core10.FuncPointers.PFN_vkInternalFreeNotification' pointer to - -- an application-defined function that is called by the implementation - -- when the implementation frees internal allocations. + , -- No documentation found for Nested "VkAllocationCallbacks" "pfnInternalFree" pfnInternalFree :: PFN_vkInternalFreeNotification } deriving (Typeable) diff --git a/src/Vulkan/Core10/Buffer.hs b/src/Vulkan/Core10/Buffer.hs index 42cefd318..ac23e00d3 100644 --- a/src/Vulkan/Core10/Buffer.hs +++ b/src/Vulkan/Core10/Buffer.hs @@ -61,6 +61,7 @@ import Vulkan.Core10.Enums.BufferCreateFlagBits (BufferCreateFlags) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_buffer_device_address (BufferDeviceAddressCreateInfoEXT) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_buffer_device_address (BufferOpaqueCaptureAddressCreateInfo) import Vulkan.Core10.Enums.BufferUsageFlagBits (BufferUsageFlags) +import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_maintenance5 (BufferUsageFlags2CreateInfoKHR) import Vulkan.CStruct.Extends (Chain) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_dedicated_allocation (DedicatedAllocationBufferCreateInfoNV) import Vulkan.Core10.Handles (Device) @@ -107,11 +108,42 @@ foreign import ccall -- - #VUID-vkCreateBuffer-flags-00911# If the @flags@ member of -- @pCreateInfo@ includes -- 'Vulkan.Core10.Enums.BufferCreateFlagBits.BUFFER_CREATE_SPARSE_BINDING_BIT', +-- and the +-- +-- feature is not enabled, creating this 'Vulkan.Core10.Handles.Buffer' +-- /must/ not cause the total required sparse memory for all currently +-- valid sparse resources on the device to exceed +-- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@sparseAddressSpaceSize@ +-- +-- - #VUID-vkCreateBuffer-flags-09383# If the @flags@ member of +-- @pCreateInfo@ includes +-- 'Vulkan.Core10.Enums.BufferCreateFlagBits.BUFFER_CREATE_SPARSE_BINDING_BIT', +-- the +-- +-- feature is enabled, and the @usage@ member of @pCreateInfo@ contains +-- bits not in +-- 'Vulkan.Extensions.VK_NV_extended_sparse_address_space.PhysicalDeviceExtendedSparseAddressSpacePropertiesNV'::@extendedSparseBufferUsageFlags@, -- creating this 'Vulkan.Core10.Handles.Buffer' /must/ not cause the -- total required sparse memory for all currently valid sparse --- resources on the device to exceed +-- resources on the device, excluding 'Vulkan.Core10.Handles.Buffer' +-- created with @usage@ member of @pCreateInfo@ containing bits in +-- 'Vulkan.Extensions.VK_NV_extended_sparse_address_space.PhysicalDeviceExtendedSparseAddressSpacePropertiesNV'::@extendedSparseBufferUsageFlags@ +-- and 'Vulkan.Core10.Handles.Image' created with @usage@ member of +-- @pCreateInfo@ containing bits in +-- 'Vulkan.Extensions.VK_NV_extended_sparse_address_space.PhysicalDeviceExtendedSparseAddressSpacePropertiesNV'::@extendedSparseImageUsageFlags@, +-- to exceed -- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@sparseAddressSpaceSize@ -- +-- - #VUID-vkCreateBuffer-flags-09384# If the @flags@ member of +-- @pCreateInfo@ includes +-- 'Vulkan.Core10.Enums.BufferCreateFlagBits.BUFFER_CREATE_SPARSE_BINDING_BIT' +-- and the +-- +-- feature is enabled, creating this 'Vulkan.Core10.Handles.Buffer' +-- /must/ not cause the total required sparse memory for all currently +-- valid sparse resources on the device to exceed +-- 'Vulkan.Extensions.VK_NV_extended_sparse_address_space.PhysicalDeviceExtendedSparseAddressSpacePropertiesNV'::@extendedSparseAddressSpaceSize@ +-- -- - #VUID-vkCreateBuffer-pNext-06387# If using the -- 'Vulkan.Core10.Handles.Buffer' for an import operation from a -- 'Vulkan.Extensions.Handles.BufferCollectionFUCHSIA' where a @@ -279,6 +311,14 @@ destroyBuffer device buffer allocator = liftIO . evalContT $ do -- | VkBufferCreateInfo - Structure specifying the parameters of a newly -- created buffer object -- +-- = Description +-- +-- If a +-- 'Vulkan.Extensions.VK_KHR_maintenance5.BufferUsageFlags2CreateInfoKHR' +-- structure is present in the @pNext@ chain, +-- 'Vulkan.Extensions.VK_KHR_maintenance5.BufferUsageFlags2CreateInfoKHR'::@usage@ +-- from that structure is used instead of @usage@ from this structure. +-- -- == Valid Usage -- -- - #VUID-VkBufferCreateInfo-size-00912# @size@ /must/ be greater than @@ -410,18 +450,18 @@ destroyBuffer device buffer allocator = liftIO . evalContT $ do -- creating this 'Vulkan.Core10.Handles.Buffer' /must/ not cause the -- total required space for all currently valid buffers using this flag -- on the device to exceed --- VkPhysicalDeviceDescriptorBufferPropertiesEXT::@samplerDescriptorBufferAddressSpaceSize@ +-- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.PhysicalDeviceDescriptorBufferPropertiesEXT'::@samplerDescriptorBufferAddressSpaceSize@ -- or --- VkPhysicalDeviceDescriptorBufferPropertiesEXT::@descriptorBufferAddressSpaceSize@ +-- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.PhysicalDeviceDescriptorBufferPropertiesEXT'::@descriptorBufferAddressSpaceSize@ -- -- - #VUID-VkBufferCreateInfo-usage-08098# If @usage@ includes -- 'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT', -- creating this 'Vulkan.Core10.Handles.Buffer' /must/ not cause the -- total required space for all currently valid buffers using this flag -- on the device to exceed --- VkPhysicalDeviceDescriptorBufferPropertiesEXT::@resourceDescriptorBufferAddressSpaceSize@ +-- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.PhysicalDeviceDescriptorBufferPropertiesEXT'::@resourceDescriptorBufferAddressSpaceSize@ -- or --- VkPhysicalDeviceDescriptorBufferPropertiesEXT::@descriptorBufferAddressSpaceSize@ +-- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.PhysicalDeviceDescriptorBufferPropertiesEXT'::@descriptorBufferAddressSpaceSize@ -- -- - #VUID-VkBufferCreateInfo-flags-08099# If @flags@ includes -- 'Vulkan.Core10.Enums.BufferCreateFlagBits.BUFFER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT', @@ -453,6 +493,17 @@ destroyBuffer device buffer allocator = liftIO . evalContT $ do -- or -- 'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT' -- +-- - #VUID-VkBufferCreateInfo-None-09205# If the @pNext@ chain does not +-- include a +-- 'Vulkan.Extensions.VK_KHR_maintenance5.BufferUsageFlags2CreateInfoKHR' +-- structure, @usage@ must be a valid combination of +-- 'Vulkan.Core10.Enums.BufferUsageFlagBits.BufferUsageFlagBits' values +-- +-- - #VUID-VkBufferCreateInfo-None-09206# If the @pNext@ chain does not +-- include a +-- 'Vulkan.Extensions.VK_KHR_maintenance5.BufferUsageFlags2CreateInfoKHR' +-- structure, @usage@ /must/ not be @0@ +-- -- == Valid Usage (Implicit) -- -- - #VUID-VkBufferCreateInfo-sType-sType# @sType@ /must/ be @@ -464,6 +515,7 @@ destroyBuffer device buffer allocator = liftIO . evalContT $ do -- 'Vulkan.Extensions.VK_FUCHSIA_buffer_collection.BufferCollectionBufferCreateInfoFUCHSIA', -- 'Vulkan.Extensions.VK_EXT_buffer_device_address.BufferDeviceAddressCreateInfoEXT', -- 'Vulkan.Core12.Promoted_From_VK_KHR_buffer_device_address.BufferOpaqueCaptureAddressCreateInfo', +-- 'Vulkan.Extensions.VK_KHR_maintenance5.BufferUsageFlags2CreateInfoKHR', -- 'Vulkan.Extensions.VK_NV_dedicated_allocation.DedicatedAllocationBufferCreateInfoNV', -- 'Vulkan.Core11.Promoted_From_VK_KHR_external_memory.ExternalMemoryBufferCreateInfo', -- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.OpaqueCaptureDescriptorDataCreateInfoEXT', @@ -478,13 +530,6 @@ destroyBuffer device buffer allocator = liftIO . evalContT $ do -- 'Vulkan.Core10.Enums.BufferCreateFlagBits.BufferCreateFlagBits' -- values -- --- - #VUID-VkBufferCreateInfo-usage-parameter# @usage@ /must/ be a valid --- combination of --- 'Vulkan.Core10.Enums.BufferUsageFlagBits.BufferUsageFlagBits' values --- --- - #VUID-VkBufferCreateInfo-usage-requiredbitmask# @usage@ /must/ not --- be @0@ --- -- - #VUID-VkBufferCreateInfo-sharingMode-parameter# @sharingMode@ /must/ -- be a valid 'Vulkan.Core10.Enums.SharingMode.SharingMode' value -- @@ -538,6 +583,7 @@ instance Extensible BufferCreateInfo where | Just Refl <- eqT @e @BufferOpaqueCaptureAddressCreateInfo = Just f | Just Refl <- eqT @e @ExternalMemoryBufferCreateInfo = Just f | Just Refl <- eqT @e @DedicatedAllocationBufferCreateInfoNV = Just f + | Just Refl <- eqT @e @BufferUsageFlags2CreateInfoKHR = Just f | otherwise = Nothing instance ( Extendss BufferCreateInfo es diff --git a/src/Vulkan/Core10/BufferView.hs b/src/Vulkan/Core10/BufferView.hs index f668a77b9..68ee32d53 100644 --- a/src/Vulkan/Core10/BufferView.hs +++ b/src/Vulkan/Core10/BufferView.hs @@ -45,6 +45,7 @@ import Vulkan.CStruct.Extends (forgetExtensions) import Vulkan.NamedType ((:::)) import Vulkan.Core10.AllocationCallbacks (AllocationCallbacks) import Vulkan.Core10.Handles (Buffer) +import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_maintenance5 (BufferUsageFlags2CreateInfoKHR) import Vulkan.Core10.Handles (BufferView) import Vulkan.Core10.Handles (BufferView(..)) import Vulkan.Core10.Enums.BufferViewCreateFlags (BufferViewCreateFlags) @@ -240,6 +241,17 @@ destroyBufferView device bufferView allocator = liftIO . evalContT $ do -- | VkBufferViewCreateInfo - Structure specifying parameters of a newly -- created buffer view -- +-- = Description +-- +-- The buffer view has a /buffer view usage/ identifying which descriptor +-- types can be created from it. This usage /can/ be defined by including +-- the +-- 'Vulkan.Extensions.VK_KHR_maintenance5.BufferUsageFlags2CreateInfoKHR' +-- structure in the @pNext@ chain, and specifying the @usage@ value there. +-- If this structure is not included, it is equal to the +-- 'Vulkan.Core10.Buffer.BufferCreateInfo'::@usage@ value used to create +-- @buffer@. +-- -- == Valid Usage -- -- - #VUID-VkBufferViewCreateInfo-offset-00925# @offset@ /must/ be less @@ -281,16 +293,18 @@ destroyBufferView device bufferView allocator = liftIO . evalContT $ do -- or -- 'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT' -- --- - #VUID-VkBufferViewCreateInfo-buffer-00933# If @buffer@ was created --- with @usage@ containing +-- - #VUID-VkBufferViewCreateInfo-format-08778# If the +-- +-- contains -- 'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT', -- then -- -- of @format@ /must/ contain -- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT' -- --- - #VUID-VkBufferViewCreateInfo-buffer-00934# If @buffer@ was created --- with @usage@ containing +-- - #VUID-VkBufferViewCreateInfo-format-08779# If the +-- +-- contains -- 'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT', -- then -- @@ -340,13 +354,33 @@ destroyBufferView device bufferView allocator = liftIO . evalContT $ do -- structure, its @exportObjectType@ member /must/ be -- 'Vulkan.Extensions.VK_EXT_metal_objects.EXPORT_METAL_OBJECT_TYPE_METAL_TEXTURE_BIT_EXT' -- +-- - #VUID-VkBufferViewCreateInfo-pNext-08780# If the @pNext@ chain +-- includes a +-- 'Vulkan.Extensions.VK_KHR_maintenance5.BufferUsageFlags2CreateInfoKHR', +-- its @usage@ /must/ not contain any other bit than +-- 'Vulkan.Extensions.VK_AMDX_shader_enqueue.BUFFER_USAGE_2_UNIFORM_TEXEL_BUFFER_BIT_KHR' +-- or +-- 'Vulkan.Extensions.VK_AMDX_shader_enqueue.BUFFER_USAGE_2_STORAGE_TEXEL_BUFFER_BIT_KHR' +-- +-- - #VUID-VkBufferViewCreateInfo-pNext-08781# If the @pNext@ chain +-- includes a +-- 'Vulkan.Extensions.VK_KHR_maintenance5.BufferUsageFlags2CreateInfoKHR', +-- its @usage@ /must/ be a subset of the +-- 'Vulkan.Core10.Buffer.BufferCreateInfo'::@usage@ specified or +-- 'Vulkan.Extensions.VK_KHR_maintenance5.BufferUsageFlags2CreateInfoKHR'::@usage@ +-- from 'Vulkan.Core10.Buffer.BufferCreateInfo'::@pNext@ when creating +-- @buffer@ +-- -- == Valid Usage (Implicit) -- -- - #VUID-VkBufferViewCreateInfo-sType-sType# @sType@ /must/ be -- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO' -- --- - #VUID-VkBufferViewCreateInfo-pNext-pNext# @pNext@ /must/ be @NULL@ --- or a pointer to a valid instance of +-- - #VUID-VkBufferViewCreateInfo-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_maintenance5.BufferUsageFlags2CreateInfoKHR' +-- or -- 'Vulkan.Extensions.VK_EXT_metal_objects.ExportMetalObjectCreateInfoEXT' -- -- - #VUID-VkBufferViewCreateInfo-sType-unique# The @sType@ value of each @@ -407,6 +441,7 @@ instance Extensible BufferViewCreateInfo where extends :: forall e b proxy. Typeable e => proxy e -> (Extends BufferViewCreateInfo e => b) -> Maybe b extends _ f | Just Refl <- eqT @e @ExportMetalObjectCreateInfoEXT = Just f + | Just Refl <- eqT @e @BufferUsageFlags2CreateInfoKHR = Just f | otherwise = Nothing instance ( Extendss BufferViewCreateInfo es diff --git a/src/Vulkan/Core10/CommandBuffer.hs b/src/Vulkan/Core10/CommandBuffer.hs index a63ed0506..e52ba4b15 100644 --- a/src/Vulkan/Core10/CommandBuffer.hs +++ b/src/Vulkan/Core10/CommandBuffer.hs @@ -98,6 +98,7 @@ import Vulkan.Core10.Handles (Device_T) import Vulkan.CStruct.Extends (Extends) import Vulkan.CStruct.Extends (Extendss) import Vulkan.CStruct.Extends (Extensible(..)) +import {-# SOURCE #-} Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer (ExternalFormatANDROID) import Vulkan.Core10.Handles (Framebuffer) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_dynamic_rendering (MultiviewPerViewAttributesInfoNVX) import Vulkan.CStruct.Extends (PeekChain) @@ -435,10 +436,15 @@ foreign import ccall -- -- = Description -- +-- The command buffer /must/ have been in the +-- , +-- and, if successful, is moved to the +-- . +-- -- 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. +-- by an unsuccessful return code returned by 'endCommandBuffer', and the +-- command buffer will be moved to the +-- . -- -- In case the application recorded one or more -- @@ -457,11 +463,6 @@ foreign import ccall -- command as a means to verify Video Std parameters, as implementations -- are not required to report the error in any specific set of cases. -- --- The command buffer /must/ have been in the --- , --- and is moved to the --- . --- -- == Valid Usage -- -- - #VUID-vkEndCommandBuffer-commandBuffer-00059# @commandBuffer@ /must/ @@ -754,6 +755,7 @@ instance Zero CommandBufferAllocateInfo where -- 'Vulkan.Extensions.VK_QCOM_render_pass_transform.CommandBufferInheritanceRenderPassTransformInfoQCOM', -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.CommandBufferInheritanceRenderingInfo', -- 'Vulkan.Extensions.VK_NV_inherited_viewport_scissor.CommandBufferInheritanceViewportScissorInfoNV', +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID', -- or -- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.MultiviewPerViewAttributesInfoNVX' -- @@ -842,6 +844,7 @@ instance Extensible CommandBufferInheritanceInfo where | Just Refl <- eqT @e @CommandBufferInheritanceRenderingInfo = Just f | Just Refl <- eqT @e @CommandBufferInheritanceViewportScissorInfoNV = Just f | Just Refl <- eqT @e @CommandBufferInheritanceRenderPassTransformInfoQCOM = Just f + | Just Refl <- eqT @e @ExternalFormatANDROID = Just f | Just Refl <- eqT @e @CommandBufferInheritanceConditionalRenderingInfoEXT = Just f | otherwise = Nothing @@ -905,6 +908,11 @@ instance es ~ '[] => Zero (CommandBufferInheritanceInfo es) where -- -- == Valid Usage -- +-- - #VUID-VkCommandBufferBeginInfo-flags-09123# If @flags@ contains +-- 'Vulkan.Core10.Enums.CommandBufferUsageFlagBits.COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT', +-- the 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was +-- allocated from /must/ support graphics operations +-- -- - #VUID-VkCommandBufferBeginInfo-flags-00055# If @flags@ contains -- 'Vulkan.Core10.Enums.CommandBufferUsageFlagBits.COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT', -- the @framebuffer@ member of @pInheritanceInfo@ /must/ be either @@ -912,18 +920,13 @@ instance es ~ '[] => Zero (CommandBufferInheritanceInfo es) where -- 'Vulkan.Core10.Handles.Framebuffer' that is compatible with the -- @renderPass@ member of @pInheritanceInfo@ -- --- - #VUID-VkCommandBufferBeginInfo-flags-06000# If @flags@ contains --- 'Vulkan.Core10.Enums.CommandBufferUsageFlagBits.COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT' --- and the @renderPass@ member of @pInheritanceInfo@ is not --- 'Vulkan.Core10.APIConstants.NULL_HANDLE', @renderPass@ /must/ be a --- valid 'Vulkan.Core10.Handles.RenderPass' --- --- - #VUID-VkCommandBufferBeginInfo-flags-06001# If @flags@ contains +-- - #VUID-VkCommandBufferBeginInfo-flags-09240# If @flags@ contains -- 'Vulkan.Core10.Enums.CommandBufferUsageFlagBits.COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT' --- and the @renderPass@ member of @pInheritanceInfo@ is not --- 'Vulkan.Core10.APIConstants.NULL_HANDLE', the @subpass@ member of --- @pInheritanceInfo@ /must/ be a valid subpass index within the --- @renderPass@ member of @pInheritanceInfo@ +-- and the +-- +-- feature is not enabled, the @renderPass@ member of +-- @pInheritanceInfo@ /must/ not be +-- 'Vulkan.Core10.APIConstants.NULL_HANDLE' -- -- - #VUID-VkCommandBufferBeginInfo-flags-06002# If @flags@ contains -- 'Vulkan.Core10.Enums.CommandBufferUsageFlagBits.COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT' @@ -945,6 +948,20 @@ instance es ~ '[] => Zero (CommandBufferInheritanceInfo es) where -- /must/ be equal to the value of -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.CommandBufferInheritanceRenderingInfo'::@colorAttachmentCount@ -- +-- - #VUID-VkCommandBufferBeginInfo-flags-06000# If @flags@ contains +-- 'Vulkan.Core10.Enums.CommandBufferUsageFlagBits.COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT' +-- and the @renderPass@ member of @pInheritanceInfo@ is not +-- 'Vulkan.Core10.APIConstants.NULL_HANDLE', the @renderPass@ member of +-- @pInheritanceInfo@ /must/ be a valid +-- 'Vulkan.Core10.Handles.RenderPass' +-- +-- - #VUID-VkCommandBufferBeginInfo-flags-06001# If @flags@ contains +-- 'Vulkan.Core10.Enums.CommandBufferUsageFlagBits.COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT' +-- and the @renderPass@ member of @pInheritanceInfo@ is not +-- 'Vulkan.Core10.APIConstants.NULL_HANDLE', the @subpass@ member of +-- @pInheritanceInfo@ /must/ be a valid subpass index within the +-- @renderPass@ member of @pInheritanceInfo@ +-- -- == Valid Usage (Implicit) -- -- - #VUID-VkCommandBufferBeginInfo-sType-sType# @sType@ /must/ be diff --git a/src/Vulkan/Core10/CommandBufferBuilding.hs b/src/Vulkan/Core10/CommandBufferBuilding.hs index bb896df75..3c3251082 100644 --- a/src/Vulkan/Core10/CommandBufferBuilding.hs +++ b/src/Vulkan/Core10/CommandBufferBuilding.hs @@ -248,29 +248,9 @@ foreign import ccall -- -- as described in -- . --- Commands that do not interact with the given pipeline type /must/ not be --- affected by the pipeline state. --- --- - The pipeline bound to --- 'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_COMPUTE' --- controls the behavior of all --- . --- --- - The pipeline bound to --- 'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS' --- controls the behavior of all --- . --- --- - The pipeline bound to --- 'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_RAY_TRACING_KHR' --- controls the behavior of --- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.cmdTraceRaysKHR' and --- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.cmdTraceRaysIndirectKHR'. --- --- - The pipeline bound to --- 'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI' --- controls the behavior of --- 'Vulkan.Extensions.VK_HUAWEI_subpass_shading.cmdSubpassShadingHUAWEI'. +-- Commands that do not interact with the +-- +-- type /must/ not be affected by the pipeline state. -- -- == Valid Usage -- @@ -846,6 +826,13 @@ foreign import ccall -- @depthBiasClamp@, and @depthBiasSlopeFactor@ values used to create the -- currently active pipeline. -- +-- Calling this function is equivalent to calling +-- 'Vulkan.Extensions.VK_EXT_depth_bias_control.cmdSetDepthBias2EXT' +-- without a +-- 'Vulkan.Extensions.VK_EXT_depth_bias_control.DepthBiasRepresentationInfoEXT' +-- in the pNext chain of +-- 'Vulkan.Extensions.VK_EXT_depth_bias_control.DepthBiasInfoEXT'. +-- -- == Valid Usage -- -- - #VUID-vkCmdSetDepthBias-depthBiasClamp-00790# If the @@ -1691,29 +1678,29 @@ foreign import ccall -- -- == Valid Usage -- --- - #VUID-vkCmdBindIndexBuffer-offset-00431# @offset@ /must/ be less +-- - #VUID-vkCmdBindIndexBuffer-offset-08782# @offset@ /must/ be less -- than the size of @buffer@ -- --- - #VUID-vkCmdBindIndexBuffer-offset-00432# The sum of @offset@ and the --- address of the range of 'Vulkan.Core10.Handles.DeviceMemory' object --- that is backing @buffer@, /must/ be a multiple of the type indicated --- by @indexType@ +-- - #VUID-vkCmdBindIndexBuffer-offset-08783# The sum of @offset@ and the +-- base address of the range of 'Vulkan.Core10.Handles.DeviceMemory' +-- object that is backing @buffer@, /must/ be a multiple of the size of +-- the type indicated by @indexType@ -- --- - #VUID-vkCmdBindIndexBuffer-buffer-00433# @buffer@ /must/ have been +-- - #VUID-vkCmdBindIndexBuffer-buffer-08784# @buffer@ /must/ have been -- created with the -- 'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_INDEX_BUFFER_BIT' -- flag -- --- - #VUID-vkCmdBindIndexBuffer-buffer-00434# If @buffer@ is non-sparse +-- - #VUID-vkCmdBindIndexBuffer-buffer-08785# If @buffer@ is non-sparse -- then it /must/ be bound completely and contiguously to a single -- 'Vulkan.Core10.Handles.DeviceMemory' object -- --- - #VUID-vkCmdBindIndexBuffer-indexType-02507# @indexType@ /must/ not +-- - #VUID-vkCmdBindIndexBuffer-indexType-08786# @indexType@ /must/ not -- be 'Vulkan.Core10.Enums.IndexType.INDEX_TYPE_NONE_KHR' -- --- - #VUID-vkCmdBindIndexBuffer-indexType-02765# If @indexType@ is +-- - #VUID-vkCmdBindIndexBuffer-indexType-08787# If @indexType@ is -- 'Vulkan.Core10.Enums.IndexType.INDEX_TYPE_UINT8_EXT', the --- +-- -- feature /must/ be enabled -- -- == Valid Usage (Implicit) @@ -2016,6 +2003,16 @@ foreign import ccall -- /must/ contain -- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT' -- +-- - #VUID-vkCmdDraw-None-02693# If the +-- +-- extension is not enabled and any 'Vulkan.Core10.Handles.ImageView' +-- is sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a +-- result of this command, it /must/ not have a +-- 'Vulkan.Core10.Enums.ImageViewType.ImageViewType' of +-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_3D', +-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE', or +-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE_ARRAY' +-- -- - #VUID-vkCmdDraw-filterCubic-02694# Any -- 'Vulkan.Core10.Handles.ImageView' being sampled with -- 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a result of this @@ -2041,6 +2038,33 @@ foreign import ccall -- returned by -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceImageFormatProperties2' -- +-- - #VUID-vkCmdDraw-cubicRangeClamp-09212# If the +-- +-- feature is not enabled, then any 'Vulkan.Core10.Handles.ImageView' +-- being sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as +-- a result of this command +-- +-- [/must/ not have a 'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo'] +-- @reductionMode@ equal to +-- 'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM' +-- +-- - #VUID-vkCmdDraw-reductionMode-09213# Any +-- 'Vulkan.Core10.Handles.ImageView' being sampled with a +-- 'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo'::@reductionMode@ +-- equal to +-- 'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM' +-- as a result of this command /must/ sample with +-- 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' +-- +-- - #VUID-vkCmdDraw-selectableCubicWeights-09214# If the +-- +-- feature is not enabled, then any 'Vulkan.Core10.Handles.ImageView' +-- being sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as +-- a result of this command /must/ have +-- 'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.SamplerCubicWeightsCreateInfoQCOM'::@cubicWeights@ +-- equal to +-- 'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM' +-- -- - #VUID-vkCmdDraw-flags-02696# Any 'Vulkan.Core10.Handles.Image' -- created with a 'Vulkan.Core10.Image.ImageCreateInfo'::@flags@ -- containing @@ -2082,11 +2106,9 @@ foreign import ccall -- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT' -- -- - #VUID-vkCmdDraw-None-08600# For each set /n/ that is statically used --- by the 'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind --- point used by this command, or by any of the --- 'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages --- corresponding to the pipeline bind point used by this command, a --- descriptor set /must/ have been bound to /n/ at the same pipeline +-- by +-- , +-- a descriptor set /must/ have been bound to /n/ at the same pipeline -- bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is -- compatible for set /n/, with the -- 'Vulkan.Core10.Handles.PipelineLayout' or @@ -2096,12 +2118,10 @@ foreign import ccall -- -- -- - #VUID-vkCmdDraw-None-08601# For each push constant that is --- statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to the --- pipeline bind point used by this command, or by any of the --- 'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages --- corresponding to the pipeline bind point used by this command, a --- push constant value /must/ have been set for the same pipeline bind --- point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is +-- statically used by +-- , +-- a push constant value /must/ have been set for the same pipeline +-- bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is -- compatible for push constants, with the -- 'Vulkan.Core10.Handles.PipelineLayout' or -- 'Vulkan.Core10.Handles.DescriptorSetLayout' and @@ -2113,12 +2133,10 @@ foreign import ccall -- - #VUID-vkCmdDraw-maintenance4-08602# If the -- -- feature is not enabled, then for each push constant that is --- statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to the --- pipeline bind point used by this command, or by any of the --- 'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages --- corresponding to the pipeline bind point used by this command, a --- push constant value /must/ have been set for the same pipeline bind --- point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is +-- statically used by +-- , +-- a push constant value /must/ have been set for the same pipeline +-- bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is -- compatible for push constants, with the -- 'Vulkan.Core10.Handles.PipelineLayout' or -- 'Vulkan.Core10.Handles.DescriptorSetLayout' and @@ -2272,33 +2290,25 @@ foreign import ccall -- buffer as specified in the descriptor set bound to the same pipeline -- bind point -- --- - #VUID-vkCmdDraw-commandBuffer-08614# If @commandBuffer@ is an +-- - #VUID-vkCmdDraw-commandBuffer-02707# If @commandBuffer@ is an -- unprotected command buffer and -- --- is not supported, any resource accessed by the --- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind --- point used by this command or any --- 'Vulkan.Extensions.Handles.ShaderEXT' object bound to a stage --- corresponding to the pipeline bind point used by this command /must/ --- not be a protected resource --- --- - #VUID-vkCmdDraw-None-08615# If the 'Vulkan.Core10.Handles.Pipeline' --- object bound to the pipeline bind point used by this command or any --- 'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding --- to the pipeline bind point used by this command accesses a --- 'Vulkan.Core10.Handles.Sampler' or 'Vulkan.Core10.Handles.ImageView' --- object that enables +-- is not supported, any resource accessed by +-- +-- /must/ not be a protected resource +-- +-- - #VUID-vkCmdDraw-None-06550# If +-- +-- accesses a 'Vulkan.Core10.Handles.Sampler' or +-- 'Vulkan.Core10.Handles.ImageView' object that enables -- , -- that object /must/ only be used with @OpImageSample*@ or -- @OpImageSparseSample*@ instructions -- --- - #VUID-vkCmdDraw-ConstOffset-08616# If the --- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind --- point used by this command or any --- 'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding --- to the pipeline bind point used by this command accesses a --- 'Vulkan.Core10.Handles.Sampler' or 'Vulkan.Core10.Handles.ImageView' --- object that enables +-- - #VUID-vkCmdDraw-ConstOffset-06551# If +-- +-- accesses a 'Vulkan.Core10.Handles.Sampler' or +-- 'Vulkan.Core10.Handles.ImageView' object that enables -- , -- that object /must/ not use the @ConstOffset@ and @Offset@ operands -- @@ -2309,17 +2319,23 @@ foreign import ccall -- -- -- - #VUID-vkCmdDraw-format-07753# If a 'Vulkan.Core10.Handles.ImageView' --- is accessed as a result of this command, then the image view’s --- @format@ /must/ match the numeric format from the @Sampled@ @Type@ --- operand of the @OpTypeImage@ as described in the SPIR-V Sampled Type --- column of the --- --- table --- --- - #VUID-vkCmdDraw-None-04115# If a 'Vulkan.Core10.Handles.ImageView' --- is accessed using @OpImageWrite@ as a result of this command, then --- the @Type@ of the @Texel@ operand of that instruction /must/ have at --- least as many components as the image view’s format +-- is accessed as a result of this command, then the +-- +-- of the image view’s @format@ and the @Sampled@ @Type@ operand of the +-- @OpTypeImage@ /must/ match +-- +-- - #VUID-vkCmdDraw-OpImageWrite-08795# If a +-- 'Vulkan.Core10.Handles.ImageView' created with a format other than +-- 'Vulkan.Core10.Enums.Format.FORMAT_A8_UNORM_KHR' is accessed using +-- @OpImageWrite@ as a result of this command, then the @Type@ of the +-- @Texel@ operand of that instruction /must/ have at least as many +-- components as the image view’s format +-- +-- - #VUID-vkCmdDraw-OpImageWrite-08796# If a +-- 'Vulkan.Core10.Handles.ImageView' created with the format +-- 'Vulkan.Core10.Enums.Format.FORMAT_A8_UNORM_KHR' is accessed using +-- @OpImageWrite@ as a result of this command, then the @Type@ of the +-- @Texel@ operand of that instruction /must/ have four components -- -- - #VUID-vkCmdDraw-OpImageWrite-04469# If a -- 'Vulkan.Core10.Handles.BufferView' is accessed using @OpImageWrite@ @@ -2421,6 +2437,8 @@ foreign import ccall -- -- - #VUID-vkCmdDraw-OpImageWeightedSampleQCOM-06977# If -- @OpImageWeightedSampleQCOM@, @OpImageBoxFilterQCOM@, +-- @OpImageBlockMatchWindowSSDQCOM@, @OpImageBlockMatchWindowSADQCOM@, +-- @OpImageBlockMatchGatherSSDQCOM@, @OpImageBlockMatchGatherSADQCOM@, -- @OpImageBlockMatchSSDQCOM@, or @OpImageBlockMatchSADQCOM@ uses a -- 'Vulkan.Core10.Handles.Sampler' as a result of this command, then -- the sampler /must/ have been created with @@ -2428,11 +2446,34 @@ foreign import ccall -- -- - #VUID-vkCmdDraw-OpImageWeightedSampleQCOM-06978# If any command -- other than @OpImageWeightedSampleQCOM@, @OpImageBoxFilterQCOM@, +-- @OpImageBlockMatchWindowSSDQCOM@, @OpImageBlockMatchWindowSADQCOM@, +-- @OpImageBlockMatchGatherSSDQCOM@, @OpImageBlockMatchGatherSADQCOM@, -- @OpImageBlockMatchSSDQCOM@, or @OpImageBlockMatchSADQCOM@ uses a -- 'Vulkan.Core10.Handles.Sampler' as a result of this command, then -- the sampler /must/ not have been created with -- 'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM' -- +-- - #VUID-vkCmdDraw-OpImageBlockMatchWindow-09215# If a +-- @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@ +-- instruction is used to read from an +-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then +-- the image view’s +-- +-- /must/ contain +-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM' +-- +-- - #VUID-vkCmdDraw-OpImageBlockMatchWindow-09216# If a +-- @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@ +-- instruction is used to read from an +-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then +-- the image view’s format /must/ be a single-component format. +-- +-- - #VUID-vkCmdDraw-OpImageBlockMatchWindow-09217# If a +-- @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@ +-- read from a reference image as result of this command, then the +-- specified reference coordinates /must/ not fail +-- +-- -- - #VUID-vkCmdDraw-None-07288# Any shader invocation executed by this -- command /must/ -- @@ -2474,15 +2515,85 @@ foreign import ccall -- as attachments in the current render pass /must/ not be written in -- any way other than as an attachment by this command -- --- - #VUID-vkCmdDraw-None-06538# If any recorded command in the current --- subpass will write to an image subresource as an attachment, this --- command /must/ not read from the memory backing that image --- subresource in any other way than as an attachment +-- - #VUID-vkCmdDraw-None-09000# If a color attachment is written by any +-- prior command in this subpass or by the load, store, or resolve +-- operations for this subpass, it is not in the +-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT' +-- image layout, and either: +-- +-- - the +-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT' +-- is set on the currently bound pipeline or +-- +-- - the last call to +-- 'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT' +-- included +-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT' +-- and +-- +-- - there is no currently bound graphics pipeline or +-- +-- - the currently bound graphics pipeline was created with +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT' +-- it /must/ not be accessed in any way other than as an +-- attachment by this command +-- +-- - #VUID-vkCmdDraw-None-09001# If a depth attachment is written by any +-- prior command in this subpass or by the load, store, or resolve +-- operations for this subpass, it is not in the +-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT' +-- image layout, and either: +-- +-- - the +-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT' +-- is set on the currently bound pipeline or +-- +-- - the last call to +-- 'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT' +-- included +-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_DEPTH_BIT' +-- and -- --- - #VUID-vkCmdDraw-None-06539# If any recorded command in the current --- subpass will read from an image subresource used as an attachment in --- any way other than as an attachment, this command /must/ not write --- to that image subresource as an attachment +-- - there is no currently bound graphics pipeline or +-- +-- - the currently bound graphics pipeline was created with +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT' +-- it /must/ not be accessed in any way other than as an +-- attachment by this command +-- +-- - #VUID-vkCmdDraw-None-09002# If a stencil attachment is written by +-- any prior command in this subpass or by the load, store, or resolve +-- operations for this subpass, it is not in the +-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT' +-- image layout, and either: +-- +-- - the +-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT' +-- is set on the currently bound pipeline or +-- +-- - the last call to +-- 'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT' +-- included +-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT' +-- and +-- +-- - there is no currently bound graphics pipeline or +-- +-- - the currently bound graphics pipeline was created with +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT' +-- it /must/ not be accessed in any way other than as an +-- attachment by this command +-- +-- - #VUID-vkCmdDraw-None-09003# If an attachment is written by any prior +-- command in this subpass or by the load, store, or resolve operations +-- for this subpass, it /must/ not be accessed in any way other than as +-- an attachment, storage image, or sampled image by this command +-- +-- - #VUID-vkCmdDraw-None-06539# If any previously recorded command in +-- the current subpass accessed an image subresource used as an +-- attachment in this subpass in any way other than as an attachment, +-- this command /must/ not write to that image subresource as an +-- attachment -- -- - #VUID-vkCmdDraw-None-06886# If the current render pass instance uses -- a depth\/stencil attachment with a read-only layout for the depth @@ -2542,16 +2653,22 @@ foreign import ccall -- - #VUID-vkCmdDraw-None-07834# If the bound graphics pipeline state was -- created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS' dynamic --- state enabled then 'cmdSetDepthBias' /must/ have been called in the --- current command buffer prior to this drawing command +-- state enabled then 'cmdSetDepthBias' or +-- 'Vulkan.Extensions.VK_EXT_depth_bias_control.cmdSetDepthBias2EXT' +-- /must/ have been called in the current command buffer prior to this +-- drawing command -- -- - #VUID-vkCmdDraw-None-08620# If a shader object is bound to any -- graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnable' -- in the current command buffer set @depthBiasEnable@ to --- 'Vulkan.Core10.FundamentalTypes.TRUE', 'cmdSetDepthBias' /must/ have --- been called in the current command buffer prior to this drawing --- command +-- 'Vulkan.Core10.FundamentalTypes.TRUE', 'cmdSetDepthBias' or +-- 'Vulkan.Extensions.VK_EXT_depth_bias_control.cmdSetDepthBias2EXT' +-- /must/ have been called in the current command buffer prior to this +-- drawing command -- -- - #VUID-vkCmdDraw-None-07835# If the bound graphics pipeline state was -- created with the @@ -2571,7 +2688,7 @@ foreign import ccall -- the most recent call to -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT' -- in the current command buffer set the same element of --- @pColorBlendEquations@ to an +-- @pColorBlendEquations@ to a -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.ColorBlendEquationEXT' -- structure with any 'Vulkan.Core10.Enums.BlendFactor.BlendFactor' -- member with a value of @@ -2585,23 +2702,29 @@ foreign import ccall -- - #VUID-vkCmdDraw-None-07836# If the bound graphics pipeline state was -- created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS' --- dynamic state enabled then 'cmdSetDepthBounds' /must/ have been --- called in the current command buffer prior to this drawing command +-- dynamic state enabled, and if the current @depthBoundsTestEnable@ +-- state is 'Vulkan.Core10.FundamentalTypes.TRUE', then +-- 'cmdSetDepthBounds' /must/ have been called in the current command +-- buffer prior to this drawing command -- -- - #VUID-vkCmdDraw-None-08622# If a shader object is bound to any -- graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable' -- in the current command buffer set @depthBoundsTestEnable@ to --- 'Vulkan.Core10.FundamentalTypes.TRUE', 'cmdSetDepthBounds' /must/ --- have been called in the current command buffer prior to this drawing --- command +-- 'Vulkan.Core10.FundamentalTypes.TRUE', then 'cmdSetDepthBounds' +-- /must/ have been called in the current command buffer prior to this +-- drawing command -- -- - #VUID-vkCmdDraw-None-07837# If the bound graphics pipeline state was -- created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_COMPARE_MASK' --- dynamic state enabled then 'cmdSetStencilCompareMask' /must/ have --- been called in the current command buffer prior to this drawing --- command +-- dynamic state enabled, and if the current @stencilTestEnable@ state +-- is 'Vulkan.Core10.FundamentalTypes.TRUE', then +-- 'cmdSetStencilCompareMask' /must/ have been called in the current +-- command buffer prior to this drawing command -- -- - #VUID-vkCmdDraw-None-08623# If a shader object is bound to any -- graphics stage, and the most recent call to @@ -2614,8 +2737,10 @@ foreign import ccall -- - #VUID-vkCmdDraw-None-07838# If the bound graphics pipeline state was -- created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_WRITE_MASK' --- dynamic state enabled then 'cmdSetStencilWriteMask' /must/ have been --- called in the current command buffer prior to this drawing command +-- dynamic state enabled, and if the current @stencilTestEnable@ state +-- is 'Vulkan.Core10.FundamentalTypes.TRUE', then +-- 'cmdSetStencilWriteMask' /must/ have been called in the current +-- command buffer prior to this drawing command -- -- - #VUID-vkCmdDraw-None-08624# If a shader object is bound to any -- graphics stage, and the most recent call to @@ -2628,8 +2753,10 @@ foreign import ccall -- - #VUID-vkCmdDraw-None-07839# If the bound graphics pipeline state was -- created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_REFERENCE' --- dynamic state enabled then 'cmdSetStencilReference' /must/ have been --- called in the current command buffer prior to this drawing command +-- dynamic state enabled, and if the current @stencilTestEnable@ state +-- is 'Vulkan.Core10.FundamentalTypes.TRUE', then +-- 'cmdSetStencilReference' /must/ have been called in the current +-- command buffer prior to this drawing command -- -- - #VUID-vkCmdDraw-None-08625# If a shader object is bound to any -- graphics stage, and the most recent call to @@ -2665,7 +2792,10 @@ foreign import ccall -- graphics stage, and the most recent call to -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT' -- in the current command buffer set @sampleLocationsEnable@ to --- 'Vulkan.Core10.FundamentalTypes.TRUE', +-- 'Vulkan.Core10.FundamentalTypes.TRUE', and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -2689,7 +2819,10 @@ foreign import ccall -- drawing command -- -- - #VUID-vkCmdDraw-None-08627# If a shader object is bound to any --- graphics stage, +-- graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetCullMode' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -2703,7 +2836,10 @@ foreign import ccall -- drawing command -- -- - #VUID-vkCmdDraw-None-08628# If a shader object is bound to any --- graphics stage, +-- graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetFrontFace' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -2717,7 +2853,10 @@ foreign import ccall -- drawing command -- -- - #VUID-vkCmdDraw-None-08629# If a shader object is bound to any --- graphics stage, +-- graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -2731,7 +2870,10 @@ foreign import ccall -- drawing command -- -- - #VUID-vkCmdDraw-None-08630# If a shader object is bound to any --- graphics stage, +-- graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -2746,9 +2888,12 @@ foreign import ccall -- -- - #VUID-vkCmdDraw-None-08631# If a shader object is bound to any -- graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable' -- in the current command buffer set @depthTestEnable@ to --- 'Vulkan.Core10.FundamentalTypes.TRUE', +-- 'Vulkan.Core10.FundamentalTypes.TRUE', then -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthCompareOp' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -2764,7 +2909,10 @@ foreign import ccall -- - #VUID-vkCmdDraw-None-08632# If a shader object is bound to any -- graphics stage, and the -- --- feature is enabled, the +-- feature is enabled, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then the -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -2884,6 +3032,13 @@ foreign import ccall -- the last call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- +-- - #VUID-vkCmdDraw-None-09232# If a shader object is bound to any +-- graphics stage, and the @VK_NV_clip_space_w_scaling@ extension is +-- enabled on the device, then +-- 'Vulkan.Extensions.VK_NV_clip_space_w_scaling.cmdSetViewportWScalingNV' +-- must have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdDraw-None-08636# If a shader object is bound to any -- graphics stage, and the @VK_NV_clip_space_w_scaling@ extension is -- enabled on the device, then the @viewportCount@ parameter in the @@ -2917,6 +3072,30 @@ foreign import ccall -- the last call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- +-- - #VUID-vkCmdDraw-shadingRateImage-09233# If the +-- +-- feature is enabled, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set rasterizerDiscardEnable to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then +-- 'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetCoarseSampleOrderNV' +-- must have been called in the current command buffer prior to this +-- drawing command +-- +-- - #VUID-vkCmdDraw-shadingRateImage-09234# If a shader object is bound +-- to any graphics stage, and the +-- +-- feature is enabled on the device, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set rasterizerDiscardEnable to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetShadingRateImageEnableNV' +-- in the current command buffer set shadingRateImageEnable to +-- 'Vulkan.Core10.FundamentalTypes.TRUE', then +-- 'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetViewportShadingRatePaletteNV' +-- must have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdDraw-None-08637# If a shader object is bound to any -- graphics stage, and the -- @@ -2969,6 +3148,14 @@ foreign import ccall -- /must/ have been called in the current command buffer prior to this -- drawing command -- +-- - #VUID-vkCmdDraw-exclusiveScissor-09235# If a shader object is bound +-- to any graphics stage, and the +-- +-- feature is enabled, then +-- 'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorEnableNV' +-- must have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdDraw-None-08638# If a shader object is bound to any -- graphics stage, and the most recent call to -- 'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorEnableNV' @@ -3019,8 +3206,9 @@ foreign import ccall -- drawing command and the @logicOp@ /must/ be a valid -- 'Vulkan.Core10.Enums.LogicOp.LogicOp' value -- --- - #VUID-vkCmdDraw-None-08641# If a shader object is bound to any --- graphics stage, and the +-- - #VUID-vkCmdDraw-None-08641# If a shader object is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage, and the -- -- feature is enabled on the device, and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' @@ -3105,6 +3293,11 @@ foreign import ccall -- to be the same as the number of samples for the current render pass -- color and\/or depth\/stencil attachments -- +-- - #VUID-vkCmdDraw-None-08876# If a shader object is bound to any +-- graphics stage, the current render pass instance /must/ have been +-- begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' +-- -- - #VUID-vkCmdDraw-imageView-06172# If the current render pass instance -- was begun with -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', @@ -3177,8 +3370,10 @@ foreign import ccall -- equal to -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ -- --- - #VUID-vkCmdDraw-colorAttachmentCount-06180# If the current render --- pass instance was begun with +-- - #VUID-vkCmdDraw-dynamicRenderingUnusedAttachments-08910# If the +-- +-- feature is not enabled, and the current render pass instance was +-- begun with -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' -- and -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ @@ -3191,8 +3386,30 @@ foreign import ccall -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@ -- used to create the currently bound graphics pipeline -- --- - #VUID-vkCmdDraw-colorAttachmentCount-07616# If the current render --- pass instance was begun with +-- - #VUID-vkCmdDraw-dynamicRenderingUnusedAttachments-08911# If the +-- +-- feature is enabled, and the current render pass instance was begun +-- with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' +-- and +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ +-- greater than @0@, then each element of the +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@ +-- array with a @imageView@ not equal to +-- 'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created +-- with a 'Vulkan.Core10.Enums.Format.Format' equal to the +-- corresponding element of +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@ +-- used to create the currently bound graphics pipeline, or the +-- corresponding element of +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@, +-- if it exists, /must/ be +-- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' +-- +-- - #VUID-vkCmdDraw-dynamicRenderingUnusedAttachments-08912# If the +-- +-- feature is not enabled, and the current render pass instance was +-- begun with -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' -- and -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ @@ -3205,6 +3422,131 @@ foreign import ccall -- used to create the currently bound pipeline equal to -- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' -- +-- - #VUID-vkCmdDraw-colorAttachmentCount-09362# If the current render +-- pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- with a +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ +-- equal to @1@, there is no shader object bound to any graphics stage, +-- and a color attachment with a resolve mode of +-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID', +-- each element of the +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@ +-- array with a @resolveImageView@ not equal to +-- 'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created +-- with an image created with a +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- value equal to the +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- value used to create the currently bound graphics pipeline +-- +-- - #VUID-vkCmdDraw-None-09363# If there is no shader object bound to +-- any graphics stage, the current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' +-- and a +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ +-- equal to @1@, and a color attachment with a resolve mode of +-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID', +-- each element of the +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@ +-- array with a @imageView@ not equal to +-- 'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created +-- with an image created with a +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- value equal to the +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- value used to create the currently bound graphics pipeline +-- +-- - #VUID-vkCmdDraw-None-09364# If the current render pass instance was +-- begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- there is no shader object bound to any graphics stage, and the +-- currently bound graphics pipeline was created with a non-zero +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- value and with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT' +-- dynamic state enabled, then +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT' +-- /must/ have set the blend enable to +-- 'Vulkan.Core10.FundamentalTypes.FALSE' prior to this drawing command +-- +-- - #VUID-vkCmdDraw-None-09365# If the current render pass instance was +-- begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- there is no shader object bound to any graphics stage, and the +-- currently bound graphics pipeline was created with a non-zero +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- value and with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT' +-- dynamic state enabled, then +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT' +-- /must/ have set @rasterizationSamples@ to +-- 'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT' prior +-- to this drawing command +-- +-- - #VUID-vkCmdDraw-None-09366# If there is a shader object bound to any +-- graphics stage, and the current render pass includes a color +-- attachment that uses the +-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID' +-- resolve mode, then +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT' +-- /must/ have set blend enable to +-- 'Vulkan.Core10.FundamentalTypes.FALSE' prior to this drawing command +-- +-- - #VUID-vkCmdDraw-rasterizationSamples-09367# If there is a shader +-- object bound to any graphics stage, and the current render pass +-- includes a color attachment that uses the +-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID' +-- resolve mode, then +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT' +-- /must/ have set @rasterizationSamples@ to +-- 'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT' prior +-- to this drawing command +-- +-- - #VUID-vkCmdDraw-None-09368# If the current render pass instance was +-- begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- there is no shader object bound to any graphics stage, and the +-- currently bound graphics pipeline was created with a non-zero +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- value and with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR' +-- dynamic state enabled, then +-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR' +-- /must/ have set @pFragmentSize->width@ to @1@ prior to this drawing +-- command +-- +-- - #VUID-vkCmdDraw-None-09369# If the current render pass instance was +-- begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- there is no shader object bound to any graphics stage, and the +-- currently bound graphics pipeline was created with a non-zero +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- value and with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR' +-- dynamic state enabled, then +-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR' +-- /must/ have set @pFragmentSize->height@ to @1@ prior to this drawing +-- command +-- +-- - #VUID-vkCmdDraw-pFragmentSize-09370# If there is a shader object +-- bound to any graphics stage, and the current render pass includes a +-- color attachment that uses the +-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID' +-- resolve mode, then +-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR' +-- /must/ have set @pFragmentSize->width@ to @1@ prior to this drawing +-- command +-- +-- - #VUID-vkCmdDraw-pFragmentSize-09371# If there is a shader object +-- bound to any graphics stage, and the current render pass includes a +-- color attachment that uses the +-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID' +-- resolve mode, then +-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR' +-- /must/ have set @pFragmentSize->height@ to @1@ prior to this drawing +-- command +-- -- - #VUID-vkCmdDraw-None-07749# If the bound graphics pipeline state was -- created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT' @@ -3216,7 +3558,9 @@ foreign import ccall -- - #VUID-vkCmdDraw-None-08646# If the -- -- feature is enabled on the device, and a shader object is bound to --- the fragment stage, and the most recent call to +-- the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage, and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' -- in the current command buffer set @rasterizerDiscardEnable@ to -- 'Vulkan.Core10.FundamentalTypes.FALSE', then @@ -3236,7 +3580,9 @@ foreign import ccall -- - #VUID-vkCmdDraw-None-08647# If the -- -- feature is enabled on the device, and a shader object is bound to --- the fragment stage, and the most recent call to +-- the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage, and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' -- in the current command buffer set @rasterizerDiscardEnable@ to -- 'Vulkan.Core10.FundamentalTypes.FALSE', then the @attachmentCount@ @@ -3262,6 +3608,16 @@ foreign import ccall -- /must/ have been called in the current command buffer prior to this -- drawing command -- +-- - #VUID-vkCmdDraw-rasterizerDiscardEnable-09236# If the +-- @VK_EXT_discard_rectangles@ extension is enabled, and a shader +-- object is bound to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then +-- 'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEXT' +-- /must/ have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdDraw-None-08648# If the @VK_EXT_discard_rectangles@ -- extension is enabled, and a shader object is bound to any graphics -- stage, and the most recent call to @@ -3293,10 +3649,24 @@ foreign import ccall -- /must/ have been called in the current command buffer prior to this -- drawing command -- --- - #VUID-vkCmdDraw-pDepthAttachment-06181# If the current render pass --- instance was begun with --- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' --- and +-- - #VUID-vkCmdDraw-dynamicRenderingUnusedAttachments-08913# If the +-- current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- the +-- +-- feature is not enabled, and +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@ +-- was 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@ +-- used to create the currently bound graphics pipeline /must/ be equal +-- to 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' +-- +-- - #VUID-vkCmdDraw-dynamicRenderingUnusedAttachments-08914# If current +-- render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- the +-- +-- feature is not enabled, and -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@ -- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@ @@ -3304,20 +3674,39 @@ foreign import ccall -- to the 'Vulkan.Core10.Enums.Format.Format' used to create -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@ -- --- - #VUID-vkCmdDraw-pDepthAttachment-07617# If the current render pass --- instance was begun with --- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' --- and +-- - #VUID-vkCmdDraw-dynamicRenderingUnusedAttachments-08915# If the +-- current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- the +-- +-- feature is enabled, -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@ --- was 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of +-- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the value of -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@ +-- used to create the currently bound graphics pipeline was not equal +-- to the 'Vulkan.Core10.Enums.Format.Format' used to create +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@, +-- the value of the format /must/ be +-- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' +-- +-- - #VUID-vkCmdDraw-dynamicRenderingUnusedAttachments-08916# If the +-- current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- the +-- +-- feature is not enabled, and +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@ +-- was 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@ -- used to create the currently bound graphics pipeline /must/ be equal -- to 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' -- --- - #VUID-vkCmdDraw-pStencilAttachment-06182# If the current render pass --- instance was begun with --- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' --- and +-- - #VUID-vkCmdDraw-dynamicRenderingUnusedAttachments-08917# If current +-- render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- the +-- +-- feature is not enabled, and -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@ -- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@ @@ -3325,15 +3714,20 @@ foreign import ccall -- to the 'Vulkan.Core10.Enums.Format.Format' used to create -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@ -- --- - #VUID-vkCmdDraw-pStencilAttachment-07618# If the current render pass --- instance was begun with --- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' --- and +-- - #VUID-vkCmdDraw-dynamicRenderingUnusedAttachments-08918# If the +-- current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- the +-- +-- feature is enabled, -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@ --- was 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of +-- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the value of -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@ --- used to create the currently bound graphics pipeline /must/ be equal --- to 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' +-- used to create the currently bound graphics pipeline was not equal +-- to the 'Vulkan.Core10.Enums.Format.Format' used to create +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@, +-- the value of the format /must/ be +-- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' -- -- - #VUID-vkCmdDraw-imageView-06183# If the current render pass instance -- was begun with @@ -3480,6 +3874,40 @@ foreign import ccall -- 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@renderPass@ -- equal to 'Vulkan.Core10.APIConstants.NULL_HANDLE' -- +-- - #VUID-vkCmdDraw-pColorAttachments-08963# If the current render pass +-- instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- there is a graphics pipeline bound with a fragment shader that +-- statically writes to a color attachment, the color write mask is not +-- zero, color writes are enabled, and the corresponding element of the +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments->imageView@ +-- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', then the +-- corresponding element of +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@ +-- used to create the pipeline /must/ not be +-- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' +-- +-- - #VUID-vkCmdDraw-pDepthAttachment-08964# If the current render pass +-- instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- there is a graphics pipeline bound, depth test is enabled, depth +-- write is enabled, and the +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@ +-- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', then the +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@ +-- used to create the pipeline /must/ not be +-- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' +-- +-- - #VUID-vkCmdDraw-pStencilAttachment-08965# If the current render pass +-- instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- there is a graphics pipeline bound, stencil test is enabled and the +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@ +-- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', then the +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@ +-- used to create the pipeline /must/ not be +-- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' +-- -- - #VUID-vkCmdDraw-primitivesGeneratedQueryWithRasterizerDiscard-06708# -- If the -- @@ -3506,6 +3934,21 @@ foreign import ccall -- /must/ have been called in the current command buffer prior to this -- drawing command -- +-- - #VUID-vkCmdDraw-None-07620# If the bound graphics pipeline state was +-- created with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT' +-- dynamic state enabled then +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClampEnableEXT' +-- /must/ have been called in the current command buffer prior to this +-- drawing command +-- +-- - #VUID-vkCmdDraw-None-09237# If a shader object is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT' +-- stage, then +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetTessellationDomainOriginEXT' +-- /must/ have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdDraw-None-08650# If the -- -- feature is enabled, and a shader object is bound to any graphics @@ -3576,6 +4019,17 @@ foreign import ccall -- /must/ have been called in the current command buffer prior to this -- drawing command -- +-- - #VUID-vkCmdDraw-alphaToCoverageEnable-08919# If the bound graphics +-- pipeline state was created with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT' +-- dynamic state enabled, and @alphaToCoverageEnable@ was +-- 'Vulkan.Core10.FundamentalTypes.TRUE' in the last call to +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT', +-- then the +-- +-- /must/ contain a variable for the alpha @Component@ word in +-- @Location@ 0 at @Index@ 0 +-- -- - #VUID-vkCmdDraw-None-08654# If a shader object is bound to any -- graphics stage, and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' @@ -3585,6 +4039,15 @@ foreign import ccall -- /must/ have been called in the current command buffer prior to this -- drawing command -- +-- - #VUID-vkCmdDraw-alphaToCoverageEnable-08920# If a shader object is +-- bound to any graphics stage, and the most recent call to +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT' +-- in the current command buffer set @alphaToCoverageEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.TRUE', then the +-- +-- /must/ contain a variable for the alpha @Component@ word in +-- @Location@ 0 at @Index@ 0 +-- -- - #VUID-vkCmdDraw-None-07625# If the bound graphics pipeline state was -- created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT' @@ -3614,7 +4077,8 @@ foreign import ccall -- -- - #VUID-vkCmdDraw-None-08656# If the -- --- feature is enabled, and a shader object is bound to any graphics +-- feature is enabled, and a shader object is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' -- stage, and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' -- in the current command buffer set @rasterizerDiscardEnable@ to @@ -3631,8 +4095,9 @@ foreign import ccall -- /must/ have been called in the current command buffer prior to this -- drawing command -- --- - #VUID-vkCmdDraw-None-08657# If a shader object is bound to any --- graphics stage, and the most recent call to +-- - #VUID-vkCmdDraw-None-08657# If a shader object is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage, and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' -- in the current command buffer set @rasterizerDiscardEnable@ to -- 'Vulkan.Core10.FundamentalTypes.FALSE', then @@ -3668,8 +4133,9 @@ foreign import ccall -- /must/ have been called in the current command buffer prior to this -- drawing command -- --- - #VUID-vkCmdDraw-None-08659# If a shader object is bound to any --- graphics stage, and the most recent call to +-- - #VUID-vkCmdDraw-None-08659# If a shader object is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage, and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' -- in the current command buffer set @rasterizerDiscardEnable@ to -- 'Vulkan.Core10.FundamentalTypes.FALSE', then @@ -3687,7 +4153,8 @@ foreign import ccall -- -- - #VUID-vkCmdDraw-None-08660# If the -- --- feature is enabled, and a shader object is bound to the geometry +-- feature is enabled, and a shader object is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT' -- stage, then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationStreamEXT' -- /must/ have been called in the current command buffer prior to this @@ -3786,7 +4253,8 @@ foreign import ccall -- drawing command -- -- - #VUID-vkCmdDraw-None-08665# If the @VK_EXT_provoking_vertex@ --- extension is enabled, and a shader object is bound to the vertex +-- extension is enabled, and a shader object is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT' -- stage, then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetProvokingVertexModeEXT' -- /must/ have been called in the current command buffer prior to this @@ -3896,7 +4364,7 @@ foreign import ccall -- stage, then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClipNegativeOneToOneEXT' -- /must/ have been called in the current command buffer prior to this --- drawing command ifdef::VK_EXT_extended_dynamic_state3 +-- drawing command -- -- - #VUID-vkCmdDraw-None-07640# If the bound graphics pipeline state was -- created with the @@ -3904,7 +4372,7 @@ foreign import ccall -- dynamic state enabled then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetViewportWScalingEnableNV' -- /must/ have been called in the current command buffer prior to this --- drawing command endif::VK_EXT_extended_dynamic_state3 +-- drawing command -- -- - #VUID-vkCmdDraw-None-08674# If the @VK_NV_clip_space_w_scaling@ -- extension is enabled, and a shader object is bound to any graphics @@ -3938,7 +4406,12 @@ foreign import ccall -- -- - #VUID-vkCmdDraw-None-08676# If the -- @VK_NV_fragment_coverage_to_color@ extension is enabled, and a --- shader object is bound to any graphics stage, then +-- shader object is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -3953,8 +4426,9 @@ foreign import ccall -- -- - #VUID-vkCmdDraw-None-08677# If the -- @VK_NV_fragment_coverage_to_color@ extension is enabled, and a --- shader object is bound to any graphics stage, and the most recent --- call to +-- shader object is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage, and the most recent call to -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV' -- in the current command buffer set @coverageToColorEnable@ to -- 'Vulkan.Core10.FundamentalTypes.TRUE', then @@ -3972,7 +4446,10 @@ foreign import ccall -- -- - #VUID-vkCmdDraw-None-08678# If the @VK_NV_framebuffer_mixed_samples@ -- extension is enabled, and a shader object is bound to any graphics --- stage, then +-- stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationModeNV' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -3987,7 +4464,15 @@ foreign import ccall -- -- - #VUID-vkCmdDraw-None-08679# If the @VK_NV_framebuffer_mixed_samples@ -- extension is enabled, and a shader object is bound to any graphics --- stage, then +-- stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationModeNV' +-- in the current command buffer set coverageModulationMode to any +-- value other than +-- 'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.COVERAGE_MODULATION_MODE_NONE_NV', +-- then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -4003,6 +4488,9 @@ foreign import ccall -- - #VUID-vkCmdDraw-None-08680# If the @VK_NV_framebuffer_mixed_samples@ -- extension is enabled, and a shader object is bound to any graphics -- stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV' -- in the current command buffer set @coverageModulationTableEnable@ to -- 'Vulkan.Core10.FundamentalTypes.TRUE', then @@ -4018,10 +4506,25 @@ foreign import ccall -- /must/ have been called in the current command buffer prior to this -- drawing command -- +-- - #VUID-vkCmdDraw-pipelineFragmentShadingRate-09238# If the +-- +-- feature is enabled, and a shader object is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set rasterizerDiscardEnable to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then +-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR' +-- must have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdDraw-None-08681# If the -- -- feature is enabled, and a shader object is bound to any graphics --- stage, then +-- stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetShadingRateImageEnableNV' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -4031,13 +4534,16 @@ foreign import ccall -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV' -- dynamic state enabled then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRepresentativeFragmentTestEnableNV' --- must have been called in the current command buffer prior to this +-- /must/ have been called in the current command buffer prior to this -- drawing command -- -- - #VUID-vkCmdDraw-None-08682# If the -- -- feature is enabled, and a shader object is bound to any graphics --- stage, then +-- stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRepresentativeFragmentTestEnableNV' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -4053,7 +4559,10 @@ foreign import ccall -- - #VUID-vkCmdDraw-None-08683# If the -- -- feature is enabled, and a shader object is bound to any graphics --- stage, then +-- stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageReductionModeNV' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -4102,18 +4611,29 @@ foreign import ccall -- in the last call to -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT' -- --- - #VUID-vkCmdDraw-multisampledRenderToSingleSampled-07475# If the --- bound graphics pipeline state was created with the +-- - #VUID-vkCmdDraw-rasterizationSamples-07474# If the bound graphics +-- pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT' --- state enabled, and none of the @VK_AMD_mixed_attachment_samples@ --- extension, @VK_NV_framebuffer_mixed_samples@ extension, or the --- --- feature is enabled, then the @rasterizationSamples@ in the last call --- to +-- state enabled, and neither the @VK_AMD_mixed_attachment_samples@ nor +-- the @VK_NV_framebuffer_mixed_samples@ extensions are enabled, then +-- the @rasterizationSamples@ in the last call to -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT' -- /must/ be the same as the current subpass color and\/or -- depth\/stencil attachments -- +-- - #VUID-vkCmdDraw-None-09211# If the bound graphics pipeline state was +-- created with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT' +-- state enabled, or a shader object is bound to any graphics stage, +-- and the current render pass instance includes a +-- 'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT' +-- structure with @multisampledRenderToSingleSampledEnable@ equal to +-- 'Vulkan.Core10.FundamentalTypes.TRUE', then the +-- @rasterizationSamples@ in the last call to +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT' +-- /must/ be the same as the @rasterizationSamples@ member of that +-- structure +-- -- - #VUID-vkCmdDraw-firstAttachment-07476# If the bound graphics -- pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT' @@ -4172,7 +4692,7 @@ foreign import ccall -- and -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendAdvancedEXT' -- have enabled advanced blending, then the number of active color --- attachments in the current subpass must not exceed +-- attachments in the current subpass /must/ not exceed -- -- -- - #VUID-vkCmdDraw-primitivesGeneratedQueryWithNonZeroStreams-07481# If @@ -4334,7 +4854,7 @@ foreign import ccall -- @VK_NV_framebuffer_mixed_samples@ extension is enabled, and if -- current subpass has a depth\/stencil attachment and depth test, -- stencil test, or depth bounds test are enabled in the currently --- bound pipeline state, then the current @rasterizationSamples@ must +-- bound pipeline state, then the current @rasterizationSamples@ /must/ -- be the same as the sample count of the depth\/stencil attachment -- -- - #VUID-vkCmdDraw-coverageToColorEnable-07490# If the bound graphics @@ -4365,7 +4885,7 @@ foreign import ccall -- states enabled, the current coverage reduction mode -- @coverageReductionMode@, then the current @rasterizationSamples@, -- and the sample counts for the color and depth\/stencil attachments --- (if the subpass has them) must be a valid combination returned by +-- (if the subpass has them) /must/ be a valid combination returned by -- 'Vulkan.Extensions.VK_NV_coverage_reduction_mode.getPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV' -- -- - #VUID-vkCmdDraw-viewportCount-07492# If the bound graphics pipeline @@ -4453,7 +4973,7 @@ foreign import ccall -- -- feature /must/ be enabled and -- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@strictLines@ --- must be VK_TRUE +-- /must/ be 'Vulkan.Core10.FundamentalTypes.TRUE' -- -- - #VUID-vkCmdDraw-conservativePointAndLineRasterization-07499# If the -- bound graphics pipeline state was created with the @@ -4480,7 +5000,15 @@ foreign import ccall -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT', -- then -- --- must not be active +-- /must/ not be active +-- +-- - #VUID-vkCmdDraw-None-08877# If the bound graphics pipeline state was +-- created with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT' +-- dynamic state +-- 'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT' +-- /must/ have been called in the current command buffer prior to this +-- drawing command -- -- - #VUID-vkCmdDraw-None-07850# If dynamic state was inherited from -- 'Vulkan.Extensions.VK_NV_inherited_viewport_scissor.CommandBufferInheritanceViewportScissorInfoNV', @@ -4489,7 +5017,7 @@ foreign import ccall -- -- - #VUID-vkCmdDraw-None-08684# If there is no bound graphics pipeline, -- 'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/ --- have been called on the current command buffer with @pStages@ with +-- have been called in the current command buffer with @pStages@ with -- an element of -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT' -- @@ -4498,7 +5026,7 @@ foreign import ccall -- -- feature is enabled, -- 'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/ --- have been called on the current command buffer with @pStages@ with +-- have been called in the current command buffer with @pStages@ with -- an element of -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT' -- @@ -4507,7 +5035,7 @@ foreign import ccall -- -- feature is enabled, -- 'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/ --- have been called on the current command buffer with @pStages@ with +-- have been called in the current command buffer with @pStages@ with -- an element of -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT' -- @@ -4516,13 +5044,13 @@ foreign import ccall -- -- feature is enabled, -- 'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/ --- have been called on the current command buffer with @pStages@ with +-- have been called in the current command buffer with @pStages@ with -- an element of -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT' -- -- - #VUID-vkCmdDraw-None-08688# If there is no bound graphics pipeline, -- 'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/ --- have been called on the current command buffer with @pStages@ with +-- have been called in the current command buffer with @pStages@ with -- an element of -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' -- @@ -4531,7 +5059,7 @@ foreign import ccall -- -- feature is enabled, -- 'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/ --- have been called on the current command buffer with @pStages@ with +-- have been called in the current command buffer with @pStages@ with -- an element of -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT' -- @@ -4540,7 +5068,7 @@ foreign import ccall -- -- feature is enabled, -- 'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/ --- have been called on the current command buffer with @pStages@ with +-- have been called in the current command buffer with @pStages@ with -- an element of -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT' -- @@ -4552,8 +5080,8 @@ foreign import ccall -- features is enabled, one of the -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT' or -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT' --- stages must have a valid 'Vulkan.Extensions.Handles.ShaderEXT' --- bound, and the other must have no +-- stages /must/ have a valid 'Vulkan.Extensions.Handles.ShaderEXT' +-- bound, and the other /must/ have no -- 'Vulkan.Extensions.Handles.ShaderEXT' bound -- -- - #VUID-vkCmdDraw-None-08694# If there is no bound graphics pipeline, @@ -4617,6 +5145,36 @@ foreign import ccall -- 'Vulkan.Extensions.VK_EXT_shader_object.createShadersEXT' call -- /must/ not have any 'Vulkan.Extensions.Handles.ShaderEXT' bound -- +-- - #VUID-vkCmdDraw-None-08878# All bound graphics shader objects /must/ +-- have been created with identical or identically defined push +-- constant ranges +-- +-- - #VUID-vkCmdDraw-None-08879# All bound graphics shader objects /must/ +-- have been created with identical or identically defined arrays of +-- descriptor set layouts +-- +-- - #VUID-vkCmdDraw-colorAttachmentCount-09372# If the current render +-- pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' +-- and a +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ +-- equal to @1@, a color attachment with a resolve mode of +-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID', +-- and a fragment shader is bound, it /must/ not declare the +-- @DepthReplacing@ or @StencilRefReplacingEXT@ execution modes +-- +-- - #VUID-vkCmdDraw-None-08880# If a shader object is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage and the +-- +-- feature is enabled on the device, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE' +-- 'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT' +-- /must/ have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdDraw-pDynamicStates-08715# If the bound graphics pipeline -- state includes a fragment shader stage, was created with -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_WRITE_ENABLE' @@ -4637,6 +5195,32 @@ foreign import ccall -- mode and uses @OpStencilAttachmentReadEXT@, the @writeMask@ -- parameter in the last call to 'cmdSetStencilWriteMask' /must/ be @0@ -- +-- - #VUID-vkCmdDraw-None-09116# If a shader object is bound to any +-- graphics stage or the currently bound graphics pipeline was created +-- with +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_MASK_EXT', +-- and the format of any color attachment is +-- 'Vulkan.Core10.Enums.Format.FORMAT_E5B9G9R9_UFLOAT_PACK32', the +-- corresponding element of the @pColorWriteMasks@ parameter of +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorWriteMaskEXT' +-- /must/ either include all of +-- 'Vulkan.Core10.Enums.ColorComponentFlagBits.COLOR_COMPONENT_R_BIT', +-- 'Vulkan.Core10.Enums.ColorComponentFlagBits.COLOR_COMPONENT_G_BIT', +-- and +-- 'Vulkan.Core10.Enums.ColorComponentFlagBits.COLOR_COMPONENT_B_BIT', +-- or none of them +-- +-- - #VUID-vkCmdDraw-maxFragmentDualSrcAttachments-09239# If +-- +-- is enabled for any attachment where either the source or destination +-- blend factors for that attachment +-- , +-- the maximum value of @Location@ for any output attachment +-- +-- in the @Fragment@ @Execution@ @Model@ executed by this command +-- /must/ be less than +-- +-- -- - #VUID-vkCmdDraw-commandBuffer-02712# If @commandBuffer@ is a -- protected command buffer and -- @@ -4719,6 +5303,13 @@ foreign import ccall -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT' -- /must/ not be @NULL@ -- +-- - #VUID-vkCmdDraw-None-08881# If a shader object is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT' +-- stage, then +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology' +-- /must/ have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdDraw-None-04914# If the bound graphics pipeline state was -- created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT' @@ -4735,6 +5326,52 @@ foreign import ccall -- @OpEntryPoint@ /must/ contain a location in -- 'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@location@ -- +-- - #VUID-vkCmdDraw-Input-08734# If the bound graphics pipeline state +-- was created with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT' +-- dynamic state enabled, then the numeric type associated with all +-- @Input@ variables of the corresponding @Location@ in the @Vertex@ +-- @Execution@ @Model@ @OpEntryPoint@ /must/ be the same as +-- 'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@format@ +-- +-- - #VUID-vkCmdDraw-format-08936# If there is a shader object bound to a +-- graphics stage or the currently bound graphics pipeline was created +-- with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT' +-- dynamic state enabled, and +-- 'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@format@ +-- has a 64-bit component, then the scalar width associated with all +-- @Input@ variables of the corresponding @Location@ in the @Vertex@ +-- @Execution@ @Model@ @OpEntryPoint@ /must/ be 64-bit +-- +-- - #VUID-vkCmdDraw-format-08937# If there is a shader object bound to a +-- graphics stage or the currently bound graphics pipeline was created +-- with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT' +-- dynamic state enabled, and the scalar width associated with a +-- @Location@ decorated @Input@ variable in the @Vertex@ @Execution@ +-- @Model@ @OpEntryPoint@ is 64-bit, then the corresponding +-- 'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@format@ +-- /must/ have a 64-bit component +-- +-- - #VUID-vkCmdDraw-None-09203# If there is a shader object bound to a +-- graphics stage or the currently bound graphics pipeline was created +-- with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT' +-- dynamic state enabled, and +-- 'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@format@ +-- has a 64-bit component, then all @Input@ variables at the +-- corresponding @Location@ in the @Vertex@ @Execution@ @Model@ +-- @OpEntryPoint@ /must/ not use components that are not present in the +-- format +-- +-- - #VUID-vkCmdDraw-None-08882# If a shader object is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT' +-- stage, then +-- 'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT' +-- /must/ have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdDraw-None-04875# If the bound graphics pipeline state was -- created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT' @@ -4743,6 +5380,13 @@ foreign import ccall -- /must/ have been called in the current command buffer prior to this -- drawing command -- +-- - #VUID-vkCmdDraw-None-08883# If a shader object is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT' +-- stage, then +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetPatchControlPointsEXT' +-- /must/ have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdDraw-None-04879# If the bound graphics pipeline state was -- created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE' @@ -4751,6 +5395,15 @@ foreign import ccall -- /must/ have been called in the current command buffer prior to this -- drawing command -- +-- - #VUID-vkCmdDraw-rasterizerDiscardEnable-08884# If a shader object is +-- bound to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetPrimitiveRestartEnable' +-- /must/ have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdDraw-stage-06481# The bound graphics pipeline /must/ not -- have been created with the -- 'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo'::@stage@ @@ -4761,6 +5414,13 @@ foreign import ccall -- or -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT' -- +-- - #VUID-vkCmdDraw-None-08885# There /must/ be no shader object bound +-- to either of the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT' +-- or +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT' +-- stages +-- -- == Valid Usage (Implicit) -- -- - #VUID-vkCmdDraw-commandBuffer-parameter# @commandBuffer@ /must/ be a @@ -4849,16 +5509,18 @@ foreign import ccall -- primitive topology and @indexCount@ vertices whose indices are retrieved -- from the index buffer. The index buffer is treated as an array of -- tightly packed unsigned integers of size defined by the --- 'cmdBindIndexBuffer'::@indexType@ parameter with which the buffer was --- bound. +-- 'Vulkan.Extensions.VK_KHR_maintenance5.cmdBindIndexBuffer2KHR'::@indexType@ +-- or the 'cmdBindIndexBuffer'::@indexType@ parameter with which the buffer +-- was bound. -- -- The first vertex index is at an offset of @firstIndex@ × @indexSize@ + -- @offset@ within the bound index buffer, where @offset@ is the offset --- specified by 'cmdBindIndexBuffer' and @indexSize@ is the byte size of --- the type specified by @indexType@. Subsequent index values are retrieved --- from consecutive locations in the index buffer. Indices are first --- compared to the primitive restart value, then zero extended to 32 bits --- (if the @indexType@ is +-- specified by 'cmdBindIndexBuffer' or +-- 'Vulkan.Extensions.VK_KHR_maintenance5.cmdBindIndexBuffer2KHR', and +-- @indexSize@ is the byte size of the type specified by @indexType@. +-- Subsequent index values are retrieved from consecutive locations in the +-- index buffer. Indices are first compared to the primitive restart value, +-- then zero extended to 32 bits (if the @indexType@ is -- 'Vulkan.Core10.Enums.IndexType.INDEX_TYPE_UINT8_EXT' or -- 'Vulkan.Core10.Enums.IndexType.INDEX_TYPE_UINT16') and have -- @vertexOffset@ added to them, before being supplied as the @vertexIndex@ @@ -4921,6 +5583,16 @@ foreign import ccall -- /must/ contain -- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT' -- +-- - #VUID-vkCmdDrawIndexed-None-02693# If the +-- +-- extension is not enabled and any 'Vulkan.Core10.Handles.ImageView' +-- is sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a +-- result of this command, it /must/ not have a +-- 'Vulkan.Core10.Enums.ImageViewType.ImageViewType' of +-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_3D', +-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE', or +-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE_ARRAY' +-- -- - #VUID-vkCmdDrawIndexed-filterCubic-02694# Any -- 'Vulkan.Core10.Handles.ImageView' being sampled with -- 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a result of this @@ -4946,6 +5618,33 @@ foreign import ccall -- returned by -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceImageFormatProperties2' -- +-- - #VUID-vkCmdDrawIndexed-cubicRangeClamp-09212# If the +-- +-- feature is not enabled, then any 'Vulkan.Core10.Handles.ImageView' +-- being sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as +-- a result of this command +-- +-- [/must/ not have a 'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo'] +-- @reductionMode@ equal to +-- 'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM' +-- +-- - #VUID-vkCmdDrawIndexed-reductionMode-09213# Any +-- 'Vulkan.Core10.Handles.ImageView' being sampled with a +-- 'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo'::@reductionMode@ +-- equal to +-- 'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM' +-- as a result of this command /must/ sample with +-- 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' +-- +-- - #VUID-vkCmdDrawIndexed-selectableCubicWeights-09214# If the +-- +-- feature is not enabled, then any 'Vulkan.Core10.Handles.ImageView' +-- being sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as +-- a result of this command /must/ have +-- 'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.SamplerCubicWeightsCreateInfoQCOM'::@cubicWeights@ +-- equal to +-- 'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM' +-- -- - #VUID-vkCmdDrawIndexed-flags-02696# Any -- 'Vulkan.Core10.Handles.Image' created with a -- 'Vulkan.Core10.Image.ImageCreateInfo'::@flags@ containing @@ -4987,11 +5686,9 @@ foreign import ccall -- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT' -- -- - #VUID-vkCmdDrawIndexed-None-08600# For each set /n/ that is --- statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to the --- pipeline bind point used by this command, or by any of the --- 'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages --- corresponding to the pipeline bind point used by this command, a --- descriptor set /must/ have been bound to /n/ at the same pipeline +-- statically used by +-- , +-- a descriptor set /must/ have been bound to /n/ at the same pipeline -- bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is -- compatible for set /n/, with the -- 'Vulkan.Core10.Handles.PipelineLayout' or @@ -5001,12 +5698,10 @@ foreign import ccall -- -- -- - #VUID-vkCmdDrawIndexed-None-08601# For each push constant that is --- statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to the --- pipeline bind point used by this command, or by any of the --- 'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages --- corresponding to the pipeline bind point used by this command, a --- push constant value /must/ have been set for the same pipeline bind --- point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is +-- statically used by +-- , +-- a push constant value /must/ have been set for the same pipeline +-- bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is -- compatible for push constants, with the -- 'Vulkan.Core10.Handles.PipelineLayout' or -- 'Vulkan.Core10.Handles.DescriptorSetLayout' and @@ -5018,12 +5713,10 @@ foreign import ccall -- - #VUID-vkCmdDrawIndexed-maintenance4-08602# If the -- -- feature is not enabled, then for each push constant that is --- statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to the --- pipeline bind point used by this command, or by any of the --- 'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages --- corresponding to the pipeline bind point used by this command, a --- push constant value /must/ have been set for the same pipeline bind --- point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is +-- statically used by +-- , +-- a push constant value /must/ have been set for the same pipeline +-- bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is -- compatible for push constants, with the -- 'Vulkan.Core10.Handles.PipelineLayout' or -- 'Vulkan.Core10.Handles.DescriptorSetLayout' and @@ -5181,34 +5874,25 @@ foreign import ccall -- buffer as specified in the descriptor set bound to the same pipeline -- bind point -- --- - #VUID-vkCmdDrawIndexed-commandBuffer-08614# If @commandBuffer@ is an +-- - #VUID-vkCmdDrawIndexed-commandBuffer-02707# If @commandBuffer@ is an -- unprotected command buffer and -- --- is not supported, any resource accessed by the --- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind --- point used by this command or any --- 'Vulkan.Extensions.Handles.ShaderEXT' object bound to a stage --- corresponding to the pipeline bind point used by this command /must/ --- not be a protected resource --- --- - #VUID-vkCmdDrawIndexed-None-08615# If the --- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind --- point used by this command or any --- 'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding --- to the pipeline bind point used by this command accesses a --- 'Vulkan.Core10.Handles.Sampler' or 'Vulkan.Core10.Handles.ImageView' --- object that enables +-- is not supported, any resource accessed by +-- +-- /must/ not be a protected resource +-- +-- - #VUID-vkCmdDrawIndexed-None-06550# If +-- +-- accesses a 'Vulkan.Core10.Handles.Sampler' or +-- 'Vulkan.Core10.Handles.ImageView' object that enables -- , -- that object /must/ only be used with @OpImageSample*@ or -- @OpImageSparseSample*@ instructions -- --- - #VUID-vkCmdDrawIndexed-ConstOffset-08616# If the --- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind --- point used by this command or any --- 'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding --- to the pipeline bind point used by this command accesses a --- 'Vulkan.Core10.Handles.Sampler' or 'Vulkan.Core10.Handles.ImageView' --- object that enables +-- - #VUID-vkCmdDrawIndexed-ConstOffset-06551# If +-- +-- accesses a 'Vulkan.Core10.Handles.Sampler' or +-- 'Vulkan.Core10.Handles.ImageView' object that enables -- , -- that object /must/ not use the @ConstOffset@ and @Offset@ operands -- @@ -5220,17 +5904,23 @@ foreign import ccall -- -- - #VUID-vkCmdDrawIndexed-format-07753# If a -- 'Vulkan.Core10.Handles.ImageView' is accessed as a result of this --- command, then the image view’s @format@ /must/ match the numeric --- format from the @Sampled@ @Type@ operand of the @OpTypeImage@ as --- described in the SPIR-V Sampled Type column of the --- --- table --- --- - #VUID-vkCmdDrawIndexed-None-04115# If a --- 'Vulkan.Core10.Handles.ImageView' is accessed using @OpImageWrite@ --- as a result of this command, then the @Type@ of the @Texel@ operand --- of that instruction /must/ have at least as many components as the --- image view’s format +-- command, then the +-- +-- of the image view’s @format@ and the @Sampled@ @Type@ operand of the +-- @OpTypeImage@ /must/ match +-- +-- - #VUID-vkCmdDrawIndexed-OpImageWrite-08795# If a +-- 'Vulkan.Core10.Handles.ImageView' created with a format other than +-- 'Vulkan.Core10.Enums.Format.FORMAT_A8_UNORM_KHR' is accessed using +-- @OpImageWrite@ as a result of this command, then the @Type@ of the +-- @Texel@ operand of that instruction /must/ have at least as many +-- components as the image view’s format +-- +-- - #VUID-vkCmdDrawIndexed-OpImageWrite-08796# If a +-- 'Vulkan.Core10.Handles.ImageView' created with the format +-- 'Vulkan.Core10.Enums.Format.FORMAT_A8_UNORM_KHR' is accessed using +-- @OpImageWrite@ as a result of this command, then the @Type@ of the +-- @Texel@ operand of that instruction /must/ have four components -- -- - #VUID-vkCmdDrawIndexed-OpImageWrite-04469# If a -- 'Vulkan.Core10.Handles.BufferView' is accessed using @OpImageWrite@ @@ -5332,6 +6022,8 @@ foreign import ccall -- -- - #VUID-vkCmdDrawIndexed-OpImageWeightedSampleQCOM-06977# If -- @OpImageWeightedSampleQCOM@, @OpImageBoxFilterQCOM@, +-- @OpImageBlockMatchWindowSSDQCOM@, @OpImageBlockMatchWindowSADQCOM@, +-- @OpImageBlockMatchGatherSSDQCOM@, @OpImageBlockMatchGatherSADQCOM@, -- @OpImageBlockMatchSSDQCOM@, or @OpImageBlockMatchSADQCOM@ uses a -- 'Vulkan.Core10.Handles.Sampler' as a result of this command, then -- the sampler /must/ have been created with @@ -5339,12 +6031,35 @@ foreign import ccall -- -- - #VUID-vkCmdDrawIndexed-OpImageWeightedSampleQCOM-06978# If any -- command other than @OpImageWeightedSampleQCOM@, --- @OpImageBoxFilterQCOM@, @OpImageBlockMatchSSDQCOM@, or +-- @OpImageBoxFilterQCOM@, @OpImageBlockMatchWindowSSDQCOM@, +-- @OpImageBlockMatchWindowSADQCOM@, @OpImageBlockMatchGatherSSDQCOM@, +-- @OpImageBlockMatchGatherSADQCOM@, @OpImageBlockMatchSSDQCOM@, or -- @OpImageBlockMatchSADQCOM@ uses a 'Vulkan.Core10.Handles.Sampler' as -- a result of this command, then the sampler /must/ not have been -- created with -- 'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM' -- +-- - #VUID-vkCmdDrawIndexed-OpImageBlockMatchWindow-09215# If a +-- @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@ +-- instruction is used to read from an +-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then +-- the image view’s +-- +-- /must/ contain +-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM' +-- +-- - #VUID-vkCmdDrawIndexed-OpImageBlockMatchWindow-09216# If a +-- @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@ +-- instruction is used to read from an +-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then +-- the image view’s format /must/ be a single-component format. +-- +-- - #VUID-vkCmdDrawIndexed-OpImageBlockMatchWindow-09217# If a +-- @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@ +-- read from a reference image as result of this command, then the +-- specified reference coordinates /must/ not fail +-- +-- -- - #VUID-vkCmdDrawIndexed-None-07288# Any shader invocation executed by -- this command /must/ -- @@ -5388,15 +6103,86 @@ foreign import ccall -- used as attachments in the current render pass /must/ not be written -- in any way other than as an attachment by this command -- --- - #VUID-vkCmdDrawIndexed-None-06538# If any recorded command in the --- current subpass will write to an image subresource as an attachment, --- this command /must/ not read from the memory backing that image --- subresource in any other way than as an attachment +-- - #VUID-vkCmdDrawIndexed-None-09000# If a color attachment is written +-- by any prior command in this subpass or by the load, store, or +-- resolve operations for this subpass, it is not in the +-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT' +-- image layout, and either: +-- +-- - the +-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT' +-- is set on the currently bound pipeline or +-- +-- - the last call to +-- 'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT' +-- included +-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT' +-- and +-- +-- - there is no currently bound graphics pipeline or +-- +-- - the currently bound graphics pipeline was created with +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT' +-- it /must/ not be accessed in any way other than as an +-- attachment by this command +-- +-- - #VUID-vkCmdDrawIndexed-None-09001# If a depth attachment is written +-- by any prior command in this subpass or by the load, store, or +-- resolve operations for this subpass, it is not in the +-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT' +-- image layout, and either: +-- +-- - the +-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT' +-- is set on the currently bound pipeline or +-- +-- - the last call to +-- 'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT' +-- included +-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_DEPTH_BIT' +-- and +-- +-- - there is no currently bound graphics pipeline or -- --- - #VUID-vkCmdDrawIndexed-None-06539# If any recorded command in the --- current subpass will read from an image subresource used as an --- attachment in any way other than as an attachment, this command --- /must/ not write to that image subresource as an attachment +-- - the currently bound graphics pipeline was created with +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT' +-- it /must/ not be accessed in any way other than as an +-- attachment by this command +-- +-- - #VUID-vkCmdDrawIndexed-None-09002# If a stencil attachment is +-- written by any prior command in this subpass or by the load, store, +-- or resolve operations for this subpass, it is not in the +-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT' +-- image layout, and either: +-- +-- - the +-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT' +-- is set on the currently bound pipeline or +-- +-- - the last call to +-- 'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT' +-- included +-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT' +-- and +-- +-- - there is no currently bound graphics pipeline or +-- +-- - the currently bound graphics pipeline was created with +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT' +-- it /must/ not be accessed in any way other than as an +-- attachment by this command +-- +-- - #VUID-vkCmdDrawIndexed-None-09003# If an attachment is written by +-- any prior command in this subpass or by the load, store, or resolve +-- operations for this subpass, it /must/ not be accessed in any way +-- other than as an attachment, storage image, or sampled image by this +-- command +-- +-- - #VUID-vkCmdDrawIndexed-None-06539# If any previously recorded +-- command in the current subpass accessed an image subresource used as +-- an attachment in this subpass in any way other than as an +-- attachment, this command /must/ not write to that image subresource +-- as an attachment -- -- - #VUID-vkCmdDrawIndexed-None-06886# If the current render pass -- instance uses a depth\/stencil attachment with a read-only layout @@ -5457,16 +6243,22 @@ foreign import ccall -- - #VUID-vkCmdDrawIndexed-None-07834# If the bound graphics pipeline -- state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS' dynamic --- state enabled then 'cmdSetDepthBias' /must/ have been called in the --- current command buffer prior to this drawing command +-- state enabled then 'cmdSetDepthBias' or +-- 'Vulkan.Extensions.VK_EXT_depth_bias_control.cmdSetDepthBias2EXT' +-- /must/ have been called in the current command buffer prior to this +-- drawing command -- -- - #VUID-vkCmdDrawIndexed-None-08620# If a shader object is bound to -- any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnable' -- in the current command buffer set @depthBiasEnable@ to --- 'Vulkan.Core10.FundamentalTypes.TRUE', 'cmdSetDepthBias' /must/ have --- been called in the current command buffer prior to this drawing --- command +-- 'Vulkan.Core10.FundamentalTypes.TRUE', 'cmdSetDepthBias' or +-- 'Vulkan.Extensions.VK_EXT_depth_bias_control.cmdSetDepthBias2EXT' +-- /must/ have been called in the current command buffer prior to this +-- drawing command -- -- - #VUID-vkCmdDrawIndexed-None-07835# If the bound graphics pipeline -- state was created with the @@ -5487,7 +6279,7 @@ foreign import ccall -- the most recent call to -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT' -- in the current command buffer set the same element of --- @pColorBlendEquations@ to an +-- @pColorBlendEquations@ to a -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.ColorBlendEquationEXT' -- structure with any 'Vulkan.Core10.Enums.BlendFactor.BlendFactor' -- member with a value of @@ -5501,23 +6293,29 @@ foreign import ccall -- - #VUID-vkCmdDrawIndexed-None-07836# If the bound graphics pipeline -- state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS' --- dynamic state enabled then 'cmdSetDepthBounds' /must/ have been --- called in the current command buffer prior to this drawing command +-- dynamic state enabled, and if the current @depthBoundsTestEnable@ +-- state is 'Vulkan.Core10.FundamentalTypes.TRUE', then +-- 'cmdSetDepthBounds' /must/ have been called in the current command +-- buffer prior to this drawing command -- -- - #VUID-vkCmdDrawIndexed-None-08622# If a shader object is bound to -- any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable' -- in the current command buffer set @depthBoundsTestEnable@ to --- 'Vulkan.Core10.FundamentalTypes.TRUE', 'cmdSetDepthBounds' /must/ --- have been called in the current command buffer prior to this drawing --- command +-- 'Vulkan.Core10.FundamentalTypes.TRUE', then 'cmdSetDepthBounds' +-- /must/ have been called in the current command buffer prior to this +-- drawing command -- -- - #VUID-vkCmdDrawIndexed-None-07837# If the bound graphics pipeline -- state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_COMPARE_MASK' --- dynamic state enabled then 'cmdSetStencilCompareMask' /must/ have --- been called in the current command buffer prior to this drawing --- command +-- dynamic state enabled, and if the current @stencilTestEnable@ state +-- is 'Vulkan.Core10.FundamentalTypes.TRUE', then +-- 'cmdSetStencilCompareMask' /must/ have been called in the current +-- command buffer prior to this drawing command -- -- - #VUID-vkCmdDrawIndexed-None-08623# If a shader object is bound to -- any graphics stage, and the most recent call to @@ -5530,8 +6328,10 @@ foreign import ccall -- - #VUID-vkCmdDrawIndexed-None-07838# If the bound graphics pipeline -- state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_WRITE_MASK' --- dynamic state enabled then 'cmdSetStencilWriteMask' /must/ have been --- called in the current command buffer prior to this drawing command +-- dynamic state enabled, and if the current @stencilTestEnable@ state +-- is 'Vulkan.Core10.FundamentalTypes.TRUE', then +-- 'cmdSetStencilWriteMask' /must/ have been called in the current +-- command buffer prior to this drawing command -- -- - #VUID-vkCmdDrawIndexed-None-08624# If a shader object is bound to -- any graphics stage, and the most recent call to @@ -5544,8 +6344,10 @@ foreign import ccall -- - #VUID-vkCmdDrawIndexed-None-07839# If the bound graphics pipeline -- state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_REFERENCE' --- dynamic state enabled then 'cmdSetStencilReference' /must/ have been --- called in the current command buffer prior to this drawing command +-- dynamic state enabled, and if the current @stencilTestEnable@ state +-- is 'Vulkan.Core10.FundamentalTypes.TRUE', then +-- 'cmdSetStencilReference' /must/ have been called in the current +-- command buffer prior to this drawing command -- -- - #VUID-vkCmdDrawIndexed-None-08625# If a shader object is bound to -- any graphics stage, and the most recent call to @@ -5581,7 +6383,10 @@ foreign import ccall -- any graphics stage, and the most recent call to -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT' -- in the current command buffer set @sampleLocationsEnable@ to --- 'Vulkan.Core10.FundamentalTypes.TRUE', +-- 'Vulkan.Core10.FundamentalTypes.TRUE', and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -5605,7 +6410,10 @@ foreign import ccall -- drawing command -- -- - #VUID-vkCmdDrawIndexed-None-08627# If a shader object is bound to --- any graphics stage, +-- any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetCullMode' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -5619,7 +6427,10 @@ foreign import ccall -- drawing command -- -- - #VUID-vkCmdDrawIndexed-None-08628# If a shader object is bound to --- any graphics stage, +-- any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetFrontFace' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -5633,7 +6444,10 @@ foreign import ccall -- drawing command -- -- - #VUID-vkCmdDrawIndexed-None-08629# If a shader object is bound to --- any graphics stage, +-- any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -5647,7 +6461,10 @@ foreign import ccall -- drawing command -- -- - #VUID-vkCmdDrawIndexed-None-08630# If a shader object is bound to --- any graphics stage, +-- any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -5662,9 +6479,12 @@ foreign import ccall -- -- - #VUID-vkCmdDrawIndexed-None-08631# If a shader object is bound to -- any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable' -- in the current command buffer set @depthTestEnable@ to --- 'Vulkan.Core10.FundamentalTypes.TRUE', +-- 'Vulkan.Core10.FundamentalTypes.TRUE', then -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthCompareOp' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -5680,7 +6500,10 @@ foreign import ccall -- - #VUID-vkCmdDrawIndexed-None-08632# If a shader object is bound to -- any graphics stage, and the -- --- feature is enabled, the +-- feature is enabled, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then the -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -5800,6 +6623,13 @@ foreign import ccall -- the last call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- +-- - #VUID-vkCmdDrawIndexed-None-09232# If a shader object is bound to +-- any graphics stage, and the @VK_NV_clip_space_w_scaling@ extension +-- is enabled on the device, then +-- 'Vulkan.Extensions.VK_NV_clip_space_w_scaling.cmdSetViewportWScalingNV' +-- must have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdDrawIndexed-None-08636# If a shader object is bound to -- any graphics stage, and the @VK_NV_clip_space_w_scaling@ extension -- is enabled on the device, then the @viewportCount@ parameter in the @@ -5833,6 +6663,30 @@ foreign import ccall -- the last call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- +-- - #VUID-vkCmdDrawIndexed-shadingRateImage-09233# If the +-- +-- feature is enabled, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set rasterizerDiscardEnable to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then +-- 'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetCoarseSampleOrderNV' +-- must have been called in the current command buffer prior to this +-- drawing command +-- +-- - #VUID-vkCmdDrawIndexed-shadingRateImage-09234# If a shader object is +-- bound to any graphics stage, and the +-- +-- feature is enabled on the device, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set rasterizerDiscardEnable to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetShadingRateImageEnableNV' +-- in the current command buffer set shadingRateImageEnable to +-- 'Vulkan.Core10.FundamentalTypes.TRUE', then +-- 'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetViewportShadingRatePaletteNV' +-- must have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdDrawIndexed-None-08637# If a shader object is bound to -- any graphics stage, and the -- @@ -5885,6 +6739,14 @@ foreign import ccall -- /must/ have been called in the current command buffer prior to this -- drawing command -- +-- - #VUID-vkCmdDrawIndexed-exclusiveScissor-09235# If a shader object is +-- bound to any graphics stage, and the +-- +-- feature is enabled, then +-- 'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorEnableNV' +-- must have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdDrawIndexed-None-08638# If a shader object is bound to -- any graphics stage, and the most recent call to -- 'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorEnableNV' @@ -5936,7 +6798,9 @@ foreign import ccall -- 'Vulkan.Core10.Enums.LogicOp.LogicOp' value -- -- - #VUID-vkCmdDrawIndexed-None-08641# If a shader object is bound to --- any graphics stage, and the +-- the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage, and the -- -- feature is enabled on the device, and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' @@ -6021,6 +6885,11 @@ foreign import ccall -- to be the same as the number of samples for the current render pass -- color and\/or depth\/stencil attachments -- +-- - #VUID-vkCmdDrawIndexed-None-08876# If a shader object is bound to +-- any graphics stage, the current render pass instance /must/ have +-- been begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' +-- -- - #VUID-vkCmdDrawIndexed-imageView-06172# If the current render pass -- instance was begun with -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', @@ -6093,8 +6962,11 @@ foreign import ccall -- equal to -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ -- --- - #VUID-vkCmdDrawIndexed-colorAttachmentCount-06180# If the current --- render pass instance was begun with +-- - #VUID-vkCmdDrawIndexed-dynamicRenderingUnusedAttachments-08910# If +-- the +-- +-- feature is not enabled, and the current render pass instance was +-- begun with -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' -- and -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ @@ -6107,8 +6979,32 @@ foreign import ccall -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@ -- used to create the currently bound graphics pipeline -- --- - #VUID-vkCmdDrawIndexed-colorAttachmentCount-07616# If the current --- render pass instance was begun with +-- - #VUID-vkCmdDrawIndexed-dynamicRenderingUnusedAttachments-08911# If +-- the +-- +-- feature is enabled, and the current render pass instance was begun +-- with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' +-- and +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ +-- greater than @0@, then each element of the +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@ +-- array with a @imageView@ not equal to +-- 'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created +-- with a 'Vulkan.Core10.Enums.Format.Format' equal to the +-- corresponding element of +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@ +-- used to create the currently bound graphics pipeline, or the +-- corresponding element of +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@, +-- if it exists, /must/ be +-- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' +-- +-- - #VUID-vkCmdDrawIndexed-dynamicRenderingUnusedAttachments-08912# If +-- the +-- +-- feature is not enabled, and the current render pass instance was +-- begun with -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' -- and -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ @@ -6121,6 +7017,132 @@ foreign import ccall -- used to create the currently bound pipeline equal to -- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' -- +-- - #VUID-vkCmdDrawIndexed-colorAttachmentCount-09362# If the current +-- render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- with a +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ +-- equal to @1@, there is no shader object bound to any graphics stage, +-- and a color attachment with a resolve mode of +-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID', +-- each element of the +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@ +-- array with a @resolveImageView@ not equal to +-- 'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created +-- with an image created with a +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- value equal to the +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- value used to create the currently bound graphics pipeline +-- +-- - #VUID-vkCmdDrawIndexed-None-09363# If there is no shader object +-- bound to any graphics stage, the current render pass instance was +-- begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' +-- and a +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ +-- equal to @1@, and a color attachment with a resolve mode of +-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID', +-- each element of the +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@ +-- array with a @imageView@ not equal to +-- 'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created +-- with an image created with a +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- value equal to the +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- value used to create the currently bound graphics pipeline +-- +-- - #VUID-vkCmdDrawIndexed-None-09364# If the current render pass +-- instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- there is no shader object bound to any graphics stage, and the +-- currently bound graphics pipeline was created with a non-zero +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- value and with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT' +-- dynamic state enabled, then +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT' +-- /must/ have set the blend enable to +-- 'Vulkan.Core10.FundamentalTypes.FALSE' prior to this drawing command +-- +-- - #VUID-vkCmdDrawIndexed-None-09365# If the current render pass +-- instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- there is no shader object bound to any graphics stage, and the +-- currently bound graphics pipeline was created with a non-zero +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- value and with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT' +-- dynamic state enabled, then +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT' +-- /must/ have set @rasterizationSamples@ to +-- 'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT' prior +-- to this drawing command +-- +-- - #VUID-vkCmdDrawIndexed-None-09366# If there is a shader object bound +-- to any graphics stage, and the current render pass includes a color +-- attachment that uses the +-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID' +-- resolve mode, then +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT' +-- /must/ have set blend enable to +-- 'Vulkan.Core10.FundamentalTypes.FALSE' prior to this drawing command +-- +-- - #VUID-vkCmdDrawIndexed-rasterizationSamples-09367# If there is a +-- shader object bound to any graphics stage, and the current render +-- pass includes a color attachment that uses the +-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID' +-- resolve mode, then +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT' +-- /must/ have set @rasterizationSamples@ to +-- 'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT' prior +-- to this drawing command +-- +-- - #VUID-vkCmdDrawIndexed-None-09368# If the current render pass +-- instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- there is no shader object bound to any graphics stage, and the +-- currently bound graphics pipeline was created with a non-zero +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- value and with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR' +-- dynamic state enabled, then +-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR' +-- /must/ have set @pFragmentSize->width@ to @1@ prior to this drawing +-- command +-- +-- - #VUID-vkCmdDrawIndexed-None-09369# If the current render pass +-- instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- there is no shader object bound to any graphics stage, and the +-- currently bound graphics pipeline was created with a non-zero +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- value and with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR' +-- dynamic state enabled, then +-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR' +-- /must/ have set @pFragmentSize->height@ to @1@ prior to this drawing +-- command +-- +-- - #VUID-vkCmdDrawIndexed-pFragmentSize-09370# If there is a shader +-- object bound to any graphics stage, and the current render pass +-- includes a color attachment that uses the +-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID' +-- resolve mode, then +-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR' +-- /must/ have set @pFragmentSize->width@ to @1@ prior to this drawing +-- command +-- +-- - #VUID-vkCmdDrawIndexed-pFragmentSize-09371# If there is a shader +-- object bound to any graphics stage, and the current render pass +-- includes a color attachment that uses the +-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID' +-- resolve mode, then +-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR' +-- /must/ have set @pFragmentSize->height@ to @1@ prior to this drawing +-- command +-- -- - #VUID-vkCmdDrawIndexed-None-07749# If the bound graphics pipeline -- state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT' @@ -6132,7 +7154,9 @@ foreign import ccall -- - #VUID-vkCmdDrawIndexed-None-08646# If the -- -- feature is enabled on the device, and a shader object is bound to --- the fragment stage, and the most recent call to +-- the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage, and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' -- in the current command buffer set @rasterizerDiscardEnable@ to -- 'Vulkan.Core10.FundamentalTypes.FALSE', then @@ -6152,7 +7176,9 @@ foreign import ccall -- - #VUID-vkCmdDrawIndexed-None-08647# If the -- -- feature is enabled on the device, and a shader object is bound to --- the fragment stage, and the most recent call to +-- the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage, and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' -- in the current command buffer set @rasterizerDiscardEnable@ to -- 'Vulkan.Core10.FundamentalTypes.FALSE', then the @attachmentCount@ @@ -6178,6 +7204,16 @@ foreign import ccall -- /must/ have been called in the current command buffer prior to this -- drawing command -- +-- - #VUID-vkCmdDrawIndexed-rasterizerDiscardEnable-09236# If the +-- @VK_EXT_discard_rectangles@ extension is enabled, and a shader +-- object is bound to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then +-- 'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEXT' +-- /must/ have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdDrawIndexed-None-08648# If the -- @VK_EXT_discard_rectangles@ extension is enabled, and a shader -- object is bound to any graphics stage, and the most recent call to @@ -6209,10 +7245,24 @@ foreign import ccall -- /must/ have been called in the current command buffer prior to this -- drawing command -- --- - #VUID-vkCmdDrawIndexed-pDepthAttachment-06181# If the current render --- pass instance was begun with --- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' --- and +-- - #VUID-vkCmdDrawIndexed-dynamicRenderingUnusedAttachments-08913# If +-- the current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- the +-- +-- feature is not enabled, and +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@ +-- was 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@ +-- used to create the currently bound graphics pipeline /must/ be equal +-- to 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' +-- +-- - #VUID-vkCmdDrawIndexed-dynamicRenderingUnusedAttachments-08914# If +-- current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- the +-- +-- feature is not enabled, and -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@ -- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@ @@ -6220,20 +7270,39 @@ foreign import ccall -- to the 'Vulkan.Core10.Enums.Format.Format' used to create -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@ -- --- - #VUID-vkCmdDrawIndexed-pDepthAttachment-07617# If the current render --- pass instance was begun with --- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' --- and +-- - #VUID-vkCmdDrawIndexed-dynamicRenderingUnusedAttachments-08915# If +-- the current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- the +-- +-- feature is enabled, -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@ --- was 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of +-- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the value of -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@ +-- used to create the currently bound graphics pipeline was not equal +-- to the 'Vulkan.Core10.Enums.Format.Format' used to create +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@, +-- the value of the format /must/ be +-- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' +-- +-- - #VUID-vkCmdDrawIndexed-dynamicRenderingUnusedAttachments-08916# If +-- the current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- the +-- +-- feature is not enabled, and +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@ +-- was 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@ -- used to create the currently bound graphics pipeline /must/ be equal -- to 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' -- --- - #VUID-vkCmdDrawIndexed-pStencilAttachment-06182# If the current --- render pass instance was begun with --- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' --- and +-- - #VUID-vkCmdDrawIndexed-dynamicRenderingUnusedAttachments-08917# If +-- current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- the +-- +-- feature is not enabled, and -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@ -- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@ @@ -6241,15 +7310,20 @@ foreign import ccall -- to the 'Vulkan.Core10.Enums.Format.Format' used to create -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@ -- --- - #VUID-vkCmdDrawIndexed-pStencilAttachment-07618# If the current --- render pass instance was begun with --- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' --- and +-- - #VUID-vkCmdDrawIndexed-dynamicRenderingUnusedAttachments-08918# If +-- the current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- the +-- +-- feature is enabled, -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@ --- was 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of +-- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the value of -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@ --- used to create the currently bound graphics pipeline /must/ be equal --- to 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' +-- used to create the currently bound graphics pipeline was not equal +-- to the 'Vulkan.Core10.Enums.Format.Format' used to create +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@, +-- the value of the format /must/ be +-- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' -- -- - #VUID-vkCmdDrawIndexed-imageView-06183# If the current render pass -- instance was begun with @@ -6396,6 +7470,40 @@ foreign import ccall -- 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@renderPass@ -- equal to 'Vulkan.Core10.APIConstants.NULL_HANDLE' -- +-- - #VUID-vkCmdDrawIndexed-pColorAttachments-08963# If the current +-- render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- there is a graphics pipeline bound with a fragment shader that +-- statically writes to a color attachment, the color write mask is not +-- zero, color writes are enabled, and the corresponding element of the +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments->imageView@ +-- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', then the +-- corresponding element of +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@ +-- used to create the pipeline /must/ not be +-- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' +-- +-- - #VUID-vkCmdDrawIndexed-pDepthAttachment-08964# If the current render +-- pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- there is a graphics pipeline bound, depth test is enabled, depth +-- write is enabled, and the +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@ +-- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', then the +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@ +-- used to create the pipeline /must/ not be +-- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' +-- +-- - #VUID-vkCmdDrawIndexed-pStencilAttachment-08965# If the current +-- render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- there is a graphics pipeline bound, stencil test is enabled and the +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@ +-- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', then the +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@ +-- used to create the pipeline /must/ not be +-- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' +-- -- - #VUID-vkCmdDrawIndexed-primitivesGeneratedQueryWithRasterizerDiscard-06708# -- If the -- @@ -6422,6 +7530,22 @@ foreign import ccall -- /must/ have been called in the current command buffer prior to this -- drawing command -- +-- - #VUID-vkCmdDrawIndexed-None-07620# If the bound graphics pipeline +-- state was created with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT' +-- dynamic state enabled then +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClampEnableEXT' +-- /must/ have been called in the current command buffer prior to this +-- drawing command +-- +-- - #VUID-vkCmdDrawIndexed-None-09237# If a shader object is bound to +-- the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT' +-- stage, then +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetTessellationDomainOriginEXT' +-- /must/ have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdDrawIndexed-None-08650# If the -- -- feature is enabled, and a shader object is bound to any graphics @@ -6492,6 +7616,17 @@ foreign import ccall -- /must/ have been called in the current command buffer prior to this -- drawing command -- +-- - #VUID-vkCmdDrawIndexed-alphaToCoverageEnable-08919# If the bound +-- graphics pipeline state was created with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT' +-- dynamic state enabled, and @alphaToCoverageEnable@ was +-- 'Vulkan.Core10.FundamentalTypes.TRUE' in the last call to +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT', +-- then the +-- +-- /must/ contain a variable for the alpha @Component@ word in +-- @Location@ 0 at @Index@ 0 +-- -- - #VUID-vkCmdDrawIndexed-None-08654# If a shader object is bound to -- any graphics stage, and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' @@ -6501,6 +7636,15 @@ foreign import ccall -- /must/ have been called in the current command buffer prior to this -- drawing command -- +-- - #VUID-vkCmdDrawIndexed-alphaToCoverageEnable-08920# If a shader +-- object is bound to any graphics stage, and the most recent call to +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT' +-- in the current command buffer set @alphaToCoverageEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.TRUE', then the +-- +-- /must/ contain a variable for the alpha @Component@ word in +-- @Location@ 0 at @Index@ 0 +-- -- - #VUID-vkCmdDrawIndexed-None-07625# If the bound graphics pipeline -- state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT' @@ -6530,7 +7674,8 @@ foreign import ccall -- -- - #VUID-vkCmdDrawIndexed-None-08656# If the -- --- feature is enabled, and a shader object is bound to any graphics +-- feature is enabled, and a shader object is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' -- stage, and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' -- in the current command buffer set @rasterizerDiscardEnable@ to @@ -6548,7 +7693,9 @@ foreign import ccall -- drawing command -- -- - #VUID-vkCmdDrawIndexed-None-08657# If a shader object is bound to --- any graphics stage, and the most recent call to +-- the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage, and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' -- in the current command buffer set @rasterizerDiscardEnable@ to -- 'Vulkan.Core10.FundamentalTypes.FALSE', then @@ -6585,7 +7732,9 @@ foreign import ccall -- drawing command -- -- - #VUID-vkCmdDrawIndexed-None-08659# If a shader object is bound to --- any graphics stage, and the most recent call to +-- the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage, and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' -- in the current command buffer set @rasterizerDiscardEnable@ to -- 'Vulkan.Core10.FundamentalTypes.FALSE', then @@ -6603,7 +7752,8 @@ foreign import ccall -- -- - #VUID-vkCmdDrawIndexed-None-08660# If the -- --- feature is enabled, and a shader object is bound to the geometry +-- feature is enabled, and a shader object is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT' -- stage, then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationStreamEXT' -- /must/ have been called in the current command buffer prior to this @@ -6702,7 +7852,8 @@ foreign import ccall -- drawing command -- -- - #VUID-vkCmdDrawIndexed-None-08665# If the @VK_EXT_provoking_vertex@ --- extension is enabled, and a shader object is bound to the vertex +-- extension is enabled, and a shader object is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT' -- stage, then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetProvokingVertexModeEXT' -- /must/ have been called in the current command buffer prior to this @@ -6812,7 +7963,7 @@ foreign import ccall -- stage, then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClipNegativeOneToOneEXT' -- /must/ have been called in the current command buffer prior to this --- drawing command ifdef::VK_EXT_extended_dynamic_state3 +-- drawing command -- -- - #VUID-vkCmdDrawIndexed-None-07640# If the bound graphics pipeline -- state was created with the @@ -6820,7 +7971,7 @@ foreign import ccall -- dynamic state enabled then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetViewportWScalingEnableNV' -- /must/ have been called in the current command buffer prior to this --- drawing command endif::VK_EXT_extended_dynamic_state3 +-- drawing command -- -- - #VUID-vkCmdDrawIndexed-None-08674# If the -- @VK_NV_clip_space_w_scaling@ extension is enabled, and a shader @@ -6854,7 +8005,12 @@ foreign import ccall -- -- - #VUID-vkCmdDrawIndexed-None-08676# If the -- @VK_NV_fragment_coverage_to_color@ extension is enabled, and a --- shader object is bound to any graphics stage, then +-- shader object is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -6869,8 +8025,9 @@ foreign import ccall -- -- - #VUID-vkCmdDrawIndexed-None-08677# If the -- @VK_NV_fragment_coverage_to_color@ extension is enabled, and a --- shader object is bound to any graphics stage, and the most recent --- call to +-- shader object is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage, and the most recent call to -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV' -- in the current command buffer set @coverageToColorEnable@ to -- 'Vulkan.Core10.FundamentalTypes.TRUE', then @@ -6888,7 +8045,10 @@ foreign import ccall -- -- - #VUID-vkCmdDrawIndexed-None-08678# If the -- @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader --- object is bound to any graphics stage, then +-- object is bound to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationModeNV' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -6903,7 +8063,15 @@ foreign import ccall -- -- - #VUID-vkCmdDrawIndexed-None-08679# If the -- @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader --- object is bound to any graphics stage, then +-- object is bound to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationModeNV' +-- in the current command buffer set coverageModulationMode to any +-- value other than +-- 'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.COVERAGE_MODULATION_MODE_NONE_NV', +-- then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -6919,6 +8087,9 @@ foreign import ccall -- - #VUID-vkCmdDrawIndexed-None-08680# If the -- @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader -- object is bound to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV' -- in the current command buffer set @coverageModulationTableEnable@ to -- 'Vulkan.Core10.FundamentalTypes.TRUE', then @@ -6934,10 +8105,25 @@ foreign import ccall -- /must/ have been called in the current command buffer prior to this -- drawing command -- +-- - #VUID-vkCmdDrawIndexed-pipelineFragmentShadingRate-09238# If the +-- +-- feature is enabled, and a shader object is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set rasterizerDiscardEnable to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then +-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR' +-- must have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdDrawIndexed-None-08681# If the -- -- feature is enabled, and a shader object is bound to any graphics --- stage, then +-- stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetShadingRateImageEnableNV' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -6947,13 +8133,16 @@ foreign import ccall -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV' -- dynamic state enabled then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRepresentativeFragmentTestEnableNV' --- must have been called in the current command buffer prior to this +-- /must/ have been called in the current command buffer prior to this -- drawing command -- -- - #VUID-vkCmdDrawIndexed-None-08682# If the -- -- feature is enabled, and a shader object is bound to any graphics --- stage, then +-- stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRepresentativeFragmentTestEnableNV' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -6969,7 +8158,10 @@ foreign import ccall -- - #VUID-vkCmdDrawIndexed-None-08683# If the -- -- feature is enabled, and a shader object is bound to any graphics --- stage, then +-- stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageReductionModeNV' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -7018,18 +8210,29 @@ foreign import ccall -- in the last call to -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT' -- --- - #VUID-vkCmdDrawIndexed-multisampledRenderToSingleSampled-07475# If --- the bound graphics pipeline state was created with the +-- - #VUID-vkCmdDrawIndexed-rasterizationSamples-07474# If the bound +-- graphics pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT' --- state enabled, and none of the @VK_AMD_mixed_attachment_samples@ --- extension, @VK_NV_framebuffer_mixed_samples@ extension, or the --- --- feature is enabled, then the @rasterizationSamples@ in the last call --- to +-- state enabled, and neither the @VK_AMD_mixed_attachment_samples@ nor +-- the @VK_NV_framebuffer_mixed_samples@ extensions are enabled, then +-- the @rasterizationSamples@ in the last call to -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT' -- /must/ be the same as the current subpass color and\/or -- depth\/stencil attachments -- +-- - #VUID-vkCmdDrawIndexed-None-09211# If the bound graphics pipeline +-- state was created with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT' +-- state enabled, or a shader object is bound to any graphics stage, +-- and the current render pass instance includes a +-- 'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT' +-- structure with @multisampledRenderToSingleSampledEnable@ equal to +-- 'Vulkan.Core10.FundamentalTypes.TRUE', then the +-- @rasterizationSamples@ in the last call to +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT' +-- /must/ be the same as the @rasterizationSamples@ member of that +-- structure +-- -- - #VUID-vkCmdDrawIndexed-firstAttachment-07476# If the bound graphics -- pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT' @@ -7088,7 +8291,7 @@ foreign import ccall -- and -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendAdvancedEXT' -- have enabled advanced blending, then the number of active color --- attachments in the current subpass must not exceed +-- attachments in the current subpass /must/ not exceed -- -- -- - #VUID-vkCmdDrawIndexed-primitivesGeneratedQueryWithNonZeroStreams-07481# @@ -7250,7 +8453,7 @@ foreign import ccall -- @VK_NV_framebuffer_mixed_samples@ extension is enabled, and if -- current subpass has a depth\/stencil attachment and depth test, -- stencil test, or depth bounds test are enabled in the currently --- bound pipeline state, then the current @rasterizationSamples@ must +-- bound pipeline state, then the current @rasterizationSamples@ /must/ -- be the same as the sample count of the depth\/stencil attachment -- -- - #VUID-vkCmdDrawIndexed-coverageToColorEnable-07490# If the bound @@ -7281,7 +8484,7 @@ foreign import ccall -- states enabled, the current coverage reduction mode -- @coverageReductionMode@, then the current @rasterizationSamples@, -- and the sample counts for the color and depth\/stencil attachments --- (if the subpass has them) must be a valid combination returned by +-- (if the subpass has them) /must/ be a valid combination returned by -- 'Vulkan.Extensions.VK_NV_coverage_reduction_mode.getPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV' -- -- - #VUID-vkCmdDrawIndexed-viewportCount-07492# If the bound graphics @@ -7369,7 +8572,7 @@ foreign import ccall -- -- feature /must/ be enabled and -- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@strictLines@ --- must be VK_TRUE +-- /must/ be 'Vulkan.Core10.FundamentalTypes.TRUE' -- -- - #VUID-vkCmdDrawIndexed-conservativePointAndLineRasterization-07499# -- If the bound graphics pipeline state was created with the @@ -7396,7 +8599,15 @@ foreign import ccall -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT', -- then -- --- must not be active +-- /must/ not be active +-- +-- - #VUID-vkCmdDrawIndexed-None-08877# If the bound graphics pipeline +-- state was created with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT' +-- dynamic state +-- 'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT' +-- /must/ have been called in the current command buffer prior to this +-- drawing command -- -- - #VUID-vkCmdDrawIndexed-None-07850# If dynamic state was inherited -- from @@ -7406,7 +8617,7 @@ foreign import ccall -- -- - #VUID-vkCmdDrawIndexed-None-08684# If there is no bound graphics -- pipeline, 'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' --- /must/ have been called on the current command buffer with @pStages@ +-- /must/ have been called in the current command buffer with @pStages@ -- with an element of -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT' -- @@ -7415,7 +8626,7 @@ foreign import ccall -- -- feature is enabled, -- 'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/ --- have been called on the current command buffer with @pStages@ with +-- have been called in the current command buffer with @pStages@ with -- an element of -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT' -- @@ -7424,7 +8635,7 @@ foreign import ccall -- -- feature is enabled, -- 'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/ --- have been called on the current command buffer with @pStages@ with +-- have been called in the current command buffer with @pStages@ with -- an element of -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT' -- @@ -7433,13 +8644,13 @@ foreign import ccall -- -- feature is enabled, -- 'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/ --- have been called on the current command buffer with @pStages@ with +-- have been called in the current command buffer with @pStages@ with -- an element of -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT' -- -- - #VUID-vkCmdDrawIndexed-None-08688# If there is no bound graphics -- pipeline, 'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' --- /must/ have been called on the current command buffer with @pStages@ +-- /must/ have been called in the current command buffer with @pStages@ -- with an element of -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' -- @@ -7448,7 +8659,7 @@ foreign import ccall -- -- feature is enabled, -- 'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/ --- have been called on the current command buffer with @pStages@ with +-- have been called in the current command buffer with @pStages@ with -- an element of -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT' -- @@ -7457,7 +8668,7 @@ foreign import ccall -- -- feature is enabled, -- 'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/ --- have been called on the current command buffer with @pStages@ with +-- have been called in the current command buffer with @pStages@ with -- an element of -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT' -- @@ -7469,8 +8680,8 @@ foreign import ccall -- features is enabled, one of the -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT' or -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT' --- stages must have a valid 'Vulkan.Extensions.Handles.ShaderEXT' --- bound, and the other must have no +-- stages /must/ have a valid 'Vulkan.Extensions.Handles.ShaderEXT' +-- bound, and the other /must/ have no -- 'Vulkan.Extensions.Handles.ShaderEXT' bound -- -- - #VUID-vkCmdDrawIndexed-None-08694# If there is no bound graphics @@ -7535,6 +8746,37 @@ foreign import ccall -- 'Vulkan.Extensions.VK_EXT_shader_object.createShadersEXT' call -- /must/ not have any 'Vulkan.Extensions.Handles.ShaderEXT' bound -- +-- - #VUID-vkCmdDrawIndexed-None-08878# All bound graphics shader objects +-- /must/ have been created with identical or identically defined push +-- constant ranges +-- +-- - #VUID-vkCmdDrawIndexed-None-08879# All bound graphics shader objects +-- /must/ have been created with identical or identically defined +-- arrays of descriptor set layouts +-- +-- - #VUID-vkCmdDrawIndexed-colorAttachmentCount-09372# If the current +-- render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' +-- and a +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ +-- equal to @1@, a color attachment with a resolve mode of +-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID', +-- and a fragment shader is bound, it /must/ not declare the +-- @DepthReplacing@ or @StencilRefReplacingEXT@ execution modes +-- +-- - #VUID-vkCmdDrawIndexed-None-08880# If a shader object is bound to +-- the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage and the +-- +-- feature is enabled on the device, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE' +-- 'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT' +-- /must/ have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdDrawIndexed-pDynamicStates-08715# If the bound graphics -- pipeline state includes a fragment shader stage, was created with -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_WRITE_ENABLE' @@ -7555,6 +8797,32 @@ foreign import ccall -- mode and uses @OpStencilAttachmentReadEXT@, the @writeMask@ -- parameter in the last call to 'cmdSetStencilWriteMask' /must/ be @0@ -- +-- - #VUID-vkCmdDrawIndexed-None-09116# If a shader object is bound to +-- any graphics stage or the currently bound graphics pipeline was +-- created with +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_MASK_EXT', +-- and the format of any color attachment is +-- 'Vulkan.Core10.Enums.Format.FORMAT_E5B9G9R9_UFLOAT_PACK32', the +-- corresponding element of the @pColorWriteMasks@ parameter of +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorWriteMaskEXT' +-- /must/ either include all of +-- 'Vulkan.Core10.Enums.ColorComponentFlagBits.COLOR_COMPONENT_R_BIT', +-- 'Vulkan.Core10.Enums.ColorComponentFlagBits.COLOR_COMPONENT_G_BIT', +-- and +-- 'Vulkan.Core10.Enums.ColorComponentFlagBits.COLOR_COMPONENT_B_BIT', +-- or none of them +-- +-- - #VUID-vkCmdDrawIndexed-maxFragmentDualSrcAttachments-09239# If +-- +-- is enabled for any attachment where either the source or destination +-- blend factors for that attachment +-- , +-- the maximum value of @Location@ for any output attachment +-- +-- in the @Fragment@ @Execution@ @Model@ executed by this command +-- /must/ be less than +-- +-- -- - #VUID-vkCmdDrawIndexed-commandBuffer-02712# If @commandBuffer@ is a -- protected command buffer and -- @@ -7637,6 +8905,14 @@ foreign import ccall -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT' -- /must/ not be @NULL@ -- +-- - #VUID-vkCmdDrawIndexed-None-08881# If a shader object is bound to +-- the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT' +-- stage, then +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology' +-- /must/ have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdDrawIndexed-None-04914# If the bound graphics pipeline -- state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT' @@ -7653,6 +8929,53 @@ foreign import ccall -- @OpEntryPoint@ /must/ contain a location in -- 'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@location@ -- +-- - #VUID-vkCmdDrawIndexed-Input-08734# If the bound graphics pipeline +-- state was created with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT' +-- dynamic state enabled, then the numeric type associated with all +-- @Input@ variables of the corresponding @Location@ in the @Vertex@ +-- @Execution@ @Model@ @OpEntryPoint@ /must/ be the same as +-- 'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@format@ +-- +-- - #VUID-vkCmdDrawIndexed-format-08936# If there is a shader object +-- bound to a graphics stage or the currently bound graphics pipeline +-- was created with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT' +-- dynamic state enabled, and +-- 'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@format@ +-- has a 64-bit component, then the scalar width associated with all +-- @Input@ variables of the corresponding @Location@ in the @Vertex@ +-- @Execution@ @Model@ @OpEntryPoint@ /must/ be 64-bit +-- +-- - #VUID-vkCmdDrawIndexed-format-08937# If there is a shader object +-- bound to a graphics stage or the currently bound graphics pipeline +-- was created with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT' +-- dynamic state enabled, and the scalar width associated with a +-- @Location@ decorated @Input@ variable in the @Vertex@ @Execution@ +-- @Model@ @OpEntryPoint@ is 64-bit, then the corresponding +-- 'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@format@ +-- /must/ have a 64-bit component +-- +-- - #VUID-vkCmdDrawIndexed-None-09203# If there is a shader object bound +-- to a graphics stage or the currently bound graphics pipeline was +-- created with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT' +-- dynamic state enabled, and +-- 'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@format@ +-- has a 64-bit component, then all @Input@ variables at the +-- corresponding @Location@ in the @Vertex@ @Execution@ @Model@ +-- @OpEntryPoint@ /must/ not use components that are not present in the +-- format +-- +-- - #VUID-vkCmdDrawIndexed-None-08882# If a shader object is bound to +-- the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT' +-- stage, then +-- 'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT' +-- /must/ have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdDrawIndexed-None-04875# If the bound graphics pipeline -- state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT' @@ -7661,6 +8984,14 @@ foreign import ccall -- /must/ have been called in the current command buffer prior to this -- drawing command -- +-- - #VUID-vkCmdDrawIndexed-None-08883# If a shader object is bound to +-- the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT' +-- stage, then +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetPatchControlPointsEXT' +-- /must/ have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdDrawIndexed-None-04879# If the bound graphics pipeline -- state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE' @@ -7669,6 +9000,15 @@ foreign import ccall -- /must/ have been called in the current command buffer prior to this -- drawing command -- +-- - #VUID-vkCmdDrawIndexed-rasterizerDiscardEnable-08884# If a shader +-- object is bound to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetPrimitiveRestartEnable' +-- /must/ have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdDrawIndexed-stage-06481# The bound graphics pipeline -- /must/ not have been created with the -- 'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo'::@stage@ @@ -7679,6 +9019,13 @@ foreign import ccall -- or -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT' -- +-- - #VUID-vkCmdDrawIndexed-None-08885# There /must/ be no shader object +-- bound to either of the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT' +-- or +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT' +-- stages +-- -- - #VUID-vkCmdDrawIndexed-None-07312# An index buffer /must/ be bound -- -- - #VUID-vkCmdDrawIndexed-robustBufferAccess2-07825# If @@ -7689,6 +9036,18 @@ foreign import ccall -- @indexType@, where the index buffer, @indexType@, and @offset@ are -- specified via 'cmdBindIndexBuffer' -- +-- - #VUID-vkCmdDrawIndexed-robustBufferAccess2-08798# If +-- +-- is not enabled, (@indexSize@ × (@firstIndex@ + @indexCount@) + +-- @offset@) /must/ be less than or equal to the size of the bound +-- index buffer, with @indexSize@ being based on the type specified by +-- @indexType@, where the index buffer, @indexType@, and @offset@ are +-- specified via 'cmdBindIndexBuffer' or +-- 'Vulkan.Extensions.VK_KHR_maintenance5.cmdBindIndexBuffer2KHR'. If +-- 'Vulkan.Extensions.VK_KHR_maintenance5.cmdBindIndexBuffer2KHR' is +-- used to bind the index buffer, the size of the bound index buffer is +-- 'Vulkan.Extensions.VK_KHR_maintenance5.cmdBindIndexBuffer2KHR'::@size@ +-- -- == Valid Usage (Implicit) -- -- - #VUID-vkCmdDrawIndexed-commandBuffer-parameter# @commandBuffer@ @@ -7839,6 +9198,16 @@ foreign import ccall -- /must/ contain -- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT' -- +-- - #VUID-vkCmdDrawIndirect-None-02693# If the +-- +-- extension is not enabled and any 'Vulkan.Core10.Handles.ImageView' +-- is sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a +-- result of this command, it /must/ not have a +-- 'Vulkan.Core10.Enums.ImageViewType.ImageViewType' of +-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_3D', +-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE', or +-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE_ARRAY' +-- -- - #VUID-vkCmdDrawIndirect-filterCubic-02694# Any -- 'Vulkan.Core10.Handles.ImageView' being sampled with -- 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a result of this @@ -7864,6 +9233,33 @@ foreign import ccall -- returned by -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceImageFormatProperties2' -- +-- - #VUID-vkCmdDrawIndirect-cubicRangeClamp-09212# If the +-- +-- feature is not enabled, then any 'Vulkan.Core10.Handles.ImageView' +-- being sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as +-- a result of this command +-- +-- [/must/ not have a 'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo'] +-- @reductionMode@ equal to +-- 'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM' +-- +-- - #VUID-vkCmdDrawIndirect-reductionMode-09213# Any +-- 'Vulkan.Core10.Handles.ImageView' being sampled with a +-- 'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo'::@reductionMode@ +-- equal to +-- 'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM' +-- as a result of this command /must/ sample with +-- 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' +-- +-- - #VUID-vkCmdDrawIndirect-selectableCubicWeights-09214# If the +-- +-- feature is not enabled, then any 'Vulkan.Core10.Handles.ImageView' +-- being sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as +-- a result of this command /must/ have +-- 'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.SamplerCubicWeightsCreateInfoQCOM'::@cubicWeights@ +-- equal to +-- 'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM' +-- -- - #VUID-vkCmdDrawIndirect-flags-02696# Any -- 'Vulkan.Core10.Handles.Image' created with a -- 'Vulkan.Core10.Image.ImageCreateInfo'::@flags@ containing @@ -7905,11 +9301,9 @@ foreign import ccall -- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT' -- -- - #VUID-vkCmdDrawIndirect-None-08600# For each set /n/ that is --- statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to the --- pipeline bind point used by this command, or by any of the --- 'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages --- corresponding to the pipeline bind point used by this command, a --- descriptor set /must/ have been bound to /n/ at the same pipeline +-- statically used by +-- , +-- a descriptor set /must/ have been bound to /n/ at the same pipeline -- bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is -- compatible for set /n/, with the -- 'Vulkan.Core10.Handles.PipelineLayout' or @@ -7919,12 +9313,10 @@ foreign import ccall -- -- -- - #VUID-vkCmdDrawIndirect-None-08601# For each push constant that is --- statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to the --- pipeline bind point used by this command, or by any of the --- 'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages --- corresponding to the pipeline bind point used by this command, a --- push constant value /must/ have been set for the same pipeline bind --- point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is +-- statically used by +-- , +-- a push constant value /must/ have been set for the same pipeline +-- bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is -- compatible for push constants, with the -- 'Vulkan.Core10.Handles.PipelineLayout' or -- 'Vulkan.Core10.Handles.DescriptorSetLayout' and @@ -7936,12 +9328,10 @@ foreign import ccall -- - #VUID-vkCmdDrawIndirect-maintenance4-08602# If the -- -- feature is not enabled, then for each push constant that is --- statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to the --- pipeline bind point used by this command, or by any of the --- 'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages --- corresponding to the pipeline bind point used by this command, a --- push constant value /must/ have been set for the same pipeline bind --- point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is +-- statically used by +-- , +-- a push constant value /must/ have been set for the same pipeline +-- bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is -- compatible for push constants, with the -- 'Vulkan.Core10.Handles.PipelineLayout' or -- 'Vulkan.Core10.Handles.DescriptorSetLayout' and @@ -8099,34 +9489,25 @@ foreign import ccall -- buffer as specified in the descriptor set bound to the same pipeline -- bind point -- --- - #VUID-vkCmdDrawIndirect-commandBuffer-08614# If @commandBuffer@ is +-- - #VUID-vkCmdDrawIndirect-commandBuffer-02707# If @commandBuffer@ is -- an unprotected command buffer and -- --- is not supported, any resource accessed by the --- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind --- point used by this command or any --- 'Vulkan.Extensions.Handles.ShaderEXT' object bound to a stage --- corresponding to the pipeline bind point used by this command /must/ --- not be a protected resource --- --- - #VUID-vkCmdDrawIndirect-None-08615# If the --- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind --- point used by this command or any --- 'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding --- to the pipeline bind point used by this command accesses a --- 'Vulkan.Core10.Handles.Sampler' or 'Vulkan.Core10.Handles.ImageView' --- object that enables +-- is not supported, any resource accessed by +-- +-- /must/ not be a protected resource +-- +-- - #VUID-vkCmdDrawIndirect-None-06550# If +-- +-- accesses a 'Vulkan.Core10.Handles.Sampler' or +-- 'Vulkan.Core10.Handles.ImageView' object that enables -- , -- that object /must/ only be used with @OpImageSample*@ or -- @OpImageSparseSample*@ instructions -- --- - #VUID-vkCmdDrawIndirect-ConstOffset-08616# If the --- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind --- point used by this command or any --- 'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding --- to the pipeline bind point used by this command accesses a --- 'Vulkan.Core10.Handles.Sampler' or 'Vulkan.Core10.Handles.ImageView' --- object that enables +-- - #VUID-vkCmdDrawIndirect-ConstOffset-06551# If +-- +-- accesses a 'Vulkan.Core10.Handles.Sampler' or +-- 'Vulkan.Core10.Handles.ImageView' object that enables -- , -- that object /must/ not use the @ConstOffset@ and @Offset@ operands -- @@ -8138,17 +9519,23 @@ foreign import ccall -- -- - #VUID-vkCmdDrawIndirect-format-07753# If a -- 'Vulkan.Core10.Handles.ImageView' is accessed as a result of this --- command, then the image view’s @format@ /must/ match the numeric --- format from the @Sampled@ @Type@ operand of the @OpTypeImage@ as --- described in the SPIR-V Sampled Type column of the --- --- table --- --- - #VUID-vkCmdDrawIndirect-None-04115# If a --- 'Vulkan.Core10.Handles.ImageView' is accessed using @OpImageWrite@ --- as a result of this command, then the @Type@ of the @Texel@ operand --- of that instruction /must/ have at least as many components as the --- image view’s format +-- command, then the +-- +-- of the image view’s @format@ and the @Sampled@ @Type@ operand of the +-- @OpTypeImage@ /must/ match +-- +-- - #VUID-vkCmdDrawIndirect-OpImageWrite-08795# If a +-- 'Vulkan.Core10.Handles.ImageView' created with a format other than +-- 'Vulkan.Core10.Enums.Format.FORMAT_A8_UNORM_KHR' is accessed using +-- @OpImageWrite@ as a result of this command, then the @Type@ of the +-- @Texel@ operand of that instruction /must/ have at least as many +-- components as the image view’s format +-- +-- - #VUID-vkCmdDrawIndirect-OpImageWrite-08796# If a +-- 'Vulkan.Core10.Handles.ImageView' created with the format +-- 'Vulkan.Core10.Enums.Format.FORMAT_A8_UNORM_KHR' is accessed using +-- @OpImageWrite@ as a result of this command, then the @Type@ of the +-- @Texel@ operand of that instruction /must/ have four components -- -- - #VUID-vkCmdDrawIndirect-OpImageWrite-04469# If a -- 'Vulkan.Core10.Handles.BufferView' is accessed using @OpImageWrite@ @@ -8250,6 +9637,8 @@ foreign import ccall -- -- - #VUID-vkCmdDrawIndirect-OpImageWeightedSampleQCOM-06977# If -- @OpImageWeightedSampleQCOM@, @OpImageBoxFilterQCOM@, +-- @OpImageBlockMatchWindowSSDQCOM@, @OpImageBlockMatchWindowSADQCOM@, +-- @OpImageBlockMatchGatherSSDQCOM@, @OpImageBlockMatchGatherSADQCOM@, -- @OpImageBlockMatchSSDQCOM@, or @OpImageBlockMatchSADQCOM@ uses a -- 'Vulkan.Core10.Handles.Sampler' as a result of this command, then -- the sampler /must/ have been created with @@ -8257,12 +9646,35 @@ foreign import ccall -- -- - #VUID-vkCmdDrawIndirect-OpImageWeightedSampleQCOM-06978# If any -- command other than @OpImageWeightedSampleQCOM@, --- @OpImageBoxFilterQCOM@, @OpImageBlockMatchSSDQCOM@, or +-- @OpImageBoxFilterQCOM@, @OpImageBlockMatchWindowSSDQCOM@, +-- @OpImageBlockMatchWindowSADQCOM@, @OpImageBlockMatchGatherSSDQCOM@, +-- @OpImageBlockMatchGatherSADQCOM@, @OpImageBlockMatchSSDQCOM@, or -- @OpImageBlockMatchSADQCOM@ uses a 'Vulkan.Core10.Handles.Sampler' as -- a result of this command, then the sampler /must/ not have been -- created with -- 'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM' -- +-- - #VUID-vkCmdDrawIndirect-OpImageBlockMatchWindow-09215# If a +-- @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@ +-- instruction is used to read from an +-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then +-- the image view’s +-- +-- /must/ contain +-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM' +-- +-- - #VUID-vkCmdDrawIndirect-OpImageBlockMatchWindow-09216# If a +-- @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@ +-- instruction is used to read from an +-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then +-- the image view’s format /must/ be a single-component format. +-- +-- - #VUID-vkCmdDrawIndirect-OpImageBlockMatchWindow-09217# If a +-- @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@ +-- read from a reference image as result of this command, then the +-- specified reference coordinates /must/ not fail +-- +-- -- - #VUID-vkCmdDrawIndirect-None-07288# Any shader invocation executed -- by this command /must/ -- @@ -8307,15 +9719,86 @@ foreign import ccall -- not be written in any way other than as an attachment by this -- command -- --- - #VUID-vkCmdDrawIndirect-None-06538# If any recorded command in the --- current subpass will write to an image subresource as an attachment, --- this command /must/ not read from the memory backing that image --- subresource in any other way than as an attachment +-- - #VUID-vkCmdDrawIndirect-None-09000# If a color attachment is written +-- by any prior command in this subpass or by the load, store, or +-- resolve operations for this subpass, it is not in the +-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT' +-- image layout, and either: +-- +-- - the +-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT' +-- is set on the currently bound pipeline or -- --- - #VUID-vkCmdDrawIndirect-None-06539# If any recorded command in the --- current subpass will read from an image subresource used as an --- attachment in any way other than as an attachment, this command --- /must/ not write to that image subresource as an attachment +-- - the last call to +-- 'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT' +-- included +-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT' +-- and +-- +-- - there is no currently bound graphics pipeline or +-- +-- - the currently bound graphics pipeline was created with +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT' +-- it /must/ not be accessed in any way other than as an +-- attachment by this command +-- +-- - #VUID-vkCmdDrawIndirect-None-09001# If a depth attachment is written +-- by any prior command in this subpass or by the load, store, or +-- resolve operations for this subpass, it is not in the +-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT' +-- image layout, and either: +-- +-- - the +-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT' +-- is set on the currently bound pipeline or +-- +-- - the last call to +-- 'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT' +-- included +-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_DEPTH_BIT' +-- and +-- +-- - there is no currently bound graphics pipeline or +-- +-- - the currently bound graphics pipeline was created with +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT' +-- it /must/ not be accessed in any way other than as an +-- attachment by this command +-- +-- - #VUID-vkCmdDrawIndirect-None-09002# If a stencil attachment is +-- written by any prior command in this subpass or by the load, store, +-- or resolve operations for this subpass, it is not in the +-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT' +-- image layout, and either: +-- +-- - the +-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT' +-- is set on the currently bound pipeline or +-- +-- - the last call to +-- 'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT' +-- included +-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT' +-- and +-- +-- - there is no currently bound graphics pipeline or +-- +-- - the currently bound graphics pipeline was created with +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT' +-- it /must/ not be accessed in any way other than as an +-- attachment by this command +-- +-- - #VUID-vkCmdDrawIndirect-None-09003# If an attachment is written by +-- any prior command in this subpass or by the load, store, or resolve +-- operations for this subpass, it /must/ not be accessed in any way +-- other than as an attachment, storage image, or sampled image by this +-- command +-- +-- - #VUID-vkCmdDrawIndirect-None-06539# If any previously recorded +-- command in the current subpass accessed an image subresource used as +-- an attachment in this subpass in any way other than as an +-- attachment, this command /must/ not write to that image subresource +-- as an attachment -- -- - #VUID-vkCmdDrawIndirect-None-06886# If the current render pass -- instance uses a depth\/stencil attachment with a read-only layout @@ -8376,16 +9859,22 @@ foreign import ccall -- - #VUID-vkCmdDrawIndirect-None-07834# If the bound graphics pipeline -- state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS' dynamic --- state enabled then 'cmdSetDepthBias' /must/ have been called in the --- current command buffer prior to this drawing command +-- state enabled then 'cmdSetDepthBias' or +-- 'Vulkan.Extensions.VK_EXT_depth_bias_control.cmdSetDepthBias2EXT' +-- /must/ have been called in the current command buffer prior to this +-- drawing command -- -- - #VUID-vkCmdDrawIndirect-None-08620# If a shader object is bound to -- any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnable' -- in the current command buffer set @depthBiasEnable@ to --- 'Vulkan.Core10.FundamentalTypes.TRUE', 'cmdSetDepthBias' /must/ have --- been called in the current command buffer prior to this drawing --- command +-- 'Vulkan.Core10.FundamentalTypes.TRUE', 'cmdSetDepthBias' or +-- 'Vulkan.Extensions.VK_EXT_depth_bias_control.cmdSetDepthBias2EXT' +-- /must/ have been called in the current command buffer prior to this +-- drawing command -- -- - #VUID-vkCmdDrawIndirect-None-07835# If the bound graphics pipeline -- state was created with the @@ -8406,7 +9895,7 @@ foreign import ccall -- the most recent call to -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT' -- in the current command buffer set the same element of --- @pColorBlendEquations@ to an +-- @pColorBlendEquations@ to a -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.ColorBlendEquationEXT' -- structure with any 'Vulkan.Core10.Enums.BlendFactor.BlendFactor' -- member with a value of @@ -8420,23 +9909,29 @@ foreign import ccall -- - #VUID-vkCmdDrawIndirect-None-07836# If the bound graphics pipeline -- state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS' --- dynamic state enabled then 'cmdSetDepthBounds' /must/ have been --- called in the current command buffer prior to this drawing command +-- dynamic state enabled, and if the current @depthBoundsTestEnable@ +-- state is 'Vulkan.Core10.FundamentalTypes.TRUE', then +-- 'cmdSetDepthBounds' /must/ have been called in the current command +-- buffer prior to this drawing command -- -- - #VUID-vkCmdDrawIndirect-None-08622# If a shader object is bound to -- any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable' -- in the current command buffer set @depthBoundsTestEnable@ to --- 'Vulkan.Core10.FundamentalTypes.TRUE', 'cmdSetDepthBounds' /must/ --- have been called in the current command buffer prior to this drawing --- command +-- 'Vulkan.Core10.FundamentalTypes.TRUE', then 'cmdSetDepthBounds' +-- /must/ have been called in the current command buffer prior to this +-- drawing command -- -- - #VUID-vkCmdDrawIndirect-None-07837# If the bound graphics pipeline -- state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_COMPARE_MASK' --- dynamic state enabled then 'cmdSetStencilCompareMask' /must/ have --- been called in the current command buffer prior to this drawing --- command +-- dynamic state enabled, and if the current @stencilTestEnable@ state +-- is 'Vulkan.Core10.FundamentalTypes.TRUE', then +-- 'cmdSetStencilCompareMask' /must/ have been called in the current +-- command buffer prior to this drawing command -- -- - #VUID-vkCmdDrawIndirect-None-08623# If a shader object is bound to -- any graphics stage, and the most recent call to @@ -8449,8 +9944,10 @@ foreign import ccall -- - #VUID-vkCmdDrawIndirect-None-07838# If the bound graphics pipeline -- state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_WRITE_MASK' --- dynamic state enabled then 'cmdSetStencilWriteMask' /must/ have been --- called in the current command buffer prior to this drawing command +-- dynamic state enabled, and if the current @stencilTestEnable@ state +-- is 'Vulkan.Core10.FundamentalTypes.TRUE', then +-- 'cmdSetStencilWriteMask' /must/ have been called in the current +-- command buffer prior to this drawing command -- -- - #VUID-vkCmdDrawIndirect-None-08624# If a shader object is bound to -- any graphics stage, and the most recent call to @@ -8463,8 +9960,10 @@ foreign import ccall -- - #VUID-vkCmdDrawIndirect-None-07839# If the bound graphics pipeline -- state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_REFERENCE' --- dynamic state enabled then 'cmdSetStencilReference' /must/ have been --- called in the current command buffer prior to this drawing command +-- dynamic state enabled, and if the current @stencilTestEnable@ state +-- is 'Vulkan.Core10.FundamentalTypes.TRUE', then +-- 'cmdSetStencilReference' /must/ have been called in the current +-- command buffer prior to this drawing command -- -- - #VUID-vkCmdDrawIndirect-None-08625# If a shader object is bound to -- any graphics stage, and the most recent call to @@ -8500,7 +9999,10 @@ foreign import ccall -- any graphics stage, and the most recent call to -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT' -- in the current command buffer set @sampleLocationsEnable@ to --- 'Vulkan.Core10.FundamentalTypes.TRUE', +-- 'Vulkan.Core10.FundamentalTypes.TRUE', and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -8524,7 +10026,10 @@ foreign import ccall -- drawing command -- -- - #VUID-vkCmdDrawIndirect-None-08627# If a shader object is bound to --- any graphics stage, +-- any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetCullMode' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -8538,7 +10043,10 @@ foreign import ccall -- drawing command -- -- - #VUID-vkCmdDrawIndirect-None-08628# If a shader object is bound to --- any graphics stage, +-- any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetFrontFace' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -8552,7 +10060,10 @@ foreign import ccall -- drawing command -- -- - #VUID-vkCmdDrawIndirect-None-08629# If a shader object is bound to --- any graphics stage, +-- any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -8566,7 +10077,10 @@ foreign import ccall -- drawing command -- -- - #VUID-vkCmdDrawIndirect-None-08630# If a shader object is bound to --- any graphics stage, +-- any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -8581,9 +10095,12 @@ foreign import ccall -- -- - #VUID-vkCmdDrawIndirect-None-08631# If a shader object is bound to -- any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable' -- in the current command buffer set @depthTestEnable@ to --- 'Vulkan.Core10.FundamentalTypes.TRUE', +-- 'Vulkan.Core10.FundamentalTypes.TRUE', then -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthCompareOp' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -8599,7 +10116,10 @@ foreign import ccall -- - #VUID-vkCmdDrawIndirect-None-08632# If a shader object is bound to -- any graphics stage, and the -- --- feature is enabled, the +-- feature is enabled, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then the -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -8719,6 +10239,13 @@ foreign import ccall -- the last call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- +-- - #VUID-vkCmdDrawIndirect-None-09232# If a shader object is bound to +-- any graphics stage, and the @VK_NV_clip_space_w_scaling@ extension +-- is enabled on the device, then +-- 'Vulkan.Extensions.VK_NV_clip_space_w_scaling.cmdSetViewportWScalingNV' +-- must have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdDrawIndirect-None-08636# If a shader object is bound to -- any graphics stage, and the @VK_NV_clip_space_w_scaling@ extension -- is enabled on the device, then the @viewportCount@ parameter in the @@ -8752,6 +10279,30 @@ foreign import ccall -- the last call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- +-- - #VUID-vkCmdDrawIndirect-shadingRateImage-09233# If the +-- +-- feature is enabled, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set rasterizerDiscardEnable to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then +-- 'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetCoarseSampleOrderNV' +-- must have been called in the current command buffer prior to this +-- drawing command +-- +-- - #VUID-vkCmdDrawIndirect-shadingRateImage-09234# If a shader object +-- is bound to any graphics stage, and the +-- +-- feature is enabled on the device, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set rasterizerDiscardEnable to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetShadingRateImageEnableNV' +-- in the current command buffer set shadingRateImageEnable to +-- 'Vulkan.Core10.FundamentalTypes.TRUE', then +-- 'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetViewportShadingRatePaletteNV' +-- must have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdDrawIndirect-None-08637# If a shader object is bound to -- any graphics stage, and the -- @@ -8804,6 +10355,14 @@ foreign import ccall -- /must/ have been called in the current command buffer prior to this -- drawing command -- +-- - #VUID-vkCmdDrawIndirect-exclusiveScissor-09235# If a shader object +-- is bound to any graphics stage, and the +-- +-- feature is enabled, then +-- 'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorEnableNV' +-- must have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdDrawIndirect-None-08638# If a shader object is bound to -- any graphics stage, and the most recent call to -- 'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorEnableNV' @@ -8855,7 +10414,9 @@ foreign import ccall -- 'Vulkan.Core10.Enums.LogicOp.LogicOp' value -- -- - #VUID-vkCmdDrawIndirect-None-08641# If a shader object is bound to --- any graphics stage, and the +-- the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage, and the -- -- feature is enabled on the device, and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' @@ -8940,6 +10501,11 @@ foreign import ccall -- to be the same as the number of samples for the current render pass -- color and\/or depth\/stencil attachments -- +-- - #VUID-vkCmdDrawIndirect-None-08876# If a shader object is bound to +-- any graphics stage, the current render pass instance /must/ have +-- been begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' +-- -- - #VUID-vkCmdDrawIndirect-imageView-06172# If the current render pass -- instance was begun with -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', @@ -9012,8 +10578,11 @@ foreign import ccall -- equal to -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ -- --- - #VUID-vkCmdDrawIndirect-colorAttachmentCount-06180# If the current --- render pass instance was begun with +-- - #VUID-vkCmdDrawIndirect-dynamicRenderingUnusedAttachments-08910# If +-- the +-- +-- feature is not enabled, and the current render pass instance was +-- begun with -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' -- and -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ @@ -9026,8 +10595,32 @@ foreign import ccall -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@ -- used to create the currently bound graphics pipeline -- --- - #VUID-vkCmdDrawIndirect-colorAttachmentCount-07616# If the current --- render pass instance was begun with +-- - #VUID-vkCmdDrawIndirect-dynamicRenderingUnusedAttachments-08911# If +-- the +-- +-- feature is enabled, and the current render pass instance was begun +-- with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' +-- and +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ +-- greater than @0@, then each element of the +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@ +-- array with a @imageView@ not equal to +-- 'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created +-- with a 'Vulkan.Core10.Enums.Format.Format' equal to the +-- corresponding element of +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@ +-- used to create the currently bound graphics pipeline, or the +-- corresponding element of +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@, +-- if it exists, /must/ be +-- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' +-- +-- - #VUID-vkCmdDrawIndirect-dynamicRenderingUnusedAttachments-08912# If +-- the +-- +-- feature is not enabled, and the current render pass instance was +-- begun with -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' -- and -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ @@ -9040,6 +10633,132 @@ foreign import ccall -- used to create the currently bound pipeline equal to -- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' -- +-- - #VUID-vkCmdDrawIndirect-colorAttachmentCount-09362# If the current +-- render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- with a +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ +-- equal to @1@, there is no shader object bound to any graphics stage, +-- and a color attachment with a resolve mode of +-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID', +-- each element of the +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@ +-- array with a @resolveImageView@ not equal to +-- 'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created +-- with an image created with a +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- value equal to the +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- value used to create the currently bound graphics pipeline +-- +-- - #VUID-vkCmdDrawIndirect-None-09363# If there is no shader object +-- bound to any graphics stage, the current render pass instance was +-- begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' +-- and a +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ +-- equal to @1@, and a color attachment with a resolve mode of +-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID', +-- each element of the +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@ +-- array with a @imageView@ not equal to +-- 'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created +-- with an image created with a +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- value equal to the +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- value used to create the currently bound graphics pipeline +-- +-- - #VUID-vkCmdDrawIndirect-None-09364# If the current render pass +-- instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- there is no shader object bound to any graphics stage, and the +-- currently bound graphics pipeline was created with a non-zero +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- value and with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT' +-- dynamic state enabled, then +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT' +-- /must/ have set the blend enable to +-- 'Vulkan.Core10.FundamentalTypes.FALSE' prior to this drawing command +-- +-- - #VUID-vkCmdDrawIndirect-None-09365# If the current render pass +-- instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- there is no shader object bound to any graphics stage, and the +-- currently bound graphics pipeline was created with a non-zero +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- value and with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT' +-- dynamic state enabled, then +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT' +-- /must/ have set @rasterizationSamples@ to +-- 'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT' prior +-- to this drawing command +-- +-- - #VUID-vkCmdDrawIndirect-None-09366# If there is a shader object +-- bound to any graphics stage, and the current render pass includes a +-- color attachment that uses the +-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID' +-- resolve mode, then +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT' +-- /must/ have set blend enable to +-- 'Vulkan.Core10.FundamentalTypes.FALSE' prior to this drawing command +-- +-- - #VUID-vkCmdDrawIndirect-rasterizationSamples-09367# If there is a +-- shader object bound to any graphics stage, and the current render +-- pass includes a color attachment that uses the +-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID' +-- resolve mode, then +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT' +-- /must/ have set @rasterizationSamples@ to +-- 'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT' prior +-- to this drawing command +-- +-- - #VUID-vkCmdDrawIndirect-None-09368# If the current render pass +-- instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- there is no shader object bound to any graphics stage, and the +-- currently bound graphics pipeline was created with a non-zero +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- value and with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR' +-- dynamic state enabled, then +-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR' +-- /must/ have set @pFragmentSize->width@ to @1@ prior to this drawing +-- command +-- +-- - #VUID-vkCmdDrawIndirect-None-09369# If the current render pass +-- instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- there is no shader object bound to any graphics stage, and the +-- currently bound graphics pipeline was created with a non-zero +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- value and with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR' +-- dynamic state enabled, then +-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR' +-- /must/ have set @pFragmentSize->height@ to @1@ prior to this drawing +-- command +-- +-- - #VUID-vkCmdDrawIndirect-pFragmentSize-09370# If there is a shader +-- object bound to any graphics stage, and the current render pass +-- includes a color attachment that uses the +-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID' +-- resolve mode, then +-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR' +-- /must/ have set @pFragmentSize->width@ to @1@ prior to this drawing +-- command +-- +-- - #VUID-vkCmdDrawIndirect-pFragmentSize-09371# If there is a shader +-- object bound to any graphics stage, and the current render pass +-- includes a color attachment that uses the +-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID' +-- resolve mode, then +-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR' +-- /must/ have set @pFragmentSize->height@ to @1@ prior to this drawing +-- command +-- -- - #VUID-vkCmdDrawIndirect-None-07749# If the bound graphics pipeline -- state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT' @@ -9051,7 +10770,9 @@ foreign import ccall -- - #VUID-vkCmdDrawIndirect-None-08646# If the -- -- feature is enabled on the device, and a shader object is bound to --- the fragment stage, and the most recent call to +-- the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage, and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' -- in the current command buffer set @rasterizerDiscardEnable@ to -- 'Vulkan.Core10.FundamentalTypes.FALSE', then @@ -9071,7 +10792,9 @@ foreign import ccall -- - #VUID-vkCmdDrawIndirect-None-08647# If the -- -- feature is enabled on the device, and a shader object is bound to --- the fragment stage, and the most recent call to +-- the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage, and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' -- in the current command buffer set @rasterizerDiscardEnable@ to -- 'Vulkan.Core10.FundamentalTypes.FALSE', then the @attachmentCount@ @@ -9097,6 +10820,16 @@ foreign import ccall -- /must/ have been called in the current command buffer prior to this -- drawing command -- +-- - #VUID-vkCmdDrawIndirect-rasterizerDiscardEnable-09236# If the +-- @VK_EXT_discard_rectangles@ extension is enabled, and a shader +-- object is bound to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then +-- 'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEXT' +-- /must/ have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdDrawIndirect-None-08648# If the -- @VK_EXT_discard_rectangles@ extension is enabled, and a shader -- object is bound to any graphics stage, and the most recent call to @@ -9128,10 +10861,24 @@ foreign import ccall -- /must/ have been called in the current command buffer prior to this -- drawing command -- --- - #VUID-vkCmdDrawIndirect-pDepthAttachment-06181# If the current --- render pass instance was begun with --- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' --- and +-- - #VUID-vkCmdDrawIndirect-dynamicRenderingUnusedAttachments-08913# If +-- the current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- the +-- +-- feature is not enabled, and +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@ +-- was 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@ +-- used to create the currently bound graphics pipeline /must/ be equal +-- to 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' +-- +-- - #VUID-vkCmdDrawIndirect-dynamicRenderingUnusedAttachments-08914# If +-- current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- the +-- +-- feature is not enabled, and -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@ -- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@ @@ -9139,20 +10886,39 @@ foreign import ccall -- to the 'Vulkan.Core10.Enums.Format.Format' used to create -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@ -- --- - #VUID-vkCmdDrawIndirect-pDepthAttachment-07617# If the current --- render pass instance was begun with --- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' --- and +-- - #VUID-vkCmdDrawIndirect-dynamicRenderingUnusedAttachments-08915# If +-- the current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- the +-- +-- feature is enabled, -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@ --- was 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of +-- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the value of -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@ +-- used to create the currently bound graphics pipeline was not equal +-- to the 'Vulkan.Core10.Enums.Format.Format' used to create +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@, +-- the value of the format /must/ be +-- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' +-- +-- - #VUID-vkCmdDrawIndirect-dynamicRenderingUnusedAttachments-08916# If +-- the current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- the +-- +-- feature is not enabled, and +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@ +-- was 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@ -- used to create the currently bound graphics pipeline /must/ be equal -- to 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' -- --- - #VUID-vkCmdDrawIndirect-pStencilAttachment-06182# If the current --- render pass instance was begun with --- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' --- and +-- - #VUID-vkCmdDrawIndirect-dynamicRenderingUnusedAttachments-08917# If +-- current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- the +-- +-- feature is not enabled, and -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@ -- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@ @@ -9160,15 +10926,20 @@ foreign import ccall -- to the 'Vulkan.Core10.Enums.Format.Format' used to create -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@ -- --- - #VUID-vkCmdDrawIndirect-pStencilAttachment-07618# If the current --- render pass instance was begun with --- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' --- and +-- - #VUID-vkCmdDrawIndirect-dynamicRenderingUnusedAttachments-08918# If +-- the current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- the +-- +-- feature is enabled, -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@ --- was 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of +-- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the value of -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@ --- used to create the currently bound graphics pipeline /must/ be equal --- to 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' +-- used to create the currently bound graphics pipeline was not equal +-- to the 'Vulkan.Core10.Enums.Format.Format' used to create +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@, +-- the value of the format /must/ be +-- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' -- -- - #VUID-vkCmdDrawIndirect-imageView-06183# If the current render pass -- instance was begun with @@ -9315,6 +11086,40 @@ foreign import ccall -- 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@renderPass@ -- equal to 'Vulkan.Core10.APIConstants.NULL_HANDLE' -- +-- - #VUID-vkCmdDrawIndirect-pColorAttachments-08963# If the current +-- render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- there is a graphics pipeline bound with a fragment shader that +-- statically writes to a color attachment, the color write mask is not +-- zero, color writes are enabled, and the corresponding element of the +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments->imageView@ +-- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', then the +-- corresponding element of +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@ +-- used to create the pipeline /must/ not be +-- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' +-- +-- - #VUID-vkCmdDrawIndirect-pDepthAttachment-08964# If the current +-- render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- there is a graphics pipeline bound, depth test is enabled, depth +-- write is enabled, and the +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@ +-- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', then the +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@ +-- used to create the pipeline /must/ not be +-- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' +-- +-- - #VUID-vkCmdDrawIndirect-pStencilAttachment-08965# If the current +-- render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- there is a graphics pipeline bound, stencil test is enabled and the +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@ +-- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', then the +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@ +-- used to create the pipeline /must/ not be +-- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' +-- -- - #VUID-vkCmdDrawIndirect-primitivesGeneratedQueryWithRasterizerDiscard-06708# -- If the -- @@ -9341,6 +11146,22 @@ foreign import ccall -- /must/ have been called in the current command buffer prior to this -- drawing command -- +-- - #VUID-vkCmdDrawIndirect-None-07620# If the bound graphics pipeline +-- state was created with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT' +-- dynamic state enabled then +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClampEnableEXT' +-- /must/ have been called in the current command buffer prior to this +-- drawing command +-- +-- - #VUID-vkCmdDrawIndirect-None-09237# If a shader object is bound to +-- the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT' +-- stage, then +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetTessellationDomainOriginEXT' +-- /must/ have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdDrawIndirect-None-08650# If the -- -- feature is enabled, and a shader object is bound to any graphics @@ -9411,6 +11232,17 @@ foreign import ccall -- /must/ have been called in the current command buffer prior to this -- drawing command -- +-- - #VUID-vkCmdDrawIndirect-alphaToCoverageEnable-08919# If the bound +-- graphics pipeline state was created with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT' +-- dynamic state enabled, and @alphaToCoverageEnable@ was +-- 'Vulkan.Core10.FundamentalTypes.TRUE' in the last call to +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT', +-- then the +-- +-- /must/ contain a variable for the alpha @Component@ word in +-- @Location@ 0 at @Index@ 0 +-- -- - #VUID-vkCmdDrawIndirect-None-08654# If a shader object is bound to -- any graphics stage, and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' @@ -9420,6 +11252,15 @@ foreign import ccall -- /must/ have been called in the current command buffer prior to this -- drawing command -- +-- - #VUID-vkCmdDrawIndirect-alphaToCoverageEnable-08920# If a shader +-- object is bound to any graphics stage, and the most recent call to +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT' +-- in the current command buffer set @alphaToCoverageEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.TRUE', then the +-- +-- /must/ contain a variable for the alpha @Component@ word in +-- @Location@ 0 at @Index@ 0 +-- -- - #VUID-vkCmdDrawIndirect-None-07625# If the bound graphics pipeline -- state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT' @@ -9449,7 +11290,8 @@ foreign import ccall -- -- - #VUID-vkCmdDrawIndirect-None-08656# If the -- --- feature is enabled, and a shader object is bound to any graphics +-- feature is enabled, and a shader object is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' -- stage, and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' -- in the current command buffer set @rasterizerDiscardEnable@ to @@ -9467,7 +11309,9 @@ foreign import ccall -- drawing command -- -- - #VUID-vkCmdDrawIndirect-None-08657# If a shader object is bound to --- any graphics stage, and the most recent call to +-- the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage, and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' -- in the current command buffer set @rasterizerDiscardEnable@ to -- 'Vulkan.Core10.FundamentalTypes.FALSE', then @@ -9504,7 +11348,9 @@ foreign import ccall -- drawing command -- -- - #VUID-vkCmdDrawIndirect-None-08659# If a shader object is bound to --- any graphics stage, and the most recent call to +-- the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage, and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' -- in the current command buffer set @rasterizerDiscardEnable@ to -- 'Vulkan.Core10.FundamentalTypes.FALSE', then @@ -9522,7 +11368,8 @@ foreign import ccall -- -- - #VUID-vkCmdDrawIndirect-None-08660# If the -- --- feature is enabled, and a shader object is bound to the geometry +-- feature is enabled, and a shader object is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT' -- stage, then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationStreamEXT' -- /must/ have been called in the current command buffer prior to this @@ -9621,7 +11468,8 @@ foreign import ccall -- drawing command -- -- - #VUID-vkCmdDrawIndirect-None-08665# If the @VK_EXT_provoking_vertex@ --- extension is enabled, and a shader object is bound to the vertex +-- extension is enabled, and a shader object is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT' -- stage, then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetProvokingVertexModeEXT' -- /must/ have been called in the current command buffer prior to this @@ -9731,7 +11579,7 @@ foreign import ccall -- stage, then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClipNegativeOneToOneEXT' -- /must/ have been called in the current command buffer prior to this --- drawing command ifdef::VK_EXT_extended_dynamic_state3 +-- drawing command -- -- - #VUID-vkCmdDrawIndirect-None-07640# If the bound graphics pipeline -- state was created with the @@ -9739,7 +11587,7 @@ foreign import ccall -- dynamic state enabled then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetViewportWScalingEnableNV' -- /must/ have been called in the current command buffer prior to this --- drawing command endif::VK_EXT_extended_dynamic_state3 +-- drawing command -- -- - #VUID-vkCmdDrawIndirect-None-08674# If the -- @VK_NV_clip_space_w_scaling@ extension is enabled, and a shader @@ -9773,7 +11621,12 @@ foreign import ccall -- -- - #VUID-vkCmdDrawIndirect-None-08676# If the -- @VK_NV_fragment_coverage_to_color@ extension is enabled, and a --- shader object is bound to any graphics stage, then +-- shader object is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -9788,8 +11641,9 @@ foreign import ccall -- -- - #VUID-vkCmdDrawIndirect-None-08677# If the -- @VK_NV_fragment_coverage_to_color@ extension is enabled, and a --- shader object is bound to any graphics stage, and the most recent --- call to +-- shader object is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage, and the most recent call to -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV' -- in the current command buffer set @coverageToColorEnable@ to -- 'Vulkan.Core10.FundamentalTypes.TRUE', then @@ -9807,7 +11661,10 @@ foreign import ccall -- -- - #VUID-vkCmdDrawIndirect-None-08678# If the -- @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader --- object is bound to any graphics stage, then +-- object is bound to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationModeNV' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -9822,7 +11679,15 @@ foreign import ccall -- -- - #VUID-vkCmdDrawIndirect-None-08679# If the -- @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader --- object is bound to any graphics stage, then +-- object is bound to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationModeNV' +-- in the current command buffer set coverageModulationMode to any +-- value other than +-- 'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.COVERAGE_MODULATION_MODE_NONE_NV', +-- then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -9838,6 +11703,9 @@ foreign import ccall -- - #VUID-vkCmdDrawIndirect-None-08680# If the -- @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader -- object is bound to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV' -- in the current command buffer set @coverageModulationTableEnable@ to -- 'Vulkan.Core10.FundamentalTypes.TRUE', then @@ -9853,10 +11721,25 @@ foreign import ccall -- /must/ have been called in the current command buffer prior to this -- drawing command -- +-- - #VUID-vkCmdDrawIndirect-pipelineFragmentShadingRate-09238# If the +-- +-- feature is enabled, and a shader object is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set rasterizerDiscardEnable to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then +-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR' +-- must have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdDrawIndirect-None-08681# If the -- -- feature is enabled, and a shader object is bound to any graphics --- stage, then +-- stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetShadingRateImageEnableNV' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -9866,13 +11749,16 @@ foreign import ccall -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV' -- dynamic state enabled then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRepresentativeFragmentTestEnableNV' --- must have been called in the current command buffer prior to this +-- /must/ have been called in the current command buffer prior to this -- drawing command -- -- - #VUID-vkCmdDrawIndirect-None-08682# If the -- -- feature is enabled, and a shader object is bound to any graphics --- stage, then +-- stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRepresentativeFragmentTestEnableNV' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -9888,7 +11774,10 @@ foreign import ccall -- - #VUID-vkCmdDrawIndirect-None-08683# If the -- -- feature is enabled, and a shader object is bound to any graphics --- stage, then +-- stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageReductionModeNV' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -9937,18 +11826,29 @@ foreign import ccall -- in the last call to -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT' -- --- - #VUID-vkCmdDrawIndirect-multisampledRenderToSingleSampled-07475# If --- the bound graphics pipeline state was created with the +-- - #VUID-vkCmdDrawIndirect-rasterizationSamples-07474# If the bound +-- graphics pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT' --- state enabled, and none of the @VK_AMD_mixed_attachment_samples@ --- extension, @VK_NV_framebuffer_mixed_samples@ extension, or the --- --- feature is enabled, then the @rasterizationSamples@ in the last call --- to +-- state enabled, and neither the @VK_AMD_mixed_attachment_samples@ nor +-- the @VK_NV_framebuffer_mixed_samples@ extensions are enabled, then +-- the @rasterizationSamples@ in the last call to -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT' -- /must/ be the same as the current subpass color and\/or -- depth\/stencil attachments -- +-- - #VUID-vkCmdDrawIndirect-None-09211# If the bound graphics pipeline +-- state was created with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT' +-- state enabled, or a shader object is bound to any graphics stage, +-- and the current render pass instance includes a +-- 'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT' +-- structure with @multisampledRenderToSingleSampledEnable@ equal to +-- 'Vulkan.Core10.FundamentalTypes.TRUE', then the +-- @rasterizationSamples@ in the last call to +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT' +-- /must/ be the same as the @rasterizationSamples@ member of that +-- structure +-- -- - #VUID-vkCmdDrawIndirect-firstAttachment-07476# If the bound graphics -- pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT' @@ -10007,7 +11907,7 @@ foreign import ccall -- and -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendAdvancedEXT' -- have enabled advanced blending, then the number of active color --- attachments in the current subpass must not exceed +-- attachments in the current subpass /must/ not exceed -- -- -- - #VUID-vkCmdDrawIndirect-primitivesGeneratedQueryWithNonZeroStreams-07481# @@ -10169,7 +12069,7 @@ foreign import ccall -- @VK_NV_framebuffer_mixed_samples@ extension is enabled, and if -- current subpass has a depth\/stencil attachment and depth test, -- stencil test, or depth bounds test are enabled in the currently --- bound pipeline state, then the current @rasterizationSamples@ must +-- bound pipeline state, then the current @rasterizationSamples@ /must/ -- be the same as the sample count of the depth\/stencil attachment -- -- - #VUID-vkCmdDrawIndirect-coverageToColorEnable-07490# If the bound @@ -10200,7 +12100,7 @@ foreign import ccall -- states enabled, the current coverage reduction mode -- @coverageReductionMode@, then the current @rasterizationSamples@, -- and the sample counts for the color and depth\/stencil attachments --- (if the subpass has them) must be a valid combination returned by +-- (if the subpass has them) /must/ be a valid combination returned by -- 'Vulkan.Extensions.VK_NV_coverage_reduction_mode.getPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV' -- -- - #VUID-vkCmdDrawIndirect-viewportCount-07492# If the bound graphics @@ -10288,7 +12188,7 @@ foreign import ccall -- -- feature /must/ be enabled and -- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@strictLines@ --- must be VK_TRUE +-- /must/ be 'Vulkan.Core10.FundamentalTypes.TRUE' -- -- - #VUID-vkCmdDrawIndirect-conservativePointAndLineRasterization-07499# -- If the bound graphics pipeline state was created with the @@ -10315,7 +12215,15 @@ foreign import ccall -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT', -- then -- --- must not be active +-- /must/ not be active +-- +-- - #VUID-vkCmdDrawIndirect-None-08877# If the bound graphics pipeline +-- state was created with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT' +-- dynamic state +-- 'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT' +-- /must/ have been called in the current command buffer prior to this +-- drawing command -- -- - #VUID-vkCmdDrawIndirect-None-07850# If dynamic state was inherited -- from @@ -10325,7 +12233,7 @@ foreign import ccall -- -- - #VUID-vkCmdDrawIndirect-None-08684# If there is no bound graphics -- pipeline, 'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' --- /must/ have been called on the current command buffer with @pStages@ +-- /must/ have been called in the current command buffer with @pStages@ -- with an element of -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT' -- @@ -10334,7 +12242,7 @@ foreign import ccall -- -- feature is enabled, -- 'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/ --- have been called on the current command buffer with @pStages@ with +-- have been called in the current command buffer with @pStages@ with -- an element of -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT' -- @@ -10343,7 +12251,7 @@ foreign import ccall -- -- feature is enabled, -- 'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/ --- have been called on the current command buffer with @pStages@ with +-- have been called in the current command buffer with @pStages@ with -- an element of -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT' -- @@ -10352,13 +12260,13 @@ foreign import ccall -- -- feature is enabled, -- 'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/ --- have been called on the current command buffer with @pStages@ with +-- have been called in the current command buffer with @pStages@ with -- an element of -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT' -- -- - #VUID-vkCmdDrawIndirect-None-08688# If there is no bound graphics -- pipeline, 'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' --- /must/ have been called on the current command buffer with @pStages@ +-- /must/ have been called in the current command buffer with @pStages@ -- with an element of -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' -- @@ -10367,7 +12275,7 @@ foreign import ccall -- -- feature is enabled, -- 'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/ --- have been called on the current command buffer with @pStages@ with +-- have been called in the current command buffer with @pStages@ with -- an element of -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT' -- @@ -10376,7 +12284,7 @@ foreign import ccall -- -- feature is enabled, -- 'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/ --- have been called on the current command buffer with @pStages@ with +-- have been called in the current command buffer with @pStages@ with -- an element of -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT' -- @@ -10388,8 +12296,8 @@ foreign import ccall -- features is enabled, one of the -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT' or -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT' --- stages must have a valid 'Vulkan.Extensions.Handles.ShaderEXT' --- bound, and the other must have no +-- stages /must/ have a valid 'Vulkan.Extensions.Handles.ShaderEXT' +-- bound, and the other /must/ have no -- 'Vulkan.Extensions.Handles.ShaderEXT' bound -- -- - #VUID-vkCmdDrawIndirect-None-08694# If there is no bound graphics @@ -10454,8 +12362,39 @@ foreign import ccall -- 'Vulkan.Extensions.VK_EXT_shader_object.createShadersEXT' call -- /must/ not have any 'Vulkan.Extensions.Handles.ShaderEXT' bound -- --- - #VUID-vkCmdDrawIndirect-pDynamicStates-08715# If the bound graphics --- pipeline state includes a fragment shader stage, was created with +-- - #VUID-vkCmdDrawIndirect-None-08878# All bound graphics shader +-- objects /must/ have been created with identical or identically +-- defined push constant ranges +-- +-- - #VUID-vkCmdDrawIndirect-None-08879# All bound graphics shader +-- objects /must/ have been created with identical or identically +-- defined arrays of descriptor set layouts +-- +-- - #VUID-vkCmdDrawIndirect-colorAttachmentCount-09372# If the current +-- render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' +-- and a +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ +-- equal to @1@, a color attachment with a resolve mode of +-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID', +-- and a fragment shader is bound, it /must/ not declare the +-- @DepthReplacing@ or @StencilRefReplacingEXT@ execution modes +-- +-- - #VUID-vkCmdDrawIndirect-None-08880# If a shader object is bound to +-- the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage and the +-- +-- feature is enabled on the device, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE' +-- 'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT' +-- /must/ have been called in the current command buffer prior to this +-- drawing command +-- +-- - #VUID-vkCmdDrawIndirect-pDynamicStates-08715# If the bound graphics +-- pipeline state includes a fragment shader stage, was created with -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_WRITE_ENABLE' -- set in -- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@, @@ -10474,6 +12413,32 @@ foreign import ccall -- mode and uses @OpStencilAttachmentReadEXT@, the @writeMask@ -- parameter in the last call to 'cmdSetStencilWriteMask' /must/ be @0@ -- +-- - #VUID-vkCmdDrawIndirect-None-09116# If a shader object is bound to +-- any graphics stage or the currently bound graphics pipeline was +-- created with +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_MASK_EXT', +-- and the format of any color attachment is +-- 'Vulkan.Core10.Enums.Format.FORMAT_E5B9G9R9_UFLOAT_PACK32', the +-- corresponding element of the @pColorWriteMasks@ parameter of +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorWriteMaskEXT' +-- /must/ either include all of +-- 'Vulkan.Core10.Enums.ColorComponentFlagBits.COLOR_COMPONENT_R_BIT', +-- 'Vulkan.Core10.Enums.ColorComponentFlagBits.COLOR_COMPONENT_G_BIT', +-- and +-- 'Vulkan.Core10.Enums.ColorComponentFlagBits.COLOR_COMPONENT_B_BIT', +-- or none of them +-- +-- - #VUID-vkCmdDrawIndirect-maxFragmentDualSrcAttachments-09239# If +-- +-- is enabled for any attachment where either the source or destination +-- blend factors for that attachment +-- , +-- the maximum value of @Location@ for any output attachment +-- +-- in the @Fragment@ @Execution@ @Model@ executed by this command +-- /must/ be less than +-- +-- -- - #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 @@ -10534,6 +12499,14 @@ foreign import ccall -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT' -- /must/ not be @NULL@ -- +-- - #VUID-vkCmdDrawIndirect-None-08881# If a shader object is bound to +-- the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT' +-- stage, then +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology' +-- /must/ have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdDrawIndirect-None-04914# If the bound graphics pipeline -- state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT' @@ -10550,6 +12523,53 @@ foreign import ccall -- @OpEntryPoint@ /must/ contain a location in -- 'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@location@ -- +-- - #VUID-vkCmdDrawIndirect-Input-08734# If the bound graphics pipeline +-- state was created with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT' +-- dynamic state enabled, then the numeric type associated with all +-- @Input@ variables of the corresponding @Location@ in the @Vertex@ +-- @Execution@ @Model@ @OpEntryPoint@ /must/ be the same as +-- 'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@format@ +-- +-- - #VUID-vkCmdDrawIndirect-format-08936# If there is a shader object +-- bound to a graphics stage or the currently bound graphics pipeline +-- was created with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT' +-- dynamic state enabled, and +-- 'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@format@ +-- has a 64-bit component, then the scalar width associated with all +-- @Input@ variables of the corresponding @Location@ in the @Vertex@ +-- @Execution@ @Model@ @OpEntryPoint@ /must/ be 64-bit +-- +-- - #VUID-vkCmdDrawIndirect-format-08937# If there is a shader object +-- bound to a graphics stage or the currently bound graphics pipeline +-- was created with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT' +-- dynamic state enabled, and the scalar width associated with a +-- @Location@ decorated @Input@ variable in the @Vertex@ @Execution@ +-- @Model@ @OpEntryPoint@ is 64-bit, then the corresponding +-- 'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@format@ +-- /must/ have a 64-bit component +-- +-- - #VUID-vkCmdDrawIndirect-None-09203# If there is a shader object +-- bound to a graphics stage or the currently bound graphics pipeline +-- was created with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT' +-- dynamic state enabled, and +-- 'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@format@ +-- has a 64-bit component, then all @Input@ variables at the +-- corresponding @Location@ in the @Vertex@ @Execution@ @Model@ +-- @OpEntryPoint@ /must/ not use components that are not present in the +-- format +-- +-- - #VUID-vkCmdDrawIndirect-None-08882# If a shader object is bound to +-- the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT' +-- stage, then +-- 'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT' +-- /must/ have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdDrawIndirect-None-04875# If the bound graphics pipeline -- state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT' @@ -10558,6 +12578,14 @@ foreign import ccall -- /must/ have been called in the current command buffer prior to this -- drawing command -- +-- - #VUID-vkCmdDrawIndirect-None-08883# If a shader object is bound to +-- the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT' +-- stage, then +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetPatchControlPointsEXT' +-- /must/ have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdDrawIndirect-None-04879# If the bound graphics pipeline -- state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE' @@ -10566,6 +12594,15 @@ foreign import ccall -- /must/ have been called in the current command buffer prior to this -- drawing command -- +-- - #VUID-vkCmdDrawIndirect-rasterizerDiscardEnable-08884# If a shader +-- object is bound to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetPrimitiveRestartEnable' +-- /must/ have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdDrawIndirect-stage-06481# The bound graphics pipeline -- /must/ not have been created with the -- 'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo'::@stage@ @@ -10576,6 +12613,13 @@ foreign import ccall -- or -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT' -- +-- - #VUID-vkCmdDrawIndirect-None-08885# There /must/ be no shader object +-- bound to either of the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT' +-- or +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT' +-- stages +-- -- - #VUID-vkCmdDrawIndirect-buffer-02708# If @buffer@ is non-sparse then -- it /must/ be bound completely and contiguously to a single -- 'Vulkan.Core10.Handles.DeviceMemory' object @@ -10765,6 +12809,16 @@ foreign import ccall -- /must/ contain -- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT' -- +-- - #VUID-vkCmdDrawIndexedIndirect-None-02693# If the +-- +-- extension is not enabled and any 'Vulkan.Core10.Handles.ImageView' +-- is sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a +-- result of this command, it /must/ not have a +-- 'Vulkan.Core10.Enums.ImageViewType.ImageViewType' of +-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_3D', +-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE', or +-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE_ARRAY' +-- -- - #VUID-vkCmdDrawIndexedIndirect-filterCubic-02694# Any -- 'Vulkan.Core10.Handles.ImageView' being sampled with -- 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a result of this @@ -10790,6 +12844,33 @@ foreign import ccall -- returned by -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceImageFormatProperties2' -- +-- - #VUID-vkCmdDrawIndexedIndirect-cubicRangeClamp-09212# If the +-- +-- feature is not enabled, then any 'Vulkan.Core10.Handles.ImageView' +-- being sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as +-- a result of this command +-- +-- [/must/ not have a 'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo'] +-- @reductionMode@ equal to +-- 'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM' +-- +-- - #VUID-vkCmdDrawIndexedIndirect-reductionMode-09213# Any +-- 'Vulkan.Core10.Handles.ImageView' being sampled with a +-- 'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo'::@reductionMode@ +-- equal to +-- 'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM' +-- as a result of this command /must/ sample with +-- 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' +-- +-- - #VUID-vkCmdDrawIndexedIndirect-selectableCubicWeights-09214# If the +-- +-- feature is not enabled, then any 'Vulkan.Core10.Handles.ImageView' +-- being sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as +-- a result of this command /must/ have +-- 'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.SamplerCubicWeightsCreateInfoQCOM'::@cubicWeights@ +-- equal to +-- 'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM' +-- -- - #VUID-vkCmdDrawIndexedIndirect-flags-02696# Any -- 'Vulkan.Core10.Handles.Image' created with a -- 'Vulkan.Core10.Image.ImageCreateInfo'::@flags@ containing @@ -10831,11 +12912,9 @@ foreign import ccall -- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT' -- -- - #VUID-vkCmdDrawIndexedIndirect-None-08600# For each set /n/ that is --- statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to the --- pipeline bind point used by this command, or by any of the --- 'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages --- corresponding to the pipeline bind point used by this command, a --- descriptor set /must/ have been bound to /n/ at the same pipeline +-- statically used by +-- , +-- a descriptor set /must/ have been bound to /n/ at the same pipeline -- bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is -- compatible for set /n/, with the -- 'Vulkan.Core10.Handles.PipelineLayout' or @@ -10845,12 +12924,10 @@ foreign import ccall -- -- -- - #VUID-vkCmdDrawIndexedIndirect-None-08601# For each push constant --- that is statically used by the 'Vulkan.Core10.Handles.Pipeline' --- bound to the pipeline bind point used by this command, or by any of --- the 'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages --- corresponding to the pipeline bind point used by this command, a --- push constant value /must/ have been set for the same pipeline bind --- point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is +-- that is statically used by +-- , +-- a push constant value /must/ have been set for the same pipeline +-- bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is -- compatible for push constants, with the -- 'Vulkan.Core10.Handles.PipelineLayout' or -- 'Vulkan.Core10.Handles.DescriptorSetLayout' and @@ -10862,12 +12939,10 @@ foreign import ccall -- - #VUID-vkCmdDrawIndexedIndirect-maintenance4-08602# If the -- -- feature is not enabled, then for each push constant that is --- statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to the --- pipeline bind point used by this command, or by any of the --- 'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages --- corresponding to the pipeline bind point used by this command, a --- push constant value /must/ have been set for the same pipeline bind --- point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is +-- statically used by +-- , +-- a push constant value /must/ have been set for the same pipeline +-- bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is -- compatible for push constants, with the -- 'Vulkan.Core10.Handles.PipelineLayout' or -- 'Vulkan.Core10.Handles.DescriptorSetLayout' and @@ -11027,34 +13102,25 @@ foreign import ccall -- buffer as specified in the descriptor set bound to the same pipeline -- bind point -- --- - #VUID-vkCmdDrawIndexedIndirect-commandBuffer-08614# If +-- - #VUID-vkCmdDrawIndexedIndirect-commandBuffer-02707# If -- @commandBuffer@ is an unprotected command buffer and -- --- is not supported, any resource accessed by the --- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind --- point used by this command or any --- 'Vulkan.Extensions.Handles.ShaderEXT' object bound to a stage --- corresponding to the pipeline bind point used by this command /must/ --- not be a protected resource --- --- - #VUID-vkCmdDrawIndexedIndirect-None-08615# If the --- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind --- point used by this command or any --- 'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding --- to the pipeline bind point used by this command accesses a --- 'Vulkan.Core10.Handles.Sampler' or 'Vulkan.Core10.Handles.ImageView' --- object that enables +-- is not supported, any resource accessed by +-- +-- /must/ not be a protected resource +-- +-- - #VUID-vkCmdDrawIndexedIndirect-None-06550# If +-- +-- accesses a 'Vulkan.Core10.Handles.Sampler' or +-- 'Vulkan.Core10.Handles.ImageView' object that enables -- , -- that object /must/ only be used with @OpImageSample*@ or -- @OpImageSparseSample*@ instructions -- --- - #VUID-vkCmdDrawIndexedIndirect-ConstOffset-08616# If the --- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind --- point used by this command or any --- 'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding --- to the pipeline bind point used by this command accesses a --- 'Vulkan.Core10.Handles.Sampler' or 'Vulkan.Core10.Handles.ImageView' --- object that enables +-- - #VUID-vkCmdDrawIndexedIndirect-ConstOffset-06551# If +-- +-- accesses a 'Vulkan.Core10.Handles.Sampler' or +-- 'Vulkan.Core10.Handles.ImageView' object that enables -- , -- that object /must/ not use the @ConstOffset@ and @Offset@ operands -- @@ -11066,17 +13132,23 @@ foreign import ccall -- -- - #VUID-vkCmdDrawIndexedIndirect-format-07753# If a -- 'Vulkan.Core10.Handles.ImageView' is accessed as a result of this --- command, then the image view’s @format@ /must/ match the numeric --- format from the @Sampled@ @Type@ operand of the @OpTypeImage@ as --- described in the SPIR-V Sampled Type column of the --- --- table --- --- - #VUID-vkCmdDrawIndexedIndirect-None-04115# If a --- 'Vulkan.Core10.Handles.ImageView' is accessed using @OpImageWrite@ --- as a result of this command, then the @Type@ of the @Texel@ operand --- of that instruction /must/ have at least as many components as the --- image view’s format +-- command, then the +-- +-- of the image view’s @format@ and the @Sampled@ @Type@ operand of the +-- @OpTypeImage@ /must/ match +-- +-- - #VUID-vkCmdDrawIndexedIndirect-OpImageWrite-08795# If a +-- 'Vulkan.Core10.Handles.ImageView' created with a format other than +-- 'Vulkan.Core10.Enums.Format.FORMAT_A8_UNORM_KHR' is accessed using +-- @OpImageWrite@ as a result of this command, then the @Type@ of the +-- @Texel@ operand of that instruction /must/ have at least as many +-- components as the image view’s format +-- +-- - #VUID-vkCmdDrawIndexedIndirect-OpImageWrite-08796# If a +-- 'Vulkan.Core10.Handles.ImageView' created with the format +-- 'Vulkan.Core10.Enums.Format.FORMAT_A8_UNORM_KHR' is accessed using +-- @OpImageWrite@ as a result of this command, then the @Type@ of the +-- @Texel@ operand of that instruction /must/ have four components -- -- - #VUID-vkCmdDrawIndexedIndirect-OpImageWrite-04469# If a -- 'Vulkan.Core10.Handles.BufferView' is accessed using @OpImageWrite@ @@ -11178,6 +13250,8 @@ foreign import ccall -- -- - #VUID-vkCmdDrawIndexedIndirect-OpImageWeightedSampleQCOM-06977# If -- @OpImageWeightedSampleQCOM@, @OpImageBoxFilterQCOM@, +-- @OpImageBlockMatchWindowSSDQCOM@, @OpImageBlockMatchWindowSADQCOM@, +-- @OpImageBlockMatchGatherSSDQCOM@, @OpImageBlockMatchGatherSADQCOM@, -- @OpImageBlockMatchSSDQCOM@, or @OpImageBlockMatchSADQCOM@ uses a -- 'Vulkan.Core10.Handles.Sampler' as a result of this command, then -- the sampler /must/ have been created with @@ -11185,12 +13259,35 @@ foreign import ccall -- -- - #VUID-vkCmdDrawIndexedIndirect-OpImageWeightedSampleQCOM-06978# If -- any command other than @OpImageWeightedSampleQCOM@, --- @OpImageBoxFilterQCOM@, @OpImageBlockMatchSSDQCOM@, or +-- @OpImageBoxFilterQCOM@, @OpImageBlockMatchWindowSSDQCOM@, +-- @OpImageBlockMatchWindowSADQCOM@, @OpImageBlockMatchGatherSSDQCOM@, +-- @OpImageBlockMatchGatherSADQCOM@, @OpImageBlockMatchSSDQCOM@, or -- @OpImageBlockMatchSADQCOM@ uses a 'Vulkan.Core10.Handles.Sampler' as -- a result of this command, then the sampler /must/ not have been -- created with -- 'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM' -- +-- - #VUID-vkCmdDrawIndexedIndirect-OpImageBlockMatchWindow-09215# If a +-- @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@ +-- instruction is used to read from an +-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then +-- the image view’s +-- +-- /must/ contain +-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM' +-- +-- - #VUID-vkCmdDrawIndexedIndirect-OpImageBlockMatchWindow-09216# If a +-- @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@ +-- instruction is used to read from an +-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then +-- the image view’s format /must/ be a single-component format. +-- +-- - #VUID-vkCmdDrawIndexedIndirect-OpImageBlockMatchWindow-09217# If a +-- @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@ +-- read from a reference image as result of this command, then the +-- specified reference coordinates /must/ not fail +-- +-- -- - #VUID-vkCmdDrawIndexedIndirect-None-07288# Any shader invocation -- executed by this command /must/ -- @@ -11235,15 +13332,86 @@ foreign import ccall -- not be written in any way other than as an attachment by this -- command -- --- - #VUID-vkCmdDrawIndexedIndirect-None-06538# If any recorded command --- in the current subpass will write to an image subresource as an --- attachment, this command /must/ not read from the memory backing --- that image subresource in any other way than as an attachment +-- - #VUID-vkCmdDrawIndexedIndirect-None-09000# If a color attachment is +-- written by any prior command in this subpass or by the load, store, +-- or resolve operations for this subpass, it is not in the +-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT' +-- image layout, and either: +-- +-- - the +-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT' +-- is set on the currently bound pipeline or -- --- - #VUID-vkCmdDrawIndexedIndirect-None-06539# If any recorded command --- in the current subpass will read from an image subresource used as --- an attachment in any way other than as an attachment, this command --- /must/ not write to that image subresource as an attachment +-- - the last call to +-- 'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT' +-- included +-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT' +-- and +-- +-- - there is no currently bound graphics pipeline or +-- +-- - the currently bound graphics pipeline was created with +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT' +-- it /must/ not be accessed in any way other than as an +-- attachment by this command +-- +-- - #VUID-vkCmdDrawIndexedIndirect-None-09001# If a depth attachment is +-- written by any prior command in this subpass or by the load, store, +-- or resolve operations for this subpass, it is not in the +-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT' +-- image layout, and either: +-- +-- - the +-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT' +-- is set on the currently bound pipeline or +-- +-- - the last call to +-- 'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT' +-- included +-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_DEPTH_BIT' +-- and +-- +-- - there is no currently bound graphics pipeline or +-- +-- - the currently bound graphics pipeline was created with +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT' +-- it /must/ not be accessed in any way other than as an +-- attachment by this command +-- +-- - #VUID-vkCmdDrawIndexedIndirect-None-09002# If a stencil attachment +-- is written by any prior command in this subpass or by the load, +-- store, or resolve operations for this subpass, it is not in the +-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT' +-- image layout, and either: +-- +-- - the +-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT' +-- is set on the currently bound pipeline or +-- +-- - the last call to +-- 'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT' +-- included +-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT' +-- and +-- +-- - there is no currently bound graphics pipeline or +-- +-- - the currently bound graphics pipeline was created with +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT' +-- it /must/ not be accessed in any way other than as an +-- attachment by this command +-- +-- - #VUID-vkCmdDrawIndexedIndirect-None-09003# If an attachment is +-- written by any prior command in this subpass or by the load, store, +-- or resolve operations for this subpass, it /must/ not be accessed in +-- any way other than as an attachment, storage image, or sampled image +-- by this command +-- +-- - #VUID-vkCmdDrawIndexedIndirect-None-06539# If any previously +-- recorded command in the current subpass accessed an image +-- subresource used as an attachment in this subpass in any way other +-- than as an attachment, this command /must/ not write to that image +-- subresource as an attachment -- -- - #VUID-vkCmdDrawIndexedIndirect-None-06886# If the current render -- pass instance uses a depth\/stencil attachment with a read-only @@ -11304,16 +13472,22 @@ foreign import ccall -- - #VUID-vkCmdDrawIndexedIndirect-None-07834# If the bound graphics -- pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS' dynamic --- state enabled then 'cmdSetDepthBias' /must/ have been called in the --- current command buffer prior to this drawing command +-- state enabled then 'cmdSetDepthBias' or +-- 'Vulkan.Extensions.VK_EXT_depth_bias_control.cmdSetDepthBias2EXT' +-- /must/ have been called in the current command buffer prior to this +-- drawing command -- -- - #VUID-vkCmdDrawIndexedIndirect-None-08620# If a shader object is -- bound to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnable' -- in the current command buffer set @depthBiasEnable@ to --- 'Vulkan.Core10.FundamentalTypes.TRUE', 'cmdSetDepthBias' /must/ have --- been called in the current command buffer prior to this drawing --- command +-- 'Vulkan.Core10.FundamentalTypes.TRUE', 'cmdSetDepthBias' or +-- 'Vulkan.Extensions.VK_EXT_depth_bias_control.cmdSetDepthBias2EXT' +-- /must/ have been called in the current command buffer prior to this +-- drawing command -- -- - #VUID-vkCmdDrawIndexedIndirect-None-07835# If the bound graphics -- pipeline state was created with the @@ -11334,7 +13508,7 @@ foreign import ccall -- the most recent call to -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT' -- in the current command buffer set the same element of --- @pColorBlendEquations@ to an +-- @pColorBlendEquations@ to a -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.ColorBlendEquationEXT' -- structure with any 'Vulkan.Core10.Enums.BlendFactor.BlendFactor' -- member with a value of @@ -11348,23 +13522,29 @@ foreign import ccall -- - #VUID-vkCmdDrawIndexedIndirect-None-07836# If the bound graphics -- pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS' --- dynamic state enabled then 'cmdSetDepthBounds' /must/ have been --- called in the current command buffer prior to this drawing command +-- dynamic state enabled, and if the current @depthBoundsTestEnable@ +-- state is 'Vulkan.Core10.FundamentalTypes.TRUE', then +-- 'cmdSetDepthBounds' /must/ have been called in the current command +-- buffer prior to this drawing command -- -- - #VUID-vkCmdDrawIndexedIndirect-None-08622# If a shader object is -- bound to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable' -- in the current command buffer set @depthBoundsTestEnable@ to --- 'Vulkan.Core10.FundamentalTypes.TRUE', 'cmdSetDepthBounds' /must/ --- have been called in the current command buffer prior to this drawing --- command +-- 'Vulkan.Core10.FundamentalTypes.TRUE', then 'cmdSetDepthBounds' +-- /must/ have been called in the current command buffer prior to this +-- drawing command -- -- - #VUID-vkCmdDrawIndexedIndirect-None-07837# If the bound graphics -- pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_COMPARE_MASK' --- dynamic state enabled then 'cmdSetStencilCompareMask' /must/ have --- been called in the current command buffer prior to this drawing --- command +-- dynamic state enabled, and if the current @stencilTestEnable@ state +-- is 'Vulkan.Core10.FundamentalTypes.TRUE', then +-- 'cmdSetStencilCompareMask' /must/ have been called in the current +-- command buffer prior to this drawing command -- -- - #VUID-vkCmdDrawIndexedIndirect-None-08623# If a shader object is -- bound to any graphics stage, and the most recent call to @@ -11377,8 +13557,10 @@ foreign import ccall -- - #VUID-vkCmdDrawIndexedIndirect-None-07838# If the bound graphics -- pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_WRITE_MASK' --- dynamic state enabled then 'cmdSetStencilWriteMask' /must/ have been --- called in the current command buffer prior to this drawing command +-- dynamic state enabled, and if the current @stencilTestEnable@ state +-- is 'Vulkan.Core10.FundamentalTypes.TRUE', then +-- 'cmdSetStencilWriteMask' /must/ have been called in the current +-- command buffer prior to this drawing command -- -- - #VUID-vkCmdDrawIndexedIndirect-None-08624# If a shader object is -- bound to any graphics stage, and the most recent call to @@ -11391,8 +13573,10 @@ foreign import ccall -- - #VUID-vkCmdDrawIndexedIndirect-None-07839# If the bound graphics -- pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_REFERENCE' --- dynamic state enabled then 'cmdSetStencilReference' /must/ have been --- called in the current command buffer prior to this drawing command +-- dynamic state enabled, and if the current @stencilTestEnable@ state +-- is 'Vulkan.Core10.FundamentalTypes.TRUE', then +-- 'cmdSetStencilReference' /must/ have been called in the current +-- command buffer prior to this drawing command -- -- - #VUID-vkCmdDrawIndexedIndirect-None-08625# If a shader object is -- bound to any graphics stage, and the most recent call to @@ -11428,7 +13612,10 @@ foreign import ccall -- bound to any graphics stage, and the most recent call to -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT' -- in the current command buffer set @sampleLocationsEnable@ to --- 'Vulkan.Core10.FundamentalTypes.TRUE', +-- 'Vulkan.Core10.FundamentalTypes.TRUE', and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -11452,7 +13639,10 @@ foreign import ccall -- drawing command -- -- - #VUID-vkCmdDrawIndexedIndirect-None-08627# If a shader object is --- bound to any graphics stage, +-- bound to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetCullMode' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -11466,7 +13656,10 @@ foreign import ccall -- drawing command -- -- - #VUID-vkCmdDrawIndexedIndirect-None-08628# If a shader object is --- bound to any graphics stage, +-- bound to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetFrontFace' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -11480,7 +13673,10 @@ foreign import ccall -- drawing command -- -- - #VUID-vkCmdDrawIndexedIndirect-None-08629# If a shader object is --- bound to any graphics stage, +-- bound to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -11494,7 +13690,10 @@ foreign import ccall -- drawing command -- -- - #VUID-vkCmdDrawIndexedIndirect-None-08630# If a shader object is --- bound to any graphics stage, +-- bound to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -11509,9 +13708,12 @@ foreign import ccall -- -- - #VUID-vkCmdDrawIndexedIndirect-None-08631# If a shader object is -- bound to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable' -- in the current command buffer set @depthTestEnable@ to --- 'Vulkan.Core10.FundamentalTypes.TRUE', +-- 'Vulkan.Core10.FundamentalTypes.TRUE', then -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthCompareOp' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -11527,7 +13729,10 @@ foreign import ccall -- - #VUID-vkCmdDrawIndexedIndirect-None-08632# If a shader object is -- bound to any graphics stage, and the -- --- feature is enabled, the +-- feature is enabled, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then the -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -11647,6 +13852,13 @@ foreign import ccall -- the last call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- +-- - #VUID-vkCmdDrawIndexedIndirect-None-09232# If a shader object is +-- bound to any graphics stage, and the @VK_NV_clip_space_w_scaling@ +-- extension is enabled on the device, then +-- 'Vulkan.Extensions.VK_NV_clip_space_w_scaling.cmdSetViewportWScalingNV' +-- must have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdDrawIndexedIndirect-None-08636# If a shader object is -- bound to any graphics stage, and the @VK_NV_clip_space_w_scaling@ -- extension is enabled on the device, then the @viewportCount@ @@ -11680,6 +13892,30 @@ foreign import ccall -- the last call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- +-- - #VUID-vkCmdDrawIndexedIndirect-shadingRateImage-09233# If the +-- +-- feature is enabled, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set rasterizerDiscardEnable to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then +-- 'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetCoarseSampleOrderNV' +-- must have been called in the current command buffer prior to this +-- drawing command +-- +-- - #VUID-vkCmdDrawIndexedIndirect-shadingRateImage-09234# If a shader +-- object is bound to any graphics stage, and the +-- +-- feature is enabled on the device, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set rasterizerDiscardEnable to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetShadingRateImageEnableNV' +-- in the current command buffer set shadingRateImageEnable to +-- 'Vulkan.Core10.FundamentalTypes.TRUE', then +-- 'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetViewportShadingRatePaletteNV' +-- must have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdDrawIndexedIndirect-None-08637# If a shader object is -- bound to any graphics stage, and the -- @@ -11732,6 +13968,14 @@ foreign import ccall -- /must/ have been called in the current command buffer prior to this -- drawing command -- +-- - #VUID-vkCmdDrawIndexedIndirect-exclusiveScissor-09235# If a shader +-- object is bound to any graphics stage, and the +-- +-- feature is enabled, then +-- 'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorEnableNV' +-- must have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdDrawIndexedIndirect-None-08638# If a shader object is -- bound to any graphics stage, and the most recent call to -- 'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorEnableNV' @@ -11783,7 +14027,9 @@ foreign import ccall -- 'Vulkan.Core10.Enums.LogicOp.LogicOp' value -- -- - #VUID-vkCmdDrawIndexedIndirect-None-08641# If a shader object is --- bound to any graphics stage, and the +-- bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage, and the -- -- feature is enabled on the device, and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' @@ -11868,6 +14114,11 @@ foreign import ccall -- to be the same as the number of samples for the current render pass -- color and\/or depth\/stencil attachments -- +-- - #VUID-vkCmdDrawIndexedIndirect-None-08876# If a shader object is +-- bound to any graphics stage, the current render pass instance /must/ +-- have been begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' +-- -- - #VUID-vkCmdDrawIndexedIndirect-imageView-06172# If the current -- render pass instance was begun with -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', @@ -11940,8 +14191,11 @@ foreign import ccall -- equal to -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ -- --- - #VUID-vkCmdDrawIndexedIndirect-colorAttachmentCount-06180# If the --- current render pass instance was begun with +-- - #VUID-vkCmdDrawIndexedIndirect-dynamicRenderingUnusedAttachments-08910# +-- If the +-- +-- feature is not enabled, and the current render pass instance was +-- begun with -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' -- and -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ @@ -11954,8 +14208,32 @@ foreign import ccall -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@ -- used to create the currently bound graphics pipeline -- --- - #VUID-vkCmdDrawIndexedIndirect-colorAttachmentCount-07616# If the --- current render pass instance was begun with +-- - #VUID-vkCmdDrawIndexedIndirect-dynamicRenderingUnusedAttachments-08911# +-- If the +-- +-- feature is enabled, and the current render pass instance was begun +-- with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' +-- and +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ +-- greater than @0@, then each element of the +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@ +-- array with a @imageView@ not equal to +-- 'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created +-- with a 'Vulkan.Core10.Enums.Format.Format' equal to the +-- corresponding element of +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@ +-- used to create the currently bound graphics pipeline, or the +-- corresponding element of +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@, +-- if it exists, /must/ be +-- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' +-- +-- - #VUID-vkCmdDrawIndexedIndirect-dynamicRenderingUnusedAttachments-08912# +-- If the +-- +-- feature is not enabled, and the current render pass instance was +-- begun with -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' -- and -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ @@ -11968,6 +14246,132 @@ foreign import ccall -- used to create the currently bound pipeline equal to -- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' -- +-- - #VUID-vkCmdDrawIndexedIndirect-colorAttachmentCount-09362# If the +-- current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- with a +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ +-- equal to @1@, there is no shader object bound to any graphics stage, +-- and a color attachment with a resolve mode of +-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID', +-- each element of the +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@ +-- array with a @resolveImageView@ not equal to +-- 'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created +-- with an image created with a +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- value equal to the +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- value used to create the currently bound graphics pipeline +-- +-- - #VUID-vkCmdDrawIndexedIndirect-None-09363# If there is no shader +-- object bound to any graphics stage, the current render pass instance +-- was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' +-- and a +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ +-- equal to @1@, and a color attachment with a resolve mode of +-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID', +-- each element of the +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@ +-- array with a @imageView@ not equal to +-- 'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created +-- with an image created with a +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- value equal to the +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- value used to create the currently bound graphics pipeline +-- +-- - #VUID-vkCmdDrawIndexedIndirect-None-09364# If the current render +-- pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- there is no shader object bound to any graphics stage, and the +-- currently bound graphics pipeline was created with a non-zero +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- value and with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT' +-- dynamic state enabled, then +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT' +-- /must/ have set the blend enable to +-- 'Vulkan.Core10.FundamentalTypes.FALSE' prior to this drawing command +-- +-- - #VUID-vkCmdDrawIndexedIndirect-None-09365# If the current render +-- pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- there is no shader object bound to any graphics stage, and the +-- currently bound graphics pipeline was created with a non-zero +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- value and with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT' +-- dynamic state enabled, then +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT' +-- /must/ have set @rasterizationSamples@ to +-- 'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT' prior +-- to this drawing command +-- +-- - #VUID-vkCmdDrawIndexedIndirect-None-09366# If there is a shader +-- object bound to any graphics stage, and the current render pass +-- includes a color attachment that uses the +-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID' +-- resolve mode, then +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT' +-- /must/ have set blend enable to +-- 'Vulkan.Core10.FundamentalTypes.FALSE' prior to this drawing command +-- +-- - #VUID-vkCmdDrawIndexedIndirect-rasterizationSamples-09367# If there +-- is a shader object bound to any graphics stage, and the current +-- render pass includes a color attachment that uses the +-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID' +-- resolve mode, then +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT' +-- /must/ have set @rasterizationSamples@ to +-- 'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT' prior +-- to this drawing command +-- +-- - #VUID-vkCmdDrawIndexedIndirect-None-09368# If the current render +-- pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- there is no shader object bound to any graphics stage, and the +-- currently bound graphics pipeline was created with a non-zero +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- value and with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR' +-- dynamic state enabled, then +-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR' +-- /must/ have set @pFragmentSize->width@ to @1@ prior to this drawing +-- command +-- +-- - #VUID-vkCmdDrawIndexedIndirect-None-09369# If the current render +-- pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- there is no shader object bound to any graphics stage, and the +-- currently bound graphics pipeline was created with a non-zero +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- value and with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR' +-- dynamic state enabled, then +-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR' +-- /must/ have set @pFragmentSize->height@ to @1@ prior to this drawing +-- command +-- +-- - #VUID-vkCmdDrawIndexedIndirect-pFragmentSize-09370# If there is a +-- shader object bound to any graphics stage, and the current render +-- pass includes a color attachment that uses the +-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID' +-- resolve mode, then +-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR' +-- /must/ have set @pFragmentSize->width@ to @1@ prior to this drawing +-- command +-- +-- - #VUID-vkCmdDrawIndexedIndirect-pFragmentSize-09371# If there is a +-- shader object bound to any graphics stage, and the current render +-- pass includes a color attachment that uses the +-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID' +-- resolve mode, then +-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR' +-- /must/ have set @pFragmentSize->height@ to @1@ prior to this drawing +-- command +-- -- - #VUID-vkCmdDrawIndexedIndirect-None-07749# If the bound graphics -- pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT' @@ -11979,7 +14383,9 @@ foreign import ccall -- - #VUID-vkCmdDrawIndexedIndirect-None-08646# If the -- -- feature is enabled on the device, and a shader object is bound to --- the fragment stage, and the most recent call to +-- the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage, and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' -- in the current command buffer set @rasterizerDiscardEnable@ to -- 'Vulkan.Core10.FundamentalTypes.FALSE', then @@ -11999,7 +14405,9 @@ foreign import ccall -- - #VUID-vkCmdDrawIndexedIndirect-None-08647# If the -- -- feature is enabled on the device, and a shader object is bound to --- the fragment stage, and the most recent call to +-- the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage, and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' -- in the current command buffer set @rasterizerDiscardEnable@ to -- 'Vulkan.Core10.FundamentalTypes.FALSE', then the @attachmentCount@ @@ -12025,6 +14433,16 @@ foreign import ccall -- /must/ have been called in the current command buffer prior to this -- drawing command -- +-- - #VUID-vkCmdDrawIndexedIndirect-rasterizerDiscardEnable-09236# If the +-- @VK_EXT_discard_rectangles@ extension is enabled, and a shader +-- object is bound to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then +-- 'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEXT' +-- /must/ have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdDrawIndexedIndirect-None-08648# If the -- @VK_EXT_discard_rectangles@ extension is enabled, and a shader -- object is bound to any graphics stage, and the most recent call to @@ -12056,10 +14474,24 @@ foreign import ccall -- /must/ have been called in the current command buffer prior to this -- drawing command -- --- - #VUID-vkCmdDrawIndexedIndirect-pDepthAttachment-06181# If the --- current render pass instance was begun with --- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' --- and +-- - #VUID-vkCmdDrawIndexedIndirect-dynamicRenderingUnusedAttachments-08913# +-- If the current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- the +-- +-- feature is not enabled, and +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@ +-- was 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@ +-- used to create the currently bound graphics pipeline /must/ be equal +-- to 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' +-- +-- - #VUID-vkCmdDrawIndexedIndirect-dynamicRenderingUnusedAttachments-08914# +-- If current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- the +-- +-- feature is not enabled, and -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@ -- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@ @@ -12067,20 +14499,39 @@ foreign import ccall -- to the 'Vulkan.Core10.Enums.Format.Format' used to create -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@ -- --- - #VUID-vkCmdDrawIndexedIndirect-pDepthAttachment-07617# If the --- current render pass instance was begun with --- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' --- and +-- - #VUID-vkCmdDrawIndexedIndirect-dynamicRenderingUnusedAttachments-08915# +-- If the current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- the +-- +-- feature is enabled, -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@ --- was 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of +-- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the value of -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@ +-- used to create the currently bound graphics pipeline was not equal +-- to the 'Vulkan.Core10.Enums.Format.Format' used to create +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@, +-- the value of the format /must/ be +-- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' +-- +-- - #VUID-vkCmdDrawIndexedIndirect-dynamicRenderingUnusedAttachments-08916# +-- If the current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- the +-- +-- feature is not enabled, and +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@ +-- was 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@ -- used to create the currently bound graphics pipeline /must/ be equal -- to 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' -- --- - #VUID-vkCmdDrawIndexedIndirect-pStencilAttachment-06182# If the --- current render pass instance was begun with --- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' --- and +-- - #VUID-vkCmdDrawIndexedIndirect-dynamicRenderingUnusedAttachments-08917# +-- If current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- the +-- +-- feature is not enabled, and -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@ -- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@ @@ -12088,15 +14539,20 @@ foreign import ccall -- to the 'Vulkan.Core10.Enums.Format.Format' used to create -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@ -- --- - #VUID-vkCmdDrawIndexedIndirect-pStencilAttachment-07618# If the --- current render pass instance was begun with --- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' --- and +-- - #VUID-vkCmdDrawIndexedIndirect-dynamicRenderingUnusedAttachments-08918# +-- If the current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- the +-- +-- feature is enabled, -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@ --- was 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of +-- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the value of -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@ --- used to create the currently bound graphics pipeline /must/ be equal --- to 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' +-- used to create the currently bound graphics pipeline was not equal +-- to the 'Vulkan.Core10.Enums.Format.Format' used to create +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@, +-- the value of the format /must/ be +-- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' -- -- - #VUID-vkCmdDrawIndexedIndirect-imageView-06183# If the current -- render pass instance was begun with @@ -12243,6 +14699,40 @@ foreign import ccall -- 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@renderPass@ -- equal to 'Vulkan.Core10.APIConstants.NULL_HANDLE' -- +-- - #VUID-vkCmdDrawIndexedIndirect-pColorAttachments-08963# If the +-- current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- there is a graphics pipeline bound with a fragment shader that +-- statically writes to a color attachment, the color write mask is not +-- zero, color writes are enabled, and the corresponding element of the +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments->imageView@ +-- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', then the +-- corresponding element of +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@ +-- used to create the pipeline /must/ not be +-- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' +-- +-- - #VUID-vkCmdDrawIndexedIndirect-pDepthAttachment-08964# If the +-- current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- there is a graphics pipeline bound, depth test is enabled, depth +-- write is enabled, and the +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@ +-- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', then the +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@ +-- used to create the pipeline /must/ not be +-- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' +-- +-- - #VUID-vkCmdDrawIndexedIndirect-pStencilAttachment-08965# If the +-- current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- there is a graphics pipeline bound, stencil test is enabled and the +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@ +-- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', then the +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@ +-- used to create the pipeline /must/ not be +-- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' +-- -- - #VUID-vkCmdDrawIndexedIndirect-primitivesGeneratedQueryWithRasterizerDiscard-06708# -- If the -- @@ -12269,6 +14759,22 @@ foreign import ccall -- /must/ have been called in the current command buffer prior to this -- drawing command -- +-- - #VUID-vkCmdDrawIndexedIndirect-None-07620# If the bound graphics +-- pipeline state was created with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT' +-- dynamic state enabled then +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClampEnableEXT' +-- /must/ have been called in the current command buffer prior to this +-- drawing command +-- +-- - #VUID-vkCmdDrawIndexedIndirect-None-09237# If a shader object is +-- bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT' +-- stage, then +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetTessellationDomainOriginEXT' +-- /must/ have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdDrawIndexedIndirect-None-08650# If the -- -- feature is enabled, and a shader object is bound to any graphics @@ -12339,6 +14845,17 @@ foreign import ccall -- /must/ have been called in the current command buffer prior to this -- drawing command -- +-- - #VUID-vkCmdDrawIndexedIndirect-alphaToCoverageEnable-08919# If the +-- bound graphics pipeline state was created with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT' +-- dynamic state enabled, and @alphaToCoverageEnable@ was +-- 'Vulkan.Core10.FundamentalTypes.TRUE' in the last call to +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT', +-- then the +-- +-- /must/ contain a variable for the alpha @Component@ word in +-- @Location@ 0 at @Index@ 0 +-- -- - #VUID-vkCmdDrawIndexedIndirect-None-08654# If a shader object is -- bound to any graphics stage, and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' @@ -12348,6 +14865,16 @@ foreign import ccall -- /must/ have been called in the current command buffer prior to this -- drawing command -- +-- - #VUID-vkCmdDrawIndexedIndirect-alphaToCoverageEnable-08920# If a +-- shader object is bound to any graphics stage, and the most recent +-- call to +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT' +-- in the current command buffer set @alphaToCoverageEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.TRUE', then the +-- +-- /must/ contain a variable for the alpha @Component@ word in +-- @Location@ 0 at @Index@ 0 +-- -- - #VUID-vkCmdDrawIndexedIndirect-None-07625# If the bound graphics -- pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT' @@ -12377,7 +14904,8 @@ foreign import ccall -- -- - #VUID-vkCmdDrawIndexedIndirect-None-08656# If the -- --- feature is enabled, and a shader object is bound to any graphics +-- feature is enabled, and a shader object is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' -- stage, and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' -- in the current command buffer set @rasterizerDiscardEnable@ to @@ -12395,7 +14923,9 @@ foreign import ccall -- drawing command -- -- - #VUID-vkCmdDrawIndexedIndirect-None-08657# If a shader object is --- bound to any graphics stage, and the most recent call to +-- bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage, and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' -- in the current command buffer set @rasterizerDiscardEnable@ to -- 'Vulkan.Core10.FundamentalTypes.FALSE', then @@ -12432,7 +14962,9 @@ foreign import ccall -- drawing command -- -- - #VUID-vkCmdDrawIndexedIndirect-None-08659# If a shader object is --- bound to any graphics stage, and the most recent call to +-- bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage, and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' -- in the current command buffer set @rasterizerDiscardEnable@ to -- 'Vulkan.Core10.FundamentalTypes.FALSE', then @@ -12450,7 +14982,8 @@ foreign import ccall -- -- - #VUID-vkCmdDrawIndexedIndirect-None-08660# If the -- --- feature is enabled, and a shader object is bound to the geometry +-- feature is enabled, and a shader object is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT' -- stage, then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationStreamEXT' -- /must/ have been called in the current command buffer prior to this @@ -12550,7 +15083,9 @@ foreign import ccall -- -- - #VUID-vkCmdDrawIndexedIndirect-None-08665# If the -- @VK_EXT_provoking_vertex@ extension is enabled, and a shader object --- is bound to the vertex stage, then +-- is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT' +-- stage, then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetProvokingVertexModeEXT' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -12659,7 +15194,7 @@ foreign import ccall -- stage, then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClipNegativeOneToOneEXT' -- /must/ have been called in the current command buffer prior to this --- drawing command ifdef::VK_EXT_extended_dynamic_state3 +-- drawing command -- -- - #VUID-vkCmdDrawIndexedIndirect-None-07640# If the bound graphics -- pipeline state was created with the @@ -12667,7 +15202,7 @@ foreign import ccall -- dynamic state enabled then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetViewportWScalingEnableNV' -- /must/ have been called in the current command buffer prior to this --- drawing command endif::VK_EXT_extended_dynamic_state3 +-- drawing command -- -- - #VUID-vkCmdDrawIndexedIndirect-None-08674# If the -- @VK_NV_clip_space_w_scaling@ extension is enabled, and a shader @@ -12701,7 +15236,12 @@ foreign import ccall -- -- - #VUID-vkCmdDrawIndexedIndirect-None-08676# If the -- @VK_NV_fragment_coverage_to_color@ extension is enabled, and a --- shader object is bound to any graphics stage, then +-- shader object is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -12716,8 +15256,9 @@ foreign import ccall -- -- - #VUID-vkCmdDrawIndexedIndirect-None-08677# If the -- @VK_NV_fragment_coverage_to_color@ extension is enabled, and a --- shader object is bound to any graphics stage, and the most recent --- call to +-- shader object is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage, and the most recent call to -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV' -- in the current command buffer set @coverageToColorEnable@ to -- 'Vulkan.Core10.FundamentalTypes.TRUE', then @@ -12735,7 +15276,10 @@ foreign import ccall -- -- - #VUID-vkCmdDrawIndexedIndirect-None-08678# If the -- @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader --- object is bound to any graphics stage, then +-- object is bound to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationModeNV' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -12750,7 +15294,15 @@ foreign import ccall -- -- - #VUID-vkCmdDrawIndexedIndirect-None-08679# If the -- @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader --- object is bound to any graphics stage, then +-- object is bound to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationModeNV' +-- in the current command buffer set coverageModulationMode to any +-- value other than +-- 'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.COVERAGE_MODULATION_MODE_NONE_NV', +-- then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -12766,6 +15318,9 @@ foreign import ccall -- - #VUID-vkCmdDrawIndexedIndirect-None-08680# If the -- @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader -- object is bound to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV' -- in the current command buffer set @coverageModulationTableEnable@ to -- 'Vulkan.Core10.FundamentalTypes.TRUE', then @@ -12781,10 +15336,26 @@ foreign import ccall -- /must/ have been called in the current command buffer prior to this -- drawing command -- +-- - #VUID-vkCmdDrawIndexedIndirect-pipelineFragmentShadingRate-09238# If +-- the +-- +-- feature is enabled, and a shader object is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set rasterizerDiscardEnable to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then +-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR' +-- must have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdDrawIndexedIndirect-None-08681# If the -- -- feature is enabled, and a shader object is bound to any graphics --- stage, then +-- stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetShadingRateImageEnableNV' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -12794,13 +15365,16 @@ foreign import ccall -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV' -- dynamic state enabled then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRepresentativeFragmentTestEnableNV' --- must have been called in the current command buffer prior to this +-- /must/ have been called in the current command buffer prior to this -- drawing command -- -- - #VUID-vkCmdDrawIndexedIndirect-None-08682# If the -- -- feature is enabled, and a shader object is bound to any graphics --- stage, then +-- stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRepresentativeFragmentTestEnableNV' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -12816,7 +15390,10 @@ foreign import ccall -- - #VUID-vkCmdDrawIndexedIndirect-None-08683# If the -- -- feature is enabled, and a shader object is bound to any graphics --- stage, then +-- stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageReductionModeNV' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -12865,18 +15442,29 @@ foreign import ccall -- in the last call to -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT' -- --- - #VUID-vkCmdDrawIndexedIndirect-multisampledRenderToSingleSampled-07475# --- If the bound graphics pipeline state was created with the +-- - #VUID-vkCmdDrawIndexedIndirect-rasterizationSamples-07474# If the +-- bound graphics pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT' --- state enabled, and none of the @VK_AMD_mixed_attachment_samples@ --- extension, @VK_NV_framebuffer_mixed_samples@ extension, or the --- --- feature is enabled, then the @rasterizationSamples@ in the last call --- to +-- state enabled, and neither the @VK_AMD_mixed_attachment_samples@ nor +-- the @VK_NV_framebuffer_mixed_samples@ extensions are enabled, then +-- the @rasterizationSamples@ in the last call to -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT' -- /must/ be the same as the current subpass color and\/or -- depth\/stencil attachments -- +-- - #VUID-vkCmdDrawIndexedIndirect-None-09211# If the bound graphics +-- pipeline state was created with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT' +-- state enabled, or a shader object is bound to any graphics stage, +-- and the current render pass instance includes a +-- 'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT' +-- structure with @multisampledRenderToSingleSampledEnable@ equal to +-- 'Vulkan.Core10.FundamentalTypes.TRUE', then the +-- @rasterizationSamples@ in the last call to +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT' +-- /must/ be the same as the @rasterizationSamples@ member of that +-- structure +-- -- - #VUID-vkCmdDrawIndexedIndirect-firstAttachment-07476# If the bound -- graphics pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT' @@ -12935,7 +15523,7 @@ foreign import ccall -- and -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendAdvancedEXT' -- have enabled advanced blending, then the number of active color --- attachments in the current subpass must not exceed +-- attachments in the current subpass /must/ not exceed -- -- -- - #VUID-vkCmdDrawIndexedIndirect-primitivesGeneratedQueryWithNonZeroStreams-07481# @@ -13097,7 +15685,7 @@ foreign import ccall -- @VK_NV_framebuffer_mixed_samples@ extension is enabled, and if -- current subpass has a depth\/stencil attachment and depth test, -- stencil test, or depth bounds test are enabled in the currently --- bound pipeline state, then the current @rasterizationSamples@ must +-- bound pipeline state, then the current @rasterizationSamples@ /must/ -- be the same as the sample count of the depth\/stencil attachment -- -- - #VUID-vkCmdDrawIndexedIndirect-coverageToColorEnable-07490# If the @@ -13128,7 +15716,7 @@ foreign import ccall -- states enabled, the current coverage reduction mode -- @coverageReductionMode@, then the current @rasterizationSamples@, -- and the sample counts for the color and depth\/stencil attachments --- (if the subpass has them) must be a valid combination returned by +-- (if the subpass has them) /must/ be a valid combination returned by -- 'Vulkan.Extensions.VK_NV_coverage_reduction_mode.getPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV' -- -- - #VUID-vkCmdDrawIndexedIndirect-viewportCount-07492# If the bound @@ -13216,7 +15804,7 @@ foreign import ccall -- -- feature /must/ be enabled and -- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@strictLines@ --- must be VK_TRUE +-- /must/ be 'Vulkan.Core10.FundamentalTypes.TRUE' -- -- - #VUID-vkCmdDrawIndexedIndirect-conservativePointAndLineRasterization-07499# -- If the bound graphics pipeline state was created with the @@ -13243,7 +15831,15 @@ foreign import ccall -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT', -- then -- --- must not be active +-- /must/ not be active +-- +-- - #VUID-vkCmdDrawIndexedIndirect-None-08877# If the bound graphics +-- pipeline state was created with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT' +-- dynamic state +-- 'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT' +-- /must/ have been called in the current command buffer prior to this +-- drawing command -- -- - #VUID-vkCmdDrawIndexedIndirect-None-07850# If dynamic state was -- inherited from @@ -13254,7 +15850,7 @@ foreign import ccall -- - #VUID-vkCmdDrawIndexedIndirect-None-08684# If there is no bound -- graphics pipeline, -- 'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/ --- have been called on the current command buffer with @pStages@ with +-- have been called in the current command buffer with @pStages@ with -- an element of -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT' -- @@ -13263,7 +15859,7 @@ foreign import ccall -- -- feature is enabled, -- 'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/ --- have been called on the current command buffer with @pStages@ with +-- have been called in the current command buffer with @pStages@ with -- an element of -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT' -- @@ -13272,7 +15868,7 @@ foreign import ccall -- -- feature is enabled, -- 'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/ --- have been called on the current command buffer with @pStages@ with +-- have been called in the current command buffer with @pStages@ with -- an element of -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT' -- @@ -13281,14 +15877,14 @@ foreign import ccall -- -- feature is enabled, -- 'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/ --- have been called on the current command buffer with @pStages@ with +-- have been called in the current command buffer with @pStages@ with -- an element of -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT' -- -- - #VUID-vkCmdDrawIndexedIndirect-None-08688# If there is no bound -- graphics pipeline, -- 'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/ --- have been called on the current command buffer with @pStages@ with +-- have been called in the current command buffer with @pStages@ with -- an element of -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' -- @@ -13297,7 +15893,7 @@ foreign import ccall -- -- feature is enabled, -- 'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/ --- have been called on the current command buffer with @pStages@ with +-- have been called in the current command buffer with @pStages@ with -- an element of -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT' -- @@ -13306,7 +15902,7 @@ foreign import ccall -- -- feature is enabled, -- 'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/ --- have been called on the current command buffer with @pStages@ with +-- have been called in the current command buffer with @pStages@ with -- an element of -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT' -- @@ -13318,8 +15914,8 @@ foreign import ccall -- features is enabled, one of the -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT' or -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT' --- stages must have a valid 'Vulkan.Extensions.Handles.ShaderEXT' --- bound, and the other must have no +-- stages /must/ have a valid 'Vulkan.Extensions.Handles.ShaderEXT' +-- bound, and the other /must/ have no -- 'Vulkan.Extensions.Handles.ShaderEXT' bound -- -- - #VUID-vkCmdDrawIndexedIndirect-None-08694# If there is no bound @@ -13384,6 +15980,37 @@ foreign import ccall -- 'Vulkan.Extensions.VK_EXT_shader_object.createShadersEXT' call -- /must/ not have any 'Vulkan.Extensions.Handles.ShaderEXT' bound -- +-- - #VUID-vkCmdDrawIndexedIndirect-None-08878# All bound graphics shader +-- objects /must/ have been created with identical or identically +-- defined push constant ranges +-- +-- - #VUID-vkCmdDrawIndexedIndirect-None-08879# All bound graphics shader +-- objects /must/ have been created with identical or identically +-- defined arrays of descriptor set layouts +-- +-- - #VUID-vkCmdDrawIndexedIndirect-colorAttachmentCount-09372# If the +-- current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' +-- and a +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ +-- equal to @1@, a color attachment with a resolve mode of +-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID', +-- and a fragment shader is bound, it /must/ not declare the +-- @DepthReplacing@ or @StencilRefReplacingEXT@ execution modes +-- +-- - #VUID-vkCmdDrawIndexedIndirect-None-08880# If a shader object is +-- bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage and the +-- +-- feature is enabled on the device, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE' +-- 'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT' +-- /must/ have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdDrawIndexedIndirect-pDynamicStates-08715# If the bound -- graphics pipeline state includes a fragment shader stage, was -- created with @@ -13406,6 +16033,33 @@ foreign import ccall -- mode and uses @OpStencilAttachmentReadEXT@, the @writeMask@ -- parameter in the last call to 'cmdSetStencilWriteMask' /must/ be @0@ -- +-- - #VUID-vkCmdDrawIndexedIndirect-None-09116# If a shader object is +-- bound to any graphics stage or the currently bound graphics pipeline +-- was created with +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_MASK_EXT', +-- and the format of any color attachment is +-- 'Vulkan.Core10.Enums.Format.FORMAT_E5B9G9R9_UFLOAT_PACK32', the +-- corresponding element of the @pColorWriteMasks@ parameter of +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorWriteMaskEXT' +-- /must/ either include all of +-- 'Vulkan.Core10.Enums.ColorComponentFlagBits.COLOR_COMPONENT_R_BIT', +-- 'Vulkan.Core10.Enums.ColorComponentFlagBits.COLOR_COMPONENT_G_BIT', +-- and +-- 'Vulkan.Core10.Enums.ColorComponentFlagBits.COLOR_COMPONENT_B_BIT', +-- or none of them +-- +-- - #VUID-vkCmdDrawIndexedIndirect-maxFragmentDualSrcAttachments-09239# +-- If +-- +-- is enabled for any attachment where either the source or destination +-- blend factors for that attachment +-- , +-- the maximum value of @Location@ for any output attachment +-- +-- in the @Fragment@ @Execution@ @Model@ executed by this command +-- /must/ be less than +-- +-- -- - #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 @@ -13466,6 +16120,14 @@ foreign import ccall -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT' -- /must/ not be @NULL@ -- +-- - #VUID-vkCmdDrawIndexedIndirect-None-08881# If a shader object is +-- bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT' +-- stage, then +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology' +-- /must/ have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdDrawIndexedIndirect-None-04914# If the bound graphics -- pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT' @@ -13482,6 +16144,53 @@ foreign import ccall -- @OpEntryPoint@ /must/ contain a location in -- 'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@location@ -- +-- - #VUID-vkCmdDrawIndexedIndirect-Input-08734# If the bound graphics +-- pipeline state was created with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT' +-- dynamic state enabled, then the numeric type associated with all +-- @Input@ variables of the corresponding @Location@ in the @Vertex@ +-- @Execution@ @Model@ @OpEntryPoint@ /must/ be the same as +-- 'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@format@ +-- +-- - #VUID-vkCmdDrawIndexedIndirect-format-08936# If there is a shader +-- object bound to a graphics stage or the currently bound graphics +-- pipeline was created with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT' +-- dynamic state enabled, and +-- 'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@format@ +-- has a 64-bit component, then the scalar width associated with all +-- @Input@ variables of the corresponding @Location@ in the @Vertex@ +-- @Execution@ @Model@ @OpEntryPoint@ /must/ be 64-bit +-- +-- - #VUID-vkCmdDrawIndexedIndirect-format-08937# If there is a shader +-- object bound to a graphics stage or the currently bound graphics +-- pipeline was created with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT' +-- dynamic state enabled, and the scalar width associated with a +-- @Location@ decorated @Input@ variable in the @Vertex@ @Execution@ +-- @Model@ @OpEntryPoint@ is 64-bit, then the corresponding +-- 'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@format@ +-- /must/ have a 64-bit component +-- +-- - #VUID-vkCmdDrawIndexedIndirect-None-09203# If there is a shader +-- object bound to a graphics stage or the currently bound graphics +-- pipeline was created with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT' +-- dynamic state enabled, and +-- 'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@format@ +-- has a 64-bit component, then all @Input@ variables at the +-- corresponding @Location@ in the @Vertex@ @Execution@ @Model@ +-- @OpEntryPoint@ /must/ not use components that are not present in the +-- format +-- +-- - #VUID-vkCmdDrawIndexedIndirect-None-08882# If a shader object is +-- bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT' +-- stage, then +-- 'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT' +-- /must/ have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdDrawIndexedIndirect-None-04875# If the bound graphics -- pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT' @@ -13490,6 +16199,14 @@ foreign import ccall -- /must/ have been called in the current command buffer prior to this -- drawing command -- +-- - #VUID-vkCmdDrawIndexedIndirect-None-08883# If a shader object is +-- bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT' +-- stage, then +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetPatchControlPointsEXT' +-- /must/ have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdDrawIndexedIndirect-None-04879# If the bound graphics -- pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE' @@ -13498,6 +16215,16 @@ foreign import ccall -- /must/ have been called in the current command buffer prior to this -- drawing command -- +-- - #VUID-vkCmdDrawIndexedIndirect-rasterizerDiscardEnable-08884# If a +-- shader object is bound to any graphics stage, and the most recent +-- call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetPrimitiveRestartEnable' +-- /must/ have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdDrawIndexedIndirect-stage-06481# The bound graphics -- pipeline /must/ not have been created with the -- 'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo'::@stage@ @@ -13508,6 +16235,13 @@ foreign import ccall -- or -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT' -- +-- - #VUID-vkCmdDrawIndexedIndirect-None-08885# There /must/ be no shader +-- object bound to either of the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT' +-- or +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT' +-- stages +-- -- - #VUID-vkCmdDrawIndexedIndirect-buffer-02708# If @buffer@ is -- non-sparse then it /must/ be bound completely and contiguously to a -- single 'Vulkan.Core10.Handles.DeviceMemory' object @@ -13707,6 +16441,16 @@ foreign import ccall -- /must/ contain -- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT' -- +-- - #VUID-vkCmdDispatch-None-02693# If the +-- +-- extension is not enabled and any 'Vulkan.Core10.Handles.ImageView' +-- is sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a +-- result of this command, it /must/ not have a +-- 'Vulkan.Core10.Enums.ImageViewType.ImageViewType' of +-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_3D', +-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE', or +-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE_ARRAY' +-- -- - #VUID-vkCmdDispatch-filterCubic-02694# Any -- 'Vulkan.Core10.Handles.ImageView' being sampled with -- 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a result of this @@ -13732,6 +16476,33 @@ foreign import ccall -- returned by -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceImageFormatProperties2' -- +-- - #VUID-vkCmdDispatch-cubicRangeClamp-09212# If the +-- +-- feature is not enabled, then any 'Vulkan.Core10.Handles.ImageView' +-- being sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as +-- a result of this command +-- +-- [/must/ not have a 'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo'] +-- @reductionMode@ equal to +-- 'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM' +-- +-- - #VUID-vkCmdDispatch-reductionMode-09213# Any +-- 'Vulkan.Core10.Handles.ImageView' being sampled with a +-- 'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo'::@reductionMode@ +-- equal to +-- 'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM' +-- as a result of this command /must/ sample with +-- 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' +-- +-- - #VUID-vkCmdDispatch-selectableCubicWeights-09214# If the +-- +-- feature is not enabled, then any 'Vulkan.Core10.Handles.ImageView' +-- being sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as +-- a result of this command /must/ have +-- 'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.SamplerCubicWeightsCreateInfoQCOM'::@cubicWeights@ +-- equal to +-- 'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM' +-- -- - #VUID-vkCmdDispatch-flags-02696# Any 'Vulkan.Core10.Handles.Image' -- created with a 'Vulkan.Core10.Image.ImageCreateInfo'::@flags@ -- containing @@ -13773,11 +16544,9 @@ foreign import ccall -- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT' -- -- - #VUID-vkCmdDispatch-None-08600# For each set /n/ that is statically --- used by the 'Vulkan.Core10.Handles.Pipeline' bound to the pipeline --- bind point used by this command, or by any of the --- 'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages --- corresponding to the pipeline bind point used by this command, a --- descriptor set /must/ have been bound to /n/ at the same pipeline +-- used by +-- , +-- a descriptor set /must/ have been bound to /n/ at the same pipeline -- bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is -- compatible for set /n/, with the -- 'Vulkan.Core10.Handles.PipelineLayout' or @@ -13787,12 +16556,10 @@ foreign import ccall -- -- -- - #VUID-vkCmdDispatch-None-08601# For each push constant that is --- statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to the --- pipeline bind point used by this command, or by any of the --- 'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages --- corresponding to the pipeline bind point used by this command, a --- push constant value /must/ have been set for the same pipeline bind --- point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is +-- statically used by +-- , +-- a push constant value /must/ have been set for the same pipeline +-- bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is -- compatible for push constants, with the -- 'Vulkan.Core10.Handles.PipelineLayout' or -- 'Vulkan.Core10.Handles.DescriptorSetLayout' and @@ -13804,12 +16571,10 @@ foreign import ccall -- - #VUID-vkCmdDispatch-maintenance4-08602# If the -- -- feature is not enabled, then for each push constant that is --- statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to the --- pipeline bind point used by this command, or by any of the --- 'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages --- corresponding to the pipeline bind point used by this command, a --- push constant value /must/ have been set for the same pipeline bind --- point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is +-- statically used by +-- , +-- a push constant value /must/ have been set for the same pipeline +-- bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is -- compatible for push constants, with the -- 'Vulkan.Core10.Handles.PipelineLayout' or -- 'Vulkan.Core10.Handles.DescriptorSetLayout' and @@ -13966,34 +16731,25 @@ foreign import ccall -- buffer as specified in the descriptor set bound to the same pipeline -- bind point -- --- - #VUID-vkCmdDispatch-commandBuffer-08614# If @commandBuffer@ is an +-- - #VUID-vkCmdDispatch-commandBuffer-02707# If @commandBuffer@ is an -- unprotected command buffer and -- --- is not supported, any resource accessed by the --- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind --- point used by this command or any --- 'Vulkan.Extensions.Handles.ShaderEXT' object bound to a stage --- corresponding to the pipeline bind point used by this command /must/ --- not be a protected resource --- --- - #VUID-vkCmdDispatch-None-08615# If the --- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind --- point used by this command or any --- 'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding --- to the pipeline bind point used by this command accesses a --- 'Vulkan.Core10.Handles.Sampler' or 'Vulkan.Core10.Handles.ImageView' --- object that enables +-- is not supported, any resource accessed by +-- +-- /must/ not be a protected resource +-- +-- - #VUID-vkCmdDispatch-None-06550# If +-- +-- accesses a 'Vulkan.Core10.Handles.Sampler' or +-- 'Vulkan.Core10.Handles.ImageView' object that enables -- , -- that object /must/ only be used with @OpImageSample*@ or -- @OpImageSparseSample*@ instructions -- --- - #VUID-vkCmdDispatch-ConstOffset-08616# If the --- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind --- point used by this command or any --- 'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding --- to the pipeline bind point used by this command accesses a --- 'Vulkan.Core10.Handles.Sampler' or 'Vulkan.Core10.Handles.ImageView' --- object that enables +-- - #VUID-vkCmdDispatch-ConstOffset-06551# If +-- +-- accesses a 'Vulkan.Core10.Handles.Sampler' or +-- 'Vulkan.Core10.Handles.ImageView' object that enables -- , -- that object /must/ not use the @ConstOffset@ and @Offset@ operands -- @@ -14005,17 +16761,23 @@ foreign import ccall -- -- - #VUID-vkCmdDispatch-format-07753# If a -- 'Vulkan.Core10.Handles.ImageView' is accessed as a result of this --- command, then the image view’s @format@ /must/ match the numeric --- format from the @Sampled@ @Type@ operand of the @OpTypeImage@ as --- described in the SPIR-V Sampled Type column of the --- --- table --- --- - #VUID-vkCmdDispatch-None-04115# If a --- 'Vulkan.Core10.Handles.ImageView' is accessed using @OpImageWrite@ --- as a result of this command, then the @Type@ of the @Texel@ operand --- of that instruction /must/ have at least as many components as the --- image view’s format +-- command, then the +-- +-- of the image view’s @format@ and the @Sampled@ @Type@ operand of the +-- @OpTypeImage@ /must/ match +-- +-- - #VUID-vkCmdDispatch-OpImageWrite-08795# If a +-- 'Vulkan.Core10.Handles.ImageView' created with a format other than +-- 'Vulkan.Core10.Enums.Format.FORMAT_A8_UNORM_KHR' is accessed using +-- @OpImageWrite@ as a result of this command, then the @Type@ of the +-- @Texel@ operand of that instruction /must/ have at least as many +-- components as the image view’s format +-- +-- - #VUID-vkCmdDispatch-OpImageWrite-08796# If a +-- 'Vulkan.Core10.Handles.ImageView' created with the format +-- 'Vulkan.Core10.Enums.Format.FORMAT_A8_UNORM_KHR' is accessed using +-- @OpImageWrite@ as a result of this command, then the @Type@ of the +-- @Texel@ operand of that instruction /must/ have four components -- -- - #VUID-vkCmdDispatch-OpImageWrite-04469# If a -- 'Vulkan.Core10.Handles.BufferView' is accessed using @OpImageWrite@ @@ -14117,6 +16879,8 @@ foreign import ccall -- -- - #VUID-vkCmdDispatch-OpImageWeightedSampleQCOM-06977# If -- @OpImageWeightedSampleQCOM@, @OpImageBoxFilterQCOM@, +-- @OpImageBlockMatchWindowSSDQCOM@, @OpImageBlockMatchWindowSADQCOM@, +-- @OpImageBlockMatchGatherSSDQCOM@, @OpImageBlockMatchGatherSADQCOM@, -- @OpImageBlockMatchSSDQCOM@, or @OpImageBlockMatchSADQCOM@ uses a -- 'Vulkan.Core10.Handles.Sampler' as a result of this command, then -- the sampler /must/ have been created with @@ -14124,11 +16888,34 @@ foreign import ccall -- -- - #VUID-vkCmdDispatch-OpImageWeightedSampleQCOM-06978# If any command -- other than @OpImageWeightedSampleQCOM@, @OpImageBoxFilterQCOM@, +-- @OpImageBlockMatchWindowSSDQCOM@, @OpImageBlockMatchWindowSADQCOM@, +-- @OpImageBlockMatchGatherSSDQCOM@, @OpImageBlockMatchGatherSADQCOM@, -- @OpImageBlockMatchSSDQCOM@, or @OpImageBlockMatchSADQCOM@ uses a -- 'Vulkan.Core10.Handles.Sampler' as a result of this command, then -- the sampler /must/ not have been created with -- 'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM' -- +-- - #VUID-vkCmdDispatch-OpImageBlockMatchWindow-09215# If a +-- @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@ +-- instruction is used to read from an +-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then +-- the image view’s +-- +-- /must/ contain +-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM' +-- +-- - #VUID-vkCmdDispatch-OpImageBlockMatchWindow-09216# If a +-- @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@ +-- instruction is used to read from an +-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then +-- the image view’s format /must/ be a single-component format. +-- +-- - #VUID-vkCmdDispatch-OpImageBlockMatchWindow-09217# If a +-- @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@ +-- read from a reference image as result of this command, then the +-- specified reference coordinates /must/ not fail +-- +-- -- - #VUID-vkCmdDispatch-None-07288# Any shader invocation executed by -- this command /must/ -- @@ -14307,6 +17094,16 @@ foreign import ccall -- /must/ contain -- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT' -- +-- - #VUID-vkCmdDispatchIndirect-None-02693# If the +-- +-- extension is not enabled and any 'Vulkan.Core10.Handles.ImageView' +-- is sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a +-- result of this command, it /must/ not have a +-- 'Vulkan.Core10.Enums.ImageViewType.ImageViewType' of +-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_3D', +-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE', or +-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE_ARRAY' +-- -- - #VUID-vkCmdDispatchIndirect-filterCubic-02694# Any -- 'Vulkan.Core10.Handles.ImageView' being sampled with -- 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a result of this @@ -14332,6 +17129,33 @@ foreign import ccall -- returned by -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceImageFormatProperties2' -- +-- - #VUID-vkCmdDispatchIndirect-cubicRangeClamp-09212# If the +-- +-- feature is not enabled, then any 'Vulkan.Core10.Handles.ImageView' +-- being sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as +-- a result of this command +-- +-- [/must/ not have a 'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo'] +-- @reductionMode@ equal to +-- 'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM' +-- +-- - #VUID-vkCmdDispatchIndirect-reductionMode-09213# Any +-- 'Vulkan.Core10.Handles.ImageView' being sampled with a +-- 'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo'::@reductionMode@ +-- equal to +-- 'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM' +-- as a result of this command /must/ sample with +-- 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' +-- +-- - #VUID-vkCmdDispatchIndirect-selectableCubicWeights-09214# If the +-- +-- feature is not enabled, then any 'Vulkan.Core10.Handles.ImageView' +-- being sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as +-- a result of this command /must/ have +-- 'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.SamplerCubicWeightsCreateInfoQCOM'::@cubicWeights@ +-- equal to +-- 'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM' +-- -- - #VUID-vkCmdDispatchIndirect-flags-02696# Any -- 'Vulkan.Core10.Handles.Image' created with a -- 'Vulkan.Core10.Image.ImageCreateInfo'::@flags@ containing @@ -14373,11 +17197,9 @@ foreign import ccall -- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT' -- -- - #VUID-vkCmdDispatchIndirect-None-08600# For each set /n/ that is --- statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to the --- pipeline bind point used by this command, or by any of the --- 'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages --- corresponding to the pipeline bind point used by this command, a --- descriptor set /must/ have been bound to /n/ at the same pipeline +-- statically used by +-- , +-- a descriptor set /must/ have been bound to /n/ at the same pipeline -- bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is -- compatible for set /n/, with the -- 'Vulkan.Core10.Handles.PipelineLayout' or @@ -14387,12 +17209,10 @@ foreign import ccall -- -- -- - #VUID-vkCmdDispatchIndirect-None-08601# For each push constant that --- is statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to --- the pipeline bind point used by this command, or by any of the --- 'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages --- corresponding to the pipeline bind point used by this command, a --- push constant value /must/ have been set for the same pipeline bind --- point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is +-- is statically used by +-- , +-- a push constant value /must/ have been set for the same pipeline +-- bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is -- compatible for push constants, with the -- 'Vulkan.Core10.Handles.PipelineLayout' or -- 'Vulkan.Core10.Handles.DescriptorSetLayout' and @@ -14404,12 +17224,10 @@ foreign import ccall -- - #VUID-vkCmdDispatchIndirect-maintenance4-08602# If the -- -- feature is not enabled, then for each push constant that is --- statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to the --- pipeline bind point used by this command, or by any of the --- 'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages --- corresponding to the pipeline bind point used by this command, a --- push constant value /must/ have been set for the same pipeline bind --- point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is +-- statically used by +-- , +-- a push constant value /must/ have been set for the same pipeline +-- bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is -- compatible for push constants, with the -- 'Vulkan.Core10.Handles.PipelineLayout' or -- 'Vulkan.Core10.Handles.DescriptorSetLayout' and @@ -14569,34 +17387,25 @@ foreign import ccall -- buffer as specified in the descriptor set bound to the same pipeline -- bind point -- --- - #VUID-vkCmdDispatchIndirect-commandBuffer-08614# If @commandBuffer@ +-- - #VUID-vkCmdDispatchIndirect-commandBuffer-02707# If @commandBuffer@ -- is an unprotected command buffer and -- --- is not supported, any resource accessed by the --- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind --- point used by this command or any --- 'Vulkan.Extensions.Handles.ShaderEXT' object bound to a stage --- corresponding to the pipeline bind point used by this command /must/ --- not be a protected resource --- --- - #VUID-vkCmdDispatchIndirect-None-08615# If the --- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind --- point used by this command or any --- 'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding --- to the pipeline bind point used by this command accesses a --- 'Vulkan.Core10.Handles.Sampler' or 'Vulkan.Core10.Handles.ImageView' --- object that enables +-- is not supported, any resource accessed by +-- +-- /must/ not be a protected resource +-- +-- - #VUID-vkCmdDispatchIndirect-None-06550# If +-- +-- accesses a 'Vulkan.Core10.Handles.Sampler' or +-- 'Vulkan.Core10.Handles.ImageView' object that enables -- , -- that object /must/ only be used with @OpImageSample*@ or -- @OpImageSparseSample*@ instructions -- --- - #VUID-vkCmdDispatchIndirect-ConstOffset-08616# If the --- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind --- point used by this command or any --- 'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding --- to the pipeline bind point used by this command accesses a --- 'Vulkan.Core10.Handles.Sampler' or 'Vulkan.Core10.Handles.ImageView' --- object that enables +-- - #VUID-vkCmdDispatchIndirect-ConstOffset-06551# If +-- +-- accesses a 'Vulkan.Core10.Handles.Sampler' or +-- 'Vulkan.Core10.Handles.ImageView' object that enables -- , -- that object /must/ not use the @ConstOffset@ and @Offset@ operands -- @@ -14608,17 +17417,23 @@ foreign import ccall -- -- - #VUID-vkCmdDispatchIndirect-format-07753# If a -- 'Vulkan.Core10.Handles.ImageView' is accessed as a result of this --- command, then the image view’s @format@ /must/ match the numeric --- format from the @Sampled@ @Type@ operand of the @OpTypeImage@ as --- described in the SPIR-V Sampled Type column of the --- --- table --- --- - #VUID-vkCmdDispatchIndirect-None-04115# If a --- 'Vulkan.Core10.Handles.ImageView' is accessed using @OpImageWrite@ --- as a result of this command, then the @Type@ of the @Texel@ operand --- of that instruction /must/ have at least as many components as the --- image view’s format +-- command, then the +-- +-- of the image view’s @format@ and the @Sampled@ @Type@ operand of the +-- @OpTypeImage@ /must/ match +-- +-- - #VUID-vkCmdDispatchIndirect-OpImageWrite-08795# If a +-- 'Vulkan.Core10.Handles.ImageView' created with a format other than +-- 'Vulkan.Core10.Enums.Format.FORMAT_A8_UNORM_KHR' is accessed using +-- @OpImageWrite@ as a result of this command, then the @Type@ of the +-- @Texel@ operand of that instruction /must/ have at least as many +-- components as the image view’s format +-- +-- - #VUID-vkCmdDispatchIndirect-OpImageWrite-08796# If a +-- 'Vulkan.Core10.Handles.ImageView' created with the format +-- 'Vulkan.Core10.Enums.Format.FORMAT_A8_UNORM_KHR' is accessed using +-- @OpImageWrite@ as a result of this command, then the @Type@ of the +-- @Texel@ operand of that instruction /must/ have four components -- -- - #VUID-vkCmdDispatchIndirect-OpImageWrite-04469# If a -- 'Vulkan.Core10.Handles.BufferView' is accessed using @OpImageWrite@ @@ -14720,6 +17535,8 @@ foreign import ccall -- -- - #VUID-vkCmdDispatchIndirect-OpImageWeightedSampleQCOM-06977# If -- @OpImageWeightedSampleQCOM@, @OpImageBoxFilterQCOM@, +-- @OpImageBlockMatchWindowSSDQCOM@, @OpImageBlockMatchWindowSADQCOM@, +-- @OpImageBlockMatchGatherSSDQCOM@, @OpImageBlockMatchGatherSADQCOM@, -- @OpImageBlockMatchSSDQCOM@, or @OpImageBlockMatchSADQCOM@ uses a -- 'Vulkan.Core10.Handles.Sampler' as a result of this command, then -- the sampler /must/ have been created with @@ -14727,12 +17544,35 @@ foreign import ccall -- -- - #VUID-vkCmdDispatchIndirect-OpImageWeightedSampleQCOM-06978# If any -- command other than @OpImageWeightedSampleQCOM@, --- @OpImageBoxFilterQCOM@, @OpImageBlockMatchSSDQCOM@, or +-- @OpImageBoxFilterQCOM@, @OpImageBlockMatchWindowSSDQCOM@, +-- @OpImageBlockMatchWindowSADQCOM@, @OpImageBlockMatchGatherSSDQCOM@, +-- @OpImageBlockMatchGatherSADQCOM@, @OpImageBlockMatchSSDQCOM@, or -- @OpImageBlockMatchSADQCOM@ uses a 'Vulkan.Core10.Handles.Sampler' as -- a result of this command, then the sampler /must/ not have been -- created with -- 'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM' -- +-- - #VUID-vkCmdDispatchIndirect-OpImageBlockMatchWindow-09215# If a +-- @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@ +-- instruction is used to read from an +-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then +-- the image view’s +-- +-- /must/ contain +-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM' +-- +-- - #VUID-vkCmdDispatchIndirect-OpImageBlockMatchWindow-09216# If a +-- @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@ +-- instruction is used to read from an +-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then +-- the image view’s format /must/ be a single-component format. +-- +-- - #VUID-vkCmdDispatchIndirect-OpImageBlockMatchWindow-09217# If a +-- @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@ +-- read from a reference image as result of this command, then the +-- specified reference coordinates /must/ not fail +-- +-- -- - #VUID-vkCmdDispatchIndirect-None-07288# Any shader invocation -- executed by this command /must/ -- @@ -15032,7 +17872,11 @@ foreign import ccall -- image is 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D' with multiple -- layers, then each slice is copied to or from a different layer; @depth@ -- slices in the 3D image correspond to @layerCount@ layers in the 2D --- image, with an effective @depth@ of @1@ used for the 2D image. +-- image, with an effective @depth@ of @1@ used for the 2D image. If +-- +-- is enabled, all other combinations are allowed and function as if 1D +-- images are 2D images with a height of 1. Otherwise, other combinations +-- of image types are disallowed. -- -- == Valid Usage -- @@ -15067,9 +17911,9 @@ foreign import ccall -- -- - #VUID-vkCmdCopyImage-srcImageLayout-01917# @srcImageLayout@ /must/ -- be +-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHARED_PRESENT_KHR', -- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL', --- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL', or --- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHARED_PRESENT_KHR' +-- or 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL' -- -- - #VUID-vkCmdCopyImage-dstImage-01996# The -- @@ -15083,9 +17927,9 @@ foreign import ccall -- -- - #VUID-vkCmdCopyImage-dstImageLayout-01395# @dstImageLayout@ /must/ -- be +-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHARED_PRESENT_KHR', -- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL', --- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL', or --- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHARED_PRESENT_KHR' +-- or 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL' -- -- - #VUID-vkCmdCopyImage-srcImage-01548# If the -- 'Vulkan.Core10.Enums.Format.Format' of each of @srcImage@ and @@ -15102,6 +17946,12 @@ foreign import ccall -- -- for the plane being copied -- +-- - #VUID-vkCmdCopyImage-srcImage-09247# If the +-- 'Vulkan.Core10.Enums.Format.Format' of each of @srcImage@ and +-- @dstImage@ is a +-- , +-- the formats /must/ have the same texel block extent +-- -- - #VUID-vkCmdCopyImage-srcImage-00136# The sample count of @srcImage@ -- and @dstImage@ /must/ match -- @@ -15128,12 +17978,14 @@ foreign import ccall -- then for each element of @pRegions@, @srcSubresource.aspectMask@ -- /must/ be a single valid -- +-- bit -- -- - #VUID-vkCmdCopyImage-dstImage-08714# If @dstImage@ has a -- , -- then for each element of @pRegions@, @dstSubresource.aspectMask@ -- /must/ be a single valid -- +-- bit -- -- - #VUID-vkCmdCopyImage-srcImage-01556# If @srcImage@ has a -- @@ -15149,14 +18001,14 @@ foreign import ccall -- -- - #VUID-vkCmdCopyImage-apiVersion-07932# If the -- --- extension is not enabled, +-- extension is not enabled, or -- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceProperties'::@apiVersion@ -- is less than Vulkan 1.1, and either @srcImage@ or @dstImage@ is of -- type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D', then for each -- element of @pRegions@, @srcSubresource.baseArrayLayer@ and --- @dstSubresource.baseArrayLayer@ /must/ each be @0@, and +-- @dstSubresource.baseArrayLayer@ /must/ both be @0@, and -- @srcSubresource.layerCount@ and @dstSubresource.layerCount@ /must/ --- each be @1@ +-- both be @1@ -- -- - #VUID-vkCmdCopyImage-srcImage-04443# If @srcImage@ is of type -- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D', then for each element @@ -15217,20 +18069,48 @@ foreign import ccall -- -- - #VUID-vkCmdCopyImage-apiVersion-07933# If the -- --- extension is not enabled, +-- extension is not enabled, and -- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceProperties'::@apiVersion@ -- is less than Vulkan 1.1, @srcImage@ and @dstImage@ /must/ have the -- same 'Vulkan.Core10.Enums.ImageType.ImageType' -- --- - #VUID-vkCmdCopyImage-srcImage-07743# If @srcImage@ and @dstImage@ --- have a different 'Vulkan.Core10.Enums.ImageType.ImageType', one --- /must/ be 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D' and the --- other /must/ be 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D' +-- - #VUID-vkCmdCopyImage-apiVersion-08969# If the +-- +-- extension is not enabled, and +-- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceProperties'::@apiVersion@ +-- is less than Vulkan 1.1, @srcImage@ or @dstImage@ is of type +-- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D', then for each element +-- of @pRegions@, @extent.depth@ /must/ be @1@ -- --- - #VUID-vkCmdCopyImage-srcImage-07744# If @srcImage@ and @dstImage@ --- have the same 'Vulkan.Core10.Enums.ImageType.ImageType', the --- @layerCount@ member of @srcSubresource@ and @dstSubresource@ in each --- element of @pRegions@ /must/ match +-- - #VUID-vkCmdCopyImage-srcImage-07743# If @srcImage@ and @dstImage@ +-- have a different 'Vulkan.Core10.Enums.ImageType.ImageType', and +-- +-- is not enabled, one /must/ be +-- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D' and the other /must/ +-- be 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D' +-- +-- - #VUID-vkCmdCopyImage-srcImage-08793# If @srcImage@ and @dstImage@ +-- have the same 'Vulkan.Core10.Enums.ImageType.ImageType', for each +-- element of @pRegions@, if neither of the @layerCount@ members of +-- @srcSubresource@ or @dstSubresource@ are +-- 'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS', the +-- @layerCount@ members of @srcSubresource@ or @dstSubresource@ /must/ +-- match +-- +-- - #VUID-vkCmdCopyImage-maintenance5-08792# If the +-- +-- feature is not enabled, the @layerCount@ member of @srcSubresource@ +-- or @dstSubresource@ /must/ not be +-- 'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS' +-- +-- - #VUID-vkCmdCopyImage-srcImage-08794# If @srcImage@ and @dstImage@ +-- have the same 'Vulkan.Core10.Enums.ImageType.ImageType', and one of +-- the @layerCount@ members of @srcSubresource@ or @dstSubresource@ is +-- 'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS', the other +-- member /must/ be either +-- 'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS' or equal to the +-- @arrayLayers@ member of the 'Vulkan.Core10.Image.ImageCreateInfo' +-- used to create the image minus @baseArrayLayer@ -- -- - #VUID-vkCmdCopyImage-srcImage-01790# If @srcImage@ and @dstImage@ -- are both of type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D', then @@ -15393,9 +18273,12 @@ foreign import ccall -- -- - #VUID-vkCmdCopyImage-srcSubresource-07968# The -- @srcSubresource.baseArrayLayer@ + @srcSubresource.layerCount@ of --- each element of @pRegions@ /must/ be less than or equal to the --- @arrayLayers@ specified in 'Vulkan.Core10.Image.ImageCreateInfo' --- when @srcImage@ was created +-- each element of @pRegions@ , if @srcSubresource.layerCount@ is not +-- 'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS' and +-- +-- is not enabled, /must/ be less than or equal to the @arrayLayers@ +-- specified in 'Vulkan.Core10.Image.ImageCreateInfo' when @srcImage@ +-- was created -- -- - #VUID-vkCmdCopyImage-srcImage-07969# @srcImage@ /must/ not have been -- created with @flags@ containing @@ -15413,9 +18296,12 @@ foreign import ccall -- -- - #VUID-vkCmdCopyImage-dstSubresource-07968# The -- @dstSubresource.baseArrayLayer@ + @dstSubresource.layerCount@ of --- each element of @pRegions@ /must/ be less than or equal to the --- @arrayLayers@ specified in 'Vulkan.Core10.Image.ImageCreateInfo' --- when @dstImage@ was created +-- each element of @pRegions@ , if @dstSubresource.layerCount@ is not +-- 'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS' and +-- +-- is not enabled, /must/ be less than or equal to the @arrayLayers@ +-- specified in 'Vulkan.Core10.Image.ImageCreateInfo' when @dstImage@ +-- was created -- -- - #VUID-vkCmdCopyImage-dstImage-07969# @dstImage@ /must/ not have been -- created with @flags@ containing @@ -15797,15 +18683,21 @@ foreign import ccall -- -- - #VUID-vkCmdBlitImage-srcSubresource-01707# The -- @srcSubresource.baseArrayLayer@ + @srcSubresource.layerCount@ of --- each element of @pRegions@ /must/ be less than or equal to the --- @arrayLayers@ specified in 'Vulkan.Core10.Image.ImageCreateInfo' --- when @srcImage@ was created +-- each element of @pRegions@ , if @srcSubresource.layerCount@ is not +-- 'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS' and +-- +-- is not enabled, /must/ be less than or equal to the @arrayLayers@ +-- specified in 'Vulkan.Core10.Image.ImageCreateInfo' when @srcImage@ +-- was created -- -- - #VUID-vkCmdBlitImage-dstSubresource-01708# The -- @dstSubresource.baseArrayLayer@ + @dstSubresource.layerCount@ of --- each element of @pRegions@ /must/ be less than or equal to the --- @arrayLayers@ specified in 'Vulkan.Core10.Image.ImageCreateInfo' --- when @dstImage@ was created +-- each element of @pRegions@ , if @srcSubresource.layerCount@ is not +-- 'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS' and +-- +-- is not enabled, /must/ be less than or equal to the @arrayLayers@ +-- specified in 'Vulkan.Core10.Image.ImageCreateInfo' when @dstImage@ +-- was created -- -- - #VUID-vkCmdBlitImage-dstImage-02545# @dstImage@ and @srcImage@ -- /must/ not have been created with @flags@ containing @@ -16037,9 +18929,12 @@ foreign import ccall -- -- - #VUID-vkCmdCopyBufferToImage-imageSubresource-07968# The -- @imageSubresource.baseArrayLayer@ + @imageSubresource.layerCount@ of --- each element of @pRegions@ /must/ be less than or equal to the --- @arrayLayers@ specified in 'Vulkan.Core10.Image.ImageCreateInfo' --- when @dstImage@ was created +-- each element of @pRegions@ , if @imageSubresource.layerCount@ is not +-- 'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS' and +-- +-- is not enabled, /must/ be less than or equal to the @arrayLayers@ +-- specified in 'Vulkan.Core10.Image.ImageCreateInfo' when @dstImage@ +-- was created -- -- - #VUID-vkCmdCopyBufferToImage-dstImage-07969# @dstImage@ /must/ not -- have been created with @flags@ containing @@ -16103,12 +18998,58 @@ foreign import ccall -- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_DEPTH_BIT' or -- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT' -- +-- - #VUID-vkCmdCopyBufferToImage-pRegions-00171# @srcBuffer@ /must/ be +-- large enough to contain all buffer locations that are accessed +-- according to +-- , +-- for each element of @pRegions@ +-- +-- - #VUID-vkCmdCopyBufferToImage-pRegions-00173# The union of all source +-- regions, and the union of all destination regions, specified by the +-- elements of @pRegions@, /must/ not overlap in memory +-- +-- - #VUID-vkCmdCopyBufferToImage-srcBuffer-00174# @srcBuffer@ /must/ +-- have been created with +-- 'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_TRANSFER_SRC_BIT' +-- usage flag +-- +-- - #VUID-vkCmdCopyBufferToImage-dstImage-01997# The +-- +-- of @dstImage@ /must/ contain +-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_TRANSFER_DST_BIT' +-- +-- - #VUID-vkCmdCopyBufferToImage-srcBuffer-00176# If @srcBuffer@ is +-- non-sparse then it /must/ be bound completely and contiguously to a +-- single 'Vulkan.Core10.Handles.DeviceMemory' object +-- +-- - #VUID-vkCmdCopyBufferToImage-dstImage-00177# @dstImage@ /must/ have +-- been created with +-- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_DST_BIT' +-- usage flag +-- +-- - #VUID-vkCmdCopyBufferToImage-dstImageLayout-00180# @dstImageLayout@ +-- /must/ specify the layout of the image subresources of @dstImage@ +-- specified in @pRegions@ at the time this command is executed on a +-- 'Vulkan.Core10.Handles.Device' +-- +-- - #VUID-vkCmdCopyBufferToImage-dstImageLayout-01396# @dstImageLayout@ +-- /must/ be +-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHARED_PRESENT_KHR', +-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL', +-- or 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL' +-- +-- - #VUID-vkCmdCopyBufferToImage-pRegions-07931# If +-- +-- is not enabled, for each element of @pRegions@ whose +-- @imageSubresource@ contains a depth aspect, the data in @srcBuffer@ +-- /must/ be in the range [0,1] +-- -- - #VUID-vkCmdCopyBufferToImage-dstImage-07979# If @dstImage@ is of -- type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D', then for each -- element of @pRegions@, @imageOffset.y@ /must/ be @0@ and -- @imageExtent.height@ /must/ be @1@ -- --- - #VUID-vkCmdCopyBufferToImage-imageOffset-00200# For each element of +-- - #VUID-vkCmdCopyBufferToImage-imageOffset-09104# For each element of -- @pRegions@, @imageOffset.z@ and (@imageExtent.depth@ + -- @imageOffset.z@) /must/ both be greater than or equal to @0@ and -- less than or equal to the depth of the specified @imageSubresource@ @@ -16117,92 +19058,80 @@ foreign import ccall -- - #VUID-vkCmdCopyBufferToImage-dstImage-07980# If @dstImage@ is of -- type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D' or -- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D', then for each element --- of @pRegions@, @imageOffset.z@ /must/ be @0@ and @imageExtent.depth@ --- /must/ be @1@ --- --- - #VUID-vkCmdCopyBufferToImage-bufferRowLength-00203# For each element --- of @pRegions@, @bufferRowLength@ /must/ be a multiple of the --- --- of the 'Vulkan.Core10.Enums.Format.Format' of @dstImage@ --- --- - #VUID-vkCmdCopyBufferToImage-bufferImageHeight-00204# For each --- element of @pRegions@, @bufferImageHeight@ /must/ be a multiple of --- the --- --- of the 'Vulkan.Core10.Enums.Format.Format' of @dstImage@ +-- of @pRegions@, @imageOffset.z@ /must/ be @0@ and @imageExtent.depth@ +-- /must/ be @1@ -- --- - #VUID-vkCmdCopyBufferToImage-pRegions-07274# For each element of +-- - #VUID-vkCmdCopyBufferToImage-dstImage-07274# For each element of -- @pRegions@, @imageOffset.x@ /must/ be a multiple of the -- -- of the 'Vulkan.Core10.Enums.Format.Format' of @dstImage@ -- --- - #VUID-vkCmdCopyBufferToImage-pRegions-07275# For each element of +-- - #VUID-vkCmdCopyBufferToImage-dstImage-07275# For each element of -- @pRegions@, @imageOffset.y@ /must/ be a multiple of the -- -- of the 'Vulkan.Core10.Enums.Format.Format' of @dstImage@ -- --- - #VUID-vkCmdCopyBufferToImage-pRegions-07276# For each element of +-- - #VUID-vkCmdCopyBufferToImage-dstImage-07276# For each element of -- @pRegions@, @imageOffset.z@ /must/ be a multiple of the -- -- of the 'Vulkan.Core10.Enums.Format.Format' of @dstImage@ -- --- - #VUID-vkCmdCopyBufferToImage-imageExtent-00207# For each element of +-- - #VUID-vkCmdCopyBufferToImage-dstImage-00207# For each element of -- @pRegions@, if the sum of @imageOffset.x@ and @extent.width@ does -- not equal the width of the subresource specified by -- @srcSubresource@, @extent.width@ /must/ be a multiple of the -- -- of the 'Vulkan.Core10.Enums.Format.Format' of @dstImage@ -- --- - #VUID-vkCmdCopyBufferToImage-imageExtent-00208# For each element of +-- - #VUID-vkCmdCopyBufferToImage-dstImage-00208# For each element of -- @pRegions@, if the sum of @imageOffset.y@ and @extent.height@ does -- not equal the height of the subresource specified by -- @srcSubresource@, @extent.height@ /must/ be a multiple of the -- -- of the 'Vulkan.Core10.Enums.Format.Format' of @dstImage@ -- --- - #VUID-vkCmdCopyBufferToImage-imageExtent-00209# For each element of +-- - #VUID-vkCmdCopyBufferToImage-dstImage-00209# For each element of -- @pRegions@, if the sum of @imageOffset.z@ and @extent.depth@ does -- not equal the depth of the subresource specified by -- @srcSubresource@, @extent.depth@ /must/ be a multiple of the -- -- of the 'Vulkan.Core10.Enums.Format.Format' of @dstImage@ -- --- - #VUID-vkCmdCopyBufferToImage-aspectMask-00211# For each element of --- @pRegions@, @imageSubresource.aspectMask@ /must/ specify aspects --- present in @dstImage@ +-- - #VUID-vkCmdCopyBufferToImage-imageSubresource-09105# For each +-- element of @pRegions@, @imageSubresource.aspectMask@ /must/ specify +-- aspects present in @dstImage@ -- -- - #VUID-vkCmdCopyBufferToImage-dstImage-07981# If @dstImage@ has a --- 'Vulkan.Core10.Enums.Format.Format' with --- --- then for each element of @pRegions@, @imageSubresource.aspectMask@ --- /must/ be --- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT' --- or --- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT' --- --- - #VUID-vkCmdCopyBufferToImage-dstImage-07982# If @dstImage@ has a --- 'Vulkan.Core10.Enums.Format.Format' with --- +-- , -- then for each element of @pRegions@, @imageSubresource.aspectMask@ --- /must/ be --- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT', --- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT', --- or --- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_2_BIT' +-- /must/ be a single valid +-- +-- bit -- -- - #VUID-vkCmdCopyBufferToImage-dstImage-07983# If @dstImage@ is of -- type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D', for each element -- of @pRegions@, @imageSubresource.baseArrayLayer@ /must/ be @0@ and -- @imageSubresource.layerCount@ /must/ be @1@ -- --- - #VUID-vkCmdCopyBufferToImage-pRegions-07277# For each element of --- @pRegions@, @bufferRowLength@ divided by the +-- - #VUID-vkCmdCopyBufferToImage-bufferRowLength-09106# For each element +-- of @pRegions@, @bufferRowLength@ /must/ be a multiple of the +-- +-- of the 'Vulkan.Core10.Enums.Format.Format' of @dstImage@ +-- +-- - #VUID-vkCmdCopyBufferToImage-bufferImageHeight-09107# For each +-- element of @pRegions@, @bufferImageHeight@ /must/ be a multiple of +-- the +-- +-- of the 'Vulkan.Core10.Enums.Format.Format' of @dstImage@ +-- +-- - #VUID-vkCmdCopyBufferToImage-bufferRowLength-09108# For each element +-- of @pRegions@, @bufferRowLength@ divided by the -- -- and then multiplied by the texel block size of @dstImage@ /must/ be -- less than or equal to 231-1 -- -- - #VUID-vkCmdCopyBufferToImage-dstImage-07975# If @dstImage@ does not --- have either a depth\/stencil or a +-- have either a depth\/stencil format or a -- , -- then for each element of @pRegions@, @bufferOffset@ /must/ be a -- multiple of the @@ -16219,52 +19148,6 @@ foreign import ccall -- depth\/stencil format, the @bufferOffset@ member of any element of -- @pRegions@ /must/ be a multiple of @4@ -- --- - #VUID-vkCmdCopyBufferToImage-pRegions-00171# @srcBuffer@ /must/ be --- large enough to contain all buffer locations that are accessed --- according to --- , --- for each element of @pRegions@ --- --- - #VUID-vkCmdCopyBufferToImage-pRegions-00173# The union of all source --- regions, and the union of all destination regions, specified by the --- elements of @pRegions@, /must/ not overlap in memory --- --- - #VUID-vkCmdCopyBufferToImage-srcBuffer-00174# @srcBuffer@ /must/ --- have been created with --- 'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_TRANSFER_SRC_BIT' --- usage flag --- --- - #VUID-vkCmdCopyBufferToImage-dstImage-01997# The --- --- of @dstImage@ /must/ contain --- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_TRANSFER_DST_BIT' --- --- - #VUID-vkCmdCopyBufferToImage-srcBuffer-00176# If @srcBuffer@ is --- non-sparse then it /must/ be bound completely and contiguously to a --- single 'Vulkan.Core10.Handles.DeviceMemory' object --- --- - #VUID-vkCmdCopyBufferToImage-dstImage-00177# @dstImage@ /must/ have --- been created with --- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_DST_BIT' --- usage flag --- --- - #VUID-vkCmdCopyBufferToImage-dstImageLayout-00180# @dstImageLayout@ --- /must/ specify the layout of the image subresources of @dstImage@ --- specified in @pRegions@ at the time this command is executed on a --- 'Vulkan.Core10.Handles.Device' --- --- - #VUID-vkCmdCopyBufferToImage-dstImageLayout-01396# @dstImageLayout@ --- /must/ be --- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL', --- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL', or --- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHARED_PRESENT_KHR' --- --- - #VUID-vkCmdCopyBufferToImage-pRegions-07931# If --- --- is not enabled, for each element of @pRegions@ whose --- @imageSubresource@ contains a depth aspect, the data in @srcBuffer@ --- /must/ be in the range [0,1] --- -- == Valid Usage (Implicit) -- -- - #VUID-vkCmdCopyBufferToImage-commandBuffer-parameter# @@ -16406,9 +19289,12 @@ foreign import ccall -- -- - #VUID-vkCmdCopyImageToBuffer-imageSubresource-07968# The -- @imageSubresource.baseArrayLayer@ + @imageSubresource.layerCount@ of --- each element of @pRegions@ /must/ be less than or equal to the --- @arrayLayers@ specified in 'Vulkan.Core10.Image.ImageCreateInfo' --- when @srcImage@ was created +-- each element of @pRegions@ , if @imageSubresource.layerCount@ is not +-- 'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS' and +-- +-- is not enabled, /must/ be less than or equal to the @arrayLayers@ +-- specified in 'Vulkan.Core10.Image.ImageCreateInfo' when @srcImage@ +-- was created -- -- - #VUID-vkCmdCopyImageToBuffer-srcImage-07969# @srcImage@ /must/ not -- have been created with @flags@ containing @@ -16463,12 +19349,52 @@ foreign import ccall -- @commandBuffer@’s command pool’s queue family, as described in -- 'Vulkan.Core10.DeviceInitialization.QueueFamilyProperties' -- +-- - #VUID-vkCmdCopyImageToBuffer-pRegions-00183# @dstBuffer@ /must/ be +-- large enough to contain all buffer locations that are accessed +-- according to +-- , +-- for each element of @pRegions@ +-- +-- - #VUID-vkCmdCopyImageToBuffer-pRegions-00184# The union of all source +-- regions, and the union of all destination regions, specified by the +-- elements of @pRegions@, /must/ not overlap in memory +-- +-- - #VUID-vkCmdCopyImageToBuffer-srcImage-00186# @srcImage@ /must/ have +-- been created with +-- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_SRC_BIT' +-- usage flag +-- +-- - #VUID-vkCmdCopyImageToBuffer-srcImage-01998# The +-- +-- of @srcImage@ /must/ contain +-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_TRANSFER_SRC_BIT' +-- +-- - #VUID-vkCmdCopyImageToBuffer-dstBuffer-00191# @dstBuffer@ /must/ +-- have been created with +-- 'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_TRANSFER_DST_BIT' +-- usage flag +-- +-- - #VUID-vkCmdCopyImageToBuffer-dstBuffer-00192# If @dstBuffer@ is +-- non-sparse then it /must/ be bound completely and contiguously to a +-- single 'Vulkan.Core10.Handles.DeviceMemory' object +-- +-- - #VUID-vkCmdCopyImageToBuffer-srcImageLayout-00189# @srcImageLayout@ +-- /must/ specify the layout of the image subresources of @srcImage@ +-- specified in @pRegions@ at the time this command is executed on a +-- 'Vulkan.Core10.Handles.Device' +-- +-- - #VUID-vkCmdCopyImageToBuffer-srcImageLayout-01397# @srcImageLayout@ +-- /must/ be +-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHARED_PRESENT_KHR', +-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL', +-- or 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL' +-- -- - #VUID-vkCmdCopyImageToBuffer-srcImage-07979# If @srcImage@ is of -- type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D', then for each -- element of @pRegions@, @imageOffset.y@ /must/ be @0@ and -- @imageExtent.height@ /must/ be @1@ -- --- - #VUID-vkCmdCopyImageToBuffer-imageOffset-00200# For each element of +-- - #VUID-vkCmdCopyImageToBuffer-imageOffset-09104# For each element of -- @pRegions@, @imageOffset.z@ and (@imageExtent.depth@ + -- @imageOffset.z@) /must/ both be greater than or equal to @0@ and -- less than or equal to the depth of the specified @imageSubresource@ @@ -16480,89 +19406,77 @@ foreign import ccall -- of @pRegions@, @imageOffset.z@ /must/ be @0@ and @imageExtent.depth@ -- /must/ be @1@ -- --- - #VUID-vkCmdCopyImageToBuffer-bufferRowLength-00203# For each element --- of @pRegions@, @bufferRowLength@ /must/ be a multiple of the --- --- of the 'Vulkan.Core10.Enums.Format.Format' of @srcImage@ --- --- - #VUID-vkCmdCopyImageToBuffer-bufferImageHeight-00204# For each --- element of @pRegions@, @bufferImageHeight@ /must/ be a multiple of --- the --- --- of the 'Vulkan.Core10.Enums.Format.Format' of @srcImage@ --- --- - #VUID-vkCmdCopyImageToBuffer-pRegions-07274# For each element of +-- - #VUID-vkCmdCopyImageToBuffer-srcImage-07274# For each element of -- @pRegions@, @imageOffset.x@ /must/ be a multiple of the -- -- of the 'Vulkan.Core10.Enums.Format.Format' of @srcImage@ -- --- - #VUID-vkCmdCopyImageToBuffer-pRegions-07275# For each element of +-- - #VUID-vkCmdCopyImageToBuffer-srcImage-07275# For each element of -- @pRegions@, @imageOffset.y@ /must/ be a multiple of the -- -- of the 'Vulkan.Core10.Enums.Format.Format' of @srcImage@ -- --- - #VUID-vkCmdCopyImageToBuffer-pRegions-07276# For each element of +-- - #VUID-vkCmdCopyImageToBuffer-srcImage-07276# For each element of -- @pRegions@, @imageOffset.z@ /must/ be a multiple of the -- -- of the 'Vulkan.Core10.Enums.Format.Format' of @srcImage@ -- --- - #VUID-vkCmdCopyImageToBuffer-imageExtent-00207# For each element of +-- - #VUID-vkCmdCopyImageToBuffer-srcImage-00207# For each element of -- @pRegions@, if the sum of @imageOffset.x@ and @extent.width@ does -- not equal the width of the subresource specified by -- @srcSubresource@, @extent.width@ /must/ be a multiple of the -- -- of the 'Vulkan.Core10.Enums.Format.Format' of @srcImage@ -- --- - #VUID-vkCmdCopyImageToBuffer-imageExtent-00208# For each element of +-- - #VUID-vkCmdCopyImageToBuffer-srcImage-00208# For each element of -- @pRegions@, if the sum of @imageOffset.y@ and @extent.height@ does -- not equal the height of the subresource specified by -- @srcSubresource@, @extent.height@ /must/ be a multiple of the -- -- of the 'Vulkan.Core10.Enums.Format.Format' of @srcImage@ -- --- - #VUID-vkCmdCopyImageToBuffer-imageExtent-00209# For each element of +-- - #VUID-vkCmdCopyImageToBuffer-srcImage-00209# For each element of -- @pRegions@, if the sum of @imageOffset.z@ and @extent.depth@ does -- not equal the depth of the subresource specified by -- @srcSubresource@, @extent.depth@ /must/ be a multiple of the -- -- of the 'Vulkan.Core10.Enums.Format.Format' of @srcImage@ -- --- - #VUID-vkCmdCopyImageToBuffer-aspectMask-00211# For each element of --- @pRegions@, @imageSubresource.aspectMask@ /must/ specify aspects --- present in @srcImage@ +-- - #VUID-vkCmdCopyImageToBuffer-imageSubresource-09105# For each +-- element of @pRegions@, @imageSubresource.aspectMask@ /must/ specify +-- aspects present in @srcImage@ -- -- - #VUID-vkCmdCopyImageToBuffer-srcImage-07981# If @srcImage@ has a --- 'Vulkan.Core10.Enums.Format.Format' with --- --- then for each element of @pRegions@, @imageSubresource.aspectMask@ --- /must/ be --- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT' --- or --- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT' --- --- - #VUID-vkCmdCopyImageToBuffer-srcImage-07982# If @srcImage@ has a --- 'Vulkan.Core10.Enums.Format.Format' with --- +-- , -- then for each element of @pRegions@, @imageSubresource.aspectMask@ --- /must/ be --- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT', --- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT', --- or --- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_2_BIT' +-- /must/ be a single valid +-- +-- bit -- -- - #VUID-vkCmdCopyImageToBuffer-srcImage-07983# If @srcImage@ is of -- type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D', for each element -- of @pRegions@, @imageSubresource.baseArrayLayer@ /must/ be @0@ and -- @imageSubresource.layerCount@ /must/ be @1@ -- --- - #VUID-vkCmdCopyImageToBuffer-pRegions-07277# For each element of --- @pRegions@, @bufferRowLength@ divided by the +-- - #VUID-vkCmdCopyImageToBuffer-bufferRowLength-09106# For each element +-- of @pRegions@, @bufferRowLength@ /must/ be a multiple of the +-- +-- of the 'Vulkan.Core10.Enums.Format.Format' of @srcImage@ +-- +-- - #VUID-vkCmdCopyImageToBuffer-bufferImageHeight-09107# For each +-- element of @pRegions@, @bufferImageHeight@ /must/ be a multiple of +-- the +-- +-- of the 'Vulkan.Core10.Enums.Format.Format' of @srcImage@ +-- +-- - #VUID-vkCmdCopyImageToBuffer-bufferRowLength-09108# For each element +-- of @pRegions@, @bufferRowLength@ divided by the -- -- and then multiplied by the texel block size of @srcImage@ /must/ be -- less than or equal to 231-1 -- -- - #VUID-vkCmdCopyImageToBuffer-srcImage-07975# If @srcImage@ does not --- have either a depth\/stencil or a +-- have either a depth\/stencil format or a -- , -- then for each element of @pRegions@, @bufferOffset@ /must/ be a -- multiple of the @@ -16579,46 +19493,6 @@ foreign import ccall -- depth\/stencil format, the @bufferOffset@ member of any element of -- @pRegions@ /must/ be a multiple of @4@ -- --- - #VUID-vkCmdCopyImageToBuffer-pRegions-00183# @dstBuffer@ /must/ be --- large enough to contain all buffer locations that are accessed --- according to --- , --- for each element of @pRegions@ --- --- - #VUID-vkCmdCopyImageToBuffer-pRegions-00184# The union of all source --- regions, and the union of all destination regions, specified by the --- elements of @pRegions@, /must/ not overlap in memory --- --- - #VUID-vkCmdCopyImageToBuffer-srcImage-00186# @srcImage@ /must/ have --- been created with --- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_SRC_BIT' --- usage flag --- --- - #VUID-vkCmdCopyImageToBuffer-srcImage-01998# The --- --- of @srcImage@ /must/ contain --- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_TRANSFER_SRC_BIT' --- --- - #VUID-vkCmdCopyImageToBuffer-dstBuffer-00191# @dstBuffer@ /must/ --- have been created with --- 'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_TRANSFER_DST_BIT' --- usage flag --- --- - #VUID-vkCmdCopyImageToBuffer-dstBuffer-00192# If @dstBuffer@ is --- non-sparse then it /must/ be bound completely and contiguously to a --- single 'Vulkan.Core10.Handles.DeviceMemory' object --- --- - #VUID-vkCmdCopyImageToBuffer-srcImageLayout-00189# @srcImageLayout@ --- /must/ specify the layout of the image subresources of @srcImage@ --- specified in @pRegions@ at the time this command is executed on a --- 'Vulkan.Core10.Handles.Device' --- --- - #VUID-vkCmdCopyImageToBuffer-srcImageLayout-01397# @srcImageLayout@ --- /must/ be --- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL', --- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL', or --- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHARED_PRESENT_KHR' --- -- == Valid Usage (Implicit) -- -- - #VUID-vkCmdCopyImageToBuffer-commandBuffer-parameter# @@ -17083,9 +19957,9 @@ foreign import ccall -- -- - #VUID-vkCmdClearColorImage-imageLayout-01394# @imageLayout@ /must/ -- be --- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL', --- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL', or --- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHARED_PRESENT_KHR' +-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHARED_PRESENT_KHR', +-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL' +-- or 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL' -- -- - #VUID-vkCmdClearColorImage-aspectMask-02498# The -- 'Vulkan.Core10.ImageView.ImageSubresourceRange'::@aspectMask@ @@ -17603,6 +20477,11 @@ foreign import ccall -- instance this is recorded in uses multiview, then @baseArrayLayer@ -- /must/ be zero and @layerCount@ /must/ be one -- +-- - #VUID-vkCmdClearAttachments-aspectMask-09298# If the subpass this is +-- recorded in performs an external format resolve, the @aspectMask@ +-- member of any element of @pAttachments@ /must/ not include +-- @VK_IMAGE_ASPECT_PLANE_i_BIT@ for any index /i/ +-- -- == Valid Usage (Implicit) -- -- - #VUID-vkCmdClearAttachments-commandBuffer-parameter# @commandBuffer@ @@ -17802,15 +20681,21 @@ foreign import ccall -- -- - #VUID-vkCmdResolveImage-srcSubresource-01711# The -- @srcSubresource.baseArrayLayer@ + @srcSubresource.layerCount@ of --- each element of @pRegions@ /must/ be less than or equal to the --- @arrayLayers@ specified in 'Vulkan.Core10.Image.ImageCreateInfo' --- when @srcImage@ was created +-- each element of @pRegions@ , if @srcSubresource.layerCount@ is not +-- 'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS' and +-- +-- is not enabled, /must/ be less than or equal to the @arrayLayers@ +-- specified in 'Vulkan.Core10.Image.ImageCreateInfo' when @srcImage@ +-- was created -- -- - #VUID-vkCmdResolveImage-dstSubresource-01712# The -- @dstSubresource.baseArrayLayer@ + @dstSubresource.layerCount@ of --- each element of @pRegions@ /must/ be less than or equal to the --- @arrayLayers@ specified in 'Vulkan.Core10.Image.ImageCreateInfo' --- when @dstImage@ was created +-- each element of @pRegions@ , if @dstSubresource.layerCount@ is not +-- 'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS' and +-- +-- is not enabled, /must/ be less than or equal to the @arrayLayers@ +-- specified in 'Vulkan.Core10.Image.ImageCreateInfo' when @dstImage@ +-- was created -- -- - #VUID-vkCmdResolveImage-dstImage-02546# @dstImage@ and @srcImage@ -- /must/ not have been created with @flags@ containing @@ -18073,7 +20958,7 @@ foreign import ccall -- -- feature is not enabled, @stageMask@ /must/ not be @0@ -- --- - #VUID-vkCmdSetEvent-rayTracingPipeline-07949# If neither the +-- - #VUID-vkCmdSetEvent-stageMask-07949# If neither the -- -- extension or -- @@ -18091,8 +20976,8 @@ foreign import ccall -- - #VUID-vkCmdSetEvent-stageMask-01149# @stageMask@ /must/ not include -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_HOST_BIT' -- --- - #VUID-vkCmdSetEvent-commandBuffer-01152# @commandBuffer@’s current --- device mask /must/ include exactly one physical device +-- - #VUID-vkCmdSetEvent-commandBuffer-01152# The current device mask of +-- @commandBuffer@ /must/ include exactly one physical device -- -- == Valid Usage (Implicit) -- @@ -18237,7 +21122,7 @@ foreign import ccall -- -- feature is not enabled, @stageMask@ /must/ not be @0@ -- --- - #VUID-vkCmdResetEvent-rayTracingPipeline-07949# If neither the +-- - #VUID-vkCmdResetEvent-stageMask-07949# If neither the -- -- extension or -- @@ -18353,16 +21238,16 @@ foreign import ccall unsafe #endif "dynamic" mkVkCmdWaitEventsUnsafe - :: FunPtr (Ptr CommandBuffer_T -> Word32 -> Ptr Event -> PipelineStageFlags -> PipelineStageFlags -> Word32 -> Ptr MemoryBarrier -> Word32 -> Ptr BufferMemoryBarrier -> Word32 -> Ptr (SomeStruct ImageMemoryBarrier) -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Ptr Event -> PipelineStageFlags -> PipelineStageFlags -> Word32 -> Ptr MemoryBarrier -> Word32 -> Ptr BufferMemoryBarrier -> Word32 -> Ptr (SomeStruct ImageMemoryBarrier) -> IO () + :: FunPtr (Ptr CommandBuffer_T -> Word32 -> Ptr Event -> PipelineStageFlags -> PipelineStageFlags -> Word32 -> Ptr MemoryBarrier -> Word32 -> Ptr (SomeStruct BufferMemoryBarrier) -> Word32 -> Ptr (SomeStruct ImageMemoryBarrier) -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Ptr Event -> PipelineStageFlags -> PipelineStageFlags -> Word32 -> Ptr MemoryBarrier -> Word32 -> Ptr (SomeStruct BufferMemoryBarrier) -> Word32 -> Ptr (SomeStruct ImageMemoryBarrier) -> IO () foreign import ccall "dynamic" mkVkCmdWaitEventsSafe - :: FunPtr (Ptr CommandBuffer_T -> Word32 -> Ptr Event -> PipelineStageFlags -> PipelineStageFlags -> Word32 -> Ptr MemoryBarrier -> Word32 -> Ptr BufferMemoryBarrier -> Word32 -> Ptr (SomeStruct ImageMemoryBarrier) -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Ptr Event -> PipelineStageFlags -> PipelineStageFlags -> Word32 -> Ptr MemoryBarrier -> Word32 -> Ptr BufferMemoryBarrier -> Word32 -> Ptr (SomeStruct ImageMemoryBarrier) -> IO () + :: FunPtr (Ptr CommandBuffer_T -> Word32 -> Ptr Event -> PipelineStageFlags -> PipelineStageFlags -> Word32 -> Ptr MemoryBarrier -> Word32 -> Ptr (SomeStruct BufferMemoryBarrier) -> Word32 -> Ptr (SomeStruct ImageMemoryBarrier) -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Ptr Event -> PipelineStageFlags -> PipelineStageFlags -> Word32 -> Ptr MemoryBarrier -> Word32 -> Ptr (SomeStruct BufferMemoryBarrier) -> Word32 -> Ptr (SomeStruct ImageMemoryBarrier) -> IO () -- | cmdWaitEvents with selectable safeness cmdWaitEventsSafeOrUnsafe :: forall io . (MonadIO io) - => (FunPtr (Ptr CommandBuffer_T -> Word32 -> Ptr Event -> PipelineStageFlags -> PipelineStageFlags -> Word32 -> Ptr MemoryBarrier -> Word32 -> Ptr BufferMemoryBarrier -> Word32 -> Ptr (SomeStruct ImageMemoryBarrier) -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Ptr Event -> PipelineStageFlags -> PipelineStageFlags -> Word32 -> Ptr MemoryBarrier -> Word32 -> Ptr BufferMemoryBarrier -> Word32 -> Ptr (SomeStruct ImageMemoryBarrier) -> IO ()) + => (FunPtr (Ptr CommandBuffer_T -> Word32 -> Ptr Event -> PipelineStageFlags -> PipelineStageFlags -> Word32 -> Ptr MemoryBarrier -> Word32 -> Ptr (SomeStruct BufferMemoryBarrier) -> Word32 -> Ptr (SomeStruct ImageMemoryBarrier) -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Ptr Event -> PipelineStageFlags -> PipelineStageFlags -> Word32 -> Ptr MemoryBarrier -> Word32 -> Ptr (SomeStruct BufferMemoryBarrier) -> Word32 -> Ptr (SomeStruct ImageMemoryBarrier) -> IO ()) -> -- | @commandBuffer@ is the command buffer into which the command is -- recorded. CommandBuffer @@ -18383,7 +21268,7 @@ cmdWaitEventsSafeOrUnsafe :: forall io ("memoryBarriers" ::: Vector MemoryBarrier) -> -- | @pBufferMemoryBarriers@ is a pointer to an array of -- 'Vulkan.Core10.OtherTypes.BufferMemoryBarrier' structures. - ("bufferMemoryBarriers" ::: Vector BufferMemoryBarrier) + ("bufferMemoryBarriers" ::: Vector (SomeStruct BufferMemoryBarrier)) -> -- | @pImageMemoryBarriers@ is a pointer to an array of -- 'Vulkan.Core10.OtherTypes.ImageMemoryBarrier' structures. ("imageMemoryBarriers" ::: Vector (SomeStruct ImageMemoryBarrier)) @@ -18403,8 +21288,8 @@ cmdWaitEventsSafeOrUnsafe mkVkCmdWaitEvents commandBuffer lift $ Data.Vector.imapM_ (\i e -> poke (pPEvents `plusPtr` (8 * (i)) :: Ptr Event) (e)) (events) pPMemoryBarriers <- ContT $ allocaBytes @MemoryBarrier ((Data.Vector.length (memoryBarriers)) * 24) lift $ Data.Vector.imapM_ (\i e -> poke (pPMemoryBarriers `plusPtr` (24 * (i)) :: Ptr MemoryBarrier) (e)) (memoryBarriers) - pPBufferMemoryBarriers <- ContT $ allocaBytes @BufferMemoryBarrier ((Data.Vector.length (bufferMemoryBarriers)) * 56) - lift $ Data.Vector.imapM_ (\i e -> poke (pPBufferMemoryBarriers `plusPtr` (56 * (i)) :: Ptr BufferMemoryBarrier) (e)) (bufferMemoryBarriers) + pPBufferMemoryBarriers <- ContT $ allocaBytes @(BufferMemoryBarrier _) ((Data.Vector.length (bufferMemoryBarriers)) * 56) + Data.Vector.imapM_ (\i e -> ContT $ pokeSomeCStruct (forgetExtensions (pPBufferMemoryBarriers `plusPtr` (56 * (i)) :: Ptr (BufferMemoryBarrier _))) (e) . ($ ())) (bufferMemoryBarriers) pPImageMemoryBarriers <- ContT $ allocaBytes @(ImageMemoryBarrier _) ((Data.Vector.length (imageMemoryBarriers)) * 72) Data.Vector.imapM_ (\i e -> ContT $ pokeSomeCStruct (forgetExtensions (pPImageMemoryBarriers `plusPtr` (72 * (i)) :: Ptr (ImageMemoryBarrier _))) (e) . ($ ())) (imageMemoryBarriers) lift $ traceAroundEvent "vkCmdWaitEvents" (vkCmdWaitEvents' @@ -18416,7 +21301,7 @@ cmdWaitEventsSafeOrUnsafe mkVkCmdWaitEvents commandBuffer ((fromIntegral (Data.Vector.length $ (memoryBarriers)) :: Word32)) (pPMemoryBarriers) ((fromIntegral (Data.Vector.length $ (bufferMemoryBarriers)) :: Word32)) - (pPBufferMemoryBarriers) + (forgetExtensions (pPBufferMemoryBarriers)) ((fromIntegral (Data.Vector.length $ (imageMemoryBarriers)) :: Word32)) (forgetExtensions (pPImageMemoryBarriers))) pure $ () @@ -18548,13 +21433,21 @@ cmdWaitEventsSafeOrUnsafe mkVkCmdWaitEvents commandBuffer -- -- feature is not enabled, @srcStageMask@ /must/ not be @0@ -- --- - #VUID-vkCmdWaitEvents-rayTracingPipeline-07949# If neither the +-- - #VUID-vkCmdWaitEvents-srcStageMask-07949# If neither the -- -- extension or -- -- are enabled, @srcStageMask@ /must/ not contain -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR' -- +-- - #VUID-vkCmdWaitEvents-srcAccessMask-06257# If the +-- +-- feature is not enabled and a memory barrier @srcAccessMask@ includes +-- 'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR', +-- @srcStageMask@ /must/ not include any of the +-- @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages except +-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR' +-- -- - #VUID-vkCmdWaitEvents-dstStageMask-04090# If the -- -- feature is not enabled, @dstStageMask@ /must/ not contain @@ -18603,13 +21496,21 @@ cmdWaitEventsSafeOrUnsafe mkVkCmdWaitEvents commandBuffer -- -- feature is not enabled, @dstStageMask@ /must/ not be @0@ -- --- - #VUID-vkCmdWaitEvents-rayTracingPipeline-07949# If neither the +-- - #VUID-vkCmdWaitEvents-dstStageMask-07949# If neither the -- -- extension or -- -- are enabled, @dstStageMask@ /must/ not contain -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR' -- +-- - #VUID-vkCmdWaitEvents-dstAccessMask-06257# If the +-- +-- feature is not enabled and a memory barrier @dstAccessMask@ includes +-- 'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR', +-- @dstStageMask@ /must/ not include any of the +-- @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages except +-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR' +-- -- - #VUID-vkCmdWaitEvents-srcAccessMask-02815# The @srcAccessMask@ -- member of each element of @pMemoryBarriers@ /must/ only include -- access flags that are supported by one or more of the pipeline @@ -18802,7 +21703,7 @@ cmdWaitEvents :: forall io ("memoryBarriers" ::: Vector MemoryBarrier) -> -- | @pBufferMemoryBarriers@ is a pointer to an array of -- 'Vulkan.Core10.OtherTypes.BufferMemoryBarrier' structures. - ("bufferMemoryBarriers" ::: Vector BufferMemoryBarrier) + ("bufferMemoryBarriers" ::: Vector (SomeStruct BufferMemoryBarrier)) -> -- | @pImageMemoryBarriers@ is a pointer to an array of -- 'Vulkan.Core10.OtherTypes.ImageMemoryBarrier' structures. ("imageMemoryBarriers" ::: Vector (SomeStruct ImageMemoryBarrier)) @@ -18832,7 +21733,7 @@ cmdWaitEventsSafe :: forall io ("memoryBarriers" ::: Vector MemoryBarrier) -> -- | @pBufferMemoryBarriers@ is a pointer to an array of -- 'Vulkan.Core10.OtherTypes.BufferMemoryBarrier' structures. - ("bufferMemoryBarriers" ::: Vector BufferMemoryBarrier) + ("bufferMemoryBarriers" ::: Vector (SomeStruct BufferMemoryBarrier)) -> -- | @pImageMemoryBarriers@ is a pointer to an array of -- 'Vulkan.Core10.OtherTypes.ImageMemoryBarrier' structures. ("imageMemoryBarriers" ::: Vector (SomeStruct ImageMemoryBarrier)) @@ -18845,7 +21746,7 @@ foreign import ccall unsafe #endif "dynamic" mkVkCmdPipelineBarrier - :: FunPtr (Ptr CommandBuffer_T -> PipelineStageFlags -> PipelineStageFlags -> DependencyFlags -> Word32 -> Ptr MemoryBarrier -> Word32 -> Ptr BufferMemoryBarrier -> Word32 -> Ptr (SomeStruct ImageMemoryBarrier) -> IO ()) -> Ptr CommandBuffer_T -> PipelineStageFlags -> PipelineStageFlags -> DependencyFlags -> Word32 -> Ptr MemoryBarrier -> Word32 -> Ptr BufferMemoryBarrier -> Word32 -> Ptr (SomeStruct ImageMemoryBarrier) -> IO () + :: FunPtr (Ptr CommandBuffer_T -> PipelineStageFlags -> PipelineStageFlags -> DependencyFlags -> Word32 -> Ptr MemoryBarrier -> Word32 -> Ptr (SomeStruct BufferMemoryBarrier) -> Word32 -> Ptr (SomeStruct ImageMemoryBarrier) -> IO ()) -> Ptr CommandBuffer_T -> PipelineStageFlags -> PipelineStageFlags -> DependencyFlags -> Word32 -> Ptr MemoryBarrier -> Word32 -> Ptr (SomeStruct BufferMemoryBarrier) -> Word32 -> Ptr (SomeStruct ImageMemoryBarrier) -> IO () -- | vkCmdPipelineBarrier - Insert a memory dependency -- @@ -18970,13 +21871,21 @@ foreign import ccall -- -- feature is not enabled, @srcStageMask@ /must/ not be @0@ -- --- - #VUID-vkCmdPipelineBarrier-rayTracingPipeline-07949# If neither the +-- - #VUID-vkCmdPipelineBarrier-srcStageMask-07949# If neither the -- -- extension or -- -- are enabled, @srcStageMask@ /must/ not contain -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR' -- +-- - #VUID-vkCmdPipelineBarrier-srcAccessMask-06257# If the +-- +-- feature is not enabled and a memory barrier @srcAccessMask@ includes +-- 'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR', +-- @srcStageMask@ /must/ not include any of the +-- @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages except +-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR' +-- -- - #VUID-vkCmdPipelineBarrier-dstStageMask-04090# If the -- -- feature is not enabled, @dstStageMask@ /must/ not contain @@ -19025,13 +21934,21 @@ foreign import ccall -- -- feature is not enabled, @dstStageMask@ /must/ not be @0@ -- --- - #VUID-vkCmdPipelineBarrier-rayTracingPipeline-07949# If neither the +-- - #VUID-vkCmdPipelineBarrier-dstStageMask-07949# If neither the -- -- extension or -- -- are enabled, @dstStageMask@ /must/ not contain -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR' -- +-- - #VUID-vkCmdPipelineBarrier-dstAccessMask-06257# If the +-- +-- feature is not enabled and a memory barrier @dstAccessMask@ includes +-- 'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR', +-- @dstStageMask@ /must/ not include any of the +-- @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages except +-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR' +-- -- - #VUID-vkCmdPipelineBarrier-srcAccessMask-02815# The @srcAccessMask@ -- member of each element of @pMemoryBarriers@ /must/ only include -- access flags that are supported by one or more of the pipeline @@ -19109,7 +22026,22 @@ foreign import ccall -- 'Vulkan.Core10.Handles.RenderPass' object, the @image@ member of any -- image memory barrier included in this command /must/ be an -- attachment used in the current subpass both as an input attachment, --- and as either a color or depth\/stencil attachment +-- and as either a color, color resolve, or depth\/stencil attachment +-- +-- - #VUID-vkCmdPipelineBarrier-image-09373# If 'cmdPipelineBarrier' is +-- called within a render pass instance using a +-- 'Vulkan.Core10.Handles.RenderPass' object, and the @image@ member of +-- any image memory barrier is a color resolve attachment, the +-- corresponding color attachment /must/ be +-- 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED' +-- +-- - #VUID-vkCmdPipelineBarrier-image-09374# If 'cmdPipelineBarrier' is +-- called within a render pass instance using a +-- 'Vulkan.Core10.Handles.RenderPass' object, and the @image@ member of +-- any image memory barrier is a color resolve attachment, it /must/ +-- have been created with a non-zero +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- value -- -- - #VUID-vkCmdPipelineBarrier-oldLayout-01181# If 'cmdPipelineBarrier' -- is called within a render pass instance, the @oldLayout@ and @@ -19279,7 +22211,7 @@ cmdPipelineBarrier :: forall io ("memoryBarriers" ::: Vector MemoryBarrier) -> -- | @pBufferMemoryBarriers@ is a pointer to an array of -- 'Vulkan.Core10.OtherTypes.BufferMemoryBarrier' structures. - ("bufferMemoryBarriers" ::: Vector BufferMemoryBarrier) + ("bufferMemoryBarriers" ::: Vector (SomeStruct BufferMemoryBarrier)) -> -- | @pImageMemoryBarriers@ is a pointer to an array of -- 'Vulkan.Core10.OtherTypes.ImageMemoryBarrier' structures. ("imageMemoryBarriers" ::: Vector (SomeStruct ImageMemoryBarrier)) @@ -19297,8 +22229,8 @@ cmdPipelineBarrier commandBuffer let vkCmdPipelineBarrier' = mkVkCmdPipelineBarrier vkCmdPipelineBarrierPtr pPMemoryBarriers <- ContT $ allocaBytes @MemoryBarrier ((Data.Vector.length (memoryBarriers)) * 24) lift $ Data.Vector.imapM_ (\i e -> poke (pPMemoryBarriers `plusPtr` (24 * (i)) :: Ptr MemoryBarrier) (e)) (memoryBarriers) - pPBufferMemoryBarriers <- ContT $ allocaBytes @BufferMemoryBarrier ((Data.Vector.length (bufferMemoryBarriers)) * 56) - lift $ Data.Vector.imapM_ (\i e -> poke (pPBufferMemoryBarriers `plusPtr` (56 * (i)) :: Ptr BufferMemoryBarrier) (e)) (bufferMemoryBarriers) + pPBufferMemoryBarriers <- ContT $ allocaBytes @(BufferMemoryBarrier _) ((Data.Vector.length (bufferMemoryBarriers)) * 56) + Data.Vector.imapM_ (\i e -> ContT $ pokeSomeCStruct (forgetExtensions (pPBufferMemoryBarriers `plusPtr` (56 * (i)) :: Ptr (BufferMemoryBarrier _))) (e) . ($ ())) (bufferMemoryBarriers) pPImageMemoryBarriers <- ContT $ allocaBytes @(ImageMemoryBarrier _) ((Data.Vector.length (imageMemoryBarriers)) * 72) Data.Vector.imapM_ (\i e -> ContT $ pokeSomeCStruct (forgetExtensions (pPImageMemoryBarriers `plusPtr` (72 * (i)) :: Ptr (ImageMemoryBarrier _))) (e) . ($ ())) (imageMemoryBarriers) lift $ traceAroundEvent "vkCmdPipelineBarrier" (vkCmdPipelineBarrier' @@ -19309,7 +22241,7 @@ cmdPipelineBarrier commandBuffer ((fromIntegral (Data.Vector.length $ (memoryBarriers)) :: Word32)) (pPMemoryBarriers) ((fromIntegral (Data.Vector.length $ (bufferMemoryBarriers)) :: Word32)) - (pPBufferMemoryBarriers) + (forgetExtensions (pPBufferMemoryBarriers)) ((fromIntegral (Data.Vector.length $ (imageMemoryBarriers)) :: Word32)) (forgetExtensions (pPImageMemoryBarriers))) pure $ () @@ -19387,7 +22319,7 @@ foreign import ccall -- == Valid Usage -- -- - #VUID-vkCmdBeginQuery-None-00807# All queries used by the command --- /must/ be unavailable +-- /must/ be /unavailable/ -- -- - #VUID-vkCmdBeginQuery-queryType-02804# The @queryType@ used to -- create @queryPool@ /must/ not be @@ -19748,11 +22680,11 @@ foreign import ccall -- the 'cmdEndQuery' /must/ not be recorded within a render pass -- instance -- --- - [[VUID-{refpage}-None-07007]] If called within a subpass of a render --- pass instance, the corresponding 'cmdBeginQuery'* command /must/ --- have been called previously within the same subpass +-- - #VUID-vkCmdEndQuery-None-07007# If called within a subpass of a +-- render pass instance, the corresponding 'cmdBeginQuery'* command +-- /must/ have been called previously within the same subpass -- --- - [[VUID-{refpage}-None-07008]] If called outside of a render pass +-- - #VUID-vkCmdEndQuery-None-07008# If called outside of a render pass -- instance, the corresponding 'cmdBeginQuery'* command /must/ have -- been called outside of a render pass instance -- @@ -19913,7 +22845,7 @@ foreign import ccall -- - #VUID-vkCmdResetQueryPool-commandBuffer-cmdpool# The -- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was -- allocated from /must/ support graphics, compute, decode, encode, or --- opticalflow operations +-- optical flow operations -- -- - #VUID-vkCmdResetQueryPool-renderpass# This command /must/ only be -- called outside of a render pass instance @@ -20002,22 +22934,36 @@ foreign import ccall -- -- includes only the timestamp write operation. -- --- When the timestamp value is written, the availability status of the --- query is set to available. --- -- Note -- --- If an implementation is unable to detect completion and latch the timer --- immediately after @stage@ has completed, it /may/ instead do so at any --- logically later stage. --- --- Comparisons between timestamps are not meaningful if the timestamps are --- written by commands submitted to different queues. +-- Implementations may write the timestamp at any stage that is +-- +-- than @stage@. +-- +-- Any timestamp write that +-- +-- another timestamp write in the same submission /must/ not have a lower +-- value unless its value overflows the maximum supported integer bit width +-- of the query. If @VK_EXT_calibrated_timestamps@ is enabled, this extends +-- to timestamp writes across all submissions on the same logical device: +-- any timestamp write that +-- +-- another /must/ not have a lower value unless its value overflows the +-- maximum supported integer bit width of the query. Timestamps written by +-- this command /must/ be in the +-- 'Vulkan.Extensions.VK_EXT_calibrated_timestamps.TIME_DOMAIN_DEVICE_EXT' +-- . If an overflow occurs, the timestamp +-- value /must/ wrap back to zero. -- -- Note -- --- An example of such a comparison is subtracting an older timestamp from a --- newer one to determine the execution time of a sequence of commands. +-- Comparisons between timestamps should be done between timestamps where +-- they are guaranteed to not decrease. For example, subtracting an older +-- timestamp from a newer one to determine the execution time of a sequence +-- of commands is only a reliable measurement if the two timestamp writes +-- were performed in the same submission, or if the writes were performed +-- on the same logical device and @VK_EXT_calibrated_timestamps@ is +-- enabled. -- -- If 'cmdWriteTimestamp' is called while executing a render pass instance -- that has multiview enabled, the timestamp uses N consecutive query @@ -20109,9 +23055,6 @@ foreign import ccall -- been created with a @queryType@ of -- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_TIMESTAMP' -- --- - #VUID-vkCmdWriteTimestamp-queryPool-00828# The query identified by --- @queryPool@ and @query@ /must/ be /unavailable/ --- -- - #VUID-vkCmdWriteTimestamp-timestampValidBits-00829# The command -- pool’s queue family /must/ support a non-zero @timestampValidBits@ -- @@ -20119,7 +23062,7 @@ foreign import ccall -- the number of queries in @queryPool@ -- -- - #VUID-vkCmdWriteTimestamp-None-00830# All queries used by the --- command /must/ be unavailable +-- command /must/ be /unavailable/ -- -- - #VUID-vkCmdWriteTimestamp-query-00831# If 'cmdWriteTimestamp' is -- called within a render pass instance, the sum of @query@ and the @@ -20146,7 +23089,7 @@ foreign import ccall -- - #VUID-vkCmdWriteTimestamp-commandBuffer-cmdpool# The -- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was -- allocated from /must/ support transfer, graphics, compute, decode, --- encode, or opticalflow operations +-- encode, or optical flow operations -- -- - #VUID-vkCmdWriteTimestamp-commonparent# Both of @commandBuffer@, and -- @queryPool@ /must/ have been created, allocated, or retrieved from @@ -20349,7 +23292,8 @@ foreign import ccall -- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR', -- @flags@ /must/ not contain -- 'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_WITH_AVAILABILITY_BIT', --- 'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_PARTIAL_BIT' +-- @VK_QUERY_RESULT_WITH_STATUS_BIT_KHR@, +-- 'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_PARTIAL_BIT', -- or 'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_64_BIT' -- -- - #VUID-vkCmdCopyQueryPoolResults-queryType-03234# If the @queryType@ @@ -20376,6 +23320,9 @@ foreign import ccall -- - #VUID-vkCmdCopyQueryPoolResults-None-07429# All queries used by the -- command /must/ not be active -- +-- - #VUID-vkCmdCopyQueryPoolResults-None-08752# All queries used by the +-- command /must/ have been made /available/ by prior executed commands +-- -- == Valid Usage (Implicit) -- -- - #VUID-vkCmdCopyQueryPoolResults-commandBuffer-parameter# @@ -20798,6 +23745,12 @@ foreign import ccall -- 'Vulkan.Core10.Enums.AttachmentDescriptionFlagBits.ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT' -- set -- +-- - #VUID-vkCmdBeginRenderPass-framebuffer-09045# If any attachments +-- specified in @framebuffer@ are used by @renderPass@ and are bound to +-- overlapping memory locations, there /must/ be only one that is used +-- as a color attachment, depth\/stencil, or resolve attachment in any +-- subpass +-- -- - #VUID-vkCmdBeginRenderPass-initialLayout-07000# If any of the -- @initialLayout@ or @finalLayout@ member of the -- 'Vulkan.Core10.Pass.AttachmentDescription' structures or the @@ -20935,21 +23888,6 @@ foreign import ccall -- 'cmdBeginRenderPass' is recorded, and increments each time -- 'cmdNextSubpass' is recorded. -- --- Moving to the next subpass automatically performs any multisample --- resolve operations in the subpass being ended. End-of-subpass --- multisample resolves are treated as color attachment writes for the --- purposes of synchronization. This applies to resolve operations for both --- color and depth\/stencil attachments. That is, they are considered to --- execute in the --- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT' --- pipeline stage and their writes are synchronized with --- 'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_COLOR_ATTACHMENT_WRITE_BIT'. --- Synchronization between rendering within a subpass and any resolve --- operations at the end of the subpass occurs automatically, without need --- for explicit dependencies or pipeline barriers. However, if the resolve --- attachment is also used in a different subpass, an explicit dependency --- is needed. --- -- After transitioning to the next subpass, the application /can/ record -- the commands for that subpass. -- @@ -21143,6 +24081,12 @@ foreign import ccall -- that primary command buffer becomes -- . -- +-- If the +-- +-- feature is enabled it is valid usage for 'cmdExecuteCommands' to also be +-- recorded to a +-- . +-- -- == Valid Usage -- -- - #VUID-vkCmdExecuteCommands-pCommandBuffers-00088# Each element of @@ -21194,6 +24138,8 @@ foreign import ccall -- 'cmdBeginRenderPass', its @contents@ parameter /must/ have been set -- to -- 'Vulkan.Core10.Enums.SubpassContents.SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS' +-- , or +-- 'Vulkan.Core10.Enums.SubpassContents.SUBPASS_CONTENTS_INLINE_AND_SECONDARY_COMMAND_BUFFERS_EXT' -- -- - #VUID-vkCmdExecuteCommands-pCommandBuffers-06019# If -- 'cmdExecuteCommands' is being called within a render pass instance @@ -21627,6 +24573,64 @@ foreign import ccall -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.CommandBufferInheritanceRenderingInfo'::@rasterizationSamples@ -- /must/ be equal to the sample count used to create that image view -- +-- - #VUID-vkCmdExecuteCommands-pNext-09299# If 'cmdExecuteCommands' is +-- being called within a render pass instance begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- with any color attachment using a resolve mode of +-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID', +-- the @pNext@ chain of +-- 'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo' used to +-- create each element of @pCommandBuffers@ /must/ include a +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID' +-- structure with a @externalFormat@ matching that used to create the +-- resolve attachment in the render pass +-- +-- - #VUID-vkCmdExecuteCommands-pNext-09300# If 'cmdExecuteCommands' is +-- being called within a render pass instance begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' +-- with any color attachment using a resolve mode of +-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID', +-- and the @pNext@ chain of +-- 'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo' does not +-- include a +-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD' +-- or +-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV' +-- structure, the value of +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.CommandBufferInheritanceRenderingInfo'::@rasterizationSamples@ +-- /must/ be +-- 'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT' +-- +-- - #VUID-vkCmdExecuteCommands-commandBuffer-09375# @commandBuffer@ +-- /must/ not be a +-- +-- unless the +-- +-- feature is enabled +-- +-- - #VUID-vkCmdExecuteCommands-nestedCommandBuffer-09376# If the +-- +-- feature is enabled, the +-- +-- of each element of @pCommandBuffers@ /must/ be less than +-- +-- +-- - #VUID-vkCmdExecuteCommands-nestedCommandBufferRendering-09377# If +-- the +-- +-- feature is not enabled, and @commandBuffer@ is a +-- , +-- @commandBuffer@ /must/ not have been recorded with +-- 'Vulkan.Core10.Enums.CommandBufferUsageFlagBits.COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT' +-- +-- - #VUID-vkCmdExecuteCommands-nestedCommandBufferSimultaneousUse-09378# +-- If the +-- +-- feature is not enabled, and @commandBuffer@ is a +-- , +-- each element of @pCommandBuffers@ /must/ not have been recorded with +-- 'Vulkan.Core10.Enums.CommandBufferUsageFlagBits.COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT' +-- -- == Valid Usage (Implicit) -- -- - #VUID-vkCmdExecuteCommands-commandBuffer-parameter# @commandBuffer@ @@ -21649,9 +24653,6 @@ foreign import ccall -- - #VUID-vkCmdExecuteCommands-videocoding# This command /must/ only be -- called outside of a video coding scope -- --- - #VUID-vkCmdExecuteCommands-bufferlevel# @commandBuffer@ /must/ be a --- primary 'Vulkan.Core10.Handles.CommandBuffer' --- -- - #VUID-vkCmdExecuteCommands-commandBufferCount-arraylength# -- @commandBufferCount@ /must/ be greater than @0@ -- @@ -21674,7 +24675,7 @@ foreign import ccall -- | | | | | | -- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================+ -- | Primary | Both | Outside | Transfer | Indirection | --- | | | | Graphics | | +-- | Secondary | | | Graphics | | -- | | | | Compute | | -- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ -- @@ -21787,7 +24788,13 @@ instance Zero ClearRect where -- not include @VK_IMAGE_ASPECT_MEMORY_PLANE_i_BIT_EXT@ for any index -- /i/ -- --- - #VUID-VkImageSubresourceLayers-layerCount-01700# @layerCount@ /must/ +-- - #VUID-VkImageSubresourceLayers-layerCount-09243# If the +-- +-- feature is not enabled, @layerCount@ /must/ not be +-- 'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS' +-- +-- - #VUID-VkImageSubresourceLayers-layerCount-01700# If @layerCount@ is +-- not 'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS', it /must/ -- be greater than 0 -- -- == Valid Usage (Implicit) @@ -21811,6 +24818,8 @@ instance Zero ClearRect where -- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.ImageCopy2', -- 'ImageResolve', -- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.ImageResolve2', +-- 'Vulkan.Extensions.VK_EXT_host_image_copy.ImageToMemoryCopyEXT', +-- 'Vulkan.Extensions.VK_EXT_host_image_copy.MemoryToImageCopyEXT', -- 'Vulkan.Extensions.VK_NV_copy_memory_indirect.cmdCopyMemoryToImageIndirectNV' data ImageSubresourceLayers = ImageSubresourceLayers { -- | @aspectMask@ is a combination of @@ -21939,14 +24948,14 @@ instance Zero BufferCopy where -- -- - #VUID-VkImageCopy-apiVersion-07940# If the -- --- extension is not enabled and +-- extension is not enabled, and -- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceProperties'::@apiVersion@ -- is less than Vulkan 1.1, the @aspectMask@ member of @srcSubresource@ -- and @dstSubresource@ /must/ match -- -- - #VUID-VkImageCopy-apiVersion-07941# If the -- --- extension is not enabled and +-- extension is not enabled, and -- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceProperties'::@apiVersion@ -- is less than Vulkan 1.1, the @layerCount@ member of @srcSubresource@ -- and @dstSubresource@ /must/ match @@ -22048,8 +25057,25 @@ instance Zero ImageCopy where -- - #VUID-VkImageBlit-aspectMask-00238# The @aspectMask@ member of -- @srcSubresource@ and @dstSubresource@ /must/ match -- --- - #VUID-VkImageBlit-layerCount-00239# The @layerCount@ member of --- @srcSubresource@ and @dstSubresource@ /must/ match +-- - #VUID-VkImageBlit-layerCount-08800# If neither of the @layerCount@ +-- members of @srcSubresource@ or @dstSubresource@ are +-- 'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS', the +-- @layerCount@ members of @srcSubresource@ or @dstSubresource@ /must/ +-- match +-- +-- - #VUID-VkImageBlit-maintenance5-08799# If the +-- +-- feature is not enabled, the @layerCount@ member of @srcSubresource@ +-- or @dstSubresource@ /must/ not be +-- 'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS' +-- +-- - #VUID-VkImageBlit-layerCount-08801# If one of the @layerCount@ +-- members of @srcSubresource@ or @dstSubresource@ is +-- 'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS', the other +-- member /must/ be either +-- 'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS' or equal to the +-- @arrayLayers@ member of the 'Vulkan.Core10.Image.ImageCreateInfo' +-- used to create the image minus @baseArrayLayer@ -- -- == Valid Usage (Implicit) -- @@ -22151,15 +25177,15 @@ instance Zero ImageBlit where -- -- == Valid Usage -- --- - #VUID-VkBufferImageCopy-bufferRowLength-00195# @bufferRowLength@ +-- - #VUID-VkBufferImageCopy-bufferRowLength-09101# @bufferRowLength@ -- /must/ be @0@, or greater than or equal to the @width@ member of -- @imageExtent@ -- --- - #VUID-VkBufferImageCopy-bufferImageHeight-00196# @bufferImageHeight@ +-- - #VUID-VkBufferImageCopy-bufferImageHeight-09102# @bufferImageHeight@ -- /must/ be @0@, or greater than or equal to the @height@ member of -- @imageExtent@ -- --- - #VUID-VkBufferImageCopy-aspectMask-00212# The @aspectMask@ member of +-- - #VUID-VkBufferImageCopy-aspectMask-09103# The @aspectMask@ member of -- @imageSubresource@ /must/ only have a single bit set -- -- - #VUID-VkBufferImageCopy-imageExtent-06659# @imageExtent.width@ @@ -22274,8 +25300,25 @@ instance Zero BufferImageCopy where -- @srcSubresource@ and @dstSubresource@ /must/ only contain -- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT' -- --- - #VUID-VkImageResolve-layerCount-00267# The @layerCount@ member of --- @srcSubresource@ and @dstSubresource@ /must/ match +-- - #VUID-VkImageResolve-layerCount-08803# If neither of the +-- @layerCount@ members of @srcSubresource@ or @dstSubresource@ are +-- 'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS', the +-- @layerCount@ member of @srcSubresource@ and @dstSubresource@ /must/ +-- match +-- +-- - #VUID-VkImageResolve-maintenance5-08802# If the +-- +-- feature is not enabled, the @layerCount@ member of @srcSubresource@ +-- or @dstSubresource@ /must/ not be +-- 'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS' +-- +-- - #VUID-VkImageResolve-layerCount-08804# If one of the @layerCount@ +-- members of @srcSubresource@ or @dstSubresource@ is +-- 'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS', the other +-- member /must/ be either +-- 'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS' or equal to the +-- @arrayLayers@ member of the 'Vulkan.Core10.Image.ImageCreateInfo' +-- used to create the image minus @baseArrayLayer@ -- -- == Valid Usage (Implicit) -- @@ -22395,9 +25438,6 @@ instance Zero ImageResolve where -- feature is enabled, then @renderArea@ /must/ equal the framebuffer -- dimensions. -- --- When multiview is enabled, the resolve operation at the end of a subpass --- applies to all views in the view mask. --- -- Note -- -- There /may/ be a performance cost for using a render area smaller than @@ -22422,6 +25462,14 @@ instance Zero ImageResolve where -- 'Vulkan.Core10.Pass.FramebufferCreateInfo' structure specified when -- creating @framebuffer@ -- +-- - #VUID-VkRenderPassBeginInfo-None-08996# If +-- 'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupRenderPassBeginInfo'::@deviceRenderAreaCount@ +-- is 0, @renderArea.extent.width@ /must/ be greater than 0 +-- +-- - #VUID-VkRenderPassBeginInfo-None-08997# If +-- 'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupRenderPassBeginInfo'::@deviceRenderAreaCount@ +-- is 0, @renderArea.extent.height@ /must/ be greater than 0 +-- -- - #VUID-VkRenderPassBeginInfo-pNext-02850# If the @pNext@ chain does -- not contain -- 'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupRenderPassBeginInfo' @@ -22602,7 +25650,38 @@ instance Zero ImageResolve where -- the corresponding value of -- 'Vulkan.Core10.Pass.AttachmentDescription'::@format@ in @renderPass@ -- --- - #VUID-VkRenderPassBeginInfo-framebuffer-03217# If @framebuffer@ was +-- - #VUID-VkRenderPassBeginInfo-framebuffer-09353# If @framebuffer@ was +-- created with a 'Vulkan.Core10.Pass.FramebufferCreateInfo'::@flags@ +-- value that included +-- 'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT', +-- and the +-- +-- is 'Vulkan.Core10.FundamentalTypes.FALSE', the format of the color +-- attachment for each subpass that includes an external format image +-- as a resolve attachment /must/ have a format equal to the value of +-- 'Vulkan.Extensions.VK_ANDROID_external_format_resolve.AndroidHardwareBufferFormatResolvePropertiesANDROID'::@colorAttachmentFormat@ +-- as returned by a call to +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.getAndroidHardwareBufferPropertiesANDROID' +-- for the Android hardware buffer that was used to create the image +-- view use as its resolve attachment +-- +-- - #VUID-VkRenderPassBeginInfo-framebuffer-09354# If @framebuffer@ was +-- created with a 'Vulkan.Core10.Pass.FramebufferCreateInfo'::@flags@ +-- value that included +-- 'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT', +-- each element of the @pAttachments@ member of a +-- 'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.RenderPassAttachmentBeginInfo' +-- structure included in the @pNext@ chain /must/ be a +-- 'Vulkan.Core10.Handles.ImageView' of an image created with a value +-- of +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- equal to +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- in the @pNext@ chain of the corresponding +-- 'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.AttachmentDescription2' +-- structure used to create @renderPass@ +-- +-- - #VUID-VkRenderPassBeginInfo-framebuffer-09047# If @framebuffer@ was -- created with a 'Vulkan.Core10.Pass.FramebufferCreateInfo'::@flags@ -- value that included -- 'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT', @@ -22613,7 +25692,13 @@ instance Zero ImageResolve where -- of 'Vulkan.Core10.Image.ImageCreateInfo'::@samples@ equal to the -- corresponding value of -- 'Vulkan.Core10.Pass.AttachmentDescription'::@samples@ in --- @renderPass@ +-- @renderPass@ , or +-- 'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT' if +-- @renderPass@ was created with +-- 'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT' +-- structure in the @pNext@ chain with +-- @multisampledRenderToSingleSampledEnable@ equal to +-- 'Vulkan.Core10.FundamentalTypes.TRUE' -- -- - #VUID-VkRenderPassBeginInfo-pNext-02869# If the @pNext@ chain -- includes diff --git a/src/Vulkan/Core10/DescriptorSet.hs b/src/Vulkan/Core10/DescriptorSet.hs index 0cd9fbc66..65703cde0 100644 --- a/src/Vulkan/Core10/DescriptorSet.hs +++ b/src/Vulkan/Core10/DescriptorSet.hs @@ -1008,19 +1008,6 @@ updateDescriptorSets device -- | VkDescriptorBufferInfo - Structure specifying descriptor buffer -- information -- --- = Members --- --- When setting @range@ to 'Vulkan.Core10.APIConstants.WHOLE_SIZE', the --- --- /must/ not be larger than the maximum range for the descriptor type --- ( --- or --- ). --- This means that 'Vulkan.Core10.APIConstants.WHOLE_SIZE' is not typically --- useful in the common case where uniform buffer descriptors are --- suballocated from a buffer that is much larger than --- @maxUniformBufferRange@. --- -- = Description -- -- For @@ -1079,6 +1066,19 @@ data DescriptorBufferInfo = DescriptorBufferInfo , -- | @range@ is the size in bytes that is used for this descriptor update, or -- 'Vulkan.Core10.APIConstants.WHOLE_SIZE' to use the range from @offset@ -- to the end of the buffer. + -- + -- Note + -- + -- When setting @range@ to 'Vulkan.Core10.APIConstants.WHOLE_SIZE', the + -- + -- /must/ not be larger than the maximum range for the descriptor type + -- ( + -- or + -- ). + -- This means that 'Vulkan.Core10.APIConstants.WHOLE_SIZE' is not typically + -- useful in the common case where uniform buffer descriptors are + -- suballocated from a buffer that is much larger than + -- @maxUniformBufferRange@. range :: DeviceSize } deriving (Typeable, Eq) @@ -1150,13 +1150,13 @@ instance Zero DescriptorBufferInfo where -- -- - #VUID-VkDescriptorImageInfo-descriptorType-06713# If the -- --- feature is not enabled and @descriptorType@ is +-- feature is not enabled or @descriptorType@ is not -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_IMAGE' -- then @imageView@ /must/ not be a 2D view created from a 3D image -- -- - #VUID-VkDescriptorImageInfo-descriptorType-06714# If the -- --- feature is not enabled and @descriptorType@ is +-- feature is not enabled or @descriptorType@ is not -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_SAMPLED_IMAGE' -- or -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER' @@ -1182,6 +1182,7 @@ instance Zero DescriptorBufferInfo where -- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_MUTABLE_FORMAT_BIT', -- and the @aspectMask@ of the @imageView@ /must/ be a valid -- +-- bit -- -- - #VUID-VkDescriptorImageInfo-mutableComparisonSamplers-04450# If the -- @VK_KHR_portability_subset@ extension is enabled, and @@ -1575,21 +1576,21 @@ instance Zero DescriptorImageInfo where -- less than or equal to -- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxStorageBufferRange@ -- --- - #VUID-VkWriteDescriptorSet-descriptorType-00334# If @descriptorType@ +-- - #VUID-VkWriteDescriptorSet-descriptorType-08765# If @descriptorType@ -- is -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER', --- the 'Vulkan.Core10.Handles.Buffer' that each element of --- @pTexelBufferView@ was created from /must/ have been created with +-- the @pTexelBufferView@ +-- +-- /must/ include -- 'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT' --- set -- --- - #VUID-VkWriteDescriptorSet-descriptorType-00335# If @descriptorType@ +-- - #VUID-VkWriteDescriptorSet-descriptorType-08766# If @descriptorType@ -- is -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER', --- the 'Vulkan.Core10.Handles.Buffer' that each element of --- @pTexelBufferView@ was created from /must/ have been created with +-- the @pTexelBufferView@ +-- +-- /must/ include -- 'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT' --- set -- -- - #VUID-VkWriteDescriptorSet-descriptorType-00336# If @descriptorType@ -- is @@ -1668,7 +1669,7 @@ instance Zero DescriptorImageInfo where -- the @imageView@ member of each element of @pImageInfo@ /must/ have -- either been created without a -- 'Vulkan.Extensions.VK_EXT_image_view_min_lod.ImageViewMinLodCreateInfoEXT' --- present in the @pNext@ chain or with a +-- included in the @pNext@ chain or with a -- 'Vulkan.Extensions.VK_EXT_image_view_min_lod.ImageViewMinLodCreateInfoEXT'::@minLod@ -- of @0.0@ -- @@ -2717,7 +2718,7 @@ instance Zero DescriptorPoolSize where -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_MUTABLE_EXT', a -- 'Vulkan.Extensions.VK_EXT_mutable_descriptor_type.MutableDescriptorTypeCreateInfoEXT' -- struct in the @pNext@ chain /can/ be used to specify which mutable --- descriptor types /can/ be allocated from the pool. If present in the +-- descriptor types /can/ be allocated from the pool. If included in the -- @pNext@ chain, -- 'Vulkan.Extensions.VK_EXT_mutable_descriptor_type.MutableDescriptorTypeCreateInfoEXT'::@pMutableDescriptorTypeLists@[i] -- specifies which kind of @@ -2757,8 +2758,20 @@ instance Zero DescriptorPoolSize where -- -- == Valid Usage -- --- - #VUID-VkDescriptorPoolCreateInfo-maxSets-00301# @maxSets@ /must/ be --- greater than @0@ +-- - #VUID-VkDescriptorPoolCreateInfo-descriptorPoolOverallocation-09227# +-- If the +-- +-- feature is not enabled, or @flags@ does not have +-- 'Vulkan.Core10.Enums.DescriptorPoolCreateFlagBits.DESCRIPTOR_POOL_CREATE_ALLOW_OVERALLOCATION_SETS_BIT_NV' +-- set, @maxSets@ /must/ be greater than @0@ +-- +-- - #VUID-VkDescriptorPoolCreateInfo-flags-09228# If @flags@ has the +-- 'Vulkan.Core10.Enums.DescriptorPoolCreateFlagBits.DESCRIPTOR_POOL_CREATE_ALLOW_OVERALLOCATION_SETS_BIT_NV' +-- or +-- 'Vulkan.Core10.Enums.DescriptorPoolCreateFlagBits.DESCRIPTOR_POOL_CREATE_ALLOW_OVERALLOCATION_POOLS_BIT_NV' +-- bits set, then +-- +-- /must/ be enabled -- -- - #VUID-VkDescriptorPoolCreateInfo-flags-04607# If @flags@ has the -- 'Vulkan.Core10.Enums.DescriptorPoolCreateFlagBits.DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_EXT' @@ -2923,6 +2936,20 @@ instance es ~ '[] => Zero (DescriptorPoolCreateInfo es) where -- 'Vulkan.Core10.Enums.DescriptorPoolCreateFlagBits.DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT' -- flag set -- +-- - #VUID-VkDescriptorSetAllocateInfo-pSetLayouts-09380# If +-- @pSetLayouts@[i] was created with an element of @pBindingFlags@ that +-- includes +-- 'Vulkan.Core12.Enums.DescriptorBindingFlagBits.DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT', +-- and +-- 'Vulkan.Core12.Promoted_From_VK_EXT_descriptor_indexing.DescriptorSetVariableDescriptorCountAllocateInfo' +-- is included in the @pNext@ chain, and +-- 'Vulkan.Core12.Promoted_From_VK_EXT_descriptor_indexing.DescriptorSetVariableDescriptorCountAllocateInfo'::@descriptorSetCount@ +-- is not zero, then +-- slink::VkDescriptorSetVariableDescriptorCountAllocateInfo::pDescriptorCounts[i] +-- /must/ be less than or equal to +-- slink::VkDescriptorSetLayoutBinding::descriptorCount for the +-- corresponding binding used to create @pSetLayouts@[i] +-- -- - #VUID-VkDescriptorSetAllocateInfo-pSetLayouts-04610# If any element -- of @pSetLayouts@ was created with the -- 'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_EXT' diff --git a/src/Vulkan/Core10/Device.hs b/src/Vulkan/Core10/Device.hs index 8dd73c002..12a4c11ae 100644 --- a/src/Vulkan/Core10/Device.hs +++ b/src/Vulkan/Core10/Device.hs @@ -95,6 +95,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_astc_decode_mode (PhysicalDeviceA import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_acceleration_structure (PhysicalDeviceAccelerationStructureFeaturesKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_device_address_binding_report (PhysicalDeviceAddressBindingReportFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_SEC_amigo_profiling (PhysicalDeviceAmigoProfilingFeaturesSEC) +import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state (PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_attachment_feedback_loop_layout (PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_blend_operation_advanced (PhysicalDeviceBlendOperationAdvancedFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_border_color_swizzle (PhysicalDeviceBorderColorSwizzleFeaturesEXT) @@ -105,28 +106,38 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_AMD_device_coherent_memory (PhysicalD 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_KHR_cooperative_matrix (PhysicalDeviceCooperativeMatrixFeaturesKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_cooperative_matrix (PhysicalDeviceCooperativeMatrixFeaturesNV) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_copy_memory_indirect (PhysicalDeviceCopyMemoryIndirectFeaturesNV) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_corner_sampled_image (PhysicalDeviceCornerSampledImageFeaturesNV) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_coverage_reduction_mode (PhysicalDeviceCoverageReductionModeFeaturesNV) +import {-# SOURCE #-} Vulkan.Extensions.VK_QCOM_filter_cubic_clamp (PhysicalDeviceCubicClampFeaturesQCOM) +import {-# SOURCE #-} Vulkan.Extensions.VK_QCOM_filter_cubic_weights (PhysicalDeviceCubicWeightsFeaturesQCOM) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_custom_border_color (PhysicalDeviceCustomBorderColorFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_dedicated_allocation_image_aliasing (PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV) +import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_depth_bias_control (PhysicalDeviceDepthBiasControlFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_depth_clamp_zero_one (PhysicalDeviceDepthClampZeroOneFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_depth_clip_control (PhysicalDeviceDepthClipControlFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_depth_clip_enable (PhysicalDeviceDepthClipEnableFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_descriptor_buffer (PhysicalDeviceDescriptorBufferFeaturesEXT) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_EXT_descriptor_indexing (PhysicalDeviceDescriptorIndexingFeatures) +import {-# SOURCE #-} Vulkan.Extensions.VK_NV_descriptor_pool_overallocation (PhysicalDeviceDescriptorPoolOverallocationFeaturesNV) import {-# SOURCE #-} Vulkan.Extensions.VK_VALVE_descriptor_set_host_mapping (PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE) +import {-# SOURCE #-} Vulkan.Extensions.VK_NV_device_generated_commands_compute (PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_device_generated_commands (PhysicalDeviceDeviceGeneratedCommandsFeaturesNV) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_device_memory_report (PhysicalDeviceDeviceMemoryReportFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_device_diagnostics_config (PhysicalDeviceDiagnosticsConfigFeaturesNV) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_displacement_micromap (PhysicalDeviceDisplacementMicromapFeaturesNV) import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering (PhysicalDeviceDynamicRenderingFeatures) +import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_dynamic_rendering_unused_attachments (PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_scissor_exclusive (PhysicalDeviceExclusiveScissorFeaturesNV) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_extended_dynamic_state2 (PhysicalDeviceExtendedDynamicState2FeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_extended_dynamic_state3 (PhysicalDeviceExtendedDynamicState3FeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_extended_dynamic_state (PhysicalDeviceExtendedDynamicStateFeaturesEXT) +import {-# SOURCE #-} Vulkan.Extensions.VK_NV_extended_sparse_address_space (PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV) +import {-# SOURCE #-} Vulkan.Extensions.VK_ANDROID_external_format_resolve (PhysicalDeviceExternalFormatResolveFeaturesANDROID) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_external_memory_rdma (PhysicalDeviceExternalMemoryRDMAFeaturesNV) +import {-# SOURCE #-} Vulkan.Extensions.VK_QNX_external_memory_screen_buffer (PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_device_fault (PhysicalDeviceFaultFeaturesEXT) import Vulkan.Core10.DeviceInitialization (PhysicalDeviceFeatures) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2 (PhysicalDeviceFeatures2) @@ -137,12 +148,15 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_fragment_shader_barycentric (Phys import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_fragment_shader_interlock (PhysicalDeviceFragmentShaderInterlockFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_fragment_shading_rate_enums (PhysicalDeviceFragmentShadingRateEnumsFeaturesNV) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_fragment_shading_rate (PhysicalDeviceFragmentShadingRateFeaturesKHR) +import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_frame_boundary (PhysicalDeviceFrameBoundaryFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_global_priority (PhysicalDeviceGlobalPriorityQueryFeaturesKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_graphics_pipeline_library (PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT) +import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_host_image_copy (PhysicalDeviceHostImageCopyFeaturesEXT) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_EXT_host_query_reset (PhysicalDeviceHostQueryResetFeatures) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_image_2d_view_of_3d (PhysicalDeviceImage2DViewOf3DFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_image_compression_control (PhysicalDeviceImageCompressionControlFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_image_compression_control_swapchain (PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT) +import {-# SOURCE #-} Vulkan.Extensions.VK_QCOM_image_processing2 (PhysicalDeviceImageProcessing2FeaturesQCOM) import {-# SOURCE #-} Vulkan.Extensions.VK_QCOM_image_processing (PhysicalDeviceImageProcessingFeaturesQCOM) import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_image_robustness (PhysicalDeviceImageRobustnessFeatures) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_image_sliced_view_of_3d (PhysicalDeviceImageSlicedViewOf3DFeaturesEXT) @@ -156,6 +170,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_legacy_dithering (PhysicalDeviceL import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_line_rasterization (PhysicalDeviceLineRasterizationFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_linear_color_attachment (PhysicalDeviceLinearColorAttachmentFeaturesNV) import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_maintenance4 (PhysicalDeviceMaintenance4Features) +import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_maintenance5 (PhysicalDeviceMaintenance5FeaturesKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_memory_decompression (PhysicalDeviceMemoryDecompressionFeaturesNV) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_memory_priority (PhysicalDeviceMemoryPriorityFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_mesh_shader (PhysicalDeviceMeshShaderFeaturesEXT) @@ -166,6 +181,7 @@ import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_multiview (PhysicalDevi import {-# SOURCE #-} Vulkan.Extensions.VK_QCOM_multiview_per_view_render_areas (PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM) import {-# SOURCE #-} Vulkan.Extensions.VK_QCOM_multiview_per_view_viewports (PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_mutable_descriptor_type (PhysicalDeviceMutableDescriptorTypeFeaturesEXT) +import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_nested_command_buffer (PhysicalDeviceNestedCommandBufferFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_non_seamless_cube_map (PhysicalDeviceNonSeamlessCubeMapFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_opacity_micromap (PhysicalDeviceOpacityMicromapFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_optical_flow (PhysicalDeviceOpticalFlowFeaturesNV) @@ -193,6 +209,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_NV_ray_tracing_invocation_reorder (Ph import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_ray_tracing_maintenance1 (PhysicalDeviceRayTracingMaintenance1FeaturesKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_ray_tracing_motion_blur (PhysicalDeviceRayTracingMotionBlurFeaturesNV) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_ray_tracing_pipeline (PhysicalDeviceRayTracingPipelineFeaturesKHR) +import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_ray_tracing_position_fetch (PhysicalDeviceRayTracingPositionFetchFeaturesKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_representative_fragment_test (PhysicalDeviceRepresentativeFragmentTestFeaturesNV) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_robustness2 (PhysicalDeviceRobustness2FeaturesEXT) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion (PhysicalDeviceSamplerYcbcrConversionFeatures) @@ -206,6 +223,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_ARM_shader_core_builtins (PhysicalDev import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_shader_demote_to_helper_invocation (PhysicalDeviceShaderDemoteToHelperInvocationFeatures) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_shader_draw_parameters (PhysicalDeviceShaderDrawParametersFeatures) import {-# SOURCE #-} Vulkan.Extensions.VK_AMD_shader_early_and_late_fragment_tests (PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD) +import {-# SOURCE #-} Vulkan.Extensions.VK_AMDX_shader_enqueue (PhysicalDeviceShaderEnqueueFeaturesAMDX) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_shader_float16_int8 (PhysicalDeviceShaderFloat16Int8Features) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_shader_image_atomic_int64 (PhysicalDeviceShaderImageAtomicInt64FeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_shader_image_footprint (PhysicalDeviceShaderImageFootprintFeaturesNV) @@ -239,6 +257,7 @@ import {-# SOURCE #-} Vulkan.Core13 (PhysicalDeviceVulkan13Features) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_vulkan_memory_model (PhysicalDeviceVulkanMemoryModelFeatures) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_workgroup_memory_explicit_layout (PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_ycbcr_2plane_444_formats (PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT) +import {-# SOURCE #-} Vulkan.Extensions.VK_QCOM_ycbcr_degamma (PhysicalDeviceYcbcrDegammaFeaturesQCOM) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_ycbcr_image_arrays (PhysicalDeviceYcbcrImageArraysFeaturesEXT) import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_zero_initialize_workgroup_memory (PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures) import Vulkan.Core10.Handles (PhysicalDevice_T) @@ -416,7 +435,7 @@ foreign import ccall -- -- == Valid Usage -- --- - #VUID-vkDestroyDevice-device-00378# All child objects created on +-- - #VUID-vkDestroyDevice-device-05137# All child objects created on -- @device@ /must/ have been destroyed prior to destroying @device@ -- -- - #VUID-vkDestroyDevice-device-00379# If @@ -620,8 +639,8 @@ instance es ~ '[] => Zero (DeviceQueueCreateInfo es) where -- -- - #VUID-VkDeviceCreateInfo-queueFamilyIndex-02802# The -- @queueFamilyIndex@ member of each element of @pQueueCreateInfos@ --- /must/ be unique within @pQueueCreateInfos@, except that two members --- can share the same @queueFamilyIndex@ if one describes +-- /must/ be unique within @pQueueCreateInfos@ , except that two +-- members can share the same @queueFamilyIndex@ if one describes -- protected-capable queues and one describes queues that are not -- protected-capable -- @@ -853,6 +872,7 @@ instance es ~ '[] => Zero (DeviceQueueCreateInfo es) where -- 'Vulkan.Extensions.VK_KHR_acceleration_structure.PhysicalDeviceAccelerationStructureFeaturesKHR', -- 'Vulkan.Extensions.VK_EXT_device_address_binding_report.PhysicalDeviceAddressBindingReportFeaturesEXT', -- 'Vulkan.Extensions.VK_SEC_amigo_profiling.PhysicalDeviceAmigoProfilingFeaturesSEC', +-- 'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT', -- 'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_layout.PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT', -- 'Vulkan.Extensions.VK_EXT_blend_operation_advanced.PhysicalDeviceBlendOperationAdvancedFeaturesEXT', -- 'Vulkan.Extensions.VK_EXT_border_color_swizzle.PhysicalDeviceBorderColorSwizzleFeaturesEXT', @@ -863,28 +883,38 @@ instance es ~ '[] => Zero (DeviceQueueCreateInfo es) where -- '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_KHR_cooperative_matrix.PhysicalDeviceCooperativeMatrixFeaturesKHR', -- 'Vulkan.Extensions.VK_NV_cooperative_matrix.PhysicalDeviceCooperativeMatrixFeaturesNV', -- 'Vulkan.Extensions.VK_NV_copy_memory_indirect.PhysicalDeviceCopyMemoryIndirectFeaturesNV', -- 'Vulkan.Extensions.VK_NV_corner_sampled_image.PhysicalDeviceCornerSampledImageFeaturesNV', -- 'Vulkan.Extensions.VK_NV_coverage_reduction_mode.PhysicalDeviceCoverageReductionModeFeaturesNV', +-- 'Vulkan.Extensions.VK_QCOM_filter_cubic_clamp.PhysicalDeviceCubicClampFeaturesQCOM', +-- 'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.PhysicalDeviceCubicWeightsFeaturesQCOM', -- 'Vulkan.Extensions.VK_EXT_custom_border_color.PhysicalDeviceCustomBorderColorFeaturesEXT', -- 'Vulkan.Extensions.VK_NV_dedicated_allocation_image_aliasing.PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV', +-- 'Vulkan.Extensions.VK_EXT_depth_bias_control.PhysicalDeviceDepthBiasControlFeaturesEXT', -- 'Vulkan.Extensions.VK_EXT_depth_clamp_zero_one.PhysicalDeviceDepthClampZeroOneFeaturesEXT', -- 'Vulkan.Extensions.VK_EXT_depth_clip_control.PhysicalDeviceDepthClipControlFeaturesEXT', -- 'Vulkan.Extensions.VK_EXT_depth_clip_enable.PhysicalDeviceDepthClipEnableFeaturesEXT', -- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.PhysicalDeviceDescriptorBufferFeaturesEXT', -- 'Vulkan.Core12.Promoted_From_VK_EXT_descriptor_indexing.PhysicalDeviceDescriptorIndexingFeatures', +-- 'Vulkan.Extensions.VK_NV_descriptor_pool_overallocation.PhysicalDeviceDescriptorPoolOverallocationFeaturesNV', -- 'Vulkan.Extensions.VK_VALVE_descriptor_set_host_mapping.PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE', +-- 'Vulkan.Extensions.VK_NV_device_generated_commands_compute.PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV', -- 'Vulkan.Extensions.VK_NV_device_generated_commands.PhysicalDeviceDeviceGeneratedCommandsFeaturesNV', -- 'Vulkan.Extensions.VK_EXT_device_memory_report.PhysicalDeviceDeviceMemoryReportFeaturesEXT', -- 'Vulkan.Extensions.VK_NV_device_diagnostics_config.PhysicalDeviceDiagnosticsConfigFeaturesNV', -- 'Vulkan.Extensions.VK_NV_displacement_micromap.PhysicalDeviceDisplacementMicromapFeaturesNV', -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PhysicalDeviceDynamicRenderingFeatures', +-- 'Vulkan.Extensions.VK_EXT_dynamic_rendering_unused_attachments.PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT', -- 'Vulkan.Extensions.VK_NV_scissor_exclusive.PhysicalDeviceExclusiveScissorFeaturesNV', -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.PhysicalDeviceExtendedDynamicState2FeaturesEXT', -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.PhysicalDeviceExtendedDynamicState3FeaturesEXT', -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.PhysicalDeviceExtendedDynamicStateFeaturesEXT', +-- 'Vulkan.Extensions.VK_NV_extended_sparse_address_space.PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV', +-- 'Vulkan.Extensions.VK_ANDROID_external_format_resolve.PhysicalDeviceExternalFormatResolveFeaturesANDROID', -- 'Vulkan.Extensions.VK_NV_external_memory_rdma.PhysicalDeviceExternalMemoryRDMAFeaturesNV', +-- 'Vulkan.Extensions.VK_QNX_external_memory_screen_buffer.PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX', -- 'Vulkan.Extensions.VK_EXT_device_fault.PhysicalDeviceFaultFeaturesEXT', -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2', -- 'Vulkan.Extensions.VK_EXT_fragment_density_map2.PhysicalDeviceFragmentDensityMap2FeaturesEXT', @@ -894,12 +924,15 @@ instance es ~ '[] => Zero (DeviceQueueCreateInfo es) where -- 'Vulkan.Extensions.VK_EXT_fragment_shader_interlock.PhysicalDeviceFragmentShaderInterlockFeaturesEXT', -- 'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.PhysicalDeviceFragmentShadingRateEnumsFeaturesNV', -- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PhysicalDeviceFragmentShadingRateFeaturesKHR', +-- 'Vulkan.Extensions.VK_EXT_frame_boundary.PhysicalDeviceFrameBoundaryFeaturesEXT', -- 'Vulkan.Extensions.VK_KHR_global_priority.PhysicalDeviceGlobalPriorityQueryFeaturesKHR', -- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT', +-- 'Vulkan.Extensions.VK_EXT_host_image_copy.PhysicalDeviceHostImageCopyFeaturesEXT', -- 'Vulkan.Core12.Promoted_From_VK_EXT_host_query_reset.PhysicalDeviceHostQueryResetFeatures', -- 'Vulkan.Extensions.VK_EXT_image_2d_view_of_3d.PhysicalDeviceImage2DViewOf3DFeaturesEXT', -- 'Vulkan.Extensions.VK_EXT_image_compression_control.PhysicalDeviceImageCompressionControlFeaturesEXT', -- 'Vulkan.Extensions.VK_EXT_image_compression_control_swapchain.PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT', +-- 'Vulkan.Extensions.VK_QCOM_image_processing2.PhysicalDeviceImageProcessing2FeaturesQCOM', -- 'Vulkan.Extensions.VK_QCOM_image_processing.PhysicalDeviceImageProcessingFeaturesQCOM', -- 'Vulkan.Core13.Promoted_From_VK_EXT_image_robustness.PhysicalDeviceImageRobustnessFeatures', -- 'Vulkan.Extensions.VK_EXT_image_sliced_view_of_3d.PhysicalDeviceImageSlicedViewOf3DFeaturesEXT', @@ -913,6 +946,7 @@ instance es ~ '[] => Zero (DeviceQueueCreateInfo es) where -- 'Vulkan.Extensions.VK_EXT_line_rasterization.PhysicalDeviceLineRasterizationFeaturesEXT', -- 'Vulkan.Extensions.VK_NV_linear_color_attachment.PhysicalDeviceLinearColorAttachmentFeaturesNV', -- 'Vulkan.Core13.Promoted_From_VK_KHR_maintenance4.PhysicalDeviceMaintenance4Features', +-- 'Vulkan.Extensions.VK_KHR_maintenance5.PhysicalDeviceMaintenance5FeaturesKHR', -- 'Vulkan.Extensions.VK_NV_memory_decompression.PhysicalDeviceMemoryDecompressionFeaturesNV', -- 'Vulkan.Extensions.VK_EXT_memory_priority.PhysicalDeviceMemoryPriorityFeaturesEXT', -- 'Vulkan.Extensions.VK_EXT_mesh_shader.PhysicalDeviceMeshShaderFeaturesEXT', @@ -923,6 +957,7 @@ instance es ~ '[] => Zero (DeviceQueueCreateInfo es) where -- 'Vulkan.Extensions.VK_QCOM_multiview_per_view_render_areas.PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM', -- 'Vulkan.Extensions.VK_QCOM_multiview_per_view_viewports.PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM', -- 'Vulkan.Extensions.VK_EXT_mutable_descriptor_type.PhysicalDeviceMutableDescriptorTypeFeaturesEXT', +-- 'Vulkan.Extensions.VK_EXT_nested_command_buffer.PhysicalDeviceNestedCommandBufferFeaturesEXT', -- 'Vulkan.Extensions.VK_EXT_non_seamless_cube_map.PhysicalDeviceNonSeamlessCubeMapFeaturesEXT', -- 'Vulkan.Extensions.VK_EXT_opacity_micromap.PhysicalDeviceOpacityMicromapFeaturesEXT', -- 'Vulkan.Extensions.VK_NV_optical_flow.PhysicalDeviceOpticalFlowFeaturesNV', @@ -950,6 +985,7 @@ instance es ~ '[] => Zero (DeviceQueueCreateInfo es) where -- 'Vulkan.Extensions.VK_KHR_ray_tracing_maintenance1.PhysicalDeviceRayTracingMaintenance1FeaturesKHR', -- 'Vulkan.Extensions.VK_NV_ray_tracing_motion_blur.PhysicalDeviceRayTracingMotionBlurFeaturesNV', -- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.PhysicalDeviceRayTracingPipelineFeaturesKHR', +-- 'Vulkan.Extensions.VK_KHR_ray_tracing_position_fetch.PhysicalDeviceRayTracingPositionFetchFeaturesKHR', -- 'Vulkan.Extensions.VK_NV_representative_fragment_test.PhysicalDeviceRepresentativeFragmentTestFeaturesNV', -- 'Vulkan.Extensions.VK_EXT_robustness2.PhysicalDeviceRobustness2FeaturesEXT', -- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.PhysicalDeviceSamplerYcbcrConversionFeatures', @@ -963,6 +999,7 @@ instance es ~ '[] => Zero (DeviceQueueCreateInfo es) where -- 'Vulkan.Core13.Promoted_From_VK_EXT_shader_demote_to_helper_invocation.PhysicalDeviceShaderDemoteToHelperInvocationFeatures', -- 'Vulkan.Core11.Promoted_From_VK_KHR_shader_draw_parameters.PhysicalDeviceShaderDrawParametersFeatures', -- 'Vulkan.Extensions.VK_AMD_shader_early_and_late_fragment_tests.PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD', +-- 'Vulkan.Extensions.VK_AMDX_shader_enqueue.PhysicalDeviceShaderEnqueueFeaturesAMDX', -- 'Vulkan.Core12.Promoted_From_VK_KHR_shader_float16_int8.PhysicalDeviceShaderFloat16Int8Features', -- 'Vulkan.Extensions.VK_EXT_shader_image_atomic_int64.PhysicalDeviceShaderImageAtomicInt64FeaturesEXT', -- 'Vulkan.Extensions.VK_NV_shader_image_footprint.PhysicalDeviceShaderImageFootprintFeaturesNV', @@ -996,6 +1033,7 @@ instance es ~ '[] => Zero (DeviceQueueCreateInfo es) where -- '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_QCOM_ycbcr_degamma.PhysicalDeviceYcbcrDegammaFeaturesQCOM', -- 'Vulkan.Extensions.VK_EXT_ycbcr_image_arrays.PhysicalDeviceYcbcrImageArraysFeaturesEXT', -- or -- 'Vulkan.Core13.Promoted_From_VK_KHR_zero_initialize_workgroup_memory.PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures' @@ -1079,12 +1117,26 @@ instance Extensible DeviceCreateInfo where getNext DeviceCreateInfo{..} = next extends :: forall e b proxy. Typeable e => proxy e -> (Extends DeviceCreateInfo e => b) -> Maybe b extends _ f + | Just Refl <- eqT @e @PhysicalDeviceExternalFormatResolveFeaturesANDROID = Just f + | Just Refl <- eqT @e @PhysicalDeviceDescriptorPoolOverallocationFeaturesNV = Just f + | Just Refl <- eqT @e @PhysicalDeviceImageProcessing2FeaturesQCOM = Just f + | Just Refl <- eqT @e @PhysicalDeviceCubicWeightsFeaturesQCOM = Just f + | Just Refl <- eqT @e @PhysicalDeviceYcbcrDegammaFeaturesQCOM = Just f + | Just Refl <- eqT @e @PhysicalDeviceCubicClampFeaturesQCOM = Just f + | Just Refl <- eqT @e @PhysicalDeviceShaderEnqueueFeaturesAMDX = Just f + | Just Refl <- eqT @e @PhysicalDeviceCooperativeMatrixFeaturesKHR = Just f + | Just Refl <- eqT @e @PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX = Just f | Just Refl <- eqT @e @PhysicalDeviceShaderTileImageFeaturesEXT = Just f | Just Refl <- eqT @e @PhysicalDeviceShaderObjectFeaturesEXT = Just f | Just Refl <- eqT @e @PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM = Just f + | Just Refl <- eqT @e @PhysicalDeviceRayTracingPositionFetchFeaturesKHR = Just f | Just Refl <- eqT @e @PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM = Just f + | Just Refl <- eqT @e @PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV = Just f | Just Refl <- eqT @e @PhysicalDeviceRayTracingInvocationReorderFeaturesNV = Just f + | Just Refl <- eqT @e @PhysicalDeviceDepthBiasControlFeaturesEXT = Just f | Just Refl <- eqT @e @PhysicalDeviceSwapchainMaintenance1FeaturesEXT = Just f + | Just Refl <- eqT @e @PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT = Just f + | Just Refl <- eqT @e @PhysicalDeviceFrameBoundaryFeaturesEXT = Just f | Just Refl <- eqT @e @PhysicalDeviceShaderCoreBuiltinsFeaturesARM = Just f | Just Refl <- eqT @e @PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT = Just f | Just Refl <- eqT @e @PhysicalDeviceFaultFeaturesEXT = Just f @@ -1105,6 +1157,7 @@ instance Extensible DeviceCreateInfo where | Just Refl <- eqT @e @PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT = Just f | Just Refl <- eqT @e @PhysicalDeviceImageCompressionControlFeaturesEXT = Just f | Just Refl <- eqT @e @PhysicalDeviceShaderModuleIdentifierFeaturesEXT = Just f + | Just Refl <- eqT @e @PhysicalDeviceNestedCommandBufferFeaturesEXT = Just f | Just Refl <- eqT @e @PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE = Just f | Just Refl <- eqT @e @PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT = Just f | Just Refl <- eqT @e @PhysicalDeviceLinearColorAttachmentFeaturesNV = Just f @@ -1123,12 +1176,14 @@ instance Extensible DeviceCreateInfo where | Just Refl <- eqT @e @PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT = Just f | Just Refl <- eqT @e @PhysicalDeviceLegacyDitheringFeaturesEXT = Just f | Just Refl <- eqT @e @PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT = Just f + | Just Refl <- eqT @e @PhysicalDeviceHostImageCopyFeaturesEXT = Just f | Just Refl <- eqT @e @PhysicalDeviceSynchronization2Features = Just f | Just Refl <- eqT @e @PhysicalDeviceColorWriteEnableFeaturesEXT = Just f | Just Refl <- eqT @e @PhysicalDeviceExternalMemoryRDMAFeaturesNV = Just f | Just Refl <- eqT @e @PhysicalDeviceVertexInputDynamicStateFeaturesEXT = Just f | Just Refl <- eqT @e @PhysicalDeviceDepthClipControlFeaturesEXT = Just f | Just Refl <- eqT @e @PhysicalDeviceMutableDescriptorTypeFeaturesEXT = Just f + | Just Refl <- eqT @e @PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT = Just f | Just Refl <- eqT @e @PhysicalDeviceImageSlicedViewOf3DFeaturesEXT = Just f | Just Refl <- eqT @e @PhysicalDeviceImage2DViewOf3DFeaturesEXT = Just f | Just Refl <- eqT @e @PhysicalDeviceFragmentShadingRateEnumsFeaturesNV = Just f @@ -1219,6 +1274,7 @@ instance Extensible DeviceCreateInfo where | Just Refl <- eqT @e @PhysicalDeviceHostQueryResetFeatures = Just f | Just Refl <- eqT @e @PhysicalDeviceShaderFloat16Int8Features = Just f | Just Refl <- eqT @e @PhysicalDeviceShaderDrawParametersFeatures = Just f + | Just Refl <- eqT @e @PhysicalDeviceMaintenance5FeaturesKHR = Just f | Just Refl <- eqT @e @PhysicalDeviceMaintenance4Features = Just f | Just Refl <- eqT @e @PhysicalDeviceInlineUniformBlockFeatures = Just f | Just Refl <- eqT @e @PhysicalDeviceMultiDrawFeaturesEXT = Just f @@ -1235,6 +1291,7 @@ instance Extensible DeviceCreateInfo where | Just Refl <- eqT @e @(PhysicalDeviceFeatures2 '[]) = Just f | Just Refl <- eqT @e @PhysicalDevicePrivateDataFeatures = Just f | Just Refl <- eqT @e @DevicePrivateDataCreateInfo = Just f + | Just Refl <- eqT @e @PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV = Just f | Just Refl <- eqT @e @PhysicalDeviceDeviceGeneratedCommandsFeaturesNV = Just f | otherwise = Nothing diff --git a/src/Vulkan/Core10/DeviceInitialization.hs b/src/Vulkan/Core10/DeviceInitialization.hs index 9d1a18ccd..4c0d1136a 100644 --- a/src/Vulkan/Core10/DeviceInitialization.hs +++ b/src/Vulkan/Core10/DeviceInitialization.hs @@ -572,10 +572,12 @@ foreign import ccall -- [2] -- Device-level commands which are part of the core version specified -- by 'ApplicationInfo'::@apiVersion@ when creating the instance will --- always return a valid function pointer. Core commands beyond that --- version which are supported by the implementation /may/ either --- return @NULL@ or a function pointer, though the function pointer --- /must/ not be called. +-- always return a valid function pointer. If the +-- +-- feature is enabled, core commands beyond that version which are +-- supported by the implementation will return @NULL@, otherwise the +-- implementation /may/ either return @NULL@ or a function pointer. If +-- a function pointer is returned, it /must/ not be called. -- -- [3] -- In this function, device-level excludes all physical-device-level @@ -1005,6 +1007,18 @@ foreign import ccall -- the limitations for @usage2@ and @flags2@, for all values of @format@, -- @type@, and @tiling@. -- +-- If @VK_EXT_host_image_copy@ is supported, @usage@ includes +-- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_SAMPLED_BIT', and +-- @flags@ does not include either of +-- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SPARSE_BINDING_BIT', +-- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SPARSE_RESIDENCY_BIT', +-- or +-- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SPARSE_ALIASED_BIT', +-- then the result of calls to 'getPhysicalDeviceImageFormatProperties' +-- with identical parameters except for the inclusion of +-- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_HOST_TRANSFER_BIT_EXT' +-- in @usage@ /must/ be identical. +-- -- == Return Codes -- -- [] @@ -1318,7 +1332,7 @@ instance Zero PhysicalDeviceProperties where -- 'Vulkan.Core10.Enums.Result.ERROR_INCOMPATIBLE_DRIVER' if @apiVersion@ -- was larger than 1.0. Implementations that support Vulkan 1.1 or later -- /must/ not return 'Vulkan.Core10.Enums.Result.ERROR_INCOMPATIBLE_DRIVER' --- for any value of @apiVersion@. +-- for any value of @apiVersion@ . -- -- Note -- @@ -1411,8 +1425,8 @@ data ApplicationInfo = ApplicationInfo -- application is designed to use, encoded as described in -- . -- The patch version number specified in @apiVersion@ is ignored when - -- creating an instance object. Only the major and minor versions of the - -- instance /must/ match those requested in @apiVersion@. + -- creating an instance object. The variant version of the instance /must/ + -- match that requested in @apiVersion@. apiVersion :: Word32 } deriving (Typeable) @@ -1479,7 +1493,7 @@ instance Zero ApplicationInfo where -- = Description -- -- To capture events that occur while creating or destroying an instance, --- an application can link a +-- an application /can/ link a -- 'Vulkan.Extensions.VK_EXT_debug_report.DebugReportCallbackCreateInfoEXT' -- structure or a -- 'Vulkan.Extensions.VK_EXT_debug_utils.DebugUtilsMessengerCreateInfoEXT' @@ -2555,12 +2569,20 @@ data PhysicalDeviceFeatures = PhysicalDeviceFeatures -- @OpConstantNull@ are treated as pointing to a zero-sized object, -- so all accesses through such pointers are considered to be out -- of bounds. Buffer accesses through buffer device addresses are - -- not bounds-checked. If the - -- + -- not bounds-checked. + -- + -- - If the + -- -- feature is not enabled, then accesses using -- @OpCooperativeMatrixLoadNV@ and @OpCooperativeMatrixStoreNV@ -- /may/ not be bounds-checked. -- + -- - If the + -- + -- feature is not enabled, then accesses using + -- @OpCooperativeMatrixLoadKHR@ and @OpCooperativeMatrixStoreKHR@ + -- /may/ not be bounds-checked. + -- -- Note -- -- If a SPIR-V @OpLoad@ instruction loads a structure and the tail @@ -3946,7 +3968,17 @@ data PhysicalDeviceLimits = PhysicalDeviceLimits , -- | #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 sizes of all sparse - -- resources, regardless of whether any memory is bound to them. + -- resources, regardless of whether any memory is bound to them. If the + -- + -- feature is enabled, then the difference between + -- + -- and @sparseAddressSpaceSize@ can also be used, by + -- 'Vulkan.Core10.Handles.Image' created with the @usage@ member of + -- 'Vulkan.Core10.Image.ImageCreateInfo' only containing bits in + -- + -- and 'Vulkan.Core10.Handles.Buffer' created with the @usage@ member of + -- 'Vulkan.Core10.Buffer.BufferCreateInfo' only containing bits in + -- . sparseAddressSpaceSize :: DeviceSize , -- | #limits-maxBoundDescriptorSets# @maxBoundDescriptorSets@ is the maximum -- number of descriptor sets that /can/ be simultaneously used by a @@ -4312,21 +4344,7 @@ data PhysicalDeviceLimits = PhysicalDeviceLimits , -- | #limits-maxComputeSharedMemorySize# @maxComputeSharedMemorySize@ is the -- maximum total storage size, in bytes, available for variables declared -- with the @Workgroup@ storage class in shader modules (or with the - -- @shared@ storage qualifier in GLSL) in the compute shader stage. When - -- variables declared with the @Workgroup@ storage class are explicitly - -- laid out (hence they are also decorated with @Block@), the amount of - -- storage consumed is the size of the largest Block variable, not counting - -- any padding at the end. The amount of storage consumed by the non-Block - -- variables declared with the @Workgroup@ storage class is - -- implementation-dependent. However, the amount of storage consumed may - -- not exceed the largest block size that would be obtained if all active - -- non-Block variables declared with @Workgroup@ storage class were - -- assigned offsets in an arbitrary order by successively taking the - -- smallest valid offset according to the - -- - -- rules, and with @Boolean@ values considered as 32-bit integer values for - -- the purpose of this calculation. (This is equivalent to using the GLSL - -- std430 layout rules.) + -- @shared@ storage qualifier in GLSL) in the compute shader stage. maxComputeSharedMemorySize :: Word32 , -- | #limits-maxComputeWorkGroupCount# @maxComputeWorkGroupCount@[3] is the -- maximum number of local workgroups that /can/ be dispatched by a single @@ -4690,7 +4708,10 @@ data PhysicalDeviceLimits = PhysicalDeviceLimits -- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.cmdCopyBufferToImage2', -- 'Vulkan.Core10.CommandBufferBuilding.cmdCopyBufferToImage', -- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.cmdCopyImageToBuffer2', - -- and 'Vulkan.Core10.CommandBufferBuilding.cmdCopyImageToBuffer'. The per + -- and 'Vulkan.Core10.CommandBufferBuilding.cmdCopyImageToBuffer'. This + -- value is also the optimal host memory offset alignment in bytes for + -- 'Vulkan.Extensions.VK_EXT_host_image_copy.copyMemoryToImageEXT' and + -- 'Vulkan.Extensions.VK_EXT_host_image_copy.copyImageToMemoryEXT'. The per -- texel alignment requirements are enforced, but applications /should/ use -- the optimal alignment for optimal performance and power use. The value -- /must/ be a power of two. @@ -4701,7 +4722,10 @@ data PhysicalDeviceLimits = PhysicalDeviceLimits -- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.cmdCopyBufferToImage2', -- 'Vulkan.Core10.CommandBufferBuilding.cmdCopyBufferToImage', -- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.cmdCopyImageToBuffer2', - -- and 'Vulkan.Core10.CommandBufferBuilding.cmdCopyImageToBuffer'. Row + -- and 'Vulkan.Core10.CommandBufferBuilding.cmdCopyImageToBuffer'. This + -- value is also the optimal host memory row pitch alignment in bytes for + -- 'Vulkan.Extensions.VK_EXT_host_image_copy.copyMemoryToImageEXT' and + -- 'Vulkan.Extensions.VK_EXT_host_image_copy.copyImageToMemoryEXT'. Row -- pitch is the number of bytes between texels with the same X coordinate -- in adjacent rows (Y coordinates differ by one). The per texel alignment -- requirements are enforced, but applications /should/ use the optimal diff --git a/src/Vulkan/Core10/Enums/AccessFlagBits.hs b/src/Vulkan/Core10/Enums/AccessFlagBits.hs index cd93bd46a..cc3a154b2 100644 --- a/src/Vulkan/Core10/Enums/AccessFlagBits.hs +++ b/src/Vulkan/Core10/Enums/AccessFlagBits.hs @@ -66,117 +66,213 @@ type AccessFlags = AccessFlagBits -- 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_EXT', | --- | | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_EXT', | --- | | '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_EXT', | --- | | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_EXT', | --- | | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR', | --- | | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT', | --- | | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_VERTEX_SHADER_BIT', | --- | | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT', | --- | | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT', | --- | | '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_EXT', | --- | | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_EXT', | --- | | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR', | --- | | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_VERTEX_SHADER_BIT', | --- | | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT', | --- | | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT', | --- | | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_GEOMETRY_SHADER_BIT', | --- | | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADER_BIT', or | --- | | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COMPUTE_SHADER_BIT' | --- +-----------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+ --- | 'ACCESS_INPUT_ATTACHMENT_READ_BIT' | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI', or | --- | | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADER_BIT' | --- +-----------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+ --- | 'ACCESS_COLOR_ATTACHMENT_READ_BIT' | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT' | --- +-----------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+ --- | 'ACCESS_COLOR_ATTACHMENT_WRITE_BIT' | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT' | --- +-----------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+ --- | 'ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT' | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT', or | --- | | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT' | --- +-----------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+ --- | 'ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT' | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT', or | --- | | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT' | --- +-----------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+ --- | 'ACCESS_TRANSFER_READ_BIT' | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFER_BIT' or | --- | | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR' | --- +-----------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+ --- | 'ACCESS_TRANSFER_WRITE_BIT' | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFER_BIT' or | --- | | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR' | --- +-----------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+ --- | 'ACCESS_HOST_READ_BIT' | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_HOST_BIT' | --- +-----------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+ --- | 'ACCESS_HOST_WRITE_BIT' | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_HOST_BIT' | --- +-----------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+ --- | 'ACCESS_MEMORY_READ_BIT' | Any | --- +-----------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+ --- | 'ACCESS_MEMORY_WRITE_BIT' | Any | --- +-----------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+ --- | 'ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT' | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT' | --- +-----------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+ --- | 'ACCESS_COMMAND_PREPROCESS_READ_BIT_NV' | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV' | --- +-----------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+ --- | 'ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV' | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV' | --- +-----------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+ --- | 'ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT' | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT' | --- +-----------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+ --- | 'ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR' | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR' | --- +-----------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+ --- | 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI' | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI' | --- +-----------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+ --- | 'ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT' | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT' | --- +-----------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+ --- | 'ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT' | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT' | --- +-----------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+ --- | 'ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT' | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT', | --- | | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_DRAW_INDIRECT_BIT' | --- +-----------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+ --- | 'ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR' | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_EXT', | --- | | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_EXT', | --- | | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_VERTEX_SHADER_BIT', | --- | | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT', | --- | | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT', | --- | | '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' | --- +-----------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+ --- | @VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR@ | @VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR@ | --- +-----------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+ --- | @VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR@ | @VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR@ | --- +-----------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+ --- | @VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR@ | @VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR@ | --- +-----------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+ --- | @VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR@ | @VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR@ | --- +-----------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+ +-- +-------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+ +-- | Access flag | Supported pipeline stages | +-- +===========================================================================================+=====================================================================================================+ +-- | 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_NONE' | Any | +-- +-------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+ +-- | 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_INDIRECT_COMMAND_READ_BIT' | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_DRAW_INDIRECT_BIT', | +-- | | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR' | +-- +-------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+ +-- | 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_INDEX_READ_BIT' | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_VERTEX_INPUT_BIT', | +-- | | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_INDEX_INPUT_BIT' | +-- +-------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+ +-- | 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT' | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_VERTEX_INPUT_BIT', | +-- | | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT' | +-- +-------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+ +-- | 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_UNIFORM_READ_BIT' | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_VERTEX_SHADER_BIT', | +-- | | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT', | +-- | | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT', | +-- | | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT', | +-- | | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT', | +-- | | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COMPUTE_SHADER_BIT', | +-- | | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR', | +-- | | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT', | +-- | | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT', | +-- | | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI', | +-- | | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_CLUSTER_CULLING_SHADER_BIT_HUAWEI' | +-- +-------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+ +-- | 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_INPUT_ATTACHMENT_READ_BIT' | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT', | +-- | | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI' | +-- +-------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+ +-- | 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_SHADER_READ_BIT' | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR', | +-- | | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT', | +-- | | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_VERTEX_SHADER_BIT', | +-- | | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT', | +-- | | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT', | +-- | | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT', | +-- | | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT', | +-- | | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COMPUTE_SHADER_BIT', | +-- | | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR', | +-- | | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT', | +-- | | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT', | +-- | | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI', | +-- | | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_CLUSTER_CULLING_SHADER_BIT_HUAWEI' | +-- +-------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+ +-- | 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_SHADER_WRITE_BIT' | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_VERTEX_SHADER_BIT', | +-- | | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT', | +-- | | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT', | +-- | | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT', | +-- | | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT', | +-- | | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COMPUTE_SHADER_BIT', | +-- | | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR', | +-- | | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT', | +-- | | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT', | +-- | | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI', | +-- | | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_CLUSTER_CULLING_SHADER_BIT_HUAWEI' | +-- +-------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+ +-- | 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_COLOR_ATTACHMENT_READ_BIT' | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT', | +-- | | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT' | +-- +-------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+ +-- | 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT' | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT' | +-- +-------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+ +-- | 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT' | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT', | +-- | | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT', | +-- | | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT' | +-- +-------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+ +-- | 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT' | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT', | +-- | | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT' | +-- +-------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+ +-- | 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_TRANSFER_READ_BIT' | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_TRANSFER_BIT', | +-- | | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COPY_BIT', | +-- | | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_RESOLVE_BIT', | +-- | | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_BLIT_BIT', | +-- | | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR', | +-- | | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR', | +-- | | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT' | +-- +-------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+ +-- | 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_TRANSFER_WRITE_BIT' | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_TRANSFER_BIT', | +-- | | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COPY_BIT', | +-- | | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_RESOLVE_BIT', | +-- | | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_BLIT_BIT', | +-- | | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_CLEAR_BIT', | +-- | | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR', | +-- | | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR', | +-- | | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT' | +-- +-------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+ +-- | 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_HOST_READ_BIT' | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_HOST_BIT' | +-- +-------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+ +-- | 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_HOST_WRITE_BIT' | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_HOST_BIT' | +-- +-------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+ +-- | 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_MEMORY_READ_BIT' | Any | +-- +-------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+ +-- | 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_MEMORY_WRITE_BIT' | Any | +-- +-------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+ +-- | 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_SHADER_SAMPLED_READ_BIT' | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_VERTEX_SHADER_BIT', | +-- | | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT', | +-- | | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT', | +-- | | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT', | +-- | | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT', | +-- | | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COMPUTE_SHADER_BIT', | +-- | | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR', | +-- | | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT', | +-- | | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT', | +-- | | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI', | +-- | | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_CLUSTER_CULLING_SHADER_BIT_HUAWEI' | +-- +-------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+ +-- | 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_SHADER_STORAGE_READ_BIT' | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_VERTEX_SHADER_BIT', | +-- | | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT', | +-- | | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT', | +-- | | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT', | +-- | | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT', | +-- | | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COMPUTE_SHADER_BIT', | +-- | | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR', | +-- | | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT', | +-- | | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT', | +-- | | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI', | +-- | | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_CLUSTER_CULLING_SHADER_BIT_HUAWEI' | +-- +-------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+ +-- | 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_SHADER_STORAGE_WRITE_BIT' | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_VERTEX_SHADER_BIT', | +-- | | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT', | +-- | | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT', | +-- | | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT', | +-- | | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT', | +-- | | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COMPUTE_SHADER_BIT', | +-- | | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR', | +-- | | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT', | +-- | | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT', | +-- | | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI', | +-- | | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_CLUSTER_CULLING_SHADER_BIT_HUAWEI' | +-- +-------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+ +-- | @VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR@ | @VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR@ | +-- +-------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+ +-- | @VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR@ | @VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR@ | +-- +-------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+ +-- | @VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR@ | @VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR@ | +-- +-------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+ +-- | @VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR@ | @VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR@ | +-- +-------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+ +-- | 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT' | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT' | +-- +-------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+ +-- | 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT' | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_DRAW_INDIRECT_BIT', | +-- | | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT' | +-- +-------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+ +-- | 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT' | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT' | +-- +-------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+ +-- | 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT' | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT' | +-- +-------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+ +-- | 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV' | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV' | +-- +-------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+ +-- | 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV' | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV' | +-- +-------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+ +-- | 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR' | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR' | +-- +-------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+ +-- | 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR' | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_VERTEX_SHADER_BIT', | +-- | | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT', | +-- | | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT', | +-- | | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT', | +-- | | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT', | +-- | | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COMPUTE_SHADER_BIT', | +-- | | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR', | +-- | | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT', | +-- | | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT', | +-- | | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_CLUSTER_CULLING_SHADER_BIT_HUAWEI', | +-- | | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR', | +-- | | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR', | +-- | | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI' | +-- +-------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+ +-- | 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR' | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR', | +-- | | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR' | +-- +-------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+ +-- | 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT' | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT' | +-- +-------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+ +-- | 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT' | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT' | +-- +-------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+ +-- | 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_DESCRIPTOR_BUFFER_READ_BIT_EXT' | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_VERTEX_SHADER_BIT', | +-- | | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT', | +-- | | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT', | +-- | | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT', | +-- | | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT', | +-- | | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COMPUTE_SHADER_BIT', | +-- | | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR', | +-- | | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT', | +-- | | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT', | +-- | | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI', | +-- | | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_CLUSTER_CULLING_SHADER_BIT_HUAWEI' | +-- +-------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+ +-- | 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI' | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI' | +-- +-------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+ +-- | 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_SHADER_BINDING_TABLE_READ_BIT_KHR' | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_VERTEX_SHADER_BIT', | +-- | | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT', | +-- | | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT', | +-- | | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT', | +-- | | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT', | +-- | | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COMPUTE_SHADER_BIT', | +-- | | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR', | +-- | | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT', | +-- | | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT', | +-- | | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI', | +-- | | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_CLUSTER_CULLING_SHADER_BIT_HUAWEI' | +-- +-------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+ +-- | 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_MICROMAP_READ_BIT_EXT' | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT', | +-- | | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR' | +-- +-------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+ +-- | 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_MICROMAP_WRITE_BIT_EXT' | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT' | +-- +-------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+ +-- | 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_OPTICAL_FLOW_READ_BIT_NV' | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV' | +-- +-------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+ +-- | 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_OPTICAL_FLOW_WRITE_BIT_NV' | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV' | +-- +-------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------+ -- -- Supported access types -- @@ -196,6 +292,7 @@ pattern ACCESS_INDIRECT_COMMAND_READ_BIT = AccessFlagBits 0x00000001 -- | 'ACCESS_INDEX_READ_BIT' specifies read access to an index buffer as part -- of an indexed drawing command, bound by +-- 'Vulkan.Extensions.VK_KHR_maintenance5.cmdBindIndexBuffer2KHR' and -- 'Vulkan.Core10.CommandBufferBuilding.cmdBindIndexBuffer'. Such access -- occurs in the -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_VERTEX_INPUT_BIT' @@ -219,14 +316,13 @@ pattern ACCESS_UNIFORM_READ_BIT = AccessFlagBits 0x00000008 -- -- within a render pass during subpass shading or fragment shading. Such -- access occurs in the --- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI' +-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI' -- or -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADER_BIT' -- pipeline stage. pattern ACCESS_INPUT_ATTACHMENT_READ_BIT = AccessFlagBits 0x00000010 -- | 'ACCESS_SHADER_READ_BIT' specifies read access to a --- , -- , -- , -- , @@ -250,14 +346,18 @@ pattern ACCESS_SHADER_WRITE_BIT = AccessFlagBits 0x00000040 -- | 'ACCESS_COLOR_ATTACHMENT_READ_BIT' specifies read access to a -- , -- such as via --- , --- , +-- +-- (other than +-- ), +-- -- or certain --- . --- It does not include --- . --- Such access occurs in the +-- +-- in the -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT' +-- pipeline stage or via +-- +-- in the +-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADER_BIT' -- pipeline stage. pattern ACCESS_COLOR_ATTACHMENT_READ_BIT = AccessFlagBits 0x00000080 @@ -265,9 +365,11 @@ pattern ACCESS_COLOR_ATTACHMENT_READ_BIT = AccessFlagBits 0x00000080 -- -- during a -- --- or via certain --- . --- Such access occurs in the +-- or via certain render pass +-- +-- and +-- +-- operations. Such access occurs in the -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT' -- pipeline stage. pattern ACCESS_COLOR_ATTACHMENT_WRITE_BIT = AccessFlagBits 0x00000100 @@ -277,21 +379,27 @@ pattern ACCESS_COLOR_ATTACHMENT_WRITE_BIT = AccessFlagBits 0x00000100 -- via -- -- or certain --- . --- Such access occurs in the +-- +-- in the -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT' -- or -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT' --- pipeline stages. +-- pipeline stages or via +-- +-- in the +-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADER_BIT' +-- pipeline stage. pattern ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT = AccessFlagBits 0x00000200 -- | 'ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT' specifies write access to a -- , -- via -- --- or certain --- . --- Such access occurs in the +-- or certain render pass +-- +-- and +-- +-- operations. Such access occurs in the -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT' -- or -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT' @@ -341,7 +449,7 @@ pattern ACCESS_MEMORY_READ_BIT = AccessFlagBits 0x00008000 pattern ACCESS_MEMORY_WRITE_BIT = AccessFlagBits 0x00010000 -- | 'ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV' specifies writes to the target --- command buffer:VkBuffer preprocess outputs in +-- command buffer preprocess outputs in -- 'Vulkan.Extensions.VK_NV_device_generated_commands.cmdPreprocessGeneratedCommandsNV'. -- Such access occurs in the -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV' diff --git a/src/Vulkan/Core10/Enums/AttachmentLoadOp.hs b/src/Vulkan/Core10/Enums/AttachmentLoadOp.hs index d69b096d0..ef64ed435 100644 --- a/src/Vulkan/Core10/Enums/AttachmentLoadOp.hs +++ b/src/Vulkan/Core10/Enums/AttachmentLoadOp.hs @@ -16,8 +16,8 @@ import Data.Int (Int32) import GHC.Read (Read(readPrec)) import GHC.Show (Show(showsPrec)) --- | VkAttachmentLoadOp - Specify how contents of an attachment are treated --- at the beginning of a subpass +-- | VkAttachmentLoadOp - Specify how contents of an attachment are +-- initialized at the beginning of a subpass -- -- = See Also -- @@ -29,8 +29,8 @@ newtype AttachmentLoadOp = AttachmentLoadOp Int32 deriving newtype (Eq, Ord, Storable, Zero) -- | 'ATTACHMENT_LOAD_OP_LOAD' specifies that the previous contents of the --- image within the render area will be preserved. For attachments with a --- depth\/stencil format, this uses the access type +-- image within the render area will be preserved as the initial values. +-- For attachments with a depth\/stencil format, this uses the access type -- 'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT'. -- For attachments with a color format, this uses the access type -- 'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_COLOR_ATTACHMENT_READ_BIT'. @@ -55,9 +55,8 @@ pattern ATTACHMENT_LOAD_OP_CLEAR = AttachmentLoadOp 1 pattern ATTACHMENT_LOAD_OP_DONT_CARE = AttachmentLoadOp 2 -- | 'ATTACHMENT_LOAD_OP_NONE_EXT' specifies that the previous contents of --- the image within the render area will be preserved, but the contents of --- the attachment will be undefined inside the render pass. No access type --- is used as the image is not accessed. +-- the image will be undefined inside the render pass. No access type is +-- used as the image is not accessed. pattern ATTACHMENT_LOAD_OP_NONE_EXT = AttachmentLoadOp 1000400000 {-# COMPLETE diff --git a/src/Vulkan/Core10/Enums/AttachmentStoreOp.hs b/src/Vulkan/Core10/Enums/AttachmentStoreOp.hs index e52764724..a8210a0c2 100644 --- a/src/Vulkan/Core10/Enums/AttachmentStoreOp.hs +++ b/src/Vulkan/Core10/Enums/AttachmentStoreOp.hs @@ -15,8 +15,8 @@ import Data.Int (Int32) import GHC.Read (Read(readPrec)) import GHC.Show (Show(showsPrec)) --- | VkAttachmentStoreOp - Specify how contents of an attachment are treated --- at the end of a subpass +-- | VkAttachmentStoreOp - Specify how contents of an attachment are stored +-- to memory at the end of a subpass -- -- = Description -- @@ -53,9 +53,10 @@ pattern ATTACHMENT_STORE_OP_STORE = AttachmentStoreOp 0 pattern ATTACHMENT_STORE_OP_DONT_CARE = AttachmentStoreOp 1 -- | 'ATTACHMENT_STORE_OP_NONE' specifies the contents within the render area --- are not accessed by the store operation. However, if the attachment was --- written to during the render pass, the contents of the attachment will --- be undefined inside the render area. +-- are not accessed by the store operation as long as no values are written +-- to the attachment during the render pass. If values are written during +-- the render pass, this behaves identically to +-- 'ATTACHMENT_STORE_OP_DONT_CARE' and with matching access semantics. pattern ATTACHMENT_STORE_OP_NONE = AttachmentStoreOp 1000301000 {-# COMPLETE diff --git a/src/Vulkan/Core10/Enums/BufferUsageFlagBits.hs b/src/Vulkan/Core10/Enums/BufferUsageFlagBits.hs index cb4e173ac..92da6334c 100644 --- a/src/Vulkan/Core10/Enums/BufferUsageFlagBits.hs +++ b/src/Vulkan/Core10/Enums/BufferUsageFlagBits.hs @@ -18,6 +18,7 @@ module Vulkan.Core10.Enums.BufferUsageFlagBits ( BufferUsageFlags , BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR , BUFFER_USAGE_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR , BUFFER_USAGE_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR + , BUFFER_USAGE_EXECUTION_GRAPH_SCRATCH_BIT_AMDX , BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT , BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT , BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT @@ -87,6 +88,7 @@ pattern BUFFER_USAGE_STORAGE_BUFFER_BIT = BufferUsageFlagBits 0x00000020 -- | 'BUFFER_USAGE_INDEX_BUFFER_BIT' specifies that the buffer is suitable -- for passing as the @buffer@ parameter to +-- 'Vulkan.Extensions.VK_KHR_maintenance5.cmdBindIndexBuffer2KHR' and -- 'Vulkan.Core10.CommandBufferBuilding.cmdBindIndexBuffer'. pattern BUFFER_USAGE_INDEX_BUFFER_BIT = BufferUsageFlagBits 0x00000040 @@ -150,6 +152,11 @@ pattern BUFFER_USAGE_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR = BufferUsageFlagBit -- . pattern BUFFER_USAGE_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR = BufferUsageFlagBits 0x00080000 +-- | 'BUFFER_USAGE_EXECUTION_GRAPH_SCRATCH_BIT_AMDX' specifies that the +-- buffer /can/ be used for as scratch memory for +-- . +pattern BUFFER_USAGE_EXECUTION_GRAPH_SCRATCH_BIT_AMDX = BufferUsageFlagBits 0x02000000 + -- | 'BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT' specifies that the buffer -- is suitable for passing as the @buffer@ parameter to -- 'Vulkan.Extensions.VK_EXT_conditional_rendering.cmdBeginConditionalRenderingEXT'. @@ -250,6 +257,10 @@ showTableBufferUsageFlagBits = ( BUFFER_USAGE_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR , "ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR" ) + , + ( BUFFER_USAGE_EXECUTION_GRAPH_SCRATCH_BIT_AMDX + , "EXECUTION_GRAPH_SCRATCH_BIT_AMDX" + ) , ( BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT , "CONDITIONAL_RENDERING_BIT_EXT" diff --git a/src/Vulkan/Core10/Enums/CommandBufferUsageFlagBits.hs b/src/Vulkan/Core10/Enums/CommandBufferUsageFlagBits.hs index b5168d27e..294c9478b 100644 --- a/src/Vulkan/Core10/Enums/CommandBufferUsageFlagBits.hs +++ b/src/Vulkan/Core10/Enums/CommandBufferUsageFlagBits.hs @@ -42,8 +42,9 @@ pattern COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT = CommandBufferUsageFlagBits 0x pattern COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT = CommandBufferUsageFlagBits 0x00000002 -- | 'COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT' specifies that a command --- buffer /can/ be resubmitted to a queue while it is in the /pending --- state/, and recorded into multiple primary command buffers. +-- buffer /can/ be resubmitted to any queue of the same queue family while +-- it is in the /pending state/, and recorded into multiple primary command +-- buffers. pattern COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT = CommandBufferUsageFlagBits 0x00000004 conNameCommandBufferUsageFlagBits :: String diff --git a/src/Vulkan/Core10/Enums/DescriptorPoolCreateFlagBits.hs b/src/Vulkan/Core10/Enums/DescriptorPoolCreateFlagBits.hs index 4f1ee6a81..c68bf23fc 100644 --- a/src/Vulkan/Core10/Enums/DescriptorPoolCreateFlagBits.hs +++ b/src/Vulkan/Core10/Enums/DescriptorPoolCreateFlagBits.hs @@ -2,6 +2,8 @@ -- No documentation found for Chapter "DescriptorPoolCreateFlagBits" module Vulkan.Core10.Enums.DescriptorPoolCreateFlagBits ( DescriptorPoolCreateFlags , DescriptorPoolCreateFlagBits( DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT + , DESCRIPTOR_POOL_CREATE_ALLOW_OVERALLOCATION_POOLS_BIT_NV + , DESCRIPTOR_POOL_CREATE_ALLOW_OVERALLOCATION_SETS_BIT_NV , DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_EXT , DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT , .. @@ -42,6 +44,28 @@ newtype DescriptorPoolCreateFlagBits = DescriptorPoolCreateFlagBits Flags -- 'Vulkan.Core10.DescriptorSet.resetDescriptorPool' are allowed. pattern DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT = DescriptorPoolCreateFlagBits 0x00000001 +-- | 'DESCRIPTOR_POOL_CREATE_ALLOW_OVERALLOCATION_POOLS_BIT_NV' specifies +-- that the implementation should allow the application to allocate more +-- descriptors from the pool than was specified by the +-- 'Vulkan.Core10.DescriptorSet.DescriptorPoolSize'::@descriptorCount@ for +-- any descriptor type as specified by +-- 'Vulkan.Core10.DescriptorSet.DescriptorPoolCreateInfo'::@poolSizeCount@ +-- and +-- 'Vulkan.Core10.DescriptorSet.DescriptorPoolCreateInfo'::@pPoolSizes@, as +-- available resources allow. The implementation /may/ use the +-- @descriptorCount@ for each descriptor type to allocate the initial pool, +-- but the application is allowed to set the @poolSizeCount@ to zero, or +-- any of the @descriptorCount@ values in the @pPoolSizes@ array to zero. +pattern DESCRIPTOR_POOL_CREATE_ALLOW_OVERALLOCATION_POOLS_BIT_NV = DescriptorPoolCreateFlagBits 0x00000010 + +-- | 'DESCRIPTOR_POOL_CREATE_ALLOW_OVERALLOCATION_SETS_BIT_NV' specifies that +-- the implementation should allow the application to allocate more than +-- 'Vulkan.Core10.DescriptorSet.DescriptorPoolCreateInfo'::@maxSets@ +-- descriptor set objects from the descriptor pool as available resources +-- allow. The implementation /may/ use the @maxSets@ value to allocate the +-- initial available sets, but using zero is permitted. +pattern DESCRIPTOR_POOL_CREATE_ALLOW_OVERALLOCATION_SETS_BIT_NV = DescriptorPoolCreateFlagBits 0x00000008 + -- | 'DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_EXT' specifies that this -- descriptor pool and the descriptor sets allocated from it reside -- entirely in host memory and cannot be bound. Similar to descriptor sets @@ -78,6 +102,14 @@ showTableDescriptorPoolCreateFlagBits = ( DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT , "FREE_DESCRIPTOR_SET_BIT" ) + , + ( DESCRIPTOR_POOL_CREATE_ALLOW_OVERALLOCATION_POOLS_BIT_NV + , "ALLOW_OVERALLOCATION_POOLS_BIT_NV" + ) + , + ( DESCRIPTOR_POOL_CREATE_ALLOW_OVERALLOCATION_SETS_BIT_NV + , "ALLOW_OVERALLOCATION_SETS_BIT_NV" + ) , ( DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_EXT , "HOST_ONLY_BIT_EXT" diff --git a/src/Vulkan/Core10/Enums/DescriptorSetLayoutCreateFlagBits.hs b/src/Vulkan/Core10/Enums/DescriptorSetLayoutCreateFlagBits.hs index 7ddd5ed9f..2f2ae057c 100644 --- a/src/Vulkan/Core10/Enums/DescriptorSetLayoutCreateFlagBits.hs +++ b/src/Vulkan/Core10/Enums/DescriptorSetLayoutCreateFlagBits.hs @@ -2,6 +2,7 @@ -- No documentation found for Chapter "DescriptorSetLayoutCreateFlagBits" module Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits ( DescriptorSetLayoutCreateFlags , DescriptorSetLayoutCreateFlagBits( DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_EXT + , DESCRIPTOR_SET_LAYOUT_CREATE_INDIRECT_BINDABLE_BIT_NV , DESCRIPTOR_SET_LAYOUT_CREATE_EMBEDDED_IMMUTABLE_SAMPLERS_BIT_EXT , DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT , DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR @@ -45,6 +46,14 @@ newtype DescriptorSetLayoutCreateFlagBits = DescriptorSetLayoutCreateFlagBits Fl -- non-UpdateAfterBind limits, whichever is larger. pattern DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_EXT = DescriptorSetLayoutCreateFlagBits 0x00000004 +-- | 'DESCRIPTOR_SET_LAYOUT_CREATE_INDIRECT_BINDABLE_BIT_NV' specifies that +-- descriptor sets using this layout allows them to be bound with compute +-- pipelines that are created with +-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV' +-- flag set to be used in +-- . +pattern DESCRIPTOR_SET_LAYOUT_CREATE_INDIRECT_BINDABLE_BIT_NV = DescriptorSetLayoutCreateFlagBits 0x00000080 + -- | 'DESCRIPTOR_SET_LAYOUT_CREATE_EMBEDDED_IMMUTABLE_SAMPLERS_BIT_EXT' -- specifies that this is a layout only containing immutable samplers that -- /can/ be bound by @@ -87,6 +96,10 @@ showTableDescriptorSetLayoutCreateFlagBits = ( DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_EXT , "HOST_ONLY_POOL_BIT_EXT" ) + , + ( DESCRIPTOR_SET_LAYOUT_CREATE_INDIRECT_BINDABLE_BIT_NV + , "INDIRECT_BINDABLE_BIT_NV" + ) , ( DESCRIPTOR_SET_LAYOUT_CREATE_EMBEDDED_IMMUTABLE_SAMPLERS_BIT_EXT , "EMBEDDED_IMMUTABLE_SAMPLERS_BIT_EXT" diff --git a/src/Vulkan/Core10/Enums/DynamicState.hs b/src/Vulkan/Core10/Enums/DynamicState.hs index 6823d96bc..fe588e46f 100644 --- a/src/Vulkan/Core10/Enums/DynamicState.hs +++ b/src/Vulkan/Core10/Enums/DynamicState.hs @@ -9,6 +9,7 @@ module Vulkan.Core10.Enums.DynamicState (DynamicState( DYNAMIC_STATE_VIEWPORT , DYNAMIC_STATE_STENCIL_COMPARE_MASK , DYNAMIC_STATE_STENCIL_WRITE_MASK , DYNAMIC_STATE_STENCIL_REFERENCE + , DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT , DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV , DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV , DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV @@ -118,14 +119,18 @@ pattern DYNAMIC_STATE_SCISSOR = DynamicState 1 -- commands that generate line primitives for the rasterizer. pattern DYNAMIC_STATE_LINE_WIDTH = DynamicState 2 --- | 'DYNAMIC_STATE_DEPTH_BIAS' specifies that the @depthBiasConstantFactor@, --- @depthBiasClamp@ and @depthBiasSlopeFactor@ states in +-- | 'DYNAMIC_STATE_DEPTH_BIAS' specifies that any instance of +-- 'Vulkan.Extensions.VK_EXT_depth_bias_control.DepthBiasRepresentationInfoEXT' +-- included in the @pNext@ chain of +-- 'Vulkan.Core10.Pipeline.PipelineRasterizationStateCreateInfo' as well as +-- the @depthBiasConstantFactor@, @depthBiasClamp@ and +-- @depthBiasSlopeFactor@ states in -- 'Vulkan.Core10.Pipeline.PipelineRasterizationStateCreateInfo' will be --- ignored and /must/ be set dynamically with --- 'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBias' before any draws --- are performed with @depthBiasEnable@ in --- 'Vulkan.Core10.Pipeline.PipelineRasterizationStateCreateInfo' set to --- 'Vulkan.Core10.FundamentalTypes.TRUE'. +-- ignored and /must/ be set dynamically with either +-- 'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBias' or +-- 'Vulkan.Extensions.VK_EXT_depth_bias_control.cmdSetDepthBias2EXT' before +-- any draws are performed with +-- . pattern DYNAMIC_STATE_DEPTH_BIAS = DynamicState 3 -- | 'DYNAMIC_STATE_BLEND_CONSTANTS' specifies that the @blendConstants@ @@ -176,6 +181,15 @@ pattern DYNAMIC_STATE_STENCIL_WRITE_MASK = DynamicState 7 -- @stencilTestEnable@ set to 'Vulkan.Core10.FundamentalTypes.TRUE' pattern DYNAMIC_STATE_STENCIL_REFERENCE = DynamicState 8 +-- | 'DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT' specifies that the +-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT' +-- and +-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT' +-- flags will be ignored and /must/ be set dynamically with +-- 'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT' +-- before any draw call. +pattern DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT = DynamicState 1000524000 + -- | 'DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV' specifies that the -- @coverageReductionMode@ state in -- 'Vulkan.Extensions.VK_NV_coverage_reduction_mode.PipelineCoverageReductionStateCreateInfoNV' @@ -693,6 +707,7 @@ pattern DYNAMIC_STATE_CULL_MODE = DynamicState 1000267000 , DYNAMIC_STATE_STENCIL_COMPARE_MASK , DYNAMIC_STATE_STENCIL_WRITE_MASK , DYNAMIC_STATE_STENCIL_REFERENCE + , DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT , DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV , DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV , DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV @@ -781,6 +796,10 @@ showTableDynamicState = , "STENCIL_WRITE_MASK" ) , (DYNAMIC_STATE_STENCIL_REFERENCE, "STENCIL_REFERENCE") + , + ( DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT + , "ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT" + ) , ( DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV , "COVERAGE_REDUCTION_MODE_NV" diff --git a/src/Vulkan/Core10/Enums/Format.hs b/src/Vulkan/Core10/Enums/Format.hs index 145786f5d..d8b17ed1e 100644 --- a/src/Vulkan/Core10/Enums/Format.hs +++ b/src/Vulkan/Core10/Enums/Format.hs @@ -185,6 +185,8 @@ module Vulkan.Core10.Enums.Format (Format( FORMAT_UNDEFINED , FORMAT_ASTC_12x10_SRGB_BLOCK , FORMAT_ASTC_12x12_UNORM_BLOCK , FORMAT_ASTC_12x12_SRGB_BLOCK + , FORMAT_A8_UNORM_KHR + , FORMAT_A1B5G5R5_UNORM_PACK16_KHR , FORMAT_R16G16_S10_5_NV , FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG , FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG @@ -269,6 +271,7 @@ import GHC.Show (Show(showsPrec)) -- 'Vulkan.Extensions.VK_NV_displacement_micromap.AccelerationStructureTrianglesDisplacementMicromapNV', -- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.AndroidHardwareBufferFormatProperties2ANDROID', -- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.AndroidHardwareBufferFormatPropertiesANDROID', +-- 'Vulkan.Extensions.VK_ANDROID_external_format_resolve.AndroidHardwareBufferFormatResolvePropertiesANDROID', -- 'Vulkan.Core10.Pass.AttachmentDescription', -- 'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.AttachmentDescription2', -- 'Vulkan.Core10.BufferView.BufferViewCreateInfo', @@ -285,8 +288,10 @@ import GHC.Show (Show(showsPrec)) -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceImageFormatInfo2', -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceSparseImageFormatInfo2', -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo', +-- 'Vulkan.Extensions.VK_KHR_maintenance5.RenderingAreaInfoKHR', -- 'Vulkan.Extensions.VK_EXT_custom_border_color.SamplerCustomBorderColorCreateInfoEXT', -- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.SamplerYcbcrConversionCreateInfo', +-- 'Vulkan.Extensions.VK_QNX_external_memory_screen_buffer.ScreenBufferFormatPropertiesQNX', -- 'Vulkan.Extensions.VK_KHR_surface.SurfaceFormatKHR', -- 'Vulkan.Extensions.VK_KHR_swapchain.SwapchainCreateInfoKHR', -- 'Vulkan.Core10.Pipeline.VertexInputAttributeDescription', @@ -1310,6 +1315,16 @@ pattern FORMAT_ASTC_12x12_UNORM_BLOCK = Format 183 -- nonlinear encoding applied to the RGB components. pattern FORMAT_ASTC_12x12_SRGB_BLOCK = Format 184 +-- | 'FORMAT_A8_UNORM_KHR' specifies a one-component, 8-bit unsigned +-- normalized format that has a single 8-bit A component. +pattern FORMAT_A8_UNORM_KHR = Format 1000470001 + +-- | 'FORMAT_A1B5G5R5_UNORM_PACK16_KHR' specifies a four-component, 16-bit +-- packed unsigned normalized format that has a 1-bit A component in bit +-- 15, a 5-bit B component in bits 10..14, a 5-bit G component in bits +-- 5..9, and a 5-bit R component in bits 0..4. +pattern FORMAT_A1B5G5R5_UNORM_PACK16_KHR = Format 1000470000 + -- | 'FORMAT_R16G16_S10_5_NV' specifies a two-component, fixed-point format -- where most significant bit specifies the sign bit, next 10 bits specify -- the integer value and last 5 bits represent the fractional value. @@ -2222,6 +2237,8 @@ pattern FORMAT_G8B8G8R8_422_UNORM = Format 1000156000 , FORMAT_ASTC_12x10_SRGB_BLOCK , FORMAT_ASTC_12x12_UNORM_BLOCK , FORMAT_ASTC_12x12_SRGB_BLOCK + , FORMAT_A8_UNORM_KHR + , FORMAT_A1B5G5R5_UNORM_PACK16_KHR , FORMAT_R16G16_S10_5_NV , FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG , FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG @@ -2517,6 +2534,11 @@ showTableFormat = , (FORMAT_ASTC_12x10_SRGB_BLOCK, "ASTC_12x10_SRGB_BLOCK") , (FORMAT_ASTC_12x12_UNORM_BLOCK, "ASTC_12x12_UNORM_BLOCK") , (FORMAT_ASTC_12x12_SRGB_BLOCK, "ASTC_12x12_SRGB_BLOCK") + , (FORMAT_A8_UNORM_KHR, "A8_UNORM_KHR") + , + ( FORMAT_A1B5G5R5_UNORM_PACK16_KHR + , "A1B5G5R5_UNORM_PACK16_KHR" + ) , (FORMAT_R16G16_S10_5_NV, "R16G16_S10_5_NV") , ( FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG diff --git a/src/Vulkan/Core10/Enums/FormatFeatureFlagBits.hs b/src/Vulkan/Core10/Enums/FormatFeatureFlagBits.hs index 4956ff68f..4a0958cbb 100644 --- a/src/Vulkan/Core10/Enums/FormatFeatureFlagBits.hs +++ b/src/Vulkan/Core10/Enums/FormatFeatureFlagBits.hs @@ -224,8 +224,9 @@ type FormatFeatureFlags = FormatFeatureFlagBits -- - 'FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR' specifies -- that an image view /can/ be used as a -- . --- An implementation /must/ not set this feature for formats with --- numeric type other than @*UINT@, or set it as a buffer feature. +-- An implementation /must/ not set this feature for formats with a +-- +-- other than @UINT@, or set it as a buffer feature. -- -- - @VK_FORMAT_FEATURE_VIDEO_DECODE_OUTPUT_BIT_KHR@ specifies that an -- image view with this format /can/ be used as a @@ -403,8 +404,9 @@ pattern FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT = FormatFeatureFlagBits 0 -- | 'FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR' specifies that -- an image view /can/ be used as a -- . --- An implementation /must/ not set this feature for formats with numeric --- type other than @*UINT@, or set it as a buffer feature. +-- An implementation /must/ not set this feature for formats with a +-- +-- 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 diff --git a/src/Vulkan/Core10/Enums/ImageAspectFlagBits.hs-boot b/src/Vulkan/Core10/Enums/ImageAspectFlagBits.hs-boot new file mode 100644 index 000000000..ecf4473cd --- /dev/null +++ b/src/Vulkan/Core10/Enums/ImageAspectFlagBits.hs-boot @@ -0,0 +1,12 @@ +{-# language CPP #-} +-- No documentation found for Chapter "ImageAspectFlagBits" +module Vulkan.Core10.Enums.ImageAspectFlagBits ( ImageAspectFlags + , ImageAspectFlagBits + ) where + + + +type ImageAspectFlags = ImageAspectFlagBits + +data ImageAspectFlagBits + diff --git a/src/Vulkan/Core10/Enums/ImageCreateFlagBits.hs b/src/Vulkan/Core10/Enums/ImageCreateFlagBits.hs index 4da1763c6..dfc7d57fd 100644 --- a/src/Vulkan/Core10/Enums/ImageCreateFlagBits.hs +++ b/src/Vulkan/Core10/Enums/ImageCreateFlagBits.hs @@ -90,10 +90,10 @@ pattern IMAGE_CREATE_CUBE_COMPATIBLE_BIT = ImageCreateFlagBits 0x00000010 -- | 'IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM' specifies that an -- image /can/ be used in a render pass with non-zero -- . --- In a renderpass with non-zero offsets, fragment density map attachments, --- input attachments, color attachments, depth\/stencil attachment, resolve --- attachments, and preserve attachments /must/ be created with --- 'IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM'. +-- In a render pass with non-zero offsets, fragment density map +-- attachments, input attachments, color attachments, depth\/stencil +-- attachment, resolve attachments, and preserve attachments /must/ be +-- created with 'IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM'. pattern IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM = ImageCreateFlagBits 0x00008000 -- | 'IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT' specifies that the image /can/ diff --git a/src/Vulkan/Core10/Enums/ImageLayout.hs b/src/Vulkan/Core10/Enums/ImageLayout.hs index dc24f4008..996dd489f 100644 --- a/src/Vulkan/Core10/Enums/ImageLayout.hs +++ b/src/Vulkan/Core10/Enums/ImageLayout.hs @@ -70,10 +70,15 @@ import GHC.Show (Show(showsPrec)) -- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.CopyBufferToImageInfo2', -- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.CopyImageInfo2', -- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.CopyImageToBufferInfo2', +-- 'Vulkan.Extensions.VK_EXT_host_image_copy.CopyImageToImageInfoEXT', +-- 'Vulkan.Extensions.VK_EXT_host_image_copy.CopyImageToMemoryInfoEXT', +-- 'Vulkan.Extensions.VK_EXT_host_image_copy.CopyMemoryToImageInfoEXT', -- 'Vulkan.Core10.DescriptorSet.DescriptorImageInfo', +-- 'Vulkan.Extensions.VK_EXT_host_image_copy.HostImageLayoutTransitionInfoEXT', -- 'Vulkan.Core10.Image.ImageCreateInfo', -- 'Vulkan.Core10.OtherTypes.ImageMemoryBarrier', -- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.ImageMemoryBarrier2', +-- 'Vulkan.Extensions.VK_EXT_host_image_copy.PhysicalDeviceHostImageCopyPropertiesEXT', -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingAttachmentInfo', -- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentDensityMapAttachmentInfoEXT', -- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentShadingRateAttachmentInfoKHR', diff --git a/src/Vulkan/Core10/Enums/ImageUsageFlagBits.hs b/src/Vulkan/Core10/Enums/ImageUsageFlagBits.hs index ab043b805..428202a36 100644 --- a/src/Vulkan/Core10/Enums/ImageUsageFlagBits.hs +++ b/src/Vulkan/Core10/Enums/ImageUsageFlagBits.hs @@ -13,6 +13,7 @@ module Vulkan.Core10.Enums.ImageUsageFlagBits ( ImageUsageFlags , IMAGE_USAGE_SAMPLE_WEIGHT_BIT_QCOM , IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI , IMAGE_USAGE_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT + , IMAGE_USAGE_HOST_TRANSFER_BIT_EXT , IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR , IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT , .. @@ -111,6 +112,10 @@ pattern IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI = ImageUsageFlagBits 0x00040000 -- attachment) in the same render pass. pattern IMAGE_USAGE_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = ImageUsageFlagBits 0x00080000 +-- | 'IMAGE_USAGE_HOST_TRANSFER_BIT_EXT' specifies that the image /can/ be +-- used with host copy commands and host layout transitions. +pattern IMAGE_USAGE_HOST_TRANSFER_BIT_EXT = ImageUsageFlagBits 0x00400000 + -- | '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 @@ -175,6 +180,10 @@ showTableImageUsageFlagBits = ( IMAGE_USAGE_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT , "ATTACHMENT_FEEDBACK_LOOP_BIT_EXT" ) + , + ( IMAGE_USAGE_HOST_TRANSFER_BIT_EXT + , "HOST_TRANSFER_BIT_EXT" + ) , ( IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR , "FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR" diff --git a/src/Vulkan/Core10/Enums/IndexType.hs b/src/Vulkan/Core10/Enums/IndexType.hs index a1eccea5a..4fa58bbb4 100644 --- a/src/Vulkan/Core10/Enums/IndexType.hs +++ b/src/Vulkan/Core10/Enums/IndexType.hs @@ -27,7 +27,8 @@ import GHC.Show (Show(showsPrec)) -- 'Vulkan.Extensions.VK_NV_device_generated_commands.BindIndexBufferIndirectCommandNV', -- 'Vulkan.Extensions.VK_NV_ray_tracing.GeometryTrianglesNV', -- 'Vulkan.Extensions.VK_NV_device_generated_commands.IndirectCommandsLayoutTokenNV', --- 'Vulkan.Core10.CommandBufferBuilding.cmdBindIndexBuffer' +-- 'Vulkan.Core10.CommandBufferBuilding.cmdBindIndexBuffer', +-- 'Vulkan.Extensions.VK_KHR_maintenance5.cmdBindIndexBuffer2KHR' newtype IndexType = IndexType Int32 deriving newtype (Eq, Ord, Storable, Zero) diff --git a/src/Vulkan/Core10/Enums/ObjectType.hs b/src/Vulkan/Core10/Enums/ObjectType.hs index f3492d5bb..8e6e9e710 100644 --- a/src/Vulkan/Core10/Enums/ObjectType.hs +++ b/src/Vulkan/Core10/Enums/ObjectType.hs @@ -65,93 +65,103 @@ import GHC.Show (Show(showsPrec)) -- -- \' -- --- +-----------------------------------------------+-----------------------------------------------------------+ --- | 'ObjectType' | Vulkan Handle Type | --- +===============================================+===========================================================+ --- | 'OBJECT_TYPE_UNKNOWN' | Unknown\/Undefined Handle | --- +-----------------------------------------------+-----------------------------------------------------------+ --- | 'OBJECT_TYPE_INSTANCE' | 'Vulkan.Core10.Handles.Instance' | --- +-----------------------------------------------+-----------------------------------------------------------+ --- | 'OBJECT_TYPE_PHYSICAL_DEVICE' | 'Vulkan.Core10.Handles.PhysicalDevice' | --- +-----------------------------------------------+-----------------------------------------------------------+ --- | 'OBJECT_TYPE_DEVICE' | 'Vulkan.Core10.Handles.Device' | --- +-----------------------------------------------+-----------------------------------------------------------+ --- | 'OBJECT_TYPE_QUEUE' | 'Vulkan.Core10.Handles.Queue' | --- +-----------------------------------------------+-----------------------------------------------------------+ --- | 'OBJECT_TYPE_SEMAPHORE' | 'Vulkan.Core10.Handles.Semaphore' | --- +-----------------------------------------------+-----------------------------------------------------------+ --- | 'OBJECT_TYPE_COMMAND_BUFFER' | 'Vulkan.Core10.Handles.CommandBuffer' | --- +-----------------------------------------------+-----------------------------------------------------------+ --- | 'OBJECT_TYPE_FENCE' | 'Vulkan.Core10.Handles.Fence' | --- +-----------------------------------------------+-----------------------------------------------------------+ --- | 'OBJECT_TYPE_DEVICE_MEMORY' | 'Vulkan.Core10.Handles.DeviceMemory' | --- +-----------------------------------------------+-----------------------------------------------------------+ --- | 'OBJECT_TYPE_BUFFER' | 'Vulkan.Core10.Handles.Buffer' | --- +-----------------------------------------------+-----------------------------------------------------------+ --- | 'OBJECT_TYPE_IMAGE' | 'Vulkan.Core10.Handles.Image' | --- +-----------------------------------------------+-----------------------------------------------------------+ --- | 'OBJECT_TYPE_EVENT' | 'Vulkan.Core10.Handles.Event' | --- +-----------------------------------------------+-----------------------------------------------------------+ --- | 'OBJECT_TYPE_QUERY_POOL' | 'Vulkan.Core10.Handles.QueryPool' | --- +-----------------------------------------------+-----------------------------------------------------------+ --- | 'OBJECT_TYPE_BUFFER_VIEW' | 'Vulkan.Core10.Handles.BufferView' | --- +-----------------------------------------------+-----------------------------------------------------------+ --- | 'OBJECT_TYPE_IMAGE_VIEW' | 'Vulkan.Core10.Handles.ImageView' | --- +-----------------------------------------------+-----------------------------------------------------------+ --- | 'OBJECT_TYPE_SHADER_MODULE' | 'Vulkan.Core10.Handles.ShaderModule' | --- +-----------------------------------------------+-----------------------------------------------------------+ --- | 'OBJECT_TYPE_PIPELINE_CACHE' | 'Vulkan.Core10.Handles.PipelineCache' | --- +-----------------------------------------------+-----------------------------------------------------------+ --- | 'OBJECT_TYPE_PIPELINE_LAYOUT' | 'Vulkan.Core10.Handles.PipelineLayout' | --- +-----------------------------------------------+-----------------------------------------------------------+ --- | 'OBJECT_TYPE_RENDER_PASS' | 'Vulkan.Core10.Handles.RenderPass' | --- +-----------------------------------------------+-----------------------------------------------------------+ --- | 'OBJECT_TYPE_PIPELINE' | 'Vulkan.Core10.Handles.Pipeline' | --- +-----------------------------------------------+-----------------------------------------------------------+ --- | 'OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT' | 'Vulkan.Core10.Handles.DescriptorSetLayout' | --- +-----------------------------------------------+-----------------------------------------------------------+ --- | 'OBJECT_TYPE_SAMPLER' | 'Vulkan.Core10.Handles.Sampler' | --- +-----------------------------------------------+-----------------------------------------------------------+ --- | 'OBJECT_TYPE_DESCRIPTOR_POOL' | 'Vulkan.Core10.Handles.DescriptorPool' | --- +-----------------------------------------------+-----------------------------------------------------------+ --- | 'OBJECT_TYPE_DESCRIPTOR_SET' | 'Vulkan.Core10.Handles.DescriptorSet' | --- +-----------------------------------------------+-----------------------------------------------------------+ --- | 'OBJECT_TYPE_FRAMEBUFFER' | 'Vulkan.Core10.Handles.Framebuffer' | --- +-----------------------------------------------+-----------------------------------------------------------+ --- | 'OBJECT_TYPE_COMMAND_POOL' | 'Vulkan.Core10.Handles.CommandPool' | --- +-----------------------------------------------+-----------------------------------------------------------+ --- | 'OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION' | 'Vulkan.Core11.Handles.SamplerYcbcrConversion' | --- +-----------------------------------------------+-----------------------------------------------------------+ --- | 'OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE' | 'Vulkan.Core11.Handles.DescriptorUpdateTemplate' | --- +-----------------------------------------------+-----------------------------------------------------------+ --- | 'OBJECT_TYPE_SURFACE_KHR' | 'Vulkan.Extensions.Handles.SurfaceKHR' | --- +-----------------------------------------------+-----------------------------------------------------------+ --- | 'OBJECT_TYPE_SWAPCHAIN_KHR' | 'Vulkan.Extensions.Handles.SwapchainKHR' | --- +-----------------------------------------------+-----------------------------------------------------------+ --- | 'OBJECT_TYPE_DISPLAY_KHR' | 'Vulkan.Extensions.Handles.DisplayKHR' | --- +-----------------------------------------------+-----------------------------------------------------------+ --- | 'OBJECT_TYPE_DISPLAY_MODE_KHR' | 'Vulkan.Extensions.Handles.DisplayModeKHR' | --- +-----------------------------------------------+-----------------------------------------------------------+ --- | 'OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT' | 'Vulkan.Extensions.Handles.DebugReportCallbackEXT' | --- +-----------------------------------------------+-----------------------------------------------------------+ --- | 'OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NV' | 'Vulkan.Extensions.Handles.IndirectCommandsLayoutNV' | --- +-----------------------------------------------+-----------------------------------------------------------+ --- | 'OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT' | 'Vulkan.Extensions.Handles.DebugUtilsMessengerEXT' | --- +-----------------------------------------------+-----------------------------------------------------------+ --- | 'OBJECT_TYPE_VALIDATION_CACHE_EXT' | 'Vulkan.Extensions.Handles.ValidationCacheEXT' | --- +-----------------------------------------------+-----------------------------------------------------------+ --- | 'OBJECT_TYPE_ACCELERATION_STRUCTURE_NV' | 'Vulkan.Extensions.Handles.AccelerationStructureNV' | --- +-----------------------------------------------+-----------------------------------------------------------+ --- | 'OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR' | 'Vulkan.Extensions.Handles.AccelerationStructureKHR' | --- +-----------------------------------------------+-----------------------------------------------------------+ --- | 'OBJECT_TYPE_PERFORMANCE_CONFIGURATION_INTEL' | 'Vulkan.Extensions.Handles.PerformanceConfigurationINTEL' | --- +-----------------------------------------------+-----------------------------------------------------------+ --- | 'OBJECT_TYPE_DEFERRED_OPERATION_KHR' | 'Vulkan.Extensions.Handles.DeferredOperationKHR' | --- +-----------------------------------------------+-----------------------------------------------------------+ --- | 'OBJECT_TYPE_PRIVATE_DATA_SLOT' | 'Vulkan.Core13.Handles.PrivateDataSlot' | --- +-----------------------------------------------+-----------------------------------------------------------+ --- | 'OBJECT_TYPE_OPTICAL_FLOW_SESSION_NV' | 'Vulkan.Extensions.Handles.OpticalFlowSessionNV' | --- +-----------------------------------------------+-----------------------------------------------------------+ +-- +-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+ +-- | 'ObjectType' | Vulkan Handle Type | +-- +===============================================+=========================================================================================================================================+ +-- | 'OBJECT_TYPE_UNKNOWN' | Unknown\/Undefined Handle | +-- +-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+ +-- | 'OBJECT_TYPE_INSTANCE' | 'Vulkan.Core10.Handles.Instance' | +-- +-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+ +-- | 'OBJECT_TYPE_PHYSICAL_DEVICE' | 'Vulkan.Core10.Handles.PhysicalDevice' | +-- +-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+ +-- | 'OBJECT_TYPE_DEVICE' | 'Vulkan.Core10.Handles.Device' | +-- +-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+ +-- | 'OBJECT_TYPE_QUEUE' | 'Vulkan.Core10.Handles.Queue' | +-- +-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+ +-- | 'OBJECT_TYPE_SEMAPHORE' | 'Vulkan.Core10.Handles.Semaphore' | +-- +-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+ +-- | 'OBJECT_TYPE_COMMAND_BUFFER' | 'Vulkan.Core10.Handles.CommandBuffer' | +-- +-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+ +-- | 'OBJECT_TYPE_FENCE' | 'Vulkan.Core10.Handles.Fence' | +-- +-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+ +-- | 'OBJECT_TYPE_DEVICE_MEMORY' | 'Vulkan.Core10.Handles.DeviceMemory' | +-- +-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+ +-- | 'OBJECT_TYPE_BUFFER' | 'Vulkan.Core10.Handles.Buffer' | +-- +-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+ +-- | 'OBJECT_TYPE_IMAGE' | 'Vulkan.Core10.Handles.Image' | +-- +-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+ +-- | 'OBJECT_TYPE_EVENT' | 'Vulkan.Core10.Handles.Event' | +-- +-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+ +-- | 'OBJECT_TYPE_QUERY_POOL' | 'Vulkan.Core10.Handles.QueryPool' | +-- +-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+ +-- | 'OBJECT_TYPE_BUFFER_VIEW' | 'Vulkan.Core10.Handles.BufferView' | +-- +-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+ +-- | 'OBJECT_TYPE_IMAGE_VIEW' | 'Vulkan.Core10.Handles.ImageView' | +-- +-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+ +-- | 'OBJECT_TYPE_SHADER_MODULE' | 'Vulkan.Core10.Handles.ShaderModule' | +-- +-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+ +-- | 'OBJECT_TYPE_PIPELINE_CACHE' | 'Vulkan.Core10.Handles.PipelineCache' | +-- +-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+ +-- | 'OBJECT_TYPE_PIPELINE_LAYOUT' | 'Vulkan.Core10.Handles.PipelineLayout' | +-- +-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+ +-- | 'OBJECT_TYPE_RENDER_PASS' | 'Vulkan.Core10.Handles.RenderPass' | +-- +-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+ +-- | 'OBJECT_TYPE_PIPELINE' | 'Vulkan.Core10.Handles.Pipeline' | +-- +-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+ +-- | 'OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT' | 'Vulkan.Core10.Handles.DescriptorSetLayout' | +-- +-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+ +-- | 'OBJECT_TYPE_SAMPLER' | 'Vulkan.Core10.Handles.Sampler' | +-- +-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+ +-- | 'OBJECT_TYPE_DESCRIPTOR_POOL' | 'Vulkan.Core10.Handles.DescriptorPool' | +-- +-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+ +-- | 'OBJECT_TYPE_DESCRIPTOR_SET' | 'Vulkan.Core10.Handles.DescriptorSet' | +-- +-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+ +-- | 'OBJECT_TYPE_FRAMEBUFFER' | 'Vulkan.Core10.Handles.Framebuffer' | +-- +-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+ +-- | 'OBJECT_TYPE_COMMAND_POOL' | 'Vulkan.Core10.Handles.CommandPool' | +-- +-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+ +-- | 'OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION' | 'Vulkan.Core11.Handles.SamplerYcbcrConversion' | +-- +-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+ +-- | 'OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE' | 'Vulkan.Core11.Handles.DescriptorUpdateTemplate' | +-- +-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+ +-- | 'OBJECT_TYPE_PRIVATE_DATA_SLOT' | 'Vulkan.Core13.Handles.PrivateDataSlot' | +-- +-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+ +-- | 'OBJECT_TYPE_SURFACE_KHR' | 'Vulkan.Extensions.Handles.SurfaceKHR' | +-- +-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+ +-- | 'OBJECT_TYPE_SWAPCHAIN_KHR' | 'Vulkan.Extensions.Handles.SwapchainKHR' | +-- +-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+ +-- | 'OBJECT_TYPE_DISPLAY_KHR' | 'Vulkan.Extensions.Handles.DisplayKHR' | +-- +-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+ +-- | 'OBJECT_TYPE_DISPLAY_MODE_KHR' | 'Vulkan.Extensions.Handles.DisplayModeKHR' | +-- +-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+ +-- | 'OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT' | 'Vulkan.Extensions.Handles.DebugReportCallbackEXT' | +-- +-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+ +-- | @VK_OBJECT_TYPE_VIDEO_SESSION_KHR@ | | +-- +-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+ +-- | @VK_OBJECT_TYPE_VIDEO_SESSION_PARAMETERS_KHR@ | | +-- +-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+ +-- | 'OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT' | 'Vulkan.Extensions.Handles.DebugUtilsMessengerEXT' | +-- +-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+ +-- | 'OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR' | 'Vulkan.Extensions.Handles.AccelerationStructureKHR' | +-- +-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+ +-- | 'OBJECT_TYPE_VALIDATION_CACHE_EXT' | 'Vulkan.Extensions.Handles.ValidationCacheEXT' | +-- +-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+ +-- | 'OBJECT_TYPE_ACCELERATION_STRUCTURE_NV' | 'Vulkan.Extensions.Handles.AccelerationStructureNV' | +-- +-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+ +-- | 'OBJECT_TYPE_PERFORMANCE_CONFIGURATION_INTEL' | 'Vulkan.Extensions.Handles.PerformanceConfigurationINTEL' | +-- +-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+ +-- | 'OBJECT_TYPE_DEFERRED_OPERATION_KHR' | 'Vulkan.Extensions.Handles.DeferredOperationKHR' | +-- +-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+ +-- | 'OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NV' | 'Vulkan.Extensions.Handles.IndirectCommandsLayoutNV' | +-- +-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+ +-- | 'OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA' | 'Vulkan.Extensions.Handles.BufferCollectionFUCHSIA' | +-- +-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+ +-- | 'OBJECT_TYPE_MICROMAP_EXT' | 'Vulkan.Extensions.Handles.MicromapEXT' | +-- +-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+ +-- | 'OBJECT_TYPE_OPTICAL_FLOW_SESSION_NV' | 'Vulkan.Extensions.Handles.OpticalFlowSessionNV' | +-- +-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+ +-- | 'OBJECT_TYPE_SHADER_EXT' | 'Vulkan.Extensions.Handles.ShaderEXT' | +-- +-----------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+ -- -- 'ObjectType' and Vulkan Handle Relationship -- diff --git a/src/Vulkan/Core10/Enums/PipelineBindPoint.hs b/src/Vulkan/Core10/Enums/PipelineBindPoint.hs index 179171230..488772858 100644 --- a/src/Vulkan/Core10/Enums/PipelineBindPoint.hs +++ b/src/Vulkan/Core10/Enums/PipelineBindPoint.hs @@ -4,6 +4,7 @@ module Vulkan.Core10.Enums.PipelineBindPoint (PipelineBindPoint( PIPELINE_BIND_ , PIPELINE_BIND_POINT_COMPUTE , PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI , PIPELINE_BIND_POINT_RAY_TRACING_KHR + , PIPELINE_BIND_POINT_EXECUTION_GRAPH_AMDX , .. )) where @@ -26,6 +27,7 @@ import GHC.Show (Show(showsPrec)) -- 'Vulkan.Extensions.VK_NV_device_generated_commands.GeneratedCommandsInfoNV', -- 'Vulkan.Extensions.VK_NV_device_generated_commands.GeneratedCommandsMemoryRequirementsInfoNV', -- 'Vulkan.Extensions.VK_NV_device_generated_commands.IndirectCommandsLayoutCreateInfoNV', +-- 'Vulkan.Extensions.VK_NV_device_generated_commands_compute.PipelineIndirectDeviceAddressInfoNV', -- 'Vulkan.Core10.Pass.SubpassDescription', -- 'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.SubpassDescription2', -- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdBindDescriptorBufferEmbeddedSamplersEXT', @@ -33,7 +35,8 @@ import GHC.Show (Show(showsPrec)) -- 'Vulkan.Core10.CommandBufferBuilding.cmdBindPipeline', -- 'Vulkan.Extensions.VK_NV_device_generated_commands.cmdBindPipelineShaderGroupNV', -- 'Vulkan.Extensions.VK_KHR_push_descriptor.cmdPushDescriptorSetKHR', --- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT' +-- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT', +-- 'Vulkan.Extensions.VK_NV_device_generated_commands_compute.cmdUpdatePipelineIndirectBufferNV' newtype PipelineBindPoint = PipelineBindPoint Int32 deriving newtype (Eq, Ord, Storable, Zero) @@ -51,11 +54,16 @@ pattern PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI = PipelineBindPoint 100036900 -- pipeline. pattern PIPELINE_BIND_POINT_RAY_TRACING_KHR = PipelineBindPoint 1000165000 +-- | 'PIPELINE_BIND_POINT_EXECUTION_GRAPH_AMDX' specifies binding as an +-- . +pattern PIPELINE_BIND_POINT_EXECUTION_GRAPH_AMDX = PipelineBindPoint 1000134000 + {-# COMPLETE PIPELINE_BIND_POINT_GRAPHICS , PIPELINE_BIND_POINT_COMPUTE , PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI - , PIPELINE_BIND_POINT_RAY_TRACING_KHR :: + , PIPELINE_BIND_POINT_RAY_TRACING_KHR + , PIPELINE_BIND_POINT_EXECUTION_GRAPH_AMDX :: PipelineBindPoint #-} @@ -77,6 +85,10 @@ showTablePipelineBindPoint = ( PIPELINE_BIND_POINT_RAY_TRACING_KHR , "RAY_TRACING_KHR" ) + , + ( PIPELINE_BIND_POINT_EXECUTION_GRAPH_AMDX + , "EXECUTION_GRAPH_AMDX" + ) ] instance Show PipelineBindPoint where diff --git a/src/Vulkan/Core10/Enums/PipelineCacheHeaderVersion.hs b/src/Vulkan/Core10/Enums/PipelineCacheHeaderVersion.hs index 12b47d02c..a68ca12ae 100644 --- a/src/Vulkan/Core10/Enums/PipelineCacheHeaderVersion.hs +++ b/src/Vulkan/Core10/Enums/PipelineCacheHeaderVersion.hs @@ -28,7 +28,8 @@ newtype PipelineCacheHeaderVersion = PipelineCacheHeaderVersion Int32 -- Note that the zero instance does not produce a valid value, passing 'zero' to Vulkan will result in an error -- | 'PIPELINE_CACHE_HEADER_VERSION_ONE' specifies version one of the --- pipeline cache. +-- pipeline cache, described by +-- 'Vulkan.Core10.OtherTypes.PipelineCacheHeaderVersionOne'. pattern PIPELINE_CACHE_HEADER_VERSION_ONE = PipelineCacheHeaderVersion 1 -- No documentation found for Nested "VkPipelineCacheHeaderVersion" "VK_PIPELINE_CACHE_HEADER_VERSION_SAFETY_CRITICAL_ONE" diff --git a/src/Vulkan/Core10/Enums/PipelineColorBlendStateCreateFlagBits.hs b/src/Vulkan/Core10/Enums/PipelineColorBlendStateCreateFlagBits.hs index a6bfebb40..7006b6f35 100644 --- a/src/Vulkan/Core10/Enums/PipelineColorBlendStateCreateFlagBits.hs +++ b/src/Vulkan/Core10/Enums/PipelineColorBlendStateCreateFlagBits.hs @@ -22,6 +22,44 @@ type PipelineColorBlendStateCreateFlags = PipelineColorBlendStateCreateFlagBits -- | VkPipelineColorBlendStateCreateFlagBits - Bitmask specifying additional -- parameters of an image -- +-- = Description +-- +-- - 'PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT' +-- indicates that access to color and input attachments will have +-- implicit framebuffer-local memory dependencies, allowing +-- applications to express custom blending operations in a fragment +-- shader. +-- +-- When +-- 'PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT' +-- is included in a pipeline, it forms a framebuffer-local memory +-- dependency for each fragment generated by draw commands for that +-- pipeline with the following scopes: +-- +-- - The first +-- +-- includes the +-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT' +-- pipeline stage executed by all previous fragments (as defined by +-- ) +-- in the corresponding +-- +-- including those generated by the same draw command. +-- +-- - The second +-- +-- includes the +-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADER_BIT' +-- pipeline stage executed by the generated fragment. +-- +-- - The first +-- +-- includes all writes to color attachments. +-- +-- - The second +-- +-- includes all reads from input attachments. +-- -- = See Also -- -- , @@ -29,12 +67,7 @@ type PipelineColorBlendStateCreateFlags = PipelineColorBlendStateCreateFlagBits newtype PipelineColorBlendStateCreateFlagBits = PipelineColorBlendStateCreateFlagBits Flags deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits) --- | 'PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT' --- indicates that access to color and input attachments will have implicit --- framebuffer-local memory dependencies, allowing applications to express --- custom blending operations in a fragment shader. See --- --- for more information. +-- No documentation found for Nested "VkPipelineColorBlendStateCreateFlagBits" "VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT" pattern PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT = PipelineColorBlendStateCreateFlagBits 0x00000001 conNamePipelineColorBlendStateCreateFlagBits :: String diff --git a/src/Vulkan/Core10/Enums/PipelineCreateFlagBits.hs b/src/Vulkan/Core10/Enums/PipelineCreateFlagBits.hs index 2bc853814..6e0163eca 100644 --- a/src/Vulkan/Core10/Enums/PipelineCreateFlagBits.hs +++ b/src/Vulkan/Core10/Enums/PipelineCreateFlagBits.hs @@ -191,11 +191,15 @@ type PipelineCreateFlags = PipelineCreateFlagBits -- -- - 'PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT' specifies -- that the pipeline /may/ be used with an attachment feedback loop --- including color attachments. +-- including color attachments. It is ignored if +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT' +-- is set in @pDynamicStates@. -- -- - 'PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT' -- specifies that the pipeline /may/ be used with an attachment --- feedback loop including depth-stencil attachments. +-- feedback loop including depth-stencil attachments. It is ignored if +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT' +-- is set in @pDynamicStates@. -- -- - 'PIPELINE_CREATE_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT' specifies -- that the pipeline /can/ be used with acceleration structures which diff --git a/src/Vulkan/Core10/Enums/PipelineDepthStencilStateCreateFlagBits.hs b/src/Vulkan/Core10/Enums/PipelineDepthStencilStateCreateFlagBits.hs index b08611da7..1bbb6955e 100644 --- a/src/Vulkan/Core10/Enums/PipelineDepthStencilStateCreateFlagBits.hs +++ b/src/Vulkan/Core10/Enums/PipelineDepthStencilStateCreateFlagBits.hs @@ -23,6 +23,85 @@ type PipelineDepthStencilStateCreateFlags = PipelineDepthStencilStateCreateFlagB -- | VkPipelineDepthStencilStateCreateFlagBits - Bitmask specifying -- additional depth\/stencil state information. -- +-- = Description +-- +-- - 'PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT' +-- indicates that access to the depth aspects of depth\/stencil and +-- input attachments will have implicit framebuffer-local memory +-- dependencies. +-- +-- - 'PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT' +-- indicates that access to the stencil aspects of depth\/stencil and +-- input attachments will have implicit framebuffer-local memory +-- dependencies. +-- +-- When +-- 'PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT' +-- is included in a pipeline, it forms a framebuffer-local memory +-- dependency for each fragment generated by draw commands for that +-- pipeline with the following scopes: +-- +-- - The first +-- +-- includes +-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADER_BIT' +-- and +-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT' +-- pipeline stages executed by all previous fragments (as defined by +-- ) +-- in the corresponding +-- +-- including those generated by the same draw command. +-- +-- - The second +-- +-- includes +-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADER_BIT' +-- stage executed by the generated fragment. +-- +-- - The first +-- +-- includes all writes to the depth aspect of depth\/stencil +-- attachments. +-- +-- - The second +-- +-- includes all reads from the depth aspect of input attachments. +-- +-- When +-- 'PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT' +-- is included in a pipeline, it forms a framebuffer-local memory +-- dependency for each fragment generated by draw commands for that +-- pipeline with the following scopes: +-- +-- - The first +-- +-- includes +-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADER_BIT' +-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT' +-- pipeline stages executed by all previous fragments (as defined by +-- ) +-- in the corresponding +-- +-- including those generated by the same draw command. +-- +-- - The second +-- +-- includes +-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADER_BIT' +-- and +-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT' +-- pipeline stages executed by the generated fragment. +-- +-- - The first +-- +-- includes all writes to the stencil aspect of depth\/stencil +-- attachments. +-- +-- - The second +-- +-- includes all reads from the stencil aspect of input attachments. +-- -- = See Also -- -- , @@ -30,20 +109,10 @@ type PipelineDepthStencilStateCreateFlags = PipelineDepthStencilStateCreateFlagB newtype PipelineDepthStencilStateCreateFlagBits = PipelineDepthStencilStateCreateFlagBits Flags deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits) --- | 'PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT' --- indicates that access to the stencil aspects of depth\/stencil and input --- attachments will have implicit framebuffer-local memory dependencies. --- See --- --- for more information. +-- No documentation found for Nested "VkPipelineDepthStencilStateCreateFlagBits" "VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT" pattern PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT = PipelineDepthStencilStateCreateFlagBits 0x00000002 --- | 'PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT' --- indicates that access to the depth aspects of depth\/stencil and input --- attachments will have implicit framebuffer-local memory dependencies. --- See --- --- for more information. +-- No documentation found for Nested "VkPipelineDepthStencilStateCreateFlagBits" "VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT" pattern PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT = PipelineDepthStencilStateCreateFlagBits 0x00000001 conNamePipelineDepthStencilStateCreateFlagBits :: String diff --git a/src/Vulkan/Core10/Enums/PipelineShaderStageCreateFlagBits.hs b/src/Vulkan/Core10/Enums/PipelineShaderStageCreateFlagBits.hs index af218e3cb..b4a159bfa 100644 --- a/src/Vulkan/Core10/Enums/PipelineShaderStageCreateFlagBits.hs +++ b/src/Vulkan/Core10/Enums/PipelineShaderStageCreateFlagBits.hs @@ -52,7 +52,7 @@ newtype PipelineShaderStageCreateFlagBits = PipelineShaderStageCreateFlagBits Fl -- | 'PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT' specifies that -- the subgroup sizes /must/ be launched with all invocations active in the --- compute stage. +-- task, mesh, or compute stage. pattern PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT = PipelineShaderStageCreateFlagBits 0x00000002 -- | 'PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT' specifies diff --git a/src/Vulkan/Core10/Enums/PipelineStageFlagBits.hs b/src/Vulkan/Core10/Enums/PipelineStageFlagBits.hs index 6da8ddb6e..65f008fff 100644 --- a/src/Vulkan/Core10/Enums/PipelineStageFlagBits.hs +++ b/src/Vulkan/Core10/Enums/PipelineStageFlagBits.hs @@ -102,24 +102,29 @@ pattern PIPELINE_STAGE_FRAGMENT_SHADER_BIT = PipelineStageFlagBits 0x00000080 -- | 'PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT' specifies the stage of the -- pipeline where early fragment tests (depth and stencil tests before -- fragment shading) are performed. This stage also includes --- +-- -- for framebuffer attachments with a depth\/stencil format. pattern PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT = PipelineStageFlagBits 0x00000100 -- | 'PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT' specifies the stage of the -- pipeline where late fragment tests (depth and stencil tests after -- fragment shading) are performed. This stage also includes --- +-- -- for framebuffer attachments with a depth\/stencil format. pattern PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT = PipelineStageFlagBits 0x00000200 -- | 'PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT' specifies the stage of the -- pipeline after blending where the final color values are output from the --- pipeline. This stage also includes --- , --- multisample resolve operations for framebuffer attachments with a color --- or depth\/stencil format, and --- 'Vulkan.Core10.CommandBufferBuilding.cmdClearAttachments'. +-- pipeline. This stage includes +-- , +-- , +-- render pass +-- +-- and +-- +-- operations for color attachments, +-- , +-- and 'Vulkan.Core10.CommandBufferBuilding.cmdClearAttachments'. pattern PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT = PipelineStageFlagBits 0x00000400 -- | 'PIPELINE_STAGE_COMPUTE_SHADER_BIT' specifies the execution of a compute diff --git a/src/Vulkan/Core10/Enums/PolygonMode.hs b/src/Vulkan/Core10/Enums/PolygonMode.hs index d9aaebca3..53fa0af41 100644 --- a/src/Vulkan/Core10/Enums/PolygonMode.hs +++ b/src/Vulkan/Core10/Enums/PolygonMode.hs @@ -24,6 +24,20 @@ import GHC.Show (Show(showsPrec)) -- particular, a polygon’s vertices are shaded and the polygon is clipped -- and possibly culled before these modes are applied. -- +-- If +-- 'Vulkan.Extensions.VK_KHR_maintenance5.PhysicalDeviceMaintenance5PropertiesKHR'::@polygonModePointSize@ +-- is set to 'Vulkan.Core10.FundamentalTypes.TRUE', the point size of the +-- final rasterization of polygons is taken from @PointSize@ when +-- +-- is 'POLYGON_MODE_POINT'. +-- +-- Otherwise, if +-- 'Vulkan.Extensions.VK_KHR_maintenance5.PhysicalDeviceMaintenance5PropertiesKHR'::@polygonModePointSize@ +-- is set to 'Vulkan.Core10.FundamentalTypes.FALSE', the point size of the +-- final rasterization of polygons is 1.0 when +-- +-- is 'POLYGON_MODE_POINT'. +-- -- = See Also -- -- , diff --git a/src/Vulkan/Core10/Enums/Result.hs b/src/Vulkan/Core10/Enums/Result.hs index cf4edbd9a..adb048a97 100644 --- a/src/Vulkan/Core10/Enums/Result.hs +++ b/src/Vulkan/Core10/Enums/Result.hs @@ -91,6 +91,11 @@ import GHC.Show (Show(showsPrec)) -- possible. If no issues are identified it could be an implementation -- issue, and the implementor should be contacted for support. -- +-- Any command returning a 'Result' /may/ return +-- 'ERROR_VALIDATION_FAILED_EXT' if a violation of valid usage is detected, +-- even though commands do not explicitly list this as a possible return +-- code. +-- -- Performance-critical commands generally do not have return codes. If a -- runtime error occurs in such commands, the implementation will defer -- reporting the error until a specified point. For commands that record @@ -218,7 +223,8 @@ pattern ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT = Result (-1000158000 -- @VK_EXT_debug_report@ if enabled. pattern ERROR_INVALID_SHADER_NV = Result (-1000012000) --- No documentation found for Nested "VkResult" "VK_ERROR_VALIDATION_FAILED_EXT" +-- | 'ERROR_VALIDATION_FAILED_EXT' A command failed because invalid usage was +-- detected by the implementation or a validation-layer. pattern ERROR_VALIDATION_FAILED_EXT = Result (-1000011001) -- | 'ERROR_INCOMPATIBLE_DISPLAY_KHR' The display used by a swapchain does diff --git a/src/Vulkan/Core10/Enums/SamplerCreateFlagBits.hs b/src/Vulkan/Core10/Enums/SamplerCreateFlagBits.hs index 1a9acbb69..88b33af6c 100644 --- a/src/Vulkan/Core10/Enums/SamplerCreateFlagBits.hs +++ b/src/Vulkan/Core10/Enums/SamplerCreateFlagBits.hs @@ -47,7 +47,9 @@ newtype SamplerCreateFlagBits = SamplerCreateFlagBits Flags -- | #samplers-imageprocessingsampler# -- 'SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM' specifies that the sampler -- will read from images using only @OpImageWeightedSampleQCOM@, --- @OpImageBoxFilterQCOM@, @OpImageBlockMatchSSDQCOM@, or +-- @OpImageBoxFilterQCOM@, @OpImageBlockMatchGatherSSDQCOM@, +-- @OpImageBlockMatchGatherSADQCOM@, @OpImageBlockMatchWindowSSDQCOM@, +-- @OpImageBlockMatchWindowSADQCOM@, @OpImageBlockMatchSSDQCOM@, or -- @OpImageBlockMatchSADQCOM@. pattern SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM = SamplerCreateFlagBits 0x00000010 diff --git a/src/Vulkan/Core10/Enums/StructureType.hs b/src/Vulkan/Core10/Enums/StructureType.hs index dd9b69bca..4195cf94d 100644 --- a/src/Vulkan/Core10/Enums/StructureType.hs +++ b/src/Vulkan/Core10/Enums/StructureType.hs @@ -49,13 +49,45 @@ module Vulkan.Core10.Enums.StructureType (StructureType( STRUCTURE_TYPE_APPLICA , STRUCTURE_TYPE_MEMORY_BARRIER , STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO , STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO + , STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_POOL_OVERALLOCATION_FEATURES_NV + , STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_DRIVER_PROPERTIES_MSFT + , STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_SCREEN_BUFFER_FEATURES_QNX + , STRUCTURE_TYPE_EXTERNAL_FORMAT_QNX + , STRUCTURE_TYPE_IMPORT_SCREEN_BUFFER_INFO_QNX + , STRUCTURE_TYPE_SCREEN_BUFFER_FORMAT_PROPERTIES_QNX + , STRUCTURE_TYPE_SCREEN_BUFFER_PROPERTIES_QNX + , STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_FEATURES_EXT + , STRUCTURE_TYPE_PHYSICAL_DEVICE_CUBIC_CLAMP_FEATURES_QCOM + , STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_YCBCR_DEGAMMA_CREATE_INFO_QCOM + , STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_DEGAMMA_FEATURES_QCOM + , STRUCTURE_TYPE_BLIT_IMAGE_CUBIC_WEIGHTS_INFO_QCOM + , STRUCTURE_TYPE_PHYSICAL_DEVICE_CUBIC_WEIGHTS_FEATURES_QCOM + , STRUCTURE_TYPE_SAMPLER_CUBIC_WEIGHTS_CREATE_INFO_QCOM + , STRUCTURE_TYPE_SAMPLER_BLOCK_MATCH_WINDOW_CREATE_INFO_QCOM + , STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_2_PROPERTIES_QCOM + , STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_2_FEATURES_QCOM , STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_RENDER_AREAS_RENDER_PASS_BEGIN_INFO_QCOM , STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_RENDER_AREAS_FEATURES_QCOM + , STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_KHR + , STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_KHR + , STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_KHR + , STRUCTURE_TYPE_LATENCY_SURFACE_CAPABILITIES_NV + , STRUCTURE_TYPE_SWAPCHAIN_LATENCY_CREATE_INFO_NV + , STRUCTURE_TYPE_OUT_OF_BAND_QUEUE_TYPE_INFO_NV + , STRUCTURE_TYPE_LATENCY_SUBMISSION_PRESENT_ID_NV + , STRUCTURE_TYPE_LATENCY_TIMINGS_FRAME_REPORT_NV + , STRUCTURE_TYPE_GET_LATENCY_MARKER_INFO_NV + , STRUCTURE_TYPE_SET_LATENCY_MARKER_INFO_NV + , STRUCTURE_TYPE_LATENCY_SLEEP_INFO_NV + , STRUCTURE_TYPE_LATENCY_SLEEP_MODE_INFO_NV + , STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_FEATURES_EXT , STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_LIBRARY_GROUP_HANDLES_FEATURES_EXT , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_PROPERTIES_ARM , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_FEATURES_ARM , STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_EXT , STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT + , STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_PROPERTIES_NV + , STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_FEATURES_NV , STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_PROPERTIES_NV , STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_FEATURES_NV , STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_VIEWPORTS_FEATURES_QCOM @@ -68,6 +100,18 @@ module Vulkan.Core10.Enums.StructureType (StructureType( STRUCTURE_TYPE_APPLICA , STRUCTURE_TYPE_SHADER_CREATE_INFO_EXT , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_OBJECT_PROPERTIES_EXT , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_OBJECT_FEATURES_EXT + , STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_POSITION_FETCH_FEATURES_KHR + , STRUCTURE_TYPE_BUFFER_USAGE_FLAGS_2_CREATE_INFO_KHR + , STRUCTURE_TYPE_PIPELINE_CREATE_FLAGS_2_CREATE_INFO_KHR + , STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_KHR + , STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_KHR + , STRUCTURE_TYPE_DEVICE_IMAGE_SUBRESOURCE_INFO_KHR + , STRUCTURE_TYPE_RENDERING_AREA_INFO_KHR + , STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_PROPERTIES_KHR + , STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_FEATURES_KHR + , STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_RESOLVE_PROPERTIES_ANDROID + , STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_PROPERTIES_ANDROID + , STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_FEATURES_ANDROID , STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES_EXT , STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_DITHERING_FEATURES_EXT , STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_PRIVATE_DATA_INFO_NV @@ -90,11 +134,17 @@ module Vulkan.Core10.Enums.StructureType (StructureType( STRUCTURE_TYPE_APPLICA , STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT , STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_PROPERTIES_EXT , STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT + , STRUCTURE_TYPE_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_EXT + , STRUCTURE_TYPE_PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_PROPERTIES_EXT + , STRUCTURE_TYPE_PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_FEATURES_EXT , STRUCTURE_TYPE_IMAGE_VIEW_SAMPLE_WEIGHT_CREATE_INFO_QCOM , STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_PROPERTIES_QCOM , STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_FEATURES_QCOM , STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT , STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV + , STRUCTURE_TYPE_PIPELINE_INDIRECT_DEVICE_ADDRESS_INFO_NV + , STRUCTURE_TYPE_COMPUTE_PIPELINE_INDIRECT_BUFFER_INFO_NV + , STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_COMPUTE_FEATURES_NV , STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_PROPERTIES_NV , STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_FEATURES_NV , STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_PROPERTIES_NV @@ -144,6 +194,8 @@ module Vulkan.Core10.Enums.StructureType (StructureType( STRUCTURE_TYPE_APPLICA , STRUCTURE_TYPE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_INFO_EXT , STRUCTURE_TYPE_SUBPASS_RESOLVE_PERFORMANCE_QUERY_EXT , STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_FEATURES_EXT + , STRUCTURE_TYPE_FRAME_BOUNDARY_EXT + , STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAME_BOUNDARY_FEATURES_EXT , STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT , STRUCTURE_TYPE_PIPELINE_PROPERTIES_IDENTIFIER_EXT , STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV @@ -182,8 +234,6 @@ module Vulkan.Core10.Enums.StructureType (StructureType( STRUCTURE_TYPE_APPLICA , STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT , STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_FEATURES_EXT , STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT - , STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_EXT - , STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_EXT , STRUCTURE_TYPE_IMAGE_COMPRESSION_CONTROL_EXT , STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT , STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR @@ -250,6 +300,9 @@ module Vulkan.Core10.Enums.StructureType (StructureType( STRUCTURE_TYPE_APPLICA , STRUCTURE_TYPE_DEVICE_MEMORY_REPORT_CALLBACK_DATA_EXT , STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT , STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT + , STRUCTURE_TYPE_DEPTH_BIAS_REPRESENTATION_INFO_EXT + , STRUCTURE_TYPE_DEPTH_BIAS_INFO_EXT + , STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_BIAS_CONTROL_FEATURES_EXT , STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM , STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM , STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT @@ -275,6 +328,16 @@ module Vulkan.Core10.Enums.StructureType (StructureType( STRUCTURE_TYPE_APPLICA , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT , STRUCTURE_TYPE_MEMORY_UNMAP_INFO_KHR , STRUCTURE_TYPE_MEMORY_MAP_INFO_KHR + , STRUCTURE_TYPE_HOST_IMAGE_COPY_DEVICE_PERFORMANCE_QUERY_EXT + , STRUCTURE_TYPE_SUBRESOURCE_HOST_MEMCPY_SIZE_EXT + , STRUCTURE_TYPE_COPY_IMAGE_TO_IMAGE_INFO_EXT + , STRUCTURE_TYPE_HOST_IMAGE_LAYOUT_TRANSITION_INFO_EXT + , STRUCTURE_TYPE_COPY_MEMORY_TO_IMAGE_INFO_EXT + , STRUCTURE_TYPE_COPY_IMAGE_TO_MEMORY_INFO_EXT + , STRUCTURE_TYPE_IMAGE_TO_MEMORY_COPY_EXT + , STRUCTURE_TYPE_MEMORY_TO_IMAGE_COPY_EXT + , STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_PROPERTIES_EXT + , STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_FEATURES_EXT , STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR , STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR , STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR @@ -419,6 +482,11 @@ module Vulkan.Core10.Enums.StructureType (StructureType( STRUCTURE_TYPE_APPLICA , STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT , STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT , STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT + , STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_NODE_CREATE_INFO_AMDX + , STRUCTURE_TYPE_EXECUTION_GRAPH_PIPELINE_CREATE_INFO_AMDX + , STRUCTURE_TYPE_EXECUTION_GRAPH_PIPELINE_SCRATCH_SIZE_AMDX + , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ENQUEUE_PROPERTIES_AMDX + , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ENQUEUE_FEATURES_AMDX , STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_2_ANDROID , STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID , STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID @@ -756,6 +824,7 @@ import GHC.Show (Show(showsPrec)) -- 'Vulkan.Extensions.VK_SEC_amigo_profiling.AmigoProfilingSubmitInfoSEC', -- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.AndroidHardwareBufferFormatProperties2ANDROID', -- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.AndroidHardwareBufferFormatPropertiesANDROID', +-- 'Vulkan.Extensions.VK_ANDROID_external_format_resolve.AndroidHardwareBufferFormatResolvePropertiesANDROID', -- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.AndroidHardwareBufferPropertiesANDROID', -- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.AndroidHardwareBufferUsageANDROID', -- 'Vulkan.Extensions.VK_KHR_android_surface.AndroidSurfaceCreateInfoKHR', @@ -776,6 +845,7 @@ import GHC.Show (Show(showsPrec)) -- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.BindImagePlaneMemoryInfo', -- 'Vulkan.Core10.SparseResourceMemoryManagement.BindSparseInfo', -- , +-- 'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.BlitImageCubicWeightsInfoQCOM', -- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.BlitImageInfo2', -- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.BufferCaptureDescriptorDataInfoEXT', -- 'Vulkan.Extensions.VK_FUCHSIA_buffer_collection.BufferCollectionBufferCreateInfoFUCHSIA', @@ -793,6 +863,7 @@ import GHC.Show (Show(showsPrec)) -- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.BufferMemoryBarrier2', -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2.BufferMemoryRequirementsInfo2', -- 'Vulkan.Core12.Promoted_From_VK_KHR_buffer_device_address.BufferOpaqueCaptureAddressCreateInfo', +-- 'Vulkan.Extensions.VK_KHR_maintenance5.BufferUsageFlags2CreateInfoKHR', -- 'Vulkan.Core10.BufferView.BufferViewCreateInfo', -- 'Vulkan.Extensions.VK_EXT_calibrated_timestamps.CalibratedTimestampInfoEXT', -- 'Vulkan.Extensions.VK_KHR_synchronization2.CheckpointData2NV', @@ -807,7 +878,9 @@ import GHC.Show (Show(showsPrec)) -- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.CommandBufferSubmitInfo', -- 'Vulkan.Core10.CommandPool.CommandPoolCreateInfo', -- 'Vulkan.Core10.Pipeline.ComputePipelineCreateInfo', +-- 'Vulkan.Extensions.VK_NV_device_generated_commands_compute.ComputePipelineIndirectBufferInfoNV', -- 'Vulkan.Extensions.VK_EXT_conditional_rendering.ConditionalRenderingBeginInfoEXT', +-- 'Vulkan.Extensions.VK_KHR_cooperative_matrix.CooperativeMatrixPropertiesKHR', -- 'Vulkan.Extensions.VK_NV_cooperative_matrix.CooperativeMatrixPropertiesNV', -- 'Vulkan.Extensions.VK_KHR_acceleration_structure.CopyAccelerationStructureInfoKHR', -- 'Vulkan.Extensions.VK_KHR_acceleration_structure.CopyAccelerationStructureToMemoryInfoKHR', @@ -817,7 +890,10 @@ import GHC.Show (Show(showsPrec)) -- 'Vulkan.Core10.DescriptorSet.CopyDescriptorSet', -- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.CopyImageInfo2', -- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.CopyImageToBufferInfo2', +-- 'Vulkan.Extensions.VK_EXT_host_image_copy.CopyImageToImageInfoEXT', +-- 'Vulkan.Extensions.VK_EXT_host_image_copy.CopyImageToMemoryInfoEXT', -- 'Vulkan.Extensions.VK_KHR_acceleration_structure.CopyMemoryToAccelerationStructureInfoKHR', +-- 'Vulkan.Extensions.VK_EXT_host_image_copy.CopyMemoryToImageInfoEXT', -- 'Vulkan.Extensions.VK_EXT_opacity_micromap.CopyMemoryToMicromapInfoEXT', -- 'Vulkan.Extensions.VK_EXT_opacity_micromap.CopyMicromapInfoEXT', -- 'Vulkan.Extensions.VK_EXT_opacity_micromap.CopyMicromapToMemoryInfoEXT', @@ -838,6 +914,8 @@ import GHC.Show (Show(showsPrec)) -- 'Vulkan.Extensions.VK_NV_dedicated_allocation.DedicatedAllocationImageCreateInfoNV', -- 'Vulkan.Extensions.VK_NV_dedicated_allocation.DedicatedAllocationMemoryAllocateInfoNV', -- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.DependencyInfo', +-- 'Vulkan.Extensions.VK_EXT_depth_bias_control.DepthBiasInfoEXT', +-- 'Vulkan.Extensions.VK_EXT_depth_bias_control.DepthBiasRepresentationInfoEXT', -- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.DescriptorAddressInfoEXT', -- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.DescriptorBufferBindingInfoEXT', -- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.DescriptorBufferBindingPushDescriptorBufferHandleEXT', @@ -870,6 +948,7 @@ import GHC.Show (Show(showsPrec)) -- 'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupSubmitInfo', -- 'Vulkan.Extensions.VK_KHR_swapchain.DeviceGroupSwapchainCreateInfoKHR', -- 'Vulkan.Core13.Promoted_From_VK_KHR_maintenance4.DeviceImageMemoryRequirements', +-- 'Vulkan.Extensions.VK_KHR_maintenance5.DeviceImageSubresourceInfoKHR', -- 'Vulkan.Core12.Promoted_From_VK_KHR_buffer_device_address.DeviceMemoryOpaqueCaptureAddressInfo', -- 'Vulkan.Extensions.VK_AMD_memory_overallocation_behavior.DeviceMemoryOverallocationCreateInfoAMD', -- 'Vulkan.Extensions.VK_EXT_device_memory_report.DeviceMemoryReportCallbackDataEXT', @@ -894,6 +973,8 @@ import GHC.Show (Show(showsPrec)) -- 'Vulkan.Extensions.VK_EXT_image_drm_format_modifier.DrmFormatModifierPropertiesList2EXT', -- 'Vulkan.Extensions.VK_EXT_image_drm_format_modifier.DrmFormatModifierPropertiesListEXT', -- 'Vulkan.Core10.Event.EventCreateInfo', +-- 'Vulkan.Extensions.VK_AMDX_shader_enqueue.ExecutionGraphPipelineCreateInfoAMDX', +-- 'Vulkan.Extensions.VK_AMDX_shader_enqueue.ExecutionGraphPipelineScratchSizeAMDX', -- 'Vulkan.Core11.Promoted_From_VK_KHR_external_fence.ExportFenceCreateInfo', -- 'Vulkan.Extensions.VK_KHR_external_fence_win32.ExportFenceWin32HandleInfoKHR', -- 'Vulkan.Core11.Promoted_From_VK_KHR_external_memory.ExportMemoryAllocateInfo', @@ -913,7 +994,9 @@ import GHC.Show (Show(showsPrec)) -- 'Vulkan.Core11.Promoted_From_VK_KHR_external_memory_capabilities.ExternalBufferProperties', -- 'Vulkan.Core11.Promoted_From_VK_KHR_external_fence_capabilities.ExternalFenceProperties', -- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID', +-- 'Vulkan.Extensions.VK_QNX_external_memory_screen_buffer.ExternalFormatQNX', -- 'Vulkan.Core11.Promoted_From_VK_KHR_external_memory_capabilities.ExternalImageFormatProperties', +-- 'Vulkan.Extensions.VK_EXT_external_memory_acquire_unmodified.ExternalMemoryAcquireUnmodifiedEXT', -- 'Vulkan.Core11.Promoted_From_VK_KHR_external_memory.ExternalMemoryBufferCreateInfo', -- 'Vulkan.Core11.Promoted_From_VK_KHR_external_memory.ExternalMemoryImageCreateInfo', -- 'Vulkan.Extensions.VK_NV_external_memory.ExternalMemoryImageCreateInfoNV', @@ -925,6 +1008,7 @@ import GHC.Show (Show(showsPrec)) -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.FormatProperties2', -- 'Vulkan.Core13.Promoted_From_VK_KHR_format_feature_flags2.FormatProperties3', -- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.FragmentShadingRateAttachmentInfoKHR', +-- 'Vulkan.Extensions.VK_EXT_frame_boundary.FrameBoundaryEXT', -- 'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.FramebufferAttachmentImageInfo', -- 'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.FramebufferAttachmentsCreateInfo', -- 'Vulkan.Core10.Pass.FramebufferCreateInfo', @@ -934,12 +1018,15 @@ import GHC.Show (Show(showsPrec)) -- 'Vulkan.Extensions.VK_NV_ray_tracing.GeometryAABBNV', -- 'Vulkan.Extensions.VK_NV_ray_tracing.GeometryNV', -- 'Vulkan.Extensions.VK_NV_ray_tracing.GeometryTrianglesNV', +-- 'Vulkan.Extensions.VK_NV_low_latency2.GetLatencyMarkerInfoNV', -- 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo', -- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GraphicsPipelineLibraryCreateInfoEXT', -- 'Vulkan.Extensions.VK_NV_device_generated_commands.GraphicsPipelineShaderGroupsCreateInfoNV', -- 'Vulkan.Extensions.VK_NV_device_generated_commands.GraphicsShaderGroupCreateInfoNV', -- 'Vulkan.Extensions.VK_EXT_hdr_metadata.HdrMetadataEXT', -- 'Vulkan.Extensions.VK_EXT_headless_surface.HeadlessSurfaceCreateInfoEXT', +-- 'Vulkan.Extensions.VK_EXT_host_image_copy.HostImageCopyDevicePerformanceQueryEXT', +-- 'Vulkan.Extensions.VK_EXT_host_image_copy.HostImageLayoutTransitionInfoEXT', -- 'Vulkan.Extensions.VK_MVK_ios_surface.IOSSurfaceCreateInfoMVK', -- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.ImageBlit2', -- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.ImageCaptureDescriptorDataInfoEXT', @@ -962,8 +1049,9 @@ import GHC.Show (Show(showsPrec)) -- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.ImageResolve2', -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2.ImageSparseMemoryRequirementsInfo2', -- 'Vulkan.Core12.Promoted_From_VK_EXT_separate_stencil_usage.ImageStencilUsageCreateInfo', --- 'Vulkan.Extensions.VK_EXT_image_compression_control.ImageSubresource2EXT', +-- 'Vulkan.Extensions.VK_KHR_maintenance5.ImageSubresource2KHR', -- 'Vulkan.Extensions.VK_KHR_swapchain.ImageSwapchainCreateInfoKHR', +-- 'Vulkan.Extensions.VK_EXT_host_image_copy.ImageToMemoryCopyEXT', -- 'Vulkan.Extensions.VK_EXT_astc_decode_mode.ImageViewASTCDecodeModeEXT', -- 'Vulkan.Extensions.VK_NVX_image_view_handle.ImageViewAddressPropertiesNVX', -- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.ImageViewCaptureDescriptorDataInfoEXT', @@ -986,6 +1074,7 @@ import GHC.Show (Show(showsPrec)) -- 'Vulkan.Extensions.VK_EXT_metal_objects.ImportMetalIOSurfaceInfoEXT', -- 'Vulkan.Extensions.VK_EXT_metal_objects.ImportMetalSharedEventInfoEXT', -- 'Vulkan.Extensions.VK_EXT_metal_objects.ImportMetalTextureInfoEXT', +-- 'Vulkan.Extensions.VK_QNX_external_memory_screen_buffer.ImportScreenBufferInfoQNX', -- 'Vulkan.Extensions.VK_KHR_external_semaphore_fd.ImportSemaphoreFdInfoKHR', -- 'Vulkan.Extensions.VK_KHR_external_semaphore_win32.ImportSemaphoreWin32HandleInfoKHR', -- 'Vulkan.Extensions.VK_FUCHSIA_external_semaphore.ImportSemaphoreZirconHandleInfoFUCHSIA', @@ -993,6 +1082,11 @@ import GHC.Show (Show(showsPrec)) -- 'Vulkan.Extensions.VK_NV_device_generated_commands.IndirectCommandsLayoutTokenNV', -- 'Vulkan.Extensions.VK_INTEL_performance_query.InitializePerformanceApiInfoINTEL', -- 'Vulkan.Core10.DeviceInitialization.InstanceCreateInfo', +-- 'Vulkan.Extensions.VK_NV_low_latency2.LatencySleepInfoNV', +-- 'Vulkan.Extensions.VK_NV_low_latency2.LatencySleepModeInfoNV', +-- 'Vulkan.Extensions.VK_NV_low_latency2.LatencySubmissionPresentIdNV', +-- 'Vulkan.Extensions.VK_NV_low_latency2.LatencySurfaceCapabilitiesNV', +-- 'Vulkan.Extensions.VK_NV_low_latency2.LatencyTimingsFrameReportNV', -- 'Vulkan.Extensions.VK_MVK_macos_surface.MacOSSurfaceCreateInfoMVK', -- 'Vulkan.Core10.Memory.MappedMemoryRange', -- 'Vulkan.Core11.Promoted_From_VK_KHR_device_group.MemoryAllocateFlagsInfo', @@ -1012,6 +1106,7 @@ import GHC.Show (Show(showsPrec)) -- 'Vulkan.Core12.Promoted_From_VK_KHR_buffer_device_address.MemoryOpaqueCaptureAddressAllocateInfo', -- 'Vulkan.Extensions.VK_EXT_memory_priority.MemoryPriorityAllocateInfoEXT', -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2.MemoryRequirements2', +-- 'Vulkan.Extensions.VK_EXT_host_image_copy.MemoryToImageCopyEXT', -- 'Vulkan.Extensions.VK_KHR_map_memory2.MemoryUnmapInfoKHR', -- 'Vulkan.Extensions.VK_KHR_external_memory_win32.MemoryWin32HandlePropertiesKHR', -- 'Vulkan.Extensions.VK_FUCHSIA_external_memory.MemoryZirconHandlePropertiesFUCHSIA', @@ -1031,6 +1126,7 @@ import GHC.Show (Show(showsPrec)) -- 'Vulkan.Extensions.VK_NV_optical_flow.OpticalFlowImageFormatPropertiesNV', -- 'Vulkan.Extensions.VK_NV_optical_flow.OpticalFlowSessionCreateInfoNV', -- 'Vulkan.Extensions.VK_NV_optical_flow.OpticalFlowSessionCreatePrivateDataInfoNV', +-- 'Vulkan.Extensions.VK_NV_low_latency2.OutOfBandQueueTypeInfoNV', -- 'Vulkan.Extensions.VK_INTEL_performance_query.PerformanceConfigurationAcquireInfoINTEL', -- 'Vulkan.Extensions.VK_KHR_performance_query.PerformanceCounterDescriptionKHR', -- 'Vulkan.Extensions.VK_KHR_performance_query.PerformanceCounterKHR', @@ -1046,6 +1142,7 @@ import GHC.Show (Show(showsPrec)) -- 'Vulkan.Extensions.VK_KHR_acceleration_structure.PhysicalDeviceAccelerationStructurePropertiesKHR', -- 'Vulkan.Extensions.VK_EXT_device_address_binding_report.PhysicalDeviceAddressBindingReportFeaturesEXT', -- 'Vulkan.Extensions.VK_SEC_amigo_profiling.PhysicalDeviceAmigoProfilingFeaturesSEC', +-- 'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT', -- 'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_layout.PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT', -- 'Vulkan.Extensions.VK_EXT_blend_operation_advanced.PhysicalDeviceBlendOperationAdvancedFeaturesEXT', -- 'Vulkan.Extensions.VK_EXT_blend_operation_advanced.PhysicalDeviceBlendOperationAdvancedPropertiesEXT', @@ -1059,15 +1156,20 @@ import GHC.Show (Show(showsPrec)) -- 'Vulkan.Extensions.VK_NV_compute_shader_derivatives.PhysicalDeviceComputeShaderDerivativesFeaturesNV', -- 'Vulkan.Extensions.VK_EXT_conditional_rendering.PhysicalDeviceConditionalRenderingFeaturesEXT', -- 'Vulkan.Extensions.VK_EXT_conservative_rasterization.PhysicalDeviceConservativeRasterizationPropertiesEXT', +-- 'Vulkan.Extensions.VK_KHR_cooperative_matrix.PhysicalDeviceCooperativeMatrixFeaturesKHR', -- 'Vulkan.Extensions.VK_NV_cooperative_matrix.PhysicalDeviceCooperativeMatrixFeaturesNV', +-- 'Vulkan.Extensions.VK_KHR_cooperative_matrix.PhysicalDeviceCooperativeMatrixPropertiesKHR', -- 'Vulkan.Extensions.VK_NV_cooperative_matrix.PhysicalDeviceCooperativeMatrixPropertiesNV', -- 'Vulkan.Extensions.VK_NV_copy_memory_indirect.PhysicalDeviceCopyMemoryIndirectFeaturesNV', -- 'Vulkan.Extensions.VK_NV_copy_memory_indirect.PhysicalDeviceCopyMemoryIndirectPropertiesNV', -- 'Vulkan.Extensions.VK_NV_corner_sampled_image.PhysicalDeviceCornerSampledImageFeaturesNV', -- 'Vulkan.Extensions.VK_NV_coverage_reduction_mode.PhysicalDeviceCoverageReductionModeFeaturesNV', +-- 'Vulkan.Extensions.VK_QCOM_filter_cubic_clamp.PhysicalDeviceCubicClampFeaturesQCOM', +-- 'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.PhysicalDeviceCubicWeightsFeaturesQCOM', -- 'Vulkan.Extensions.VK_EXT_custom_border_color.PhysicalDeviceCustomBorderColorFeaturesEXT', -- 'Vulkan.Extensions.VK_EXT_custom_border_color.PhysicalDeviceCustomBorderColorPropertiesEXT', -- 'Vulkan.Extensions.VK_NV_dedicated_allocation_image_aliasing.PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV', +-- 'Vulkan.Extensions.VK_EXT_depth_bias_control.PhysicalDeviceDepthBiasControlFeaturesEXT', -- 'Vulkan.Extensions.VK_EXT_depth_clamp_zero_one.PhysicalDeviceDepthClampZeroOneFeaturesEXT', -- 'Vulkan.Extensions.VK_EXT_depth_clip_control.PhysicalDeviceDepthClipControlFeaturesEXT', -- 'Vulkan.Extensions.VK_EXT_depth_clip_enable.PhysicalDeviceDepthClipEnableFeaturesEXT', @@ -1077,7 +1179,9 @@ import GHC.Show (Show(showsPrec)) -- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.PhysicalDeviceDescriptorBufferPropertiesEXT', -- 'Vulkan.Core12.Promoted_From_VK_EXT_descriptor_indexing.PhysicalDeviceDescriptorIndexingFeatures', -- 'Vulkan.Core12.Promoted_From_VK_EXT_descriptor_indexing.PhysicalDeviceDescriptorIndexingProperties', +-- 'Vulkan.Extensions.VK_NV_descriptor_pool_overallocation.PhysicalDeviceDescriptorPoolOverallocationFeaturesNV', -- 'Vulkan.Extensions.VK_VALVE_descriptor_set_host_mapping.PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE', +-- 'Vulkan.Extensions.VK_NV_device_generated_commands_compute.PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV', -- 'Vulkan.Extensions.VK_NV_device_generated_commands.PhysicalDeviceDeviceGeneratedCommandsFeaturesNV', -- 'Vulkan.Extensions.VK_NV_device_generated_commands.PhysicalDeviceDeviceGeneratedCommandsPropertiesNV', -- 'Vulkan.Extensions.VK_EXT_device_memory_report.PhysicalDeviceDeviceMemoryReportFeaturesEXT', @@ -1088,16 +1192,22 @@ import GHC.Show (Show(showsPrec)) -- 'Vulkan.Core12.Promoted_From_VK_KHR_driver_properties.PhysicalDeviceDriverProperties', -- 'Vulkan.Extensions.VK_EXT_physical_device_drm.PhysicalDeviceDrmPropertiesEXT', -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PhysicalDeviceDynamicRenderingFeatures', +-- 'Vulkan.Extensions.VK_EXT_dynamic_rendering_unused_attachments.PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT', -- 'Vulkan.Extensions.VK_NV_scissor_exclusive.PhysicalDeviceExclusiveScissorFeaturesNV', -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.PhysicalDeviceExtendedDynamicState2FeaturesEXT', -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.PhysicalDeviceExtendedDynamicState3FeaturesEXT', -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.PhysicalDeviceExtendedDynamicState3PropertiesEXT', -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.PhysicalDeviceExtendedDynamicStateFeaturesEXT', +-- 'Vulkan.Extensions.VK_NV_extended_sparse_address_space.PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV', +-- 'Vulkan.Extensions.VK_NV_extended_sparse_address_space.PhysicalDeviceExtendedSparseAddressSpacePropertiesNV', -- 'Vulkan.Core11.Promoted_From_VK_KHR_external_memory_capabilities.PhysicalDeviceExternalBufferInfo', -- 'Vulkan.Core11.Promoted_From_VK_KHR_external_fence_capabilities.PhysicalDeviceExternalFenceInfo', +-- 'Vulkan.Extensions.VK_ANDROID_external_format_resolve.PhysicalDeviceExternalFormatResolveFeaturesANDROID', +-- 'Vulkan.Extensions.VK_ANDROID_external_format_resolve.PhysicalDeviceExternalFormatResolvePropertiesANDROID', -- 'Vulkan.Core11.Promoted_From_VK_KHR_external_memory_capabilities.PhysicalDeviceExternalImageFormatInfo', -- 'Vulkan.Extensions.VK_EXT_external_memory_host.PhysicalDeviceExternalMemoryHostPropertiesEXT', -- 'Vulkan.Extensions.VK_NV_external_memory_rdma.PhysicalDeviceExternalMemoryRDMAFeaturesNV', +-- 'Vulkan.Extensions.VK_QNX_external_memory_screen_buffer.PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX', -- 'Vulkan.Core11.Promoted_From_VK_KHR_external_semaphore_capabilities.PhysicalDeviceExternalSemaphoreInfo', -- 'Vulkan.Extensions.VK_EXT_device_fault.PhysicalDeviceFaultFeaturesEXT', -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2', @@ -1116,10 +1226,13 @@ import GHC.Show (Show(showsPrec)) -- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PhysicalDeviceFragmentShadingRateFeaturesKHR', -- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PhysicalDeviceFragmentShadingRateKHR', -- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PhysicalDeviceFragmentShadingRatePropertiesKHR', +-- 'Vulkan.Extensions.VK_EXT_frame_boundary.PhysicalDeviceFrameBoundaryFeaturesEXT', -- 'Vulkan.Extensions.VK_KHR_global_priority.PhysicalDeviceGlobalPriorityQueryFeaturesKHR', -- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT', -- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT', -- 'Vulkan.Core11.Promoted_From_VK_KHR_device_group_creation.PhysicalDeviceGroupProperties', +-- 'Vulkan.Extensions.VK_EXT_host_image_copy.PhysicalDeviceHostImageCopyFeaturesEXT', +-- 'Vulkan.Extensions.VK_EXT_host_image_copy.PhysicalDeviceHostImageCopyPropertiesEXT', -- 'Vulkan.Core12.Promoted_From_VK_EXT_host_query_reset.PhysicalDeviceHostQueryResetFeatures', -- 'Vulkan.Core11.Promoted_From_VK_KHR_external_memory_capabilities.PhysicalDeviceIDProperties', -- 'Vulkan.Extensions.VK_EXT_image_2d_view_of_3d.PhysicalDeviceImage2DViewOf3DFeaturesEXT', @@ -1127,6 +1240,8 @@ import GHC.Show (Show(showsPrec)) -- 'Vulkan.Extensions.VK_EXT_image_compression_control_swapchain.PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT', -- 'Vulkan.Extensions.VK_EXT_image_drm_format_modifier.PhysicalDeviceImageDrmFormatModifierInfoEXT', -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceImageFormatInfo2', +-- 'Vulkan.Extensions.VK_QCOM_image_processing2.PhysicalDeviceImageProcessing2FeaturesQCOM', +-- 'Vulkan.Extensions.VK_QCOM_image_processing2.PhysicalDeviceImageProcessing2PropertiesQCOM', -- 'Vulkan.Extensions.VK_QCOM_image_processing.PhysicalDeviceImageProcessingFeaturesQCOM', -- 'Vulkan.Extensions.VK_QCOM_image_processing.PhysicalDeviceImageProcessingPropertiesQCOM', -- 'Vulkan.Core13.Promoted_From_VK_EXT_image_robustness.PhysicalDeviceImageRobustnessFeatures', @@ -1139,6 +1254,7 @@ import GHC.Show (Show(showsPrec)) -- 'Vulkan.Core13.Promoted_From_VK_EXT_inline_uniform_block.PhysicalDeviceInlineUniformBlockFeatures', -- 'Vulkan.Core13.Promoted_From_VK_EXT_inline_uniform_block.PhysicalDeviceInlineUniformBlockProperties', -- 'Vulkan.Extensions.VK_HUAWEI_invocation_mask.PhysicalDeviceInvocationMaskFeaturesHUAWEI', +-- 'Vulkan.Extensions.VK_MSFT_layered_driver.PhysicalDeviceLayeredDriverPropertiesMSFT', -- 'Vulkan.Extensions.VK_EXT_legacy_dithering.PhysicalDeviceLegacyDitheringFeaturesEXT', -- 'Vulkan.Extensions.VK_EXT_line_rasterization.PhysicalDeviceLineRasterizationFeaturesEXT', -- 'Vulkan.Extensions.VK_EXT_line_rasterization.PhysicalDeviceLineRasterizationPropertiesEXT', @@ -1146,6 +1262,8 @@ import GHC.Show (Show(showsPrec)) -- 'Vulkan.Core11.Promoted_From_VK_KHR_maintenance3.PhysicalDeviceMaintenance3Properties', -- 'Vulkan.Core13.Promoted_From_VK_KHR_maintenance4.PhysicalDeviceMaintenance4Features', -- 'Vulkan.Core13.Promoted_From_VK_KHR_maintenance4.PhysicalDeviceMaintenance4Properties', +-- 'Vulkan.Extensions.VK_KHR_maintenance5.PhysicalDeviceMaintenance5FeaturesKHR', +-- 'Vulkan.Extensions.VK_KHR_maintenance5.PhysicalDeviceMaintenance5PropertiesKHR', -- 'Vulkan.Extensions.VK_EXT_memory_budget.PhysicalDeviceMemoryBudgetPropertiesEXT', -- 'Vulkan.Extensions.VK_NV_memory_decompression.PhysicalDeviceMemoryDecompressionFeaturesNV', -- 'Vulkan.Extensions.VK_NV_memory_decompression.PhysicalDeviceMemoryDecompressionPropertiesNV', @@ -1164,6 +1282,8 @@ import GHC.Show (Show(showsPrec)) -- 'Vulkan.Extensions.VK_QCOM_multiview_per_view_viewports.PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM', -- 'Vulkan.Core11.Promoted_From_VK_KHR_multiview.PhysicalDeviceMultiviewProperties', -- 'Vulkan.Extensions.VK_EXT_mutable_descriptor_type.PhysicalDeviceMutableDescriptorTypeFeaturesEXT', +-- 'Vulkan.Extensions.VK_EXT_nested_command_buffer.PhysicalDeviceNestedCommandBufferFeaturesEXT', +-- 'Vulkan.Extensions.VK_EXT_nested_command_buffer.PhysicalDeviceNestedCommandBufferPropertiesEXT', -- 'Vulkan.Extensions.VK_EXT_non_seamless_cube_map.PhysicalDeviceNonSeamlessCubeMapFeaturesEXT', -- 'Vulkan.Extensions.VK_EXT_opacity_micromap.PhysicalDeviceOpacityMicromapFeaturesEXT', -- 'Vulkan.Extensions.VK_EXT_opacity_micromap.PhysicalDeviceOpacityMicromapPropertiesEXT', @@ -1204,6 +1324,7 @@ import GHC.Show (Show(showsPrec)) -- 'Vulkan.Extensions.VK_NV_ray_tracing_motion_blur.PhysicalDeviceRayTracingMotionBlurFeaturesNV', -- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.PhysicalDeviceRayTracingPipelineFeaturesKHR', -- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.PhysicalDeviceRayTracingPipelinePropertiesKHR', +-- 'Vulkan.Extensions.VK_KHR_ray_tracing_position_fetch.PhysicalDeviceRayTracingPositionFetchFeaturesKHR', -- 'Vulkan.Extensions.VK_NV_ray_tracing.PhysicalDeviceRayTracingPropertiesNV', -- 'Vulkan.Extensions.VK_NV_representative_fragment_test.PhysicalDeviceRepresentativeFragmentTestFeaturesNV', -- 'Vulkan.Extensions.VK_EXT_robustness2.PhysicalDeviceRobustness2FeaturesEXT', @@ -1225,6 +1346,8 @@ import GHC.Show (Show(showsPrec)) -- 'Vulkan.Core13.Promoted_From_VK_EXT_shader_demote_to_helper_invocation.PhysicalDeviceShaderDemoteToHelperInvocationFeatures', -- 'Vulkan.Core11.Promoted_From_VK_KHR_shader_draw_parameters.PhysicalDeviceShaderDrawParametersFeatures', -- 'Vulkan.Extensions.VK_AMD_shader_early_and_late_fragment_tests.PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD', +-- 'Vulkan.Extensions.VK_AMDX_shader_enqueue.PhysicalDeviceShaderEnqueueFeaturesAMDX', +-- 'Vulkan.Extensions.VK_AMDX_shader_enqueue.PhysicalDeviceShaderEnqueuePropertiesAMDX', -- 'Vulkan.Core12.Promoted_From_VK_KHR_shader_float16_int8.PhysicalDeviceShaderFloat16Int8Features', -- 'Vulkan.Extensions.VK_EXT_shader_image_atomic_int64.PhysicalDeviceShaderImageAtomicInt64FeaturesEXT', -- 'Vulkan.Extensions.VK_NV_shader_image_footprint.PhysicalDeviceShaderImageFootprintFeaturesNV', @@ -1268,6 +1391,7 @@ import GHC.Show (Show(showsPrec)) -- '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', +-- , -- , -- 'Vulkan.Core12.PhysicalDeviceVulkan11Features', -- 'Vulkan.Core12.PhysicalDeviceVulkan11Properties', @@ -1278,6 +1402,7 @@ import GHC.Show (Show(showsPrec)) -- '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_QCOM_ycbcr_degamma.PhysicalDeviceYcbcrDegammaFeaturesQCOM', -- 'Vulkan.Extensions.VK_EXT_ycbcr_image_arrays.PhysicalDeviceYcbcrImageArraysFeaturesEXT', -- 'Vulkan.Core13.Promoted_From_VK_KHR_zero_initialize_workgroup_memory.PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures', -- 'Vulkan.Core10.PipelineCache.PipelineCacheCreateInfo', @@ -1288,6 +1413,7 @@ import GHC.Show (Show(showsPrec)) -- 'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.PipelineCoverageModulationStateCreateInfoNV', -- 'Vulkan.Extensions.VK_NV_coverage_reduction_mode.PipelineCoverageReductionStateCreateInfoNV', -- 'Vulkan.Extensions.VK_NV_fragment_coverage_to_color.PipelineCoverageToColorStateCreateInfoNV', +-- 'Vulkan.Extensions.VK_KHR_maintenance5.PipelineCreateFlags2CreateInfoKHR', -- 'Vulkan.Core13.Promoted_From_VK_EXT_pipeline_creation_feedback.PipelineCreationFeedbackCreateInfo', -- 'Vulkan.Core10.Pipeline.PipelineDepthStencilStateCreateInfo', -- 'Vulkan.Extensions.VK_EXT_discard_rectangles.PipelineDiscardRectangleStateCreateInfoEXT', @@ -1298,6 +1424,7 @@ import GHC.Show (Show(showsPrec)) -- 'Vulkan.Extensions.VK_KHR_pipeline_executable_properties.PipelineExecutableStatisticKHR', -- 'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.PipelineFragmentShadingRateEnumStateCreateInfoNV', -- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PipelineFragmentShadingRateStateCreateInfoKHR', +-- 'Vulkan.Extensions.VK_NV_device_generated_commands_compute.PipelineIndirectDeviceAddressInfoNV', -- 'Vulkan.Extensions.VK_KHR_pipeline_executable_properties.PipelineInfoKHR', -- 'Vulkan.Core10.Pipeline.PipelineInputAssemblyStateCreateInfo', -- 'Vulkan.Core10.PipelineLayout.PipelineLayoutCreateInfo', @@ -1317,6 +1444,7 @@ import GHC.Show (Show(showsPrec)) -- 'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT', -- 'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo', -- 'Vulkan.Extensions.VK_EXT_shader_module_identifier.PipelineShaderStageModuleIdentifierCreateInfoEXT', +-- 'Vulkan.Extensions.VK_AMDX_shader_enqueue.PipelineShaderStageNodeCreateInfoAMDX', -- 'Vulkan.Core13.Promoted_From_VK_EXT_subgroup_size_control.PipelineShaderStageRequiredSubgroupSizeCreateInfo', -- 'Vulkan.Core11.Promoted_From_VK_KHR_maintenance2.PipelineTessellationDomainOriginStateCreateInfo', -- 'Vulkan.Core10.Pipeline.PipelineTessellationStateCreateInfo', @@ -1365,20 +1493,26 @@ import GHC.Show (Show(showsPrec)) -- 'Vulkan.Extensions.VK_EXT_sample_locations.RenderPassSampleLocationsBeginInfoEXT', -- 'Vulkan.Extensions.VK_EXT_subpass_merge_feedback.RenderPassSubpassFeedbackCreateInfoEXT', -- 'Vulkan.Extensions.VK_QCOM_render_pass_transform.RenderPassTransformBeginInfoQCOM', +-- 'Vulkan.Extensions.VK_KHR_maintenance5.RenderingAreaInfoKHR', -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingAttachmentInfo', -- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentDensityMapAttachmentInfoEXT', -- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentShadingRateAttachmentInfoKHR', -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo', -- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.ResolveImageInfo2', -- 'Vulkan.Extensions.VK_EXT_sample_locations.SampleLocationsInfoEXT', +-- 'Vulkan.Extensions.VK_QCOM_image_processing2.SamplerBlockMatchWindowCreateInfoQCOM', -- 'Vulkan.Extensions.VK_EXT_border_color_swizzle.SamplerBorderColorComponentMappingCreateInfoEXT', -- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.SamplerCaptureDescriptorDataInfoEXT', -- 'Vulkan.Core10.Sampler.SamplerCreateInfo', +-- 'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.SamplerCubicWeightsCreateInfoQCOM', -- 'Vulkan.Extensions.VK_EXT_custom_border_color.SamplerCustomBorderColorCreateInfoEXT', -- 'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo', -- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.SamplerYcbcrConversionCreateInfo', -- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.SamplerYcbcrConversionImageFormatProperties', -- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.SamplerYcbcrConversionInfo', +-- 'Vulkan.Extensions.VK_QCOM_ycbcr_degamma.SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM', +-- 'Vulkan.Extensions.VK_QNX_external_memory_screen_buffer.ScreenBufferFormatPropertiesQNX', +-- 'Vulkan.Extensions.VK_QNX_external_memory_screen_buffer.ScreenBufferPropertiesQNX', -- 'Vulkan.Extensions.VK_QNX_screen_surface.ScreenSurfaceCreateInfoQNX', -- 'Vulkan.Core10.QueueSemaphore.SemaphoreCreateInfo', -- 'Vulkan.Extensions.VK_KHR_external_semaphore_fd.SemaphoreGetFdInfoKHR', @@ -1388,6 +1522,7 @@ import GHC.Show (Show(showsPrec)) -- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.SemaphoreSubmitInfo', -- 'Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore.SemaphoreTypeCreateInfo', -- 'Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore.SemaphoreWaitInfo', +-- 'Vulkan.Extensions.VK_NV_low_latency2.SetLatencyMarkerInfoNV', -- 'Vulkan.Extensions.VK_EXT_shader_object.ShaderCreateInfoEXT', -- 'Vulkan.Core10.Shader.ShaderModuleCreateInfo', -- 'Vulkan.Extensions.VK_EXT_shader_module_identifier.ShaderModuleIdentifierEXT', @@ -1406,7 +1541,8 @@ import GHC.Show (Show(showsPrec)) -- 'Vulkan.Extensions.VK_QCOM_fragment_density_map_offset.SubpassFragmentDensityMapOffsetEndInfoQCOM', -- 'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.SubpassResolvePerformanceQueryEXT', -- 'Vulkan.Extensions.VK_HUAWEI_subpass_shading.SubpassShadingPipelineCreateInfoHUAWEI', --- 'Vulkan.Extensions.VK_EXT_image_compression_control.SubresourceLayout2EXT', +-- 'Vulkan.Extensions.VK_EXT_host_image_copy.SubresourceHostMemcpySizeEXT', +-- 'Vulkan.Extensions.VK_KHR_maintenance5.SubresourceLayout2KHR', -- 'Vulkan.Extensions.VK_EXT_display_surface_counter.SurfaceCapabilities2EXT', -- 'Vulkan.Extensions.VK_KHR_get_surface_capabilities2.SurfaceCapabilities2KHR', -- 'Vulkan.Extensions.VK_EXT_full_screen_exclusive.SurfaceCapabilitiesFullScreenExclusiveEXT', @@ -1421,6 +1557,7 @@ import GHC.Show (Show(showsPrec)) -- 'Vulkan.Extensions.VK_EXT_display_control.SwapchainCounterCreateInfoEXT', -- 'Vulkan.Extensions.VK_KHR_swapchain.SwapchainCreateInfoKHR', -- 'Vulkan.Extensions.VK_AMD_display_native_hdr.SwapchainDisplayNativeHdrCreateInfoAMD', +-- 'Vulkan.Extensions.VK_NV_low_latency2.SwapchainLatencyCreateInfoNV', -- 'Vulkan.Extensions.VK_NV_present_barrier.SwapchainPresentBarrierCreateInfoNV', -- 'Vulkan.Extensions.VK_EXT_swapchain_maintenance1.SwapchainPresentFenceInfoEXT', -- 'Vulkan.Extensions.VK_EXT_swapchain_maintenance1.SwapchainPresentModeInfoEXT', @@ -1457,25 +1594,39 @@ import GHC.Show (Show(showsPrec)) -- , -- , -- , +-- , -- , +-- , -- , +-- , -- , -- , +-- , -- , -- , --- , +-- , +-- , -- , -- , +-- , -- , +-- , -- , +-- , -- , -- , +-- , -- , -- , --- , +-- , +-- , -- , +-- , +-- , -- , -- , +-- , +-- , -- , -- , -- , @@ -1647,12 +1798,102 @@ 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_PHYSICAL_DEVICE_DESCRIPTOR_POOL_OVERALLOCATION_FEATURES_NV" +pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_POOL_OVERALLOCATION_FEATURES_NV = StructureType 1000546000 + +-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_DRIVER_PROPERTIES_MSFT" +pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_DRIVER_PROPERTIES_MSFT = StructureType 1000530000 + +-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_SCREEN_BUFFER_FEATURES_QNX" +pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_SCREEN_BUFFER_FEATURES_QNX = StructureType 1000529004 + +-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_QNX" +pattern STRUCTURE_TYPE_EXTERNAL_FORMAT_QNX = StructureType 1000529003 + +-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMPORT_SCREEN_BUFFER_INFO_QNX" +pattern STRUCTURE_TYPE_IMPORT_SCREEN_BUFFER_INFO_QNX = StructureType 1000529002 + +-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SCREEN_BUFFER_FORMAT_PROPERTIES_QNX" +pattern STRUCTURE_TYPE_SCREEN_BUFFER_FORMAT_PROPERTIES_QNX = StructureType 1000529001 + +-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SCREEN_BUFFER_PROPERTIES_QNX" +pattern STRUCTURE_TYPE_SCREEN_BUFFER_PROPERTIES_QNX = StructureType 1000529000 + +-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_FEATURES_EXT" +pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_FEATURES_EXT = StructureType 1000524000 + +-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUBIC_CLAMP_FEATURES_QCOM" +pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_CUBIC_CLAMP_FEATURES_QCOM = StructureType 1000521000 + +-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_YCBCR_DEGAMMA_CREATE_INFO_QCOM" +pattern STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_YCBCR_DEGAMMA_CREATE_INFO_QCOM = StructureType 1000520001 + +-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_DEGAMMA_FEATURES_QCOM" +pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_DEGAMMA_FEATURES_QCOM = StructureType 1000520000 + +-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_BLIT_IMAGE_CUBIC_WEIGHTS_INFO_QCOM" +pattern STRUCTURE_TYPE_BLIT_IMAGE_CUBIC_WEIGHTS_INFO_QCOM = StructureType 1000519002 + +-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUBIC_WEIGHTS_FEATURES_QCOM" +pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_CUBIC_WEIGHTS_FEATURES_QCOM = StructureType 1000519001 + +-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SAMPLER_CUBIC_WEIGHTS_CREATE_INFO_QCOM" +pattern STRUCTURE_TYPE_SAMPLER_CUBIC_WEIGHTS_CREATE_INFO_QCOM = StructureType 1000519000 + +-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SAMPLER_BLOCK_MATCH_WINDOW_CREATE_INFO_QCOM" +pattern STRUCTURE_TYPE_SAMPLER_BLOCK_MATCH_WINDOW_CREATE_INFO_QCOM = StructureType 1000518002 + +-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_2_PROPERTIES_QCOM" +pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_2_PROPERTIES_QCOM = StructureType 1000518001 + +-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_2_FEATURES_QCOM" +pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_2_FEATURES_QCOM = StructureType 1000518000 + -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_RENDER_AREAS_RENDER_PASS_BEGIN_INFO_QCOM" pattern STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_RENDER_AREAS_RENDER_PASS_BEGIN_INFO_QCOM = StructureType 1000510001 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_RENDER_AREAS_FEATURES_QCOM" pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_RENDER_AREAS_FEATURES_QCOM = StructureType 1000510000 +-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_KHR" +pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_KHR = StructureType 1000506002 + +-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_KHR" +pattern STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_KHR = StructureType 1000506001 + +-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_KHR" +pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_KHR = StructureType 1000506000 + +-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_LATENCY_SURFACE_CAPABILITIES_NV" +pattern STRUCTURE_TYPE_LATENCY_SURFACE_CAPABILITIES_NV = StructureType 1000505008 + +-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SWAPCHAIN_LATENCY_CREATE_INFO_NV" +pattern STRUCTURE_TYPE_SWAPCHAIN_LATENCY_CREATE_INFO_NV = StructureType 1000505007 + +-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_OUT_OF_BAND_QUEUE_TYPE_INFO_NV" +pattern STRUCTURE_TYPE_OUT_OF_BAND_QUEUE_TYPE_INFO_NV = StructureType 1000505006 + +-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_LATENCY_SUBMISSION_PRESENT_ID_NV" +pattern STRUCTURE_TYPE_LATENCY_SUBMISSION_PRESENT_ID_NV = StructureType 1000505005 + +-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_LATENCY_TIMINGS_FRAME_REPORT_NV" +pattern STRUCTURE_TYPE_LATENCY_TIMINGS_FRAME_REPORT_NV = StructureType 1000505004 + +-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_GET_LATENCY_MARKER_INFO_NV" +pattern STRUCTURE_TYPE_GET_LATENCY_MARKER_INFO_NV = StructureType 1000505003 + +-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SET_LATENCY_MARKER_INFO_NV" +pattern STRUCTURE_TYPE_SET_LATENCY_MARKER_INFO_NV = StructureType 1000505002 + +-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_LATENCY_SLEEP_INFO_NV" +pattern STRUCTURE_TYPE_LATENCY_SLEEP_INFO_NV = StructureType 1000505001 + +-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_LATENCY_SLEEP_MODE_INFO_NV" +pattern STRUCTURE_TYPE_LATENCY_SLEEP_MODE_INFO_NV = StructureType 1000505000 + +-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_FEATURES_EXT" +pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_FEATURES_EXT = StructureType 1000499000 + -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_LIBRARY_GROUP_HANDLES_FEATURES_EXT" pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_LIBRARY_GROUP_HANDLES_FEATURES_EXT = StructureType 1000498000 @@ -1668,6 +1909,12 @@ pattern STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_EXT = StructureType 1 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT" pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT = StructureType 1000351000 +-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_PROPERTIES_NV" +pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_PROPERTIES_NV = StructureType 1000492001 + +-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_FEATURES_NV" +pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_FEATURES_NV = StructureType 1000492000 + -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_PROPERTIES_NV" pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_PROPERTIES_NV = StructureType 1000490001 @@ -1704,6 +1951,42 @@ pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_OBJECT_PROPERTIES_EXT = StructureT -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_OBJECT_FEATURES_EXT" pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_OBJECT_FEATURES_EXT = StructureType 1000482000 +-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_POSITION_FETCH_FEATURES_KHR" +pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_POSITION_FETCH_FEATURES_KHR = StructureType 1000481000 + +-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_BUFFER_USAGE_FLAGS_2_CREATE_INFO_KHR" +pattern STRUCTURE_TYPE_BUFFER_USAGE_FLAGS_2_CREATE_INFO_KHR = StructureType 1000470006 + +-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_CREATE_FLAGS_2_CREATE_INFO_KHR" +pattern STRUCTURE_TYPE_PIPELINE_CREATE_FLAGS_2_CREATE_INFO_KHR = StructureType 1000470005 + +-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_KHR" +pattern STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_KHR = StructureType 1000338003 + +-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_KHR" +pattern STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_KHR = StructureType 1000338002 + +-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEVICE_IMAGE_SUBRESOURCE_INFO_KHR" +pattern STRUCTURE_TYPE_DEVICE_IMAGE_SUBRESOURCE_INFO_KHR = StructureType 1000470004 + +-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_RENDERING_AREA_INFO_KHR" +pattern STRUCTURE_TYPE_RENDERING_AREA_INFO_KHR = StructureType 1000470003 + +-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_PROPERTIES_KHR" +pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_PROPERTIES_KHR = StructureType 1000470001 + +-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_FEATURES_KHR" +pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_FEATURES_KHR = StructureType 1000470000 + +-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_RESOLVE_PROPERTIES_ANDROID" +pattern STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_RESOLVE_PROPERTIES_ANDROID = StructureType 1000468002 + +-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_PROPERTIES_ANDROID" +pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_PROPERTIES_ANDROID = StructureType 1000468001 + +-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_FEATURES_ANDROID" +pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_FEATURES_ANDROID = StructureType 1000468000 + -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES_EXT" pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES_EXT = StructureType 1000466000 @@ -1770,6 +2053,15 @@ pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_PROPERTIES_EXT = -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT" pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT = StructureType 1000455000 +-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_EXT" +pattern STRUCTURE_TYPE_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_EXT = StructureType 1000453000 + +-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_PROPERTIES_EXT" +pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_PROPERTIES_EXT = StructureType 1000451001 + +-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_FEATURES_EXT" +pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_FEATURES_EXT = StructureType 1000451000 + -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGE_VIEW_SAMPLE_WEIGHT_CREATE_INFO_QCOM" pattern STRUCTURE_TYPE_IMAGE_VIEW_SAMPLE_WEIGHT_CREATE_INFO_QCOM = StructureType 1000440002 @@ -1785,6 +2077,15 @@ pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATU -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV" pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV = StructureType 1000430000 +-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_INDIRECT_DEVICE_ADDRESS_INFO_NV" +pattern STRUCTURE_TYPE_PIPELINE_INDIRECT_DEVICE_ADDRESS_INFO_NV = StructureType 1000428002 + +-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_INDIRECT_BUFFER_INFO_NV" +pattern STRUCTURE_TYPE_COMPUTE_PIPELINE_INDIRECT_BUFFER_INFO_NV = StructureType 1000428001 + +-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_COMPUTE_FEATURES_NV" +pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_COMPUTE_FEATURES_NV = StructureType 1000428000 + -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_PROPERTIES_NV" pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_PROPERTIES_NV = StructureType 1000427001 @@ -1932,6 +2233,12 @@ pattern STRUCTURE_TYPE_SUBPASS_RESOLVE_PERFORMANCE_QUERY_EXT = StructureType 100 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_FEATURES_EXT" pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_FEATURES_EXT = StructureType 1000376000 +-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_FRAME_BOUNDARY_EXT" +pattern STRUCTURE_TYPE_FRAME_BOUNDARY_EXT = StructureType 1000375001 + +-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAME_BOUNDARY_FEATURES_EXT" +pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAME_BOUNDARY_FEATURES_EXT = StructureType 1000375000 + -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT" pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT = StructureType 1000372001 @@ -2046,12 +2353,6 @@ pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_FEATURES_ -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT" pattern STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT = StructureType 1000338004 --- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_EXT" -pattern STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_EXT = StructureType 1000338003 - --- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_EXT" -pattern STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_EXT = StructureType 1000338002 - -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_CONTROL_EXT" pattern STRUCTURE_TYPE_IMAGE_COMPRESSION_CONTROL_EXT = StructureType 1000338001 @@ -2250,6 +2551,15 @@ pattern STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT = StructureTy -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT" pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT = StructureType 1000284000 +-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEPTH_BIAS_REPRESENTATION_INFO_EXT" +pattern STRUCTURE_TYPE_DEPTH_BIAS_REPRESENTATION_INFO_EXT = StructureType 1000283002 + +-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEPTH_BIAS_INFO_EXT" +pattern STRUCTURE_TYPE_DEPTH_BIAS_INFO_EXT = StructureType 1000283001 + +-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_BIAS_CONTROL_FEATURES_EXT" +pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_BIAS_CONTROL_FEATURES_EXT = StructureType 1000283000 + -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM" pattern STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM = StructureType 1000282001 @@ -2325,6 +2635,36 @@ pattern STRUCTURE_TYPE_MEMORY_UNMAP_INFO_KHR = StructureType 1000271001 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_MEMORY_MAP_INFO_KHR" pattern STRUCTURE_TYPE_MEMORY_MAP_INFO_KHR = StructureType 1000271000 +-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_HOST_IMAGE_COPY_DEVICE_PERFORMANCE_QUERY_EXT" +pattern STRUCTURE_TYPE_HOST_IMAGE_COPY_DEVICE_PERFORMANCE_QUERY_EXT = StructureType 1000270009 + +-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SUBRESOURCE_HOST_MEMCPY_SIZE_EXT" +pattern STRUCTURE_TYPE_SUBRESOURCE_HOST_MEMCPY_SIZE_EXT = StructureType 1000270008 + +-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_COPY_IMAGE_TO_IMAGE_INFO_EXT" +pattern STRUCTURE_TYPE_COPY_IMAGE_TO_IMAGE_INFO_EXT = StructureType 1000270007 + +-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_HOST_IMAGE_LAYOUT_TRANSITION_INFO_EXT" +pattern STRUCTURE_TYPE_HOST_IMAGE_LAYOUT_TRANSITION_INFO_EXT = StructureType 1000270006 + +-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_COPY_MEMORY_TO_IMAGE_INFO_EXT" +pattern STRUCTURE_TYPE_COPY_MEMORY_TO_IMAGE_INFO_EXT = StructureType 1000270005 + +-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_COPY_IMAGE_TO_MEMORY_INFO_EXT" +pattern STRUCTURE_TYPE_COPY_IMAGE_TO_MEMORY_INFO_EXT = StructureType 1000270004 + +-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGE_TO_MEMORY_COPY_EXT" +pattern STRUCTURE_TYPE_IMAGE_TO_MEMORY_COPY_EXT = StructureType 1000270003 + +-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_MEMORY_TO_IMAGE_COPY_EXT" +pattern STRUCTURE_TYPE_MEMORY_TO_IMAGE_COPY_EXT = StructureType 1000270002 + +-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_PROPERTIES_EXT" +pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_PROPERTIES_EXT = StructureType 1000270001 + +-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_FEATURES_EXT" +pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_FEATURES_EXT = StructureType 1000270000 + -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR" pattern STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR = StructureType 1000269005 @@ -2757,6 +3097,21 @@ pattern STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT = StructureTy -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT" pattern STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT = StructureType 1000143000 +-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_NODE_CREATE_INFO_AMDX" +pattern STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_NODE_CREATE_INFO_AMDX = StructureType 1000134004 + +-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_EXECUTION_GRAPH_PIPELINE_CREATE_INFO_AMDX" +pattern STRUCTURE_TYPE_EXECUTION_GRAPH_PIPELINE_CREATE_INFO_AMDX = StructureType 1000134003 + +-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_EXECUTION_GRAPH_PIPELINE_SCRATCH_SIZE_AMDX" +pattern STRUCTURE_TYPE_EXECUTION_GRAPH_PIPELINE_SCRATCH_SIZE_AMDX = StructureType 1000134002 + +-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ENQUEUE_PROPERTIES_AMDX" +pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ENQUEUE_PROPERTIES_AMDX = StructureType 1000134001 + +-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ENQUEUE_FEATURES_AMDX" +pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ENQUEUE_FEATURES_AMDX = StructureType 1000134000 + -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_2_ANDROID" pattern STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_2_ANDROID = StructureType 1000129006 @@ -3701,13 +4056,45 @@ pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES = StructureType 10000 , STRUCTURE_TYPE_MEMORY_BARRIER , STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO , STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO + , STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_POOL_OVERALLOCATION_FEATURES_NV + , STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_DRIVER_PROPERTIES_MSFT + , STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_SCREEN_BUFFER_FEATURES_QNX + , STRUCTURE_TYPE_EXTERNAL_FORMAT_QNX + , STRUCTURE_TYPE_IMPORT_SCREEN_BUFFER_INFO_QNX + , STRUCTURE_TYPE_SCREEN_BUFFER_FORMAT_PROPERTIES_QNX + , STRUCTURE_TYPE_SCREEN_BUFFER_PROPERTIES_QNX + , STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_FEATURES_EXT + , STRUCTURE_TYPE_PHYSICAL_DEVICE_CUBIC_CLAMP_FEATURES_QCOM + , STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_YCBCR_DEGAMMA_CREATE_INFO_QCOM + , STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_DEGAMMA_FEATURES_QCOM + , STRUCTURE_TYPE_BLIT_IMAGE_CUBIC_WEIGHTS_INFO_QCOM + , STRUCTURE_TYPE_PHYSICAL_DEVICE_CUBIC_WEIGHTS_FEATURES_QCOM + , STRUCTURE_TYPE_SAMPLER_CUBIC_WEIGHTS_CREATE_INFO_QCOM + , STRUCTURE_TYPE_SAMPLER_BLOCK_MATCH_WINDOW_CREATE_INFO_QCOM + , STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_2_PROPERTIES_QCOM + , STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_2_FEATURES_QCOM , STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_RENDER_AREAS_RENDER_PASS_BEGIN_INFO_QCOM , STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_RENDER_AREAS_FEATURES_QCOM + , STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_KHR + , STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_KHR + , STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_KHR + , STRUCTURE_TYPE_LATENCY_SURFACE_CAPABILITIES_NV + , STRUCTURE_TYPE_SWAPCHAIN_LATENCY_CREATE_INFO_NV + , STRUCTURE_TYPE_OUT_OF_BAND_QUEUE_TYPE_INFO_NV + , STRUCTURE_TYPE_LATENCY_SUBMISSION_PRESENT_ID_NV + , STRUCTURE_TYPE_LATENCY_TIMINGS_FRAME_REPORT_NV + , STRUCTURE_TYPE_GET_LATENCY_MARKER_INFO_NV + , STRUCTURE_TYPE_SET_LATENCY_MARKER_INFO_NV + , STRUCTURE_TYPE_LATENCY_SLEEP_INFO_NV + , STRUCTURE_TYPE_LATENCY_SLEEP_MODE_INFO_NV + , STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_FEATURES_EXT , STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_LIBRARY_GROUP_HANDLES_FEATURES_EXT , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_PROPERTIES_ARM , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_FEATURES_ARM , STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_EXT , STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT + , STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_PROPERTIES_NV + , STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_FEATURES_NV , STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_PROPERTIES_NV , STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_FEATURES_NV , STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_VIEWPORTS_FEATURES_QCOM @@ -3720,6 +4107,18 @@ pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES = StructureType 10000 , STRUCTURE_TYPE_SHADER_CREATE_INFO_EXT , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_OBJECT_PROPERTIES_EXT , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_OBJECT_FEATURES_EXT + , STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_POSITION_FETCH_FEATURES_KHR + , STRUCTURE_TYPE_BUFFER_USAGE_FLAGS_2_CREATE_INFO_KHR + , STRUCTURE_TYPE_PIPELINE_CREATE_FLAGS_2_CREATE_INFO_KHR + , STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_KHR + , STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_KHR + , STRUCTURE_TYPE_DEVICE_IMAGE_SUBRESOURCE_INFO_KHR + , STRUCTURE_TYPE_RENDERING_AREA_INFO_KHR + , STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_PROPERTIES_KHR + , STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_FEATURES_KHR + , STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_RESOLVE_PROPERTIES_ANDROID + , STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_PROPERTIES_ANDROID + , STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_FEATURES_ANDROID , STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES_EXT , STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_DITHERING_FEATURES_EXT , STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_PRIVATE_DATA_INFO_NV @@ -3742,11 +4141,17 @@ pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES = StructureType 10000 , STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT , STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_PROPERTIES_EXT , STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT + , STRUCTURE_TYPE_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_EXT + , STRUCTURE_TYPE_PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_PROPERTIES_EXT + , STRUCTURE_TYPE_PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_FEATURES_EXT , STRUCTURE_TYPE_IMAGE_VIEW_SAMPLE_WEIGHT_CREATE_INFO_QCOM , STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_PROPERTIES_QCOM , STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_FEATURES_QCOM , STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT , STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV + , STRUCTURE_TYPE_PIPELINE_INDIRECT_DEVICE_ADDRESS_INFO_NV + , STRUCTURE_TYPE_COMPUTE_PIPELINE_INDIRECT_BUFFER_INFO_NV + , STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_COMPUTE_FEATURES_NV , STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_PROPERTIES_NV , STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_FEATURES_NV , STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_PROPERTIES_NV @@ -3796,6 +4201,8 @@ pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES = StructureType 10000 , STRUCTURE_TYPE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_INFO_EXT , STRUCTURE_TYPE_SUBPASS_RESOLVE_PERFORMANCE_QUERY_EXT , STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_FEATURES_EXT + , STRUCTURE_TYPE_FRAME_BOUNDARY_EXT + , STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAME_BOUNDARY_FEATURES_EXT , STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT , STRUCTURE_TYPE_PIPELINE_PROPERTIES_IDENTIFIER_EXT , STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV @@ -3834,8 +4241,6 @@ pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES = StructureType 10000 , STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT , STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_FEATURES_EXT , STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT - , STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_EXT - , STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_EXT , STRUCTURE_TYPE_IMAGE_COMPRESSION_CONTROL_EXT , STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT , STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR @@ -3902,6 +4307,9 @@ pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES = StructureType 10000 , STRUCTURE_TYPE_DEVICE_MEMORY_REPORT_CALLBACK_DATA_EXT , STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT , STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT + , STRUCTURE_TYPE_DEPTH_BIAS_REPRESENTATION_INFO_EXT + , STRUCTURE_TYPE_DEPTH_BIAS_INFO_EXT + , STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_BIAS_CONTROL_FEATURES_EXT , STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM , STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM , STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT @@ -3927,6 +4335,16 @@ pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES = StructureType 10000 , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT , STRUCTURE_TYPE_MEMORY_UNMAP_INFO_KHR , STRUCTURE_TYPE_MEMORY_MAP_INFO_KHR + , STRUCTURE_TYPE_HOST_IMAGE_COPY_DEVICE_PERFORMANCE_QUERY_EXT + , STRUCTURE_TYPE_SUBRESOURCE_HOST_MEMCPY_SIZE_EXT + , STRUCTURE_TYPE_COPY_IMAGE_TO_IMAGE_INFO_EXT + , STRUCTURE_TYPE_HOST_IMAGE_LAYOUT_TRANSITION_INFO_EXT + , STRUCTURE_TYPE_COPY_MEMORY_TO_IMAGE_INFO_EXT + , STRUCTURE_TYPE_COPY_IMAGE_TO_MEMORY_INFO_EXT + , STRUCTURE_TYPE_IMAGE_TO_MEMORY_COPY_EXT + , STRUCTURE_TYPE_MEMORY_TO_IMAGE_COPY_EXT + , STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_PROPERTIES_EXT + , STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_FEATURES_EXT , STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR , STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR , STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR @@ -4071,6 +4489,11 @@ pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES = StructureType 10000 , STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT , STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT , STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT + , STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_NODE_CREATE_INFO_AMDX + , STRUCTURE_TYPE_EXECUTION_GRAPH_PIPELINE_CREATE_INFO_AMDX + , STRUCTURE_TYPE_EXECUTION_GRAPH_PIPELINE_SCRATCH_SIZE_AMDX + , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ENQUEUE_PROPERTIES_AMDX + , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ENQUEUE_FEATURES_AMDX , STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_2_ANDROID , STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID , STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID @@ -4564,6 +4987,74 @@ showTableStructureType = ( STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO , "LOADER_DEVICE_CREATE_INFO" ) + , + ( STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_POOL_OVERALLOCATION_FEATURES_NV + , "PHYSICAL_DEVICE_DESCRIPTOR_POOL_OVERALLOCATION_FEATURES_NV" + ) + , + ( STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_DRIVER_PROPERTIES_MSFT + , "PHYSICAL_DEVICE_LAYERED_DRIVER_PROPERTIES_MSFT" + ) + , + ( STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_SCREEN_BUFFER_FEATURES_QNX + , "PHYSICAL_DEVICE_EXTERNAL_MEMORY_SCREEN_BUFFER_FEATURES_QNX" + ) + , + ( STRUCTURE_TYPE_EXTERNAL_FORMAT_QNX + , "EXTERNAL_FORMAT_QNX" + ) + , + ( STRUCTURE_TYPE_IMPORT_SCREEN_BUFFER_INFO_QNX + , "IMPORT_SCREEN_BUFFER_INFO_QNX" + ) + , + ( STRUCTURE_TYPE_SCREEN_BUFFER_FORMAT_PROPERTIES_QNX + , "SCREEN_BUFFER_FORMAT_PROPERTIES_QNX" + ) + , + ( STRUCTURE_TYPE_SCREEN_BUFFER_PROPERTIES_QNX + , "SCREEN_BUFFER_PROPERTIES_QNX" + ) + , + ( STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_FEATURES_EXT + , "PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_FEATURES_EXT" + ) + , + ( STRUCTURE_TYPE_PHYSICAL_DEVICE_CUBIC_CLAMP_FEATURES_QCOM + , "PHYSICAL_DEVICE_CUBIC_CLAMP_FEATURES_QCOM" + ) + , + ( STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_YCBCR_DEGAMMA_CREATE_INFO_QCOM + , "SAMPLER_YCBCR_CONVERSION_YCBCR_DEGAMMA_CREATE_INFO_QCOM" + ) + , + ( STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_DEGAMMA_FEATURES_QCOM + , "PHYSICAL_DEVICE_YCBCR_DEGAMMA_FEATURES_QCOM" + ) + , + ( STRUCTURE_TYPE_BLIT_IMAGE_CUBIC_WEIGHTS_INFO_QCOM + , "BLIT_IMAGE_CUBIC_WEIGHTS_INFO_QCOM" + ) + , + ( STRUCTURE_TYPE_PHYSICAL_DEVICE_CUBIC_WEIGHTS_FEATURES_QCOM + , "PHYSICAL_DEVICE_CUBIC_WEIGHTS_FEATURES_QCOM" + ) + , + ( STRUCTURE_TYPE_SAMPLER_CUBIC_WEIGHTS_CREATE_INFO_QCOM + , "SAMPLER_CUBIC_WEIGHTS_CREATE_INFO_QCOM" + ) + , + ( STRUCTURE_TYPE_SAMPLER_BLOCK_MATCH_WINDOW_CREATE_INFO_QCOM + , "SAMPLER_BLOCK_MATCH_WINDOW_CREATE_INFO_QCOM" + ) + , + ( STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_2_PROPERTIES_QCOM + , "PHYSICAL_DEVICE_IMAGE_PROCESSING_2_PROPERTIES_QCOM" + ) + , + ( STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_2_FEATURES_QCOM + , "PHYSICAL_DEVICE_IMAGE_PROCESSING_2_FEATURES_QCOM" + ) , ( STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_RENDER_AREAS_RENDER_PASS_BEGIN_INFO_QCOM , "MULTIVIEW_PER_VIEW_RENDER_AREAS_RENDER_PASS_BEGIN_INFO_QCOM" @@ -4572,6 +5063,58 @@ showTableStructureType = ( STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_RENDER_AREAS_FEATURES_QCOM , "PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_RENDER_AREAS_FEATURES_QCOM" ) + , + ( STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_KHR + , "PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_KHR" + ) + , + ( STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_KHR + , "COOPERATIVE_MATRIX_PROPERTIES_KHR" + ) + , + ( STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_KHR + , "PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_KHR" + ) + , + ( STRUCTURE_TYPE_LATENCY_SURFACE_CAPABILITIES_NV + , "LATENCY_SURFACE_CAPABILITIES_NV" + ) + , + ( STRUCTURE_TYPE_SWAPCHAIN_LATENCY_CREATE_INFO_NV + , "SWAPCHAIN_LATENCY_CREATE_INFO_NV" + ) + , + ( STRUCTURE_TYPE_OUT_OF_BAND_QUEUE_TYPE_INFO_NV + , "OUT_OF_BAND_QUEUE_TYPE_INFO_NV" + ) + , + ( STRUCTURE_TYPE_LATENCY_SUBMISSION_PRESENT_ID_NV + , "LATENCY_SUBMISSION_PRESENT_ID_NV" + ) + , + ( STRUCTURE_TYPE_LATENCY_TIMINGS_FRAME_REPORT_NV + , "LATENCY_TIMINGS_FRAME_REPORT_NV" + ) + , + ( STRUCTURE_TYPE_GET_LATENCY_MARKER_INFO_NV + , "GET_LATENCY_MARKER_INFO_NV" + ) + , + ( STRUCTURE_TYPE_SET_LATENCY_MARKER_INFO_NV + , "SET_LATENCY_MARKER_INFO_NV" + ) + , + ( STRUCTURE_TYPE_LATENCY_SLEEP_INFO_NV + , "LATENCY_SLEEP_INFO_NV" + ) + , + ( STRUCTURE_TYPE_LATENCY_SLEEP_MODE_INFO_NV + , "LATENCY_SLEEP_MODE_INFO_NV" + ) + , + ( STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_FEATURES_EXT + , "PHYSICAL_DEVICE_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_FEATURES_EXT" + ) , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_LIBRARY_GROUP_HANDLES_FEATURES_EXT , "PHYSICAL_DEVICE_PIPELINE_LIBRARY_GROUP_HANDLES_FEATURES_EXT" @@ -4592,6 +5135,14 @@ showTableStructureType = ( STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT , "PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT" ) + , + ( STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_PROPERTIES_NV + , "PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_PROPERTIES_NV" + ) + , + ( STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_FEATURES_NV + , "PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_FEATURES_NV" + ) , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_PROPERTIES_NV , "PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_PROPERTIES_NV" @@ -4640,6 +5191,54 @@ showTableStructureType = ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_OBJECT_FEATURES_EXT , "PHYSICAL_DEVICE_SHADER_OBJECT_FEATURES_EXT" ) + , + ( STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_POSITION_FETCH_FEATURES_KHR + , "PHYSICAL_DEVICE_RAY_TRACING_POSITION_FETCH_FEATURES_KHR" + ) + , + ( STRUCTURE_TYPE_BUFFER_USAGE_FLAGS_2_CREATE_INFO_KHR + , "BUFFER_USAGE_FLAGS_2_CREATE_INFO_KHR" + ) + , + ( STRUCTURE_TYPE_PIPELINE_CREATE_FLAGS_2_CREATE_INFO_KHR + , "PIPELINE_CREATE_FLAGS_2_CREATE_INFO_KHR" + ) + , + ( STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_KHR + , "IMAGE_SUBRESOURCE_2_KHR" + ) + , + ( STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_KHR + , "SUBRESOURCE_LAYOUT_2_KHR" + ) + , + ( STRUCTURE_TYPE_DEVICE_IMAGE_SUBRESOURCE_INFO_KHR + , "DEVICE_IMAGE_SUBRESOURCE_INFO_KHR" + ) + , + ( STRUCTURE_TYPE_RENDERING_AREA_INFO_KHR + , "RENDERING_AREA_INFO_KHR" + ) + , + ( STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_PROPERTIES_KHR + , "PHYSICAL_DEVICE_MAINTENANCE_5_PROPERTIES_KHR" + ) + , + ( STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_FEATURES_KHR + , "PHYSICAL_DEVICE_MAINTENANCE_5_FEATURES_KHR" + ) + , + ( STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_RESOLVE_PROPERTIES_ANDROID + , "ANDROID_HARDWARE_BUFFER_FORMAT_RESOLVE_PROPERTIES_ANDROID" + ) + , + ( STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_PROPERTIES_ANDROID + , "PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_PROPERTIES_ANDROID" + ) + , + ( STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_FEATURES_ANDROID + , "PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_FEATURES_ANDROID" + ) , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES_EXT , "PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES_EXT" @@ -4728,6 +5327,18 @@ showTableStructureType = ( STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT , "PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT" ) + , + ( STRUCTURE_TYPE_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_EXT + , "EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_EXT" + ) + , + ( STRUCTURE_TYPE_PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_PROPERTIES_EXT + , "PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_PROPERTIES_EXT" + ) + , + ( STRUCTURE_TYPE_PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_FEATURES_EXT + , "PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_FEATURES_EXT" + ) , ( STRUCTURE_TYPE_IMAGE_VIEW_SAMPLE_WEIGHT_CREATE_INFO_QCOM , "IMAGE_VIEW_SAMPLE_WEIGHT_CREATE_INFO_QCOM" @@ -4748,6 +5359,18 @@ showTableStructureType = ( STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV , "PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV" ) + , + ( STRUCTURE_TYPE_PIPELINE_INDIRECT_DEVICE_ADDRESS_INFO_NV + , "PIPELINE_INDIRECT_DEVICE_ADDRESS_INFO_NV" + ) + , + ( STRUCTURE_TYPE_COMPUTE_PIPELINE_INDIRECT_BUFFER_INFO_NV + , "COMPUTE_PIPELINE_INDIRECT_BUFFER_INFO_NV" + ) + , + ( STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_COMPUTE_FEATURES_NV + , "PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_COMPUTE_FEATURES_NV" + ) , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_PROPERTIES_NV , "PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_PROPERTIES_NV" @@ -4944,6 +5567,14 @@ showTableStructureType = ( STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_FEATURES_EXT , "PHYSICAL_DEVICE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_FEATURES_EXT" ) + , + ( STRUCTURE_TYPE_FRAME_BOUNDARY_EXT + , "FRAME_BOUNDARY_EXT" + ) + , + ( STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAME_BOUNDARY_FEATURES_EXT + , "PHYSICAL_DEVICE_FRAME_BOUNDARY_FEATURES_EXT" + ) , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT , "PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT" @@ -5096,14 +5727,6 @@ showTableStructureType = ( STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT , "IMAGE_COMPRESSION_PROPERTIES_EXT" ) - , - ( STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_EXT - , "IMAGE_SUBRESOURCE_2_EXT" - ) - , - ( STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_EXT - , "SUBRESOURCE_LAYOUT_2_EXT" - ) , ( STRUCTURE_TYPE_IMAGE_COMPRESSION_CONTROL_EXT , "IMAGE_COMPRESSION_CONTROL_EXT" @@ -5365,6 +5988,18 @@ showTableStructureType = ( STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT , "PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT" ) + , + ( STRUCTURE_TYPE_DEPTH_BIAS_REPRESENTATION_INFO_EXT + , "DEPTH_BIAS_REPRESENTATION_INFO_EXT" + ) + , + ( STRUCTURE_TYPE_DEPTH_BIAS_INFO_EXT + , "DEPTH_BIAS_INFO_EXT" + ) + , + ( STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_BIAS_CONTROL_FEATURES_EXT + , "PHYSICAL_DEVICE_DEPTH_BIAS_CONTROL_FEATURES_EXT" + ) , ( STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM , "RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM" @@ -5465,6 +6100,46 @@ showTableStructureType = ( STRUCTURE_TYPE_MEMORY_MAP_INFO_KHR , "MEMORY_MAP_INFO_KHR" ) + , + ( STRUCTURE_TYPE_HOST_IMAGE_COPY_DEVICE_PERFORMANCE_QUERY_EXT + , "HOST_IMAGE_COPY_DEVICE_PERFORMANCE_QUERY_EXT" + ) + , + ( STRUCTURE_TYPE_SUBRESOURCE_HOST_MEMCPY_SIZE_EXT + , "SUBRESOURCE_HOST_MEMCPY_SIZE_EXT" + ) + , + ( STRUCTURE_TYPE_COPY_IMAGE_TO_IMAGE_INFO_EXT + , "COPY_IMAGE_TO_IMAGE_INFO_EXT" + ) + , + ( STRUCTURE_TYPE_HOST_IMAGE_LAYOUT_TRANSITION_INFO_EXT + , "HOST_IMAGE_LAYOUT_TRANSITION_INFO_EXT" + ) + , + ( STRUCTURE_TYPE_COPY_MEMORY_TO_IMAGE_INFO_EXT + , "COPY_MEMORY_TO_IMAGE_INFO_EXT" + ) + , + ( STRUCTURE_TYPE_COPY_IMAGE_TO_MEMORY_INFO_EXT + , "COPY_IMAGE_TO_MEMORY_INFO_EXT" + ) + , + ( STRUCTURE_TYPE_IMAGE_TO_MEMORY_COPY_EXT + , "IMAGE_TO_MEMORY_COPY_EXT" + ) + , + ( STRUCTURE_TYPE_MEMORY_TO_IMAGE_COPY_EXT + , "MEMORY_TO_IMAGE_COPY_EXT" + ) + , + ( STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_PROPERTIES_EXT + , "PHYSICAL_DEVICE_HOST_IMAGE_COPY_PROPERTIES_EXT" + ) + , + ( STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_FEATURES_EXT + , "PHYSICAL_DEVICE_HOST_IMAGE_COPY_FEATURES_EXT" + ) , ( STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR , "PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR" @@ -6035,6 +6710,26 @@ showTableStructureType = ( STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT , "SAMPLE_LOCATIONS_INFO_EXT" ) + , + ( STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_NODE_CREATE_INFO_AMDX + , "PIPELINE_SHADER_STAGE_NODE_CREATE_INFO_AMDX" + ) + , + ( STRUCTURE_TYPE_EXECUTION_GRAPH_PIPELINE_CREATE_INFO_AMDX + , "EXECUTION_GRAPH_PIPELINE_CREATE_INFO_AMDX" + ) + , + ( STRUCTURE_TYPE_EXECUTION_GRAPH_PIPELINE_SCRATCH_SIZE_AMDX + , "EXECUTION_GRAPH_PIPELINE_SCRATCH_SIZE_AMDX" + ) + , + ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ENQUEUE_PROPERTIES_AMDX + , "PHYSICAL_DEVICE_SHADER_ENQUEUE_PROPERTIES_AMDX" + ) + , + ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ENQUEUE_FEATURES_AMDX + , "PHYSICAL_DEVICE_SHADER_ENQUEUE_FEATURES_AMDX" + ) , ( STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_2_ANDROID , "ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_2_ANDROID" diff --git a/src/Vulkan/Core10/Enums/SubpassContents.hs b/src/Vulkan/Core10/Enums/SubpassContents.hs index 83fd193a6..1fd8be60c 100644 --- a/src/Vulkan/Core10/Enums/SubpassContents.hs +++ b/src/Vulkan/Core10/Enums/SubpassContents.hs @@ -2,6 +2,7 @@ -- No documentation found for Chapter "SubpassContents" module Vulkan.Core10.Enums.SubpassContents (SubpassContents( SUBPASS_CONTENTS_INLINE , SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS + , SUBPASS_CONTENTS_INLINE_AND_SECONDARY_COMMAND_BUFFERS_EXT , .. )) where @@ -35,14 +36,21 @@ pattern SUBPASS_CONTENTS_INLINE = SubpassContents 0 -- are recorded in secondary command buffers that will be called from the -- primary command buffer, and -- 'Vulkan.Core10.CommandBufferBuilding.cmdExecuteCommands' is the only --- valid command on the command buffer until +-- valid command in the command buffer until -- 'Vulkan.Core10.CommandBufferBuilding.cmdNextSubpass' or -- 'Vulkan.Core10.CommandBufferBuilding.cmdEndRenderPass'. pattern SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS = SubpassContents 1 +-- | 'SUBPASS_CONTENTS_INLINE_AND_SECONDARY_COMMAND_BUFFERS_EXT' specifies +-- that the contents of the subpass /can/ be recorded both inline and in +-- secondary command buffers executed from this command buffer with +-- 'Vulkan.Core10.CommandBufferBuilding.cmdExecuteCommands'. +pattern SUBPASS_CONTENTS_INLINE_AND_SECONDARY_COMMAND_BUFFERS_EXT = SubpassContents 1000451000 + {-# COMPLETE SUBPASS_CONTENTS_INLINE - , SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS :: + , SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS + , SUBPASS_CONTENTS_INLINE_AND_SECONDARY_COMMAND_BUFFERS_EXT :: SubpassContents #-} @@ -59,6 +67,10 @@ showTableSubpassContents = ( SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS , "SECONDARY_COMMAND_BUFFERS" ) + , + ( SUBPASS_CONTENTS_INLINE_AND_SECONDARY_COMMAND_BUFFERS_EXT + , "INLINE_AND_SECONDARY_COMMAND_BUFFERS_EXT" + ) ] instance Show SubpassContents where diff --git a/src/Vulkan/Core10/FundamentalTypes.hs b/src/Vulkan/Core10/FundamentalTypes.hs index a14dea086..ca15b14f9 100644 --- a/src/Vulkan/Core10/FundamentalTypes.hs +++ b/src/Vulkan/Core10/FundamentalTypes.hs @@ -126,6 +126,8 @@ instance Zero Offset2D where -- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.ImageCopy2', -- 'Vulkan.Core10.CommandBufferBuilding.ImageResolve', -- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.ImageResolve2', +-- 'Vulkan.Extensions.VK_EXT_host_image_copy.ImageToMemoryCopyEXT', +-- 'Vulkan.Extensions.VK_EXT_host_image_copy.MemoryToImageCopyEXT', -- 'Vulkan.Core10.SparseResourceMemoryManagement.SparseImageMemoryBind' data Offset3D = Offset3D { -- | @x@ is the x offset. @@ -193,6 +195,7 @@ instance Zero Offset3D where -- 'Vulkan.Extensions.VK_EXT_fragment_density_map.PhysicalDeviceFragmentDensityMapPropertiesEXT', -- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PhysicalDeviceFragmentShadingRateKHR', -- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PhysicalDeviceFragmentShadingRatePropertiesKHR', +-- 'Vulkan.Extensions.VK_QCOM_image_processing2.PhysicalDeviceImageProcessing2PropertiesQCOM', -- 'Vulkan.Extensions.VK_QCOM_image_processing.PhysicalDeviceImageProcessingPropertiesQCOM', -- 'Vulkan.Extensions.VK_EXT_sample_locations.PhysicalDeviceSampleLocationsPropertiesEXT', -- 'Vulkan.Extensions.VK_NV_shading_rate_image.PhysicalDeviceShadingRateImagePropertiesNV', @@ -200,6 +203,7 @@ instance Zero Offset3D where -- 'Rect2D', 'Vulkan.Extensions.VK_KHR_incremental_present.RectLayerKHR', -- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentShadingRateAttachmentInfoKHR', -- 'Vulkan.Extensions.VK_EXT_sample_locations.SampleLocationsInfoEXT', +-- 'Vulkan.Extensions.VK_QCOM_image_processing2.SamplerBlockMatchWindowCreateInfoQCOM', -- 'Vulkan.Extensions.VK_EXT_display_surface_counter.SurfaceCapabilities2EXT', -- 'Vulkan.Extensions.VK_KHR_surface.SurfaceCapabilitiesKHR', -- 'Vulkan.Extensions.VK_EXT_surface_maintenance1.SurfacePresentScalingCapabilitiesEXT', @@ -207,11 +211,13 @@ instance Zero Offset3D where -- 'Vulkan.Extensions.VK_QCOM_tile_properties.TilePropertiesQCOM', -- , -- , +-- , -- , -- , -- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR', -- 'Vulkan.Extensions.VK_HUAWEI_subpass_shading.getDeviceSubpassShadingMaxWorkgroupSizeHUAWEI', --- 'Vulkan.Core10.Pass.getRenderAreaGranularity' +-- 'Vulkan.Core10.Pass.getRenderAreaGranularity', +-- 'Vulkan.Extensions.VK_KHR_maintenance5.getRenderingAreaGranularityKHR' data Extent2D = Extent2D { -- | @width@ is the width of the extent. width :: Word32 @@ -270,6 +276,8 @@ instance Zero Extent2D where -- 'Vulkan.Core10.DeviceInitialization.ImageFormatProperties', -- 'Vulkan.Core10.CommandBufferBuilding.ImageResolve', -- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.ImageResolve2', +-- 'Vulkan.Extensions.VK_EXT_host_image_copy.ImageToMemoryCopyEXT', +-- 'Vulkan.Extensions.VK_EXT_host_image_copy.MemoryToImageCopyEXT', -- 'Vulkan.Core10.DeviceInitialization.QueueFamilyProperties', -- 'Vulkan.Core10.SparseResourceMemoryManagement.SparseImageFormatProperties', -- 'Vulkan.Core10.SparseResourceMemoryManagement.SparseImageMemoryBind', @@ -415,14 +423,19 @@ instance Zero Rect2D where -- 'Vulkan.Extensions.VK_EXT_conditional_rendering.CommandBufferInheritanceConditionalRenderingInfoEXT', -- 'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo', -- 'Vulkan.Extensions.VK_NV_inherited_viewport_scissor.CommandBufferInheritanceViewportScissorInfoNV', +-- 'Vulkan.Extensions.VK_KHR_cooperative_matrix.CooperativeMatrixPropertiesKHR', -- 'Vulkan.Extensions.VK_NV_dedicated_allocation.DedicatedAllocationBufferCreateInfoNV', -- 'Vulkan.Extensions.VK_NV_dedicated_allocation.DedicatedAllocationImageCreateInfoNV', +-- 'Vulkan.Extensions.VK_EXT_depth_bias_control.DepthBiasRepresentationInfoEXT', -- 'Vulkan.Core11.Promoted_From_VK_KHR_maintenance3.DescriptorSetLayoutSupport', -- 'Vulkan.Extensions.VK_AMD_display_native_hdr.DisplayNativeHdrSurfaceCapabilitiesAMD', -- 'Vulkan.Extensions.VK_KHR_display_swapchain.DisplayPresentInfoKHR', -- 'Vulkan.Extensions.VK_KHR_display.DisplayPropertiesKHR', +-- 'Vulkan.Extensions.VK_EXT_external_memory_acquire_unmodified.ExternalMemoryAcquireUnmodifiedEXT', -- 'Vulkan.Extensions.VK_EXT_filter_cubic.FilterCubicImageViewImageFormatPropertiesEXT', +-- 'Vulkan.Extensions.VK_EXT_host_image_copy.HostImageCopyDevicePerformanceQueryEXT', -- 'Vulkan.Extensions.VK_NV_device_generated_commands.IndirectCommandsLayoutTokenNV', +-- 'Vulkan.Extensions.VK_NV_low_latency2.LatencySleepModeInfoNV', -- 'Vulkan.Core11.Promoted_From_VK_KHR_dedicated_allocation.MemoryDedicatedRequirements', -- 'Vulkan.Extensions.VK_EXT_opacity_micromap.MicromapBuildSizesInfoEXT', -- 'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT', @@ -436,6 +449,7 @@ instance Zero Rect2D where -- 'Vulkan.Extensions.VK_KHR_acceleration_structure.PhysicalDeviceAccelerationStructureFeaturesKHR', -- 'Vulkan.Extensions.VK_EXT_device_address_binding_report.PhysicalDeviceAddressBindingReportFeaturesEXT', -- 'Vulkan.Extensions.VK_SEC_amigo_profiling.PhysicalDeviceAmigoProfilingFeaturesSEC', +-- 'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT', -- 'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_layout.PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT', -- 'Vulkan.Extensions.VK_EXT_blend_operation_advanced.PhysicalDeviceBlendOperationAdvancedFeaturesEXT', -- 'Vulkan.Extensions.VK_EXT_blend_operation_advanced.PhysicalDeviceBlendOperationAdvancedPropertiesEXT', @@ -448,12 +462,16 @@ instance Zero Rect2D where -- 'Vulkan.Extensions.VK_NV_compute_shader_derivatives.PhysicalDeviceComputeShaderDerivativesFeaturesNV', -- 'Vulkan.Extensions.VK_EXT_conditional_rendering.PhysicalDeviceConditionalRenderingFeaturesEXT', -- 'Vulkan.Extensions.VK_EXT_conservative_rasterization.PhysicalDeviceConservativeRasterizationPropertiesEXT', +-- 'Vulkan.Extensions.VK_KHR_cooperative_matrix.PhysicalDeviceCooperativeMatrixFeaturesKHR', -- 'Vulkan.Extensions.VK_NV_cooperative_matrix.PhysicalDeviceCooperativeMatrixFeaturesNV', -- 'Vulkan.Extensions.VK_NV_copy_memory_indirect.PhysicalDeviceCopyMemoryIndirectFeaturesNV', -- 'Vulkan.Extensions.VK_NV_corner_sampled_image.PhysicalDeviceCornerSampledImageFeaturesNV', -- 'Vulkan.Extensions.VK_NV_coverage_reduction_mode.PhysicalDeviceCoverageReductionModeFeaturesNV', +-- 'Vulkan.Extensions.VK_QCOM_filter_cubic_clamp.PhysicalDeviceCubicClampFeaturesQCOM', +-- 'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.PhysicalDeviceCubicWeightsFeaturesQCOM', -- 'Vulkan.Extensions.VK_EXT_custom_border_color.PhysicalDeviceCustomBorderColorFeaturesEXT', -- 'Vulkan.Extensions.VK_NV_dedicated_allocation_image_aliasing.PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV', +-- 'Vulkan.Extensions.VK_EXT_depth_bias_control.PhysicalDeviceDepthBiasControlFeaturesEXT', -- 'Vulkan.Extensions.VK_EXT_depth_clamp_zero_one.PhysicalDeviceDepthClampZeroOneFeaturesEXT', -- 'Vulkan.Extensions.VK_EXT_depth_clip_control.PhysicalDeviceDepthClipControlFeaturesEXT', -- 'Vulkan.Extensions.VK_EXT_depth_clip_enable.PhysicalDeviceDepthClipEnableFeaturesEXT', @@ -462,19 +480,26 @@ instance Zero Rect2D where -- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.PhysicalDeviceDescriptorBufferPropertiesEXT', -- 'Vulkan.Core12.Promoted_From_VK_EXT_descriptor_indexing.PhysicalDeviceDescriptorIndexingFeatures', -- 'Vulkan.Core12.Promoted_From_VK_EXT_descriptor_indexing.PhysicalDeviceDescriptorIndexingProperties', +-- 'Vulkan.Extensions.VK_NV_descriptor_pool_overallocation.PhysicalDeviceDescriptorPoolOverallocationFeaturesNV', -- 'Vulkan.Extensions.VK_VALVE_descriptor_set_host_mapping.PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE', +-- 'Vulkan.Extensions.VK_NV_device_generated_commands_compute.PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV', -- 'Vulkan.Extensions.VK_NV_device_generated_commands.PhysicalDeviceDeviceGeneratedCommandsFeaturesNV', -- 'Vulkan.Extensions.VK_EXT_device_memory_report.PhysicalDeviceDeviceMemoryReportFeaturesEXT', -- 'Vulkan.Extensions.VK_NV_device_diagnostics_config.PhysicalDeviceDiagnosticsConfigFeaturesNV', -- 'Vulkan.Extensions.VK_NV_displacement_micromap.PhysicalDeviceDisplacementMicromapFeaturesNV', -- 'Vulkan.Extensions.VK_EXT_physical_device_drm.PhysicalDeviceDrmPropertiesEXT', -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PhysicalDeviceDynamicRenderingFeatures', +-- 'Vulkan.Extensions.VK_EXT_dynamic_rendering_unused_attachments.PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT', -- 'Vulkan.Extensions.VK_NV_scissor_exclusive.PhysicalDeviceExclusiveScissorFeaturesNV', -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.PhysicalDeviceExtendedDynamicState2FeaturesEXT', -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.PhysicalDeviceExtendedDynamicState3FeaturesEXT', -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.PhysicalDeviceExtendedDynamicState3PropertiesEXT', -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.PhysicalDeviceExtendedDynamicStateFeaturesEXT', +-- 'Vulkan.Extensions.VK_NV_extended_sparse_address_space.PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV', +-- 'Vulkan.Extensions.VK_ANDROID_external_format_resolve.PhysicalDeviceExternalFormatResolveFeaturesANDROID', +-- 'Vulkan.Extensions.VK_ANDROID_external_format_resolve.PhysicalDeviceExternalFormatResolvePropertiesANDROID', -- 'Vulkan.Extensions.VK_NV_external_memory_rdma.PhysicalDeviceExternalMemoryRDMAFeaturesNV', +-- 'Vulkan.Extensions.VK_QNX_external_memory_screen_buffer.PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX', -- 'Vulkan.Extensions.VK_EXT_device_fault.PhysicalDeviceFaultFeaturesEXT', -- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceFeatures', -- 'Vulkan.Core12.Promoted_From_VK_KHR_shader_float_controls.PhysicalDeviceFloatControlsProperties', @@ -489,15 +514,19 @@ instance Zero Rect2D where -- 'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.PhysicalDeviceFragmentShadingRateEnumsFeaturesNV', -- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PhysicalDeviceFragmentShadingRateFeaturesKHR', -- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PhysicalDeviceFragmentShadingRatePropertiesKHR', +-- 'Vulkan.Extensions.VK_EXT_frame_boundary.PhysicalDeviceFrameBoundaryFeaturesEXT', -- 'Vulkan.Extensions.VK_KHR_global_priority.PhysicalDeviceGlobalPriorityQueryFeaturesKHR', -- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT', -- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT', -- 'Vulkan.Core11.Promoted_From_VK_KHR_device_group_creation.PhysicalDeviceGroupProperties', +-- 'Vulkan.Extensions.VK_EXT_host_image_copy.PhysicalDeviceHostImageCopyFeaturesEXT', +-- 'Vulkan.Extensions.VK_EXT_host_image_copy.PhysicalDeviceHostImageCopyPropertiesEXT', -- 'Vulkan.Core12.Promoted_From_VK_EXT_host_query_reset.PhysicalDeviceHostQueryResetFeatures', -- 'Vulkan.Core11.Promoted_From_VK_KHR_external_memory_capabilities.PhysicalDeviceIDProperties', -- 'Vulkan.Extensions.VK_EXT_image_2d_view_of_3d.PhysicalDeviceImage2DViewOf3DFeaturesEXT', -- 'Vulkan.Extensions.VK_EXT_image_compression_control.PhysicalDeviceImageCompressionControlFeaturesEXT', -- 'Vulkan.Extensions.VK_EXT_image_compression_control_swapchain.PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT', +-- 'Vulkan.Extensions.VK_QCOM_image_processing2.PhysicalDeviceImageProcessing2FeaturesQCOM', -- 'Vulkan.Extensions.VK_QCOM_image_processing.PhysicalDeviceImageProcessingFeaturesQCOM', -- 'Vulkan.Core13.Promoted_From_VK_EXT_image_robustness.PhysicalDeviceImageRobustnessFeatures', -- 'Vulkan.Extensions.VK_EXT_image_sliced_view_of_3d.PhysicalDeviceImageSlicedViewOf3DFeaturesEXT', @@ -512,6 +541,8 @@ instance Zero Rect2D where -- 'Vulkan.Extensions.VK_EXT_line_rasterization.PhysicalDeviceLineRasterizationFeaturesEXT', -- 'Vulkan.Extensions.VK_NV_linear_color_attachment.PhysicalDeviceLinearColorAttachmentFeaturesNV', -- 'Vulkan.Core13.Promoted_From_VK_KHR_maintenance4.PhysicalDeviceMaintenance4Features', +-- 'Vulkan.Extensions.VK_KHR_maintenance5.PhysicalDeviceMaintenance5FeaturesKHR', +-- 'Vulkan.Extensions.VK_KHR_maintenance5.PhysicalDeviceMaintenance5PropertiesKHR', -- 'Vulkan.Extensions.VK_NV_memory_decompression.PhysicalDeviceMemoryDecompressionFeaturesNV', -- 'Vulkan.Extensions.VK_EXT_memory_priority.PhysicalDeviceMemoryPriorityFeaturesEXT', -- 'Vulkan.Extensions.VK_EXT_mesh_shader.PhysicalDeviceMeshShaderFeaturesEXT', @@ -524,6 +555,7 @@ instance Zero Rect2D where -- 'Vulkan.Extensions.VK_QCOM_multiview_per_view_render_areas.PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM', -- 'Vulkan.Extensions.VK_QCOM_multiview_per_view_viewports.PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM', -- 'Vulkan.Extensions.VK_EXT_mutable_descriptor_type.PhysicalDeviceMutableDescriptorTypeFeaturesEXT', +-- 'Vulkan.Extensions.VK_EXT_nested_command_buffer.PhysicalDeviceNestedCommandBufferFeaturesEXT', -- 'Vulkan.Extensions.VK_EXT_non_seamless_cube_map.PhysicalDeviceNonSeamlessCubeMapFeaturesEXT', -- 'Vulkan.Extensions.VK_EXT_opacity_micromap.PhysicalDeviceOpacityMicromapFeaturesEXT', -- 'Vulkan.Extensions.VK_NV_optical_flow.PhysicalDeviceOpticalFlowFeaturesNV', @@ -555,6 +587,7 @@ instance Zero Rect2D where -- 'Vulkan.Extensions.VK_KHR_ray_tracing_maintenance1.PhysicalDeviceRayTracingMaintenance1FeaturesKHR', -- 'Vulkan.Extensions.VK_NV_ray_tracing_motion_blur.PhysicalDeviceRayTracingMotionBlurFeaturesNV', -- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.PhysicalDeviceRayTracingPipelineFeaturesKHR', +-- 'Vulkan.Extensions.VK_KHR_ray_tracing_position_fetch.PhysicalDeviceRayTracingPositionFetchFeaturesKHR', -- 'Vulkan.Extensions.VK_NV_representative_fragment_test.PhysicalDeviceRepresentativeFragmentTestFeaturesNV', -- 'Vulkan.Extensions.VK_EXT_robustness2.PhysicalDeviceRobustness2FeaturesEXT', -- 'Vulkan.Extensions.VK_EXT_sample_locations.PhysicalDeviceSampleLocationsPropertiesEXT', @@ -570,6 +603,7 @@ instance Zero Rect2D where -- 'Vulkan.Core13.Promoted_From_VK_EXT_shader_demote_to_helper_invocation.PhysicalDeviceShaderDemoteToHelperInvocationFeatures', -- 'Vulkan.Core11.Promoted_From_VK_KHR_shader_draw_parameters.PhysicalDeviceShaderDrawParametersFeatures', -- 'Vulkan.Extensions.VK_AMD_shader_early_and_late_fragment_tests.PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD', +-- 'Vulkan.Extensions.VK_AMDX_shader_enqueue.PhysicalDeviceShaderEnqueueFeaturesAMDX', -- 'Vulkan.Core12.Promoted_From_VK_KHR_shader_float16_int8.PhysicalDeviceShaderFloat16Int8Features', -- 'Vulkan.Extensions.VK_EXT_shader_image_atomic_int64.PhysicalDeviceShaderImageAtomicInt64FeaturesEXT', -- 'Vulkan.Extensions.VK_NV_shader_image_footprint.PhysicalDeviceShaderImageFootprintFeaturesNV', @@ -612,6 +646,7 @@ instance Zero Rect2D where -- '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_QCOM_ycbcr_degamma.PhysicalDeviceYcbcrDegammaFeaturesQCOM', -- 'Vulkan.Extensions.VK_EXT_ycbcr_image_arrays.PhysicalDeviceYcbcrImageArraysFeaturesEXT', -- 'Vulkan.Core13.Promoted_From_VK_KHR_zero_initialize_workgroup_memory.PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures', -- 'Vulkan.Extensions.VK_EXT_blend_operation_advanced.PipelineColorBlendAdvancedStateCreateInfoEXT', @@ -639,17 +674,31 @@ instance Zero Rect2D where -- 'Vulkan.Extensions.VK_EXT_border_color_swizzle.SamplerBorderColorComponentMappingCreateInfoEXT', -- 'Vulkan.Core10.Sampler.SamplerCreateInfo', -- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.SamplerYcbcrConversionCreateInfo', +-- 'Vulkan.Extensions.VK_QCOM_ycbcr_degamma.SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM', -- 'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.SubpassResolvePerformanceQueryEXT', -- 'Vulkan.Extensions.VK_EXT_full_screen_exclusive.SurfaceCapabilitiesFullScreenExclusiveEXT', -- 'Vulkan.Extensions.VK_NV_present_barrier.SurfaceCapabilitiesPresentBarrierNV', -- 'Vulkan.Extensions.VK_KHR_surface_protected_capabilities.SurfaceProtectedCapabilitiesKHR', -- 'Vulkan.Extensions.VK_KHR_swapchain.SwapchainCreateInfoKHR', -- 'Vulkan.Extensions.VK_AMD_display_native_hdr.SwapchainDisplayNativeHdrCreateInfoAMD', +-- 'Vulkan.Extensions.VK_NV_low_latency2.SwapchainLatencyCreateInfoNV', -- 'Vulkan.Extensions.VK_NV_present_barrier.SwapchainPresentBarrierCreateInfoNV', -- 'Vulkan.Extensions.VK_AMD_texture_gather_bias_lod.TextureLODGatherFormatPropertiesAMD', -- , +-- , +-- , +-- , -- , +-- , +-- , +-- , +-- , +-- , -- , +-- , +-- , +-- , +-- , -- 'Vulkan.Extensions.VK_NV_ray_tracing.cmdBuildAccelerationStructureNV', -- 'Vulkan.Extensions.VK_NV_device_generated_commands.cmdExecuteGeneratedCommandsNV', -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT', @@ -816,7 +865,7 @@ type Flags = Word32 -- type, are defined as @uint64_t@ integers in the C API. This is in -- contrast to the 32-bit types, where the @Vk*FlagBits@ type is defined as -- a C @enum@ and the individual bits as enumerants belonging to that --- @enum@. As a result, there is less compile-time type checking possible +-- @enum@. As a result, there is less compile time type checking possible -- for the 64-bit types. This is unavoidable since there is no sufficiently -- portable way to define a 64-bit @enum@ type in C99. -- @@ -853,6 +902,7 @@ type Flags64 = Word64 -- 'Vulkan.Core10.OtherTypes.BufferMemoryBarrier', -- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.BufferMemoryBarrier2', -- 'Vulkan.Core10.BufferView.BufferViewCreateInfo', +-- 'Vulkan.Extensions.VK_NV_device_generated_commands_compute.ComputePipelineIndirectBufferInfoNV', -- 'Vulkan.Extensions.VK_EXT_conditional_rendering.ConditionalRenderingBeginInfoEXT', -- 'Vulkan.Extensions.VK_NV_copy_memory_indirect.CopyMemoryIndirectCommandNV', -- 'Vulkan.Extensions.VK_NV_memory_decompression.DecompressMemoryRegionNV', @@ -862,6 +912,7 @@ type Flags64 = Word64 -- 'Vulkan.Extensions.VK_EXT_device_fault.DeviceFaultAddressInfoEXT', -- 'Vulkan.Extensions.VK_EXT_device_fault.DeviceFaultCountsEXT', -- 'Vulkan.Extensions.VK_EXT_device_memory_report.DeviceMemoryReportCallbackDataEXT', +-- 'Vulkan.Extensions.VK_AMDX_shader_enqueue.ExecutionGraphPipelineScratchSizeAMDX', -- 'Vulkan.Extensions.VK_NV_device_generated_commands.GeneratedCommandsInfoNV', -- 'Vulkan.Extensions.VK_NV_ray_tracing.GeometryAABBNV', -- 'Vulkan.Extensions.VK_NV_ray_tracing.GeometryTrianglesNV', @@ -878,6 +929,7 @@ type Flags64 = Word64 -- 'Vulkan.Extensions.VK_EXT_opacity_micromap.MicromapCreateInfoEXT', -- 'Vulkan.Extensions.VK_HUAWEI_cluster_culling_shader.PhysicalDeviceClusterCullingShaderPropertiesHUAWEI', -- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.PhysicalDeviceDescriptorBufferPropertiesEXT', +-- 'Vulkan.Extensions.VK_NV_extended_sparse_address_space.PhysicalDeviceExtendedSparseAddressSpacePropertiesNV', -- 'Vulkan.Extensions.VK_EXT_external_memory_host.PhysicalDeviceExternalMemoryHostPropertiesEXT', -- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits', -- 'Vulkan.Core11.Promoted_From_VK_KHR_maintenance3.PhysicalDeviceMaintenance3Properties', @@ -888,10 +940,12 @@ type Flags64 = Word64 -- 'Vulkan.Extensions.VK_EXT_transform_feedback.PhysicalDeviceTransformFeedbackPropertiesEXT', -- 'Vulkan.Core12.PhysicalDeviceVulkan11Properties', -- 'Vulkan.Core13.PhysicalDeviceVulkan13Properties', +-- 'Vulkan.Extensions.VK_QNX_external_memory_screen_buffer.ScreenBufferPropertiesQNX', -- 'Vulkan.Core10.SparseResourceMemoryManagement.SparseImageMemoryBind', -- 'Vulkan.Core10.SparseResourceMemoryManagement.SparseImageMemoryRequirements', -- 'Vulkan.Core10.SparseResourceMemoryManagement.SparseMemoryBind', -- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.StridedDeviceAddressRegionKHR', +-- 'Vulkan.Extensions.VK_EXT_host_image_copy.SubresourceHostMemcpySizeEXT', -- 'Vulkan.Core10.Image.SubresourceLayout', -- 'Vulkan.Extensions.VK_KHR_ray_tracing_maintenance1.TraceRaysIndirectCommand2KHR', -- , @@ -901,6 +955,7 @@ type Flags64 = Word64 -- 'Vulkan.Core10.MemoryManagement.bindImageMemory', -- 'Vulkan.Extensions.VK_EXT_transform_feedback.cmdBeginTransformFeedbackEXT', -- 'Vulkan.Core10.CommandBufferBuilding.cmdBindIndexBuffer', +-- 'Vulkan.Extensions.VK_KHR_maintenance5.cmdBindIndexBuffer2KHR', -- 'Vulkan.Extensions.VK_EXT_transform_feedback.cmdBindTransformFeedbackBuffersEXT', -- 'Vulkan.Core10.CommandBufferBuilding.cmdBindVertexBuffers', -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2', @@ -944,8 +999,10 @@ type DeviceSize = Word64 -- , -- 'Vulkan.Extensions.VK_KHR_acceleration_structure.AccelerationStructureCreateInfoKHR', -- 'Vulkan.Extensions.VK_NV_device_generated_commands.BindIndexBufferIndirectCommandNV', +-- 'Vulkan.Extensions.VK_NV_device_generated_commands_compute.BindPipelineIndirectCommandNV', -- 'Vulkan.Extensions.VK_NV_device_generated_commands.BindVertexBufferIndirectCommandNV', -- 'Vulkan.Extensions.VK_EXT_buffer_device_address.BufferDeviceAddressCreateInfoEXT', +-- 'Vulkan.Extensions.VK_NV_device_generated_commands_compute.ComputePipelineIndirectBufferInfoNV', -- 'Vulkan.Extensions.VK_NV_copy_memory_indirect.CopyMemoryIndirectCommandNV', -- 'Vulkan.Extensions.VK_NV_copy_memory_indirect.CopyMemoryToImageIndirectCommandNV', -- 'Vulkan.Extensions.VK_NV_memory_decompression.DecompressMemoryRegionNV', @@ -954,6 +1011,7 @@ type DeviceSize = Word64 -- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.DescriptorDataEXT', -- 'Vulkan.Extensions.VK_EXT_device_address_binding_report.DeviceAddressBindingCallbackDataEXT', -- 'Vulkan.Extensions.VK_EXT_device_fault.DeviceFaultAddressInfoEXT', +-- 'Vulkan.Extensions.VK_AMDX_shader_enqueue.DeviceOrHostAddressConstAMDX', -- 'Vulkan.Extensions.VK_KHR_acceleration_structure.DeviceOrHostAddressConstKHR', -- 'Vulkan.Extensions.VK_KHR_acceleration_structure.DeviceOrHostAddressKHR', -- 'Vulkan.Extensions.VK_NVX_image_view_handle.ImageViewAddressPropertiesNVX', @@ -964,6 +1022,10 @@ type DeviceSize = Word64 -- 'Vulkan.Extensions.VK_NV_copy_memory_indirect.cmdCopyMemoryIndirectNV', -- 'Vulkan.Extensions.VK_NV_copy_memory_indirect.cmdCopyMemoryToImageIndirectNV', -- 'Vulkan.Extensions.VK_NV_memory_decompression.cmdDecompressMemoryIndirectCountNV', +-- 'Vulkan.Extensions.VK_AMDX_shader_enqueue.cmdDispatchGraphAMDX', +-- 'Vulkan.Extensions.VK_AMDX_shader_enqueue.cmdDispatchGraphIndirectAMDX', +-- 'Vulkan.Extensions.VK_AMDX_shader_enqueue.cmdDispatchGraphIndirectCountAMDX', +-- 'Vulkan.Extensions.VK_AMDX_shader_enqueue.cmdInitializeGraphScratchMemoryAMDX', -- 'Vulkan.Extensions.VK_KHR_ray_tracing_maintenance1.cmdTraceRaysIndirect2KHR', -- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.cmdTraceRaysIndirectKHR' type DeviceAddress = Word64 diff --git a/src/Vulkan/Core10/FundamentalTypes.hs-boot b/src/Vulkan/Core10/FundamentalTypes.hs-boot index a444b9ad8..62d8b7a78 100644 --- a/src/Vulkan/Core10/FundamentalTypes.hs-boot +++ b/src/Vulkan/Core10/FundamentalTypes.hs-boot @@ -67,8 +67,10 @@ data Bool32 -- , -- 'Vulkan.Extensions.VK_KHR_acceleration_structure.AccelerationStructureCreateInfoKHR', -- 'Vulkan.Extensions.VK_NV_device_generated_commands.BindIndexBufferIndirectCommandNV', +-- 'Vulkan.Extensions.VK_NV_device_generated_commands_compute.BindPipelineIndirectCommandNV', -- 'Vulkan.Extensions.VK_NV_device_generated_commands.BindVertexBufferIndirectCommandNV', -- 'Vulkan.Extensions.VK_EXT_buffer_device_address.BufferDeviceAddressCreateInfoEXT', +-- 'Vulkan.Extensions.VK_NV_device_generated_commands_compute.ComputePipelineIndirectBufferInfoNV', -- 'Vulkan.Extensions.VK_NV_copy_memory_indirect.CopyMemoryIndirectCommandNV', -- 'Vulkan.Extensions.VK_NV_copy_memory_indirect.CopyMemoryToImageIndirectCommandNV', -- 'Vulkan.Extensions.VK_NV_memory_decompression.DecompressMemoryRegionNV', @@ -77,6 +79,7 @@ data Bool32 -- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.DescriptorDataEXT', -- 'Vulkan.Extensions.VK_EXT_device_address_binding_report.DeviceAddressBindingCallbackDataEXT', -- 'Vulkan.Extensions.VK_EXT_device_fault.DeviceFaultAddressInfoEXT', +-- 'Vulkan.Extensions.VK_AMDX_shader_enqueue.DeviceOrHostAddressConstAMDX', -- 'Vulkan.Extensions.VK_KHR_acceleration_structure.DeviceOrHostAddressConstKHR', -- 'Vulkan.Extensions.VK_KHR_acceleration_structure.DeviceOrHostAddressKHR', -- 'Vulkan.Extensions.VK_NVX_image_view_handle.ImageViewAddressPropertiesNVX', @@ -87,6 +90,10 @@ data Bool32 -- 'Vulkan.Extensions.VK_NV_copy_memory_indirect.cmdCopyMemoryIndirectNV', -- 'Vulkan.Extensions.VK_NV_copy_memory_indirect.cmdCopyMemoryToImageIndirectNV', -- 'Vulkan.Extensions.VK_NV_memory_decompression.cmdDecompressMemoryIndirectCountNV', +-- 'Vulkan.Extensions.VK_AMDX_shader_enqueue.cmdDispatchGraphAMDX', +-- 'Vulkan.Extensions.VK_AMDX_shader_enqueue.cmdDispatchGraphIndirectAMDX', +-- 'Vulkan.Extensions.VK_AMDX_shader_enqueue.cmdDispatchGraphIndirectCountAMDX', +-- 'Vulkan.Extensions.VK_AMDX_shader_enqueue.cmdInitializeGraphScratchMemoryAMDX', -- 'Vulkan.Extensions.VK_KHR_ray_tracing_maintenance1.cmdTraceRaysIndirect2KHR', -- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.cmdTraceRaysIndirectKHR' type DeviceAddress = Word64 @@ -117,6 +124,7 @@ type DeviceAddress = Word64 -- 'Vulkan.Core10.OtherTypes.BufferMemoryBarrier', -- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.BufferMemoryBarrier2', -- 'Vulkan.Core10.BufferView.BufferViewCreateInfo', +-- 'Vulkan.Extensions.VK_NV_device_generated_commands_compute.ComputePipelineIndirectBufferInfoNV', -- 'Vulkan.Extensions.VK_EXT_conditional_rendering.ConditionalRenderingBeginInfoEXT', -- 'Vulkan.Extensions.VK_NV_copy_memory_indirect.CopyMemoryIndirectCommandNV', -- 'Vulkan.Extensions.VK_NV_memory_decompression.DecompressMemoryRegionNV', @@ -126,6 +134,7 @@ type DeviceAddress = Word64 -- 'Vulkan.Extensions.VK_EXT_device_fault.DeviceFaultAddressInfoEXT', -- 'Vulkan.Extensions.VK_EXT_device_fault.DeviceFaultCountsEXT', -- 'Vulkan.Extensions.VK_EXT_device_memory_report.DeviceMemoryReportCallbackDataEXT', +-- 'Vulkan.Extensions.VK_AMDX_shader_enqueue.ExecutionGraphPipelineScratchSizeAMDX', -- 'Vulkan.Extensions.VK_NV_device_generated_commands.GeneratedCommandsInfoNV', -- 'Vulkan.Extensions.VK_NV_ray_tracing.GeometryAABBNV', -- 'Vulkan.Extensions.VK_NV_ray_tracing.GeometryTrianglesNV', @@ -142,6 +151,7 @@ type DeviceAddress = Word64 -- 'Vulkan.Extensions.VK_EXT_opacity_micromap.MicromapCreateInfoEXT', -- 'Vulkan.Extensions.VK_HUAWEI_cluster_culling_shader.PhysicalDeviceClusterCullingShaderPropertiesHUAWEI', -- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.PhysicalDeviceDescriptorBufferPropertiesEXT', +-- 'Vulkan.Extensions.VK_NV_extended_sparse_address_space.PhysicalDeviceExtendedSparseAddressSpacePropertiesNV', -- 'Vulkan.Extensions.VK_EXT_external_memory_host.PhysicalDeviceExternalMemoryHostPropertiesEXT', -- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits', -- 'Vulkan.Core11.Promoted_From_VK_KHR_maintenance3.PhysicalDeviceMaintenance3Properties', @@ -152,10 +162,12 @@ type DeviceAddress = Word64 -- 'Vulkan.Extensions.VK_EXT_transform_feedback.PhysicalDeviceTransformFeedbackPropertiesEXT', -- 'Vulkan.Core12.PhysicalDeviceVulkan11Properties', -- 'Vulkan.Core13.PhysicalDeviceVulkan13Properties', +-- 'Vulkan.Extensions.VK_QNX_external_memory_screen_buffer.ScreenBufferPropertiesQNX', -- 'Vulkan.Core10.SparseResourceMemoryManagement.SparseImageMemoryBind', -- 'Vulkan.Core10.SparseResourceMemoryManagement.SparseImageMemoryRequirements', -- 'Vulkan.Core10.SparseResourceMemoryManagement.SparseMemoryBind', -- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.StridedDeviceAddressRegionKHR', +-- 'Vulkan.Extensions.VK_EXT_host_image_copy.SubresourceHostMemcpySizeEXT', -- 'Vulkan.Core10.Image.SubresourceLayout', -- 'Vulkan.Extensions.VK_KHR_ray_tracing_maintenance1.TraceRaysIndirectCommand2KHR', -- , @@ -165,6 +177,7 @@ type DeviceAddress = Word64 -- 'Vulkan.Core10.MemoryManagement.bindImageMemory', -- 'Vulkan.Extensions.VK_EXT_transform_feedback.cmdBeginTransformFeedbackEXT', -- 'Vulkan.Core10.CommandBufferBuilding.cmdBindIndexBuffer', +-- 'Vulkan.Extensions.VK_KHR_maintenance5.cmdBindIndexBuffer2KHR', -- 'Vulkan.Extensions.VK_EXT_transform_feedback.cmdBindTransformFeedbackBuffersEXT', -- 'Vulkan.Core10.CommandBufferBuilding.cmdBindVertexBuffers', -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2', diff --git a/src/Vulkan/Core10/Handles.hs b/src/Vulkan/Core10/Handles.hs index 29c584c1a..3855e8dfe 100644 --- a/src/Vulkan/Core10/Handles.hs +++ b/src/Vulkan/Core10/Handles.hs @@ -143,6 +143,7 @@ data PhysicalDevice_T -- 'Vulkan.Extensions.VK_KHR_display.getDisplayPlaneSupportedDisplaysKHR', -- 'Vulkan.Extensions.VK_EXT_acquire_drm_display.getDrmDisplayEXT', -- 'Vulkan.Extensions.VK_EXT_calibrated_timestamps.getPhysicalDeviceCalibrateableTimeDomainsEXT', +-- 'Vulkan.Extensions.VK_KHR_cooperative_matrix.getPhysicalDeviceCooperativeMatrixPropertiesKHR', -- 'Vulkan.Extensions.VK_NV_cooperative_matrix.getPhysicalDeviceCooperativeMatrixPropertiesNV', -- 'Vulkan.Extensions.VK_EXT_directfb_surface.getPhysicalDeviceDirectFBPresentationSupportEXT', -- 'Vulkan.Extensions.VK_KHR_get_display_properties2.getPhysicalDeviceDisplayPlaneProperties2KHR', @@ -195,6 +196,7 @@ data PhysicalDevice_T -- 'Vulkan.Core13.Promoted_From_VK_EXT_tooling_info.getPhysicalDeviceToolProperties', -- 'Vulkan.Extensions.VK_EXT_tooling_info.getPhysicalDeviceToolPropertiesEXT', -- , +-- , -- , -- 'Vulkan.Extensions.VK_KHR_wayland_surface.getPhysicalDeviceWaylandPresentationSupportKHR', -- 'Vulkan.Extensions.VK_KHR_win32_surface.getPhysicalDeviceWin32PresentationSupportKHR', @@ -245,7 +247,10 @@ data Device_T -- 'Vulkan.Extensions.VK_NV_ray_tracing.compileDeferredNV', -- 'Vulkan.Extensions.VK_KHR_acceleration_structure.copyAccelerationStructureKHR', -- 'Vulkan.Extensions.VK_KHR_acceleration_structure.copyAccelerationStructureToMemoryKHR', +-- 'Vulkan.Extensions.VK_EXT_host_image_copy.copyImageToImageEXT', +-- 'Vulkan.Extensions.VK_EXT_host_image_copy.copyImageToMemoryEXT', -- 'Vulkan.Extensions.VK_KHR_acceleration_structure.copyMemoryToAccelerationStructureKHR', +-- 'Vulkan.Extensions.VK_EXT_host_image_copy.copyMemoryToImageEXT', -- 'Vulkan.Extensions.VK_EXT_opacity_micromap.copyMemoryToMicromapEXT', -- 'Vulkan.Extensions.VK_EXT_opacity_micromap.copyMicromapEXT', -- 'Vulkan.Extensions.VK_EXT_opacity_micromap.copyMicromapToMemoryEXT', @@ -264,6 +269,7 @@ data Device_T -- 'Vulkan.Core11.Promoted_From_VK_KHR_descriptor_update_template.createDescriptorUpdateTemplate', -- 'Vulkan.Extensions.VK_KHR_descriptor_update_template.createDescriptorUpdateTemplateKHR', -- 'Vulkan.Core10.Device.createDevice', 'Vulkan.Core10.Event.createEvent', +-- 'Vulkan.Extensions.VK_AMDX_shader_enqueue.createExecutionGraphPipelinesAMDX', -- 'Vulkan.Core10.Fence.createFence', -- 'Vulkan.Core10.Pass.createFramebuffer', -- 'Vulkan.Core10.Pipeline.createGraphicsPipelines', @@ -380,6 +386,7 @@ data Device_T -- 'Vulkan.Extensions.VK_KHR_maintenance4.getDeviceImageMemoryRequirementsKHR', -- 'Vulkan.Core13.Promoted_From_VK_KHR_maintenance4.getDeviceImageSparseMemoryRequirements', -- 'Vulkan.Extensions.VK_KHR_maintenance4.getDeviceImageSparseMemoryRequirementsKHR', +-- 'Vulkan.Extensions.VK_KHR_maintenance5.getDeviceImageSubresourceLayoutKHR', -- 'Vulkan.Core10.Memory.getDeviceMemoryCommitment', -- 'Vulkan.Core12.Promoted_From_VK_KHR_buffer_device_address.getDeviceMemoryOpaqueCaptureAddress', -- 'Vulkan.Extensions.VK_KHR_buffer_device_address.getDeviceMemoryOpaqueCaptureAddressKHR', @@ -389,7 +396,10 @@ data Device_T -- 'Vulkan.Core11.Originally_Based_On_VK_KHR_protected_memory.getDeviceQueue2', -- 'Vulkan.Extensions.VK_HUAWEI_subpass_shading.getDeviceSubpassShadingMaxWorkgroupSizeHUAWEI', -- 'Vulkan.Extensions.VK_QCOM_tile_properties.getDynamicRenderingTilePropertiesQCOM', +-- , -- 'Vulkan.Core10.Event.getEventStatus', +-- 'Vulkan.Extensions.VK_AMDX_shader_enqueue.getExecutionGraphPipelineNodeIndexAMDX', +-- 'Vulkan.Extensions.VK_AMDX_shader_enqueue.getExecutionGraphPipelineScratchSizeAMDX', -- 'Vulkan.Extensions.VK_KHR_external_fence_fd.getFenceFdKHR', -- 'Vulkan.Core10.Fence.getFenceStatus', -- 'Vulkan.Extensions.VK_KHR_external_fence_win32.getFenceWin32HandleKHR', @@ -404,10 +414,12 @@ data Device_T -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2.getImageSparseMemoryRequirements2', -- 'Vulkan.Extensions.VK_KHR_get_memory_requirements2.getImageSparseMemoryRequirements2KHR', -- 'Vulkan.Core10.Image.getImageSubresourceLayout', --- 'Vulkan.Extensions.VK_EXT_image_compression_control.getImageSubresourceLayout2EXT', +-- 'Vulkan.Extensions.VK_EXT_host_image_copy.getImageSubresourceLayout2EXT', +-- 'Vulkan.Extensions.VK_KHR_maintenance5.getImageSubresourceLayout2KHR', -- 'Vulkan.Extensions.VK_NVX_image_view_handle.getImageViewAddressNVX', -- 'Vulkan.Extensions.VK_NVX_image_view_handle.getImageViewHandleNVX', -- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.getImageViewOpaqueCaptureDescriptorDataEXT', +-- 'Vulkan.Extensions.VK_NV_low_latency2.getLatencyTimingsNV', -- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.getMemoryAndroidHardwareBufferANDROID', -- 'Vulkan.Extensions.VK_KHR_external_memory_fd.getMemoryFdKHR', -- 'Vulkan.Extensions.VK_KHR_external_memory_fd.getMemoryFdPropertiesKHR', @@ -425,6 +437,8 @@ data Device_T -- 'Vulkan.Extensions.VK_KHR_pipeline_executable_properties.getPipelineExecutableInternalRepresentationsKHR', -- 'Vulkan.Extensions.VK_KHR_pipeline_executable_properties.getPipelineExecutablePropertiesKHR', -- 'Vulkan.Extensions.VK_KHR_pipeline_executable_properties.getPipelineExecutableStatisticsKHR', +-- 'Vulkan.Extensions.VK_NV_device_generated_commands_compute.getPipelineIndirectDeviceAddressNV', +-- 'Vulkan.Extensions.VK_NV_device_generated_commands_compute.getPipelineIndirectMemoryRequirementsNV', -- 'Vulkan.Extensions.VK_EXT_pipeline_properties.getPipelinePropertiesEXT', -- 'Vulkan.Core13.Promoted_From_VK_EXT_private_data.getPrivateData', -- 'Vulkan.Extensions.VK_EXT_private_data.getPrivateDataEXT', @@ -435,7 +449,9 @@ data Device_T -- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.getRayTracingShaderGroupStackSizeKHR', -- 'Vulkan.Extensions.VK_GOOGLE_display_timing.getRefreshCycleDurationGOOGLE', -- 'Vulkan.Core10.Pass.getRenderAreaGranularity', +-- 'Vulkan.Extensions.VK_KHR_maintenance5.getRenderingAreaGranularityKHR', -- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.getSamplerOpaqueCaptureDescriptorDataEXT', +-- 'Vulkan.Extensions.VK_QNX_external_memory_screen_buffer.getScreenBufferPropertiesQNX', -- 'Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore.getSemaphoreCounterValue', -- 'Vulkan.Extensions.VK_KHR_timeline_semaphore.getSemaphoreCounterValueKHR', -- 'Vulkan.Extensions.VK_KHR_external_semaphore_fd.getSemaphoreFdKHR', @@ -457,6 +473,7 @@ data Device_T -- 'Vulkan.Extensions.VK_FUCHSIA_external_semaphore.importSemaphoreZirconHandleFUCHSIA', -- 'Vulkan.Extensions.VK_INTEL_performance_query.initializePerformanceApiINTEL', -- 'Vulkan.Core10.Memory.invalidateMappedMemoryRanges', +-- 'Vulkan.Extensions.VK_NV_low_latency2.latencySleepNV', -- 'Vulkan.Core10.Memory.mapMemory', -- 'Vulkan.Extensions.VK_KHR_map_memory2.mapMemory2KHR', -- 'Vulkan.Core10.PipelineCache.mergePipelineCaches', @@ -479,11 +496,14 @@ data Device_T -- 'Vulkan.Extensions.VK_EXT_pageable_device_local_memory.setDeviceMemoryPriorityEXT', -- 'Vulkan.Core10.Event.setEvent', -- 'Vulkan.Extensions.VK_EXT_hdr_metadata.setHdrMetadataEXT', +-- 'Vulkan.Extensions.VK_NV_low_latency2.setLatencyMarkerNV', +-- 'Vulkan.Extensions.VK_NV_low_latency2.setLatencySleepModeNV', -- 'Vulkan.Extensions.VK_AMD_display_native_hdr.setLocalDimmingAMD', -- 'Vulkan.Core13.Promoted_From_VK_EXT_private_data.setPrivateData', -- 'Vulkan.Extensions.VK_EXT_private_data.setPrivateDataEXT', -- 'Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore.signalSemaphore', -- 'Vulkan.Extensions.VK_KHR_timeline_semaphore.signalSemaphoreKHR', +-- 'Vulkan.Extensions.VK_EXT_host_image_copy.transitionImageLayoutEXT', -- 'Vulkan.Core11.Promoted_From_VK_KHR_maintenance1.trimCommandPool', -- 'Vulkan.Extensions.VK_KHR_maintenance1.trimCommandPoolKHR', -- 'Vulkan.Extensions.VK_INTEL_performance_query.uninitializePerformanceApiINTEL', @@ -528,6 +548,7 @@ data Queue_T -- 'Vulkan.Core10.SparseResourceMemoryManagement.queueBindSparse', -- 'Vulkan.Extensions.VK_EXT_debug_utils.queueEndDebugUtilsLabelEXT', -- 'Vulkan.Extensions.VK_EXT_debug_utils.queueInsertDebugUtilsLabelEXT', +-- 'Vulkan.Extensions.VK_NV_low_latency2.queueNotifyOutOfBandNV', -- 'Vulkan.Extensions.VK_KHR_swapchain.queuePresentKHR', -- 'Vulkan.Extensions.VK_INTEL_performance_query.queueSetPerformanceConfigurationINTEL', -- 'Vulkan.Core10.Queue.queueSubmit', @@ -573,6 +594,7 @@ data CommandBuffer_T -- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdBindDescriptorBuffersEXT', -- 'Vulkan.Core10.CommandBufferBuilding.cmdBindDescriptorSets', -- 'Vulkan.Core10.CommandBufferBuilding.cmdBindIndexBuffer', +-- 'Vulkan.Extensions.VK_KHR_maintenance5.cmdBindIndexBuffer2KHR', -- 'Vulkan.Extensions.VK_HUAWEI_invocation_mask.cmdBindInvocationMaskHUAWEI', -- 'Vulkan.Core10.CommandBufferBuilding.cmdBindPipeline', -- 'Vulkan.Extensions.VK_NV_device_generated_commands.cmdBindPipelineShaderGroupNV', @@ -625,6 +647,9 @@ data CommandBuffer_T -- 'Vulkan.Core10.CommandBufferBuilding.cmdDispatch', -- 'Vulkan.Core11.Promoted_From_VK_KHR_device_group.cmdDispatchBase', -- 'Vulkan.Extensions.VK_KHR_device_group.cmdDispatchBaseKHR', +-- 'Vulkan.Extensions.VK_AMDX_shader_enqueue.cmdDispatchGraphAMDX', +-- 'Vulkan.Extensions.VK_AMDX_shader_enqueue.cmdDispatchGraphIndirectAMDX', +-- 'Vulkan.Extensions.VK_AMDX_shader_enqueue.cmdDispatchGraphIndirectCountAMDX', -- 'Vulkan.Core10.CommandBufferBuilding.cmdDispatchIndirect', -- 'Vulkan.Core10.CommandBufferBuilding.cmdDraw', -- 'Vulkan.Extensions.VK_HUAWEI_cluster_culling_shader.cmdDrawClusterHUAWEI', @@ -662,6 +687,7 @@ data CommandBuffer_T -- 'Vulkan.Core10.CommandBufferBuilding.cmdExecuteCommands', -- 'Vulkan.Extensions.VK_NV_device_generated_commands.cmdExecuteGeneratedCommandsNV', -- 'Vulkan.Core10.CommandBufferBuilding.cmdFillBuffer', +-- 'Vulkan.Extensions.VK_AMDX_shader_enqueue.cmdInitializeGraphScratchMemoryAMDX', -- 'Vulkan.Extensions.VK_EXT_debug_utils.cmdInsertDebugUtilsLabelEXT', -- 'Vulkan.Core10.CommandBufferBuilding.cmdNextSubpass', -- 'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.cmdNextSubpass2', @@ -683,6 +709,7 @@ data CommandBuffer_T -- 'Vulkan.Extensions.VK_KHR_copy_commands2.cmdResolveImage2KHR', -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT', -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToOneEnableEXT', +-- 'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT', -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetBlendConstants', -- 'Vulkan.Extensions.VK_NV_device_diagnostic_checkpoints.cmdSetCheckpointNV', -- 'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetCoarseSampleOrderNV', @@ -701,6 +728,7 @@ data CommandBuffer_T -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetCullMode', -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetCullModeEXT', -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBias', +-- 'Vulkan.Extensions.VK_EXT_depth_bias_control.cmdSetDepthBias2EXT', -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnable', -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnableEXT', -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBounds', @@ -782,6 +810,7 @@ data CommandBuffer_T -- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.cmdTraceRaysKHR', -- 'Vulkan.Extensions.VK_NV_ray_tracing.cmdTraceRaysNV', -- 'Vulkan.Core10.CommandBufferBuilding.cmdUpdateBuffer', +-- 'Vulkan.Extensions.VK_NV_device_generated_commands_compute.cmdUpdatePipelineIndirectBufferNV', -- 'Vulkan.Core10.CommandBufferBuilding.cmdWaitEvents', -- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.cmdWaitEvents2', -- 'Vulkan.Extensions.VK_KHR_synchronization2.cmdWaitEvents2KHR', @@ -891,6 +920,7 @@ instance Show CommandPool where -- 'Vulkan.Extensions.VK_NV_dedicated_allocation.DedicatedAllocationMemoryAllocateInfoNV', -- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.DescriptorBufferBindingPushDescriptorBufferHandleEXT', -- 'Vulkan.Core10.DescriptorSet.DescriptorBufferInfo', +-- 'Vulkan.Extensions.VK_EXT_frame_boundary.FrameBoundaryEXT', -- 'Vulkan.Extensions.VK_NV_device_generated_commands.GeneratedCommandsInfoNV', -- 'Vulkan.Extensions.VK_NV_ray_tracing.GeometryAABBNV', -- 'Vulkan.Extensions.VK_NV_ray_tracing.GeometryTrianglesNV', @@ -903,6 +933,7 @@ instance Show CommandPool where -- 'Vulkan.Core10.MemoryManagement.bindBufferMemory', -- 'Vulkan.Extensions.VK_EXT_transform_feedback.cmdBeginTransformFeedbackEXT', -- 'Vulkan.Core10.CommandBufferBuilding.cmdBindIndexBuffer', +-- 'Vulkan.Extensions.VK_KHR_maintenance5.cmdBindIndexBuffer2KHR', -- 'Vulkan.Extensions.VK_EXT_transform_feedback.cmdBindTransformFeedbackBuffersEXT', -- 'Vulkan.Core10.CommandBufferBuilding.cmdBindVertexBuffers', -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2', @@ -973,9 +1004,14 @@ instance Show BufferView where -- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.CopyBufferToImageInfo2', -- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.CopyImageInfo2', -- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.CopyImageToBufferInfo2', +-- 'Vulkan.Extensions.VK_EXT_host_image_copy.CopyImageToImageInfoEXT', +-- 'Vulkan.Extensions.VK_EXT_host_image_copy.CopyImageToMemoryInfoEXT', +-- 'Vulkan.Extensions.VK_EXT_host_image_copy.CopyMemoryToImageInfoEXT', -- 'Vulkan.Extensions.VK_NV_dedicated_allocation.DedicatedAllocationMemoryAllocateInfoNV', -- 'Vulkan.Extensions.VK_EXT_metal_objects.ExportMetalIOSurfaceInfoEXT', -- 'Vulkan.Extensions.VK_EXT_metal_objects.ExportMetalTextureInfoEXT', +-- 'Vulkan.Extensions.VK_EXT_frame_boundary.FrameBoundaryEXT', +-- 'Vulkan.Extensions.VK_EXT_host_image_copy.HostImageLayoutTransitionInfoEXT', -- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.ImageCaptureDescriptorDataInfoEXT', -- 'Vulkan.Core10.OtherTypes.ImageMemoryBarrier', -- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.ImageMemoryBarrier2', @@ -1000,7 +1036,8 @@ instance Show BufferView where -- 'Vulkan.Core10.MemoryManagement.getImageMemoryRequirements', -- 'Vulkan.Core10.SparseResourceMemoryManagement.getImageSparseMemoryRequirements', -- 'Vulkan.Core10.Image.getImageSubresourceLayout', --- 'Vulkan.Extensions.VK_EXT_image_compression_control.getImageSubresourceLayout2EXT', +-- 'Vulkan.Extensions.VK_EXT_host_image_copy.getImageSubresourceLayout2EXT', +-- 'Vulkan.Extensions.VK_KHR_maintenance5.getImageSubresourceLayout2KHR', -- 'Vulkan.Extensions.VK_KHR_swapchain.getSwapchainImagesKHR' newtype Image = Image Word64 deriving newtype (Eq, Ord, Storable, Zero) @@ -1065,23 +1102,29 @@ instance Show ShaderModule where -- -- , -- 'Vulkan.Core10.Pipeline.ComputePipelineCreateInfo', +-- 'Vulkan.Extensions.VK_AMDX_shader_enqueue.ExecutionGraphPipelineCreateInfoAMDX', -- 'Vulkan.Extensions.VK_NV_device_generated_commands.GeneratedCommandsInfoNV', -- 'Vulkan.Extensions.VK_NV_device_generated_commands.GeneratedCommandsMemoryRequirementsInfoNV', -- 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo', -- 'Vulkan.Extensions.VK_NV_device_generated_commands.GraphicsPipelineShaderGroupsCreateInfoNV', -- 'Vulkan.Extensions.VK_KHR_pipeline_executable_properties.PipelineExecutableInfoKHR', +-- 'Vulkan.Extensions.VK_NV_device_generated_commands_compute.PipelineIndirectDeviceAddressInfoNV', -- 'Vulkan.Extensions.VK_KHR_pipeline_executable_properties.PipelineInfoKHR', -- 'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR', -- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.RayTracingPipelineCreateInfoKHR', -- 'Vulkan.Extensions.VK_NV_ray_tracing.RayTracingPipelineCreateInfoNV', -- 'Vulkan.Core10.CommandBufferBuilding.cmdBindPipeline', -- 'Vulkan.Extensions.VK_NV_device_generated_commands.cmdBindPipelineShaderGroupNV', +-- 'Vulkan.Extensions.VK_NV_device_generated_commands_compute.cmdUpdatePipelineIndirectBufferNV', -- 'Vulkan.Extensions.VK_NV_ray_tracing.compileDeferredNV', -- 'Vulkan.Core10.Pipeline.createComputePipelines', +-- 'Vulkan.Extensions.VK_AMDX_shader_enqueue.createExecutionGraphPipelinesAMDX', -- 'Vulkan.Core10.Pipeline.createGraphicsPipelines', -- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.createRayTracingPipelinesKHR', -- 'Vulkan.Extensions.VK_NV_ray_tracing.createRayTracingPipelinesNV', -- 'Vulkan.Core10.Pipeline.destroyPipeline', +-- 'Vulkan.Extensions.VK_AMDX_shader_enqueue.getExecutionGraphPipelineNodeIndexAMDX', +-- 'Vulkan.Extensions.VK_AMDX_shader_enqueue.getExecutionGraphPipelineScratchSizeAMDX', -- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.getRayTracingCaptureReplayShaderGroupHandlesKHR', -- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.getRayTracingShaderGroupHandlesKHR', -- 'Vulkan.Extensions.VK_NV_ray_tracing.getRayTracingShaderGroupHandlesNV', @@ -1103,6 +1146,7 @@ instance Show Pipeline where -- , -- 'Vulkan.Core10.Pipeline.ComputePipelineCreateInfo', -- 'Vulkan.Core11.Promoted_From_VK_KHR_descriptor_update_template.DescriptorUpdateTemplateCreateInfo', +-- 'Vulkan.Extensions.VK_AMDX_shader_enqueue.ExecutionGraphPipelineCreateInfoAMDX', -- 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo', -- 'Vulkan.Extensions.VK_NV_device_generated_commands.IndirectCommandsLayoutTokenNV', -- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.RayTracingPipelineCreateInfoKHR', @@ -1251,6 +1295,7 @@ instance Show Fence where -- 'Vulkan.Extensions.VK_KHR_external_semaphore_fd.ImportSemaphoreFdInfoKHR', -- 'Vulkan.Extensions.VK_KHR_external_semaphore_win32.ImportSemaphoreWin32HandleInfoKHR', -- 'Vulkan.Extensions.VK_FUCHSIA_external_semaphore.ImportSemaphoreZirconHandleInfoFUCHSIA', +-- 'Vulkan.Extensions.VK_NV_low_latency2.LatencySleepInfoNV', -- 'Vulkan.Extensions.VK_KHR_swapchain.PresentInfoKHR', -- 'Vulkan.Extensions.VK_KHR_external_semaphore_fd.SemaphoreGetFdInfoKHR', -- 'Vulkan.Extensions.VK_KHR_external_semaphore_win32.SemaphoreGetWin32HandleInfoKHR', @@ -1381,6 +1426,7 @@ instance Show RenderPass where -- -- , -- 'Vulkan.Core10.Pipeline.createComputePipelines', +-- 'Vulkan.Extensions.VK_AMDX_shader_enqueue.createExecutionGraphPipelinesAMDX', -- 'Vulkan.Core10.Pipeline.createGraphicsPipelines', -- 'Vulkan.Core10.PipelineCache.createPipelineCache', -- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.createRayTracingPipelinesKHR', diff --git a/src/Vulkan/Core10/Image.hs b/src/Vulkan/Core10/Image.hs index 141769873..e5da90acf 100644 --- a/src/Vulkan/Core10/Image.hs +++ b/src/Vulkan/Core10/Image.hs @@ -71,6 +71,7 @@ import Vulkan.CStruct.Extends (Extendss) import Vulkan.CStruct.Extends (Extensible(..)) import Vulkan.Core10.FundamentalTypes (Extent3D) import {-# SOURCE #-} Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer (ExternalFormatANDROID) +import {-# SOURCE #-} Vulkan.Extensions.VK_QNX_external_memory_screen_buffer (ExternalFormatQNX) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_external_memory (ExternalMemoryImageCreateInfo) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_external_memory (ExternalMemoryImageCreateInfoNV) import Vulkan.Core10.Enums.Format (Format) @@ -121,11 +122,42 @@ foreign import ccall -- - #VUID-vkCreateImage-flags-00939# If the @flags@ member of -- @pCreateInfo@ includes -- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SPARSE_BINDING_BIT', +-- and the +-- +-- feature is not enabled, creating this 'Vulkan.Core10.Handles.Image' +-- /must/ not cause the total required sparse memory for all currently +-- valid sparse resources on the device to exceed +-- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@sparseAddressSpaceSize@ +-- +-- - #VUID-vkCreateImage-flags-09385# If the @flags@ member of +-- @pCreateInfo@ includes +-- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SPARSE_BINDING_BIT', +-- the +-- +-- feature is enabled, and the @usage@ member of @pCreateInfo@ contains +-- bits not in +-- 'Vulkan.Extensions.VK_NV_extended_sparse_address_space.PhysicalDeviceExtendedSparseAddressSpacePropertiesNV'::@extendedSparseImageUsageFlags@, -- creating this 'Vulkan.Core10.Handles.Image' /must/ not cause the -- total required sparse memory for all currently valid sparse --- resources on the device to exceed +-- resources on the device, excluding 'Vulkan.Core10.Handles.Buffer' +-- created with @usage@ member of @pCreateInfo@ containing bits in +-- 'Vulkan.Extensions.VK_NV_extended_sparse_address_space.PhysicalDeviceExtendedSparseAddressSpacePropertiesNV'::@extendedSparseBufferUsageFlags@ +-- and 'Vulkan.Core10.Handles.Image' created with @usage@ member of +-- @pCreateInfo@ containing bits in +-- 'Vulkan.Extensions.VK_NV_extended_sparse_address_space.PhysicalDeviceExtendedSparseAddressSpacePropertiesNV'::@extendedSparseImageUsageFlags@, +-- to exceed -- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@sparseAddressSpaceSize@ -- +-- - #VUID-vkCreateImage-flags-09386# If the @flags@ member of +-- @pCreateInfo@ includes +-- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SPARSE_BINDING_BIT' +-- and the +-- +-- feature is enabled, creating this 'Vulkan.Core10.Handles.Image' +-- /must/ not cause the total required sparse memory for all currently +-- valid sparse resources on the device to exceed +-- 'Vulkan.Extensions.VK_NV_extended_sparse_address_space.PhysicalDeviceExtendedSparseAddressSpacePropertiesNV'::@extendedSparseAddressSpaceSize@ +-- -- - #VUID-vkCreateImage-pNext-06389# If a -- 'Vulkan.Extensions.VK_FUCHSIA_buffer_collection.BufferCollectionImageCreateInfoFUCHSIA' -- has been chained to @pNext@, @pCreateInfo@ /must/ match the @@ -331,9 +363,9 @@ foreign import ccall -- -- 'getImageSubresourceLayout' is invariant for the lifetime of a single -- image. However, the subresource layout of images in Android hardware --- buffer external memory is not known until the image has been bound to --- memory, so applications /must/ not call 'getImageSubresourceLayout' for --- such an image before it has been bound. +-- buffer or QNX Screen buffer external memory is not known until the image +-- has been bound to memory, so applications /must/ not call +-- 'getImageSubresourceLayout' for such an image before it has been bound. -- -- == Valid Usage -- @@ -353,23 +385,28 @@ foreign import ccall -- member of @pSubresource@ /must/ be less than the @arrayLayers@ -- specified in 'ImageCreateInfo' when @image@ was created -- --- - #VUID-vkGetImageSubresourceLayout-format-04461# If @format@ is a --- color format, the @aspectMask@ member of @pSubresource@ /must/ be +-- - #VUID-vkGetImageSubresourceLayout-format-08886# If @format@ of the +-- @image@ is a color format, @tiling@ of the @image@ is +-- 'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_LINEAR' or +-- 'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_OPTIMAL', and does not +-- have a +-- , +-- the @aspectMask@ member of @pSubresource@ /must/ be -- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT' -- --- - #VUID-vkGetImageSubresourceLayout-format-04462# If @format@ has a --- depth component, the @aspectMask@ member of @pSubresource@ /must/ --- contain +-- - #VUID-vkGetImageSubresourceLayout-format-04462# If @format@ of the +-- @image@ has a depth component, the @aspectMask@ member of +-- @pSubresource@ /must/ contain -- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_DEPTH_BIT' -- --- - #VUID-vkGetImageSubresourceLayout-format-04463# If @format@ has a --- stencil component, the @aspectMask@ member of @pSubresource@ /must/ --- contain +-- - #VUID-vkGetImageSubresourceLayout-format-04463# If @format@ of the +-- @image@ has a stencil component, the @aspectMask@ member of +-- @pSubresource@ /must/ contain -- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT' -- --- - #VUID-vkGetImageSubresourceLayout-format-04464# If @format@ does not --- contain a stencil or depth component, the @aspectMask@ member of --- @pSubresource@ /must/ not contain +-- - #VUID-vkGetImageSubresourceLayout-format-04464# If @format@ of the +-- @image@ does not contain a stencil or depth component, the +-- @aspectMask@ member of @pSubresource@ /must/ not contain -- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_DEPTH_BIT' or -- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT' -- @@ -380,6 +417,7 @@ foreign import ccall -- then the @aspectMask@ member of @pSubresource@ /must/ be a single -- valid -- +-- bit -- -- - #VUID-vkGetImageSubresourceLayout-image-01895# If @image@ was -- created with the @@ -512,6 +550,16 @@ getImageSubresourceLayout device image subresource = liftIO . evalContT $ do -- /may/ occur even when all image creation parameters satisfy their valid -- usage requirements. -- +-- If the implementation reports 'Vulkan.Core10.FundamentalTypes.TRUE' in +-- 'Vulkan.Extensions.VK_EXT_host_image_copy.PhysicalDeviceHostImageCopyPropertiesEXT'::@identicalMemoryTypeRequirements@, +-- usage of +-- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_HOST_TRANSFER_BIT_EXT' +-- /must/ not affect the memory type requirements of the image as described +-- in +-- +-- and +-- . +-- -- Note -- -- For images created without @@ -595,6 +643,8 @@ getImageSubresourceLayout device image subresource = liftIO . evalContT $ do -- 'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_OPTIMAL', and if -- the @pNext@ chain includes no -- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID' +-- or +-- 'Vulkan.Extensions.VK_QNX_external_memory_screen_buffer.ExternalFormatQNX' -- structure with non-zero @externalFormat@, then -- @imageCreateFormatFeatures@ is the value of -- 'Vulkan.Core10.DeviceInitialization.FormatProperties'::@optimalTilingFeatures@ @@ -613,6 +663,17 @@ getImageSubresourceLayout device image subresource = liftIO . evalContT $ do -- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.getAndroidHardwareBufferPropertiesANDROID' -- with a matching @externalFormat@ value. -- +-- - If @tiling@ is +-- 'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_OPTIMAL', and if +-- the @pNext@ chain includes a +-- 'Vulkan.Extensions.VK_QNX_external_memory_screen_buffer.ExternalFormatQNX' +-- structure with non-zero @externalFormat@, then +-- @imageCreateFormatFeatures@ is the value of +-- 'Vulkan.Extensions.VK_QNX_external_memory_screen_buffer.ScreenBufferFormatPropertiesQNX'::@formatFeatures@ +-- obtained by +-- 'Vulkan.Extensions.VK_QNX_external_memory_screen_buffer.getScreenBufferPropertiesQNX' +-- with a matching @externalFormat@ value. +-- -- - If the @pNext@ chain includes a -- 'Vulkan.Extensions.VK_FUCHSIA_buffer_collection.BufferCollectionImageCreateInfoFUCHSIA' -- structure, then @imageCreateFormatFeatures@ is the value of @@ -647,6 +708,8 @@ getImageSubresourceLayout device image subresource = liftIO . evalContT $ do -- -- - If 'ImageCreateInfo'::@pNext@ contains no -- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID' +-- or +-- 'Vulkan.Extensions.VK_QNX_external_memory_screen_buffer.ExternalFormatQNX' -- structure with non-zero @externalFormat@, then -- @imageCreateImageFormatPropertiesList@ is the list of structures -- obtained by calling @@ -886,6 +949,14 @@ getImageSubresourceLayout device image subresource = liftIO . evalContT $ do -- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_CUBE_COMPATIBLE_BIT', -- @imageType@ /must/ be 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D' -- +-- - #VUID-VkImageCreateInfo-flags-08865# If @flags@ contains +-- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_CUBE_COMPATIBLE_BIT', +-- @extent.width@ and @extent.height@ /must/ be equal +-- +-- - #VUID-VkImageCreateInfo-flags-08866# If @flags@ contains +-- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_CUBE_COMPATIBLE_BIT', +-- @arrayLayers@ /must/ be greater than or equal to 6 +-- -- - #VUID-VkImageCreateInfo-flags-02557# If @flags@ contains -- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT', -- @imageType@ /must/ be 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D' @@ -910,12 +981,6 @@ getImageSubresourceLayout device image subresource = liftIO . evalContT $ do -- than or equal to @imageCreateMaxExtent.depth@ (as defined in -- ) -- --- - #VUID-VkImageCreateInfo-imageType-00954# If @imageType@ is --- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D' and @flags@ contains --- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_CUBE_COMPATIBLE_BIT', --- @extent.width@ and @extent.height@ /must/ be equal and @arrayLayers@ --- /must/ be greater than or equal to 6 --- -- - #VUID-VkImageCreateInfo-imageType-00956# If @imageType@ is -- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D', both @extent.height@ -- and @extent.depth@ /must/ be @1@ @@ -1273,6 +1338,37 @@ getImageSubresourceLayout device image subresource = liftIO . evalContT $ do -- structure whose @externalFormat@ member is not @0@, @tiling@ /must/ -- be 'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_OPTIMAL' -- +-- - #VUID-VkImageCreateInfo-pNext-08951# If the @pNext@ chain includes a +-- 'Vulkan.Core11.Promoted_From_VK_KHR_external_memory.ExternalMemoryImageCreateInfo' +-- structure whose @handleTypes@ member includes +-- 'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.EXTERNAL_MEMORY_HANDLE_TYPE_SCREEN_BUFFER_BIT_QNX', +-- @imageType@ /must/ be 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D' +-- +-- - #VUID-VkImageCreateInfo-pNext-08952# If the @pNext@ chain includes a +-- 'Vulkan.Core11.Promoted_From_VK_KHR_external_memory.ExternalMemoryImageCreateInfo' +-- structure whose @handleTypes@ member includes +-- 'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.EXTERNAL_MEMORY_HANDLE_TYPE_SCREEN_BUFFER_BIT_QNX', +-- @mipLevels@ /must/ either be @1@ or equal to the number of levels in +-- the complete mipmap chain based on @extent.width@, @extent.height@, +-- and @extent.depth@ +-- +-- - #VUID-VkImageCreateInfo-pNext-08953# If the @pNext@ chain includes a +-- 'Vulkan.Extensions.VK_QNX_external_memory_screen_buffer.ExternalFormatQNX' +-- structure whose @externalFormat@ member is not @0@, @flags@ /must/ +-- not include +-- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_MUTABLE_FORMAT_BIT' +-- +-- - #VUID-VkImageCreateInfo-pNext-08954# If the @pNext@ chain includes a +-- 'Vulkan.Extensions.VK_QNX_external_memory_screen_buffer.ExternalFormatQNX' +-- structure whose @externalFormat@ member is not @0@, @usage@ /must/ +-- not include any usages except +-- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_SAMPLED_BIT' +-- +-- - #VUID-VkImageCreateInfo-pNext-08955# If the @pNext@ chain includes a +-- 'Vulkan.Extensions.VK_QNX_external_memory_screen_buffer.ExternalFormatQNX' +-- structure whose @externalFormat@ member is not @0@, @tiling@ /must/ +-- be 'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_OPTIMAL' +-- -- - #VUID-VkImageCreateInfo-format-02795# If @format@ is a depth-stencil -- format, @usage@ includes -- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT', @@ -1553,6 +1649,14 @@ getImageSubresourceLayout device image subresource = liftIO . evalContT $ do -- /must/ not be -- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_2_BIT' -- +-- - #VUID-VkImageCreateInfo-imageCreateFormatFeatures-09048# If +-- @imageCreateFormatFeatures@ (as defined in +-- ) +-- does not contain +-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_HOST_IMAGE_TRANSFER_BIT_EXT', +-- then @usage@ /must/ not contain +-- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_HOST_TRANSFER_BIT_EXT' +-- -- == Valid Usage (Implicit) -- -- - #VUID-VkImageCreateInfo-sType-sType# @sType@ /must/ be @@ -1565,6 +1669,7 @@ getImageSubresourceLayout device image subresource = liftIO . evalContT $ do -- 'Vulkan.Extensions.VK_NV_dedicated_allocation.DedicatedAllocationImageCreateInfoNV', -- 'Vulkan.Extensions.VK_EXT_metal_objects.ExportMetalObjectCreateInfoEXT', -- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID', +-- 'Vulkan.Extensions.VK_QNX_external_memory_screen_buffer.ExternalFormatQNX', -- 'Vulkan.Core11.Promoted_From_VK_KHR_external_memory.ExternalMemoryImageCreateInfo', -- 'Vulkan.Extensions.VK_NV_external_memory.ExternalMemoryImageCreateInfoNV', -- 'Vulkan.Extensions.VK_EXT_image_compression_control.ImageCompressionControlEXT', @@ -1622,6 +1727,7 @@ getImageSubresourceLayout device image subresource = liftIO . evalContT $ do -- -- , -- 'Vulkan.Core13.Promoted_From_VK_KHR_maintenance4.DeviceImageMemoryRequirements', +-- 'Vulkan.Extensions.VK_KHR_maintenance5.DeviceImageSubresourceInfoKHR', -- 'Vulkan.Core10.FundamentalTypes.Extent3D', -- 'Vulkan.Core10.Enums.Format.Format', -- 'Vulkan.Core10.Enums.ImageCreateFlagBits.ImageCreateFlags', @@ -1693,6 +1799,7 @@ instance Extensible ImageCreateInfo where getNext ImageCreateInfo{..} = next extends :: forall e b proxy. Typeable e => proxy e -> (Extends ImageCreateInfo e => b) -> Maybe b extends _ f + | Just Refl <- eqT @e @ExternalFormatQNX = Just f | Just Refl <- eqT @e @OpticalFlowImageFormatInfoNV = Just f | Just Refl <- eqT @e @ImportMetalIOSurfaceInfoEXT = Just f | Just Refl <- eqT @e @ImportMetalTextureInfoEXT = Just f @@ -1891,7 +1998,7 @@ instance es ~ '[] => Zero (ImageCreateInfo es) where -- , -- 'Vulkan.Core10.FundamentalTypes.DeviceSize', -- 'Vulkan.Extensions.VK_EXT_image_drm_format_modifier.ImageDrmFormatModifierExplicitCreateInfoEXT', --- 'Vulkan.Extensions.VK_EXT_image_compression_control.SubresourceLayout2EXT', +-- 'Vulkan.Extensions.VK_KHR_maintenance5.SubresourceLayout2KHR', -- 'getImageSubresourceLayout' data SubresourceLayout = SubresourceLayout { -- | @offset@ is the byte offset from the start of the image or the plane diff --git a/src/Vulkan/Core10/ImageView.hs b/src/Vulkan/Core10/ImageView.hs index 78d0f85cc..0a025efaa 100644 --- a/src/Vulkan/Core10/ImageView.hs +++ b/src/Vulkan/Core10/ImageView.hs @@ -103,6 +103,11 @@ foreign import ccall -- | vkCreateImageView - Create an image view from an existing image -- +-- == Valid Usage +-- +-- - #VUID-vkCreateImageView-image-09179# 'ImageViewCreateInfo'::@image@ +-- /must/ have been created from @device@ +-- -- == Valid Usage (Implicit) -- -- - #VUID-vkCreateImageView-device-parameter# @device@ /must/ be a valid @@ -272,6 +277,7 @@ destroyImageView device imageView allocator = liftIO . evalContT $ do -- 'ImageViewCreateInfo', -- 'Vulkan.Extensions.VK_EXT_border_color_swizzle.SamplerBorderColorComponentMappingCreateInfoEXT', -- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.SamplerYcbcrConversionCreateInfo', +-- 'Vulkan.Extensions.VK_QNX_external_memory_screen_buffer.ScreenBufferFormatPropertiesQNX', -- data ComponentMapping = ComponentMapping { -- | @r@ is a 'Vulkan.Core10.Enums.ComponentSwizzle.ComponentSwizzle' @@ -459,6 +465,7 @@ instance Zero ComponentMapping where -- = See Also -- -- , +-- 'Vulkan.Extensions.VK_EXT_host_image_copy.HostImageLayoutTransitionInfoEXT', -- 'Vulkan.Core10.Enums.ImageAspectFlagBits.ImageAspectFlags', -- 'Vulkan.Core10.OtherTypes.ImageMemoryBarrier', -- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.ImageMemoryBarrier2', @@ -784,12 +791,14 @@ instance Zero ImageSubresourceRange where -- /must/ contain -- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_STORAGE_IMAGE_BIT' -- --- - #VUID-VkImageViewCreateInfo-usage-02276# If @usage@ contains +-- - #VUID-VkImageViewCreateInfo-usage-08931# If @usage@ contains -- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_COLOR_ATTACHMENT_BIT', -- then the image view’s -- -- /must/ contain -- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BIT' +-- or +-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV' -- -- - #VUID-VkImageViewCreateInfo-usage-02277# If @usage@ contains -- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT', @@ -798,36 +807,30 @@ instance Zero ImageSubresourceRange where -- /must/ contain -- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT' -- --- - #VUID-VkImageViewCreateInfo-usage-06516# If @usage@ contains --- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_COLOR_ATTACHMENT_BIT', --- then the image view’s --- --- /must/ contain --- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV', --- if the image is created with --- 'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_LINEAR' and the --- --- feature is enabled --- --- - #VUID-VkImageViewCreateInfo-usage-06517# If @usage@ contains --- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_INPUT_ATTACHMENT_BIT', --- then the image view’s --- --- must contain --- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV', --- if the image is created with --- 'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_LINEAR' and the --- --- feature is enabled --- --- - #VUID-VkImageViewCreateInfo-usage-02652# If @usage@ contains +-- - #VUID-VkImageViewCreateInfo-usage-08932# If @usage@ contains -- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_INPUT_ATTACHMENT_BIT', +-- and any of the following is true: +-- +-- - the +-- +-- feature is not enabled +-- +-- - the +-- +-- property is 'Vulkan.Core10.FundamentalTypes.FALSE' +-- +-- - @image@ was created with an +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- value of 0 +-- -- then the image view’s -- -- /must/ contain at least one of -- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BIT' -- or -- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT' +-- or +-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV' -- -- - #VUID-VkImageViewCreateInfo-subresourceRange-01478# -- @subresourceRange.baseMipLevel@ /must/ be less than the @mipLevels@ @@ -883,7 +886,7 @@ instance Zero ImageSubresourceRange where -- computed from @baseMipLevel@ and @extent.depth@ specified in -- 'Vulkan.Core10.Image.ImageCreateInfo' when @image@ was created, -- according to the formula defined in --- +-- -- -- - #VUID-VkImageViewCreateInfo-subresourceRange-02725# If -- @subresourceRange.layerCount@ is not @@ -899,7 +902,7 @@ instance Zero ImageSubresourceRange where -- @baseMipLevel@ and @extent.depth@ specified in -- 'Vulkan.Core10.Image.ImageCreateInfo' when @image@ was created, -- according to the formula defined in --- +-- -- -- - #VUID-VkImageViewCreateInfo-image-01761# If @image@ was created with -- the @@ -940,8 +943,8 @@ instance Zero ImageSubresourceRange where -- flag, if the @format@ of the @image@ is a -- -- format, and if @subresourceRange.aspectMask@ is one of the --- , --- then @format@ /must/ be compatible with the +-- +-- bits, then @format@ /must/ be compatible with the -- 'Vulkan.Core10.Enums.Format.Format' for the plane of the @image@ -- @format@ indicated by @subresourceRange.aspectMask@, as defined in -- @@ -949,6 +952,7 @@ instance Zero ImageSubresourceRange where -- - #VUID-VkImageViewCreateInfo-subresourceRange-07818# -- @subresourceRange.aspectMask@ /must/ only have at most 1 valid -- +-- bit -- -- - #VUID-VkImageViewCreateInfo-image-01762# If @image@ was not created -- with the @@ -1001,18 +1005,34 @@ instance Zero ImageSubresourceRange where -- -- -- - #VUID-VkImageViewCreateInfo-image-02399# If @image@ has an --- , +-- , -- @format@ /must/ be 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' -- -- - #VUID-VkImageViewCreateInfo-image-02400# If @image@ has an --- , +-- , -- the @pNext@ chain /must/ include a -- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.SamplerYcbcrConversionInfo' -- structure with a @conversion@ object created with the same external -- format as @image@ -- -- - #VUID-VkImageViewCreateInfo-image-02401# If @image@ has an --- , +-- , +-- all members of @components@ /must/ be the +-- +-- +-- - #VUID-VkImageViewCreateInfo-image-08957# If @image@ has an +-- , +-- @format@ /must/ be 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' +-- +-- - #VUID-VkImageViewCreateInfo-image-08958# If @image@ has an +-- , +-- the @pNext@ chain /must/ include a +-- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.SamplerYcbcrConversionInfo' +-- structure with a @conversion@ object created with the same external +-- format as @image@ +-- +-- - #VUID-VkImageViewCreateInfo-image-08959# If @image@ has an +-- , -- all members of @components@ /must/ be the -- -- diff --git a/src/Vulkan/Core10/Memory.hs b/src/Vulkan/Core10/Memory.hs index 33f174f23..24f30aa27 100644 --- a/src/Vulkan/Core10/Memory.hs +++ b/src/Vulkan/Core10/Memory.hs @@ -88,6 +88,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_external_memory_win32 (ImportMemo import {-# SOURCE #-} Vulkan.Extensions.VK_NV_external_memory_win32 (ImportMemoryWin32HandleInfoNV) import {-# SOURCE #-} Vulkan.Extensions.VK_FUCHSIA_external_memory (ImportMemoryZirconHandleInfoFUCHSIA) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_metal_objects (ImportMetalBufferInfoEXT) +import {-# SOURCE #-} Vulkan.Extensions.VK_QNX_external_memory_screen_buffer (ImportScreenBufferInfoQNX) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_device_group (MemoryAllocateFlagsInfo) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_dedicated_allocation (MemoryDedicatedAllocateInfo) import Vulkan.Core10.Enums.MemoryMapFlags (MemoryMapFlags) @@ -897,6 +898,9 @@ getDeviceMemoryCommitment device memory = liftIO . evalContT $ do -- -- - 'Vulkan.Extensions.VK_FUCHSIA_buffer_collection.ImportMemoryBufferCollectionFUCHSIA' -- +-- - 'Vulkan.Extensions.VK_QNX_external_memory_screen_buffer.ImportScreenBufferInfoQNX' +-- with a non-@NULL@ @buffer@ value +-- -- If the parameters define an import operation and the external handle -- type is -- 'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT', @@ -955,19 +959,19 @@ getDeviceMemoryCommitment device memory = liftIO . evalContT $ do -- -- == Valid Usage -- --- - #VUID-VkMemoryAllocateInfo-None-06657# The parameters /must/ not --- define more than one --- --- -- - #VUID-VkMemoryAllocateInfo-allocationSize-07897# If the parameters -- do not define an -- , -- @allocationSize@ /must/ be greater than @0@ -- +-- - #VUID-VkMemoryAllocateInfo-None-06657# The parameters /must/ not +-- define more than one +-- +-- -- - #VUID-VkMemoryAllocateInfo-allocationSize-07899# If the parameters -- define an export operation and the handle type is not --- 'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID', --- @allocationSize@ /must/ be greater than @0@ +-- 'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID' +-- , @allocationSize@ /must/ be greater than @0@ -- -- - #VUID-VkMemoryAllocateInfo-buffer-06380# If the parameters define an -- import operation from an @@ -1057,8 +1061,10 @@ getDeviceMemoryCommitment device memory = liftIO . evalContT $ do -- require a 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@ --- or +-- 'Vulkan.Core11.Promoted_From_VK_KHR_external_memory_capabilities.ExternalImageFormatProperties'::@externalMemoryProperties.externalMemoryFeatures@, +-- or 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 @pNext@ chain /must/ include a -- 'Vulkan.Core11.Promoted_From_VK_KHR_dedicated_allocation.MemoryDedicatedAllocateInfo' @@ -1284,6 +1290,58 @@ getDeviceMemoryCommitment device memory = liftIO . evalContT $ do -- that bit /must/ be included in the Android hardware buffer’s -- @AHardwareBuffer_Desc@::@usage@ -- +-- - #VUID-VkMemoryAllocateInfo-screenBufferImport-08941# If the +-- parameters define an import operation and the external handle type +-- is +-- 'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.EXTERNAL_MEMORY_HANDLE_TYPE_SCREEN_BUFFER_BIT_QNX', +-- 'Vulkan.Extensions.VK_QNX_external_memory_screen_buffer.PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX'::@screenBufferImport@ +-- /must/ be enabled +-- +-- - #VUID-VkMemoryAllocateInfo-allocationSize-08942# If the parameters +-- define an import operation and the external handle type is +-- 'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.EXTERNAL_MEMORY_HANDLE_TYPE_SCREEN_BUFFER_BIT_QNX', +-- @allocationSize@ /must/ be the size returned by +-- 'Vulkan.Extensions.VK_QNX_external_memory_screen_buffer.getScreenBufferPropertiesQNX' +-- for the QNX Screen buffer +-- +-- - #VUID-VkMemoryAllocateInfo-memoryTypeIndex-08943# If the parameters +-- define an import operation and the external handle type is +-- 'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.EXTERNAL_MEMORY_HANDLE_TYPE_SCREEN_BUFFER_BIT_QNX', +-- @memoryTypeIndex@ /must/ be one of those returned by +-- 'Vulkan.Extensions.VK_QNX_external_memory_screen_buffer.getScreenBufferPropertiesQNX' +-- for the QNX Screen buffer +-- +-- - #VUID-VkMemoryAllocateInfo-pNext-08944# If the parameters define an +-- import operation, the external handle is a QNX Screen buffer, and +-- the @pNext@ chain includes a +-- 'Vulkan.Core11.Promoted_From_VK_KHR_dedicated_allocation.MemoryDedicatedAllocateInfo' +-- with @image@ that is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', +-- the QNX Screen’s buffer must be a +-- +-- +-- - #VUID-VkMemoryAllocateInfo-pNext-08945# If the parameters define an +-- import operation, the external handle is an QNX Screen buffer, and +-- the @pNext@ chain includes a +-- 'Vulkan.Core11.Promoted_From_VK_KHR_dedicated_allocation.MemoryDedicatedAllocateInfo' +-- with @image@ that is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', +-- the format of @image@ /must/ be +-- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' or the format returned +-- by +-- 'Vulkan.Extensions.VK_QNX_external_memory_screen_buffer.getScreenBufferPropertiesQNX' +-- in +-- 'Vulkan.Extensions.VK_QNX_external_memory_screen_buffer.ScreenBufferFormatPropertiesQNX'::@format@ +-- for the QNX Screen buffer +-- +-- - #VUID-VkMemoryAllocateInfo-pNext-08946# If the parameters define an +-- import operation, the external handle is a QNX Screen buffer, and +-- the @pNext@ chain includes a +-- 'Vulkan.Core11.Promoted_From_VK_KHR_dedicated_allocation.MemoryDedicatedAllocateInfo' +-- structure with @image@ that is not +-- 'Vulkan.Core10.APIConstants.NULL_HANDLE', the width, height, and +-- array layer dimensions of @image@ and the QNX Screen buffer’s +-- 'Vulkan.Extensions.VK_QNX_external_memory_screen_buffer.Screen_buffer' +-- must be identical +-- -- - #VUID-VkMemoryAllocateInfo-opaqueCaptureAddress-03329# If -- 'Vulkan.Core12.Promoted_From_VK_KHR_buffer_device_address.MemoryOpaqueCaptureAddressAllocateInfo'::@opaqueCaptureAddress@ -- is not zero, @@ -1368,6 +1426,7 @@ getDeviceMemoryCommitment device memory = liftIO . evalContT $ do -- 'Vulkan.Extensions.VK_NV_external_memory_win32.ImportMemoryWin32HandleInfoNV', -- 'Vulkan.Extensions.VK_FUCHSIA_external_memory.ImportMemoryZirconHandleInfoFUCHSIA', -- 'Vulkan.Extensions.VK_EXT_metal_objects.ImportMetalBufferInfoEXT', +-- 'Vulkan.Extensions.VK_QNX_external_memory_screen_buffer.ImportScreenBufferInfoQNX', -- 'Vulkan.Core11.Promoted_From_VK_KHR_device_group.MemoryAllocateFlagsInfo', -- 'Vulkan.Core11.Promoted_From_VK_KHR_dedicated_allocation.MemoryDedicatedAllocateInfo', -- 'Vulkan.Core12.Promoted_From_VK_KHR_buffer_device_address.MemoryOpaqueCaptureAddressAllocateInfo', @@ -1407,6 +1466,7 @@ instance Extensible MemoryAllocateInfo where getNext MemoryAllocateInfo{..} = next extends :: forall e b proxy. Typeable e => proxy e -> (Extends MemoryAllocateInfo e => b) -> Maybe b extends _ f + | Just Refl <- eqT @e @ImportScreenBufferInfoQNX = Just f | Just Refl <- eqT @e @ImportMetalBufferInfoEXT = Just f | Just Refl <- eqT @e @ExportMetalObjectCreateInfoEXT = Just f | Just Refl <- eqT @e @ImportMemoryBufferCollectionFUCHSIA = Just f diff --git a/src/Vulkan/Core10/MemoryManagement.hs b/src/Vulkan/Core10/MemoryManagement.hs index 4bae3ce61..19a804f19 100644 --- a/src/Vulkan/Core10/MemoryManagement.hs +++ b/src/Vulkan/Core10/MemoryManagement.hs @@ -229,6 +229,15 @@ foreign import ccall -- 'Vulkan.Core11.Enums.MemoryAllocateFlagBits.MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT' -- bit set -- +-- - #VUID-vkBindBufferMemory-bufferDeviceAddressCaptureReplay-09200# If +-- the +-- 'Vulkan.Core12.Promoted_From_VK_KHR_buffer_device_address.PhysicalDeviceBufferDeviceAddressFeatures'::@bufferDeviceAddressCaptureReplay@ +-- feature is enabled and @buffer@ was created with the +-- 'Vulkan.Core10.Enums.BufferCreateFlagBits.BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT' +-- bit set, @memory@ /must/ have been allocated with the +-- 'Vulkan.Core11.Enums.MemoryAllocateFlagBits.MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT' +-- bit set +-- -- - #VUID-vkBindBufferMemory-buffer-06408# If @buffer@ was created with -- 'Vulkan.Extensions.VK_FUCHSIA_buffer_collection.BufferCollectionBufferCreateInfoFUCHSIA' -- chained to 'Vulkan.Core10.Buffer.BufferCreateInfo'::@pNext@, @@ -237,14 +246,19 @@ foreign import ccall -- chained to 'Vulkan.Core10.Memory.MemoryAllocateInfo'::@pNext@ -- -- - #VUID-vkBindBufferMemory-descriptorBufferCaptureReplay-08112# If the --- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.PhysicalDeviceDescriptorBufferFeaturesEXT' --- ::@descriptorBufferCaptureReplay@ feature is enabled and @buffer@ --- was created with the +-- @buffer@ was created with the -- 'Vulkan.Core10.Enums.BufferCreateFlagBits.BUFFER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT' -- bit set, @memory@ /must/ have been allocated with the -- 'Vulkan.Core11.Enums.MemoryAllocateFlagBits.MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT' -- bit set -- +-- - #VUID-vkBindBufferMemory-buffer-09201# If the @buffer@ was created +-- with the +-- 'Vulkan.Core10.Enums.BufferCreateFlagBits.BUFFER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT' +-- bit set, @memory@ /must/ have been allocated with the +-- 'Vulkan.Core11.Enums.MemoryAllocateFlagBits.MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT' +-- bit set +-- -- == Valid Usage (Implicit) -- -- - #VUID-vkBindBufferMemory-device-parameter# @device@ /must/ be a @@ -336,6 +350,11 @@ foreign import ccall -- 'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID' -- external memory handle type, then @image@ /must/ be bound to memory -- +-- - #VUID-vkGetImageMemoryRequirements-image-08960# If @image@ was +-- created with the +-- 'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.EXTERNAL_MEMORY_HANDLE_TYPE_SCREEN_BUFFER_BIT_QNX' +-- external memory handle type, then @image@ /must/ be bound to memory +-- -- == Valid Usage (Implicit) -- -- - #VUID-vkGetImageMemoryRequirements-device-parameter# @device@ /must/ @@ -499,14 +518,19 @@ foreign import ccall -- when @image@ was created -- -- - #VUID-vkBindImageMemory-descriptorBufferCaptureReplay-08113# If the --- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.PhysicalDeviceDescriptorBufferFeaturesEXT' --- ::@descriptorBufferCaptureReplay@ feature is enabled and @image@ was --- created with the +-- @image@ was created with the -- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT' -- bit set, @memory@ /must/ have been allocated with the -- 'Vulkan.Core11.Enums.MemoryAllocateFlagBits.MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT' -- bit set -- +-- - #VUID-vkBindImageMemory-image-09202# If the @image@ was created with +-- the +-- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT' +-- bit set, @memory@ /must/ have been allocated with the +-- 'Vulkan.Core11.Enums.MemoryAllocateFlagBits.MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT' +-- bit set +-- -- - #VUID-vkBindImageMemory-image-01608# @image@ /must/ not have been -- created with the -- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_DISJOINT_BIT' diff --git a/src/Vulkan/Core10/OtherTypes.hs b/src/Vulkan/Core10/OtherTypes.hs index a27c30357..2a2a7ea21 100644 --- a/src/Vulkan/Core10/OtherTypes.hs +++ b/src/Vulkan/Core10/OtherTypes.hs @@ -49,6 +49,7 @@ import Vulkan.Core10.FundamentalTypes (DeviceSize) import Vulkan.CStruct.Extends (Extends) import Vulkan.CStruct.Extends (Extendss) import Vulkan.CStruct.Extends (Extensible(..)) +import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_external_memory_acquire_unmodified (ExternalMemoryAcquireUnmodifiedEXT) import Vulkan.Core10.Handles (Image) import Vulkan.Core10.Enums.ImageLayout (ImageLayout) import Vulkan.Core10.ImageView (ImageSubresourceRange) @@ -216,43 +217,90 @@ instance Zero MemoryBarrier where -- then it /must/ be bound completely and contiguously to a single -- 'Vulkan.Core10.Handles.DeviceMemory' object -- --- - #VUID-VkBufferMemoryBarrier-srcQueueFamilyIndex-04087# If --- @srcQueueFamilyIndex@ is not equal to @dstQueueFamilyIndex@, at --- least one /must/ not be a special queue family reserved for external --- memory ownership transfers, as described in --- --- --- - #VUID-VkBufferMemoryBarrier-buffer-04088# If @buffer@ was created +-- - #VUID-VkBufferMemoryBarrier-buffer-09095# If @buffer@ was created -- with a sharing mode of --- 'Vulkan.Core10.Enums.SharingMode.SHARING_MODE_CONCURRENT', --- @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ are not equal, and --- one of @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ is one of the --- special queue family values reserved for external memory transfers, --- the other /must/ be --- 'Vulkan.Core10.APIConstants.QUEUE_FAMILY_IGNORED' --- --- - #VUID-VkBufferMemoryBarrier-buffer-04089# If @buffer@ was created +-- 'Vulkan.Core10.Enums.SharingMode.SHARING_MODE_EXCLUSIVE', and +-- @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ are not equal, +-- @srcQueueFamilyIndex@ /must/ be +-- 'Vulkan.Core10.APIConstants.QUEUE_FAMILY_EXTERNAL', +-- 'Vulkan.Core10.APIConstants.QUEUE_FAMILY_FOREIGN_EXT', or a valid +-- queue family +-- +-- - #VUID-VkBufferMemoryBarrier-buffer-09096# If @buffer@ was created -- with a sharing mode of -- 'Vulkan.Core10.Enums.SharingMode.SHARING_MODE_EXCLUSIVE', and -- @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ are not equal, --- @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ /must/ both be valid --- queue families, or one of the special queue family values reserved --- for external memory transfers, as described in --- +-- @dstQueueFamilyIndex@ /must/ be +-- 'Vulkan.Core10.APIConstants.QUEUE_FAMILY_EXTERNAL', +-- 'Vulkan.Core10.APIConstants.QUEUE_FAMILY_FOREIGN_EXT', or a valid +-- queue family -- --- - #VUID-VkBufferMemoryBarrier-synchronization2-03853# If the +-- - #VUID-VkBufferMemoryBarrier-srcQueueFamilyIndex-04087# If +-- @srcQueueFamilyIndex@ is not equal to @dstQueueFamilyIndex@, at +-- least one of @srcQueueFamilyIndex@ or @dstQueueFamilyIndex@ /must/ +-- not be 'Vulkan.Core10.APIConstants.QUEUE_FAMILY_EXTERNAL' or +-- 'Vulkan.Core10.APIConstants.QUEUE_FAMILY_FOREIGN_EXT' +-- +-- - #VUID-VkBufferMemoryBarrier-None-09097# If the +-- +-- extension is not enabled, and the value of +-- 'Vulkan.Core10.DeviceInitialization.ApplicationInfo'::@apiVersion@ +-- used to create the 'Vulkan.Core10.Handles.Instance' is not greater +-- than or equal to Version 1.1, @srcQueueFamilyIndex@ /must/ not be +-- 'Vulkan.Core10.APIConstants.QUEUE_FAMILY_EXTERNAL' +-- +-- - #VUID-VkBufferMemoryBarrier-None-09098# If the +-- +-- extension is not enabled, and the value of +-- 'Vulkan.Core10.DeviceInitialization.ApplicationInfo'::@apiVersion@ +-- used to create the 'Vulkan.Core10.Handles.Instance' is not greater +-- than or equal to Version 1.1, @dstQueueFamilyIndex@ /must/ not be +-- 'Vulkan.Core10.APIConstants.QUEUE_FAMILY_EXTERNAL' +-- +-- - #VUID-VkBufferMemoryBarrier-srcQueueFamilyIndex-09099# If the +-- +-- extension is not enabled @srcQueueFamilyIndex@ /must/ not be +-- 'Vulkan.Core10.APIConstants.QUEUE_FAMILY_FOREIGN_EXT' +-- +-- - #VUID-VkBufferMemoryBarrier-dstQueueFamilyIndex-09100# If the +-- +-- extension is not enabled @dstQueueFamilyIndex@ /must/ not be +-- 'Vulkan.Core10.APIConstants.QUEUE_FAMILY_FOREIGN_EXT' +-- +-- - #VUID-VkBufferMemoryBarrier-None-09049# If the -- -- feature is not enabled, and @buffer@ was created with a sharing mode -- of 'Vulkan.Core10.Enums.SharingMode.SHARING_MODE_CONCURRENT', at -- least one of @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ /must/ -- be 'Vulkan.Core10.APIConstants.QUEUE_FAMILY_IGNORED' -- +-- - #VUID-VkBufferMemoryBarrier-None-09050# If the +-- +-- feature is not enabled, and @buffer@ was created with a sharing mode +-- of 'Vulkan.Core10.Enums.SharingMode.SHARING_MODE_CONCURRENT', +-- @srcQueueFamilyIndex@ /must/ be +-- 'Vulkan.Core10.APIConstants.QUEUE_FAMILY_IGNORED' or +-- 'Vulkan.Core10.APIConstants.QUEUE_FAMILY_EXTERNAL' +-- +-- - #VUID-VkBufferMemoryBarrier-None-09051# If the +-- +-- feature is not enabled, and @buffer@ was created with a sharing mode +-- of 'Vulkan.Core10.Enums.SharingMode.SHARING_MODE_CONCURRENT', +-- @dstQueueFamilyIndex@ /must/ be +-- 'Vulkan.Core10.APIConstants.QUEUE_FAMILY_IGNORED' or +-- 'Vulkan.Core10.APIConstants.QUEUE_FAMILY_EXTERNAL' +-- -- == Valid Usage (Implicit) -- -- - #VUID-VkBufferMemoryBarrier-sType-sType# @sType@ /must/ be -- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER' -- --- - #VUID-VkBufferMemoryBarrier-pNext-pNext# @pNext@ /must/ be @NULL@ +-- - #VUID-VkBufferMemoryBarrier-pNext-pNext# @pNext@ /must/ be @NULL@ or +-- a pointer to a valid instance of +-- 'Vulkan.Extensions.VK_EXT_external_memory_acquire_unmodified.ExternalMemoryAcquireUnmodifiedEXT' +-- +-- - #VUID-VkBufferMemoryBarrier-sType-unique# The @sType@ value of each +-- struct in the @pNext@ chain /must/ be unique -- -- - #VUID-VkBufferMemoryBarrier-buffer-parameter# @buffer@ /must/ be a -- valid 'Vulkan.Core10.Handles.Buffer' handle @@ -266,8 +314,10 @@ instance Zero MemoryBarrier where -- 'Vulkan.Core10.Enums.StructureType.StructureType', -- 'Vulkan.Core10.CommandBufferBuilding.cmdPipelineBarrier', -- 'Vulkan.Core10.CommandBufferBuilding.cmdWaitEvents' -data BufferMemoryBarrier = BufferMemoryBarrier - { -- | @srcAccessMask@ is a bitmask of +data BufferMemoryBarrier (es :: [Type]) = BufferMemoryBarrier + { -- | @pNext@ is @NULL@ or a pointer to a structure extending this structure. + next :: Chain es + , -- | @srcAccessMask@ is a bitmask of -- 'Vulkan.Core10.Enums.AccessFlagBits.AccessFlagBits' specifying a -- . srcAccessMask :: AccessFlags @@ -293,41 +343,56 @@ data BufferMemoryBarrier = BufferMemoryBarrier -- from @offset@ to the end of the buffer. size :: DeviceSize } - deriving (Typeable, Eq) + deriving (Typeable) #if defined(GENERIC_INSTANCES) -deriving instance Generic (BufferMemoryBarrier) +deriving instance Generic (BufferMemoryBarrier (es :: [Type])) #endif -deriving instance Show BufferMemoryBarrier +deriving instance Show (Chain es) => Show (BufferMemoryBarrier es) -instance ToCStruct BufferMemoryBarrier where +instance Extensible BufferMemoryBarrier where + extensibleTypeName = "BufferMemoryBarrier" + setNext BufferMemoryBarrier{..} next' = BufferMemoryBarrier{next = next', ..} + getNext BufferMemoryBarrier{..} = next + extends :: forall e b proxy. Typeable e => proxy e -> (Extends BufferMemoryBarrier e => b) -> Maybe b + extends _ f + | Just Refl <- eqT @e @ExternalMemoryAcquireUnmodifiedEXT = Just f + | otherwise = Nothing + +instance ( Extendss BufferMemoryBarrier es + , PokeChain es ) => ToCStruct (BufferMemoryBarrier es) where withCStruct x f = allocaBytes 56 $ \p -> pokeCStruct p x (f p) - pokeCStruct p BufferMemoryBarrier{..} f = do - poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER) - poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr) - poke ((p `plusPtr` 16 :: Ptr AccessFlags)) (srcAccessMask) - poke ((p `plusPtr` 20 :: Ptr AccessFlags)) (dstAccessMask) - poke ((p `plusPtr` 24 :: Ptr Word32)) (srcQueueFamilyIndex) - poke ((p `plusPtr` 28 :: Ptr Word32)) (dstQueueFamilyIndex) - poke ((p `plusPtr` 32 :: Ptr Buffer)) (buffer) - poke ((p `plusPtr` 40 :: Ptr DeviceSize)) (offset) - poke ((p `plusPtr` 48 :: Ptr DeviceSize)) (size) - f + pokeCStruct p BufferMemoryBarrier{..} f = evalContT $ do + lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER) + pNext'' <- fmap castPtr . ContT $ withChain (next) + lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext'' + lift $ poke ((p `plusPtr` 16 :: Ptr AccessFlags)) (srcAccessMask) + lift $ poke ((p `plusPtr` 20 :: Ptr AccessFlags)) (dstAccessMask) + lift $ poke ((p `plusPtr` 24 :: Ptr Word32)) (srcQueueFamilyIndex) + lift $ poke ((p `plusPtr` 28 :: Ptr Word32)) (dstQueueFamilyIndex) + lift $ poke ((p `plusPtr` 32 :: Ptr Buffer)) (buffer) + lift $ poke ((p `plusPtr` 40 :: Ptr DeviceSize)) (offset) + lift $ poke ((p `plusPtr` 48 :: Ptr DeviceSize)) (size) + lift $ f cStructSize = 56 cStructAlignment = 8 - pokeZeroCStruct p f = do - poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER) - poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr) - poke ((p `plusPtr` 16 :: Ptr AccessFlags)) (zero) - poke ((p `plusPtr` 20 :: Ptr AccessFlags)) (zero) - poke ((p `plusPtr` 24 :: Ptr Word32)) (zero) - poke ((p `plusPtr` 28 :: Ptr Word32)) (zero) - poke ((p `plusPtr` 32 :: Ptr Buffer)) (zero) - poke ((p `plusPtr` 40 :: Ptr DeviceSize)) (zero) - poke ((p `plusPtr` 48 :: Ptr DeviceSize)) (zero) - f + pokeZeroCStruct p f = evalContT $ do + lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER) + pNext' <- fmap castPtr . ContT $ withZeroChain @es + lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext' + lift $ poke ((p `plusPtr` 16 :: Ptr AccessFlags)) (zero) + lift $ poke ((p `plusPtr` 20 :: Ptr AccessFlags)) (zero) + lift $ poke ((p `plusPtr` 24 :: Ptr Word32)) (zero) + lift $ poke ((p `plusPtr` 28 :: Ptr Word32)) (zero) + lift $ poke ((p `plusPtr` 32 :: Ptr Buffer)) (zero) + lift $ poke ((p `plusPtr` 40 :: Ptr DeviceSize)) (zero) + lift $ poke ((p `plusPtr` 48 :: Ptr DeviceSize)) (zero) + lift $ f -instance FromCStruct BufferMemoryBarrier where +instance ( Extendss BufferMemoryBarrier es + , PeekChain es ) => FromCStruct (BufferMemoryBarrier es) where peekCStruct p = do + pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ()))) + next <- peekChain (castPtr pNext) srcAccessMask <- peek @AccessFlags ((p `plusPtr` 16 :: Ptr AccessFlags)) dstAccessMask <- peek @AccessFlags ((p `plusPtr` 20 :: Ptr AccessFlags)) srcQueueFamilyIndex <- peek @Word32 ((p `plusPtr` 24 :: Ptr Word32)) @@ -336,6 +401,7 @@ instance FromCStruct BufferMemoryBarrier where offset <- peek @DeviceSize ((p `plusPtr` 40 :: Ptr DeviceSize)) size <- peek @DeviceSize ((p `plusPtr` 48 :: Ptr DeviceSize)) pure $ BufferMemoryBarrier + next srcAccessMask dstAccessMask srcQueueFamilyIndex @@ -344,14 +410,9 @@ instance FromCStruct BufferMemoryBarrier where offset size -instance Storable BufferMemoryBarrier where - sizeOf ~_ = 56 - alignment ~_ = 8 - peek = peekCStruct - poke ptr poked = pokeCStruct ptr poked (pure ()) - -instance Zero BufferMemoryBarrier where +instance es ~ '[] => Zero (BufferMemoryBarrier es) where zero = BufferMemoryBarrier + () zero zero zero @@ -621,29 +682,55 @@ instance Zero BufferMemoryBarrier where -- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR' -- set -- --- - #VUID-VkImageMemoryBarrier-srcQueueFamilyIndex-04070# If --- @srcQueueFamilyIndex@ is not equal to @dstQueueFamilyIndex@, at --- least one /must/ not be a special queue family reserved for external --- memory ownership transfers, as described in --- --- --- - #VUID-VkImageMemoryBarrier-image-04071# If @image@ was created with +-- - #VUID-VkImageMemoryBarrier-image-09117# If @image@ was created with -- a sharing mode of --- 'Vulkan.Core10.Enums.SharingMode.SHARING_MODE_CONCURRENT', --- @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ are not equal, and --- one of @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ is one of the --- special queue family values reserved for external memory transfers, --- the other /must/ be --- 'Vulkan.Core10.APIConstants.QUEUE_FAMILY_IGNORED' --- --- - #VUID-VkImageMemoryBarrier-image-04072# If @image@ was created with +-- 'Vulkan.Core10.Enums.SharingMode.SHARING_MODE_EXCLUSIVE', and +-- @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ are not equal, +-- @srcQueueFamilyIndex@ /must/ be +-- 'Vulkan.Core10.APIConstants.QUEUE_FAMILY_EXTERNAL', +-- 'Vulkan.Core10.APIConstants.QUEUE_FAMILY_FOREIGN_EXT', or a valid +-- queue family +-- +-- - #VUID-VkImageMemoryBarrier-image-09118# If @image@ was created with -- a sharing mode of -- 'Vulkan.Core10.Enums.SharingMode.SHARING_MODE_EXCLUSIVE', and -- @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ are not equal, --- @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ /must/ both be valid --- queue families, or one of the special queue family values reserved --- for external memory transfers, as described in --- +-- @dstQueueFamilyIndex@ /must/ be +-- 'Vulkan.Core10.APIConstants.QUEUE_FAMILY_EXTERNAL', +-- 'Vulkan.Core10.APIConstants.QUEUE_FAMILY_FOREIGN_EXT', or a valid +-- queue family +-- +-- - #VUID-VkImageMemoryBarrier-srcQueueFamilyIndex-04070# If +-- @srcQueueFamilyIndex@ is not equal to @dstQueueFamilyIndex@, at +-- least one of @srcQueueFamilyIndex@ or @dstQueueFamilyIndex@ /must/ +-- not be 'Vulkan.Core10.APIConstants.QUEUE_FAMILY_EXTERNAL' or +-- 'Vulkan.Core10.APIConstants.QUEUE_FAMILY_FOREIGN_EXT' +-- +-- - #VUID-VkImageMemoryBarrier-None-09119# If the +-- +-- extension is not enabled, and the value of +-- 'Vulkan.Core10.DeviceInitialization.ApplicationInfo'::@apiVersion@ +-- used to create the 'Vulkan.Core10.Handles.Instance' is not greater +-- than or equal to Version 1.1, @srcQueueFamilyIndex@ /must/ not be +-- 'Vulkan.Core10.APIConstants.QUEUE_FAMILY_EXTERNAL' +-- +-- - #VUID-VkImageMemoryBarrier-None-09120# If the +-- +-- extension is not enabled, and the value of +-- 'Vulkan.Core10.DeviceInitialization.ApplicationInfo'::@apiVersion@ +-- used to create the 'Vulkan.Core10.Handles.Instance' is not greater +-- than or equal to Version 1.1, @dstQueueFamilyIndex@ /must/ not be +-- 'Vulkan.Core10.APIConstants.QUEUE_FAMILY_EXTERNAL' +-- +-- - #VUID-VkImageMemoryBarrier-srcQueueFamilyIndex-09121# If the +-- +-- extension is not enabled @srcQueueFamilyIndex@ /must/ not be +-- 'Vulkan.Core10.APIConstants.QUEUE_FAMILY_FOREIGN_EXT' +-- +-- - #VUID-VkImageMemoryBarrier-dstQueueFamilyIndex-09122# If the +-- +-- extension is not enabled @dstQueueFamilyIndex@ /must/ not be +-- 'Vulkan.Core10.APIConstants.QUEUE_FAMILY_FOREIGN_EXT' -- -- - #VUID-VkImageMemoryBarrier-srcQueueFamilyIndex-07120# If -- @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ define a @@ -751,9 +838,14 @@ instance Zero BufferMemoryBarrier where -- then it /must/ be bound completely and contiguously to a single -- 'Vulkan.Core10.Handles.DeviceMemory' object -- --- - #VUID-VkImageMemoryBarrier-image-01671# If @image@ has a --- single-plane color format or is not /disjoint/, then the --- @aspectMask@ member of @subresourceRange@ /must/ be +-- - #VUID-VkImageMemoryBarrier-image-09241# If @image@ has a color +-- format that is single-plane, then the @aspectMask@ member of +-- @subresourceRange@ /must/ be +-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT' +-- +-- - #VUID-VkImageMemoryBarrier-image-09242# If @image@ has a color +-- format and is not /disjoint/, then the @aspectMask@ member of +-- @subresourceRange@ /must/ be -- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT' -- -- - #VUID-VkImageMemoryBarrier-image-01672# If @image@ has a @@ -761,7 +853,8 @@ instance Zero BufferMemoryBarrier where -- @aspectMask@ member of @subresourceRange@ /must/ include at least -- one -- --- or 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT' +-- bit or +-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT' -- -- - #VUID-VkImageMemoryBarrier-image-03319# If @image@ has a -- depth\/stencil format with both depth and stencil and the @@ -795,20 +888,39 @@ instance Zero BufferMemoryBarrier where -- or -- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL' -- --- - #VUID-VkImageMemoryBarrier-synchronization2-03857# If the +-- - #VUID-VkImageMemoryBarrier-None-09052# If the -- -- feature is not enabled, and @image@ was created with a sharing mode -- of 'Vulkan.Core10.Enums.SharingMode.SHARING_MODE_CONCURRENT', at -- least one of @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ /must/ -- be 'Vulkan.Core10.APIConstants.QUEUE_FAMILY_IGNORED' -- +-- - #VUID-VkImageMemoryBarrier-None-09053# If the +-- +-- feature is not enabled, and @image@ was created with a sharing mode +-- of 'Vulkan.Core10.Enums.SharingMode.SHARING_MODE_CONCURRENT', +-- @srcQueueFamilyIndex@ /must/ be +-- 'Vulkan.Core10.APIConstants.QUEUE_FAMILY_IGNORED' or +-- 'Vulkan.Core10.APIConstants.QUEUE_FAMILY_EXTERNAL' +-- +-- - #VUID-VkImageMemoryBarrier-None-09054# If the +-- +-- feature is not enabled, and @image@ was created with a sharing mode +-- of 'Vulkan.Core10.Enums.SharingMode.SHARING_MODE_CONCURRENT', +-- @dstQueueFamilyIndex@ /must/ be +-- 'Vulkan.Core10.APIConstants.QUEUE_FAMILY_IGNORED' or +-- 'Vulkan.Core10.APIConstants.QUEUE_FAMILY_EXTERNAL' +-- -- == Valid Usage (Implicit) -- -- - #VUID-VkImageMemoryBarrier-sType-sType# @sType@ /must/ be -- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER' -- --- - #VUID-VkImageMemoryBarrier-pNext-pNext# @pNext@ /must/ be @NULL@ or --- a pointer to a valid instance of +-- - #VUID-VkImageMemoryBarrier-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_external_memory_acquire_unmodified.ExternalMemoryAcquireUnmodifiedEXT' +-- or -- 'Vulkan.Extensions.VK_EXT_sample_locations.SampleLocationsInfoEXT' -- -- - #VUID-VkImageMemoryBarrier-sType-unique# The @sType@ value of each @@ -879,6 +991,7 @@ instance Extensible ImageMemoryBarrier where getNext ImageMemoryBarrier{..} = next extends :: forall e b proxy. Typeable e => proxy e -> (Extends ImageMemoryBarrier e => b) -> Maybe b extends _ f + | Just Refl <- eqT @e @ExternalMemoryAcquireUnmodifiedEXT = Just f | Just Refl <- eqT @e @SampleLocationsInfoEXT = Just f | otherwise = Nothing @@ -978,12 +1091,15 @@ data PipelineCacheHeaderVersionOne = PipelineCacheHeaderVersionOne -- -- #VUID-VkPipelineCacheHeaderVersionOne-headerSize-04967# @headerSize@ -- /must/ be 32 + -- + -- #VUID-VkPipelineCacheHeaderVersionOne-headerSize-08990# @headerSize@ + -- /must/ not exceed the size of the pipeline cache headerSize :: Word32 , -- | @headerVersion@ is a -- 'Vulkan.Core10.Enums.PipelineCacheHeaderVersion.PipelineCacheHeaderVersion' - -- enum value specifying the version of the header. A consumer of the - -- pipeline cache /should/ use the cache version to interpret the remainder - -- of the cache header. + -- value specifying the version of the header. A consumer of the pipeline + -- cache /should/ use the cache version to interpret the remainder of the + -- cache header. -- -- #VUID-VkPipelineCacheHeaderVersionOne-headerVersion-04968# -- @headerVersion@ /must/ be @@ -1147,6 +1263,19 @@ instance Zero DrawIndirectCommand where -- -- == Valid Usage -- +-- - #VUID-VkDrawIndexedIndirectCommand-robustBufferAccess2-08798# If +-- +-- is not enabled, (@indexSize@ × (@firstIndex@ + @indexCount@) + +-- @offset@) /must/ be less than or equal to the size of the bound +-- index buffer, with @indexSize@ being based on the type specified by +-- @indexType@, where the index buffer, @indexType@, and @offset@ are +-- specified via +-- 'Vulkan.Core10.CommandBufferBuilding.cmdBindIndexBuffer' or +-- 'Vulkan.Extensions.VK_KHR_maintenance5.cmdBindIndexBuffer2KHR'. If +-- 'Vulkan.Extensions.VK_KHR_maintenance5.cmdBindIndexBuffer2KHR' is +-- used to bind the index buffer, the size of the bound index buffer is +-- 'Vulkan.Extensions.VK_KHR_maintenance5.cmdBindIndexBuffer2KHR'::@size@ +-- -- - #VUID-VkDrawIndexedIndirectCommand-None-00552# For a given vertex -- buffer binding, any attribute data fetched /must/ be entirely -- contained within the corresponding vertex buffer binding, as diff --git a/src/Vulkan/Core10/OtherTypes.hs-boot b/src/Vulkan/Core10/OtherTypes.hs-boot index b017712df..521e3c956 100644 --- a/src/Vulkan/Core10/OtherTypes.hs-boot +++ b/src/Vulkan/Core10/OtherTypes.hs-boot @@ -16,12 +16,15 @@ import {-# SOURCE #-} Vulkan.CStruct.Extends (Chain) import {-# SOURCE #-} Vulkan.CStruct.Extends (Extendss) import {-# SOURCE #-} Vulkan.CStruct.Extends (PeekChain) import {-# SOURCE #-} Vulkan.CStruct.Extends (PokeChain) -data BufferMemoryBarrier +type role BufferMemoryBarrier nominal +data BufferMemoryBarrier (es :: [Type]) -instance ToCStruct BufferMemoryBarrier -instance Show BufferMemoryBarrier +instance ( Extendss BufferMemoryBarrier es + , PokeChain es ) => ToCStruct (BufferMemoryBarrier es) +instance Show (Chain es) => Show (BufferMemoryBarrier es) -instance FromCStruct BufferMemoryBarrier +instance ( Extendss BufferMemoryBarrier es + , PeekChain es ) => FromCStruct (BufferMemoryBarrier es) data DispatchIndirectCommand diff --git a/src/Vulkan/Core10/Pass.hs b/src/Vulkan/Core10/Pass.hs index 3a423b288..02f28762d 100644 --- a/src/Vulkan/Core10/Pass.hs +++ b/src/Vulkan/Core10/Pass.hs @@ -569,58 +569,15 @@ getRenderAreaGranularity device renderPass = liftIO . evalContT $ do -- format has depth and\/or stencil components, @loadOp@ and @storeOp@ -- apply only to the depth data, while @stencilLoadOp@ and @stencilStoreOp@ -- define how the stencil data is handled. @loadOp@ and @stencilLoadOp@ --- define the /load operations/ that execute as part of the first subpass --- that uses the attachment. @storeOp@ and @stencilStoreOp@ define the --- /store operations/ that execute as part of the last subpass that uses --- the attachment. --- --- The load operation for each sample in an attachment happens-before any --- recorded command which accesses the sample in the first subpass where --- the attachment is used. Load operations for attachments with a --- depth\/stencil format execute in the --- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT' --- pipeline stage. Load operations for attachments with a color format --- execute in the --- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT' --- pipeline stage. --- --- The store operation for each sample in an attachment happens-after any --- recorded command which accesses the sample in the last subpass where the --- attachment is used. Store operations for attachments with a --- depth\/stencil format execute in the --- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT' --- pipeline stage. Store operations for attachments with a color format --- execute in the --- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT' --- pipeline stage. --- --- If an attachment is not used by any subpass, @loadOp@, @storeOp@, --- @stencilStoreOp@, and @stencilLoadOp@ will be ignored for that --- attachment, and no load or store ops will be performed. However, any --- transition specified by @initialLayout@ and @finalLayout@ will still be --- executed. --- --- The load and store operations apply on the first and last use of each --- view in the render pass, respectively. If a view index of an attachment --- is not included in the view mask in any subpass that uses it, then the --- load and store operations are ignored, and the attachment’s memory --- contents will not be modified by execution of a render pass instance. --- --- During a render pass instance, input\/color attachments with color --- formats that have a component size of 8, 16, or 32 bits /must/ be --- represented in the attachment’s format throughout the instance. --- Attachments with other floating- or fixed-point color formats, or with --- depth components /may/ be represented in a format with a precision --- higher than the attachment format, but /must/ be represented with the --- same range. When such a component is loaded via the @loadOp@, it will be --- converted into an implementation-dependent format used by the render --- pass. Such components /must/ be converted from the render pass format, --- to the format of the attachment, before they are resolved or stored at --- the end of a render pass instance via @storeOp@. Conversions occur as --- described in --- --- and --- . +-- define the +-- +-- for the attachment. @storeOp@ and @stencilStoreOp@ define the +-- +-- for the attachment. If an attachment is not used by any subpass, +-- @loadOp@, @storeOp@, @stencilStoreOp@, and @stencilLoadOp@ will be +-- ignored for that attachment, and no load or store ops will be performed. +-- However, any transition specified by @initialLayout@ and @finalLayout@ +-- will still be executed. -- -- If @flags@ includes -- 'Vulkan.Core10.Enums.AttachmentDescriptionFlagBits.ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT', @@ -666,9 +623,7 @@ getRenderAreaGranularity device renderPass = liftIO . evalContT $ do -- other words, the same view /can/ be used simultaneously as an input and -- color or depth\/stencil attachment, but /must/ not be used as multiple -- color or depth\/stencil attachments nor as resolve or preserve --- attachments. The precise set of valid scenarios is described in more --- detail --- . +-- attachments. -- -- If a set of attachments alias each other, then all except the first to -- be used in the render pass /must/ use an @initialLayout@ of @@ -691,9 +646,6 @@ getRenderAreaGranularity device renderPass = liftIO . evalContT $ do -- -- == Valid Usage -- --- - #VUID-VkAttachmentDescription-format-06698# @format@ /must/ not be --- VK_FORMAT_UNDEFINED --- -- - #VUID-VkAttachmentDescription-format-06699# If @format@ includes a -- color or depth component and @loadOp@ is -- 'Vulkan.Core10.Enums.AttachmentLoadOp.ATTACHMENT_LOAD_OP_LOAD', then @@ -827,6 +779,14 @@ getRenderAreaGranularity device renderPass = liftIO . evalContT $ do -- feature is not enabled, @finalLayout@ /must/ not be -- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT' -- +-- - #VUID-VkAttachmentDescription-samples-08745# @samples@ /must/ be a +-- bit value that is set in @imageCreateSampleCounts@ (as defined in +-- ) +-- for the given @format@ +-- +-- - #VUID-VkAttachmentDescription-format-06698# @format@ /must/ not be +-- VK_FORMAT_UNDEFINED +-- -- - #VUID-VkAttachmentDescription-format-06700# If @format@ includes a -- stencil component and @stencilLoadOp@ is -- 'Vulkan.Core10.Enums.AttachmentLoadOp.ATTACHMENT_LOAD_OP_LOAD', then @@ -1144,12 +1104,10 @@ instance Zero AttachmentReference where -- 'Vulkan.Core10.Enums.SubpassDescriptionFlagBits.SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM', -- and if @pResolveAttachments@ is not @NULL@, each of its elements -- corresponds to a color attachment (the element in @pColorAttachments@ at --- the same index), and a multisample resolve operation is defined for each --- attachment. At the end of each subpass, multisample resolve operations --- read the subpass’s color attachments, and resolve the samples for each --- pixel within the render area to the same pixel location in the --- corresponding resolve attachments, unless the resolve attachment index --- is 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED'. +-- the same index), and a +-- +-- is defined for each attachment unless the resolve attachment index is +-- 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED'. -- -- Similarly, if @flags@ does not include -- 'Vulkan.Core10.Enums.SubpassDescriptionFlagBits.SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM', @@ -1157,36 +1115,29 @@ instance Zero AttachmentReference where -- 'Vulkan.Core12.Promoted_From_VK_KHR_depth_stencil_resolve.SubpassDescriptionDepthStencilResolve'::@pDepthStencilResolveAttachment@ -- is not @NULL@ and does not have the value -- 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED', it corresponds to the --- depth\/stencil attachment in @pDepthStencilAttachment@, and multisample --- resolve operations for depth and stencil are defined by +-- depth\/stencil attachment in @pDepthStencilAttachment@, and +-- +-- for depth and stencil are defined by -- 'Vulkan.Core12.Promoted_From_VK_KHR_depth_stencil_resolve.SubpassDescriptionDepthStencilResolve'::@depthResolveMode@ -- and -- 'Vulkan.Core12.Promoted_From_VK_KHR_depth_stencil_resolve.SubpassDescriptionDepthStencilResolve'::@stencilResolveMode@, --- respectively. At the end of each subpass, multisample resolve operations --- read the subpass’s depth\/stencil attachment, and resolve the samples --- for each pixel to the same pixel location in the corresponding resolve --- attachment. If --- 'Vulkan.Core12.Promoted_From_VK_KHR_depth_stencil_resolve.SubpassDescriptionDepthStencilResolve'::@depthResolveMode@ --- is 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_NONE', then the --- depth component of the resolve attachment is not written to and its --- contents are preserved. Similarly, if --- 'Vulkan.Core12.Promoted_From_VK_KHR_depth_stencil_resolve.SubpassDescriptionDepthStencilResolve'::@stencilResolveMode@ --- is 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_NONE', then the --- stencil component of the resolve attachment is not written to and its --- contents are preserved. +-- respectively. If -- 'Vulkan.Core12.Promoted_From_VK_KHR_depth_stencil_resolve.SubpassDescriptionDepthStencilResolve'::@depthResolveMode@ --- is ignored if the 'Vulkan.Core10.Enums.Format.Format' of the --- @pDepthStencilResolveAttachment@ does not have a depth component. --- Similarly, +-- is 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_NONE' or the +-- @pDepthStencilResolveAttachment@ does not have a depth aspect, no +-- resolve operation is performed for the depth attachment. If -- 'Vulkan.Core12.Promoted_From_VK_KHR_depth_stencil_resolve.SubpassDescriptionDepthStencilResolve'::@stencilResolveMode@ --- is ignored if the 'Vulkan.Core10.Enums.Format.Format' of the --- @pDepthStencilResolveAttachment@ does not have a stencil component. +-- is 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_NONE' or the +-- @pDepthStencilResolveAttachment@ does not have a stencil aspect, no +-- resolve operation is performed for the stencil attachment. -- -- If the image subresource range referenced by the depth\/stencil -- attachment is created with -- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT', --- then the multisample resolve operation uses the sample locations state --- specified in the @sampleLocationsInfo@ member of the element of the +-- then the +-- +-- uses the sample locations state specified in the @sampleLocationsInfo@ +-- member of the element of the -- 'Vulkan.Extensions.VK_EXT_sample_locations.RenderPassSampleLocationsBeginInfoEXT'::@pPostSubpassSampleLocations@ -- for the subpass. -- @@ -1676,7 +1627,11 @@ instance Zero SubpassDescription where -- than the 'Vulkan.Core10.CommandBufferBuilding.cmdBeginRenderPass' used -- to begin the render pass instance. Otherwise, the first set of commands -- includes all commands submitted as part of the subpass instance --- identified by @srcSubpass@ and any load, store or multisample resolve +-- identified by @srcSubpass@ and any +-- , +-- , +-- or +-- -- operations on attachments used in @srcSubpass@. In either case, the -- first synchronization scope is limited to operations on the pipeline -- stages determined by the @@ -1691,7 +1646,11 @@ instance Zero SubpassDescription where -- than the 'Vulkan.Core10.CommandBufferBuilding.cmdEndRenderPass' used to -- end the render pass instance. Otherwise, the second set of commands -- includes all commands submitted as part of the subpass instance --- identified by @dstSubpass@ and any load, store or multisample resolve +-- identified by @dstSubpass@ and any +-- , +-- , +-- and +-- -- operations on attachments used in @dstSubpass@. In either case, the -- second synchronization scope is limited to operations on the pipeline -- stages determined by the @@ -1793,7 +1752,7 @@ instance Zero SubpassDescription where -- -- feature is not enabled, @srcStageMask@ /must/ not be @0@ -- --- - #VUID-VkSubpassDependency-rayTracingPipeline-07949# If neither the +-- - #VUID-VkSubpassDependency-srcStageMask-07949# If neither the -- -- extension or -- @@ -1848,7 +1807,7 @@ instance Zero SubpassDescription where -- -- feature is not enabled, @dstStageMask@ /must/ not be @0@ -- --- - #VUID-VkSubpassDependency-rayTracingPipeline-07949# If neither the +-- - #VUID-VkSubpassDependency-dstStageMask-07949# If neither the -- -- extension or -- @@ -2319,28 +2278,6 @@ instance es ~ '[] => Zero (RenderPassCreateInfo es) where -- -- = Description -- --- Applications /must/ ensure that all non-attachment writes to memory --- backing image subresources that are used as attachments that are not in --- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT' --- layout in a render pass instance happen-before or happen-after the --- render pass instance. If an image subresource is written during a render --- pass instance by anything other than load operations, store operations, --- and layout transitions, applications /must/ ensure that all --- non-attachment reads from memory backing that image subresource --- happen-before or happen-after the render pass instance. For --- depth\/stencil images, the aspects are not treated independently for the --- above guarantees - writes to either aspect /must/ be synchronized with --- accesses to the other aspect. --- --- Note --- --- An image subresource can be used as read-only as both an attachment and --- a non-attachment during a render pass instance, but care must still be --- taken to avoid data races with load\/store operations and layout --- transitions. The simplest way to achieve this is to keep the --- non-attachment and attachment accesses within the same subpass, or to --- avoid layout transitions and load\/store operations that perform writes. --- -- It is legal for a subpass to use no color or depth\/stencil attachments, -- either because it has no attachment references or because all of them -- are 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED'. This kind of subpass @@ -2355,6 +2292,9 @@ instance es ~ '[] => Zero (RenderPassCreateInfo es) where -- is 'Vulkan.Core10.FundamentalTypes.FALSE', then all pipelines to be -- bound with the subpass /must/ have the same value for -- 'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@. +-- In all such cases, @rasterizationSamples@ /must/ be a bit value that is +-- set in +-- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@framebufferNoAttachmentsSampleCounts@. -- -- == Valid Usage -- @@ -2517,6 +2457,13 @@ instance es ~ '[] => Zero (RenderPassCreateInfo es) where -- by @renderPass@ /must/ have a @layerCount@ that is either @1@, or -- greater than @layers@ -- +-- - #VUID-VkFramebufferCreateInfo-renderPass-08921# If @renderPass@ was +-- specified with non-zero view masks, each element of @pAttachments@ +-- that is used as a +-- +-- /must/ have a @layerCount@ equal to @1@ or greater than the index of +-- the most significant bit set in any of those view masks +-- -- - #VUID-VkFramebufferCreateInfo-flags-04539# If @flags@ does not -- include -- 'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT', @@ -2797,6 +2744,34 @@ instance es ~ '[] => Zero (RenderPassCreateInfo es) where -- have a format that supports the sample count specified in -- 'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT'::@rasterizationSamples@ -- +-- - #VUID-VkFramebufferCreateInfo-nullColorAttachmentWithExternalFormatResolve-09349# +-- If the +-- +-- is 'Vulkan.Core10.FundamentalTypes.FALSE', and @flags@ does not +-- include +-- 'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT', +-- the format of the color attachment for each subpass in @renderPass@ +-- that includes an external format image as a resolve attachment +-- /must/ have a format equal to the value of +-- 'Vulkan.Extensions.VK_ANDROID_external_format_resolve.AndroidHardwareBufferFormatResolvePropertiesANDROID'::@colorAttachmentFormat@ +-- as returned by a call to +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.getAndroidHardwareBufferPropertiesANDROID' +-- for the Android hardware buffer that was used to create the image +-- view use as its resolve attachment +-- +-- - #VUID-VkFramebufferCreateInfo-pAttachments-09350# If @flags@ does +-- not include +-- 'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT', +-- then if an element of @pAttachments@ has a format of +-- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED', it /must/ have been +-- created with a +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- value identical to that provided in the +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- specified by the corresponding +-- 'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.AttachmentDescription2' +-- in @renderPass@ +-- -- == Valid Usage (Implicit) -- -- - #VUID-VkFramebufferCreateInfo-sType-sType# @sType@ /must/ be diff --git a/src/Vulkan/Core10/Pipeline.hs b/src/Vulkan/Core10/Pipeline.hs index 1d84a9cda..5a4f8c99b 100644 --- a/src/Vulkan/Core10/Pipeline.hs +++ b/src/Vulkan/Core10/Pipeline.hs @@ -138,6 +138,7 @@ import Vulkan.Core10.Enums.ColorComponentFlagBits (ColorComponentFlags) import Vulkan.Core10.Enums.CompareOp (CompareOp) import Vulkan.Core10.Enums.CullModeFlagBits (CullModeFlags) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_debug_utils (DebugUtilsObjectNameInfoEXT) +import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_depth_bias_control (DepthBiasRepresentationInfoEXT) import Vulkan.Core10.Handles (Device) import Vulkan.Core10.Handles (Device(..)) import Vulkan.Core10.Handles (Device(Device)) @@ -149,6 +150,7 @@ import Vulkan.Core10.Enums.DynamicState (DynamicState) import Vulkan.CStruct.Extends (Extends) import Vulkan.CStruct.Extends (Extendss) import Vulkan.CStruct.Extends (Extensible(..)) +import {-# SOURCE #-} Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer (ExternalFormatANDROID) import Vulkan.Core10.Enums.Format (Format) import Vulkan.Core10.Enums.FrontFace (FrontFace) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_graphics_pipeline_library (GraphicsPipelineLibraryCreateInfoEXT) @@ -169,6 +171,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_NV_framebuffer_mixed_samples (Pipelin import {-# SOURCE #-} Vulkan.Extensions.VK_NV_coverage_reduction_mode (PipelineCoverageReductionStateCreateInfoNV) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_fragment_coverage_to_color (PipelineCoverageToColorStateCreateInfoNV) import Vulkan.Core10.Enums.PipelineCreateFlagBits (PipelineCreateFlags) +import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_maintenance5 (PipelineCreateFlags2CreateInfoKHR) import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_pipeline_creation_feedback (PipelineCreationFeedbackCreateInfo) import Vulkan.Core10.Enums.PipelineDepthStencilStateCreateFlagBits (PipelineDepthStencilStateCreateFlags) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_discard_rectangles (PipelineDiscardRectangleStateCreateInfoEXT) @@ -192,6 +195,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_pipeline_robustness (PipelineRobu import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_sample_locations (PipelineSampleLocationsStateCreateInfoEXT) import Vulkan.Core10.Enums.PipelineShaderStageCreateFlagBits (PipelineShaderStageCreateFlags) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_shader_module_identifier (PipelineShaderStageModuleIdentifierCreateInfoEXT) +import {-# SOURCE #-} Vulkan.Extensions.VK_AMDX_shader_enqueue (PipelineShaderStageNodeCreateInfoAMDX) import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_subgroup_size_control (PipelineShaderStageRequiredSubgroupSizeCreateInfo) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_maintenance2 (PipelineTessellationDomainOriginStateCreateInfo) import Vulkan.Core10.Enums.PipelineTessellationStateCreateFlags (PipelineTessellationStateCreateFlags) @@ -988,12 +992,7 @@ instance Zero SpecializationInfo where -- -- = Description -- --- If the --- --- feature is enabled and an instance of --- 'Vulkan.Core10.Shader.ShaderModuleCreateInfo' is included in the @pNext@ --- chain, @module@ /can/ be 'Vulkan.Core10.APIConstants.NULL_HANDLE'. If --- @module@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the shader +-- If @module@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the shader -- code used by the pipeline is defined by @module@. If @module@ is -- 'Vulkan.Core10.APIConstants.NULL_HANDLE', the shader code is defined by -- the chained 'Vulkan.Core10.Shader.ShaderModuleCreateInfo' if present. @@ -1101,11 +1100,6 @@ instance Zero SpecializationInfo where -- that variable /must/ not have an array size greater than -- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxSampleMaskWords@ -- --- - #VUID-VkPipelineShaderStageCreateInfo-stage-00712# If @stage@ is --- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT', --- the identified entry point /must/ not include any input variable in --- its interface that is decorated with @CullDistance@ --- -- - #VUID-VkPipelineShaderStageCreateInfo-stage-00713# If @stage@ is -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT' -- or @@ -1151,11 +1145,6 @@ instance Zero SpecializationInfo where -- primitive, it /must/ write the same value to @ViewportIndex@ for all -- vertices of a given primitive -- --- - #VUID-VkPipelineShaderStageCreateInfo-stage-00718# If @stage@ is --- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT', --- the identified entry point /must/ not include any output variables --- in its interface decorated with @CullDistance@ --- -- - #VUID-VkPipelineShaderStageCreateInfo-stage-06685# If @stage@ is -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT', -- and the identified entry point writes to @FragDepth@ in any @@ -1184,6 +1173,15 @@ instance Zero SpecializationInfo where -- -- feature /must/ be enabled -- +-- - #VUID-VkPipelineShaderStageCreateInfo-flags-08988# If @flags@ +-- includes +-- 'Vulkan.Core10.Enums.PipelineShaderStageCreateFlagBits.PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT', +-- @stage@ /must/ be one of +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT', +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT', +-- or +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_COMPUTE_BIT' +-- -- - #VUID-VkPipelineShaderStageCreateInfo-pNext-02754# If a -- 'Vulkan.Core13.Promoted_From_VK_EXT_subgroup_size_control.PipelineShaderStageRequiredSubgroupSizeCreateInfo' -- structure is included in the @pNext@ chain, @flags@ /must/ not have @@ -1203,6 +1201,9 @@ instance Zero SpecializationInfo where -- 'Vulkan.Core13.Promoted_From_VK_EXT_subgroup_size_control.PipelineShaderStageRequiredSubgroupSizeCreateInfo' -- structure is included in the @pNext@ chain and @stage@ is -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_COMPUTE_BIT', +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT', +-- or +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT', -- the local workgroup size of the shader /must/ be less than or equal -- to the product of -- 'Vulkan.Core13.Promoted_From_VK_EXT_subgroup_size_control.PipelineShaderStageRequiredSubgroupSizeCreateInfo'::@requiredSubgroupSize@ @@ -1237,22 +1238,31 @@ instance Zero SpecializationInfo where -- in the X dimension of the pipeline /must/ be a multiple of -- -- --- - #VUID-VkPipelineShaderStageCreateInfo-stage-06844# If a shader --- module identifier is specified for this @stage@, a --- 'Vulkan.Core10.Shader.ShaderModuleCreateInfo' structure /must/ not --- be present in the @pNext@ chain +-- - #VUID-VkPipelineShaderStageCreateInfo-module-08987# If @module@ uses +-- the @OpTypeCooperativeMatrixKHR@ instruction with a @Scope@ equal to +-- @Subgroup@, then the local workgroup size in the X dimension of the +-- pipeline /must/ be a multiple of +-- . +-- +-- - #VUID-VkPipelineShaderStageCreateInfo-stage-08771# If a shader +-- module identifier is not specified for this @stage@, @module@ /must/ +-- be a valid 'Vulkan.Core10.Handles.ShaderModule' if none of the +-- following features are enabled: +-- +-- - +-- +-- - -- -- - #VUID-VkPipelineShaderStageCreateInfo-stage-06845# If a shader -- module identifier is not specified for this @stage@, @module@ /must/ --- be a valid 'Vulkan.Core10.Handles.ShaderModule' or there /must/ be a --- valid 'Vulkan.Core10.Shader.ShaderModuleCreateInfo' structure in the --- @pNext@ chain +-- be a valid 'Vulkan.Core10.Handles.ShaderModule', or there /must/ be +-- a valid 'Vulkan.Core10.Shader.ShaderModuleCreateInfo' structure in +-- the @pNext@ chain -- --- - #VUID-VkPipelineShaderStageCreateInfo-stage-06846# If a shader --- module identifier is not specified for this @stage@, and the --- --- feature is not enabled, @module@ /must/ be a valid --- 'Vulkan.Core10.Handles.ShaderModule' +-- - #VUID-VkPipelineShaderStageCreateInfo-stage-06844# If a shader +-- module identifier is specified for this @stage@, a +-- 'Vulkan.Core10.Shader.ShaderModuleCreateInfo' structure /must/ not +-- be present in the @pNext@ chain -- -- - #VUID-VkPipelineShaderStageCreateInfo-stage-06848# If a shader -- module identifier is specified for this @stage@, @module@ /must/ be @@ -1277,6 +1287,7 @@ instance Zero SpecializationInfo where -- 'Vulkan.Extensions.VK_EXT_debug_utils.DebugUtilsObjectNameInfoEXT', -- 'Vulkan.Extensions.VK_EXT_pipeline_robustness.PipelineRobustnessCreateInfoEXT', -- 'Vulkan.Extensions.VK_EXT_shader_module_identifier.PipelineShaderStageModuleIdentifierCreateInfoEXT', +-- 'Vulkan.Extensions.VK_AMDX_shader_enqueue.PipelineShaderStageNodeCreateInfoAMDX', -- 'Vulkan.Core13.Promoted_From_VK_EXT_subgroup_size_control.PipelineShaderStageRequiredSubgroupSizeCreateInfo', -- 'Vulkan.Core10.Shader.ShaderModuleCreateInfo', or -- 'Vulkan.Extensions.VK_EXT_validation_cache.ShaderModuleValidationCacheCreateInfoEXT' @@ -1307,7 +1318,9 @@ instance Zero SpecializationInfo where -- = See Also -- -- , --- 'ComputePipelineCreateInfo', 'GraphicsPipelineCreateInfo', +-- 'ComputePipelineCreateInfo', +-- 'Vulkan.Extensions.VK_AMDX_shader_enqueue.ExecutionGraphPipelineCreateInfoAMDX', +-- 'GraphicsPipelineCreateInfo', -- 'Vulkan.Extensions.VK_NV_device_generated_commands.GraphicsShaderGroupCreateInfoNV', -- 'Vulkan.Core10.Enums.PipelineShaderStageCreateFlagBits.PipelineShaderStageCreateFlags', -- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.RayTracingPipelineCreateInfoKHR', @@ -1350,6 +1363,7 @@ instance Extensible PipelineShaderStageCreateInfo where getNext PipelineShaderStageCreateInfo{..} = next extends :: forall e b proxy. Typeable e => proxy e -> (Extends PipelineShaderStageCreateInfo e => b) -> Maybe b extends _ f + | Just Refl <- eqT @e @PipelineShaderStageNodeCreateInfoAMDX = Just f | Just Refl <- eqT @e @PipelineRobustnessCreateInfoEXT = Just f | Just Refl <- eqT @e @PipelineShaderStageModuleIdentifierCreateInfoEXT = Just f | Just Refl <- eqT @e @PipelineShaderStageRequiredSubgroupSizeCreateInfo = Just f @@ -1419,13 +1433,19 @@ instance es ~ '[] => Zero (PipelineShaderStageCreateInfo es) where -- described in more detail in -- . -- +-- If a +-- 'Vulkan.Extensions.VK_KHR_maintenance5.PipelineCreateFlags2CreateInfoKHR' +-- structure is present in the @pNext@ chain, +-- 'Vulkan.Extensions.VK_KHR_maintenance5.PipelineCreateFlags2CreateInfoKHR'::@flags@ +-- from that structure is used instead of @flags@ from this structure. +-- -- == Valid Usage -- -- - #VUID-VkComputePipelineCreateInfo-flags-07984# If @flags@ contains -- the -- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DERIVATIVE_BIT' -- flag, and @basePipelineIndex@ is -1, @basePipelineHandle@ /must/ be --- a valid handle to a compute 'Vulkan.Core10.Handles.Pipeline' +-- a valid compute 'Vulkan.Core10.Handles.Pipeline' handle -- -- - #VUID-VkComputePipelineCreateInfo-flags-07985# If @flags@ contains -- the @@ -1460,26 +1480,6 @@ instance es ~ '[] => Zero (PipelineShaderStageCreateInfo es) where -- is declared in a shader as an array, a descriptor slot in @layout@ -- /must/ match the descriptor count -- --- - #VUID-VkComputePipelineCreateInfo-stage-00701# The @stage@ member of --- @stage@ /must/ be --- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_COMPUTE_BIT' --- --- - #VUID-VkComputePipelineCreateInfo-stage-00702# The shader code for --- the entry point identified by @stage@ and the rest of the state --- identified by this structure /must/ adhere to the pipeline linking --- rules described in the --- --- chapter --- --- - #VUID-VkComputePipelineCreateInfo-layout-01687# The number of --- resources in @layout@ accessible to the compute shader stage /must/ --- be less than or equal to --- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxPerStageResources@ --- --- - #VUID-VkComputePipelineCreateInfo-flags-03364# @flags@ /must/ not --- include --- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_LIBRARY_BIT_KHR' --- -- - #VUID-VkComputePipelineCreateInfo-flags-03365# @flags@ /must/ not -- include -- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR' @@ -1512,18 +1512,54 @@ instance es ~ '[] => Zero (PipelineShaderStageCreateInfo es) where -- include -- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV' -- --- - #VUID-VkComputePipelineCreateInfo-flags-02874# @flags@ /must/ not --- include --- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV' +-- - #VUID-VkComputePipelineCreateInfo-flags-09007# If @flags@ includes +-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV', +-- then the +-- +-- feature /must/ be enabled +-- +-- - #VUID-VkComputePipelineCreateInfo-flags-09008# If @flags@ includes +-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV', +-- then the @pNext@ chain /must/ include a pointer to a valid instance +-- of +-- 'Vulkan.Extensions.VK_NV_device_generated_commands_compute.ComputePipelineIndirectBufferInfoNV' +-- specifying the address where the pipeline’s metadata will be saved -- -- - #VUID-VkComputePipelineCreateInfo-pipelineCreationCacheControl-02875# -- If the --- +-- -- feature is not enabled, @flags@ /must/ not include -- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT' -- or -- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT' -- +-- - #VUID-VkComputePipelineCreateInfo-stage-00701# The @stage@ member of +-- @stage@ /must/ be +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_COMPUTE_BIT' +-- +-- - #VUID-VkComputePipelineCreateInfo-stage-00702# The shader code for +-- the entry point identified by @stage@ and the rest of the state +-- identified by this structure /must/ adhere to the pipeline linking +-- rules described in the +-- +-- chapter +-- +-- - #VUID-VkComputePipelineCreateInfo-layout-01687# The number of +-- resources in @layout@ accessible to the compute shader stage /must/ +-- be less than or equal to +-- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxPerStageResources@ +-- +-- - #VUID-VkComputePipelineCreateInfo-shaderEnqueue-09177# If +-- +-- is not enabled, @flags@ /must/ not include +-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_LIBRARY_BIT_KHR' +-- +-- - #VUID-VkComputePipelineCreateInfo-flags-09178# If @flags@ does not +-- include +-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_LIBRARY_BIT_KHR', +-- the shader specified by @stage@ /must/ not declare the +-- @ShaderEnqueueAMDX@ capability +-- -- - #VUID-VkComputePipelineCreateInfo-pipelineStageCreationFeedbackCount-06566# -- If -- 'Vulkan.Core13.Promoted_From_VK_EXT_pipeline_creation_feedback.PipelineCreationFeedbackCreateInfo'::@pipelineStageCreationFeedbackCount@ @@ -1546,6 +1582,7 @@ instance es ~ '[] => Zero (PipelineShaderStageCreateInfo es) where -- of any structure (including this one) in the @pNext@ chain /must/ be -- either @NULL@ or a pointer to a valid instance of -- 'Vulkan.Extensions.VK_AMD_pipeline_compiler_control.PipelineCompilerControlCreateInfoAMD', +-- 'Vulkan.Extensions.VK_KHR_maintenance5.PipelineCreateFlags2CreateInfoKHR', -- 'Vulkan.Core13.Promoted_From_VK_EXT_pipeline_creation_feedback.PipelineCreationFeedbackCreateInfo', -- 'Vulkan.Extensions.VK_EXT_pipeline_robustness.PipelineRobustnessCreateInfoEXT', -- or @@ -1577,7 +1614,8 @@ instance es ~ '[] => Zero (PipelineShaderStageCreateInfo es) where -- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PipelineCreateFlags', -- 'Vulkan.Core10.Handles.PipelineLayout', 'PipelineShaderStageCreateInfo', -- 'Vulkan.Core10.Enums.StructureType.StructureType', --- 'createComputePipelines' +-- 'createComputePipelines', +-- 'Vulkan.Extensions.VK_NV_device_generated_commands_compute.getPipelineIndirectMemoryRequirementsNV' data ComputePipelineCreateInfo (es :: [Type]) = ComputePipelineCreateInfo { -- | @pNext@ is @NULL@ or a pointer to a structure extending this structure. next :: Chain es @@ -1591,10 +1629,10 @@ data ComputePipelineCreateInfo (es :: [Type]) = ComputePipelineCreateInfo , -- | @layout@ is the description of binding locations used by both the -- pipeline and descriptor sets used with the pipeline. layout :: PipelineLayout - , -- | @basePipelineHandle@ is a pipeline to derive from + , -- | @basePipelineHandle@ is a pipeline to derive from. basePipelineHandle :: Pipeline , -- | @basePipelineIndex@ is an index into the @pCreateInfos@ parameter to use - -- as a pipeline to derive from + -- as a pipeline to derive from. basePipelineIndex :: Int32 } deriving (Typeable) @@ -1613,6 +1651,7 @@ instance Extensible ComputePipelineCreateInfo where | Just Refl <- eqT @e @PipelineCompilerControlCreateInfoAMD = Just f | Just Refl <- eqT @e @SubpassShadingPipelineCreateInfoHUAWEI = Just f | Just Refl <- eqT @e @PipelineCreationFeedbackCreateInfo = Just f + | Just Refl <- eqT @e @PipelineCreateFlags2CreateInfoKHR = Just f | otherwise = Nothing instance ( Extendss ComputePipelineCreateInfo es @@ -1997,26 +2036,24 @@ instance es ~ '[] => Zero (PipelineVertexInputStateCreateInfo es) where -- -- == Valid Usage -- --- - #VUID-VkPipelineInputAssemblyStateCreateInfo-topology-06252# If --- @topology@ is +-- - #VUID-VkPipelineInputAssemblyStateCreateInfo-topology-06252# If the +-- +-- feature is not enabled, and @topology@ is -- 'Vulkan.Core10.Enums.PrimitiveTopology.PRIMITIVE_TOPOLOGY_POINT_LIST', -- 'Vulkan.Core10.Enums.PrimitiveTopology.PRIMITIVE_TOPOLOGY_LINE_LIST', -- 'Vulkan.Core10.Enums.PrimitiveTopology.PRIMITIVE_TOPOLOGY_TRIANGLE_LIST', --- 'Vulkan.Core10.Enums.PrimitiveTopology.PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY' +-- 'Vulkan.Core10.Enums.PrimitiveTopology.PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY', -- or -- 'Vulkan.Core10.Enums.PrimitiveTopology.PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY', --- and @primitiveRestartEnable@ is --- 'Vulkan.Core10.FundamentalTypes.TRUE', the --- --- feature /must/ be enabled +-- @primitiveRestartEnable@ /must/ be +-- 'Vulkan.Core10.FundamentalTypes.FALSE' -- --- - #VUID-VkPipelineInputAssemblyStateCreateInfo-topology-06253# If --- @topology@ is --- 'Vulkan.Core10.Enums.PrimitiveTopology.PRIMITIVE_TOPOLOGY_PATCH_LIST', --- and @primitiveRestartEnable@ is --- 'Vulkan.Core10.FundamentalTypes.TRUE', the +-- - #VUID-VkPipelineInputAssemblyStateCreateInfo-topology-06253# If the -- --- feature /must/ be enabled +-- feature is not enabled, and @topology@ is +-- 'Vulkan.Core10.Enums.PrimitiveTopology.PRIMITIVE_TOPOLOGY_PATCH_LIST', +-- @primitiveRestartEnable@ /must/ be +-- 'Vulkan.Core10.FundamentalTypes.FALSE' -- -- - #VUID-VkPipelineInputAssemblyStateCreateInfo-topology-00429# If the -- @@ -2075,7 +2112,8 @@ data PipelineInputAssemblyStateCreateInfo = PipelineInputAssemblyStateCreateInfo -- 'Vulkan.Extensions.VK_EXT_multi_draw.cmdDrawMultiIndexedEXT', and -- 'Vulkan.Core10.CommandBufferBuilding.cmdDrawIndexedIndirect'), and the -- special index value is either 0xFFFFFFFF when the @indexType@ parameter - -- of 'Vulkan.Core10.CommandBufferBuilding.cmdBindIndexBuffer' is equal to + -- of 'Vulkan.Extensions.VK_KHR_maintenance5.cmdBindIndexBuffer2KHR' or + -- 'Vulkan.Core10.CommandBufferBuilding.cmdBindIndexBuffer' is equal to -- 'Vulkan.Core10.Enums.IndexType.INDEX_TYPE_UINT32', 0xFF when @indexType@ -- is equal to 'Vulkan.Core10.Enums.IndexType.INDEX_TYPE_UINT8_EXT', or -- 0xFFFF when @indexType@ is equal to @@ -2261,12 +2299,9 @@ instance es ~ '[] => Zero (PipelineTessellationStateCreateInfo es) where -- (@offset.y@ + @extent.height@) /must/ not cause a signed integer -- addition overflow for any element of @pScissors@ -- --- - #VUID-VkPipelineViewportStateCreateInfo-scissorCount-04134# If the --- graphics pipeline is being created without --- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT' --- and --- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT' --- set then @scissorCount@ and @viewportCount@ /must/ be identical +-- - #VUID-VkPipelineViewportStateCreateInfo-scissorCount-04134# If +-- @scissorCount@ and @viewportCount@ are both not dynamic, then +-- @scissorCount@ and @viewportCount@ /must/ be identical -- -- - #VUID-VkPipelineViewportStateCreateInfo-viewportCount-04135# If the -- graphics pipeline is being created with @@ -2485,6 +2520,7 @@ instance es ~ '[] => Zero (PipelineViewportStateCreateInfo es) where -- - #VUID-VkPipelineRasterizationStateCreateInfo-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_depth_bias_control.DepthBiasRepresentationInfoEXT', -- 'Vulkan.Extensions.VK_EXT_conservative_rasterization.PipelineRasterizationConservativeStateCreateInfoEXT', -- 'Vulkan.Extensions.VK_EXT_depth_clip_enable.PipelineRasterizationDepthClipStateCreateInfoEXT', -- 'Vulkan.Extensions.VK_EXT_line_rasterization.PipelineRasterizationLineStateCreateInfoEXT', @@ -2573,6 +2609,7 @@ instance Extensible PipelineRasterizationStateCreateInfo where getNext PipelineRasterizationStateCreateInfo{..} = next extends :: forall e b proxy. Typeable e => proxy e -> (Extends PipelineRasterizationStateCreateInfo e => b) -> Maybe b extends _ f + | Just Refl <- eqT @e @DepthBiasRepresentationInfoEXT = Just f | Just Refl <- eqT @e @PipelineRasterizationProvokingVertexStateCreateInfoEXT = Just f | Just Refl <- eqT @e @PipelineRasterizationLineStateCreateInfoEXT = Just f | Just Refl <- eqT @e @PipelineRasterizationDepthClipStateCreateInfoEXT = Just f @@ -3157,7 +3194,8 @@ instance Zero PipelineColorBlendAttachmentState where -- 'Vulkan.Core10.Enums.PipelineColorBlendStateCreateFlagBits.PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT' -- -- - #VUID-VkPipelineColorBlendStateCreateInfo-pAttachments-07353# If --- @attachmentCount@ is not @0@, and any of +-- @attachmentCount@ is not @0@ , and any of +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT', -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT', -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT', -- or @@ -3214,7 +3252,17 @@ data PipelineColorBlendStateCreateInfo (es :: [Type]) = PipelineColorBlendStateC , -- | @logicOp@ selects which logical operation to apply. logicOp :: LogicOp , -- | @attachmentCount@ is the number of 'PipelineColorBlendAttachmentState' - -- elements in @pAttachments@. + -- elements in @pAttachments@. It is ignored if the pipeline is created + -- with + -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT', + -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT', + -- and + -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_MASK_EXT' + -- dynamic states set, and either + -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT' + -- set or + -- + -- is not enabled on the device. attachmentCount :: Word32 , -- | @pAttachments@ is a pointer to an array of -- 'PipelineColorBlendAttachmentState' structures defining blend state for @@ -3223,7 +3271,11 @@ data PipelineColorBlendStateCreateInfo (es :: [Type]) = PipelineColorBlendStateC -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT', -- and -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_MASK_EXT' - -- dynamic states set. + -- dynamic states set, and either + -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT' + -- set or + -- + -- is not enabled on the device. 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, @@ -3725,6 +3777,14 @@ instance Zero PipelineDepthStencilStateCreateInfo where -- back to the application, and -- 'Vulkan.Core10.Enums.Result.ERROR_INVALID_SHADER_NV' will be generated. -- +-- Note +-- +-- With @VK_EXT_extended_dynamic_state3@, it is possible that many of the +-- 'GraphicsPipelineCreateInfo' members above /can/ be @NULL@ because all +-- their state is dynamic and therefore ignored. This is optional so the +-- application /can/ still use a valid pointer if it needs to set the +-- @pNext@ or @flags@ fields to specify state for other extensions. +-- -- The state required for a graphics pipeline is divided into -- , -- , @@ -3732,12 +3792,34 @@ instance Zero PipelineDepthStencilStateCreateInfo where -- and -- . -- +-- __Vertex Input State__ +-- -- Vertex input state is defined by: -- -- - 'PipelineVertexInputStateCreateInfo' -- -- - 'PipelineInputAssemblyStateCreateInfo' -- +-- If this pipeline specifies +-- +-- either directly or by including it as a pipeline library and its +-- @pStages@ includes a vertex shader, this state /must/ be specified to +-- create a +-- . +-- +-- If a pipeline includes +-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_VERTEX_INPUT_INTERFACE_BIT_EXT' +-- in +-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GraphicsPipelineLibraryCreateInfoEXT'::@flags@ +-- either explicitly or as a default, and either the conditions requiring +-- this state for a +-- +-- are met or this pipeline does not specify +-- +-- in any way, that pipeline /must/ specify this state directly. +-- +-- __Pre-Rasterization Shader State__ +-- -- Pre-rasterization shader state is defined by: -- -- - 'PipelineShaderStageCreateInfo' entries for: @@ -3779,6 +3861,18 @@ instance Zero PipelineDepthStencilStateCreateInfo where -- -- - 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PipelineFragmentShadingRateStateCreateInfoKHR' -- +-- This state /must/ be specified to create a +-- . +-- +-- If either the @pNext@ chain includes a +-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GraphicsPipelineLibraryCreateInfoEXT' +-- structure with +-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT' +-- included in @flags@, or it is not specified and would default to include +-- that value, this state /must/ be specified in the pipeline. +-- +-- __Fragment Shader State__ +-- -- Fragment shader state is defined by: -- -- - A 'PipelineShaderStageCreateInfo' entry for the fragment shader @@ -3819,6 +3913,28 @@ instance Zero PipelineDepthStencilStateCreateInfo where -- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT' -- flag -- +-- If a pipeline specifies +-- +-- either directly or by including it as a pipeline library and +-- @rasterizerDiscardEnable@ is set to +-- 'Vulkan.Core10.FundamentalTypes.FALSE' or +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE' +-- is used, this state /must/ be specified to create a +-- . +-- +-- If a pipeline includes +-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT' +-- in +-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GraphicsPipelineLibraryCreateInfoEXT'::@flags@ +-- either explicitly or as a default, and either the conditions requiring +-- this state for a +-- +-- are met or this pipeline does not specify +-- +-- in any way, that pipeline /must/ specify this state directly. +-- +-- __Fragment Output State__ +-- -- Fragment output state is defined by: -- -- - 'PipelineColorBlendStateCreateInfo' @@ -3833,12 +3949,36 @@ instance Zero PipelineDepthStencilStateCreateInfo where -- -- - 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV' -- +-- - 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID' +-- -- - Inclusion\/omission of the -- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT' -- and -- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT' -- flags -- +-- If a pipeline specifies +-- +-- either directly or by including it as a pipeline library and +-- @rasterizerDiscardEnable@ is set to +-- 'Vulkan.Core10.FundamentalTypes.FALSE' or +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE' +-- is used, this state /must/ be specified to create a +-- . +-- +-- If a pipeline includes +-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT' +-- in +-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GraphicsPipelineLibraryCreateInfoEXT'::@flags@ +-- either explicitly or as a default, and either the conditions requiring +-- this state for a +-- +-- are met or this pipeline does not specify +-- +-- in any way, that pipeline /must/ specify this state directly. +-- +-- __Dynamic State__ +-- -- Dynamic state values set via @pDynamicState@ /must/ be ignored if the -- state they correspond to is not otherwise statically set by one of the -- state subsets used to create the pipeline. Additionally, setting dynamic @@ -3851,22 +3991,14 @@ instance Zero PipelineDepthStencilStateCreateInfo where -- same dynamic state /must/ also be enabled in all the other linked -- libraries to which that dynamic state applies. -- +-- __Complete Graphics Pipelines__ +-- -- A complete graphics pipeline always includes -- , --- with other subsets included depending on that state. If the --- --- includes a vertex shader, then --- --- is included in a complete graphics pipeline. If the value of --- 'PipelineRasterizationStateCreateInfo'::@rasterizerDiscardEnable@ in the --- --- is 'Vulkan.Core10.FundamentalTypes.FALSE' or the --- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE' --- dynamic state is enabled --- --- and --- --- is included in a complete graphics pipeline. +-- with other subsets included depending on that state as specified in the +-- above sections. +-- +-- __Graphics Pipeline Library Layouts__ -- -- If different subsets are linked together with pipeline layouts created -- with @@ -3886,13 +4018,19 @@ instance Zero PipelineDepthStencilStateCreateInfo where -- -- with this union. -- +-- If a +-- 'Vulkan.Extensions.VK_KHR_maintenance5.PipelineCreateFlags2CreateInfoKHR' +-- structure is present in the @pNext@ chain, +-- 'Vulkan.Extensions.VK_KHR_maintenance5.PipelineCreateFlags2CreateInfoKHR'::@flags@ +-- from that structure is used instead of @flags@ from this structure. +-- -- == Valid Usage -- -- - #VUID-VkGraphicsPipelineCreateInfo-flags-07984# If @flags@ contains -- the -- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DERIVATIVE_BIT' -- flag, and @basePipelineIndex@ is -1, @basePipelineHandle@ /must/ be --- a valid handle to a graphics 'Vulkan.Core10.Handles.Pipeline' +-- a valid graphics 'Vulkan.Core10.Handles.Pipeline' handle -- -- - #VUID-VkGraphicsPipelineCreateInfo-flags-07985# If @flags@ contains -- the @@ -3927,8 +4065,15 @@ instance Zero PipelineDepthStencilStateCreateInfo where -- is declared in a shader as an array, a descriptor slot in @layout@ -- /must/ match the descriptor count -- --- - #VUID-VkGraphicsPipelineCreateInfo-pStages-02095# If the pipeline is --- being created with +-- - #VUID-VkGraphicsPipelineCreateInfo-stage-02096# If the pipeline +-- requires +-- +-- the @stage@ member of one element of @pStages@ /must/ be +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT' or +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT' +-- +-- - #VUID-VkGraphicsPipelineCreateInfo-pStages-02095# If the pipeline +-- requires -- -- the geometric shader stages provided in @pStages@ /must/ be either -- from the mesh shading pipeline (@stage@ is @@ -3942,13 +4087,6 @@ instance Zero PipelineDepthStencilStateCreateInfo where -- or -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT') -- --- - #VUID-VkGraphicsPipelineCreateInfo-stage-02096# If the pipeline is --- being created with --- --- 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_EXT' --- -- - #VUID-VkGraphicsPipelineCreateInfo-TaskNV-07063# The shader stages -- for -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT' @@ -3958,83 +4096,115 @@ instance Zero PipelineDepthStencilStateCreateInfo where -- the @TaskEXT@ and @MeshEXT@ @Execution@ @Model@, but /must/ not use -- both -- --- - #VUID-VkGraphicsPipelineCreateInfo-pStages-00729# If the pipeline is --- being created with +-- - #VUID-VkGraphicsPipelineCreateInfo-pStages-00729# If the pipeline +-- requires -- -- and @pStages@ includes a tessellation control shader stage, it -- /must/ include a tessellation evaluation shader stage -- --- - #VUID-VkGraphicsPipelineCreateInfo-pStages-00730# If the pipeline is --- being created with +-- - #VUID-VkGraphicsPipelineCreateInfo-pStages-00730# If the pipeline +-- requires -- -- and @pStages@ includes a tessellation evaluation shader stage, it -- /must/ include a tessellation control shader stage -- --- - #VUID-VkGraphicsPipelineCreateInfo-pStages-00731# If the pipeline is --- being created with +-- - #VUID-VkGraphicsPipelineCreateInfo-pStages-09022# If the pipeline +-- requires -- --- 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 +-- and @pStages@ includes a tessellation control shader stage, and the +-- @VK_EXT_extended_dynamic_state3@ extension is not enabled or the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT' +-- dynamic state is not set, @pTessellationState@ /must/ be a valid +-- pointer to a valid 'PipelineTessellationStateCreateInfo' structure -- --- - #VUID-VkGraphicsPipelineCreateInfo-pStages-00732# If the pipeline is --- being created with +-- - #VUID-VkGraphicsPipelineCreateInfo-pTessellationState-09023# If +-- @pTessellationState@ is not @NULL@ it /must/ be a pointer to a valid +-- 'PipelineTessellationStateCreateInfo' structure +-- +-- - #VUID-VkGraphicsPipelineCreateInfo-pStages-00732# If the pipeline +-- requires -- -- and @pStages@ includes tessellation shader stages, the shader code -- of at least one stage /must/ contain an @OpExecutionMode@ -- instruction specifying the type of subdivision in the pipeline -- --- - #VUID-VkGraphicsPipelineCreateInfo-pStages-00733# If the pipeline is --- being created with +-- - #VUID-VkGraphicsPipelineCreateInfo-pStages-00733# If the pipeline +-- requires -- -- and @pStages@ includes tessellation shader stages, and the shader -- code of both stages contain an @OpExecutionMode@ instruction -- specifying the type of subdivision in the pipeline, they /must/ both -- specify the same subdivision mode -- --- - #VUID-VkGraphicsPipelineCreateInfo-pStages-00734# If the pipeline is --- being created with +-- - #VUID-VkGraphicsPipelineCreateInfo-pStages-00734# If the pipeline +-- requires -- -- and @pStages@ includes tessellation shader stages, the shader code -- of at least one stage /must/ contain an @OpExecutionMode@ -- instruction specifying the output patch size in the pipeline -- --- - #VUID-VkGraphicsPipelineCreateInfo-pStages-00735# If the pipeline is --- being created with +-- - #VUID-VkGraphicsPipelineCreateInfo-pStages-00735# If the pipeline +-- requires -- -- and @pStages@ includes tessellation shader stages, and the shader -- code of both contain an @OpExecutionMode@ instruction specifying the -- out patch size in the pipeline, they /must/ both specify the same -- patch size -- --- - #VUID-VkGraphicsPipelineCreateInfo-pStages-00736# If the pipeline is +-- - #VUID-VkGraphicsPipelineCreateInfo-pStages-08888# If the pipeline is -- being created with -- --- and @pStages@ includes tessellation shader stages, the @topology@ --- member of @pInputAssembly@ /must/ be +-- and +-- +-- and @pStages@ includes tessellation shader stages, and either +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_TOPOLOGY' +-- dynamic state is not enabled or +-- +-- is 'Vulkan.Core10.FundamentalTypes.FALSE', the @topology@ member of +-- @pInputAssembly@ /must/ be -- 'Vulkan.Core10.Enums.PrimitiveTopology.PRIMITIVE_TOPOLOGY_PATCH_LIST' -- --- - #VUID-VkGraphicsPipelineCreateInfo-topology-00737# If the pipeline +-- - #VUID-VkGraphicsPipelineCreateInfo-topology-08889# If the pipeline -- is being created with -- +-- and +-- -- and the @topology@ member of @pInputAssembly@ is -- 'Vulkan.Core10.Enums.PrimitiveTopology.PRIMITIVE_TOPOLOGY_PATCH_LIST', --- @pStages@ /must/ include tessellation shader stages --- --- - #VUID-VkGraphicsPipelineCreateInfo-Vertex-07722# If the pipeline is --- being created with a @Vertex@ @Execution@ @Model@ and no --- @TessellationEvaluation@ or @Geometry@ @Execution@ @Model@, and the --- @topology@ member of @pInputAssembly@ is --- 'Vulkan.Core10.Enums.PrimitiveTopology.PRIMITIVE_TOPOLOGY_POINT_LIST', --- a @PointSize@ decorated variable /must/ be written to +-- and either +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_TOPOLOGY' +-- dynamic state is not enabled or +-- +-- is 'Vulkan.Core10.FundamentalTypes.FALSE', then @pStages@ /must/ +-- include tessellation shader stages -- -- - #VUID-VkGraphicsPipelineCreateInfo-TessellationEvaluation-07723# If -- the pipeline is being created with a @TessellationEvaluation@ -- @Execution@ @Model@, no @Geometry@ @Execution@ @Model@, uses the -- @PointMode@ @Execution@ @Mode@, and -- --- is enabled, a @PointSize@ decorated variable /must/ be written to +-- is enabled, a @PointSize@ decorated variable /must/ be written to if +-- +-- is not enabled +-- +-- - #VUID-VkGraphicsPipelineCreateInfo-topology-08773# If the pipeline +-- is being created with a @Vertex@ @Execution@ @Model@ and no +-- @TessellationEvaluation@ or @Geometry@ @Execution@ @Model@, and the +-- @topology@ member of @pInputAssembly@ is +-- 'Vulkan.Core10.Enums.PrimitiveTopology.PRIMITIVE_TOPOLOGY_POINT_LIST', +-- and either +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_TOPOLOGY' +-- dynamic state is not enabled or +-- +-- is 'Vulkan.Core10.FundamentalTypes.FALSE', a @PointSize@ decorated +-- variable /must/ be written to if +-- +-- is not enabled +-- +-- - #VUID-VkGraphicsPipelineCreateInfo-maintenance5-08775# If +-- +-- is enabled and a @PointSize@ decorated variable is written to, all +-- execution paths /must/ write to a @PointSize@ decorated variable -- -- - #VUID-VkGraphicsPipelineCreateInfo-TessellationEvaluation-07724# If -- the pipeline is being created with a @TessellationEvaluation@ @@ -4044,12 +4214,14 @@ instance Zero PipelineDepthStencilStateCreateInfo where -- is not enabled, a @PointSize@ decorated variable /must/ not be -- written to -- --- - #VUID-VkGraphicsPipelineCreateInfo-Geometry-07725# If the pipeline --- is being created with a @Geometry@ @Execution@ @Model@, uses the --- @OutputPoints@ @Execution@ @Mode@, and +-- - #VUID-VkGraphicsPipelineCreateInfo-shaderTessellationAndGeometryPointSize-08776# +-- If the pipeline is being created with a @Geometry@ @Execution@ +-- @Model@, uses the @OutputPoints@ @Execution@ @Mode@, and -- -- is enabled, a @PointSize@ decorated variable /must/ be written to --- for every vertex emitted +-- for every vertex emitted if +-- +-- is not enabled -- -- - #VUID-VkGraphicsPipelineCreateInfo-Geometry-07726# If the pipeline -- is being created with a @Geometry@ @Execution@ @Model@, uses the @@ -4058,8 +4230,8 @@ instance Zero PipelineDepthStencilStateCreateInfo where -- is not enabled, a @PointSize@ decorated variable /must/ not be -- written to -- --- - #VUID-VkGraphicsPipelineCreateInfo-pStages-00738# If the pipeline is --- being created with +-- - #VUID-VkGraphicsPipelineCreateInfo-pStages-00738# If the pipeline +-- requires -- -- and @pStages@ includes a geometry shader stage, and does not include -- any tessellation shader stages, its shader code /must/ contain an @@ -4068,8 +4240,8 @@ instance Zero PipelineDepthStencilStateCreateInfo where -- -- with the primitive topology specified in @pInputAssembly@ -- --- - #VUID-VkGraphicsPipelineCreateInfo-pStages-00739# If the pipeline is --- being created with +-- - #VUID-VkGraphicsPipelineCreateInfo-pStages-00739# If the pipeline +-- requires -- -- and @pStages@ includes a geometry shader stage, and also includes -- tessellation shader stages, its shader code /must/ contain an @@ -4079,8 +4251,8 @@ instance Zero PipelineDepthStencilStateCreateInfo where -- with the primitive topology that is output by the tessellation -- stages -- --- - #VUID-VkGraphicsPipelineCreateInfo-pStages-00740# If the pipeline is --- being created with +-- - #VUID-VkGraphicsPipelineCreateInfo-pStages-00740# If the pipeline +-- requires -- -- and -- , @@ -4091,7 +4263,7 @@ instance Zero PipelineDepthStencilStateCreateInfo where -- execution paths -- -- - #VUID-VkGraphicsPipelineCreateInfo-PrimitiveId-06264# If the --- pipeline is being created with +-- pipeline requires -- , -- it includes a mesh shader and the fragment shader code reads from an -- input variable that is decorated with @PrimitiveId@, then the mesh @@ -4106,8 +4278,8 @@ instance Zero PipelineDepthStencilStateCreateInfo where -- is defined as 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED' in -- @subpass@ -- --- - #VUID-VkGraphicsPipelineCreateInfo-pStages-00742# If the pipeline is --- being created with +-- - #VUID-VkGraphicsPipelineCreateInfo-pStages-00742# If the pipeline +-- requires -- -- and multiple pre-rasterization shader stages are included in -- @pStages@, the shader code for the entry points identified by those @@ -4116,8 +4288,8 @@ instance Zero PipelineDepthStencilStateCreateInfo where -- -- chapter -- --- - #VUID-VkGraphicsPipelineCreateInfo-None-04889# If the pipeline is --- being created with +-- - #VUID-VkGraphicsPipelineCreateInfo-None-04889# If the pipeline +-- requires -- -- and -- , @@ -4151,27 +4323,22 @@ instance Zero PipelineDepthStencilStateCreateInfo where -- used to create @subpass@ -- -- - #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04130# If the --- pipeline is being created with +-- pipeline requires -- , --- 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', --- the @pViewports@ member of @pViewportState@ /must/ be a valid --- pointer to an array of @pViewportState->viewportCount@ valid --- 'Viewport' structures +-- and @pViewportState->pViewports@ is not dynamic, then +-- @pViewportState->pViewports@ /must/ be a valid pointer to an array +-- of @pViewportState->viewportCount@ valid 'Viewport' structures -- -- - #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04131# If the --- pipeline is being created with +-- pipeline requires -- , --- 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', --- the @pScissors@ member of @pViewportState@ /must/ be a valid pointer --- to an array of @pViewportState->scissorCount@ +-- and @pViewportState->pScissors@ is not dynamic, then +-- @pViewportState->pScissors@ /must/ be a valid pointer to an array of +-- @pViewportState->scissorCount@ -- 'Vulkan.Core10.FundamentalTypes.Rect2D' structures -- -- - #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-00749# If the --- pipeline is being created with +-- pipeline requires -- , -- and the -- @@ -4180,45 +4347,100 @@ instance Zero PipelineDepthStencilStateCreateInfo where -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_WIDTH', the -- @lineWidth@ member of @pRasterizationState@ /must/ be @1.0@ -- --- - #VUID-VkGraphicsPipelineCreateInfo-rasterizerDiscardEnable-00750# If --- the pipeline is being created with +-- - #VUID-VkGraphicsPipelineCreateInfo-rasterizerDiscardEnable-09024# If +-- the pipeline requires -- , --- and the @rasterizerDiscardEnable@ member of @pRasterizationState@ is --- 'Vulkan.Core10.FundamentalTypes.FALSE', @pViewportState@ /must/ be a --- valid pointer to a valid 'PipelineViewportStateCreateInfo' structure +-- and the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE' +-- dynamic state is enabled or the @rasterizerDiscardEnable@ member of +-- @pRasterizationState@ is 'Vulkan.Core10.FundamentalTypes.FALSE', and +-- either the @VK_EXT_extended_dynamic_state3@ extension is not +-- enabled, or either the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT' +-- or +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT' +-- dynamic states are not set, @pViewportState@ /must/ be a valid +-- pointer to a valid 'PipelineViewportStateCreateInfo' structure +-- +-- - #VUID-VkGraphicsPipelineCreateInfo-pViewportState-09025# If +-- @pViewportState@ is not @NULL@ it /must/ be a valid pointer to a +-- valid 'PipelineViewportStateCreateInfo' structure -- -- - #VUID-VkGraphicsPipelineCreateInfo-pViewportState-04892# If the --- pipeline is being created with +-- pipeline requires -- , -- and the graphics pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE' -- dynamic state enabled, @pViewportState@ /must/ be a valid pointer to -- a valid 'PipelineViewportStateCreateInfo' structure -- --- - #VUID-VkGraphicsPipelineCreateInfo-rasterizerDiscardEnable-00751# If --- the pipeline is being created with +-- - #VUID-VkGraphicsPipelineCreateInfo-pMultisampleState-09026# If the +-- pipeline requires -- , --- @pMultisampleState@ /must/ be a valid pointer to a valid +-- and the @VK_EXT_extended_dynamic_state3@ extension is not enabled or +-- any of the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT', +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_MASK_EXT', or +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT' +-- dynamic states is not set, or +-- +-- is enabled on the device and +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT' +-- is not set, @pMultisampleState@ /must/ be a valid pointer to a valid -- 'PipelineMultisampleStateCreateInfo' structure -- --- - #VUID-VkGraphicsPipelineCreateInfo-renderPass-06043# If @renderPass@ +-- - #VUID-VkGraphicsPipelineCreateInfo-pMultisampleState-09027# If +-- @pMultisampleState@ is not @NULL@ is /must/ be a valid pointer to a +-- valid 'PipelineMultisampleStateCreateInfo' structure +-- +-- - #VUID-VkGraphicsPipelineCreateInfo-alphaToCoverageEnable-08891# If +-- the pipeline is being created with +-- , +-- the 'PipelineMultisampleStateCreateInfo'::@alphaToCoverageEnable@ is +-- not ignored and is 'Vulkan.Core10.FundamentalTypes.TRUE', then the +-- +-- /must/ contain a variable for the alpha @Component@ word in +-- @Location@ 0 at @Index@ 0 +-- +-- - #VUID-VkGraphicsPipelineCreateInfo-renderPass-09028# If @renderPass@ -- is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the pipeline is -- being created with -- , --- and @subpass@ uses a depth\/stencil attachment, @pDepthStencilState@ --- /must/ be a valid pointer to a valid --- 'PipelineDepthStencilStateCreateInfo' structure --- --- - #VUID-VkGraphicsPipelineCreateInfo-renderPass-06044# If @renderPass@ +-- and @subpass@ uses a depth\/stencil attachment, and the +-- @VK_EXT_extended_dynamic_state3@ extension is not enabled or, any of +-- the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_TEST_ENABLE', +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_WRITE_ENABLE', +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_COMPARE_OP', +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE', +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_TEST_ENABLE', +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_OP', or +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS' +-- dynamic states are not set, @pDepthStencilState@ /must/ be a valid +-- pointer to a valid 'PipelineDepthStencilStateCreateInfo' structure +-- +-- - #VUID-VkGraphicsPipelineCreateInfo-pDepthStencilState-09029# If +-- @pDepthStencilState@ is not @NULL@ it /must/ be a valid pointer to a +-- valid 'PipelineDepthStencilStateCreateInfo' structure +-- +-- - #VUID-VkGraphicsPipelineCreateInfo-renderPass-09030# If @renderPass@ -- is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the pipeline is -- being created with -- , --- and @subpass@ uses color attachments, @pColorBlendState@ /must/ be a --- valid pointer to a valid 'PipelineColorBlendStateCreateInfo' --- structure +-- and @subpass@ uses color attachments, and +-- @VK_EXT_extended_dynamic_state3@ extension is not enabled, or any of +-- the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT', +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LOGIC_OP_EXT', +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT', +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT', +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_MASK_EXT', +-- or 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_BLEND_CONSTANTS' +-- dynamic states are not set, @pColorBlendState@ /must/ be a valid +-- pointer to a valid 'PipelineColorBlendStateCreateInfo' structure -- -- - #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-00754# If the --- pipeline is being created with +-- pipeline requires -- , -- the -- @@ -4230,7 +4452,7 @@ instance Zero PipelineDepthStencilStateCreateInfo where -- of @pRasterizationState@ /must/ be @0.0@ -- -- - #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-02510# If the --- pipeline is being created with +-- pipeline requires -- , -- and the @VK_EXT_depth_range_unrestricted@ extension is not enabled -- and no element of the @pDynamicStates@ member of @pDynamicState@ is @@ -4241,17 +4463,14 @@ instance Zero PipelineDepthStencilStateCreateInfo where -- @0.0@ and @1.0@, inclusive -- -- - #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-07610# If the --- pipeline is being created with +-- pipeline requires -- -- or -- , --- and no element of the @pDynamicStates@ member of @pDynamicState@ is --- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT' --- or --- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT', --- and the @sampleLocationsEnable@ member of a --- 'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT' --- structure included in the @pNext@ chain of @pMultisampleState@ is +-- and @rasterizationSamples@ and @sampleLocationsInfo@ are not +-- dynamic, and +-- 'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'::@sampleLocationsEnable@ +-- included in the @pNext@ chain of @pMultisampleState@ is -- 'Vulkan.Core10.FundamentalTypes.TRUE', -- @sampleLocationsInfo.sampleLocationGridSize.width@ /must/ evenly -- divide @@ -4261,17 +4480,14 @@ instance Zero PipelineDepthStencilStateCreateInfo where -- with a @samples@ parameter equaling @rasterizationSamples@ -- -- - #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-07611# If the --- pipeline is being created with +-- pipeline requires -- -- or -- , --- and no element of the @pDynamicStates@ member of @pDynamicState@ is --- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT' --- or --- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT', --- and the @sampleLocationsEnable@ member of a --- 'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT' --- structure included in the @pNext@ chain of @pMultisampleState@ is +-- and @rasterizationSamples@ and @sampleLocationsInfo@ are not +-- dynamic, and +-- 'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'::@sampleLocationsEnable@ +-- the included in the @pNext@ chain of @pMultisampleState@ is -- 'Vulkan.Core10.FundamentalTypes.TRUE' or -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT' -- is used, @sampleLocationsInfo.sampleLocationGridSize.height@ /must/ @@ -4282,24 +4498,21 @@ instance Zero PipelineDepthStencilStateCreateInfo where -- with a @samples@ parameter equaling @rasterizationSamples@ -- -- - #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-07612# If the --- pipeline is being created with +-- pipeline requires -- -- or -- , --- and no element of the @pDynamicStates@ member of @pDynamicState@ is --- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT' --- or --- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT', --- and the @sampleLocationsEnable@ member of a --- 'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT' --- structure included in the @pNext@ chain of @pMultisampleState@ is +-- and @rasterizationSamples@ and @sampleLocationsInfo@ are not +-- dynamic, and +-- 'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'::@sampleLocationsEnable@ +-- included in the @pNext@ chain of @pMultisampleState@ is -- 'Vulkan.Core10.FundamentalTypes.TRUE' or -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT' -- is used, @sampleLocationsInfo.sampleLocationsPerPixel@ /must/ equal -- @rasterizationSamples@ -- -- - #VUID-VkGraphicsPipelineCreateInfo-sampleLocationsEnable-01524# If --- the pipeline is being created with +-- the pipeline requires -- , -- and the @sampleLocationsEnable@ member of a -- 'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT' @@ -4309,7 +4522,7 @@ instance Zero PipelineDepthStencilStateCreateInfo where -- @InterpolateAtSample@ -- -- - #VUID-VkGraphicsPipelineCreateInfo-multisampledRenderToSingleSampled-06853# --- If the pipeline is being created with +-- If the pipeline requires -- , -- and none of the @VK_AMD_mixed_attachment_samples@ extension, the -- @VK_NV_framebuffer_mixed_samples@ extension, or the @@ -4319,8 +4532,8 @@ instance Zero PipelineDepthStencilStateCreateInfo where -- @rasterizationSamples@ member of @pMultisampleState@ /must/ be the -- same as the sample count for those subpass attachments -- --- - #VUID-VkGraphicsPipelineCreateInfo-subpass-01505# If the pipeline is --- being created with +-- - #VUID-VkGraphicsPipelineCreateInfo-subpass-01505# If the pipeline +-- requires -- , -- and the @VK_AMD_mixed_attachment_samples@ extension is enabled, -- @rasterizationSamples@ is not dynamic, and if @subpass@ uses color @@ -4341,8 +4554,8 @@ instance Zero PipelineDepthStencilStateCreateInfo where -- to -- 'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT'::@rasterizationSamples@ -- --- - #VUID-VkGraphicsPipelineCreateInfo-subpass-01411# If the pipeline is --- being created with +-- - #VUID-VkGraphicsPipelineCreateInfo-subpass-01411# If the pipeline +-- requires -- , -- the @VK_NV_framebuffer_mixed_samples@ extension is enabled, -- @rasterizationSamples@ is not dynamic, and if @subpass@ has a @@ -4351,8 +4564,8 @@ instance Zero PipelineDepthStencilStateCreateInfo where -- @pMultisampleState@ /must/ be the same as the sample count of the -- depth\/stencil attachment -- --- - #VUID-VkGraphicsPipelineCreateInfo-subpass-01412# If the pipeline is --- being created with +-- - #VUID-VkGraphicsPipelineCreateInfo-subpass-01412# If the pipeline +-- requires -- , -- the @VK_NV_framebuffer_mixed_samples@ extension is enabled, -- @rasterizationSamples@ is not dynamic, and if @subpass@ has any @@ -4361,7 +4574,7 @@ instance Zero PipelineDepthStencilStateCreateInfo where -- count for those subpass attachments -- -- - #VUID-VkGraphicsPipelineCreateInfo-coverageReductionMode-02722# If --- the pipeline is being created with +-- the pipeline requires -- , -- the @VK_NV_coverage_reduction_mode@ extension is enabled, and -- @rasterizationSamples@ is not dynamic, the coverage reduction mode @@ -4372,8 +4585,8 @@ instance Zero PipelineDepthStencilStateCreateInfo where -- subpass has them) /must/ be a valid combination returned by -- 'Vulkan.Extensions.VK_NV_coverage_reduction_mode.getPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV' -- --- - #VUID-VkGraphicsPipelineCreateInfo-subpass-00758# If the pipeline is --- being created with +-- - #VUID-VkGraphicsPipelineCreateInfo-subpass-00758# If the pipeline +-- requires -- , -- @rasterizationSamples@ is not dynamic, and @subpass@ does not use -- any color and\/or depth\/stencil attachments, then the @@ -4434,8 +4647,8 @@ instance Zero PipelineDepthStencilStateCreateInfo where -- 'Vulkan.Core11.Promoted_From_VK_KHR_device_group.PIPELINE_CREATE_DISPATCH_BASE' -- flag -- --- - #VUID-VkGraphicsPipelineCreateInfo-pStages-01565# If the pipeline is --- being created with +-- - #VUID-VkGraphicsPipelineCreateInfo-pStages-01565# If the pipeline +-- requires -- -- and an input attachment was referenced by an @aspectMask@ at -- @renderPass@ creation time, the fragment shader /must/ only read @@ -4447,7 +4660,7 @@ instance Zero PipelineDepthStencilStateCreateInfo where -- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxPerStageResources@ -- -- - #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-01715# If the --- pipeline is being created with +-- pipeline requires -- , -- and no element of the @pDynamicStates@ member of @pDynamicState@ is -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_W_SCALING_NV', @@ -4464,7 +4677,7 @@ instance Zero PipelineDepthStencilStateCreateInfo where -- structures -- -- - #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04056# If the --- pipeline is being created with +-- pipeline requires -- , -- and no element of the @pDynamicStates@ member of @pDynamicState@ is -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV', @@ -4482,7 +4695,7 @@ instance Zero PipelineDepthStencilStateCreateInfo where -- @VK_NV_scissor_exclusive@ extension -- -- - #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04057# If the --- pipeline is being created with +-- pipeline requires -- , -- and no element of the @pDynamicStates@ member of @pDynamicState@ is -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV', @@ -4494,7 +4707,7 @@ instance Zero PipelineDepthStencilStateCreateInfo where -- structures -- -- - #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04058# If the --- pipeline is being created with +-- pipeline requires -- , -- and no element of the @pDynamicStates@ member of @pDynamicState@ is -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DISCARD_RECTANGLE_EXT', @@ -4517,45 +4730,89 @@ instance Zero PipelineDepthStencilStateCreateInfo where -- /must/ support at least @specVersion@ @2@ of the -- @VK_EXT_discard_rectangles@ extension -- --- - #VUID-VkGraphicsPipelineCreateInfo-pVertexInputState-04910# If the --- pipeline is being created with +-- - #VUID-VkGraphicsPipelineCreateInfo-pStages-02097# If the pipeline +-- requires -- , --- and --- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT' is --- not set, @pVertexInputState@ /must/ be a valid pointer to a valid +-- and @pVertexInputState@ is not dynamic, then @pVertexInputState@ +-- /must/ be a valid pointer to a valid -- 'PipelineVertexInputStateCreateInfo' structure -- --- - #VUID-VkGraphicsPipelineCreateInfo-Input-07905# If the pipeline is +-- - #VUID-VkGraphicsPipelineCreateInfo-Input-07904# If the pipeline is -- being created with --- , --- and --- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT' is --- not set, then all variables with the @Input@ storage class decorated --- with @Location@ in the @Vertex@ @Execution@ @Model@ @OpEntryPoint@ --- /must/ contain a location in +-- +-- and @pVertexInputState@ is not dynamic, then all variables with the +-- @Input@ storage class decorated with @Location@ in the @Vertex@ +-- @Execution@ @Model@ @OpEntryPoint@ /must/ contain a location in -- 'VertexInputAttributeDescription'::@location@ -- --- - #VUID-VkGraphicsPipelineCreateInfo-pStages-02098# If the pipeline is --- being created with +-- - #VUID-VkGraphicsPipelineCreateInfo-Input-08733# If the pipeline +-- requires +-- +-- and @pVertexInputState@ is not dynamic, then the numeric type +-- associated with all @Input@ variables of the corresponding +-- @Location@ in the @Vertex@ @Execution@ @Model@ @OpEntryPoint@ /must/ +-- be the same as 'VertexInputAttributeDescription'::@format@ +-- +-- - #VUID-VkGraphicsPipelineCreateInfo-pVertexInputState-08929# If the +-- pipeline is being created with +-- +-- and @pVertexInputState@ is not dynamic, and +-- 'VertexInputAttributeDescription'::@format@ has a 64-bit component, +-- then the scalar width associated with all @Input@ variables of the +-- corresponding @Location@ in the @Vertex@ @Execution@ @Model@ +-- @OpEntryPoint@ /must/ be 64-bit +-- +-- - #VUID-VkGraphicsPipelineCreateInfo-pVertexInputState-08930# If the +-- pipeline is being created with +-- +-- and @pVertexInputState@ is not dynamic, and the scalar width +-- associated with a @Location@ decorated @Input@ variable in the +-- @Vertex@ @Execution@ @Model@ @OpEntryPoint@ is 64-bit, then the +-- corresponding 'VertexInputAttributeDescription'::@format@ /must/ +-- have a 64-bit component +-- +-- - #VUID-VkGraphicsPipelineCreateInfo-pVertexInputState-09198# If the +-- pipeline is being created with +-- +-- and @pVertexInputState@ is not dynamic, and +-- 'VertexInputAttributeDescription'::@format@ has a 64-bit component, +-- then all @Input@ variables at the corresponding @Location@ in the +-- @Vertex@ @Execution@ @Model@ @OpEntryPoint@ /must/ not use +-- components that are not present in the format +-- +-- - #VUID-VkGraphicsPipelineCreateInfo-dynamicPrimitiveTopologyUnrestricted-09031# +-- If the pipeline requires -- , --- @pInputAssemblyState@ /must/ be a valid pointer to a valid +-- and the @VK_EXT_extended_dynamic_state3@ extension is not enabled, +-- or either +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE', +-- or +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_TOPOLOGY' +-- dynamic states are not set, or +-- +-- is 'Vulkan.Core10.FundamentalTypes.FALSE', @pInputAssemblyState@ +-- /must/ be a valid pointer to a valid -- 'PipelineInputAssemblyStateCreateInfo' structure -- --- - #VUID-VkGraphicsPipelineCreateInfo-pStages-02317# If the pipeline is --- being created with +-- - #VUID-VkGraphicsPipelineCreateInfo-pInputAssemblyState-09032# If +-- @pInputAssemblyState@ is not @NULL@ it /must/ be a valid pointer to +-- a valid 'PipelineInputAssemblyStateCreateInfo' structure +-- +-- - #VUID-VkGraphicsPipelineCreateInfo-pStages-02317# If the pipeline +-- requires -- , -- the @Xfb@ execution mode /can/ be specified by no more than one -- shader stage in @pStages@ -- --- - #VUID-VkGraphicsPipelineCreateInfo-pStages-02318# If the pipeline is --- being created with +-- - #VUID-VkGraphicsPipelineCreateInfo-pStages-02318# If the pipeline +-- requires -- , -- and any shader stage in @pStages@ specifies @Xfb@ execution mode it -- /must/ be the last -- -- -- - #VUID-VkGraphicsPipelineCreateInfo-rasterizationStream-02319# If the --- pipeline is being created with +-- pipeline requires -- , -- and a -- 'Vulkan.Extensions.VK_EXT_transform_feedback.PipelineRasterizationStateStreamCreateInfoEXT'::@rasterizationStream@ @@ -4566,7 +4823,7 @@ instance Zero PipelineDepthStencilStateCreateInfo where -- @rasterizationStream@ -- -- - #VUID-VkGraphicsPipelineCreateInfo-rasterizationStream-02320# If the --- pipeline is being created with +-- pipeline requires -- , -- and -- 'Vulkan.Extensions.VK_EXT_transform_feedback.PipelineRasterizationStateStreamCreateInfoEXT'::@rasterizationStream@ @@ -4577,7 +4834,7 @@ instance Zero PipelineDepthStencilStateCreateInfo where -- decoration -- -- - #VUID-VkGraphicsPipelineCreateInfo-geometryStreams-02321# If the --- pipeline is being created with +-- pipeline requires -- , -- and the last -- @@ -4586,14 +4843,14 @@ instance Zero PipelineDepthStencilStateCreateInfo where -- 'Vulkan.Extensions.VK_EXT_transform_feedback.PhysicalDeviceTransformFeedbackFeaturesEXT'::@geometryStreams@ -- feature /must/ be enabled -- --- - #VUID-VkGraphicsPipelineCreateInfo-None-02322# If the pipeline is --- being created with +-- - #VUID-VkGraphicsPipelineCreateInfo-None-02322# If the pipeline +-- requires -- , -- 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 +-- the pipeline requires -- -- and at least one of -- @@ -4611,7 +4868,7 @@ instance Zero PipelineDepthStencilStateCreateInfo where -- 'Vulkan.Core10.FundamentalTypes.FALSE' -- -- - #VUID-VkGraphicsPipelineCreateInfo-stippledLineEnable-02767# If the --- pipeline is being created with +-- pipeline requires -- , -- the @stippledLineEnable@ member of -- 'Vulkan.Extensions.VK_EXT_line_rasterization.PipelineRasterizationLineStateCreateInfoEXT' @@ -4654,8 +4911,28 @@ instance Zero PipelineDepthStencilStateCreateInfo where -- include -- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV' -- +-- - #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-03378# If the +-- +-- feature is not enabled, and the value of +-- 'Vulkan.Core10.DeviceInitialization.ApplicationInfo'::@apiVersion@ +-- used to create the 'Vulkan.Core10.Handles.Instance' is less than +-- Version 1.3 there /must/ be no element of the @pDynamicStates@ +-- member of @pDynamicState@ set to +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CULL_MODE', +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRONT_FACE', +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_TOPOLOGY', +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT', +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT', +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE', +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_TEST_ENABLE', +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_WRITE_ENABLE', +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_COMPARE_OP', +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE', +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_TEST_ENABLE', +-- or 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_OP' +-- -- - #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-03379# If the --- pipeline is being created with +-- pipeline requires -- , -- and -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT' @@ -4663,7 +4940,7 @@ instance Zero PipelineDepthStencilStateCreateInfo where -- /must/ be zero -- -- - #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-03380# If the --- pipeline is being created with +-- pipeline requires -- , -- and -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT' @@ -4671,7 +4948,7 @@ instance Zero PipelineDepthStencilStateCreateInfo where -- be zero -- -- - #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04132# If the --- pipeline is being created with +-- pipeline requires -- , -- and -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT' @@ -4680,7 +4957,7 @@ instance Zero PipelineDepthStencilStateCreateInfo where -- be present -- -- - #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04133# If the --- pipeline is being created with +-- pipeline requires -- , -- and -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT' @@ -4689,7 +4966,7 @@ instance Zero PipelineDepthStencilStateCreateInfo where -- be present -- -- - #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-07065# If the --- pipeline is being created with +-- pipeline requires -- , -- and includes a mesh shader, there /must/ be no element of the -- @pDynamicStates@ member of @pDynamicState@ set to @@ -4697,6 +4974,18 @@ instance Zero PipelineDepthStencilStateCreateInfo where -- or -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE' -- +-- - #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04868# If the +-- +-- feature is not enabled, and the value of +-- 'Vulkan.Core10.DeviceInitialization.ApplicationInfo'::@apiVersion@ +-- used to create the 'Vulkan.Core10.Handles.Instance' is less than +-- Version 1.3 there /must/ be no element of the @pDynamicStates@ +-- member of @pDynamicState@ set to +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS_ENABLE', +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE', +-- or +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE' +-- -- - #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04869# If the -- -- feature is not enabled, there /must/ be no element of the @@ -4710,7 +4999,7 @@ instance Zero PipelineDepthStencilStateCreateInfo where -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT' -- -- - #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-07066# If the --- pipeline is being created with +-- pipeline requires -- , -- and includes a mesh shader, there /must/ be no element of the -- @pDynamicStates@ member of @pDynamicState@ set to @@ -4724,13 +5013,34 @@ instance Zero PipelineDepthStencilStateCreateInfo where -- -- feature /must/ be enabled -- --- - #VUID-VkGraphicsPipelineCreateInfo-flags-02966# If the pipeline is --- being created with +-- - #VUID-VkGraphicsPipelineCreateInfo-flags-02966# If the pipeline +-- requires -- -- and @flags@ includes -- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV', -- then all stages /must/ not specify @Xfb@ execution mode -- +-- - #VUID-VkGraphicsPipelineCreateInfo-libraryCount-06648# If the +-- pipeline is not created with a +-- , +-- or +-- 'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@libraryCount@ +-- is not @0@, +-- 'Vulkan.Extensions.VK_NV_device_generated_commands.GraphicsPipelineShaderGroupsCreateInfoNV'::@groupCount@ +-- and +-- 'Vulkan.Extensions.VK_NV_device_generated_commands.GraphicsPipelineShaderGroupsCreateInfoNV'::@pipelineCount@ +-- /must/ be @0@ +-- +-- - #VUID-VkGraphicsPipelineCreateInfo-libraryCount-06649# If the +-- pipeline is created with a +-- , +-- and +-- 'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@libraryCount@ +-- is @0@, and the @pNext@ chain includes an instance of +-- 'Vulkan.Extensions.VK_NV_device_generated_commands.GraphicsPipelineShaderGroupsCreateInfoNV', +-- 'Vulkan.Extensions.VK_NV_device_generated_commands.GraphicsPipelineShaderGroupsCreateInfoNV'::@groupCount@ +-- /must/ be greater than @0@ +-- -- - #VUID-VkGraphicsPipelineCreateInfo-pipelineCreationCacheControl-02878# -- If the -- @@ -4754,7 +5064,7 @@ instance Zero PipelineDepthStencilStateCreateInfo where -- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BIT_EXT' -- -- - #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04494# If the --- pipeline is being created with +-- pipeline requires -- -- or -- @@ -4765,7 +5075,7 @@ instance Zero PipelineDepthStencilStateCreateInfo where -- /must/ be greater than or equal to @1@ -- -- - #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04495# If the --- pipeline is being created with +-- pipeline requires -- -- or -- @@ -4776,7 +5086,7 @@ instance Zero PipelineDepthStencilStateCreateInfo where -- /must/ be greater than or equal to @1@ -- -- - #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04496# If the --- pipeline is being created with +-- pipeline requires -- -- or -- @@ -4787,7 +5097,7 @@ instance Zero PipelineDepthStencilStateCreateInfo where -- /must/ be a power-of-two value -- -- - #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04497# If the --- pipeline is being created with +-- pipeline requires -- -- or -- @@ -4798,7 +5108,7 @@ instance Zero PipelineDepthStencilStateCreateInfo where -- /must/ be a power-of-two value -- -- - #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04498# If the --- pipeline is being created with +-- pipeline requires -- -- or -- @@ -4809,7 +5119,7 @@ instance Zero PipelineDepthStencilStateCreateInfo where -- /must/ be less than or equal to @4@ -- -- - #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04499# If the --- pipeline is being created with +-- pipeline requires -- -- or -- @@ -4820,7 +5130,7 @@ instance Zero PipelineDepthStencilStateCreateInfo where -- /must/ be less than or equal to @4@ -- -- - #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04500# If the --- pipeline is being created with +-- pipeline requires -- -- or -- @@ -4835,7 +5145,7 @@ instance Zero PipelineDepthStencilStateCreateInfo where -- /must/ both be equal to @1@ -- -- - #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-06567# If the --- pipeline is being created with +-- pipeline requires -- -- or -- @@ -4848,7 +5158,7 @@ instance Zero PipelineDepthStencilStateCreateInfo where -- value -- -- - #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-06568# If the --- pipeline is being created with +-- pipeline requires -- -- or -- @@ -4861,7 +5171,7 @@ instance Zero PipelineDepthStencilStateCreateInfo where -- value -- -- - #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04501# If the --- pipeline is being created with +-- pipeline requires -- -- or -- @@ -4875,7 +5185,7 @@ instance Zero PipelineDepthStencilStateCreateInfo where -- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR' -- -- - #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04502# If the --- pipeline is being created with +-- pipeline requires -- -- or -- @@ -4889,7 +5199,7 @@ instance Zero PipelineDepthStencilStateCreateInfo where -- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR' -- -- - #VUID-VkGraphicsPipelineCreateInfo-primitiveFragmentShadingRateWithMultipleViewports-04503# --- If the pipeline is being created with +-- If the pipeline requires -- -- and the -- @@ -4901,7 +5211,7 @@ instance Zero PipelineDepthStencilStateCreateInfo where -- @PrimitiveShadingRateKHR@ built-in -- -- - #VUID-VkGraphicsPipelineCreateInfo-primitiveFragmentShadingRateWithMultipleViewports-04504# --- If the pipeline is being created with +-- If the pipeline requires -- -- and the -- @@ -4910,7 +5220,7 @@ instance Zero PipelineDepthStencilStateCreateInfo where -- the @PrimitiveShadingRateKHR@ built-in -- -- - #VUID-VkGraphicsPipelineCreateInfo-primitiveFragmentShadingRateWithMultipleViewports-04505# --- If the pipeline is being created with +-- If the pipeline requires -- -- and the -- @@ -4919,7 +5229,7 @@ instance Zero PipelineDepthStencilStateCreateInfo where -- to the @PrimitiveShadingRateKHR@ built-in -- -- - #VUID-VkGraphicsPipelineCreateInfo-fragmentShadingRateNonTrivialCombinerOps-04506# --- If the pipeline is being created with +-- If the pipeline requires -- -- or -- , @@ -4934,8 +5244,8 @@ instance Zero PipelineDepthStencilStateCreateInfo where -- or -- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR' -- --- - #VUID-VkGraphicsPipelineCreateInfo-None-06569# If the pipeline is --- being created with +-- - #VUID-VkGraphicsPipelineCreateInfo-None-06569# If the pipeline +-- requires -- -- and -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR' @@ -4946,7 +5256,7 @@ instance Zero PipelineDepthStencilStateCreateInfo where -- value -- -- - #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-06570# If the --- pipeline is being created with +-- pipeline requires -- -- and -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR' @@ -4957,7 +5267,7 @@ instance Zero PipelineDepthStencilStateCreateInfo where -- value -- -- - #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-06571# If the --- pipeline is being created with +-- pipeline requires -- -- and -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR' @@ -4968,7 +5278,7 @@ instance Zero PipelineDepthStencilStateCreateInfo where -- value -- -- - #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-06572# If the --- pipeline is being created with +-- pipeline requires -- -- and -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR' @@ -4979,7 +5289,7 @@ instance Zero PipelineDepthStencilStateCreateInfo where -- value -- -- - #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04569# If the --- pipeline is being created with +-- pipeline requires -- -- and -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR' @@ -4991,7 +5301,7 @@ instance Zero PipelineDepthStencilStateCreateInfo where -- 'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.FRAGMENT_SHADING_RATE_TYPE_FRAGMENT_SIZE_NV' -- -- - #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04570# If the --- pipeline is being created with +-- pipeline requires -- -- and -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR' @@ -5003,7 +5313,7 @@ instance Zero PipelineDepthStencilStateCreateInfo where -- 'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.FRAGMENT_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV' -- -- - #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04571# If the --- pipeline is being created with +-- pipeline requires -- -- and -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR' @@ -5015,7 +5325,7 @@ instance Zero PipelineDepthStencilStateCreateInfo where -- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR' -- -- - #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04572# If the --- pipeline is being created with +-- pipeline requires -- -- and -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR' @@ -5027,7 +5337,7 @@ instance Zero PipelineDepthStencilStateCreateInfo where -- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR' -- -- - #VUID-VkGraphicsPipelineCreateInfo-fragmentShadingRateNonTrivialCombinerOps-04573# --- If the pipeline is being created with +-- If the pipeline requires -- , -- and the -- @@ -5040,8 +5350,8 @@ instance Zero PipelineDepthStencilStateCreateInfo where -- or -- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR' -- --- - #VUID-VkGraphicsPipelineCreateInfo-None-04574# If the pipeline is --- being created with +-- - #VUID-VkGraphicsPipelineCreateInfo-None-04574# If the pipeline +-- requires -- , -- and the -- @@ -5054,8 +5364,8 @@ instance Zero PipelineDepthStencilStateCreateInfo where -- or -- 'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.FRAGMENT_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV' -- --- - #VUID-VkGraphicsPipelineCreateInfo-None-04575# If the pipeline is --- being created with +-- - #VUID-VkGraphicsPipelineCreateInfo-None-04575# If the pipeline +-- requires -- , -- and the -- @@ -5070,7 +5380,7 @@ instance Zero PipelineDepthStencilStateCreateInfo where -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RAY_TRACING_PIPELINE_STACK_SIZE_KHR' -- -- - #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04807# If the --- pipeline is being created with +-- pipeline requires -- -- and the -- @@ -5079,7 +5389,7 @@ instance Zero PipelineDepthStencilStateCreateInfo where -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT' -- -- - #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-07067# If the --- pipeline is being created with +-- pipeline requires -- , -- and includes a mesh shader, there /must/ be no element of the -- @pDynamicStates@ member of @pDynamicState@ set to @@ -5092,7 +5402,7 @@ instance Zero PipelineDepthStencilStateCreateInfo where -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT' -- -- - #VUID-VkGraphicsPipelineCreateInfo-rasterizationSamples-04899# If --- the pipeline is being created with +-- the pipeline requires -- , -- and the @VK_QCOM_render_pass_shader_resolve@ extension is enabled, -- @rasterizationSamples@ is not dynamic, and if subpass has any input @@ -5102,7 +5412,7 @@ instance Zero PipelineDepthStencilStateCreateInfo where -- @rasterizationSamples@ -- -- - #VUID-VkGraphicsPipelineCreateInfo-sampleShadingEnable-04900# If the --- pipeline is being created with +-- pipeline requires -- , -- and the @VK_QCOM_render_pass_shader_resolve@ extension is enabled, -- and if the subpass description contains @@ -5120,7 +5430,7 @@ instance Zero PipelineDepthStencilStateCreateInfo where -- attachment /must/ be 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED' -- -- - #VUID-VkGraphicsPipelineCreateInfo-renderPass-06575# If the pipeline --- is being created with +-- requires -- , -- , -- or @@ -5130,7 +5440,7 @@ instance Zero PipelineDepthStencilStateCreateInfo where -- -- - #VUID-VkGraphicsPipelineCreateInfo-dynamicRendering-06576# If the -- --- feature is not enabled and the pipeline is being created with +-- feature is not enabled and the pipeline requires -- , -- , -- or @@ -5139,7 +5449,7 @@ instance Zero PipelineDepthStencilStateCreateInfo where -- -- - #VUID-VkGraphicsPipelineCreateInfo-multiview-06577# If the -- --- feature is not enabled, the pipeline is being created with +-- feature is not enabled, the pipeline requires -- , -- , -- or @@ -5149,7 +5459,7 @@ instance Zero PipelineDepthStencilStateCreateInfo where -- /must/ be @0@ -- -- - #VUID-VkGraphicsPipelineCreateInfo-renderPass-06578# If the pipeline --- is being created with +-- requires -- , -- , -- or @@ -5161,7 +5471,7 @@ instance Zero PipelineDepthStencilStateCreateInfo where -- -- -- - #VUID-VkGraphicsPipelineCreateInfo-renderPass-06579# If the pipeline --- is being created with +-- requires -- , -- and @renderPass@ is 'Vulkan.Core10.APIConstants.NULL_HANDLE', and -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@colorAttachmentCount@ @@ -5171,7 +5481,7 @@ instance Zero PipelineDepthStencilStateCreateInfo where -- valid 'Vulkan.Core10.Enums.Format.Format' values -- -- - #VUID-VkGraphicsPipelineCreateInfo-renderPass-06580# If the pipeline --- is being created with +-- requires -- , -- and @renderPass@ is 'Vulkan.Core10.APIConstants.NULL_HANDLE', each -- element of @@ -5179,7 +5489,7 @@ instance Zero PipelineDepthStencilStateCreateInfo where -- /must/ be a valid 'Vulkan.Core10.Enums.Format.Format' value -- -- - #VUID-VkGraphicsPipelineCreateInfo-renderPass-06582# If the pipeline --- is being created with +-- requires -- , -- @renderPass@ is 'Vulkan.Core10.APIConstants.NULL_HANDLE', and any -- element of @@ -5193,21 +5503,21 @@ instance Zero PipelineDepthStencilStateCreateInfo where -- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV' -- -- - #VUID-VkGraphicsPipelineCreateInfo-renderPass-06583# If the pipeline --- is being created with +-- requires -- , -- and @renderPass@ is 'Vulkan.Core10.APIConstants.NULL_HANDLE', -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@ -- /must/ be a valid 'Vulkan.Core10.Enums.Format.Format' value -- -- - #VUID-VkGraphicsPipelineCreateInfo-renderPass-06584# If the pipeline --- is being created with +-- requires -- , -- and @renderPass@ is 'Vulkan.Core10.APIConstants.NULL_HANDLE', -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@ -- /must/ be a valid 'Vulkan.Core10.Enums.Format.Format' value -- -- - #VUID-VkGraphicsPipelineCreateInfo-renderPass-06585# If the pipeline --- is being created with +-- requires -- , -- @renderPass@ is 'Vulkan.Core10.APIConstants.NULL_HANDLE', and -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@ @@ -5218,7 +5528,7 @@ instance Zero PipelineDepthStencilStateCreateInfo where -- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT' -- -- - #VUID-VkGraphicsPipelineCreateInfo-renderPass-06586# If the pipeline --- is being created with +-- requires -- , -- @renderPass@ is 'Vulkan.Core10.APIConstants.NULL_HANDLE', and -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@ @@ -5229,7 +5539,7 @@ instance Zero PipelineDepthStencilStateCreateInfo where -- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT' -- -- - #VUID-VkGraphicsPipelineCreateInfo-renderPass-06587# If the pipeline --- is being created with +-- requires -- , -- @renderPass@ is 'Vulkan.Core10.APIConstants.NULL_HANDLE', and -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@ @@ -5237,7 +5547,7 @@ instance Zero PipelineDepthStencilStateCreateInfo where -- format that includes a depth component -- -- - #VUID-VkGraphicsPipelineCreateInfo-renderPass-06588# If the pipeline --- is being created with +-- requires -- , -- @renderPass@ is 'Vulkan.Core10.APIConstants.NULL_HANDLE', and -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@ @@ -5245,7 +5555,7 @@ instance Zero PipelineDepthStencilStateCreateInfo where -- format that includes a stencil component -- -- - #VUID-VkGraphicsPipelineCreateInfo-renderPass-06589# If the pipeline --- is being created with +-- requires -- , -- @renderPass@ is 'Vulkan.Core10.APIConstants.NULL_HANDLE', -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@ @@ -5254,7 +5564,7 @@ instance Zero PipelineDepthStencilStateCreateInfo where -- is not 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED', -- @depthAttachmentFormat@ /must/ equal @stencilAttachmentFormat@ -- --- - #VUID-VkGraphicsPipelineCreateInfo-renderPass-06053# If @renderPass@ +-- - #VUID-VkGraphicsPipelineCreateInfo-renderPass-09033# If @renderPass@ -- is 'Vulkan.Core10.APIConstants.NULL_HANDLE', the pipeline is being -- created with -- @@ -5264,31 +5574,69 @@ instance Zero PipelineDepthStencilStateCreateInfo where -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@ -- or -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@ --- are not 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED', --- @pDepthStencilState@ /must/ be a valid pointer to a valid --- 'PipelineDepthStencilStateCreateInfo' structure --- --- - #VUID-VkGraphicsPipelineCreateInfo-renderPass-06590# If @renderPass@ +-- are not 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED', and the +-- @VK_EXT_extended_dynamic_state3@ extension is not enabled or any of +-- the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_TEST_ENABLE', +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_WRITE_ENABLE', +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_COMPARE_OP', +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE', +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_TEST_ENABLE', +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_OP', or +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS' +-- dynamic states are not set, @pDepthStencilState@ /must/ be a valid +-- pointer to a valid 'PipelineDepthStencilStateCreateInfo' structure +-- +-- - #VUID-VkGraphicsPipelineCreateInfo-pDepthStencilState-09034# If +-- @pDepthStencilState@ is not @NULL@ it /must/ be a valid pointer to a +-- valid 'PipelineDepthStencilStateCreateInfo' structure +-- +-- - #VUID-VkGraphicsPipelineCreateInfo-renderPass-09035# If @renderPass@ -- is 'Vulkan.Core10.APIConstants.NULL_HANDLE' and the pipeline is -- being created with -- -- but not -- , --- @pDepthStencilState@ /must/ be a valid pointer to a valid --- 'PipelineDepthStencilStateCreateInfo' structure --- --- - #VUID-VkGraphicsPipelineCreateInfo-renderPass-06054# If @renderPass@ +-- and the @VK_EXT_extended_dynamic_state3@ extension is not enabled, +-- or any of the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_TEST_ENABLE', +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_WRITE_ENABLE', +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_COMPARE_OP', +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE', +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_TEST_ENABLE', +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_OP', or +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS' +-- dynamic states are not set, @pDepthStencilState@ /must/ be a valid +-- pointer to a valid 'PipelineDepthStencilStateCreateInfo' structure +-- +-- - #VUID-VkGraphicsPipelineCreateInfo-pDepthStencilState-09036# If +-- @pDepthStencilState@ is not @NULL@ it /must/ be a valid pointer to a +-- valid 'PipelineDepthStencilStateCreateInfo' structure +-- +-- - #VUID-VkGraphicsPipelineCreateInfo-renderPass-09037# If @renderPass@ -- is 'Vulkan.Core10.APIConstants.NULL_HANDLE', the pipeline is being -- created with -- , -- and -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@colorAttachmentCount@ --- is not equal to @0@, @pColorBlendState@ /must/ be a valid pointer to --- a valid 'PipelineColorBlendStateCreateInfo' structure +-- is not equal to @0@, and the @VK_EXT_extended_dynamic_state3@ +-- extension is not enabled, or any of the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT', +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LOGIC_OP_EXT', +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT', +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT', +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_MASK_EXT', +-- or 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_BLEND_CONSTANTS' +-- dynamic states are not set, @pColorBlendState@ /must/ be a valid +-- pointer to a valid 'PipelineColorBlendStateCreateInfo' structure +-- +-- - #VUID-VkGraphicsPipelineCreateInfo-pColorBlendState-09038# If +-- @pColorBlendState@ is not @NULL@ it /must/ be a valid pointer to a +-- valid 'PipelineColorBlendStateCreateInfo' structure -- -- - #VUID-VkGraphicsPipelineCreateInfo-renderPass-06055# If @renderPass@ --- is 'Vulkan.Core10.APIConstants.NULL_HANDLE' and the pipeline is --- being created with +-- is 'Vulkan.Core10.APIConstants.NULL_HANDLE', @pColorBlendState@ is +-- not dynamic, and the pipeline is being created with -- , -- @pColorBlendState->attachmentCount@ /must/ be equal to -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@colorAttachmentCount@ @@ -5352,14 +5700,14 @@ instance Zero PipelineDepthStencilStateCreateInfo where -- /must/ not include a mesh shader -- -- - #VUID-VkGraphicsPipelineCreateInfo-renderPass-06061# If the pipeline --- is being created with +-- requires -- -- and @renderPass@ is 'Vulkan.Core10.APIConstants.NULL_HANDLE', -- fragment shaders in @pStages@ /must/ not include the -- @InputAttachment@ capability -- -- - #VUID-VkGraphicsPipelineCreateInfo-renderPass-08710# If the pipeline --- is being created with +-- requires -- -- and @renderPass@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', -- fragment shaders in @pStages@ /must/ not include any of the @@ -5367,7 +5715,7 @@ instance Zero PipelineDepthStencilStateCreateInfo where -- @TileImageStencilReadAccessEXT@ capabilities -- -- - #VUID-VkGraphicsPipelineCreateInfo-renderPass-06062# If the pipeline --- is being created with +-- requires -- -- and @renderPass@ is 'Vulkan.Core10.APIConstants.NULL_HANDLE', for -- each color attachment format defined by the @@ -5382,7 +5730,7 @@ instance Zero PipelineDepthStencilStateCreateInfo where -- 'Vulkan.Core10.FundamentalTypes.FALSE' -- -- - #VUID-VkGraphicsPipelineCreateInfo-renderPass-06063# If the pipeline --- is being created with +-- requires -- -- and @renderPass@ is 'Vulkan.Core10.APIConstants.NULL_HANDLE', if the -- @pNext@ chain includes @@ -5401,16 +5749,16 @@ instance Zero PipelineDepthStencilStateCreateInfo where -- or -- 'Vulkan.Core10.Enums.PipelineDepthStencilStateCreateFlagBits.PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT' -- --- - #VUID-VkGraphicsPipelineCreateInfo-flags-06482# If the pipeline is --- being created with +-- - #VUID-VkGraphicsPipelineCreateInfo-flags-06482# If the pipeline +-- requires -- -- and the @flags@ member of 'PipelineColorBlendStateCreateInfo' -- includes -- 'Vulkan.Core10.Enums.PipelineColorBlendStateCreateFlagBits.PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT', -- @renderpass@ /must/ not be 'Vulkan.Core10.APIConstants.NULL_HANDLE' -- --- - #VUID-VkGraphicsPipelineCreateInfo-flags-06483# If the pipeline is --- being created with +-- - #VUID-VkGraphicsPipelineCreateInfo-flags-06483# If the pipeline +-- requires -- -- and the @flags@ member of 'PipelineDepthStencilStateCreateInfo' -- includes @@ -5439,8 +5787,8 @@ instance Zero PipelineDepthStencilStateCreateInfo where -- is not 0, it /must/ be a valid -- 'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlagBits' value -- --- - #VUID-VkGraphicsPipelineCreateInfo-flags-06484# If the pipeline is --- being created with +-- - #VUID-VkGraphicsPipelineCreateInfo-flags-06484# If the pipeline +-- requires -- -- and the @flags@ member of 'PipelineColorBlendStateCreateInfo' -- includes @@ -5448,18 +5796,18 @@ instance Zero PipelineDepthStencilStateCreateInfo where -- @subpass@ /must/ have been created with -- 'Vulkan.Core10.Enums.SubpassDescriptionFlagBits.SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_EXT' -- --- - #VUID-VkGraphicsPipelineCreateInfo-flags-06485# If the pipeline is --- being created with --- +-- - #VUID-VkGraphicsPipelineCreateInfo-flags-06485# If the pipeline +-- requires +-- -- and the @flags@ member of 'PipelineDepthStencilStateCreateInfo' -- includes -- 'Vulkan.Core10.Enums.PipelineDepthStencilStateCreateFlagBits.PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT', -- @subpass@ /must/ have been created with -- 'Vulkan.Core10.Enums.SubpassDescriptionFlagBits.SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT' -- --- - #VUID-VkGraphicsPipelineCreateInfo-flags-06486# If the pipeline is --- being created with --- +-- - #VUID-VkGraphicsPipelineCreateInfo-flags-06486# If the pipeline +-- requires +-- -- and the @flags@ member of 'PipelineDepthStencilStateCreateInfo' -- includes -- 'Vulkan.Core10.Enums.PipelineDepthStencilStateCreateFlagBits.PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT', @@ -5529,21 +5877,65 @@ instance Zero PipelineDepthStencilStateCreateInfo where -- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.MultiviewPerViewAttributesInfoNVX'::@perViewAttributesPositionXOnly@ -- specified in both libraries /must/ be equal -- +-- - #VUID-VkGraphicsPipelineCreateInfo-pStages-06600# If the pipeline +-- requires +-- +-- or +-- , +-- @pStages@ /must/ be a valid pointer to an array of @stageCount@ +-- valid 'PipelineShaderStageCreateInfo' structures +-- +-- - #VUID-VkGraphicsPipelineCreateInfo-pRasterizationState-09039# If the +-- @VK_EXT_extended_dynamic_state3@ extension is not enabled, or any of +-- the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT', +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_MASK_EXT', or +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT' +-- dynamic states are not set, or +-- +-- is enabled on the device and +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT' +-- is not set, then @pMultisampleState@ /must/ be a valid pointer to a +-- valid 'PipelineMultisampleStateCreateInfo' structure +-- +-- - #VUID-VkGraphicsPipelineCreateInfo-pRasterizationState-09040# If +-- @pRasterizationState@ is not @NULL@ it /must/ be a valid pointer to +-- a valid 'PipelineRasterizationStateCreateInfo' structure +-- +-- - #VUID-VkGraphicsPipelineCreateInfo-layout-06602# If the pipeline +-- requires +-- +-- or +-- , +-- @layout@ /must/ be a valid 'Vulkan.Core10.Handles.PipelineLayout' +-- handle +-- +-- - #VUID-VkGraphicsPipelineCreateInfo-renderPass-06603# If +-- , +-- , +-- or +-- , +-- and @renderPass@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', +-- @renderPass@ /must/ be a valid 'Vulkan.Core10.Handles.RenderPass' +-- handle +-- +-- - #VUID-VkGraphicsPipelineCreateInfo-stageCount-06604# If the pipeline +-- requires +-- +-- or +-- , +-- @stageCount@ /must/ be greater than @0@ +-- -- - #VUID-VkGraphicsPipelineCreateInfo-graphicsPipelineLibrary-06606# If -- the -- -- feature is not enabled, @flags@ /must/ not include -- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_LIBRARY_BIT_KHR' -- --- - #VUID-VkGraphicsPipelineCreateInfo-graphicsPipelineLibrary-06607# If --- the --- --- feature is not enabled, the pipeline /must/ be created with a --- --- --- - #VUID-VkGraphicsPipelineCreateInfo-flags-06608# If the pipeline is --- being created with --- , +-- - #VUID-VkGraphicsPipelineCreateInfo-flags-06608# If the pipeline +-- defines, or includes as libraries, all the state subsets required +-- for a +-- , -- @flags@ /must/ not include -- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_LIBRARY_BIT_KHR' -- @@ -5554,6 +5946,11 @@ instance Zero PipelineDepthStencilStateCreateInfo where -- /must/ have been created with -- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT' -- +-- - #VUID-VkGraphicsPipelineCreateInfo-flags-09245# If @flags@ includes +-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT', +-- @flags@ /must/ also include +-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_LIBRARY_BIT_KHR' +-- -- - #VUID-VkGraphicsPipelineCreateInfo-flags-06610# If @flags@ includes -- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT', -- pipeline libraries included via @@ -5795,7 +6192,7 @@ instance Zero PipelineDepthStencilStateCreateInfo where -- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GraphicsPipelineLibraryCreateInfoEXT'::@flags@ -- includes -- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT' --- and @pRasterizationState@->@rasterizerDiscardEnable@ is +-- and @pRasterizationState->rasterizerDiscardEnable@ is -- 'Vulkan.Core10.FundamentalTypes.TRUE', @layout@ /must/ have been -- created with no elements of the @pSetLayouts@ array set to -- 'Vulkan.Core10.APIConstants.NULL_HANDLE' @@ -5898,19 +6295,19 @@ instance Zero PipelineDepthStencilStateCreateInfo where -- 'Vulkan.Core10.APIConstants.NULL_HANDLE' -- -- - #VUID-VkGraphicsPipelineCreateInfo-pMultisampleState-06629# If the --- pipeline is being created with +-- pipeline requires -- -- @pMultisampleState@ /must/ be @NULL@ or a valid pointer to a valid -- 'PipelineMultisampleStateCreateInfo' structure -- -- - #VUID-VkGraphicsPipelineCreateInfo-renderpass-06631# If the pipeline --- is being created with +-- requires -- -- and @renderpass@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', -- then @pMultisampleState@ /must/ not be @NULL@ -- --- - #VUID-VkGraphicsPipelineCreateInfo-Input-06632# If the pipeline is --- being created with +-- - #VUID-VkGraphicsPipelineCreateInfo-Input-06632# If the pipeline +-- requires -- -- with a fragment shader that either enables -- @@ -6010,12 +6407,25 @@ instance Zero PipelineDepthStencilStateCreateInfo where -- @pStages@ /must/ be a valid pointer to an array of @stageCount@ -- valid 'PipelineShaderStageCreateInfo' structures -- --- - #VUID-VkGraphicsPipelineCreateInfo-flags-06641# If +-- - #VUID-VkGraphicsPipelineCreateInfo-flags-09041# If -- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GraphicsPipelineLibraryCreateInfoEXT'::@flags@ -- includes -- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT', --- @pRasterizationState@ /must/ be a valid pointer to a valid --- 'PipelineRasterizationStateCreateInfo' structure +-- and the @VK_EXT_extended_dynamic_state3@ extension is not enabled, +-- or any of the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT', +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_MASK_EXT', or +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT' +-- dynamic states are not set, or +-- +-- is enabled on the device and +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT' +-- is not set, @pMultisampleState@ /must/ be a valid pointer to a valid +-- 'PipelineMultisampleStateCreateInfo' structure +-- +-- - #VUID-VkGraphicsPipelineCreateInfo-pRasterizationState-09042# If +-- @pRasterizationState@ is not @NULL@ it /must/ be a valid pointer to +-- a valid 'PipelineRasterizationStateCreateInfo' structure -- -- - #VUID-VkGraphicsPipelineCreateInfo-flags-06642# If -- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GraphicsPipelineLibraryCreateInfoEXT'::@flags@ @@ -6068,31 +6478,13 @@ instance Zero PipelineDepthStencilStateCreateInfo where -- @flags@ /must/ include -- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR' -- --- - #VUID-VkGraphicsPipelineCreateInfo-libraryCount-06648# If the --- pipeline is not created with a --- , --- or --- 'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@libraryCount@ --- is not @0@, --- 'Vulkan.Extensions.VK_NV_device_generated_commands.GraphicsPipelineShaderGroupsCreateInfoNV'::@groupCount@ --- and --- 'Vulkan.Extensions.VK_NV_device_generated_commands.GraphicsPipelineShaderGroupsCreateInfoNV'::@pipelineCount@ --- /must/ be @0@ --- --- - #VUID-VkGraphicsPipelineCreateInfo-libraryCount-06649# If the --- pipeline is created with a --- , --- 'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@libraryCount@ --- is @0@, and the @pNext@ chain includes an instance of --- 'Vulkan.Extensions.VK_NV_device_generated_commands.GraphicsPipelineShaderGroupsCreateInfoNV', --- 'Vulkan.Extensions.VK_NV_device_generated_commands.GraphicsPipelineShaderGroupsCreateInfoNV'::@groupCount@ --- /must/ be greater than @0@ --- -- - #VUID-VkGraphicsPipelineCreateInfo-None-07826# If the pipeline -- includes a -- , --- 'Vulkan.Core10.Handles.PipelineLayout' /must/ be a valid pipeline --- layout +-- and there are no libraries included in +-- 'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR'::@pLibraries@, +-- then 'Vulkan.Core10.Handles.PipelineLayout' /must/ be a valid +-- pipeline layout -- -- - #VUID-VkGraphicsPipelineCreateInfo-layout-07827# If the pipeline -- includes a @@ -6129,7 +6521,7 @@ instance Zero PipelineDepthStencilStateCreateInfo where -- -- with the union of the libraries\' pipeline layouts -- --- - #VUID-VkGraphicsPipelineCreateInfo-conservativePointAndLineRasterization-06759# +-- - #VUID-VkGraphicsPipelineCreateInfo-conservativePointAndLineRasterization-08892# -- If -- -- is not supported; the pipeline is being created with @@ -6142,7 +6534,11 @@ instance Zero PipelineDepthStencilStateCreateInfo where -- 'Vulkan.Core10.Enums.PrimitiveTopology.PRIMITIVE_TOPOLOGY_LINE_LIST', -- or -- 'Vulkan.Core10.Enums.PrimitiveTopology.PRIMITIVE_TOPOLOGY_LINE_STRIP', --- then +-- and either +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_TOPOLOGY' +-- dynamic state is not enabled or +-- +-- is 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Extensions.VK_EXT_conservative_rasterization.PipelineRasterizationConservativeStateCreateInfoEXT'::@conservativeRasterizationMode@ -- /must/ be -- 'Vulkan.Extensions.VK_EXT_conservative_rasterization.CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT' @@ -6150,7 +6546,7 @@ instance Zero PipelineDepthStencilStateCreateInfo where -- - #VUID-VkGraphicsPipelineCreateInfo-conservativePointAndLineRasterization-06760# -- If -- --- is not supported, the pipeline is being created with +-- is not supported, the pipeline requires -- , -- and the pipeline includes a geometry shader with either the -- @OutputPoints@ or @OutputLineStrip@ execution modes, @@ -6161,7 +6557,7 @@ instance Zero PipelineDepthStencilStateCreateInfo where -- - #VUID-VkGraphicsPipelineCreateInfo-conservativePointAndLineRasterization-06761# -- If -- --- is not supported, the pipeline is being created with +-- is not supported, the pipeline requires -- , -- and the pipeline includes a mesh shader with either the -- @OutputPoints@ or @OutputLinesNV@ execution modes, @@ -6169,24 +6565,24 @@ instance Zero PipelineDepthStencilStateCreateInfo where -- /must/ be -- 'Vulkan.Extensions.VK_EXT_conservative_rasterization.CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT' -- --- - #VUID-VkGraphicsPipelineCreateInfo-pStages-06894# If the pipeline is --- being created with +-- - #VUID-VkGraphicsPipelineCreateInfo-pStages-06894# If the pipeline +-- requires -- -- but not -- , -- elements of @pStages@ /must/ not have @stage@ set to -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' -- --- - #VUID-VkGraphicsPipelineCreateInfo-pStages-06895# If the pipeline is --- being created with +-- - #VUID-VkGraphicsPipelineCreateInfo-pStages-06895# If the pipeline +-- requires -- -- but not -- , -- elements of @pStages@ /must/ not have @stage@ set to a shader stage -- which participates in pre-rasterization -- --- - #VUID-VkGraphicsPipelineCreateInfo-pStages-06896# If the pipeline is --- being created with +-- - #VUID-VkGraphicsPipelineCreateInfo-pStages-06896# If the pipeline +-- requires -- , -- all elements of @pStages@ /must/ have a @stage@ set to a shader -- stage which participates in @@ -6194,8 +6590,8 @@ instance Zero PipelineDepthStencilStateCreateInfo where -- or -- -- --- - #VUID-VkGraphicsPipelineCreateInfo-stage-06897# If the pipeline is --- being created with +-- - #VUID-VkGraphicsPipelineCreateInfo-stage-06897# If the pipeline +-- requires -- -- and\/or -- , @@ -6428,7 +6824,7 @@ instance Zero PipelineDepthStencilStateCreateInfo where -- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_DISPLACEMENT_MICROMAP_BIT_NV' -- -- - #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-07730# If the --- pipeline is being created with +-- pipeline requires -- , -- and no element of the @pDynamicStates@ member of @pDynamicState@ is -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT' or @@ -6441,7 +6837,7 @@ instance Zero PipelineDepthStencilStateCreateInfo where -- /must/ be less than @pViewportState@::@viewportCount@ -- -- - #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-07731# If the --- pipeline is being created with +-- pipeline requires -- , -- and no element of the @pDynamicStates@ member of @pDynamicState@ is -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR' or @@ -6468,9 +6864,281 @@ instance Zero PipelineDepthStencilStateCreateInfo where -- is not set in 'PipelineDynamicStateCreateInfo'::@pDynamicStates@, -- and the fragment shader declares the @EarlyFragmentTests@ execution -- mode and uses @OpStencilAttachmentReadEXT@, the value of --- slink::VkStencilOpState::@writeMask@ for both @front@ and @back@ in +-- 'StencilOpState'::@writeMask@ for both @front@ and @back@ in -- 'PipelineDepthStencilStateCreateInfo' /must/ be @0@ -- +-- - #VUID-VkGraphicsPipelineCreateInfo-renderPass-08744# If @renderPass@ +-- is 'Vulkan.Core10.APIConstants.NULL_HANDLE', the pipeline requires +-- +-- or +-- , +-- the pipeline enables +-- , +-- @rasterizationSamples@ is not dynamic, and the @pNext@ chain +-- includes a +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo' +-- structure, @rasterizationSamples@ /must/ be a bit value that is set +-- in @imageCreateSampleCounts@ (as defined in +-- ) +-- for every element of @depthAttachmentFormat@, +-- @stencilAttachmentFormat@ and the @pColorAttachmentFormats@ array +-- which is not 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' +-- +-- - #VUID-VkGraphicsPipelineCreateInfo-flags-08897# If +-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GraphicsPipelineLibraryCreateInfoEXT'::@flags@ +-- includes +-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_VERTEX_INPUT_INTERFACE_BIT_EXT', +-- +-- is specified either in a library or by the inclusion of +-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT', +-- and that state includes a vertex shader stage in @pStages@, the +-- pipeline /must/ define +-- +-- +-- - #VUID-VkGraphicsPipelineCreateInfo-flags-08898# If +-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GraphicsPipelineLibraryCreateInfoEXT'::@flags@ +-- includes +-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_VERTEX_INPUT_INTERFACE_BIT_EXT', +-- and +-- +-- is not specified, the pipeline /must/ define +-- +-- +-- - #VUID-VkGraphicsPipelineCreateInfo-flags-08899# If @flags@ does not +-- include +-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_LIBRARY_BIT_KHR', +-- +-- is specified either in a library or by the inclusion of +-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT', +-- and that state includes a vertex shader stage in @pStages@, the +-- pipeline /must/ either define +-- +-- or include that state in a linked pipeline library +-- +-- - #VUID-VkGraphicsPipelineCreateInfo-flags-08900# If +-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GraphicsPipelineLibraryCreateInfoEXT'::@flags@ +-- includes +-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT' +-- the pipeline /must/ define +-- +-- +-- - #VUID-VkGraphicsPipelineCreateInfo-flags-08901# If @flags@ does not +-- include +-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_LIBRARY_BIT_KHR', +-- the pipeline /must/ either define +-- +-- or include that state in a linked pipeline library +-- +-- - #VUID-VkGraphicsPipelineCreateInfo-flags-08903# If +-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GraphicsPipelineLibraryCreateInfoEXT'::@flags@ +-- includes +-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT', +-- +-- is specified either in a library or by the inclusion of +-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT', +-- and that state either includes +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE' +-- or has @pRasterizationState->rasterizerDiscardEnable@ set to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', the pipeline /must/ define +-- +-- +-- - #VUID-VkGraphicsPipelineCreateInfo-flags-08904# If +-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GraphicsPipelineLibraryCreateInfoEXT'::@flags@ +-- includes +-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT', +-- and +-- +-- is not specified, the pipeline /must/ define +-- +-- +-- - #VUID-VkGraphicsPipelineCreateInfo-flags-08906# If +-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GraphicsPipelineLibraryCreateInfoEXT'::@flags@ +-- includes +-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT', +-- +-- is specified either in a library or by the inclusion of +-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT', +-- and that state either includes +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE' +-- or has @pRasterizationState->rasterizerDiscardEnable@ set to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', the pipeline /must/ define +-- +-- +-- - #VUID-VkGraphicsPipelineCreateInfo-flags-08907# If +-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GraphicsPipelineLibraryCreateInfoEXT'::@flags@ +-- includes +-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT', +-- and +-- +-- is not specified, the pipeline /must/ define +-- +-- +-- - #VUID-VkGraphicsPipelineCreateInfo-None-09043# If +-- @pDynamicState->pDynamicStates@ does not include +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_MASK_EXT', +-- and the format of any color attachment is +-- 'Vulkan.Core10.Enums.Format.FORMAT_E5B9G9R9_UFLOAT_PACK32', the +-- @colorWriteMask@ member of the corresponding element of +-- @pColorBlendState->pAttachments@ /must/ either include all of +-- 'Vulkan.Core10.Enums.ColorComponentFlagBits.COLOR_COMPONENT_R_BIT', +-- 'Vulkan.Core10.Enums.ColorComponentFlagBits.COLOR_COMPONENT_G_BIT', +-- and +-- 'Vulkan.Core10.Enums.ColorComponentFlagBits.COLOR_COMPONENT_B_BIT', +-- or none of them +-- +-- - #VUID-VkGraphicsPipelineCreateInfo-externalFormatResolve-09301# If +-- the +-- +-- feature is enabled, the pipeline requires +-- , +-- @renderPass@ is 'Vulkan.Core10.APIConstants.NULL_HANDLE', and +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- is not @0@, +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@viewMask@ +-- /must/ be @0@ +-- +-- - #VUID-VkGraphicsPipelineCreateInfo-externalFormatResolve-09304# If +-- the +-- +-- feature is enabled, the pipeline requires +-- , +-- @renderPass@ is 'Vulkan.Core10.APIConstants.NULL_HANDLE', +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- is not @0@, and @rasterizationSamples@ is not dynamic, +-- 'PipelineMultisampleStateCreateInfo'::@rasterizationSamples@ /must/ +-- be @1@ +-- +-- - #VUID-VkGraphicsPipelineCreateInfo-externalFormatResolve-09305# If +-- the +-- +-- feature is enabled, the pipeline requires +-- , +-- @renderPass@ is 'Vulkan.Core10.APIConstants.NULL_HANDLE', and +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- is not @0@, and @blendEnable@ is not dynamic, the @blendEnable@ +-- member of each element of @pColorBlendState->pAttachments@ /must/ be +-- 'Vulkan.Core10.FundamentalTypes.FALSE' +-- +-- - #VUID-VkGraphicsPipelineCreateInfo-externalFormatResolve-09306# If +-- the +-- +-- feature is enabled, the pipeline requires +-- , +-- @renderPass@ is 'Vulkan.Core10.APIConstants.NULL_HANDLE', and +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- is not @0@, and @pDynamicState->pDynamicStates@ does not include +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR', +-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PipelineFragmentShadingRateStateCreateInfoKHR'::@width@ +-- /must/ be @1@ +-- +-- - #VUID-VkGraphicsPipelineCreateInfo-externalFormatResolve-09307# If +-- the +-- +-- feature is enabled, the pipeline requires +-- , +-- @renderPass@ is 'Vulkan.Core10.APIConstants.NULL_HANDLE', and +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- is not @0@, and @pDynamicState->pDynamicStates@ does not include +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR', +-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PipelineFragmentShadingRateStateCreateInfoKHR'::@height@ +-- /must/ be @1@ +-- +-- - #VUID-VkGraphicsPipelineCreateInfo-externalFormatResolve-09308# If +-- the +-- +-- feature is enabled, the pipeline requires +-- +-- and +-- , +-- @renderPass@ is 'Vulkan.Core10.APIConstants.NULL_HANDLE', and +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- is not @0@, the last +-- +-- /must/ not statically use a variable with the +-- @PrimitiveShadingRateKHR@ built-in +-- +-- - #VUID-VkGraphicsPipelineCreateInfo-externalFormatResolve-09309# If +-- the +-- +-- feature is enabled, the pipeline requires +-- , +-- @renderPass@ is 'Vulkan.Core10.APIConstants.NULL_HANDLE', and +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- is not @0@, +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@colorAttachmentCount@ +-- /must/ be @1@ +-- +-- - #VUID-VkGraphicsPipelineCreateInfo-externalFormatResolve-09310# If +-- the +-- +-- feature is enabled, the pipeline requires +-- +-- and +-- , +-- @renderPass@ is 'Vulkan.Core10.APIConstants.NULL_HANDLE', and +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- is not @0@, the fragment shader /must/ not declare the +-- @DepthReplacing@ or @StencilRefReplacingEXT@ execution modes +-- +-- - #VUID-VkGraphicsPipelineCreateInfo-externalFormatResolve-09313# If +-- the +-- +-- feature is enabled, the pipeline requires +-- , +-- @renderPass@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', +-- @subpass@ includes an external format resolve attachment, and +-- @rasterizationSamples@ is not dynamic,, +-- 'PipelineMultisampleStateCreateInfo'::@rasterizationSamples@ /must/ +-- be 'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT' +-- +-- - #VUID-VkGraphicsPipelineCreateInfo-externalFormatResolve-09314# If +-- the +-- +-- feature is enabled, the pipeline requires +-- , +-- @renderPass@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', +-- @subpass@ includes an external format resolve attachment, and +-- @blendEnable@ is not dynamic, the @blendEnable@ member of each +-- element of @pColorBlendState->pAttachments@ /must/ be +-- 'Vulkan.Core10.FundamentalTypes.FALSE' +-- +-- - #VUID-VkGraphicsPipelineCreateInfo-externalFormatResolve-09315# If +-- the +-- +-- feature is enabled, the pipeline requires +-- , +-- @renderPass@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', +-- @subpass@ includes an external format resolve attachment, and +-- @pDynamicState->pDynamicStates@ does not include +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR', +-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PipelineFragmentShadingRateStateCreateInfoKHR'::@width@ +-- /must/ be @1@ +-- +-- - #VUID-VkGraphicsPipelineCreateInfo-externalFormatResolve-09316# If +-- the +-- +-- feature is enabled, the pipeline requires +-- , +-- @renderPass@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', +-- @subpass@ includes an external format resolve attachment, and +-- @pDynamicState->pDynamicStates@ does not include +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR', +-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PipelineFragmentShadingRateStateCreateInfoKHR'::@height@ +-- /must/ be @1@ +-- +-- - #VUID-VkGraphicsPipelineCreateInfo-externalFormatResolve-09317# If +-- the +-- +-- feature is enabled, the pipeline requires +-- +-- and +-- , +-- @renderPass@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', and +-- @subpass@ includes an external format resolve attachment, the last +-- +-- /must/ not statically use a variable with the +-- @PrimitiveShadingRateKHR@ built-in +-- -- == Valid Usage (Implicit) -- -- - #VUID-VkGraphicsPipelineCreateInfo-sType-sType# @sType@ /must/ be @@ -6480,10 +7148,12 @@ instance Zero PipelineDepthStencilStateCreateInfo where -- 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_dynamic_rendering.AttachmentSampleCountInfoAMD', +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID', -- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GraphicsPipelineLibraryCreateInfoEXT', -- 'Vulkan.Extensions.VK_NV_device_generated_commands.GraphicsPipelineShaderGroupsCreateInfoNV', -- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.MultiviewPerViewAttributesInfoNVX', -- 'Vulkan.Extensions.VK_AMD_pipeline_compiler_control.PipelineCompilerControlCreateInfoAMD', +-- 'Vulkan.Extensions.VK_KHR_maintenance5.PipelineCreateFlags2CreateInfoKHR', -- 'Vulkan.Core13.Promoted_From_VK_EXT_pipeline_creation_feedback.PipelineCreationFeedbackCreateInfo', -- 'Vulkan.Extensions.VK_EXT_discard_rectangles.PipelineDiscardRectangleStateCreateInfoEXT', -- 'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.PipelineFragmentShadingRateEnumStateCreateInfoNV', @@ -6541,8 +7211,8 @@ data GraphicsPipelineCreateInfo (es :: [Type]) = GraphicsPipelineCreateInfo stages :: Vector (SomeStruct PipelineShaderStageCreateInfo) , -- | @pVertexInputState@ is a pointer to a -- 'PipelineVertexInputStateCreateInfo' structure. It is ignored if the - -- pipeline includes a mesh shader stage. It is ignored if the pipeline is - -- created with the + -- pipeline includes a mesh shader stage. It /can/ be @NULL@ if the + -- pipeline is created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT' -- dynamic state set. vertexInputState :: Maybe (SomeStruct PipelineVertexInputStateCreateInfo) @@ -6550,31 +7220,87 @@ data GraphicsPipelineCreateInfo (es :: [Type]) = GraphicsPipelineCreateInfo -- 'PipelineInputAssemblyStateCreateInfo' structure which determines input -- assembly behavior for vertex shading, as described in -- . - -- It is ignored if the pipeline includes a mesh shader stage. + -- If the @VK_EXT_extended_dynamic_state3@ extension is enabled, it /can/ + -- be @NULL@ if the pipeline is created with both + -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE', + -- and 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_TOPOLOGY' + -- dynamic states set and + -- + -- is 'Vulkan.Core10.FundamentalTypes.TRUE'. It is ignored if the pipeline + -- includes a mesh shader stage. inputAssemblyState :: Maybe PipelineInputAssemblyStateCreateInfo , -- | @pTessellationState@ is a pointer to a -- 'PipelineTessellationStateCreateInfo' structure defining tessellation - -- state used by tessellation shaders. + -- state used by tessellation shaders. It /can/ be @NULL@ if the pipeline + -- is created with the + -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT' + -- dynamic state set. tessellationState :: Maybe (SomeStruct PipelineTessellationStateCreateInfo) , -- | @pViewportState@ is a pointer to a 'PipelineViewportStateCreateInfo' - -- structure defining viewport state used when rasterization is enabled. + -- structure defining viewport state used when rasterization is enabled. If + -- the @VK_EXT_extended_dynamic_state3@ extension is enabled, it /can/ be + -- @NULL@ if the pipeline is created with both + -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT', + -- and 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT' + -- dynamic states set. viewportState :: Maybe (SomeStruct PipelineViewportStateCreateInfo) , -- | @pRasterizationState@ is a pointer to a -- 'PipelineRasterizationStateCreateInfo' structure defining rasterization - -- state. + -- state. If the @VK_EXT_extended_dynamic_state3@ extension is enabled, it + -- /can/ be @NULL@ if the pipeline is created with all of + -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT', + -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE', + -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_POLYGON_MODE_EXT', + -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CULL_MODE', + -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRONT_FACE', + -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS_ENABLE', + -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS', and + -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_WIDTH' dynamic + -- states set. rasterizationState :: Maybe (SomeStruct PipelineRasterizationStateCreateInfo) , -- | @pMultisampleState@ is a pointer to a -- 'PipelineMultisampleStateCreateInfo' structure defining multisample - -- state used when rasterization is enabled. + -- state used when rasterization is enabled. If the + -- @VK_EXT_extended_dynamic_state3@ extension is enabled, it /can/ be + -- @NULL@ if the pipeline is created with all of + -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT', + -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_MASK_EXT', and + -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT' + -- dynamic states set, and either + -- + -- is disabled on the device or + -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT' + -- is set, in which case + -- 'PipelineMultisampleStateCreateInfo'::@sampleShadingEnable@ is assumed + -- to be 'Vulkan.Core10.FundamentalTypes.FALSE'. multisampleState :: Maybe (SomeStruct PipelineMultisampleStateCreateInfo) , -- | @pDepthStencilState@ is a pointer to a -- 'PipelineDepthStencilStateCreateInfo' structure defining depth\/stencil -- state used when rasterization is enabled for depth or stencil - -- attachments accessed during rendering. + -- attachments accessed during rendering. If the + -- @VK_EXT_extended_dynamic_state3@ extension is enabled, it /can/ be + -- @NULL@ if the pipeline is created with all of + -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_TEST_ENABLE', + -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_WRITE_ENABLE', + -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_COMPARE_OP', + -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE', + -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_TEST_ENABLE', + -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_OP', and + -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS' dynamic + -- states set. depthStencilState :: Maybe PipelineDepthStencilStateCreateInfo , -- | @pColorBlendState@ is a pointer to a 'PipelineColorBlendStateCreateInfo' -- structure defining color blend state used when rasterization is enabled - -- for any color attachments accessed during rendering. + -- for any color attachments accessed during rendering. If the + -- @VK_EXT_extended_dynamic_state3@ extension is enabled, it /can/ be + -- @NULL@ if the pipeline is created with all of + -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT', + -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LOGIC_OP_EXT', + -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT', + -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT', + -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_MASK_EXT', + -- and 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_BLEND_CONSTANTS' + -- dynamic states set. colorBlendState :: Maybe (SomeStruct PipelineColorBlendStateCreateInfo) , -- | @pDynamicState@ is a pointer to a 'PipelineDynamicStateCreateInfo' -- structure defining which properties of the pipeline state object are @@ -6624,8 +7350,10 @@ instance Extensible GraphicsPipelineCreateInfo where | Just Refl <- eqT @e @PipelineCompilerControlCreateInfoAMD = Just f | Just Refl <- eqT @e @PipelineCreationFeedbackCreateInfo = Just f | Just Refl <- eqT @e @PipelineRepresentativeFragmentTestStateCreateInfoNV = Just f + | Just Refl <- eqT @e @ExternalFormatANDROID = Just f | Just Refl <- eqT @e @PipelineDiscardRectangleStateCreateInfoEXT = Just f | Just Refl <- eqT @e @GraphicsPipelineShaderGroupsCreateInfoNV = Just f + | Just Refl <- eqT @e @PipelineCreateFlags2CreateInfoKHR = Just f | otherwise = Nothing instance ( Extendss GraphicsPipelineCreateInfo es diff --git a/src/Vulkan/Core10/Query.hs b/src/Vulkan/Core10/Query.hs index 9d406244e..1cbdca903 100644 --- a/src/Vulkan/Core10/Query.hs +++ b/src/Vulkan/Core10/Query.hs @@ -288,10 +288,13 @@ foreign import ccall -- 'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_WITH_AVAILABILITY_BIT' -- is set, results for all queries in @queryPool@ identified by -- @firstQuery@ and @queryCount@ are copied to @pData@, along with an extra --- availability value written directly after the results of each query and --- interpreted as an unsigned integer. A value of zero indicates that the --- results are not yet available, otherwise the query is complete and --- results are available. +-- availability or status value written directly after the results of each +-- query and interpreted as an unsigned integer. A value of zero indicates +-- that the results are not yet available, otherwise the query is complete +-- and results are available. The size of the availability or status values +-- is 64 bits if +-- 'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_64_BIT' is set in +-- @flags@. Otherwise, it is 32 bits. -- -- If @VK_QUERY_RESULT_WITH_STATUS_BIT_KHR@ is set, results for all queries -- in @queryPool@ identified by @firstQuery@ and @queryCount@ are copied to @@ -306,6 +309,14 @@ foreign import ccall -- defines specific meaning for values returned here, though -- implementations are free to return other values. -- +-- Note +-- +-- If +-- 'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_WITH_AVAILABILITY_BIT' +-- or @VK_QUERY_RESULT_WITH_STATUS_BIT_KHR@ is set, the layout of data in +-- the buffer is a /(result,availability)/ or /(result,status)/ pair for +-- each query returned, and @stride@ is the stride between each pair. +-- -- Results for any available query written by this command are final and -- represent the final result of the query. If -- 'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_PARTIAL_BIT' is @@ -314,9 +325,9 @@ foreign import ccall -- Otherwise, any result written by this command is undefined. -- -- If 'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_64_BIT' is set, --- results and availability or status values for all queries are written as --- an array of 64-bit values. If the @queryPool@ was created with --- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR', +-- results and, if returned, availability or status values for all queries +-- are written as an array of 64-bit values. If the @queryPool@ was created +-- with 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR', -- results for each query are written as an array of the type indicated by -- 'Vulkan.Extensions.VK_KHR_performance_query.PerformanceCounterKHR'::@storage@ -- for the counter being queried. Otherwise, results and availability or @@ -398,6 +409,12 @@ foreign import ccall -- 'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_64_BIT' is set -- in @flags@ then @pData@ and @stride@ /must/ be multiples of @8@ -- +-- - #VUID-vkGetQueryPoolResults-stride-08993# If +-- 'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_WITH_AVAILABILITY_BIT' +-- is set, @stride@ /must/ be large enough to contain the unsigned +-- integer representing availability or status in addition to the query +-- result. +-- -- - #VUID-vkGetQueryPoolResults-queryType-03229# If the @queryType@ used -- to create @queryPool@ was -- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR', @@ -407,7 +424,7 @@ foreign import ccall -- - #VUID-vkGetQueryPoolResults-queryType-04519# If the @queryType@ used -- to create @queryPool@ was -- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR', --- then @stride@ /must/ be large enough to contain +-- then @stride@ /must/ be large enough to contain the -- 'Vulkan.Extensions.VK_KHR_performance_query.QueryPoolPerformanceCreateInfoKHR'::@counterIndexCount@ -- used to create @queryPool@ times the size of -- 'Vulkan.Extensions.VK_KHR_performance_query.PerformanceCounterResultKHR' @@ -431,7 +448,8 @@ foreign import ccall -- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR', -- @flags@ /must/ not contain -- 'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_WITH_AVAILABILITY_BIT', --- 'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_PARTIAL_BIT' +-- @VK_QUERY_RESULT_WITH_STATUS_BIT_KHR@, +-- 'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_PARTIAL_BIT', -- or 'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_64_BIT' -- -- - #VUID-vkGetQueryPoolResults-queryType-03231# If the @queryType@ used diff --git a/src/Vulkan/Core10/Queue.hs b/src/Vulkan/Core10/Queue.hs index 40012253c..07793a933 100644 --- a/src/Vulkan/Core10/Queue.hs +++ b/src/Vulkan/Core10/Queue.hs @@ -71,6 +71,8 @@ import Vulkan.CStruct.Extends (Extendss) import Vulkan.CStruct.Extends (Extensible(..)) import Vulkan.Core10.Handles (Fence) import Vulkan.Core10.Handles (Fence(..)) +import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_frame_boundary (FrameBoundaryEXT) +import {-# SOURCE #-} Vulkan.Extensions.VK_NV_low_latency2 (LatencySubmissionPresentIdNV) import Vulkan.CStruct.Extends (PeekChain) import Vulkan.CStruct.Extends (PeekChain(..)) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_performance_query (PerformanceQuerySubmitInfoKHR) @@ -280,8 +282,9 @@ foreign import ccall -- a 'Vulkan.Core12.Enums.SemaphoreType.SemaphoreType' of -- 'Vulkan.Core12.Enums.SemaphoreType.SEMAPHORE_TYPE_BINARY' /must/ -- reference a semaphore signal operation that has been submitted for --- execution and any semaphore signal operations on which it depends --- (if any) /must/ have also been submitted for execution +-- execution and any +-- +-- on which it depends /must/ have also been submitted for execution -- -- - #VUID-vkQueueSubmit-pCommandBuffers-00070# Each element of the -- @pCommandBuffers@ member of each element of @pSubmits@ /must/ be in @@ -385,6 +388,7 @@ foreign import ccall -- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ -- | | | | | | -- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================+ +-- | - | - | - | Any | - | -- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ -- -- == Return Codes @@ -488,6 +492,7 @@ queueWaitIdleSafeOrUnsafe mkVkQueueWaitIdle queue = liftIO $ do -- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ -- | | | | | | -- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================+ +-- | - | - | - | Any | - | -- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ -- -- == Return Codes @@ -665,7 +670,7 @@ deviceWaitIdleSafe = deviceWaitIdleSafeOrUnsafe mkVkDeviceWaitIdleSafe -- -- feature is not enabled, @pWaitDstStageMask@ /must/ not be @0@ -- --- - #VUID-VkSubmitInfo-rayTracingPipeline-07949# If neither the +-- - #VUID-VkSubmitInfo-pWaitDstStageMask-07949# If neither the -- -- extension or -- @@ -801,6 +806,8 @@ deviceWaitIdleSafe = deviceWaitIdleSafeOrUnsafe mkVkDeviceWaitIdleSafe -- 'Vulkan.Extensions.VK_SEC_amigo_profiling.AmigoProfilingSubmitInfoSEC', -- 'Vulkan.Extensions.VK_KHR_external_semaphore_win32.D3D12FenceSubmitInfoKHR', -- 'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupSubmitInfo', +-- 'Vulkan.Extensions.VK_EXT_frame_boundary.FrameBoundaryEXT', +-- 'Vulkan.Extensions.VK_NV_low_latency2.LatencySubmissionPresentIdNV', -- 'Vulkan.Extensions.VK_KHR_performance_query.PerformanceQuerySubmitInfoKHR', -- 'Vulkan.Core11.Originally_Based_On_VK_KHR_protected_memory.ProtectedSubmitInfo', -- 'Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore.TimelineSemaphoreSubmitInfo', @@ -879,6 +886,8 @@ instance Extensible SubmitInfo where getNext SubmitInfo{..} = next extends :: forall e b proxy. Typeable e => proxy e -> (Extends SubmitInfo e => b) -> Maybe b extends _ f + | Just Refl <- eqT @e @LatencySubmissionPresentIdNV = Just f + | Just Refl <- eqT @e @FrameBoundaryEXT = Just f | Just Refl <- eqT @e @AmigoProfilingSubmitInfoSEC = Just f | Just Refl <- eqT @e @PerformanceQuerySubmitInfoKHR = Just f | Just Refl <- eqT @e @TimelineSemaphoreSubmitInfo = Just f diff --git a/src/Vulkan/Core10/Sampler.hs b/src/Vulkan/Core10/Sampler.hs index 5632d0c59..be1fbf022 100644 --- a/src/Vulkan/Core10/Sampler.hs +++ b/src/Vulkan/Core10/Sampler.hs @@ -79,8 +79,10 @@ import Vulkan.Core10.Enums.Result (Result(..)) import Vulkan.Core10.Handles (Sampler) import Vulkan.Core10.Handles (Sampler(..)) import Vulkan.Core10.Enums.SamplerAddressMode (SamplerAddressMode) +import {-# SOURCE #-} Vulkan.Extensions.VK_QCOM_image_processing2 (SamplerBlockMatchWindowCreateInfoQCOM) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_border_color_swizzle (SamplerBorderColorComponentMappingCreateInfoEXT) import Vulkan.Core10.Enums.SamplerCreateFlagBits (SamplerCreateFlags) +import {-# SOURCE #-} Vulkan.Extensions.VK_QCOM_filter_cubic_weights (SamplerCubicWeightsCreateInfoQCOM) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_custom_border_color (SamplerCustomBorderColorCreateInfoEXT) import Vulkan.Core10.Enums.SamplerMipmapMode (SamplerMipmapMode) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax (SamplerReductionModeCreateInfo) @@ -430,6 +432,15 @@ destroySampler device sampler allocator = liftIO . evalContT $ do -- @minFilter@ is 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT', -- @anisotropyEnable@ /must/ be 'Vulkan.Core10.FundamentalTypes.FALSE' -- +-- - #VUID-VkSamplerCreateInfo-magFilter-07911# If the +-- +-- extension is not enabled and either @magFilter@ or @minFilter@ is +-- 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT', the @reductionMode@ +-- member of +-- 'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo' +-- /must/ be +-- 'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE' +-- -- - #VUID-VkSamplerCreateInfo-compareEnable-01423# If @compareEnable@ is -- 'Vulkan.Core10.FundamentalTypes.TRUE', the @reductionMode@ member of -- 'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo' @@ -565,7 +576,9 @@ destroySampler device sampler allocator = liftIO . evalContT $ do -- structure (including this one) in the @pNext@ chain /must/ be either -- @NULL@ or a pointer to a valid instance of -- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.OpaqueCaptureDescriptorDataCreateInfoEXT', +-- 'Vulkan.Extensions.VK_QCOM_image_processing2.SamplerBlockMatchWindowCreateInfoQCOM', -- 'Vulkan.Extensions.VK_EXT_border_color_swizzle.SamplerBorderColorComponentMappingCreateInfoEXT', +-- 'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.SamplerCubicWeightsCreateInfoQCOM', -- 'Vulkan.Extensions.VK_EXT_custom_border_color.SamplerCustomBorderColorCreateInfoEXT', -- 'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo', -- or @@ -642,9 +655,9 @@ data SamplerCreateInfo (es :: [Type]) = SamplerCreateInfo -- specifying the addressing mode for W coordinates outside [0,1). addressModeW :: SamplerAddressMode , -- | #samplers-mipLodBias# @mipLodBias@ is the bias to be added to mipmap LOD - -- (level-of-detail) calculation and bias provided by image sampling - -- functions in SPIR-V, as described in the - -- + -- calculation and bias provided by image sampling functions in SPIR-V, as + -- described in the + -- -- section. mipLodBias :: Float , -- | #samplers-maxAnisotropy# @anisotropyEnable@ is @@ -721,6 +734,8 @@ instance Extensible SamplerCreateInfo where getNext SamplerCreateInfo{..} = next extends :: forall e b proxy. Typeable e => proxy e -> (Extends SamplerCreateInfo e => b) -> Maybe b extends _ f + | Just Refl <- eqT @e @SamplerBlockMatchWindowCreateInfoQCOM = Just f + | Just Refl <- eqT @e @SamplerCubicWeightsCreateInfoQCOM = Just f | Just Refl <- eqT @e @OpaqueCaptureDescriptorDataCreateInfoEXT = Just f | Just Refl <- eqT @e @SamplerBorderColorComponentMappingCreateInfoEXT = Just f | Just Refl <- eqT @e @SamplerCustomBorderColorCreateInfoEXT = Just f diff --git a/src/Vulkan/Core10/Shader.hs b/src/Vulkan/Core10/Shader.hs index 1f395007c..2212e1537 100644 --- a/src/Vulkan/Core10/Shader.hs +++ b/src/Vulkan/Core10/Shader.hs @@ -101,6 +101,16 @@ foreign import ccall -- and -- . -- +-- Note +-- +-- If the +-- +-- feature is enabled, shader module creation can be omitted entirely. +-- Instead, applications should provide the 'ShaderModuleCreateInfo' +-- structure directly in to pipeline creation by chaining it to +-- 'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo'. This avoids the +-- overhead of creating and managing an additional object. +-- -- == Valid Usage -- -- - #VUID-vkCreateShaderModule-pCreateInfo-06904# If @pCreateInfo@ is @@ -275,63 +285,65 @@ destroyShaderModule device shaderModule allocator = liftIO . evalContT $ do -- -- == Valid Usage -- --- - #VUID-VkShaderModuleCreateInfo-codeSize-01085# @codeSize@ /must/ be --- greater than 0 --- --- - #VUID-VkShaderModuleCreateInfo-pCode-07912# If the --- --- extension is not enabled, @pCode@ /must/ be a pointer to SPIR-V code --- --- - #VUID-VkShaderModuleCreateInfo-pCode-01376# If @pCode@ is a pointer +-- - #VUID-VkShaderModuleCreateInfo-codeSize-08735# If pCode is a pointer -- to SPIR-V code, @codeSize@ /must/ be a multiple of 4 -- --- - #VUID-VkShaderModuleCreateInfo-pCode-01377# @pCode@ /must/ point to --- either valid SPIR-V code, formatted and packed as described by the --- --- or valid GLSL code which /must/ be written to the --- @GL_KHR_vulkan_glsl@ extension specification +-- - #VUID-VkShaderModuleCreateInfo-pCode-08736# If pCode is a pointer to +-- SPIR-V code, @pCode@ /must/ point to valid SPIR-V code, formatted +-- and packed as described by the +-- -- --- - #VUID-VkShaderModuleCreateInfo-pCode-01378# If @pCode@ is a pointer --- to SPIR-V code, that code /must/ adhere to the validation rules --- described by the --- +-- - #VUID-VkShaderModuleCreateInfo-pCode-08737# If pCode is a pointer to +-- SPIR-V code, @pCode@ /must/ adhere to the validation rules described +-- by the +-- -- section of the --- +-- -- appendix -- --- - #VUID-VkShaderModuleCreateInfo-pCode-01379# If @pCode@ is a pointer --- to GLSL code, it /must/ be valid GLSL code written to the --- @GL_KHR_vulkan_glsl@ GLSL extension specification --- --- - #VUID-VkShaderModuleCreateInfo-pCode-01089# @pCode@ /must/ declare --- the @Shader@ capability for SPIR-V code +-- - #VUID-VkShaderModuleCreateInfo-pCode-08738# If pCode is a pointer to +-- SPIR-V code, @pCode@ /must/ declare the @Shader@ capability for +-- SPIR-V code -- --- - #VUID-VkShaderModuleCreateInfo-pCode-01090# @pCode@ /must/ not --- declare any capability that is not supported by the API, as --- described by the --- +-- - #VUID-VkShaderModuleCreateInfo-pCode-08739# If pCode is a pointer to +-- SPIR-V code, @pCode@ /must/ not declare any capability that is not +-- supported by the API, as described by the +-- -- section of the --- +-- -- appendix -- --- - #VUID-VkShaderModuleCreateInfo-pCode-01091# If @pCode@ declares any --- of the capabilities listed in the --- +-- - #VUID-VkShaderModuleCreateInfo-pCode-08740# If pCode is a pointer to +-- SPIR-V code, and @pCode@ declares any of the capabilities listed in +-- the +-- -- appendix, one of the corresponding requirements /must/ be satisfied -- --- - #VUID-VkShaderModuleCreateInfo-pCode-04146# @pCode@ /must/ not --- declare any SPIR-V extension that is not supported by the API, as --- described by the --- +-- - #VUID-VkShaderModuleCreateInfo-pCode-08741# If pCode is a pointer to +-- SPIR-V code, @pCode@ /must/ not declare any SPIR-V extension that is +-- not supported by the API, as described by the +-- -- section of the --- +-- -- appendix -- --- - #VUID-VkShaderModuleCreateInfo-pCode-04147# If @pCode@ declares any --- of the SPIR-V extensions listed in the --- +-- - #VUID-VkShaderModuleCreateInfo-pCode-08742# If pCode is a pointer to +-- SPIR-V code, and @pCode@ declares any of the SPIR-V extensions +-- listed in the +-- -- appendix, one of the corresponding requirements /must/ be satisfied -- +-- - #VUID-VkShaderModuleCreateInfo-pCode-07912# If the +-- +-- extension is not enabled, @pCode@ /must/ be a pointer to SPIR-V code +-- +-- - #VUID-VkShaderModuleCreateInfo-pCode-01379# If @pCode@ is a pointer +-- to GLSL code, it /must/ be valid GLSL code written to the +-- @GL_KHR_vulkan_glsl@ GLSL extension specification +-- +-- - #VUID-VkShaderModuleCreateInfo-codeSize-01085# @codeSize@ /must/ be +-- greater than 0 +-- -- == Valid Usage (Implicit) -- -- - #VUID-VkShaderModuleCreateInfo-sType-sType# @sType@ /must/ be diff --git a/src/Vulkan/Core10/SparseResourceMemoryManagement.hs b/src/Vulkan/Core10/SparseResourceMemoryManagement.hs index ad8ce9c33..6f9e11e67 100644 --- a/src/Vulkan/Core10/SparseResourceMemoryManagement.hs +++ b/src/Vulkan/Core10/SparseResourceMemoryManagement.hs @@ -83,6 +83,7 @@ import Vulkan.Core10.Handles (Fence) import Vulkan.Core10.Handles (Fence(..)) import Vulkan.Core10.Enums.Format (Format) import Vulkan.Core10.Enums.Format (Format(..)) +import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_frame_boundary (FrameBoundaryEXT) import Vulkan.Core10.Handles (Image) import Vulkan.Core10.Handles (Image(..)) import Vulkan.Core10.Enums.ImageAspectFlagBits (ImageAspectFlags) @@ -427,20 +428,15 @@ foreign import ccall -- on @queue@, there /must/ be no other queues waiting on the same -- semaphore -- --- - #VUID-vkQueueBindSparse-pWaitSemaphores-01117# All elements of the --- @pWaitSemaphores@ member of all elements of the @pBindInfo@ --- parameter referring to a binary semaphore /must/ be semaphores that --- are signaled, or have --- --- previously submitted for execution --- -- - #VUID-vkQueueBindSparse-pWaitSemaphores-03245# All elements of the -- @pWaitSemaphores@ member of all elements of @pBindInfo@ created with -- a 'Vulkan.Core12.Enums.SemaphoreType.SemaphoreType' of -- 'Vulkan.Core12.Enums.SemaphoreType.SEMAPHORE_TYPE_BINARY' /must/ -- reference a semaphore signal operation that has been submitted for --- execution and any semaphore signal operations on which it depends --- (if any) /must/ have also been submitted for execution +-- execution and any +-- +-- on which it depends (if any) /must/ have also been submitted for +-- execution -- -- == Valid Usage (Implicit) -- @@ -476,6 +472,7 @@ foreign import ccall -- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ -- | | | | | | -- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================+ +-- | - | - | - | SPARSE_BINDING | - | -- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ -- -- == Return Codes @@ -685,7 +682,7 @@ instance Zero SparseImageMemoryRequirements where -- -- , -- 'Vulkan.Core10.Enums.ImageAspectFlagBits.ImageAspectFlags', --- 'Vulkan.Extensions.VK_EXT_image_compression_control.ImageSubresource2EXT', +-- 'Vulkan.Extensions.VK_KHR_maintenance5.ImageSubresource2KHR', -- 'SparseImageMemoryBind', 'Vulkan.Core10.Image.getImageSubresourceLayout' data ImageSubresource = ImageSubresource { -- | @aspectMask@ is a @@ -929,6 +926,9 @@ instance Zero SparseMemoryBind where -- ('SparseImageFormatProperties'::@imageGranularity.width@) of the -- image -- +-- - #VUID-VkSparseImageMemoryBind-extent-09388# @extent.width@ /must/ be +-- greater than @0@ +-- -- - #VUID-VkSparseImageMemoryBind-extent-01108# @extent.width@ /must/ -- either be a multiple of the sparse image block width of the image, -- or else (@extent.width@ + @offset.x@) /must/ equal the width of the @@ -939,6 +939,9 @@ instance Zero SparseMemoryBind where -- ('SparseImageFormatProperties'::@imageGranularity.height@) of the -- image -- +-- - #VUID-VkSparseImageMemoryBind-extent-09389# @extent.height@ /must/ +-- be greater than @0@ +-- -- - #VUID-VkSparseImageMemoryBind-extent-01110# @extent.height@ /must/ -- either be a multiple of the sparse image block height of the image, -- or else (@extent.height@ + @offset.y@) /must/ equal the height of @@ -949,6 +952,9 @@ instance Zero SparseMemoryBind where -- ('SparseImageFormatProperties'::@imageGranularity.depth@) of the -- image -- +-- - #VUID-VkSparseImageMemoryBind-extent-09390# @extent.depth@ /must/ be +-- greater than @0@ +-- -- - #VUID-VkSparseImageMemoryBind-extent-01112# @extent.depth@ /must/ -- either be a multiple of the sparse image block depth of the image, -- or else (@extent.depth@ + @offset.z@) /must/ equal the depth of the @@ -1342,8 +1348,8 @@ instance Zero SparseImageMemoryBindInfo where -- - #VUID-VkBindSparseInfo-pNext-pNext# Each @pNext@ member of any -- structure (including this one) in the @pNext@ chain /must/ be either -- @NULL@ or a pointer to a valid instance of --- 'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupBindSparseInfo' --- or +-- 'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupBindSparseInfo', +-- 'Vulkan.Extensions.VK_EXT_frame_boundary.FrameBoundaryEXT', or -- 'Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore.TimelineSemaphoreSubmitInfo' -- -- - #VUID-VkBindSparseInfo-sType-unique# The @sType@ value of each @@ -1420,6 +1426,7 @@ instance Extensible BindSparseInfo where getNext BindSparseInfo{..} = next extends :: forall e b proxy. Typeable e => proxy e -> (Extends BindSparseInfo e => b) -> Maybe b extends _ f + | Just Refl <- eqT @e @FrameBoundaryEXT = Just f | Just Refl <- eqT @e @TimelineSemaphoreSubmitInfo = Just f | Just Refl <- eqT @e @DeviceGroupBindSparseInfo = Just f | otherwise = Nothing diff --git a/src/Vulkan/Core11/Enums/ChromaLocation.hs b/src/Vulkan/Core11/Enums/ChromaLocation.hs index 9a5045759..757cf6f75 100644 --- a/src/Vulkan/Core11/Enums/ChromaLocation.hs +++ b/src/Vulkan/Core11/Enums/ChromaLocation.hs @@ -22,7 +22,9 @@ import GHC.Show (Show(showsPrec)) -- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.AndroidHardwareBufferFormatProperties2ANDROID', -- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.AndroidHardwareBufferFormatPropertiesANDROID', -- 'Vulkan.Extensions.VK_FUCHSIA_buffer_collection.BufferCollectionPropertiesFUCHSIA', --- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.SamplerYcbcrConversionCreateInfo' +-- 'Vulkan.Extensions.VK_ANDROID_external_format_resolve.PhysicalDeviceExternalFormatResolvePropertiesANDROID', +-- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.SamplerYcbcrConversionCreateInfo', +-- 'Vulkan.Extensions.VK_QNX_external_memory_screen_buffer.ScreenBufferFormatPropertiesQNX' newtype ChromaLocation = ChromaLocation Int32 deriving newtype (Eq, Ord, Storable, Zero) diff --git a/src/Vulkan/Core11/Enums/ExternalMemoryFeatureFlagBits.hs b/src/Vulkan/Core11/Enums/ExternalMemoryFeatureFlagBits.hs index cb17bf269..d3f62f9e2 100644 --- a/src/Vulkan/Core11/Enums/ExternalMemoryFeatureFlagBits.hs +++ b/src/Vulkan/Core11/Enums/ExternalMemoryFeatureFlagBits.hs @@ -36,6 +36,10 @@ type ExternalMemoryFeatureFlags = ExternalMemoryFeatureFlagBits -- handle type -- 'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID'. -- Implementations /must/ not report +-- 'EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT' for buffers with external +-- handle type +-- 'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.EXTERNAL_MEMORY_HANDLE_TYPE_SCREEN_BUFFER_BIT_QNX'. +-- Implementations /must/ not report -- 'EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT' for images or buffers with -- external handle type -- 'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT', diff --git a/src/Vulkan/Core11/Enums/ExternalMemoryHandleTypeFlagBits.hs b/src/Vulkan/Core11/Enums/ExternalMemoryHandleTypeFlagBits.hs index 6f7c93279..fa737b08f 100644 --- a/src/Vulkan/Core11/Enums/ExternalMemoryHandleTypeFlagBits.hs +++ b/src/Vulkan/Core11/Enums/ExternalMemoryHandleTypeFlagBits.hs @@ -8,6 +8,7 @@ module Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits ( ExternalMemoryHan , EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT , EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT , EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT + , EXTERNAL_MEMORY_HANDLE_TYPE_SCREEN_BUFFER_BIT_QNX , EXTERNAL_MEMORY_HANDLE_TYPE_RDMA_ADDRESS_BIT_NV , EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA , EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT @@ -69,6 +70,8 @@ type ExternalMemoryHandleTypeFlags = ExternalMemoryHandleTypeFlagBits -- +-------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------+ -- | 'EXTERNAL_MEMORY_HANDLE_TYPE_RDMA_ADDRESS_BIT_NV' | No restriction | No restriction | -- +-------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------+ +-- | 'EXTERNAL_MEMORY_HANDLE_TYPE_SCREEN_BUFFER_BIT_QNX' | No restriction | No restriction | +-- +-------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------+ -- -- External memory handle types compatibility -- @@ -165,6 +168,13 @@ pattern EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT = ExternalMemoryHandleTypeFla -- Direct3D resource. pattern EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT = ExternalMemoryHandleTypeFlagBits 0x00000040 +-- | 'EXTERNAL_MEMORY_HANDLE_TYPE_SCREEN_BUFFER_BIT_QNX' specifies a +-- 'Vulkan.Extensions.VK_QNX_external_memory_screen_buffer.Screen_buffer' +-- object defined by the QNX SDP. See +-- +-- for more details of this handle type. +pattern EXTERNAL_MEMORY_HANDLE_TYPE_SCREEN_BUFFER_BIT_QNX = ExternalMemoryHandleTypeFlagBits 0x00004000 + -- | 'EXTERNAL_MEMORY_HANDLE_TYPE_RDMA_ADDRESS_BIT_NV' is a handle to an -- allocation accessible by remote devices. It owns a reference to the -- underlying memory resource represented by its Vulkan memory object. @@ -236,6 +246,10 @@ showTableExternalMemoryHandleTypeFlagBits = ( EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT , "D3D12_RESOURCE_BIT" ) + , + ( EXTERNAL_MEMORY_HANDLE_TYPE_SCREEN_BUFFER_BIT_QNX + , "SCREEN_BUFFER_BIT_QNX" + ) , ( EXTERNAL_MEMORY_HANDLE_TYPE_RDMA_ADDRESS_BIT_NV , "RDMA_ADDRESS_BIT_NV" diff --git a/src/Vulkan/Core11/Enums/SamplerYcbcrModelConversion.hs b/src/Vulkan/Core11/Enums/SamplerYcbcrModelConversion.hs index 963496688..4b1dc7b78 100644 --- a/src/Vulkan/Core11/Enums/SamplerYcbcrModelConversion.hs +++ b/src/Vulkan/Core11/Enums/SamplerYcbcrModelConversion.hs @@ -85,7 +85,8 @@ import GHC.Show (Show(showsPrec)) -- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.AndroidHardwareBufferFormatProperties2ANDROID', -- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.AndroidHardwareBufferFormatPropertiesANDROID', -- 'Vulkan.Extensions.VK_FUCHSIA_buffer_collection.BufferCollectionPropertiesFUCHSIA', --- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.SamplerYcbcrConversionCreateInfo' +-- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.SamplerYcbcrConversionCreateInfo', +-- 'Vulkan.Extensions.VK_QNX_external_memory_screen_buffer.ScreenBufferFormatPropertiesQNX' newtype SamplerYcbcrModelConversion = SamplerYcbcrModelConversion Int32 deriving newtype (Eq, Ord, Storable, Zero) diff --git a/src/Vulkan/Core11/Enums/SamplerYcbcrRange.hs b/src/Vulkan/Core11/Enums/SamplerYcbcrRange.hs index 4f35f639b..96a01d039 100644 --- a/src/Vulkan/Core11/Enums/SamplerYcbcrRange.hs +++ b/src/Vulkan/Core11/Enums/SamplerYcbcrRange.hs @@ -36,7 +36,8 @@ import GHC.Show (Show(showsPrec)) -- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.AndroidHardwareBufferFormatProperties2ANDROID', -- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.AndroidHardwareBufferFormatPropertiesANDROID', -- 'Vulkan.Extensions.VK_FUCHSIA_buffer_collection.BufferCollectionPropertiesFUCHSIA', --- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.SamplerYcbcrConversionCreateInfo' +-- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.SamplerYcbcrConversionCreateInfo', +-- 'Vulkan.Extensions.VK_QNX_external_memory_screen_buffer.ScreenBufferFormatPropertiesQNX' newtype SamplerYcbcrRange = SamplerYcbcrRange Int32 deriving newtype (Eq, Ord, Storable, Zero) diff --git a/src/Vulkan/Core11/Promoted_From_VK_KHR_bind_memory2.hs b/src/Vulkan/Core11/Promoted_From_VK_KHR_bind_memory2.hs index 652758dd8..8bd3fc932 100644 --- a/src/Vulkan/Core11/Promoted_From_VK_KHR_bind_memory2.hs +++ b/src/Vulkan/Core11/Promoted_From_VK_KHR_bind_memory2.hs @@ -346,6 +346,15 @@ bindImageMemory2 device bindInfos = liftIO . evalContT $ do -- 'Vulkan.Core11.Enums.MemoryAllocateFlagBits.MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT' -- bit set -- +-- - #VUID-VkBindBufferMemoryInfo-bufferDeviceAddressCaptureReplay-09200# +-- If the +-- 'Vulkan.Core12.Promoted_From_VK_KHR_buffer_device_address.PhysicalDeviceBufferDeviceAddressFeatures'::@bufferDeviceAddressCaptureReplay@ +-- feature is enabled and @buffer@ was created with the +-- 'Vulkan.Core10.Enums.BufferCreateFlagBits.BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT' +-- bit set, @memory@ /must/ have been allocated with the +-- 'Vulkan.Core11.Enums.MemoryAllocateFlagBits.MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT' +-- bit set +-- -- - #VUID-VkBindBufferMemoryInfo-buffer-06408# If @buffer@ was created -- with -- 'Vulkan.Extensions.VK_FUCHSIA_buffer_collection.BufferCollectionBufferCreateInfoFUCHSIA' @@ -355,15 +364,19 @@ bindImageMemory2 device bindInfos = liftIO . evalContT $ do -- chained to 'Vulkan.Core10.Memory.MemoryAllocateInfo'::@pNext@ -- -- - #VUID-VkBindBufferMemoryInfo-descriptorBufferCaptureReplay-08112# If --- the --- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.PhysicalDeviceDescriptorBufferFeaturesEXT' --- ::@descriptorBufferCaptureReplay@ feature is enabled and @buffer@ --- was created with the +-- the @buffer@ was created with the -- 'Vulkan.Core10.Enums.BufferCreateFlagBits.BUFFER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT' -- bit set, @memory@ /must/ have been allocated with the -- 'Vulkan.Core11.Enums.MemoryAllocateFlagBits.MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT' -- bit set -- +-- - #VUID-VkBindBufferMemoryInfo-buffer-09201# If the @buffer@ was +-- created with the +-- 'Vulkan.Core10.Enums.BufferCreateFlagBits.BUFFER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT' +-- bit set, @memory@ /must/ have been allocated with the +-- 'Vulkan.Core11.Enums.MemoryAllocateFlagBits.MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT' +-- bit set +-- -- - #VUID-VkBindBufferMemoryInfo-pNext-01605# If the @pNext@ chain -- includes a -- 'Vulkan.Core11.Promoted_From_VK_KHR_device_groupAndVK_KHR_bind_memory2.BindBufferMemoryDeviceGroupInfo' @@ -583,15 +596,19 @@ instance es ~ '[] => Zero (BindBufferMemoryInfo es) where -- when @image@ was created -- -- - #VUID-VkBindImageMemoryInfo-descriptorBufferCaptureReplay-08113# If --- the --- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.PhysicalDeviceDescriptorBufferFeaturesEXT' --- ::@descriptorBufferCaptureReplay@ feature is enabled and @image@ was --- created with the +-- the @image@ was created with the -- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT' -- bit set, @memory@ /must/ have been allocated with the -- 'Vulkan.Core11.Enums.MemoryAllocateFlagBits.MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT' -- bit set -- +-- - #VUID-VkBindImageMemoryInfo-image-09202# If the @image@ was created +-- with the +-- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT' +-- bit set, @memory@ /must/ have been allocated with the +-- 'Vulkan.Core11.Enums.MemoryAllocateFlagBits.MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT' +-- bit set +-- -- - #VUID-VkBindImageMemoryInfo-pNext-01615# If the @pNext@ chain does -- not include a -- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.BindImagePlaneMemoryInfo' diff --git a/src/Vulkan/Core11/Promoted_From_VK_KHR_dedicated_allocation.hs b/src/Vulkan/Core11/Promoted_From_VK_KHR_dedicated_allocation.hs index da910833d..ddd14dc46 100644 --- a/src/Vulkan/Core11/Promoted_From_VK_KHR_dedicated_allocation.hs +++ b/src/Vulkan/Core11/Promoted_From_VK_KHR_dedicated_allocation.hs @@ -177,7 +177,7 @@ instance Zero MemoryDedicatedRequirements where -- -- - #VUID-VkMemoryDedicatedAllocateInfo-image-02964# If @image@ is not -- 'Vulkan.Core10.APIConstants.NULL_HANDLE' and the memory is not an --- imported Android Hardware Buffer, +-- imported Android Hardware Buffer or an imported QNX Screen buffer , -- 'Vulkan.Core10.Memory.MemoryAllocateInfo'::@allocationSize@ /must/ -- equal the -- 'Vulkan.Core10.MemoryManagement.MemoryRequirements'::@size@ of the @@ -191,7 +191,7 @@ instance Zero MemoryDedicatedRequirements where -- -- - #VUID-VkMemoryDedicatedAllocateInfo-buffer-02965# If @buffer@ is not -- 'Vulkan.Core10.APIConstants.NULL_HANDLE' and the memory is not an --- imported Android Hardware Buffer, +-- imported Android Hardware Buffer or an imported QNX Screen buffer , -- 'Vulkan.Core10.Memory.MemoryAllocateInfo'::@allocationSize@ /must/ -- equal the -- 'Vulkan.Core10.MemoryManagement.MemoryRequirements'::@size@ of the @@ -216,7 +216,7 @@ instance Zero MemoryDedicatedRequirements where -- 'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT', -- and the external handle was created by the Vulkan API, then the -- memory being imported /must/ also be a dedicated image allocation --- and @image@ must be identical to the image associated with the +-- and @image@ /must/ be identical to the image associated with the -- imported memory -- -- - #VUID-VkMemoryDedicatedAllocateInfo-buffer-01877# If @buffer@ is not diff --git a/src/Vulkan/Core11/Promoted_From_VK_KHR_descriptor_update_template.hs b/src/Vulkan/Core11/Promoted_From_VK_KHR_descriptor_update_template.hs index 123c4a053..bfb4740fa 100644 --- a/src/Vulkan/Core11/Promoted_From_VK_KHR_descriptor_update_template.hs +++ b/src/Vulkan/Core11/Promoted_From_VK_KHR_descriptor_update_template.hs @@ -303,6 +303,10 @@ foreign import ccall -- @descriptorUpdateTemplate@ /must/ be a valid -- 'Vulkan.Core11.Handles.DescriptorUpdateTemplate' handle -- +-- - #VUID-vkUpdateDescriptorSetWithTemplate-descriptorSet-parent# +-- @descriptorSet@ /must/ have been created, allocated, or retrieved +-- from @device@ +-- -- - #VUID-vkUpdateDescriptorSetWithTemplate-descriptorUpdateTemplate-parent# -- @descriptorUpdateTemplate@ /must/ have been created, allocated, or -- retrieved from @device@ @@ -326,49 +330,49 @@ foreign import ccall -- > { -- > // binding to a single image descriptor -- > { --- > 0, // binding --- > 0, // dstArrayElement --- > 1, // descriptorCount --- > VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, // descriptorType --- > offsetof(AppDataStructure, imageInfo), // offset --- > 0 // stride is not required if descriptorCount is 1 +-- > .binding = 0, +-- > .dstArrayElement = 0, +-- > .descriptorCount = 1, +-- > .descriptorType = VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, +-- > .offset = offsetof(AppDataStructure, imageInfo), +-- > .stride = 0 // stride not required if descriptorCount is 1 -- > }, -- > -- > // binding to an array of buffer descriptors -- > { --- > 1, // binding --- > 0, // dstArrayElement --- > 3, // descriptorCount --- > VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, // descriptorType --- > offsetof(AppDataStructure, bufferInfoArray), // offset --- > sizeof(VkDescriptorBufferInfo) // stride, descriptor buffer infos are compact +-- > .binding = 1, +-- > .dstArrayElement = 0, +-- > .descriptorCount = 3, +-- > .descriptorType = VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, +-- > .offset = offsetof(AppDataStructure, bufferInfoArray), +-- > .stride = sizeof(VkDescriptorBufferInfo) // descriptor buffer infos are compact -- > }, -- > -- > // binding to an array of buffer views -- > { --- > 2, // binding --- > 0, // dstArrayElement --- > 2, // descriptorCount --- > VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER, // descriptorType --- > offsetof(AppDataStructure, bufferView) + --- > offsetof(AppBufferView, bufferView), // offset --- > sizeof(AppBufferView) // stride, bufferViews do not have to be compact +-- > .binding = 2, +-- > .dstArrayElement = 0, +-- > .descriptorCount = 2, +-- > .descriptorType = VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER, +-- > .offset = offsetof(AppDataStructure, bufferView) + +-- > offsetof(AppBufferView, bufferView), +-- > .stride = sizeof(AppBufferView) // bufferViews do not have to be compact -- > }, -- > }; -- > -- > // create a descriptor update template for descriptor set updates -- > const VkDescriptorUpdateTemplateCreateInfo createInfo = -- > { --- > VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO, // sType --- > NULL, // pNext --- > 0, // flags --- > 3, // descriptorUpdateEntryCount --- > descriptorUpdateTemplateEntries, // pDescriptorUpdateEntries --- > VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET, // templateType --- > myLayout, // descriptorSetLayout --- > 0, // pipelineBindPoint, ignored by given templateType --- > 0, // pipelineLayout, ignored by given templateType --- > 0, // set, ignored by given templateType +-- > .sType = VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO, +-- > .pNext = NULL, +-- > .flags = 0, +-- > .descriptorUpdateEntryCount = 3, +-- > .pDescriptorUpdateEntries = descriptorUpdateTemplateEntries, +-- > .templateType = VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET, +-- > .descriptorSetLayout = myLayout, +-- > .pipelineBindPoint = 0, // ignored by given templateType +-- > .pipelineLayout = 0, // ignored by given templateType +-- > .set = 0, // ignored by given templateType -- > }; -- > -- > VkDescriptorUpdateTemplate myDescriptorUpdateTemplate; diff --git a/src/Vulkan/Core11/Promoted_From_VK_KHR_device_group.hs b/src/Vulkan/Core11/Promoted_From_VK_KHR_device_group.hs index a348e7b15..ab0f4b94b 100644 --- a/src/Vulkan/Core11/Promoted_From_VK_KHR_device_group.hs +++ b/src/Vulkan/Core11/Promoted_From_VK_KHR_device_group.hs @@ -321,6 +321,16 @@ foreign import ccall -- /must/ contain -- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT' -- +-- - #VUID-vkCmdDispatchBase-None-02693# If the +-- +-- extension is not enabled and any 'Vulkan.Core10.Handles.ImageView' +-- is sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a +-- result of this command, it /must/ not have a +-- 'Vulkan.Core10.Enums.ImageViewType.ImageViewType' of +-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_3D', +-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE', or +-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE_ARRAY' +-- -- - #VUID-vkCmdDispatchBase-filterCubic-02694# Any -- 'Vulkan.Core10.Handles.ImageView' being sampled with -- 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a result of this @@ -346,6 +356,33 @@ foreign import ccall -- returned by -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceImageFormatProperties2' -- +-- - #VUID-vkCmdDispatchBase-cubicRangeClamp-09212# If the +-- +-- feature is not enabled, then any 'Vulkan.Core10.Handles.ImageView' +-- being sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as +-- a result of this command +-- +-- [/must/ not have a 'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo'] +-- @reductionMode@ equal to +-- 'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM' +-- +-- - #VUID-vkCmdDispatchBase-reductionMode-09213# Any +-- 'Vulkan.Core10.Handles.ImageView' being sampled with a +-- 'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo'::@reductionMode@ +-- equal to +-- 'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM' +-- as a result of this command /must/ sample with +-- 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' +-- +-- - #VUID-vkCmdDispatchBase-selectableCubicWeights-09214# If the +-- +-- feature is not enabled, then any 'Vulkan.Core10.Handles.ImageView' +-- being sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as +-- a result of this command /must/ have +-- 'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.SamplerCubicWeightsCreateInfoQCOM'::@cubicWeights@ +-- equal to +-- 'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM' +-- -- - #VUID-vkCmdDispatchBase-flags-02696# Any -- 'Vulkan.Core10.Handles.Image' created with a -- 'Vulkan.Core10.Image.ImageCreateInfo'::@flags@ containing @@ -387,11 +424,9 @@ foreign import ccall -- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT' -- -- - #VUID-vkCmdDispatchBase-None-08600# For each set /n/ that is --- statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to the --- pipeline bind point used by this command, or by any of the --- 'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages --- corresponding to the pipeline bind point used by this command, a --- descriptor set /must/ have been bound to /n/ at the same pipeline +-- statically used by +-- , +-- a descriptor set /must/ have been bound to /n/ at the same pipeline -- bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is -- compatible for set /n/, with the -- 'Vulkan.Core10.Handles.PipelineLayout' or @@ -401,12 +436,10 @@ foreign import ccall -- -- -- - #VUID-vkCmdDispatchBase-None-08601# For each push constant that is --- statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to the --- pipeline bind point used by this command, or by any of the --- 'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages --- corresponding to the pipeline bind point used by this command, a --- push constant value /must/ have been set for the same pipeline bind --- point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is +-- statically used by +-- , +-- a push constant value /must/ have been set for the same pipeline +-- bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is -- compatible for push constants, with the -- 'Vulkan.Core10.Handles.PipelineLayout' or -- 'Vulkan.Core10.Handles.DescriptorSetLayout' and @@ -418,12 +451,10 @@ foreign import ccall -- - #VUID-vkCmdDispatchBase-maintenance4-08602# If the -- -- feature is not enabled, then for each push constant that is --- statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to the --- pipeline bind point used by this command, or by any of the --- 'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages --- corresponding to the pipeline bind point used by this command, a --- push constant value /must/ have been set for the same pipeline bind --- point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is +-- statically used by +-- , +-- a push constant value /must/ have been set for the same pipeline +-- bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is -- compatible for push constants, with the -- 'Vulkan.Core10.Handles.PipelineLayout' or -- 'Vulkan.Core10.Handles.DescriptorSetLayout' and @@ -584,34 +615,25 @@ foreign import ccall -- buffer as specified in the descriptor set bound to the same pipeline -- bind point -- --- - #VUID-vkCmdDispatchBase-commandBuffer-08614# If @commandBuffer@ is +-- - #VUID-vkCmdDispatchBase-commandBuffer-02707# If @commandBuffer@ is -- an unprotected command buffer and -- --- is not supported, any resource accessed by the --- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind --- point used by this command or any --- 'Vulkan.Extensions.Handles.ShaderEXT' object bound to a stage --- corresponding to the pipeline bind point used by this command /must/ --- not be a protected resource --- --- - #VUID-vkCmdDispatchBase-None-08615# If the --- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind --- point used by this command or any --- 'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding --- to the pipeline bind point used by this command accesses a --- 'Vulkan.Core10.Handles.Sampler' or 'Vulkan.Core10.Handles.ImageView' --- object that enables +-- is not supported, any resource accessed by +-- +-- /must/ not be a protected resource +-- +-- - #VUID-vkCmdDispatchBase-None-06550# If +-- +-- accesses a 'Vulkan.Core10.Handles.Sampler' or +-- 'Vulkan.Core10.Handles.ImageView' object that enables -- , -- that object /must/ only be used with @OpImageSample*@ or -- @OpImageSparseSample*@ instructions -- --- - #VUID-vkCmdDispatchBase-ConstOffset-08616# If the --- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind --- point used by this command or any --- 'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding --- to the pipeline bind point used by this command accesses a --- 'Vulkan.Core10.Handles.Sampler' or 'Vulkan.Core10.Handles.ImageView' --- object that enables +-- - #VUID-vkCmdDispatchBase-ConstOffset-06551# If +-- +-- accesses a 'Vulkan.Core10.Handles.Sampler' or +-- 'Vulkan.Core10.Handles.ImageView' object that enables -- , -- that object /must/ not use the @ConstOffset@ and @Offset@ operands -- @@ -623,17 +645,23 @@ foreign import ccall -- -- - #VUID-vkCmdDispatchBase-format-07753# If a -- 'Vulkan.Core10.Handles.ImageView' is accessed as a result of this --- command, then the image view’s @format@ /must/ match the numeric --- format from the @Sampled@ @Type@ operand of the @OpTypeImage@ as --- described in the SPIR-V Sampled Type column of the --- --- table --- --- - #VUID-vkCmdDispatchBase-None-04115# If a --- 'Vulkan.Core10.Handles.ImageView' is accessed using @OpImageWrite@ --- as a result of this command, then the @Type@ of the @Texel@ operand --- of that instruction /must/ have at least as many components as the --- image view’s format +-- command, then the +-- +-- of the image view’s @format@ and the @Sampled@ @Type@ operand of the +-- @OpTypeImage@ /must/ match +-- +-- - #VUID-vkCmdDispatchBase-OpImageWrite-08795# If a +-- 'Vulkan.Core10.Handles.ImageView' created with a format other than +-- 'Vulkan.Core10.Enums.Format.FORMAT_A8_UNORM_KHR' is accessed using +-- @OpImageWrite@ as a result of this command, then the @Type@ of the +-- @Texel@ operand of that instruction /must/ have at least as many +-- components as the image view’s format +-- +-- - #VUID-vkCmdDispatchBase-OpImageWrite-08796# If a +-- 'Vulkan.Core10.Handles.ImageView' created with the format +-- 'Vulkan.Core10.Enums.Format.FORMAT_A8_UNORM_KHR' is accessed using +-- @OpImageWrite@ as a result of this command, then the @Type@ of the +-- @Texel@ operand of that instruction /must/ have four components -- -- - #VUID-vkCmdDispatchBase-OpImageWrite-04469# If a -- 'Vulkan.Core10.Handles.BufferView' is accessed using @OpImageWrite@ @@ -735,6 +763,8 @@ foreign import ccall -- -- - #VUID-vkCmdDispatchBase-OpImageWeightedSampleQCOM-06977# If -- @OpImageWeightedSampleQCOM@, @OpImageBoxFilterQCOM@, +-- @OpImageBlockMatchWindowSSDQCOM@, @OpImageBlockMatchWindowSADQCOM@, +-- @OpImageBlockMatchGatherSSDQCOM@, @OpImageBlockMatchGatherSADQCOM@, -- @OpImageBlockMatchSSDQCOM@, or @OpImageBlockMatchSADQCOM@ uses a -- 'Vulkan.Core10.Handles.Sampler' as a result of this command, then -- the sampler /must/ have been created with @@ -742,12 +772,35 @@ foreign import ccall -- -- - #VUID-vkCmdDispatchBase-OpImageWeightedSampleQCOM-06978# If any -- command other than @OpImageWeightedSampleQCOM@, --- @OpImageBoxFilterQCOM@, @OpImageBlockMatchSSDQCOM@, or +-- @OpImageBoxFilterQCOM@, @OpImageBlockMatchWindowSSDQCOM@, +-- @OpImageBlockMatchWindowSADQCOM@, @OpImageBlockMatchGatherSSDQCOM@, +-- @OpImageBlockMatchGatherSADQCOM@, @OpImageBlockMatchSSDQCOM@, or -- @OpImageBlockMatchSADQCOM@ uses a 'Vulkan.Core10.Handles.Sampler' as -- a result of this command, then the sampler /must/ not have been -- created with -- 'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM' -- +-- - #VUID-vkCmdDispatchBase-OpImageBlockMatchWindow-09215# If a +-- @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@ +-- instruction is used to read from an +-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then +-- the image view’s +-- +-- /must/ contain +-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM' +-- +-- - #VUID-vkCmdDispatchBase-OpImageBlockMatchWindow-09216# If a +-- @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@ +-- instruction is used to read from an +-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then +-- the image view’s format /must/ be a single-component format. +-- +-- - #VUID-vkCmdDispatchBase-OpImageBlockMatchWindow-09217# If a +-- @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@ +-- read from a reference image as result of this command, then the +-- specified reference coordinates /must/ not fail +-- +-- -- - #VUID-vkCmdDispatchBase-None-07288# Any shader invocation executed -- by this command /must/ -- @@ -1013,10 +1066,14 @@ instance Zero MemoryAllocateFlagsInfo where -- instance, and the initial device mask when the render pass instance -- begins. In addition, commands transitioning to the next subpass in a -- render pass instance and commands ending the render pass instance, and, --- accordingly render pass attachment load, store, and resolve operations --- and subpass dependencies corresponding to the render pass instance, are --- executed on the physical devices included in the device mask provided --- here. +-- accordingly render pass +-- , +-- , +-- and +-- +-- operations and subpass dependencies corresponding to the render pass +-- instance, are executed on the physical devices included in the device +-- mask provided here. -- -- If @deviceRenderAreaCount@ is not zero, then the elements of -- @pDeviceRenderAreas@ override the value of @@ -1068,6 +1125,14 @@ instance Zero MemoryAllocateFlagsInfo where -- @pDeviceRenderAreas@ /must/ be less than or equal to -- -- +-- - #VUID-VkDeviceGroupRenderPassBeginInfo-extent-08998# The +-- @extent.width@ member of any element of @pDeviceRenderAreas@ /must/ +-- be greater than 0 +-- +-- - #VUID-VkDeviceGroupRenderPassBeginInfo-extent-08999# The +-- @extent.height@ member of any element of @pDeviceRenderAreas@ /must/ +-- be greater than 0 +-- -- == Valid Usage (Implicit) -- -- - #VUID-VkDeviceGroupRenderPassBeginInfo-sType-sType# @sType@ /must/ diff --git a/src/Vulkan/Core11/Promoted_From_VK_KHR_external_memory_capabilities.hs b/src/Vulkan/Core11/Promoted_From_VK_KHR_external_memory_capabilities.hs index 0f6a874eb..820868b06 100644 --- a/src/Vulkan/Core11/Promoted_From_VK_KHR_external_memory_capabilities.hs +++ b/src/Vulkan/Core11/Promoted_From_VK_KHR_external_memory_capabilities.hs @@ -20,8 +20,10 @@ import Vulkan.CStruct.Utils (FixedArray) import Vulkan.Internal.Utils (traceAroundEvent) import Control.Monad (unless) import Control.Monad.IO.Class (liftIO) +import Data.Typeable (eqT) import Foreign.Marshal.Alloc (allocaBytes) import GHC.IO (throwIO) +import GHC.Ptr (castPtr) import GHC.Ptr (nullFunPtr) import Foreign.Ptr (nullPtr) import Foreign.Ptr (plusPtr) @@ -33,6 +35,7 @@ import Vulkan.CStruct (ToCStruct) import Vulkan.CStruct (ToCStruct(..)) import Vulkan.Zero (Zero(..)) import Control.Monad.IO.Class (MonadIO) +import Data.Type.Equality ((:~:)(Refl)) import Data.Typeable (Typeable) import Foreign.Storable (Storable) import Foreign.Storable (Storable(peek)) @@ -50,20 +53,31 @@ import Data.Kind (Type) import Control.Monad.Trans.Cont (ContT(..)) import Vulkan.Core10.FundamentalTypes (bool32ToBool) import Vulkan.Core10.FundamentalTypes (boolToBool32) +import Vulkan.CStruct.Extends (forgetExtensions) import Vulkan.CStruct.Utils (peekByteStringFromSizedVectorPtr) import Vulkan.CStruct.Utils (pokeFixedLengthByteString) import Vulkan.Core10.FundamentalTypes (Bool32) import Vulkan.Core10.Enums.BufferCreateFlagBits (BufferCreateFlags) import Vulkan.Core10.Enums.BufferUsageFlagBits (BufferUsageFlags) +import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_maintenance5 (BufferUsageFlags2CreateInfoKHR) +import Vulkan.CStruct.Extends (Chain) +import Vulkan.CStruct.Extends (Extends) +import Vulkan.CStruct.Extends (Extendss) +import Vulkan.CStruct.Extends (Extensible(..)) import Vulkan.Core11.Enums.ExternalMemoryFeatureFlagBits (ExternalMemoryFeatureFlags) import Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits (ExternalMemoryHandleTypeFlagBits) import Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits (ExternalMemoryHandleTypeFlags) import Vulkan.Dynamic (InstanceCmds(pVkGetPhysicalDeviceExternalBufferProperties)) import Vulkan.Core10.APIConstants (LUID_SIZE) +import Vulkan.CStruct.Extends (PeekChain) +import Vulkan.CStruct.Extends (PeekChain(..)) import Vulkan.Core10.Handles (PhysicalDevice) import Vulkan.Core10.Handles (PhysicalDevice(..)) import Vulkan.Core10.Handles (PhysicalDevice(PhysicalDevice)) import Vulkan.Core10.Handles (PhysicalDevice_T) +import Vulkan.CStruct.Extends (PokeChain) +import Vulkan.CStruct.Extends (PokeChain(..)) +import Vulkan.CStruct.Extends (SomeStruct) import Vulkan.Core10.Enums.StructureType (StructureType) import Vulkan.Core10.APIConstants (UUID_SIZE) import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES)) @@ -83,7 +97,7 @@ foreign import ccall unsafe #endif "dynamic" mkVkGetPhysicalDeviceExternalBufferProperties - :: FunPtr (Ptr PhysicalDevice_T -> Ptr PhysicalDeviceExternalBufferInfo -> Ptr ExternalBufferProperties -> IO ()) -> Ptr PhysicalDevice_T -> Ptr PhysicalDeviceExternalBufferInfo -> Ptr ExternalBufferProperties -> IO () + :: FunPtr (Ptr PhysicalDevice_T -> Ptr (SomeStruct PhysicalDeviceExternalBufferInfo) -> Ptr ExternalBufferProperties -> IO ()) -> Ptr PhysicalDevice_T -> Ptr (SomeStruct PhysicalDeviceExternalBufferInfo) -> Ptr ExternalBufferProperties -> IO () -- | vkGetPhysicalDeviceExternalBufferProperties - Query external handle -- types supported by buffers @@ -95,8 +109,10 @@ foreign import ccall -- , -- 'ExternalBufferProperties', 'Vulkan.Core10.Handles.PhysicalDevice', -- 'PhysicalDeviceExternalBufferInfo' -getPhysicalDeviceExternalBufferProperties :: forall io - . (MonadIO io) +getPhysicalDeviceExternalBufferProperties :: forall a io + . ( Extendss PhysicalDeviceExternalBufferInfo a + , PokeChain a + , MonadIO io ) => -- | @physicalDevice@ is the physical device from which to query the buffer -- capabilities. -- @@ -111,7 +127,7 @@ getPhysicalDeviceExternalBufferProperties :: forall io -- #VUID-vkGetPhysicalDeviceExternalBufferProperties-pExternalBufferInfo-parameter# -- @pExternalBufferInfo@ /must/ be a valid pointer to a valid -- 'PhysicalDeviceExternalBufferInfo' structure - PhysicalDeviceExternalBufferInfo + (PhysicalDeviceExternalBufferInfo a) -> io (ExternalBufferProperties) getPhysicalDeviceExternalBufferProperties physicalDevice externalBufferInfo = liftIO . evalContT $ do @@ -123,7 +139,7 @@ getPhysicalDeviceExternalBufferProperties physicalDevice pPExternalBufferProperties <- ContT (withZeroCStruct @ExternalBufferProperties) lift $ traceAroundEvent "vkGetPhysicalDeviceExternalBufferProperties" (vkGetPhysicalDeviceExternalBufferProperties' (physicalDeviceHandle (physicalDevice)) - pExternalBufferInfo + (forgetExtensions pExternalBufferInfo) (pPExternalBufferProperties)) pExternalBufferProperties <- lift $ peekCStruct @ExternalBufferProperties pPExternalBufferProperties pure $ (pExternalBufferProperties) @@ -341,8 +357,46 @@ instance Zero ExternalImageFormatProperties where -- | VkPhysicalDeviceExternalBufferInfo - Structure specifying buffer -- creation parameters -- +-- = Description +-- +-- Only usage flags representable in +-- 'Vulkan.Core10.Enums.BufferUsageFlagBits.BufferUsageFlagBits' are +-- returned in this structure’s @usage@. If a +-- 'Vulkan.Extensions.VK_KHR_maintenance5.BufferUsageFlags2CreateInfoKHR' +-- structure is present in the @pNext@ chain, all usage flags of the buffer +-- are returned in +-- 'Vulkan.Extensions.VK_KHR_maintenance5.BufferUsageFlags2CreateInfoKHR'::@usage@. +-- -- == Valid Usage (Implicit) -- +-- - #VUID-VkPhysicalDeviceExternalBufferInfo-sType-sType# @sType@ /must/ +-- be +-- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO' +-- +-- - #VUID-VkPhysicalDeviceExternalBufferInfo-pNext-pNext# @pNext@ /must/ +-- be @NULL@ or a pointer to a valid instance of +-- 'Vulkan.Extensions.VK_KHR_maintenance5.BufferUsageFlags2CreateInfoKHR' +-- +-- - #VUID-VkPhysicalDeviceExternalBufferInfo-sType-unique# The @sType@ +-- value of each struct in the @pNext@ chain /must/ be unique +-- +-- - #VUID-VkPhysicalDeviceExternalBufferInfo-flags-parameter# @flags@ +-- /must/ be a valid combination of +-- 'Vulkan.Core10.Enums.BufferCreateFlagBits.BufferCreateFlagBits' +-- values +-- +-- - #VUID-VkPhysicalDeviceExternalBufferInfo-usage-parameter# @usage@ +-- /must/ be a valid combination of +-- 'Vulkan.Core10.Enums.BufferUsageFlagBits.BufferUsageFlagBits' values +-- +-- - #VUID-VkPhysicalDeviceExternalBufferInfo-usage-requiredbitmask# +-- @usage@ /must/ not be @0@ +-- +-- - #VUID-VkPhysicalDeviceExternalBufferInfo-handleType-parameter# +-- @handleType@ /must/ be a valid +-- 'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.ExternalMemoryHandleTypeFlagBits' +-- value +-- -- = See Also -- -- , @@ -352,79 +406,75 @@ instance Zero ExternalImageFormatProperties where -- 'Vulkan.Core10.Enums.StructureType.StructureType', -- 'getPhysicalDeviceExternalBufferProperties', -- 'Vulkan.Extensions.VK_KHR_external_memory_capabilities.getPhysicalDeviceExternalBufferPropertiesKHR' -data PhysicalDeviceExternalBufferInfo = PhysicalDeviceExternalBufferInfo - { -- | @flags@ is a bitmask of +data PhysicalDeviceExternalBufferInfo (es :: [Type]) = PhysicalDeviceExternalBufferInfo + { -- | @pNext@ is @NULL@ or a pointer to a structure extending this structure. + next :: Chain es + , -- | @flags@ is a bitmask of -- 'Vulkan.Core10.Enums.BufferCreateFlagBits.BufferCreateFlagBits' -- describing additional parameters of the buffer, corresponding to -- 'Vulkan.Core10.Buffer.BufferCreateInfo'::@flags@. - -- - -- #VUID-VkPhysicalDeviceExternalBufferInfo-flags-parameter# @flags@ /must/ - -- be a valid combination of - -- 'Vulkan.Core10.Enums.BufferCreateFlagBits.BufferCreateFlagBits' values flags :: BufferCreateFlags , -- | @usage@ is a bitmask of -- 'Vulkan.Core10.Enums.BufferUsageFlagBits.BufferUsageFlagBits' describing -- the intended usage of the buffer, corresponding to -- 'Vulkan.Core10.Buffer.BufferCreateInfo'::@usage@. - -- - -- #VUID-VkPhysicalDeviceExternalBufferInfo-usage-parameter# @usage@ /must/ - -- be a valid combination of - -- 'Vulkan.Core10.Enums.BufferUsageFlagBits.BufferUsageFlagBits' values - -- - -- #VUID-VkPhysicalDeviceExternalBufferInfo-usage-requiredbitmask# @usage@ - -- /must/ not be @0@ usage :: BufferUsageFlags , -- | @handleType@ is a -- 'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.ExternalMemoryHandleTypeFlagBits' -- value specifying the memory handle type that will be used with the -- memory associated with the buffer. - -- - -- #VUID-VkPhysicalDeviceExternalBufferInfo-handleType-parameter# - -- @handleType@ /must/ be a valid - -- 'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.ExternalMemoryHandleTypeFlagBits' - -- value handleType :: ExternalMemoryHandleTypeFlagBits } - deriving (Typeable, Eq) + deriving (Typeable) #if defined(GENERIC_INSTANCES) -deriving instance Generic (PhysicalDeviceExternalBufferInfo) +deriving instance Generic (PhysicalDeviceExternalBufferInfo (es :: [Type])) #endif -deriving instance Show PhysicalDeviceExternalBufferInfo - -instance ToCStruct PhysicalDeviceExternalBufferInfo where +deriving instance Show (Chain es) => Show (PhysicalDeviceExternalBufferInfo es) + +instance Extensible PhysicalDeviceExternalBufferInfo where + extensibleTypeName = "PhysicalDeviceExternalBufferInfo" + setNext PhysicalDeviceExternalBufferInfo{..} next' = PhysicalDeviceExternalBufferInfo{next = next', ..} + getNext PhysicalDeviceExternalBufferInfo{..} = next + extends :: forall e b proxy. Typeable e => proxy e -> (Extends PhysicalDeviceExternalBufferInfo e => b) -> Maybe b + extends _ f + | Just Refl <- eqT @e @BufferUsageFlags2CreateInfoKHR = Just f + | otherwise = Nothing + +instance ( Extendss PhysicalDeviceExternalBufferInfo es + , PokeChain es ) => ToCStruct (PhysicalDeviceExternalBufferInfo es) where withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p) - pokeCStruct p PhysicalDeviceExternalBufferInfo{..} f = do - poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO) - poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr) - poke ((p `plusPtr` 16 :: Ptr BufferCreateFlags)) (flags) - poke ((p `plusPtr` 20 :: Ptr BufferUsageFlags)) (usage) - poke ((p `plusPtr` 24 :: Ptr ExternalMemoryHandleTypeFlagBits)) (handleType) - f + pokeCStruct p PhysicalDeviceExternalBufferInfo{..} f = evalContT $ do + lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO) + pNext'' <- fmap castPtr . ContT $ withChain (next) + lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext'' + lift $ poke ((p `plusPtr` 16 :: Ptr BufferCreateFlags)) (flags) + lift $ poke ((p `plusPtr` 20 :: Ptr BufferUsageFlags)) (usage) + lift $ poke ((p `plusPtr` 24 :: Ptr ExternalMemoryHandleTypeFlagBits)) (handleType) + lift $ f cStructSize = 32 cStructAlignment = 8 - pokeZeroCStruct p f = do - poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO) - poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr) - poke ((p `plusPtr` 20 :: Ptr BufferUsageFlags)) (zero) - poke ((p `plusPtr` 24 :: Ptr ExternalMemoryHandleTypeFlagBits)) (zero) - f - -instance FromCStruct PhysicalDeviceExternalBufferInfo where + pokeZeroCStruct p f = evalContT $ do + lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO) + pNext' <- fmap castPtr . ContT $ withZeroChain @es + lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext' + lift $ poke ((p `plusPtr` 20 :: Ptr BufferUsageFlags)) (zero) + lift $ poke ((p `plusPtr` 24 :: Ptr ExternalMemoryHandleTypeFlagBits)) (zero) + lift $ f + +instance ( Extendss PhysicalDeviceExternalBufferInfo es + , PeekChain es ) => FromCStruct (PhysicalDeviceExternalBufferInfo es) where peekCStruct p = do + pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ()))) + next <- peekChain (castPtr pNext) flags <- peek @BufferCreateFlags ((p `plusPtr` 16 :: Ptr BufferCreateFlags)) usage <- peek @BufferUsageFlags ((p `plusPtr` 20 :: Ptr BufferUsageFlags)) handleType <- peek @ExternalMemoryHandleTypeFlagBits ((p `plusPtr` 24 :: Ptr ExternalMemoryHandleTypeFlagBits)) pure $ PhysicalDeviceExternalBufferInfo - flags usage handleType - -instance Storable PhysicalDeviceExternalBufferInfo where - sizeOf ~_ = 32 - alignment ~_ = 8 - peek = peekCStruct - poke ptr poked = pokeCStruct ptr poked (pure ()) + next flags usage handleType -instance Zero PhysicalDeviceExternalBufferInfo where +instance es ~ '[] => Zero (PhysicalDeviceExternalBufferInfo es) where zero = PhysicalDeviceExternalBufferInfo + () zero zero zero diff --git a/src/Vulkan/Core11/Promoted_From_VK_KHR_external_memory_capabilities.hs-boot b/src/Vulkan/Core11/Promoted_From_VK_KHR_external_memory_capabilities.hs-boot index 9ebcf79d9..375f32a48 100644 --- a/src/Vulkan/Core11/Promoted_From_VK_KHR_external_memory_capabilities.hs-boot +++ b/src/Vulkan/Core11/Promoted_From_VK_KHR_external_memory_capabilities.hs-boot @@ -11,7 +11,10 @@ module Vulkan.Core11.Promoted_From_VK_KHR_external_memory_capabilities ( Extern import Vulkan.CStruct (FromCStruct) import Vulkan.CStruct (ToCStruct) import Data.Kind (Type) - +import {-# SOURCE #-} Vulkan.CStruct.Extends (Chain) +import {-# SOURCE #-} Vulkan.CStruct.Extends (Extendss) +import {-# SOURCE #-} Vulkan.CStruct.Extends (PeekChain) +import {-# SOURCE #-} Vulkan.CStruct.Extends (PokeChain) data ExternalBufferProperties instance ToCStruct ExternalBufferProperties @@ -36,12 +39,15 @@ instance Show ExternalMemoryProperties instance FromCStruct ExternalMemoryProperties -data PhysicalDeviceExternalBufferInfo +type role PhysicalDeviceExternalBufferInfo nominal +data PhysicalDeviceExternalBufferInfo (es :: [Type]) -instance ToCStruct PhysicalDeviceExternalBufferInfo -instance Show PhysicalDeviceExternalBufferInfo +instance ( Extendss PhysicalDeviceExternalBufferInfo es + , PokeChain es ) => ToCStruct (PhysicalDeviceExternalBufferInfo es) +instance Show (Chain es) => Show (PhysicalDeviceExternalBufferInfo es) -instance FromCStruct PhysicalDeviceExternalBufferInfo +instance ( Extendss PhysicalDeviceExternalBufferInfo es + , PeekChain es ) => FromCStruct (PhysicalDeviceExternalBufferInfo es) data PhysicalDeviceExternalImageFormatInfo diff --git a/src/Vulkan/Core11/Promoted_From_VK_KHR_get_memory_requirements2.hs b/src/Vulkan/Core11/Promoted_From_VK_KHR_get_memory_requirements2.hs index 37313583e..7746a0935 100644 --- a/src/Vulkan/Core11/Promoted_From_VK_KHR_get_memory_requirements2.hs +++ b/src/Vulkan/Core11/Promoted_From_VK_KHR_get_memory_requirements2.hs @@ -347,6 +347,11 @@ instance Zero BufferMemoryRequirementsInfo2 where -- 'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID' -- external memory handle type, then @image@ /must/ be bound to memory -- +-- - #VUID-VkImageMemoryRequirementsInfo2-image-08961# If @image@ was +-- created with the +-- 'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.EXTERNAL_MEMORY_HANDLE_TYPE_SCREEN_BUFFER_BIT_QNX' +-- external memory handle type, then @image@ /must/ be bound to memory +-- -- == Valid Usage (Implicit) -- -- - #VUID-VkImageMemoryRequirementsInfo2-sType-sType# @sType@ /must/ be @@ -505,7 +510,8 @@ instance Zero ImageSparseMemoryRequirementsInfo2 where -- 'Vulkan.Extensions.VK_KHR_maintenance4.getDeviceImageMemoryRequirementsKHR', -- 'Vulkan.Extensions.VK_NV_device_generated_commands.getGeneratedCommandsMemoryRequirementsNV', -- 'getImageMemoryRequirements2', --- 'Vulkan.Extensions.VK_KHR_get_memory_requirements2.getImageMemoryRequirements2KHR' +-- 'Vulkan.Extensions.VK_KHR_get_memory_requirements2.getImageMemoryRequirements2KHR', +-- 'Vulkan.Extensions.VK_NV_device_generated_commands_compute.getPipelineIndirectMemoryRequirementsNV' data MemoryRequirements2 (es :: [Type]) = MemoryRequirements2 { -- | @pNext@ is @NULL@ or a pointer to a structure extending this structure. next :: Chain es diff --git a/src/Vulkan/Core11/Promoted_From_VK_KHR_get_physical_device_properties2.hs b/src/Vulkan/Core11/Promoted_From_VK_KHR_get_physical_device_properties2.hs index 703d53f49..73ae13e13 100644 --- a/src/Vulkan/Core11/Promoted_From_VK_KHR_get_physical_device_properties2.hs +++ b/src/Vulkan/Core11/Promoted_From_VK_KHR_get_physical_device_properties2.hs @@ -73,6 +73,7 @@ import Vulkan.Core10.Enums.Format (Format) import Vulkan.Core10.Enums.Format (Format(..)) import Vulkan.Core10.DeviceInitialization (FormatProperties) import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_format_feature_flags2 (FormatProperties3) +import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_host_image_copy (HostImageCopyDevicePerformanceQueryEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_image_compression_control (ImageCompressionControlEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_image_compression_control (ImageCompressionPropertiesEXT) import Vulkan.Core10.Enums.ImageCreateFlagBits (ImageCreateFlags) @@ -103,6 +104,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_acceleration_structure (PhysicalD import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_acceleration_structure (PhysicalDeviceAccelerationStructurePropertiesKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_device_address_binding_report (PhysicalDeviceAddressBindingReportFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_SEC_amigo_profiling (PhysicalDeviceAmigoProfilingFeaturesSEC) +import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state (PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_attachment_feedback_loop_layout (PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_blend_operation_advanced (PhysicalDeviceBlendOperationAdvancedFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_blend_operation_advanced (PhysicalDeviceBlendOperationAdvancedPropertiesEXT) @@ -116,15 +118,20 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_color_write_enable (PhysicalDevic 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) +import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_cooperative_matrix (PhysicalDeviceCooperativeMatrixFeaturesKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_cooperative_matrix (PhysicalDeviceCooperativeMatrixFeaturesNV) +import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_cooperative_matrix (PhysicalDeviceCooperativeMatrixPropertiesKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_cooperative_matrix (PhysicalDeviceCooperativeMatrixPropertiesNV) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_copy_memory_indirect (PhysicalDeviceCopyMemoryIndirectFeaturesNV) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_copy_memory_indirect (PhysicalDeviceCopyMemoryIndirectPropertiesNV) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_corner_sampled_image (PhysicalDeviceCornerSampledImageFeaturesNV) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_coverage_reduction_mode (PhysicalDeviceCoverageReductionModeFeaturesNV) +import {-# SOURCE #-} Vulkan.Extensions.VK_QCOM_filter_cubic_clamp (PhysicalDeviceCubicClampFeaturesQCOM) +import {-# SOURCE #-} Vulkan.Extensions.VK_QCOM_filter_cubic_weights (PhysicalDeviceCubicWeightsFeaturesQCOM) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_custom_border_color (PhysicalDeviceCustomBorderColorFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_custom_border_color (PhysicalDeviceCustomBorderColorPropertiesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_dedicated_allocation_image_aliasing (PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV) +import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_depth_bias_control (PhysicalDeviceDepthBiasControlFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_depth_clamp_zero_one (PhysicalDeviceDepthClampZeroOneFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_depth_clip_control (PhysicalDeviceDepthClipControlFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_depth_clip_enable (PhysicalDeviceDepthClipEnableFeaturesEXT) @@ -134,7 +141,9 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_descriptor_buffer (PhysicalDevice import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_descriptor_buffer (PhysicalDeviceDescriptorBufferPropertiesEXT) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_EXT_descriptor_indexing (PhysicalDeviceDescriptorIndexingFeatures) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_EXT_descriptor_indexing (PhysicalDeviceDescriptorIndexingProperties) +import {-# SOURCE #-} Vulkan.Extensions.VK_NV_descriptor_pool_overallocation (PhysicalDeviceDescriptorPoolOverallocationFeaturesNV) import {-# SOURCE #-} Vulkan.Extensions.VK_VALVE_descriptor_set_host_mapping (PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE) +import {-# SOURCE #-} Vulkan.Extensions.VK_NV_device_generated_commands_compute (PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_device_generated_commands (PhysicalDeviceDeviceGeneratedCommandsFeaturesNV) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_device_generated_commands (PhysicalDeviceDeviceGeneratedCommandsPropertiesNV) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_device_memory_report (PhysicalDeviceDeviceMemoryReportFeaturesEXT) @@ -145,14 +154,20 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_NV_displacement_micromap (PhysicalDev import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_driver_properties (PhysicalDeviceDriverProperties) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_physical_device_drm (PhysicalDeviceDrmPropertiesEXT) import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering (PhysicalDeviceDynamicRenderingFeatures) +import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_dynamic_rendering_unused_attachments (PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_scissor_exclusive (PhysicalDeviceExclusiveScissorFeaturesNV) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_extended_dynamic_state2 (PhysicalDeviceExtendedDynamicState2FeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_extended_dynamic_state3 (PhysicalDeviceExtendedDynamicState3FeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_extended_dynamic_state3 (PhysicalDeviceExtendedDynamicState3PropertiesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_extended_dynamic_state (PhysicalDeviceExtendedDynamicStateFeaturesEXT) +import {-# SOURCE #-} Vulkan.Extensions.VK_NV_extended_sparse_address_space (PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV) +import {-# SOURCE #-} Vulkan.Extensions.VK_NV_extended_sparse_address_space (PhysicalDeviceExtendedSparseAddressSpacePropertiesNV) +import {-# SOURCE #-} Vulkan.Extensions.VK_ANDROID_external_format_resolve (PhysicalDeviceExternalFormatResolveFeaturesANDROID) +import {-# SOURCE #-} Vulkan.Extensions.VK_ANDROID_external_format_resolve (PhysicalDeviceExternalFormatResolvePropertiesANDROID) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_external_memory_capabilities (PhysicalDeviceExternalImageFormatInfo) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_external_memory_host (PhysicalDeviceExternalMemoryHostPropertiesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_external_memory_rdma (PhysicalDeviceExternalMemoryRDMAFeaturesNV) +import {-# SOURCE #-} Vulkan.Extensions.VK_QNX_external_memory_screen_buffer (PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_device_fault (PhysicalDeviceFaultFeaturesEXT) import Vulkan.Core10.DeviceInitialization (PhysicalDeviceFeatures) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_shader_float_controls (PhysicalDeviceFloatControlsProperties) @@ -169,15 +184,20 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_NV_fragment_shading_rate_enums (Physi import {-# SOURCE #-} Vulkan.Extensions.VK_NV_fragment_shading_rate_enums (PhysicalDeviceFragmentShadingRateEnumsPropertiesNV) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_fragment_shading_rate (PhysicalDeviceFragmentShadingRateFeaturesKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_fragment_shading_rate (PhysicalDeviceFragmentShadingRatePropertiesKHR) +import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_frame_boundary (PhysicalDeviceFrameBoundaryFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_global_priority (PhysicalDeviceGlobalPriorityQueryFeaturesKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_graphics_pipeline_library (PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_graphics_pipeline_library (PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT) +import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_host_image_copy (PhysicalDeviceHostImageCopyFeaturesEXT) +import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_host_image_copy (PhysicalDeviceHostImageCopyPropertiesEXT) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_EXT_host_query_reset (PhysicalDeviceHostQueryResetFeatures) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_external_memory_capabilities (PhysicalDeviceIDProperties) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_image_2d_view_of_3d (PhysicalDeviceImage2DViewOf3DFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_image_compression_control (PhysicalDeviceImageCompressionControlFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_image_compression_control_swapchain (PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_image_drm_format_modifier (PhysicalDeviceImageDrmFormatModifierInfoEXT) +import {-# SOURCE #-} Vulkan.Extensions.VK_QCOM_image_processing2 (PhysicalDeviceImageProcessing2FeaturesQCOM) +import {-# SOURCE #-} Vulkan.Extensions.VK_QCOM_image_processing2 (PhysicalDeviceImageProcessing2PropertiesQCOM) import {-# SOURCE #-} Vulkan.Extensions.VK_QCOM_image_processing (PhysicalDeviceImageProcessingFeaturesQCOM) import {-# SOURCE #-} Vulkan.Extensions.VK_QCOM_image_processing (PhysicalDeviceImageProcessingPropertiesQCOM) import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_image_robustness (PhysicalDeviceImageRobustnessFeatures) @@ -190,6 +210,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_NV_inherited_viewport_scissor (Physic import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_inline_uniform_block (PhysicalDeviceInlineUniformBlockFeatures) import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_inline_uniform_block (PhysicalDeviceInlineUniformBlockProperties) import {-# SOURCE #-} Vulkan.Extensions.VK_HUAWEI_invocation_mask (PhysicalDeviceInvocationMaskFeaturesHUAWEI) +import {-# SOURCE #-} Vulkan.Extensions.VK_MSFT_layered_driver (PhysicalDeviceLayeredDriverPropertiesMSFT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_legacy_dithering (PhysicalDeviceLegacyDitheringFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_line_rasterization (PhysicalDeviceLineRasterizationFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_line_rasterization (PhysicalDeviceLineRasterizationPropertiesEXT) @@ -197,6 +218,8 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_NV_linear_color_attachment (PhysicalD import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_maintenance3 (PhysicalDeviceMaintenance3Properties) import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_maintenance4 (PhysicalDeviceMaintenance4Features) import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_maintenance4 (PhysicalDeviceMaintenance4Properties) +import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_maintenance5 (PhysicalDeviceMaintenance5FeaturesKHR) +import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_maintenance5 (PhysicalDeviceMaintenance5PropertiesKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_memory_budget (PhysicalDeviceMemoryBudgetPropertiesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_memory_decompression (PhysicalDeviceMemoryDecompressionFeaturesNV) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_memory_decompression (PhysicalDeviceMemoryDecompressionPropertiesNV) @@ -215,6 +238,8 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_QCOM_multiview_per_view_render_areas import {-# SOURCE #-} Vulkan.Extensions.VK_QCOM_multiview_per_view_viewports (PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_multiview (PhysicalDeviceMultiviewProperties) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_mutable_descriptor_type (PhysicalDeviceMutableDescriptorTypeFeaturesEXT) +import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_nested_command_buffer (PhysicalDeviceNestedCommandBufferFeaturesEXT) +import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_nested_command_buffer (PhysicalDeviceNestedCommandBufferPropertiesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_non_seamless_cube_map (PhysicalDeviceNonSeamlessCubeMapFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_opacity_micromap (PhysicalDeviceOpacityMicromapFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_opacity_micromap (PhysicalDeviceOpacityMicromapPropertiesEXT) @@ -255,6 +280,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_ray_tracing_maintenance1 (Physica import {-# SOURCE #-} Vulkan.Extensions.VK_NV_ray_tracing_motion_blur (PhysicalDeviceRayTracingMotionBlurFeaturesNV) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_ray_tracing_pipeline (PhysicalDeviceRayTracingPipelineFeaturesKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_ray_tracing_pipeline (PhysicalDeviceRayTracingPipelinePropertiesKHR) +import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_ray_tracing_position_fetch (PhysicalDeviceRayTracingPositionFetchFeaturesKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_ray_tracing (PhysicalDeviceRayTracingPropertiesNV) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_representative_fragment_test (PhysicalDeviceRepresentativeFragmentTestFeaturesNV) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_robustness2 (PhysicalDeviceRobustness2FeaturesEXT) @@ -276,6 +302,8 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_ARM_shader_core_properties (PhysicalD import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_shader_demote_to_helper_invocation (PhysicalDeviceShaderDemoteToHelperInvocationFeatures) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_shader_draw_parameters (PhysicalDeviceShaderDrawParametersFeatures) import {-# SOURCE #-} Vulkan.Extensions.VK_AMD_shader_early_and_late_fragment_tests (PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD) +import {-# SOURCE #-} Vulkan.Extensions.VK_AMDX_shader_enqueue (PhysicalDeviceShaderEnqueueFeaturesAMDX) +import {-# SOURCE #-} Vulkan.Extensions.VK_AMDX_shader_enqueue (PhysicalDeviceShaderEnqueuePropertiesAMDX) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_shader_float16_int8 (PhysicalDeviceShaderFloat16Int8Features) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_shader_image_atomic_int64 (PhysicalDeviceShaderImageAtomicInt64FeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_shader_image_footprint (PhysicalDeviceShaderImageFootprintFeaturesNV) @@ -325,6 +353,7 @@ import {-# SOURCE #-} Vulkan.Core13 (PhysicalDeviceVulkan13Properties) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_vulkan_memory_model (PhysicalDeviceVulkanMemoryModelFeatures) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_workgroup_memory_explicit_layout (PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_ycbcr_2plane_444_formats (PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT) +import {-# SOURCE #-} Vulkan.Extensions.VK_QCOM_ycbcr_degamma (PhysicalDeviceYcbcrDegammaFeaturesQCOM) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_ycbcr_image_arrays (PhysicalDeviceYcbcrImageArraysFeaturesEXT) import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_zero_initialize_workgroup_memory (PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures) import Vulkan.Core10.Handles (PhysicalDevice_T) @@ -550,6 +579,12 @@ foreign import ccall -- structure with @handleType@ set to -- 'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID' -- +-- - #VUID-vkGetPhysicalDeviceImageFormatProperties2-pNext-09004# If the +-- @pNext@ chain of @pImageFormatProperties@ includes a +-- 'Vulkan.Extensions.VK_EXT_host_image_copy.HostImageCopyDevicePerformanceQueryEXT' +-- structure, @pImageFormatInfo->usage@ /must/ contain +-- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_HOST_TRANSFER_BIT_EXT' +-- -- == Valid Usage (Implicit) -- -- - #VUID-vkGetPhysicalDeviceImageFormatProperties2-physicalDevice-parameter# @@ -861,12 +896,26 @@ instance Extensible PhysicalDeviceFeatures2 where getNext PhysicalDeviceFeatures2{..} = next extends :: forall e b proxy. Typeable e => proxy e -> (Extends PhysicalDeviceFeatures2 e => b) -> Maybe b extends _ f + | Just Refl <- eqT @e @PhysicalDeviceExternalFormatResolveFeaturesANDROID = Just f + | Just Refl <- eqT @e @PhysicalDeviceDescriptorPoolOverallocationFeaturesNV = Just f + | Just Refl <- eqT @e @PhysicalDeviceImageProcessing2FeaturesQCOM = Just f + | Just Refl <- eqT @e @PhysicalDeviceCubicWeightsFeaturesQCOM = Just f + | Just Refl <- eqT @e @PhysicalDeviceYcbcrDegammaFeaturesQCOM = Just f + | Just Refl <- eqT @e @PhysicalDeviceCubicClampFeaturesQCOM = Just f + | Just Refl <- eqT @e @PhysicalDeviceShaderEnqueueFeaturesAMDX = Just f + | Just Refl <- eqT @e @PhysicalDeviceCooperativeMatrixFeaturesKHR = Just f + | Just Refl <- eqT @e @PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX = Just f | Just Refl <- eqT @e @PhysicalDeviceShaderTileImageFeaturesEXT = Just f | Just Refl <- eqT @e @PhysicalDeviceShaderObjectFeaturesEXT = Just f | Just Refl <- eqT @e @PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM = Just f + | Just Refl <- eqT @e @PhysicalDeviceRayTracingPositionFetchFeaturesKHR = Just f | Just Refl <- eqT @e @PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM = Just f + | Just Refl <- eqT @e @PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV = Just f | Just Refl <- eqT @e @PhysicalDeviceRayTracingInvocationReorderFeaturesNV = Just f + | Just Refl <- eqT @e @PhysicalDeviceDepthBiasControlFeaturesEXT = Just f | Just Refl <- eqT @e @PhysicalDeviceSwapchainMaintenance1FeaturesEXT = Just f + | Just Refl <- eqT @e @PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT = Just f + | Just Refl <- eqT @e @PhysicalDeviceFrameBoundaryFeaturesEXT = Just f | Just Refl <- eqT @e @PhysicalDeviceShaderCoreBuiltinsFeaturesARM = Just f | Just Refl <- eqT @e @PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT = Just f | Just Refl <- eqT @e @PhysicalDeviceFaultFeaturesEXT = Just f @@ -887,6 +936,7 @@ instance Extensible PhysicalDeviceFeatures2 where | Just Refl <- eqT @e @PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT = Just f | Just Refl <- eqT @e @PhysicalDeviceImageCompressionControlFeaturesEXT = Just f | Just Refl <- eqT @e @PhysicalDeviceShaderModuleIdentifierFeaturesEXT = Just f + | Just Refl <- eqT @e @PhysicalDeviceNestedCommandBufferFeaturesEXT = Just f | Just Refl <- eqT @e @PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE = Just f | Just Refl <- eqT @e @PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT = Just f | Just Refl <- eqT @e @PhysicalDeviceLinearColorAttachmentFeaturesNV = Just f @@ -905,12 +955,14 @@ instance Extensible PhysicalDeviceFeatures2 where | Just Refl <- eqT @e @PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT = Just f | Just Refl <- eqT @e @PhysicalDeviceLegacyDitheringFeaturesEXT = Just f | Just Refl <- eqT @e @PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT = Just f + | Just Refl <- eqT @e @PhysicalDeviceHostImageCopyFeaturesEXT = Just f | Just Refl <- eqT @e @PhysicalDeviceSynchronization2Features = Just f | Just Refl <- eqT @e @PhysicalDeviceColorWriteEnableFeaturesEXT = Just f | Just Refl <- eqT @e @PhysicalDeviceExternalMemoryRDMAFeaturesNV = Just f | Just Refl <- eqT @e @PhysicalDeviceVertexInputDynamicStateFeaturesEXT = Just f | Just Refl <- eqT @e @PhysicalDeviceDepthClipControlFeaturesEXT = Just f | Just Refl <- eqT @e @PhysicalDeviceMutableDescriptorTypeFeaturesEXT = Just f + | Just Refl <- eqT @e @PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT = Just f | Just Refl <- eqT @e @PhysicalDeviceImageSlicedViewOf3DFeaturesEXT = Just f | Just Refl <- eqT @e @PhysicalDeviceImage2DViewOf3DFeaturesEXT = Just f | Just Refl <- eqT @e @PhysicalDeviceFragmentShadingRateEnumsFeaturesNV = Just f @@ -998,6 +1050,7 @@ instance Extensible PhysicalDeviceFeatures2 where | Just Refl <- eqT @e @PhysicalDeviceHostQueryResetFeatures = Just f | Just Refl <- eqT @e @PhysicalDeviceShaderFloat16Int8Features = Just f | Just Refl <- eqT @e @PhysicalDeviceShaderDrawParametersFeatures = Just f + | Just Refl <- eqT @e @PhysicalDeviceMaintenance5FeaturesKHR = Just f | Just Refl <- eqT @e @PhysicalDeviceMaintenance4Features = Just f | Just Refl <- eqT @e @PhysicalDeviceInlineUniformBlockFeatures = Just f | Just Refl <- eqT @e @PhysicalDeviceMultiDrawFeaturesEXT = Just f @@ -1011,6 +1064,7 @@ instance Extensible PhysicalDeviceFeatures2 where | Just Refl <- eqT @e @PhysicalDeviceMultiviewFeatures = Just f | Just Refl <- eqT @e @PhysicalDeviceVariablePointersFeatures = Just f | Just Refl <- eqT @e @PhysicalDevicePrivateDataFeatures = Just f + | Just Refl <- eqT @e @PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV = Just f | Just Refl <- eqT @e @PhysicalDeviceDeviceGeneratedCommandsFeaturesNV = Just f | otherwise = Nothing @@ -1067,6 +1121,7 @@ instance es ~ '[] => Zero (PhysicalDeviceFeatures2 es) where -- 'Vulkan.Extensions.VK_EXT_blend_operation_advanced.PhysicalDeviceBlendOperationAdvancedPropertiesEXT', -- 'Vulkan.Extensions.VK_HUAWEI_cluster_culling_shader.PhysicalDeviceClusterCullingShaderPropertiesHUAWEI', -- 'Vulkan.Extensions.VK_EXT_conservative_rasterization.PhysicalDeviceConservativeRasterizationPropertiesEXT', +-- 'Vulkan.Extensions.VK_KHR_cooperative_matrix.PhysicalDeviceCooperativeMatrixPropertiesKHR', -- 'Vulkan.Extensions.VK_NV_cooperative_matrix.PhysicalDeviceCooperativeMatrixPropertiesNV', -- 'Vulkan.Extensions.VK_NV_copy_memory_indirect.PhysicalDeviceCopyMemoryIndirectPropertiesNV', -- 'Vulkan.Extensions.VK_EXT_custom_border_color.PhysicalDeviceCustomBorderColorPropertiesEXT', @@ -1080,6 +1135,8 @@ instance es ~ '[] => Zero (PhysicalDeviceFeatures2 es) where -- 'Vulkan.Core12.Promoted_From_VK_KHR_driver_properties.PhysicalDeviceDriverProperties', -- 'Vulkan.Extensions.VK_EXT_physical_device_drm.PhysicalDeviceDrmPropertiesEXT', -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.PhysicalDeviceExtendedDynamicState3PropertiesEXT', +-- 'Vulkan.Extensions.VK_NV_extended_sparse_address_space.PhysicalDeviceExtendedSparseAddressSpacePropertiesNV', +-- 'Vulkan.Extensions.VK_ANDROID_external_format_resolve.PhysicalDeviceExternalFormatResolvePropertiesANDROID', -- 'Vulkan.Extensions.VK_EXT_external_memory_host.PhysicalDeviceExternalMemoryHostPropertiesEXT', -- 'Vulkan.Core12.Promoted_From_VK_KHR_shader_float_controls.PhysicalDeviceFloatControlsProperties', -- 'Vulkan.Extensions.VK_EXT_fragment_density_map2.PhysicalDeviceFragmentDensityMap2PropertiesEXT', @@ -1089,18 +1146,23 @@ instance es ~ '[] => Zero (PhysicalDeviceFeatures2 es) where -- 'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.PhysicalDeviceFragmentShadingRateEnumsPropertiesNV', -- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PhysicalDeviceFragmentShadingRatePropertiesKHR', -- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT', +-- 'Vulkan.Extensions.VK_EXT_host_image_copy.PhysicalDeviceHostImageCopyPropertiesEXT', -- 'Vulkan.Core11.Promoted_From_VK_KHR_external_memory_capabilities.PhysicalDeviceIDProperties', +-- 'Vulkan.Extensions.VK_QCOM_image_processing2.PhysicalDeviceImageProcessing2PropertiesQCOM', -- 'Vulkan.Extensions.VK_QCOM_image_processing.PhysicalDeviceImageProcessingPropertiesQCOM', -- 'Vulkan.Core13.Promoted_From_VK_EXT_inline_uniform_block.PhysicalDeviceInlineUniformBlockProperties', +-- 'Vulkan.Extensions.VK_MSFT_layered_driver.PhysicalDeviceLayeredDriverPropertiesMSFT', -- 'Vulkan.Extensions.VK_EXT_line_rasterization.PhysicalDeviceLineRasterizationPropertiesEXT', -- 'Vulkan.Core11.Promoted_From_VK_KHR_maintenance3.PhysicalDeviceMaintenance3Properties', -- 'Vulkan.Core13.Promoted_From_VK_KHR_maintenance4.PhysicalDeviceMaintenance4Properties', +-- 'Vulkan.Extensions.VK_KHR_maintenance5.PhysicalDeviceMaintenance5PropertiesKHR', -- 'Vulkan.Extensions.VK_NV_memory_decompression.PhysicalDeviceMemoryDecompressionPropertiesNV', -- 'Vulkan.Extensions.VK_EXT_mesh_shader.PhysicalDeviceMeshShaderPropertiesEXT', -- 'Vulkan.Extensions.VK_NV_mesh_shader.PhysicalDeviceMeshShaderPropertiesNV', -- 'Vulkan.Extensions.VK_EXT_multi_draw.PhysicalDeviceMultiDrawPropertiesEXT', -- 'Vulkan.Extensions.VK_NVX_multiview_per_view_attributes.PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX', -- 'Vulkan.Core11.Promoted_From_VK_KHR_multiview.PhysicalDeviceMultiviewProperties', +-- 'Vulkan.Extensions.VK_EXT_nested_command_buffer.PhysicalDeviceNestedCommandBufferPropertiesEXT', -- 'Vulkan.Extensions.VK_EXT_opacity_micromap.PhysicalDeviceOpacityMicromapPropertiesEXT', -- 'Vulkan.Extensions.VK_NV_optical_flow.PhysicalDeviceOpticalFlowPropertiesNV', -- 'Vulkan.Extensions.VK_EXT_pci_bus_info.PhysicalDevicePCIBusInfoPropertiesEXT', @@ -1121,6 +1183,7 @@ instance es ~ '[] => Zero (PhysicalDeviceFeatures2 es) where -- 'Vulkan.Extensions.VK_AMD_shader_core_properties2.PhysicalDeviceShaderCoreProperties2AMD', -- 'Vulkan.Extensions.VK_AMD_shader_core_properties.PhysicalDeviceShaderCorePropertiesAMD', -- 'Vulkan.Extensions.VK_ARM_shader_core_properties.PhysicalDeviceShaderCorePropertiesARM', +-- 'Vulkan.Extensions.VK_AMDX_shader_enqueue.PhysicalDeviceShaderEnqueuePropertiesAMDX', -- 'Vulkan.Core13.Promoted_From_VK_KHR_shader_integer_dot_product.PhysicalDeviceShaderIntegerDotProductProperties', -- 'Vulkan.Extensions.VK_EXT_shader_module_identifier.PhysicalDeviceShaderModuleIdentifierPropertiesEXT', -- 'Vulkan.Extensions.VK_EXT_shader_object.PhysicalDeviceShaderObjectPropertiesEXT', @@ -1170,9 +1233,15 @@ instance Extensible PhysicalDeviceProperties2 where getNext PhysicalDeviceProperties2{..} = next extends :: forall e b proxy. Typeable e => proxy e -> (Extends PhysicalDeviceProperties2 e => b) -> Maybe b extends _ f + | Just Refl <- eqT @e @PhysicalDeviceExternalFormatResolvePropertiesANDROID = Just f + | Just Refl <- eqT @e @PhysicalDeviceLayeredDriverPropertiesMSFT = Just f + | Just Refl <- eqT @e @PhysicalDeviceImageProcessing2PropertiesQCOM = Just f + | Just Refl <- eqT @e @PhysicalDeviceShaderEnqueuePropertiesAMDX = Just f + | Just Refl <- eqT @e @PhysicalDeviceCooperativeMatrixPropertiesKHR = Just f | Just Refl <- eqT @e @PhysicalDeviceShaderTileImagePropertiesEXT = Just f | Just Refl <- eqT @e @PhysicalDeviceShaderObjectPropertiesEXT = Just f | Just Refl <- eqT @e @PhysicalDeviceShaderCorePropertiesARM = Just f + | Just Refl <- eqT @e @PhysicalDeviceExtendedSparseAddressSpacePropertiesNV = Just f | Just Refl <- eqT @e @PhysicalDeviceRayTracingInvocationReorderPropertiesNV = Just f | Just Refl <- eqT @e @PhysicalDeviceShaderCoreBuiltinsPropertiesARM = Just f | Just Refl <- eqT @e @PhysicalDeviceOpticalFlowPropertiesNV = Just f @@ -1181,6 +1250,7 @@ instance Extensible PhysicalDeviceProperties2 where | Just Refl <- eqT @e @PhysicalDeviceDisplacementMicromapPropertiesNV = Just f | Just Refl <- eqT @e @PhysicalDeviceOpacityMicromapPropertiesEXT = Just f | Just Refl <- eqT @e @PhysicalDeviceShaderModuleIdentifierPropertiesEXT = Just f + | Just Refl <- eqT @e @PhysicalDeviceNestedCommandBufferPropertiesEXT = Just f | Just Refl <- eqT @e @PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT = Just f | Just Refl <- eqT @e @PhysicalDeviceFragmentShaderBarycentricPropertiesKHR = Just f | Just Refl <- eqT @e @PhysicalDeviceDrmPropertiesEXT = Just f @@ -1188,6 +1258,7 @@ instance Extensible PhysicalDeviceProperties2 where | Just Refl <- eqT @e @PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT = Just f | Just Refl <- eqT @e @PhysicalDeviceDescriptorBufferPropertiesEXT = Just f | Just Refl <- eqT @e @PhysicalDeviceProvokingVertexPropertiesEXT = Just f + | Just Refl <- eqT @e @PhysicalDeviceHostImageCopyPropertiesEXT = Just f | Just Refl <- eqT @e @PhysicalDeviceFragmentShadingRateEnumsPropertiesNV = Just f | Just Refl <- eqT @e @PhysicalDeviceFragmentShadingRatePropertiesKHR = Just f | Just Refl <- eqT @e @PhysicalDevicePortabilitySubsetPropertiesKHR = Just f @@ -1227,6 +1298,7 @@ instance Extensible PhysicalDeviceProperties2 where | Just Refl <- eqT @e @PhysicalDeviceConservativeRasterizationPropertiesEXT = Just f | Just Refl <- eqT @e @PhysicalDeviceExternalMemoryHostPropertiesEXT = Just f | Just Refl <- eqT @e @PhysicalDeviceFloatControlsProperties = Just f + | Just Refl <- eqT @e @PhysicalDeviceMaintenance5PropertiesKHR = Just f | Just Refl <- eqT @e @PhysicalDeviceMaintenance4Properties = Just f | Just Refl <- eqT @e @PhysicalDeviceMaintenance3Properties = Just f | Just Refl <- eqT @e @PhysicalDeviceInlineUniformBlockProperties = Just f @@ -1394,6 +1466,7 @@ instance es ~ '[] => Zero (FormatProperties2 es) where -- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.AndroidHardwareBufferUsageANDROID', -- 'Vulkan.Core11.Promoted_From_VK_KHR_external_memory_capabilities.ExternalImageFormatProperties', -- 'Vulkan.Extensions.VK_EXT_filter_cubic.FilterCubicImageViewImageFormatPropertiesEXT', +-- 'Vulkan.Extensions.VK_EXT_host_image_copy.HostImageCopyDevicePerformanceQueryEXT', -- 'Vulkan.Extensions.VK_EXT_image_compression_control.ImageCompressionPropertiesEXT', -- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.SamplerYcbcrConversionImageFormatProperties', -- or @@ -1433,6 +1506,7 @@ instance Extensible ImageFormatProperties2 where extends :: forall e b proxy. Typeable e => proxy e -> (Extends ImageFormatProperties2 e => b) -> Maybe b extends _ f | Just Refl <- eqT @e @ImageCompressionPropertiesEXT = Just f + | Just Refl <- eqT @e @HostImageCopyDevicePerformanceQueryEXT = Just f | Just Refl <- eqT @e @FilterCubicImageViewImageFormatPropertiesEXT = Just f | Just Refl <- eqT @e @AndroidHardwareBufferUsageANDROID = Just f | Just Refl <- eqT @e @TextureLODGatherFormatPropertiesAMD = Just f diff --git a/src/Vulkan/Core11/Promoted_From_VK_KHR_maintenance1.hs b/src/Vulkan/Core11/Promoted_From_VK_KHR_maintenance1.hs index 20779e6b6..aab536659 100644 --- a/src/Vulkan/Core11/Promoted_From_VK_KHR_maintenance1.hs +++ b/src/Vulkan/Core11/Promoted_From_VK_KHR_maintenance1.hs @@ -60,7 +60,7 @@ foreign import ccall -- the only way to release memory from a command pool to the system -- requires calling 'Vulkan.Core10.CommandPool.resetCommandPool', which -- cannot be executed while any command buffers from that pool are still in --- use. Subsequent recording operations into command buffers will re-use +-- use. Subsequent recording operations into command buffers will reuse -- this memory but since total memory requirements fluctuate over time, -- unused memory can accumulate. -- diff --git a/src/Vulkan/Core11/Promoted_From_VK_KHR_multiview.hs b/src/Vulkan/Core11/Promoted_From_VK_KHR_multiview.hs index 53edae40c..275ea9fb5 100644 --- a/src/Vulkan/Core11/Promoted_From_VK_KHR_multiview.hs +++ b/src/Vulkan/Core11/Promoted_From_VK_KHR_multiview.hs @@ -53,7 +53,8 @@ import Vulkan.Core10.Enums.StructureType (StructureType(..)) -- -- = Description -- --- - @sType@ is the type of this structure. +-- - @sType@ is a 'Vulkan.Core10.Enums.StructureType.StructureType' value +-- identifying this structure. -- -- - @pNext@ is @NULL@ or a pointer to a structure extending this -- structure. diff --git a/src/Vulkan/Core11/Promoted_From_VK_KHR_sampler_ycbcr_conversion.hs b/src/Vulkan/Core11/Promoted_From_VK_KHR_sampler_ycbcr_conversion.hs index d485bb25c..a9d3aa78a 100644 --- a/src/Vulkan/Core11/Promoted_From_VK_KHR_sampler_ycbcr_conversion.hs +++ b/src/Vulkan/Core11/Promoted_From_VK_KHR_sampler_ycbcr_conversion.hs @@ -79,6 +79,7 @@ import Vulkan.CStruct.Extends (Extends) import Vulkan.CStruct.Extends (Extendss) import Vulkan.CStruct.Extends (Extensible(..)) import {-# SOURCE #-} Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer (ExternalFormatANDROID) +import {-# SOURCE #-} Vulkan.Extensions.VK_QNX_external_memory_screen_buffer (ExternalFormatQNX) import Vulkan.Core10.Enums.Filter (Filter) import Vulkan.Core10.Enums.Format (Format) import Vulkan.Core10.Enums.ImageAspectFlagBits (ImageAspectFlagBits) @@ -90,6 +91,7 @@ import Vulkan.Core10.Enums.Result (Result) import Vulkan.Core10.Enums.Result (Result(..)) import Vulkan.Core11.Handles (SamplerYcbcrConversion) import Vulkan.Core11.Handles (SamplerYcbcrConversion(..)) +import {-# SOURCE #-} Vulkan.Extensions.VK_QCOM_ycbcr_degamma (SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM) import Vulkan.Core11.Enums.SamplerYcbcrModelConversion (SamplerYcbcrModelConversion) import Vulkan.Core11.Enums.SamplerYcbcrRange (SamplerYcbcrRange) import Vulkan.CStruct.Extends (SomeStruct) @@ -382,7 +384,7 @@ instance Zero SamplerYcbcrConversionInfo where -- -- - #VUID-VkSamplerYcbcrConversionCreateInfo-format-04061# If an -- external format conversion is not being created, @format@ /must/ --- represent unsigned normalized values (i.e. the format must be a +-- represent unsigned normalized values (i.e. the format /must/ be a -- @UNORM@ format) -- -- - #VUID-VkSamplerYcbcrConversionCreateInfo-format-01650# The @@ -474,15 +476,43 @@ instance Zero SamplerYcbcrConversionInfo where -- @chromaFilter@ /must/ not be -- 'Vulkan.Core10.Enums.Filter.FILTER_LINEAR' -- +-- - #VUID-VkSamplerYcbcrConversionCreateInfo-pNext-09207# If the @pNext@ +-- chain includes a +-- 'Vulkan.Extensions.VK_QCOM_ycbcr_degamma.SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM' +-- structure, and if the +-- +-- feature is not enabled, then +-- 'Vulkan.Extensions.VK_QCOM_ycbcr_degamma.SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM'::@enableYDegamma@ +-- /must/ be 'Vulkan.Core10.FundamentalTypes.FALSE' +-- +-- - #VUID-VkSamplerYcbcrConversionCreateInfo-pNext-09208# If the @pNext@ +-- chain includes a +-- 'Vulkan.Extensions.VK_QCOM_ycbcr_degamma.SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM' +-- structure, and if the +-- +-- feature is not enabled, then +-- 'Vulkan.Extensions.VK_QCOM_ycbcr_degamma.SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM'::@enableCbCrDegamma@ +-- /must/ be 'Vulkan.Core10.FundamentalTypes.FALSE' +-- +-- - #VUID-VkSamplerYcbcrConversionCreateInfo-pNext-09209# If the @pNext@ +-- chain includes a +-- 'Vulkan.Extensions.VK_QCOM_ycbcr_degamma.SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM' +-- structure, @format@ /must/ be a format with 8-bit R, G, and B +-- components. +-- -- == Valid Usage (Implicit) -- -- - #VUID-VkSamplerYcbcrConversionCreateInfo-sType-sType# @sType@ /must/ -- be -- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO' -- --- - #VUID-VkSamplerYcbcrConversionCreateInfo-pNext-pNext# @pNext@ /must/ --- be @NULL@ or a pointer to a valid instance of --- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID' +-- - #VUID-VkSamplerYcbcrConversionCreateInfo-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_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID', +-- 'Vulkan.Extensions.VK_QNX_external_memory_screen_buffer.ExternalFormatQNX', +-- or +-- 'Vulkan.Extensions.VK_QCOM_ycbcr_degamma.SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM' -- -- - #VUID-VkSamplerYcbcrConversionCreateInfo-sType-unique# The @sType@ -- value of each struct in the @pNext@ chain /must/ be unique @@ -583,6 +613,8 @@ instance Extensible SamplerYcbcrConversionCreateInfo where getNext SamplerYcbcrConversionCreateInfo{..} = next extends :: forall e b proxy. Typeable e => proxy e -> (Extends SamplerYcbcrConversionCreateInfo e => b) -> Maybe b extends _ f + | Just Refl <- eqT @e @SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM = Just f + | Just Refl <- eqT @e @ExternalFormatQNX = Just f | Just Refl <- eqT @e @ExternalFormatANDROID = Just f | otherwise = Nothing @@ -665,6 +697,7 @@ instance es ~ '[] => Zero (SamplerYcbcrConversionCreateInfo es) where -- 'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_OPTIMAL', then -- @planeAspect@ /must/ be a single valid -- +-- bit -- -- - #VUID-VkBindImagePlaneMemoryInfo-planeAspect-02284# If the image’s -- @tiling@ is @@ -744,6 +777,7 @@ instance Zero BindImagePlaneMemoryInfo where -- 'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_OPTIMAL', then -- @planeAspect@ /must/ be a single valid -- +-- bit -- -- - #VUID-VkImagePlaneMemoryRequirementsInfo-planeAspect-02282# If the -- image’s @tiling@ is diff --git a/src/Vulkan/Core11/Promoted_From_VK_KHR_variable_pointers.hs b/src/Vulkan/Core11/Promoted_From_VK_KHR_variable_pointers.hs index af0afc6c8..4116b60e2 100644 --- a/src/Vulkan/Core11/Promoted_From_VK_KHR_variable_pointers.hs +++ b/src/Vulkan/Core11/Promoted_From_VK_KHR_variable_pointers.hs @@ -41,7 +41,8 @@ pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES = STRUCTURE_TYP -- -- = Description -- --- - @sType@ is the type of this structure. +-- - @sType@ is a 'Vulkan.Core10.Enums.StructureType.StructureType' value +-- identifying this structure. -- -- - @pNext@ is @NULL@ or a pointer to a structure extending this -- structure. diff --git a/src/Vulkan/Core12.hs b/src/Vulkan/Core12.hs index cf20a6b7a..2504c6baf 100644 --- a/src/Vulkan/Core12.hs +++ b/src/Vulkan/Core12.hs @@ -550,7 +550,8 @@ instance Zero PhysicalDeviceVulkan11Properties where -- -- = Description -- --- - @sType@ is the type of this structure. +-- - @sType@ is a 'Vulkan.Core10.Enums.StructureType.StructureType' value +-- identifying this structure. -- -- - @pNext@ is @NULL@ or a pointer to a structure extending this -- structure. @@ -1554,10 +1555,9 @@ data PhysicalDeviceVulkan12Properties = PhysicalDeviceVulkan12Properties -- disabled. robustBufferAccessUpdateAfterBind :: Bool , -- | #limits-quadDivergentImplicitLod# @quadDivergentImplicitLod@ is a - -- boolean value indicating whether implicit level of detail calculations - -- for image operations have well-defined results when the image and\/or - -- sampler objects used for the instruction are not uniform within a quad. - -- See + -- boolean value indicating whether implicit LOD calculations for image + -- operations have well-defined results when the image and\/or sampler + -- objects used for the instruction are not uniform within a quad. See -- . quadDivergentImplicitLod :: Bool , -- | #limits-maxPerStageDescriptorUpdateAfterBindSamplers# diff --git a/src/Vulkan/Core12/Enums/DriverId.hs b/src/Vulkan/Core12/Enums/DriverId.hs index 5223603e9..6f8e06cfa 100644 --- a/src/Vulkan/Core12/Enums/DriverId.hs +++ b/src/Vulkan/Core12/Enums/DriverId.hs @@ -25,6 +25,7 @@ module Vulkan.Core12.Enums.DriverId (DriverId( DRIVER_ID_AMD_PROPRIETARY , DRIVER_ID_MESA_DOZEN , DRIVER_ID_MESA_NVK , DRIVER_ID_IMAGINATION_OPEN_SOURCE_MESA + , DRIVER_ID_MESA_AGXV , .. )) where @@ -140,6 +141,9 @@ pattern DRIVER_ID_MESA_NVK = DriverId 24 -- No documentation found for Nested "VkDriverId" "VK_DRIVER_ID_IMAGINATION_OPEN_SOURCE_MESA" pattern DRIVER_ID_IMAGINATION_OPEN_SOURCE_MESA = DriverId 25 +-- No documentation found for Nested "VkDriverId" "VK_DRIVER_ID_MESA_AGXV" +pattern DRIVER_ID_MESA_AGXV = DriverId 26 + {-# COMPLETE DRIVER_ID_AMD_PROPRIETARY , DRIVER_ID_AMD_OPEN_SOURCE @@ -165,7 +169,8 @@ pattern DRIVER_ID_IMAGINATION_OPEN_SOURCE_MESA = DriverId 25 , DRIVER_ID_MESA_VENUS , DRIVER_ID_MESA_DOZEN , DRIVER_ID_MESA_NVK - , DRIVER_ID_IMAGINATION_OPEN_SOURCE_MESA :: + , DRIVER_ID_IMAGINATION_OPEN_SOURCE_MESA + , DRIVER_ID_MESA_AGXV :: DriverId #-} @@ -217,6 +222,7 @@ showTableDriverId = ( DRIVER_ID_IMAGINATION_OPEN_SOURCE_MESA , "IMAGINATION_OPEN_SOURCE_MESA" ) + , (DRIVER_ID_MESA_AGXV, "MESA_AGXV") ] instance Show DriverId where diff --git a/src/Vulkan/Core12/Enums/ResolveModeFlagBits.hs b/src/Vulkan/Core12/Enums/ResolveModeFlagBits.hs index deba732fc..779418dd4 100644 --- a/src/Vulkan/Core12/Enums/ResolveModeFlagBits.hs +++ b/src/Vulkan/Core12/Enums/ResolveModeFlagBits.hs @@ -6,6 +6,7 @@ module Vulkan.Core12.Enums.ResolveModeFlagBits ( ResolveModeFlags , RESOLVE_MODE_AVERAGE_BIT , RESOLVE_MODE_MIN_BIT , RESOLVE_MODE_MAX_BIT + , RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID , .. ) ) where @@ -26,6 +27,21 @@ type ResolveModeFlags = ResolveModeFlagBits -- | VkResolveModeFlagBits - Bitmask indicating supported depth and stencil -- resolve modes -- +-- = Description +-- +-- If no resolve mode is otherwise specified, 'RESOLVE_MODE_AVERAGE_BIT' is +-- used. +-- +-- Note +-- +-- No range compression or Y′CBCR model conversion is performed by +-- 'RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID'; applications have to +-- do these conversions themselves. Value outputs are expected to match +-- those that would be read through a +-- . +-- The color space that the values should be in is defined by the platform +-- and is not exposed via Vulkan. +-- -- = See Also -- -- , @@ -55,6 +71,22 @@ pattern RESOLVE_MODE_MIN_BIT = ResolveModeFlagBits 0x00000004 -- the maximum of the sample values. pattern RESOLVE_MODE_MAX_BIT = ResolveModeFlagBits 0x00000008 +-- | 'RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID' indicates that rather +-- than a multisample resolve, a single sampled color attachment will be +-- downsampled into a Y′CBCR format image specified by an external Android +-- format. Unlike other resolve modes, implementations can resolve multiple +-- times during rendering, or even bypass writing to the color attachment +-- altogether, as long as the final value is resolved to the resolve +-- attachment. Values in the G, B, and R channels of the color attachment +-- will be written to the Y, CB, and CR channels of the external format +-- image, respectively. Chroma values are calculated as if sampling with a +-- linear filter from the color attachment at full rate, at the location +-- the chroma values sit according to +-- 'Vulkan.Extensions.VK_ANDROID_external_format_resolve.PhysicalDeviceExternalFormatResolvePropertiesANDROID'::@chromaOffsetX@, +-- 'Vulkan.Extensions.VK_ANDROID_external_format_resolve.PhysicalDeviceExternalFormatResolvePropertiesANDROID'::@chromaOffsetY@, +-- and the chroma sample rate of the resolved image. +pattern RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID = ResolveModeFlagBits 0x00000010 + conNameResolveModeFlagBits :: String conNameResolveModeFlagBits = "ResolveModeFlagBits" @@ -71,6 +103,10 @@ showTableResolveModeFlagBits = , (RESOLVE_MODE_AVERAGE_BIT, "AVERAGE_BIT") , (RESOLVE_MODE_MIN_BIT, "MIN_BIT") , (RESOLVE_MODE_MAX_BIT, "MAX_BIT") + , + ( RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID + , "EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID" + ) ] instance Show ResolveModeFlagBits where diff --git a/src/Vulkan/Core12/Enums/SamplerReductionMode.hs b/src/Vulkan/Core12/Enums/SamplerReductionMode.hs index decc60a07..d38b6bcf5 100644 --- a/src/Vulkan/Core12/Enums/SamplerReductionMode.hs +++ b/src/Vulkan/Core12/Enums/SamplerReductionMode.hs @@ -3,6 +3,7 @@ module Vulkan.Core12.Enums.SamplerReductionMode (SamplerReductionMode( SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE , SAMPLER_REDUCTION_MODE_MIN , SAMPLER_REDUCTION_MODE_MAX + , SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM , .. )) where @@ -41,10 +42,17 @@ pattern SAMPLER_REDUCTION_MODE_MIN = SamplerReductionMode 1 -- non-zero weights. pattern SAMPLER_REDUCTION_MODE_MAX = SamplerReductionMode 2 +-- | 'SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM' specifies +-- values are combined as described by +-- 'SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE', followed by a +-- . +pattern SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM = SamplerReductionMode 1000521000 + {-# COMPLETE SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE , SAMPLER_REDUCTION_MODE_MIN - , SAMPLER_REDUCTION_MODE_MAX :: + , SAMPLER_REDUCTION_MODE_MAX + , SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM :: SamplerReductionMode #-} @@ -62,6 +70,10 @@ showTableSamplerReductionMode = ) , (SAMPLER_REDUCTION_MODE_MIN, "MIN") , (SAMPLER_REDUCTION_MODE_MAX, "MAX") + , + ( SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM + , "WEIGHTED_AVERAGE_RANGECLAMP_QCOM" + ) ] instance Show SamplerReductionMode where diff --git a/src/Vulkan/Core12/Promoted_From_VK_EXT_descriptor_indexing.hs b/src/Vulkan/Core12/Promoted_From_VK_EXT_descriptor_indexing.hs index 3c19e9281..becd7287e 100644 --- a/src/Vulkan/Core12/Promoted_From_VK_EXT_descriptor_indexing.hs +++ b/src/Vulkan/Core12/Promoted_From_VK_EXT_descriptor_indexing.hs @@ -488,10 +488,10 @@ data PhysicalDeviceDescriptorIndexingProperties = PhysicalDeviceDescriptorIndexi -- disabled. robustBufferAccessUpdateAfterBind :: Bool , -- | #extension-limits-quadDivergentImplicitLod# @quadDivergentImplicitLod@ - -- is a boolean value indicating whether implicit level of detail - -- calculations for image operations have well-defined results when the - -- image and\/or sampler objects used for the instruction are not uniform - -- within a quad. See + -- is a boolean value indicating whether implicit LOD calculations for + -- image operations have well-defined results when the image and\/or + -- sampler objects used for the instruction are not uniform within a quad. + -- See -- . quadDivergentImplicitLod :: Bool , -- | #extension-limits-maxPerStageDescriptorUpdateAfterBindSamplers# @@ -794,6 +794,11 @@ instance Zero PhysicalDeviceDescriptorIndexingProperties where -- 'Vulkan.Core10.DescriptorSet.DescriptorSetLayoutCreateInfo'::@pBindings@ -- /must/ have a smaller value of @binding@ -- +-- - #VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-pBindingFlags-09379# +-- If an element of @pBindingFlags@ includes +-- 'Vulkan.Core12.Enums.DescriptorBindingFlagBits.DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT', +-- then it /must/ be the element with the the highest @binding@ number +-- -- - #VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-descriptorBindingUniformBufferUpdateAfterBind-03005# -- If -- 'PhysicalDeviceDescriptorIndexingFeatures'::@descriptorBindingUniformBufferUpdateAfterBind@ @@ -1064,11 +1069,12 @@ instance Zero DescriptorSetVariableDescriptorCountAllocateInfo where -- 'PhysicalDeviceDescriptorIndexingFeatures'::@descriptorBindingVariableDescriptorCount@ -- feature is not enabled, then @maxVariableDescriptorCount@ is set to -- zero. For the purposes of this command, a variable-sized descriptor --- binding with a @descriptorCount@ of zero is treated as if the --- @descriptorCount@ is one, and thus the binding is not ignored and the --- maximum descriptor count will be returned. If the layout is not --- supported, then the value written to @maxVariableDescriptorCount@ is --- undefined. +-- binding with a @descriptorCount@ of zero is treated as having a +-- @descriptorCount@ of four if @descriptorType@ is +-- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK', +-- or one otherwise, and thus the binding is not ignored and the maximum +-- descriptor count will be returned. If the layout is not supported, then +-- the value written to @maxVariableDescriptorCount@ is undefined. -- -- == Valid Usage (Implicit) -- diff --git a/src/Vulkan/Core12/Promoted_From_VK_KHR_create_renderpass2.hs b/src/Vulkan/Core12/Promoted_From_VK_KHR_create_renderpass2.hs index 0c0e86a3c..cf47fa78e 100644 --- a/src/Vulkan/Core12/Promoted_From_VK_KHR_create_renderpass2.hs +++ b/src/Vulkan/Core12/Promoted_From_VK_KHR_create_renderpass2.hs @@ -88,6 +88,7 @@ import Vulkan.Core10.Handles (Device_T) import Vulkan.CStruct.Extends (Extends) import Vulkan.CStruct.Extends (Extendss) import Vulkan.CStruct.Extends (Extensible(..)) +import {-# SOURCE #-} Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer (ExternalFormatANDROID) import Vulkan.Core10.Enums.Format (Format) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_fragment_shading_rate (FragmentShadingRateAttachmentInfoKHR) import Vulkan.Core10.Enums.ImageAspectFlagBits (ImageAspectFlags) @@ -363,6 +364,12 @@ foreign import ccall -- 'Vulkan.Core10.Enums.AttachmentDescriptionFlagBits.ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT' -- set -- +-- - #VUID-vkCmdBeginRenderPass2-framebuffer-09046# If any attachments +-- specified in @framebuffer@ are used by @renderPass@ and are bound to +-- overlapping memory locations, there /must/ be only one that is used +-- as a color attachment, depth\/stencil, or resolve attachment in any +-- subpass +-- -- - #VUID-vkCmdBeginRenderPass2-initialLayout-07002# If any of the -- @initialLayout@ or @finalLayout@ member of the -- 'Vulkan.Core10.Pass.AttachmentDescription' structures or the @@ -742,10 +749,13 @@ cmdEndRenderPass2 commandBuffer subpassEndInfo = liftIO . evalContT $ do -- 'Vulkan.Core12.Promoted_From_VK_KHR_separate_depth_stencil_layouts.AttachmentDescriptionStencilLayout' -- structure in the @pNext@ chain. -- --- == Valid Usage +-- @loadOp@ and @storeOp@ are ignored for fragment shading rate +-- attachments. No access to the shading rate attachment is performed in +-- @loadOp@ and @storeOp@. Instead, access to +-- 'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR' +-- is performed as fragments are rasterized. -- --- - #VUID-VkAttachmentDescription2-format-06698# @format@ /must/ not be --- VK_FORMAT_UNDEFINED +-- == Valid Usage -- -- - #VUID-VkAttachmentDescription2-format-06699# If @format@ includes a -- color or depth component and @loadOp@ is @@ -880,6 +890,11 @@ cmdEndRenderPass2 commandBuffer subpassEndInfo = liftIO . evalContT $ do -- feature is not enabled, @finalLayout@ /must/ not be -- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT' -- +-- - #VUID-VkAttachmentDescription2-samples-08745# @samples@ /must/ be a +-- bit value that is set in @imageCreateSampleCounts@ (as defined in +-- ) +-- for the given @format@ +-- -- - #VUID-VkAttachmentDescription2-pNext-06704# If the @pNext@ chain -- does not include a -- 'Vulkan.Core12.Promoted_From_VK_KHR_separate_depth_stencil_layouts.AttachmentDescriptionStencilLayout' @@ -937,14 +952,28 @@ cmdEndRenderPass2 commandBuffer subpassEndInfo = liftIO . evalContT $ do -- or -- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL' -- +-- - #VUID-VkAttachmentDescription2-format-09332# If +-- +-- is not enabled, @format@ /must/ not be +-- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' +-- +-- - #VUID-VkAttachmentDescription2-format-09334# If @format@ is +-- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED', there /must/ be a +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID' +-- structure in the @pNext@ chain with a @externalFormat@ that is not +-- equal to @0@ +-- -- == Valid Usage (Implicit) -- -- - #VUID-VkAttachmentDescription2-sType-sType# @sType@ /must/ be -- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2' -- --- - #VUID-VkAttachmentDescription2-pNext-pNext# @pNext@ /must/ be @NULL@ --- or a pointer to a valid instance of +-- - #VUID-VkAttachmentDescription2-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.Core12.Promoted_From_VK_KHR_separate_depth_stencil_layouts.AttachmentDescriptionStencilLayout' +-- or +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID' -- -- - #VUID-VkAttachmentDescription2-sType-unique# The @sType@ value of -- each struct in the @pNext@ chain /must/ be unique @@ -1049,6 +1078,7 @@ instance Extensible AttachmentDescription2 where extends :: forall e b proxy. Typeable e => proxy e -> (Extends AttachmentDescription2 e => b) -> Maybe b extends _ f | Just Refl <- eqT @e @AttachmentDescriptionStencilLayout = Just f + | Just Refl <- eqT @e @ExternalFormatANDROID = Just f | otherwise = Nothing instance ( Extendss AttachmentDescription2 es @@ -1297,6 +1327,73 @@ instance es ~ '[] => Zero (AttachmentReference2 es) where -- identified attachment defines a fragment shading rate attachment for -- that subpass. -- +-- If any element of @pResolveAttachments@ is an image specified with an +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID', +-- values in the corresponding color attachment will be resolved to the +-- resolve attachment in the same manner as specified for +-- . +-- +-- If the +-- +-- limit is 'Vulkan.Core10.FundamentalTypes.TRUE', values in the color +-- attachment will be loaded from the resolve attachment at the start of +-- rendering, and /may/ also be reloaded any time after a resolve occurs or +-- the resolve attachment is written to; if this occurs it /must/ +-- happen-before any writes to the color attachment are performed which +-- happen-after the resolve that triggers this. If any color component in +-- the external format is subsampled, values will be read from the nearest +-- sample in the image when they are loaded. If the color attachment is +-- also used as an input attachment, the same behavior applies. +-- +-- Setting the color attachment to +-- 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED' when an external resolve +-- attachment is used and the +-- +-- limit is 'Vulkan.Core10.FundamentalTypes.TRUE' will not result in color +-- attachment writes to be discarded for that attachment. +-- +-- When +-- +-- is 'Vulkan.Core10.FundamentalTypes.TRUE', the color output from the +-- subpass can still be read via an input attachment; but the application +-- cannot bind an image view for the color attachment as there is no such +-- image view bound. Instead to access the data as an input attachment +-- applications /can/ use the resolve attachment in its place - using the +-- resolve attachment image for the descriptor, and setting the +-- corresponding element of @pInputAttachments@ to the index of the resolve +-- attachment. +-- +-- Loads or input attachment reads from the resolve attachment are +-- performed as if using a +-- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.SamplerYcbcrConversionCreateInfo' +-- with the following parameters: +-- +-- > VkSamplerYcbcrConversionCreateInfo createInfo = { +-- > .sType = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO, +-- > .pNext = NULL, +-- > .format = VK_FORMAT_UNDEFINED, +-- > .ycbcrModel = VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY, +-- > .ycbcrRange = VK_SAMPLER_YCBCR_RANGE_ITU_FULL, +-- > .components = { +-- > .r = VK_COMPONENT_SWIZZLE_B +-- > .g = VK_COMPONENT_SWIZZLE_R +-- > .b = VK_COMPONENT_SWIZZLE_G +-- > .a = VK_COMPONENT_SWIZZLE_IDENTITY}, +-- > .xChromaOffset = properties.chromaOffsetX, +-- > .yChromaOffset = properties.chromaOffsetY, +-- > .chromaFilter = ename:VK_FILTER_NEAREST, +-- > .forceExplicitReconstruction = ... }; +-- +-- where @properties@ is equal to +-- 'Vulkan.Extensions.VK_ANDROID_external_format_resolve.PhysicalDeviceExternalFormatResolvePropertiesANDROID' +-- returned by the device and @forceExplicitReconstruction@ is effectively +-- ignored as the +-- 'Vulkan.Core11.Enums.SamplerYcbcrModelConversion.SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY' +-- model is used. The applied swizzle is the same effective swizzle that +-- would be applied by the +-- 'Vulkan.Core11.Enums.SamplerYcbcrModelConversion.SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY' +-- model, but no range expansion is applied. +-- -- == Valid Usage -- -- - #VUID-VkSubpassDescription2-attachment-06912# If the @attachment@ @@ -1397,7 +1494,7 @@ instance es ~ '[] => Zero (AttachmentReference2 es) where -- member of @pDepthStencilAttachment@ is not -- 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED' and its @pNext@ chain -- includes a --- 'Vulkan.Core12.Promoted_From_VK_KHR_separate_depth_stencil_layouts.AttachmentDescriptionStencilLayout' +-- 'Vulkan.Core12.Promoted_From_VK_KHR_separate_depth_stencil_layouts.AttachmentReferenceStencilLayout' -- structure, the @layout@ member of @pDepthStencilAttachment@ /must/ -- not be -- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL' @@ -1420,29 +1517,51 @@ instance es ~ '[] => Zero (AttachmentReference2 es) where -- in the same subpass, then @loadOp@ /must/ not be -- 'Vulkan.Core10.Enums.AttachmentLoadOp.ATTACHMENT_LOAD_OP_CLEAR' -- --- - #VUID-VkSubpassDescription2-pResolveAttachments-03065# If --- @pResolveAttachments@ is not @NULL@, for each resolve attachment --- that does not have the value +-- - #VUID-VkSubpassDescription2-pResolveAttachments-03067# If +-- @pResolveAttachments@ is not @NULL@, each resolve attachment that is +-- not 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED' /must/ have a +-- sample count of +-- 'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT' +-- +-- - #VUID-VkSubpassDescription2-externalFormatResolve-09335# If +-- +-- is not enabled and @pResolveAttachments@ is not @NULL@, for each +-- resolve attachment that does not have the value -- 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED', the corresponding -- color attachment /must/ not have the value -- 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED' -- --- - #VUID-VkSubpassDescription2-pResolveAttachments-03066# If +-- - #VUID-VkSubpassDescription2-nullColorAttachmentWithExternalFormatResolve-09336# +-- If the +-- +-- property is 'Vulkan.Core10.FundamentalTypes.FALSE' and -- @pResolveAttachments@ is not @NULL@, for each resolve attachment --- that is not 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED', the --- corresponding color attachment /must/ not have a sample count of --- 'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT' +-- that has a format of 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED', +-- the corresponding color attachment /must/ not have the value +-- 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED' -- --- - #VUID-VkSubpassDescription2-pResolveAttachments-03067# If --- @pResolveAttachments@ is not @NULL@, each resolve attachment that is --- not 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED' /must/ have a --- sample count of +-- - #VUID-VkSubpassDescription2-nullColorAttachmentWithExternalFormatResolve-09337# +-- If the +-- +-- property is 'Vulkan.Core10.FundamentalTypes.TRUE' and +-- @pResolveAttachments@ is not @NULL@, for each resolve attachment +-- that has a format of 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED', +-- the corresponding color attachment /must/ have the value +-- 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED' +-- +-- - #VUID-VkSubpassDescription2-externalFormatResolve-09338# If +-- +-- is not enabled and @pResolveAttachments@ is not @NULL@, for each +-- resolve attachment that is not +-- 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED', the corresponding +-- color attachment /must/ not have a sample count of -- 'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT' -- --- - #VUID-VkSubpassDescription2-pResolveAttachments-03068# Any given --- element of @pResolveAttachments@ /must/ have the same --- 'Vulkan.Core10.Enums.Format.Format' as its corresponding color --- attachment +-- - #VUID-VkSubpassDescription2-externalFormatResolve-09339# If +-- +-- is not enabled, each element of @pResolveAttachments@ /must/ have +-- the same 'Vulkan.Core10.Enums.Format.Format' as its corresponding +-- color attachment -- -- - #VUID-VkSubpassDescription2-multisampledRenderToSingleSampled-06869# -- If none of the @VK_AMD_mixed_attachment_samples@ extension, the @@ -1454,8 +1573,21 @@ instance es ~ '[] => Zero (AttachmentReference2 es) where -- -- - #VUID-VkSubpassDescription2-pInputAttachments-02897# All attachments -- in @pInputAttachments@ that are not --- 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED' /must/ have image --- formats whose +-- 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED' and any of the +-- following is true: +-- +-- - the +-- +-- feature is not enabled +-- +-- - the +-- +-- property is 'Vulkan.Core10.FundamentalTypes.FALSE' +-- +-- - does not have a non-zero value of +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- +-- /must/ have image formats whose -- -- contain at least -- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BIT' @@ -1470,10 +1602,11 @@ instance es ~ '[] => Zero (AttachmentReference2 es) where -- contain -- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BIT' -- --- - #VUID-VkSubpassDescription2-pResolveAttachments-02899# All +-- - #VUID-VkSubpassDescription2-pResolveAttachments-09343# All -- attachments in @pResolveAttachments@ that are not --- 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED' /must/ have image --- formats whose +-- 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED' and do not have an +-- image format of 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' /must/ +-- have image formats whose -- -- contain -- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BIT' @@ -1567,9 +1700,9 @@ instance es ~ '[] => Zero (AttachmentReference2 es) where -- @pPreserveAttachments@ /must/ not be -- 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED' -- --- - #VUID-VkSubpassDescription2-pPreserveAttachments-03074# Any given --- element of @pPreserveAttachments@ /must/ not also be an element of --- any other member of the subpass description +-- - #VUID-VkSubpassDescription2-pPreserveAttachments-03074# Each element +-- of @pPreserveAttachments@ /must/ not also be an element of any other +-- member of the subpass description -- -- - #VUID-VkSubpassDescription2-layout-02528# If any attachment is used -- by more than one 'AttachmentReference2' member, then each use /must/ @@ -1615,6 +1748,52 @@ instance es ~ '[] => Zero (AttachmentReference2 es) where -- significant bit in @viewMask@ /must/ be less than -- -- +-- - #VUID-VkSubpassDescription2-externalFormatResolve-09344# If +-- +-- is enabled, @pResolveAttachments@ is not @NULL@, and +-- @colorAttachmentCount@ is not @1@, any element of +-- @pResolveAttachments@ that is not +-- 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED', /must/ not have a +-- format of 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' +-- +-- - #VUID-VkSubpassDescription2-externalFormatResolve-09345# If +-- +-- is enabled, @pResolveAttachments@ is not @NULL@, any element of +-- @pResolveAttachments@ is not +-- 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED' and has a format of +-- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED', and the corresponding +-- element of @pColorAttachments@ is not +-- 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED', the color attachment +-- /must/ have a @samples@ value of @1@ +-- +-- - #VUID-VkSubpassDescription2-externalFormatResolve-09346# If +-- +-- is enabled, @pResolveAttachments@ is not @NULL@, and any element of +-- @pResolveAttachments@ is not +-- 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED' and has a format of +-- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED', @viewMask@ /must/ be +-- @0@ +-- +-- - #VUID-VkSubpassDescription2-externalFormatResolve-09347# If +-- +-- is enabled, @pResolveAttachments@ is not @NULL@, and any element of +-- @pResolveAttachments@ is not +-- 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED' and has a format of +-- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED', +-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.FragmentShadingRateAttachmentInfoKHR'::@pFragmentShadingRateAttachment@ +-- /must/ either be @NULL@ or a 'AttachmentReference2' structure with a +-- @attachment@ value of 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED' +-- +-- - #VUID-VkSubpassDescription2-externalFormatResolve-09348# If +-- +-- is enabled, @pResolveAttachments@ is not @NULL@, and any element of +-- @pResolveAttachments@ is not +-- 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED' and has a format of +-- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED', elements of +-- @pInputAttachments@ referencing either a color attachment or resolve +-- attachment used in this subpass /must/ not include +-- @VK_IMAGE_ASPECT_PLANE_i_BIT@ for any index /i/ in its @aspectMask@ +-- -- == Valid Usage (Implicit) -- -- - #VUID-VkSubpassDescription2-sType-sType# @sType@ /must/ be @@ -1894,7 +2073,7 @@ instance es ~ '[] => Zero (SubpassDescription2 es) where -- -- feature is not enabled, @srcStageMask@ /must/ not be @0@ -- --- - #VUID-VkSubpassDependency2-rayTracingPipeline-07949# If neither the +-- - #VUID-VkSubpassDependency2-srcStageMask-07949# If neither the -- -- extension or -- @@ -1949,7 +2128,7 @@ instance es ~ '[] => Zero (SubpassDescription2 es) where -- -- feature is not enabled, @dstStageMask@ /must/ not be @0@ -- --- - #VUID-VkSubpassDependency2-rayTracingPipeline-07949# If neither the +-- - #VUID-VkSubpassDependency2-dstStageMask-07949# If neither the -- -- extension or -- @@ -2198,7 +2377,7 @@ instance es ~ '[] => Zero (SubpassDependency2 es) where -- member of any element of @pInputAttachments@, @pColorAttachments@, -- @pResolveAttachments@ or @pDepthStencilAttachment@, or the -- attachment indexed by any element of @pPreserveAttachments@ in any --- given element of @pSubpasses@ is bound to a range of a +-- element of @pSubpasses@ is bound to a range of a -- 'Vulkan.Core10.Handles.DeviceMemory' object that overlaps with any -- other attachment in any subpass (including the same subpass), the -- 'AttachmentDescription2' structures describing them /must/ include @@ -2208,9 +2387,9 @@ instance es ~ '[] => Zero (SubpassDependency2 es) where -- - #VUID-VkRenderPassCreateInfo2-attachment-03051# If the @attachment@ -- member of any element of @pInputAttachments@, @pColorAttachments@, -- @pResolveAttachments@ or @pDepthStencilAttachment@, or any element --- of @pPreserveAttachments@ in any given element of @pSubpasses@ is --- not 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED', then it /must/ --- be less than @attachmentCount@ +-- of @pPreserveAttachments@ in any element of @pSubpasses@ is not +-- 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED', then it /must/ be +-- less than @attachmentCount@ -- -- - #VUID-VkRenderPassCreateInfo2-fragmentDensityMapAttachment-06472# If -- the pNext chain includes a @@ -2309,6 +2488,11 @@ instance es ~ '[] => Zero (SubpassDependency2 es) where -- subpass, it /must/ not be used as any other attachment in the render -- pass -- +-- - #VUID-VkRenderPassCreateInfo2-pAttachments-09387# If any element of +-- @pAttachments@ is used as a fragment shading rate attachment, the +-- @loadOp@ for that attachment /must/ not be +-- 'Vulkan.Core10.Enums.AttachmentLoadOp.ATTACHMENT_LOAD_OP_CLEAR' +-- -- - #VUID-VkRenderPassCreateInfo2-flags-04521# If @flags@ includes -- 'Vulkan.Core10.Enums.RenderPassCreateFlagBits.RENDER_PASS_CREATE_TRANSFORM_BIT_QCOM', -- an element of @pSubpasses@ includes an instance of @@ -2392,6 +2576,13 @@ instance es ~ '[] => Zero (SubpassDependency2 es) where -- @attachment@ /must/ not have a @format@ that includes only a stencil -- component -- +-- - #VUID-VkRenderPassCreateInfo2-pResolveAttachments-09331# If any +-- element of @pResolveAttachments@ of any element of @pSubpasses@ +-- references an attachment description with a format of +-- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED', +-- 'Vulkan.Extensions.VK_EXT_fragment_density_map.RenderPassFragmentDensityMapCreateInfoEXT'::@fragmentDensityMapAttachment->attachment@ +-- /must/ be 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED' +-- -- == Valid Usage (Implicit) -- -- - #VUID-VkRenderPassCreateInfo2-sType-sType# @sType@ /must/ be @@ -2552,8 +2743,24 @@ instance es ~ '[] => Zero (RenderPassCreateInfo2 es) where -- | VkSubpassBeginInfo - Structure specifying subpass begin information -- +-- == Valid Usage +-- +-- - #VUID-VkSubpassBeginInfo-contents-09382# If @contents@ is +-- 'Vulkan.Core10.Enums.SubpassContents.SUBPASS_CONTENTS_INLINE_AND_SECONDARY_COMMAND_BUFFERS_EXT', +-- then +-- +-- /must/ be enabled +-- -- == Valid Usage (Implicit) -- +-- - #VUID-VkSubpassBeginInfo-sType-sType# @sType@ /must/ be +-- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_SUBPASS_BEGIN_INFO' +-- +-- - #VUID-VkSubpassBeginInfo-pNext-pNext# @pNext@ /must/ be @NULL@ +-- +-- - #VUID-VkSubpassBeginInfo-contents-parameter# @contents@ /must/ be a +-- valid 'Vulkan.Core10.Enums.SubpassContents.SubpassContents' value +-- -- = See Also -- -- , @@ -2567,9 +2774,6 @@ instance es ~ '[] => Zero (RenderPassCreateInfo2 es) where data SubpassBeginInfo = SubpassBeginInfo { -- | @contents@ is a 'Vulkan.Core10.Enums.SubpassContents.SubpassContents' -- value specifying how the commands in the next subpass will be provided. - -- - -- #VUID-VkSubpassBeginInfo-contents-parameter# @contents@ /must/ be a - -- valid 'Vulkan.Core10.Enums.SubpassContents.SubpassContents' value contents :: SubpassContents } deriving (Typeable, Eq) #if defined(GENERIC_INSTANCES) diff --git a/src/Vulkan/Core12/Promoted_From_VK_KHR_depth_stencil_resolve.hs b/src/Vulkan/Core12/Promoted_From_VK_KHR_depth_stencil_resolve.hs index 72cdcfdf6..5508ec41d 100644 --- a/src/Vulkan/Core12/Promoted_From_VK_KHR_depth_stencil_resolve.hs +++ b/src/Vulkan/Core12/Promoted_From_VK_KHR_depth_stencil_resolve.hs @@ -159,9 +159,18 @@ instance Zero PhysicalDeviceDepthStencilResolveProperties where -- -- = Description -- --- If @pDepthStencilResolveAttachment@ is @NULL@, or if its attachment --- index is 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED', it indicates --- that no depth\/stencil resolve attachment will be used in the subpass. +-- If the @pNext@ chain of +-- 'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.SubpassDescription2' +-- includes a 'SubpassDescriptionDepthStencilResolve' structure, then that +-- structure describes +-- +-- for the depth\/stencil attachment in a subpass. If this structure is not +-- included in the @pNext@ chain of +-- 'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.SubpassDescription2', +-- or if it is and either @pDepthStencilResolveAttachment@ is @NULL@ or its +-- attachment index is 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED', it +-- indicates that no depth\/stencil resolve attachment will be used in the +-- subpass. -- -- == Valid Usage -- @@ -198,7 +207,7 @@ instance Zero PhysicalDeviceDepthStencilResolveProperties where -- @pDepthStencilResolveAttachment@ has a depth component, then the -- 'Vulkan.Core10.Enums.Format.Format' of @pDepthStencilAttachment@ -- /must/ have a depth component with the same number of bits and --- numerical type +-- -- -- - #VUID-VkSubpassDescriptionDepthStencilResolve-pDepthStencilResolveAttachment-03182# -- If @pDepthStencilResolveAttachment@ is not @NULL@ and does not have @@ -207,7 +216,7 @@ instance Zero PhysicalDeviceDepthStencilResolveProperties where -- @pDepthStencilResolveAttachment@ has a stencil component, then the -- 'Vulkan.Core10.Enums.Format.Format' of @pDepthStencilAttachment@ -- /must/ have a stencil component with the same number of bits and --- numerical type +-- -- -- - #VUID-VkSubpassDescriptionDepthStencilResolve-pDepthStencilResolveAttachment-03178# -- If @pDepthStencilResolveAttachment@ is not @NULL@ and does not have diff --git a/src/Vulkan/Core12/Promoted_From_VK_KHR_draw_indirect_count.hs b/src/Vulkan/Core12/Promoted_From_VK_KHR_draw_indirect_count.hs index 8ca1e5ebe..2aa3d23ae 100644 --- a/src/Vulkan/Core12/Promoted_From_VK_KHR_draw_indirect_count.hs +++ b/src/Vulkan/Core12/Promoted_From_VK_KHR_draw_indirect_count.hs @@ -96,6 +96,16 @@ foreign import ccall -- /must/ contain -- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT' -- +-- - #VUID-vkCmdDrawIndirectCount-None-02693# If the +-- +-- extension is not enabled and any 'Vulkan.Core10.Handles.ImageView' +-- is sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a +-- result of this command, it /must/ not have a +-- 'Vulkan.Core10.Enums.ImageViewType.ImageViewType' of +-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_3D', +-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE', or +-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE_ARRAY' +-- -- - #VUID-vkCmdDrawIndirectCount-filterCubic-02694# Any -- 'Vulkan.Core10.Handles.ImageView' being sampled with -- 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a result of this @@ -121,6 +131,33 @@ foreign import ccall -- returned by -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceImageFormatProperties2' -- +-- - #VUID-vkCmdDrawIndirectCount-cubicRangeClamp-09212# If the +-- +-- feature is not enabled, then any 'Vulkan.Core10.Handles.ImageView' +-- being sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as +-- a result of this command +-- +-- [/must/ not have a 'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo'] +-- @reductionMode@ equal to +-- 'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM' +-- +-- - #VUID-vkCmdDrawIndirectCount-reductionMode-09213# Any +-- 'Vulkan.Core10.Handles.ImageView' being sampled with a +-- 'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo'::@reductionMode@ +-- equal to +-- 'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM' +-- as a result of this command /must/ sample with +-- 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' +-- +-- - #VUID-vkCmdDrawIndirectCount-selectableCubicWeights-09214# If the +-- +-- feature is not enabled, then any 'Vulkan.Core10.Handles.ImageView' +-- being sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as +-- a result of this command /must/ have +-- 'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.SamplerCubicWeightsCreateInfoQCOM'::@cubicWeights@ +-- equal to +-- 'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM' +-- -- - #VUID-vkCmdDrawIndirectCount-flags-02696# Any -- 'Vulkan.Core10.Handles.Image' created with a -- 'Vulkan.Core10.Image.ImageCreateInfo'::@flags@ containing @@ -162,11 +199,9 @@ foreign import ccall -- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT' -- -- - #VUID-vkCmdDrawIndirectCount-None-08600# For each set /n/ that is --- statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to the --- pipeline bind point used by this command, or by any of the --- 'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages --- corresponding to the pipeline bind point used by this command, a --- descriptor set /must/ have been bound to /n/ at the same pipeline +-- statically used by +-- , +-- a descriptor set /must/ have been bound to /n/ at the same pipeline -- bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is -- compatible for set /n/, with the -- 'Vulkan.Core10.Handles.PipelineLayout' or @@ -176,12 +211,10 @@ foreign import ccall -- -- -- - #VUID-vkCmdDrawIndirectCount-None-08601# For each push constant that --- is statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to --- the pipeline bind point used by this command, or by any of the --- 'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages --- corresponding to the pipeline bind point used by this command, a --- push constant value /must/ have been set for the same pipeline bind --- point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is +-- is statically used by +-- , +-- a push constant value /must/ have been set for the same pipeline +-- bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is -- compatible for push constants, with the -- 'Vulkan.Core10.Handles.PipelineLayout' or -- 'Vulkan.Core10.Handles.DescriptorSetLayout' and @@ -193,12 +226,10 @@ foreign import ccall -- - #VUID-vkCmdDrawIndirectCount-maintenance4-08602# If the -- -- feature is not enabled, then for each push constant that is --- statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to the --- pipeline bind point used by this command, or by any of the --- 'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages --- corresponding to the pipeline bind point used by this command, a --- push constant value /must/ have been set for the same pipeline bind --- point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is +-- statically used by +-- , +-- a push constant value /must/ have been set for the same pipeline +-- bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is -- compatible for push constants, with the -- 'Vulkan.Core10.Handles.PipelineLayout' or -- 'Vulkan.Core10.Handles.DescriptorSetLayout' and @@ -361,34 +392,25 @@ foreign import ccall -- buffer as specified in the descriptor set bound to the same pipeline -- bind point -- --- - #VUID-vkCmdDrawIndirectCount-commandBuffer-08614# If @commandBuffer@ +-- - #VUID-vkCmdDrawIndirectCount-commandBuffer-02707# If @commandBuffer@ -- is an unprotected command buffer and -- --- is not supported, any resource accessed by the --- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind --- point used by this command or any --- 'Vulkan.Extensions.Handles.ShaderEXT' object bound to a stage --- corresponding to the pipeline bind point used by this command /must/ --- not be a protected resource --- --- - #VUID-vkCmdDrawIndirectCount-None-08615# If the --- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind --- point used by this command or any --- 'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding --- to the pipeline bind point used by this command accesses a --- 'Vulkan.Core10.Handles.Sampler' or 'Vulkan.Core10.Handles.ImageView' --- object that enables +-- is not supported, any resource accessed by +-- +-- /must/ not be a protected resource +-- +-- - #VUID-vkCmdDrawIndirectCount-None-06550# If +-- +-- accesses a 'Vulkan.Core10.Handles.Sampler' or +-- 'Vulkan.Core10.Handles.ImageView' object that enables -- , -- that object /must/ only be used with @OpImageSample*@ or -- @OpImageSparseSample*@ instructions -- --- - #VUID-vkCmdDrawIndirectCount-ConstOffset-08616# If the --- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind --- point used by this command or any --- 'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding --- to the pipeline bind point used by this command accesses a --- 'Vulkan.Core10.Handles.Sampler' or 'Vulkan.Core10.Handles.ImageView' --- object that enables +-- - #VUID-vkCmdDrawIndirectCount-ConstOffset-06551# If +-- +-- accesses a 'Vulkan.Core10.Handles.Sampler' or +-- 'Vulkan.Core10.Handles.ImageView' object that enables -- , -- that object /must/ not use the @ConstOffset@ and @Offset@ operands -- @@ -400,17 +422,23 @@ foreign import ccall -- -- - #VUID-vkCmdDrawIndirectCount-format-07753# If a -- 'Vulkan.Core10.Handles.ImageView' is accessed as a result of this --- command, then the image view’s @format@ /must/ match the numeric --- format from the @Sampled@ @Type@ operand of the @OpTypeImage@ as --- described in the SPIR-V Sampled Type column of the --- --- table --- --- - #VUID-vkCmdDrawIndirectCount-None-04115# If a --- 'Vulkan.Core10.Handles.ImageView' is accessed using @OpImageWrite@ --- as a result of this command, then the @Type@ of the @Texel@ operand --- of that instruction /must/ have at least as many components as the --- image view’s format +-- command, then the +-- +-- of the image view’s @format@ and the @Sampled@ @Type@ operand of the +-- @OpTypeImage@ /must/ match +-- +-- - #VUID-vkCmdDrawIndirectCount-OpImageWrite-08795# If a +-- 'Vulkan.Core10.Handles.ImageView' created with a format other than +-- 'Vulkan.Core10.Enums.Format.FORMAT_A8_UNORM_KHR' is accessed using +-- @OpImageWrite@ as a result of this command, then the @Type@ of the +-- @Texel@ operand of that instruction /must/ have at least as many +-- components as the image view’s format +-- +-- - #VUID-vkCmdDrawIndirectCount-OpImageWrite-08796# If a +-- 'Vulkan.Core10.Handles.ImageView' created with the format +-- 'Vulkan.Core10.Enums.Format.FORMAT_A8_UNORM_KHR' is accessed using +-- @OpImageWrite@ as a result of this command, then the @Type@ of the +-- @Texel@ operand of that instruction /must/ have four components -- -- - #VUID-vkCmdDrawIndirectCount-OpImageWrite-04469# If a -- 'Vulkan.Core10.Handles.BufferView' is accessed using @OpImageWrite@ @@ -512,6 +540,8 @@ foreign import ccall -- -- - #VUID-vkCmdDrawIndirectCount-OpImageWeightedSampleQCOM-06977# If -- @OpImageWeightedSampleQCOM@, @OpImageBoxFilterQCOM@, +-- @OpImageBlockMatchWindowSSDQCOM@, @OpImageBlockMatchWindowSADQCOM@, +-- @OpImageBlockMatchGatherSSDQCOM@, @OpImageBlockMatchGatherSADQCOM@, -- @OpImageBlockMatchSSDQCOM@, or @OpImageBlockMatchSADQCOM@ uses a -- 'Vulkan.Core10.Handles.Sampler' as a result of this command, then -- the sampler /must/ have been created with @@ -519,12 +549,35 @@ foreign import ccall -- -- - #VUID-vkCmdDrawIndirectCount-OpImageWeightedSampleQCOM-06978# If any -- command other than @OpImageWeightedSampleQCOM@, --- @OpImageBoxFilterQCOM@, @OpImageBlockMatchSSDQCOM@, or +-- @OpImageBoxFilterQCOM@, @OpImageBlockMatchWindowSSDQCOM@, +-- @OpImageBlockMatchWindowSADQCOM@, @OpImageBlockMatchGatherSSDQCOM@, +-- @OpImageBlockMatchGatherSADQCOM@, @OpImageBlockMatchSSDQCOM@, or -- @OpImageBlockMatchSADQCOM@ uses a 'Vulkan.Core10.Handles.Sampler' as -- a result of this command, then the sampler /must/ not have been -- created with -- 'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM' -- +-- - #VUID-vkCmdDrawIndirectCount-OpImageBlockMatchWindow-09215# If a +-- @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@ +-- instruction is used to read from an +-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then +-- the image view’s +-- +-- /must/ contain +-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM' +-- +-- - #VUID-vkCmdDrawIndirectCount-OpImageBlockMatchWindow-09216# If a +-- @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@ +-- instruction is used to read from an +-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then +-- the image view’s format /must/ be a single-component format. +-- +-- - #VUID-vkCmdDrawIndirectCount-OpImageBlockMatchWindow-09217# If a +-- @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@ +-- read from a reference image as result of this command, then the +-- specified reference coordinates /must/ not fail +-- +-- -- - #VUID-vkCmdDrawIndirectCount-None-07288# Any shader invocation -- executed by this command /must/ -- @@ -569,15 +622,86 @@ foreign import ccall -- not be written in any way other than as an attachment by this -- command -- --- - #VUID-vkCmdDrawIndirectCount-None-06538# If any recorded command in --- the current subpass will write to an image subresource as an --- attachment, this command /must/ not read from the memory backing --- that image subresource in any other way than as an attachment --- --- - #VUID-vkCmdDrawIndirectCount-None-06539# If any recorded command in --- the current subpass will read from an image subresource used as an --- attachment in any way other than as an attachment, this command --- /must/ not write to that image subresource as an attachment +-- - #VUID-vkCmdDrawIndirectCount-None-09000# If a color attachment is +-- written by any prior command in this subpass or by the load, store, +-- or resolve operations for this subpass, it is not in the +-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT' +-- image layout, and either: +-- +-- - the +-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT' +-- is set on the currently bound pipeline or +-- +-- - the last call to +-- 'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT' +-- included +-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT' +-- and +-- +-- - there is no currently bound graphics pipeline or +-- +-- - the currently bound graphics pipeline was created with +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT' +-- it /must/ not be accessed in any way other than as an +-- attachment by this command +-- +-- - #VUID-vkCmdDrawIndirectCount-None-09001# If a depth attachment is +-- written by any prior command in this subpass or by the load, store, +-- or resolve operations for this subpass, it is not in the +-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT' +-- image layout, and either: +-- +-- - the +-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT' +-- is set on the currently bound pipeline or +-- +-- - the last call to +-- 'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT' +-- included +-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_DEPTH_BIT' +-- and +-- +-- - there is no currently bound graphics pipeline or +-- +-- - the currently bound graphics pipeline was created with +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT' +-- it /must/ not be accessed in any way other than as an +-- attachment by this command +-- +-- - #VUID-vkCmdDrawIndirectCount-None-09002# If a stencil attachment is +-- written by any prior command in this subpass or by the load, store, +-- or resolve operations for this subpass, it is not in the +-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT' +-- image layout, and either: +-- +-- - the +-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT' +-- is set on the currently bound pipeline or +-- +-- - the last call to +-- 'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT' +-- included +-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT' +-- and +-- +-- - there is no currently bound graphics pipeline or +-- +-- - the currently bound graphics pipeline was created with +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT' +-- it /must/ not be accessed in any way other than as an +-- attachment by this command +-- +-- - #VUID-vkCmdDrawIndirectCount-None-09003# If an attachment is written +-- by any prior command in this subpass or by the load, store, or +-- resolve operations for this subpass, it /must/ not be accessed in +-- any way other than as an attachment, storage image, or sampled image +-- by this command +-- +-- - #VUID-vkCmdDrawIndirectCount-None-06539# If any previously recorded +-- command in the current subpass accessed an image subresource used as +-- an attachment in this subpass in any way other than as an +-- attachment, this command /must/ not write to that image subresource +-- as an attachment -- -- - #VUID-vkCmdDrawIndirectCount-None-06886# If the current render pass -- instance uses a depth\/stencil attachment with a read-only layout @@ -647,18 +771,23 @@ foreign import ccall -- pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS' dynamic -- state enabled then --- 'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBias' /must/ have --- been called in the current command buffer prior to this drawing --- command +-- 'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBias' or +-- 'Vulkan.Extensions.VK_EXT_depth_bias_control.cmdSetDepthBias2EXT' +-- /must/ have been called in the current command buffer prior to this +-- drawing command -- -- - #VUID-vkCmdDrawIndirectCount-None-08620# If a shader object is bound -- to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnable' -- in the current command buffer set @depthBiasEnable@ to -- 'Vulkan.Core10.FundamentalTypes.TRUE', --- 'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBias' /must/ have --- been called in the current command buffer prior to this drawing --- command +-- 'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBias' or +-- 'Vulkan.Extensions.VK_EXT_depth_bias_control.cmdSetDepthBias2EXT' +-- /must/ have been called in the current command buffer prior to this +-- drawing command -- -- - #VUID-vkCmdDrawIndirectCount-None-07835# If the bound graphics -- pipeline state was created with the @@ -681,7 +810,7 @@ foreign import ccall -- the most recent call to -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT' -- in the current command buffer set the same element of --- @pColorBlendEquations@ to an +-- @pColorBlendEquations@ to a -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.ColorBlendEquationEXT' -- structure with any 'Vulkan.Core10.Enums.BlendFactor.BlendFactor' -- member with a value of @@ -696,16 +825,20 @@ foreign import ccall -- - #VUID-vkCmdDrawIndirectCount-None-07836# If the bound graphics -- pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS' --- dynamic state enabled then +-- dynamic state enabled, and if the current @depthBoundsTestEnable@ +-- state is 'Vulkan.Core10.FundamentalTypes.TRUE', then -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBounds' /must/ have -- been called in the current command buffer prior to this drawing -- command -- -- - #VUID-vkCmdDrawIndirectCount-None-08622# If a shader object is bound -- to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable' -- in the current command buffer set @depthBoundsTestEnable@ to --- 'Vulkan.Core10.FundamentalTypes.TRUE', +-- 'Vulkan.Core10.FundamentalTypes.TRUE', then -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBounds' /must/ have -- been called in the current command buffer prior to this drawing -- command @@ -713,7 +846,8 @@ foreign import ccall -- - #VUID-vkCmdDrawIndirectCount-None-07837# If the bound graphics -- pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_COMPARE_MASK' --- dynamic state enabled then +-- dynamic state enabled, and if the current @stencilTestEnable@ state +-- is 'Vulkan.Core10.FundamentalTypes.TRUE', then -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilCompareMask' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -730,7 +864,8 @@ foreign import ccall -- - #VUID-vkCmdDrawIndirectCount-None-07838# If the bound graphics -- pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_WRITE_MASK' --- dynamic state enabled then +-- dynamic state enabled, and if the current @stencilTestEnable@ state +-- is 'Vulkan.Core10.FundamentalTypes.TRUE', then -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilWriteMask' /must/ -- have been called in the current command buffer prior to this drawing -- command @@ -747,7 +882,8 @@ foreign import ccall -- - #VUID-vkCmdDrawIndirectCount-None-07839# If the bound graphics -- pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_REFERENCE' --- dynamic state enabled then +-- dynamic state enabled, and if the current @stencilTestEnable@ state +-- is 'Vulkan.Core10.FundamentalTypes.TRUE', then -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilReference' /must/ -- have been called in the current command buffer prior to this drawing -- command @@ -787,7 +923,10 @@ foreign import ccall -- to any graphics stage, and the most recent call to -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT' -- in the current command buffer set @sampleLocationsEnable@ to --- 'Vulkan.Core10.FundamentalTypes.TRUE', +-- 'Vulkan.Core10.FundamentalTypes.TRUE', and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -811,7 +950,10 @@ foreign import ccall -- drawing command -- -- - #VUID-vkCmdDrawIndirectCount-None-08627# If a shader object is bound --- to any graphics stage, +-- to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetCullMode' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -825,7 +967,10 @@ foreign import ccall -- drawing command -- -- - #VUID-vkCmdDrawIndirectCount-None-08628# If a shader object is bound --- to any graphics stage, +-- to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetFrontFace' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -839,7 +984,10 @@ foreign import ccall -- drawing command -- -- - #VUID-vkCmdDrawIndirectCount-None-08629# If a shader object is bound --- to any graphics stage, +-- to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -853,7 +1001,10 @@ foreign import ccall -- drawing command -- -- - #VUID-vkCmdDrawIndirectCount-None-08630# If a shader object is bound --- to any graphics stage, +-- to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -868,9 +1019,12 @@ foreign import ccall -- -- - #VUID-vkCmdDrawIndirectCount-None-08631# If a shader object is bound -- to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable' -- in the current command buffer set @depthTestEnable@ to --- 'Vulkan.Core10.FundamentalTypes.TRUE', +-- 'Vulkan.Core10.FundamentalTypes.TRUE', then -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthCompareOp' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -886,7 +1040,10 @@ foreign import ccall -- - #VUID-vkCmdDrawIndirectCount-None-08632# If a shader object is bound -- to any graphics stage, and the -- --- feature is enabled, the +-- feature is enabled, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then the -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -1006,6 +1163,13 @@ foreign import ccall -- the last call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- +-- - #VUID-vkCmdDrawIndirectCount-None-09232# If a shader object is bound +-- to any graphics stage, and the @VK_NV_clip_space_w_scaling@ +-- extension is enabled on the device, then +-- 'Vulkan.Extensions.VK_NV_clip_space_w_scaling.cmdSetViewportWScalingNV' +-- must have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdDrawIndirectCount-None-08636# If a shader object is bound -- to any graphics stage, and the @VK_NV_clip_space_w_scaling@ -- extension is enabled on the device, then the @viewportCount@ @@ -1039,6 +1203,30 @@ foreign import ccall -- the last call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- +-- - #VUID-vkCmdDrawIndirectCount-shadingRateImage-09233# If the +-- +-- feature is enabled, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set rasterizerDiscardEnable to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then +-- 'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetCoarseSampleOrderNV' +-- must have been called in the current command buffer prior to this +-- drawing command +-- +-- - #VUID-vkCmdDrawIndirectCount-shadingRateImage-09234# If a shader +-- object is bound to any graphics stage, and the +-- +-- feature is enabled on the device, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set rasterizerDiscardEnable to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetShadingRateImageEnableNV' +-- in the current command buffer set shadingRateImageEnable to +-- 'Vulkan.Core10.FundamentalTypes.TRUE', then +-- 'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetViewportShadingRatePaletteNV' +-- must have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdDrawIndirectCount-None-08637# If a shader object is bound -- to any graphics stage, and the -- @@ -1091,6 +1279,14 @@ foreign import ccall -- /must/ have been called in the current command buffer prior to this -- drawing command -- +-- - #VUID-vkCmdDrawIndirectCount-exclusiveScissor-09235# If a shader +-- object is bound to any graphics stage, and the +-- +-- feature is enabled, then +-- 'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorEnableNV' +-- must have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdDrawIndirectCount-None-08638# If a shader object is bound -- to any graphics stage, and the most recent call to -- 'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorEnableNV' @@ -1142,7 +1338,9 @@ foreign import ccall -- 'Vulkan.Core10.Enums.LogicOp.LogicOp' value -- -- - #VUID-vkCmdDrawIndirectCount-None-08641# If a shader object is bound --- to any graphics stage, and the +-- to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage, and the -- -- feature is enabled on the device, and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' @@ -1227,6 +1425,11 @@ foreign import ccall -- to be the same as the number of samples for the current render pass -- color and\/or depth\/stencil attachments -- +-- - #VUID-vkCmdDrawIndirectCount-None-08876# If a shader object is bound +-- to any graphics stage, the current render pass instance /must/ have +-- been begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' +-- -- - #VUID-vkCmdDrawIndirectCount-imageView-06172# If the current render -- pass instance was begun with -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', @@ -1299,8 +1502,11 @@ foreign import ccall -- equal to -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ -- --- - #VUID-vkCmdDrawIndirectCount-colorAttachmentCount-06180# If the --- current render pass instance was begun with +-- - #VUID-vkCmdDrawIndirectCount-dynamicRenderingUnusedAttachments-08910# +-- If the +-- +-- feature is not enabled, and the current render pass instance was +-- begun with -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' -- and -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ @@ -1313,8 +1519,32 @@ foreign import ccall -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@ -- used to create the currently bound graphics pipeline -- --- - #VUID-vkCmdDrawIndirectCount-colorAttachmentCount-07616# If the --- current render pass instance was begun with +-- - #VUID-vkCmdDrawIndirectCount-dynamicRenderingUnusedAttachments-08911# +-- If the +-- +-- feature is enabled, and the current render pass instance was begun +-- with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' +-- and +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ +-- greater than @0@, then each element of the +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@ +-- array with a @imageView@ not equal to +-- 'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created +-- with a 'Vulkan.Core10.Enums.Format.Format' equal to the +-- corresponding element of +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@ +-- used to create the currently bound graphics pipeline, or the +-- corresponding element of +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@, +-- if it exists, /must/ be +-- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' +-- +-- - #VUID-vkCmdDrawIndirectCount-dynamicRenderingUnusedAttachments-08912# +-- If the +-- +-- feature is not enabled, and the current render pass instance was +-- begun with -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' -- and -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ @@ -1327,6 +1557,132 @@ foreign import ccall -- used to create the currently bound pipeline equal to -- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' -- +-- - #VUID-vkCmdDrawIndirectCount-colorAttachmentCount-09362# If the +-- current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- with a +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ +-- equal to @1@, there is no shader object bound to any graphics stage, +-- and a color attachment with a resolve mode of +-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID', +-- each element of the +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@ +-- array with a @resolveImageView@ not equal to +-- 'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created +-- with an image created with a +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- value equal to the +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- value used to create the currently bound graphics pipeline +-- +-- - #VUID-vkCmdDrawIndirectCount-None-09363# If there is no shader +-- object bound to any graphics stage, the current render pass instance +-- was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' +-- and a +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ +-- equal to @1@, and a color attachment with a resolve mode of +-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID', +-- each element of the +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@ +-- array with a @imageView@ not equal to +-- 'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created +-- with an image created with a +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- value equal to the +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- value used to create the currently bound graphics pipeline +-- +-- - #VUID-vkCmdDrawIndirectCount-None-09364# If the current render pass +-- instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- there is no shader object bound to any graphics stage, and the +-- currently bound graphics pipeline was created with a non-zero +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- value and with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT' +-- dynamic state enabled, then +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT' +-- /must/ have set the blend enable to +-- 'Vulkan.Core10.FundamentalTypes.FALSE' prior to this drawing command +-- +-- - #VUID-vkCmdDrawIndirectCount-None-09365# If the current render pass +-- instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- there is no shader object bound to any graphics stage, and the +-- currently bound graphics pipeline was created with a non-zero +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- value and with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT' +-- dynamic state enabled, then +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT' +-- /must/ have set @rasterizationSamples@ to +-- 'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT' prior +-- to this drawing command +-- +-- - #VUID-vkCmdDrawIndirectCount-None-09366# If there is a shader object +-- bound to any graphics stage, and the current render pass includes a +-- color attachment that uses the +-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID' +-- resolve mode, then +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT' +-- /must/ have set blend enable to +-- 'Vulkan.Core10.FundamentalTypes.FALSE' prior to this drawing command +-- +-- - #VUID-vkCmdDrawIndirectCount-rasterizationSamples-09367# If there is +-- a shader object bound to any graphics stage, and the current render +-- pass includes a color attachment that uses the +-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID' +-- resolve mode, then +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT' +-- /must/ have set @rasterizationSamples@ to +-- 'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT' prior +-- to this drawing command +-- +-- - #VUID-vkCmdDrawIndirectCount-None-09368# If the current render pass +-- instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- there is no shader object bound to any graphics stage, and the +-- currently bound graphics pipeline was created with a non-zero +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- value and with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR' +-- dynamic state enabled, then +-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR' +-- /must/ have set @pFragmentSize->width@ to @1@ prior to this drawing +-- command +-- +-- - #VUID-vkCmdDrawIndirectCount-None-09369# If the current render pass +-- instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- there is no shader object bound to any graphics stage, and the +-- currently bound graphics pipeline was created with a non-zero +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- value and with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR' +-- dynamic state enabled, then +-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR' +-- /must/ have set @pFragmentSize->height@ to @1@ prior to this drawing +-- command +-- +-- - #VUID-vkCmdDrawIndirectCount-pFragmentSize-09370# If there is a +-- shader object bound to any graphics stage, and the current render +-- pass includes a color attachment that uses the +-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID' +-- resolve mode, then +-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR' +-- /must/ have set @pFragmentSize->width@ to @1@ prior to this drawing +-- command +-- +-- - #VUID-vkCmdDrawIndirectCount-pFragmentSize-09371# If there is a +-- shader object bound to any graphics stage, and the current render +-- pass includes a color attachment that uses the +-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID' +-- resolve mode, then +-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR' +-- /must/ have set @pFragmentSize->height@ to @1@ prior to this drawing +-- command +-- -- - #VUID-vkCmdDrawIndirectCount-None-07749# If the bound graphics -- pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT' @@ -1338,7 +1694,9 @@ foreign import ccall -- - #VUID-vkCmdDrawIndirectCount-None-08646# If the -- -- feature is enabled on the device, and a shader object is bound to --- the fragment stage, and the most recent call to +-- the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage, and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' -- in the current command buffer set @rasterizerDiscardEnable@ to -- 'Vulkan.Core10.FundamentalTypes.FALSE', then @@ -1358,7 +1716,9 @@ foreign import ccall -- - #VUID-vkCmdDrawIndirectCount-None-08647# If the -- -- feature is enabled on the device, and a shader object is bound to --- the fragment stage, and the most recent call to +-- the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage, and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' -- in the current command buffer set @rasterizerDiscardEnable@ to -- 'Vulkan.Core10.FundamentalTypes.FALSE', then the @attachmentCount@ @@ -1384,6 +1744,16 @@ foreign import ccall -- /must/ have been called in the current command buffer prior to this -- drawing command -- +-- - #VUID-vkCmdDrawIndirectCount-rasterizerDiscardEnable-09236# If the +-- @VK_EXT_discard_rectangles@ extension is enabled, and a shader +-- object is bound to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then +-- 'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEXT' +-- /must/ have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdDrawIndirectCount-None-08648# If the -- @VK_EXT_discard_rectangles@ extension is enabled, and a shader -- object is bound to any graphics stage, and the most recent call to @@ -1415,10 +1785,24 @@ foreign import ccall -- /must/ have been called in the current command buffer prior to this -- drawing command -- --- - #VUID-vkCmdDrawIndirectCount-pDepthAttachment-06181# If the current --- render pass instance was begun with --- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' --- and +-- - #VUID-vkCmdDrawIndirectCount-dynamicRenderingUnusedAttachments-08913# +-- If the current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- the +-- +-- feature is not enabled, and +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@ +-- was 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@ +-- used to create the currently bound graphics pipeline /must/ be equal +-- to 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' +-- +-- - #VUID-vkCmdDrawIndirectCount-dynamicRenderingUnusedAttachments-08914# +-- If current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- the +-- +-- feature is not enabled, and -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@ -- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@ @@ -1426,20 +1810,39 @@ foreign import ccall -- to the 'Vulkan.Core10.Enums.Format.Format' used to create -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@ -- --- - #VUID-vkCmdDrawIndirectCount-pDepthAttachment-07617# If the current --- render pass instance was begun with --- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' --- and +-- - #VUID-vkCmdDrawIndirectCount-dynamicRenderingUnusedAttachments-08915# +-- If the current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- the +-- +-- feature is enabled, -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@ --- was 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of +-- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the value of -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@ +-- used to create the currently bound graphics pipeline was not equal +-- to the 'Vulkan.Core10.Enums.Format.Format' used to create +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@, +-- the value of the format /must/ be +-- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' +-- +-- - #VUID-vkCmdDrawIndirectCount-dynamicRenderingUnusedAttachments-08916# +-- If the current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- the +-- +-- feature is not enabled, and +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@ +-- was 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@ -- used to create the currently bound graphics pipeline /must/ be equal -- to 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' -- --- - #VUID-vkCmdDrawIndirectCount-pStencilAttachment-06182# If the --- current render pass instance was begun with --- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' --- and +-- - #VUID-vkCmdDrawIndirectCount-dynamicRenderingUnusedAttachments-08917# +-- If current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- the +-- +-- feature is not enabled, and -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@ -- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@ @@ -1447,15 +1850,20 @@ foreign import ccall -- to the 'Vulkan.Core10.Enums.Format.Format' used to create -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@ -- --- - #VUID-vkCmdDrawIndirectCount-pStencilAttachment-07618# If the --- current render pass instance was begun with --- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' --- and +-- - #VUID-vkCmdDrawIndirectCount-dynamicRenderingUnusedAttachments-08918# +-- If the current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- the +-- +-- feature is enabled, -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@ --- was 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of +-- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the value of -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@ --- used to create the currently bound graphics pipeline /must/ be equal --- to 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' +-- used to create the currently bound graphics pipeline was not equal +-- to the 'Vulkan.Core10.Enums.Format.Format' used to create +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@, +-- the value of the format /must/ be +-- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' -- -- - #VUID-vkCmdDrawIndirectCount-imageView-06183# If the current render -- pass instance was begun with @@ -1602,6 +2010,40 @@ foreign import ccall -- 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@renderPass@ -- equal to 'Vulkan.Core10.APIConstants.NULL_HANDLE' -- +-- - #VUID-vkCmdDrawIndirectCount-pColorAttachments-08963# If the current +-- render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- there is a graphics pipeline bound with a fragment shader that +-- statically writes to a color attachment, the color write mask is not +-- zero, color writes are enabled, and the corresponding element of the +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments->imageView@ +-- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', then the +-- corresponding element of +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@ +-- used to create the pipeline /must/ not be +-- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' +-- +-- - #VUID-vkCmdDrawIndirectCount-pDepthAttachment-08964# If the current +-- render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- there is a graphics pipeline bound, depth test is enabled, depth +-- write is enabled, and the +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@ +-- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', then the +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@ +-- used to create the pipeline /must/ not be +-- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' +-- +-- - #VUID-vkCmdDrawIndirectCount-pStencilAttachment-08965# If the +-- current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- there is a graphics pipeline bound, stencil test is enabled and the +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@ +-- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', then the +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@ +-- used to create the pipeline /must/ not be +-- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' +-- -- - #VUID-vkCmdDrawIndirectCount-primitivesGeneratedQueryWithRasterizerDiscard-06708# -- If the -- @@ -1628,6 +2070,22 @@ foreign import ccall -- /must/ have been called in the current command buffer prior to this -- drawing command -- +-- - #VUID-vkCmdDrawIndirectCount-None-07620# If the bound graphics +-- pipeline state was created with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT' +-- dynamic state enabled then +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClampEnableEXT' +-- /must/ have been called in the current command buffer prior to this +-- drawing command +-- +-- - #VUID-vkCmdDrawIndirectCount-None-09237# If a shader object is bound +-- to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT' +-- stage, then +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetTessellationDomainOriginEXT' +-- /must/ have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdDrawIndirectCount-None-08650# If the -- -- feature is enabled, and a shader object is bound to any graphics @@ -1698,6 +2156,17 @@ foreign import ccall -- /must/ have been called in the current command buffer prior to this -- drawing command -- +-- - #VUID-vkCmdDrawIndirectCount-alphaToCoverageEnable-08919# If the +-- bound graphics pipeline state was created with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT' +-- dynamic state enabled, and @alphaToCoverageEnable@ was +-- 'Vulkan.Core10.FundamentalTypes.TRUE' in the last call to +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT', +-- then the +-- +-- /must/ contain a variable for the alpha @Component@ word in +-- @Location@ 0 at @Index@ 0 +-- -- - #VUID-vkCmdDrawIndirectCount-None-08654# If a shader object is bound -- to any graphics stage, and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' @@ -1707,6 +2176,16 @@ foreign import ccall -- /must/ have been called in the current command buffer prior to this -- drawing command -- +-- - #VUID-vkCmdDrawIndirectCount-alphaToCoverageEnable-08920# If a +-- shader object is bound to any graphics stage, and the most recent +-- call to +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT' +-- in the current command buffer set @alphaToCoverageEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.TRUE', then the +-- +-- /must/ contain a variable for the alpha @Component@ word in +-- @Location@ 0 at @Index@ 0 +-- -- - #VUID-vkCmdDrawIndirectCount-None-07625# If the bound graphics -- pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT' @@ -1736,7 +2215,8 @@ foreign import ccall -- -- - #VUID-vkCmdDrawIndirectCount-None-08656# If the -- --- feature is enabled, and a shader object is bound to any graphics +-- feature is enabled, and a shader object is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' -- stage, and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' -- in the current command buffer set @rasterizerDiscardEnable@ to @@ -1754,7 +2234,9 @@ foreign import ccall -- drawing command -- -- - #VUID-vkCmdDrawIndirectCount-None-08657# If a shader object is bound --- to any graphics stage, and the most recent call to +-- to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage, and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' -- in the current command buffer set @rasterizerDiscardEnable@ to -- 'Vulkan.Core10.FundamentalTypes.FALSE', then @@ -1791,7 +2273,9 @@ foreign import ccall -- drawing command -- -- - #VUID-vkCmdDrawIndirectCount-None-08659# If a shader object is bound --- to any graphics stage, and the most recent call to +-- to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage, and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' -- in the current command buffer set @rasterizerDiscardEnable@ to -- 'Vulkan.Core10.FundamentalTypes.FALSE', then @@ -1809,7 +2293,8 @@ foreign import ccall -- -- - #VUID-vkCmdDrawIndirectCount-None-08660# If the -- --- feature is enabled, and a shader object is bound to the geometry +-- feature is enabled, and a shader object is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT' -- stage, then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationStreamEXT' -- /must/ have been called in the current command buffer prior to this @@ -1909,7 +2394,9 @@ foreign import ccall -- -- - #VUID-vkCmdDrawIndirectCount-None-08665# If the -- @VK_EXT_provoking_vertex@ extension is enabled, and a shader object --- is bound to the vertex stage, then +-- is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT' +-- stage, then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetProvokingVertexModeEXT' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -2018,7 +2505,7 @@ foreign import ccall -- stage, then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClipNegativeOneToOneEXT' -- /must/ have been called in the current command buffer prior to this --- drawing command ifdef::VK_EXT_extended_dynamic_state3 +-- drawing command -- -- - #VUID-vkCmdDrawIndirectCount-None-07640# If the bound graphics -- pipeline state was created with the @@ -2026,7 +2513,7 @@ foreign import ccall -- dynamic state enabled then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetViewportWScalingEnableNV' -- /must/ have been called in the current command buffer prior to this --- drawing command endif::VK_EXT_extended_dynamic_state3 +-- drawing command -- -- - #VUID-vkCmdDrawIndirectCount-None-08674# If the -- @VK_NV_clip_space_w_scaling@ extension is enabled, and a shader @@ -2060,7 +2547,12 @@ foreign import ccall -- -- - #VUID-vkCmdDrawIndirectCount-None-08676# If the -- @VK_NV_fragment_coverage_to_color@ extension is enabled, and a --- shader object is bound to any graphics stage, then +-- shader object is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -2075,8 +2567,9 @@ foreign import ccall -- -- - #VUID-vkCmdDrawIndirectCount-None-08677# If the -- @VK_NV_fragment_coverage_to_color@ extension is enabled, and a --- shader object is bound to any graphics stage, and the most recent --- call to +-- shader object is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage, and the most recent call to -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV' -- in the current command buffer set @coverageToColorEnable@ to -- 'Vulkan.Core10.FundamentalTypes.TRUE', then @@ -2094,7 +2587,10 @@ foreign import ccall -- -- - #VUID-vkCmdDrawIndirectCount-None-08678# If the -- @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader --- object is bound to any graphics stage, then +-- object is bound to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationModeNV' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -2109,7 +2605,15 @@ foreign import ccall -- -- - #VUID-vkCmdDrawIndirectCount-None-08679# If the -- @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader --- object is bound to any graphics stage, then +-- object is bound to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationModeNV' +-- in the current command buffer set coverageModulationMode to any +-- value other than +-- 'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.COVERAGE_MODULATION_MODE_NONE_NV', +-- then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -2125,6 +2629,9 @@ foreign import ccall -- - #VUID-vkCmdDrawIndirectCount-None-08680# If the -- @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader -- object is bound to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV' -- in the current command buffer set @coverageModulationTableEnable@ to -- 'Vulkan.Core10.FundamentalTypes.TRUE', then @@ -2140,10 +2647,26 @@ foreign import ccall -- /must/ have been called in the current command buffer prior to this -- drawing command -- +-- - #VUID-vkCmdDrawIndirectCount-pipelineFragmentShadingRate-09238# If +-- the +-- +-- feature is enabled, and a shader object is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set rasterizerDiscardEnable to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then +-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR' +-- must have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdDrawIndirectCount-None-08681# If the -- -- feature is enabled, and a shader object is bound to any graphics --- stage, then +-- stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetShadingRateImageEnableNV' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -2153,13 +2676,16 @@ foreign import ccall -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV' -- dynamic state enabled then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRepresentativeFragmentTestEnableNV' --- must have been called in the current command buffer prior to this +-- /must/ have been called in the current command buffer prior to this -- drawing command -- -- - #VUID-vkCmdDrawIndirectCount-None-08682# If the -- -- feature is enabled, and a shader object is bound to any graphics --- stage, then +-- stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRepresentativeFragmentTestEnableNV' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -2175,7 +2701,10 @@ foreign import ccall -- - #VUID-vkCmdDrawIndirectCount-None-08683# If the -- -- feature is enabled, and a shader object is bound to any graphics --- stage, then +-- stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageReductionModeNV' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -2224,18 +2753,29 @@ foreign import ccall -- in the last call to -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT' -- --- - #VUID-vkCmdDrawIndirectCount-multisampledRenderToSingleSampled-07475# --- If the bound graphics pipeline state was created with the +-- - #VUID-vkCmdDrawIndirectCount-rasterizationSamples-07474# If the +-- bound graphics pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT' --- state enabled, and none of the @VK_AMD_mixed_attachment_samples@ --- extension, @VK_NV_framebuffer_mixed_samples@ extension, or the --- --- feature is enabled, then the @rasterizationSamples@ in the last call --- to +-- state enabled, and neither the @VK_AMD_mixed_attachment_samples@ nor +-- the @VK_NV_framebuffer_mixed_samples@ extensions are enabled, then +-- the @rasterizationSamples@ in the last call to -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT' -- /must/ be the same as the current subpass color and\/or -- depth\/stencil attachments -- +-- - #VUID-vkCmdDrawIndirectCount-None-09211# If the bound graphics +-- pipeline state was created with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT' +-- state enabled, or a shader object is bound to any graphics stage, +-- and the current render pass instance includes a +-- 'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT' +-- structure with @multisampledRenderToSingleSampledEnable@ equal to +-- 'Vulkan.Core10.FundamentalTypes.TRUE', then the +-- @rasterizationSamples@ in the last call to +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT' +-- /must/ be the same as the @rasterizationSamples@ member of that +-- structure +-- -- - #VUID-vkCmdDrawIndirectCount-firstAttachment-07476# If the bound -- graphics pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT' @@ -2294,7 +2834,7 @@ foreign import ccall -- and -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendAdvancedEXT' -- have enabled advanced blending, then the number of active color --- attachments in the current subpass must not exceed +-- attachments in the current subpass /must/ not exceed -- -- -- - #VUID-vkCmdDrawIndirectCount-primitivesGeneratedQueryWithNonZeroStreams-07481# @@ -2456,7 +2996,7 @@ foreign import ccall -- @VK_NV_framebuffer_mixed_samples@ extension is enabled, and if -- current subpass has a depth\/stencil attachment and depth test, -- stencil test, or depth bounds test are enabled in the currently --- bound pipeline state, then the current @rasterizationSamples@ must +-- bound pipeline state, then the current @rasterizationSamples@ /must/ -- be the same as the sample count of the depth\/stencil attachment -- -- - #VUID-vkCmdDrawIndirectCount-coverageToColorEnable-07490# If the @@ -2487,7 +3027,7 @@ foreign import ccall -- states enabled, the current coverage reduction mode -- @coverageReductionMode@, then the current @rasterizationSamples@, -- and the sample counts for the color and depth\/stencil attachments --- (if the subpass has them) must be a valid combination returned by +-- (if the subpass has them) /must/ be a valid combination returned by -- 'Vulkan.Extensions.VK_NV_coverage_reduction_mode.getPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV' -- -- - #VUID-vkCmdDrawIndirectCount-viewportCount-07492# If the bound @@ -2575,7 +3115,7 @@ foreign import ccall -- -- feature /must/ be enabled and -- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@strictLines@ --- must be VK_TRUE +-- /must/ be 'Vulkan.Core10.FundamentalTypes.TRUE' -- -- - #VUID-vkCmdDrawIndirectCount-conservativePointAndLineRasterization-07499# -- If the bound graphics pipeline state was created with the @@ -2602,7 +3142,15 @@ foreign import ccall -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT', -- then -- --- must not be active +-- /must/ not be active +-- +-- - #VUID-vkCmdDrawIndirectCount-None-08877# If the bound graphics +-- pipeline state was created with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT' +-- dynamic state +-- 'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT' +-- /must/ have been called in the current command buffer prior to this +-- drawing command -- -- - #VUID-vkCmdDrawIndirectCount-None-07850# If dynamic state was -- inherited from @@ -2613,7 +3161,7 @@ foreign import ccall -- - #VUID-vkCmdDrawIndirectCount-None-08684# If there is no bound -- graphics pipeline, -- 'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/ --- have been called on the current command buffer with @pStages@ with +-- have been called in the current command buffer with @pStages@ with -- an element of -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT' -- @@ -2622,7 +3170,7 @@ foreign import ccall -- -- feature is enabled, -- 'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/ --- have been called on the current command buffer with @pStages@ with +-- have been called in the current command buffer with @pStages@ with -- an element of -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT' -- @@ -2631,7 +3179,7 @@ foreign import ccall -- -- feature is enabled, -- 'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/ --- have been called on the current command buffer with @pStages@ with +-- have been called in the current command buffer with @pStages@ with -- an element of -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT' -- @@ -2640,14 +3188,14 @@ foreign import ccall -- -- feature is enabled, -- 'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/ --- have been called on the current command buffer with @pStages@ with +-- have been called in the current command buffer with @pStages@ with -- an element of -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT' -- -- - #VUID-vkCmdDrawIndirectCount-None-08688# If there is no bound -- graphics pipeline, -- 'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/ --- have been called on the current command buffer with @pStages@ with +-- have been called in the current command buffer with @pStages@ with -- an element of -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' -- @@ -2656,7 +3204,7 @@ foreign import ccall -- -- feature is enabled, -- 'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/ --- have been called on the current command buffer with @pStages@ with +-- have been called in the current command buffer with @pStages@ with -- an element of -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT' -- @@ -2665,7 +3213,7 @@ foreign import ccall -- -- feature is enabled, -- 'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/ --- have been called on the current command buffer with @pStages@ with +-- have been called in the current command buffer with @pStages@ with -- an element of -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT' -- @@ -2677,8 +3225,8 @@ foreign import ccall -- features is enabled, one of the -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT' or -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT' --- stages must have a valid 'Vulkan.Extensions.Handles.ShaderEXT' --- bound, and the other must have no +-- stages /must/ have a valid 'Vulkan.Extensions.Handles.ShaderEXT' +-- bound, and the other /must/ have no -- 'Vulkan.Extensions.Handles.ShaderEXT' bound -- -- - #VUID-vkCmdDrawIndirectCount-None-08694# If there is no bound @@ -2743,6 +3291,37 @@ foreign import ccall -- 'Vulkan.Extensions.VK_EXT_shader_object.createShadersEXT' call -- /must/ not have any 'Vulkan.Extensions.Handles.ShaderEXT' bound -- +-- - #VUID-vkCmdDrawIndirectCount-None-08878# All bound graphics shader +-- objects /must/ have been created with identical or identically +-- defined push constant ranges +-- +-- - #VUID-vkCmdDrawIndirectCount-None-08879# All bound graphics shader +-- objects /must/ have been created with identical or identically +-- defined arrays of descriptor set layouts +-- +-- - #VUID-vkCmdDrawIndirectCount-colorAttachmentCount-09372# If the +-- current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' +-- and a +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ +-- equal to @1@, a color attachment with a resolve mode of +-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID', +-- and a fragment shader is bound, it /must/ not declare the +-- @DepthReplacing@ or @StencilRefReplacingEXT@ execution modes +-- +-- - #VUID-vkCmdDrawIndirectCount-None-08880# If a shader object is bound +-- to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage and the +-- +-- feature is enabled on the device, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE' +-- 'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT' +-- /must/ have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdDrawIndirectCount-pDynamicStates-08715# If the bound -- graphics pipeline state includes a fragment shader stage, was -- created with @@ -2767,6 +3346,32 @@ foreign import ccall -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilWriteMask' /must/ -- be @0@ -- +-- - #VUID-vkCmdDrawIndirectCount-None-09116# If a shader object is bound +-- to any graphics stage or the currently bound graphics pipeline was +-- created with +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_MASK_EXT', +-- and the format of any color attachment is +-- 'Vulkan.Core10.Enums.Format.FORMAT_E5B9G9R9_UFLOAT_PACK32', the +-- corresponding element of the @pColorWriteMasks@ parameter of +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorWriteMaskEXT' +-- /must/ either include all of +-- 'Vulkan.Core10.Enums.ColorComponentFlagBits.COLOR_COMPONENT_R_BIT', +-- 'Vulkan.Core10.Enums.ColorComponentFlagBits.COLOR_COMPONENT_G_BIT', +-- and +-- 'Vulkan.Core10.Enums.ColorComponentFlagBits.COLOR_COMPONENT_B_BIT', +-- or none of them +-- +-- - #VUID-vkCmdDrawIndirectCount-maxFragmentDualSrcAttachments-09239# If +-- +-- is enabled for any attachment where either the source or destination +-- blend factors for that attachment +-- , +-- the maximum value of @Location@ for any output attachment +-- +-- in the @Fragment@ @Execution@ @Model@ executed by this command +-- /must/ be less than +-- +-- -- - #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 @@ -2827,6 +3432,14 @@ foreign import ccall -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT' -- /must/ not be @NULL@ -- +-- - #VUID-vkCmdDrawIndirectCount-None-08881# If a shader object is bound +-- to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT' +-- stage, then +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology' +-- /must/ have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdDrawIndirectCount-None-04914# If the bound graphics -- pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT' @@ -2843,6 +3456,53 @@ foreign import ccall -- @OpEntryPoint@ /must/ contain a location in -- 'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@location@ -- +-- - #VUID-vkCmdDrawIndirectCount-Input-08734# If the bound graphics +-- pipeline state was created with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT' +-- dynamic state enabled, then the numeric type associated with all +-- @Input@ variables of the corresponding @Location@ in the @Vertex@ +-- @Execution@ @Model@ @OpEntryPoint@ /must/ be the same as +-- 'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@format@ +-- +-- - #VUID-vkCmdDrawIndirectCount-format-08936# If there is a shader +-- object bound to a graphics stage or the currently bound graphics +-- pipeline was created with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT' +-- dynamic state enabled, and +-- 'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@format@ +-- has a 64-bit component, then the scalar width associated with all +-- @Input@ variables of the corresponding @Location@ in the @Vertex@ +-- @Execution@ @Model@ @OpEntryPoint@ /must/ be 64-bit +-- +-- - #VUID-vkCmdDrawIndirectCount-format-08937# If there is a shader +-- object bound to a graphics stage or the currently bound graphics +-- pipeline was created with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT' +-- dynamic state enabled, and the scalar width associated with a +-- @Location@ decorated @Input@ variable in the @Vertex@ @Execution@ +-- @Model@ @OpEntryPoint@ is 64-bit, then the corresponding +-- 'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@format@ +-- /must/ have a 64-bit component +-- +-- - #VUID-vkCmdDrawIndirectCount-None-09203# If there is a shader object +-- bound to a graphics stage or the currently bound graphics pipeline +-- was created with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT' +-- dynamic state enabled, and +-- 'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@format@ +-- has a 64-bit component, then all @Input@ variables at the +-- corresponding @Location@ in the @Vertex@ @Execution@ @Model@ +-- @OpEntryPoint@ /must/ not use components that are not present in the +-- format +-- +-- - #VUID-vkCmdDrawIndirectCount-None-08882# If a shader object is bound +-- to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT' +-- stage, then +-- 'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT' +-- /must/ have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdDrawIndirectCount-None-04875# If the bound graphics -- pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT' @@ -2851,6 +3511,14 @@ foreign import ccall -- /must/ have been called in the current command buffer prior to this -- drawing command -- +-- - #VUID-vkCmdDrawIndirectCount-None-08883# If a shader object is bound +-- to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT' +-- stage, 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-04879# If the bound graphics -- pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE' @@ -2859,6 +3527,16 @@ foreign import ccall -- /must/ have been called in the current command buffer prior to this -- drawing command -- +-- - #VUID-vkCmdDrawIndirectCount-rasterizerDiscardEnable-08884# If a +-- shader object is bound to any graphics stage, and the most recent +-- call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetPrimitiveRestartEnable' +-- /must/ have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdDrawIndirectCount-stage-06481# The bound graphics -- pipeline /must/ not have been created with the -- 'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo'::@stage@ @@ -2869,6 +3547,13 @@ foreign import ccall -- or -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT' -- +-- - #VUID-vkCmdDrawIndirectCount-None-08885# There /must/ be no shader +-- object bound to either of the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT' +-- or +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT' +-- stages +-- -- - #VUID-vkCmdDrawIndirectCount-buffer-02708# If @buffer@ is non-sparse -- then it /must/ be bound completely and contiguously to a single -- 'Vulkan.Core10.Handles.DeviceMemory' object @@ -3096,6 +3781,16 @@ foreign import ccall -- /must/ contain -- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT' -- +-- - #VUID-vkCmdDrawIndexedIndirectCount-None-02693# If the +-- +-- extension is not enabled and any 'Vulkan.Core10.Handles.ImageView' +-- is sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a +-- result of this command, it /must/ not have a +-- 'Vulkan.Core10.Enums.ImageViewType.ImageViewType' of +-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_3D', +-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE', or +-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE_ARRAY' +-- -- - #VUID-vkCmdDrawIndexedIndirectCount-filterCubic-02694# Any -- 'Vulkan.Core10.Handles.ImageView' being sampled with -- 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a result of this @@ -3121,6 +3816,34 @@ foreign import ccall -- returned by -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceImageFormatProperties2' -- +-- - #VUID-vkCmdDrawIndexedIndirectCount-cubicRangeClamp-09212# If the +-- +-- feature is not enabled, then any 'Vulkan.Core10.Handles.ImageView' +-- being sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as +-- a result of this command +-- +-- [/must/ not have a 'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo'] +-- @reductionMode@ equal to +-- 'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM' +-- +-- - #VUID-vkCmdDrawIndexedIndirectCount-reductionMode-09213# Any +-- 'Vulkan.Core10.Handles.ImageView' being sampled with a +-- 'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo'::@reductionMode@ +-- equal to +-- 'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM' +-- as a result of this command /must/ sample with +-- 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' +-- +-- - #VUID-vkCmdDrawIndexedIndirectCount-selectableCubicWeights-09214# If +-- the +-- +-- feature is not enabled, then any 'Vulkan.Core10.Handles.ImageView' +-- being sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as +-- a result of this command /must/ have +-- 'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.SamplerCubicWeightsCreateInfoQCOM'::@cubicWeights@ +-- equal to +-- 'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM' +-- -- - #VUID-vkCmdDrawIndexedIndirectCount-flags-02696# Any -- 'Vulkan.Core10.Handles.Image' created with a -- 'Vulkan.Core10.Image.ImageCreateInfo'::@flags@ containing @@ -3162,11 +3885,9 @@ foreign import ccall -- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT' -- -- - #VUID-vkCmdDrawIndexedIndirectCount-None-08600# For each set /n/ --- that is statically used by the 'Vulkan.Core10.Handles.Pipeline' --- bound to the pipeline bind point used by this command, or by any of --- the 'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages --- corresponding to the pipeline bind point used by this command, a --- descriptor set /must/ have been bound to /n/ at the same pipeline +-- that is statically used by +-- , +-- a descriptor set /must/ have been bound to /n/ at the same pipeline -- bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is -- compatible for set /n/, with the -- 'Vulkan.Core10.Handles.PipelineLayout' or @@ -3176,13 +3897,10 @@ foreign import ccall -- -- -- - #VUID-vkCmdDrawIndexedIndirectCount-None-08601# For each push --- constant that is statically used by the --- 'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point --- used by this command, or by any of the --- 'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages --- corresponding to the pipeline bind point used by this command, a --- push constant value /must/ have been set for the same pipeline bind --- point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is +-- constant that is statically used by +-- , +-- a push constant value /must/ have been set for the same pipeline +-- bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is -- compatible for push constants, with the -- 'Vulkan.Core10.Handles.PipelineLayout' or -- 'Vulkan.Core10.Handles.DescriptorSetLayout' and @@ -3194,12 +3912,10 @@ foreign import ccall -- - #VUID-vkCmdDrawIndexedIndirectCount-maintenance4-08602# If the -- -- feature is not enabled, then for each push constant that is --- statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to the --- pipeline bind point used by this command, or by any of the --- 'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages --- corresponding to the pipeline bind point used by this command, a --- push constant value /must/ have been set for the same pipeline bind --- point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is +-- statically used by +-- , +-- a push constant value /must/ have been set for the same pipeline +-- bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is -- compatible for push constants, with the -- 'Vulkan.Core10.Handles.PipelineLayout' or -- 'Vulkan.Core10.Handles.DescriptorSetLayout' and @@ -3362,34 +4078,25 @@ foreign import ccall -- buffer as specified in the descriptor set bound to the same pipeline -- bind point -- --- - #VUID-vkCmdDrawIndexedIndirectCount-commandBuffer-08614# If +-- - #VUID-vkCmdDrawIndexedIndirectCount-commandBuffer-02707# If -- @commandBuffer@ is an unprotected command buffer and -- --- is not supported, any resource accessed by the --- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind --- point used by this command or any --- 'Vulkan.Extensions.Handles.ShaderEXT' object bound to a stage --- corresponding to the pipeline bind point used by this command /must/ --- not be a protected resource --- --- - #VUID-vkCmdDrawIndexedIndirectCount-None-08615# If the --- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind --- point used by this command or any --- 'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding --- to the pipeline bind point used by this command accesses a --- 'Vulkan.Core10.Handles.Sampler' or 'Vulkan.Core10.Handles.ImageView' --- object that enables +-- is not supported, any resource accessed by +-- +-- /must/ not be a protected resource +-- +-- - #VUID-vkCmdDrawIndexedIndirectCount-None-06550# If +-- +-- accesses a 'Vulkan.Core10.Handles.Sampler' or +-- 'Vulkan.Core10.Handles.ImageView' object that enables -- , -- that object /must/ only be used with @OpImageSample*@ or -- @OpImageSparseSample*@ instructions -- --- - #VUID-vkCmdDrawIndexedIndirectCount-ConstOffset-08616# If the --- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind --- point used by this command or any --- 'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding --- to the pipeline bind point used by this command accesses a --- 'Vulkan.Core10.Handles.Sampler' or 'Vulkan.Core10.Handles.ImageView' --- object that enables +-- - #VUID-vkCmdDrawIndexedIndirectCount-ConstOffset-06551# If +-- +-- accesses a 'Vulkan.Core10.Handles.Sampler' or +-- 'Vulkan.Core10.Handles.ImageView' object that enables -- , -- that object /must/ not use the @ConstOffset@ and @Offset@ operands -- @@ -3401,17 +4108,23 @@ foreign import ccall -- -- - #VUID-vkCmdDrawIndexedIndirectCount-format-07753# If a -- 'Vulkan.Core10.Handles.ImageView' is accessed as a result of this --- command, then the image view’s @format@ /must/ match the numeric --- format from the @Sampled@ @Type@ operand of the @OpTypeImage@ as --- described in the SPIR-V Sampled Type column of the --- --- table --- --- - #VUID-vkCmdDrawIndexedIndirectCount-None-04115# If a --- 'Vulkan.Core10.Handles.ImageView' is accessed using @OpImageWrite@ --- as a result of this command, then the @Type@ of the @Texel@ operand --- of that instruction /must/ have at least as many components as the --- image view’s format +-- command, then the +-- +-- of the image view’s @format@ and the @Sampled@ @Type@ operand of the +-- @OpTypeImage@ /must/ match +-- +-- - #VUID-vkCmdDrawIndexedIndirectCount-OpImageWrite-08795# If a +-- 'Vulkan.Core10.Handles.ImageView' created with a format other than +-- 'Vulkan.Core10.Enums.Format.FORMAT_A8_UNORM_KHR' is accessed using +-- @OpImageWrite@ as a result of this command, then the @Type@ of the +-- @Texel@ operand of that instruction /must/ have at least as many +-- components as the image view’s format +-- +-- - #VUID-vkCmdDrawIndexedIndirectCount-OpImageWrite-08796# If a +-- 'Vulkan.Core10.Handles.ImageView' created with the format +-- 'Vulkan.Core10.Enums.Format.FORMAT_A8_UNORM_KHR' is accessed using +-- @OpImageWrite@ as a result of this command, then the @Type@ of the +-- @Texel@ operand of that instruction /must/ have four components -- -- - #VUID-vkCmdDrawIndexedIndirectCount-OpImageWrite-04469# If a -- 'Vulkan.Core10.Handles.BufferView' is accessed using @OpImageWrite@ @@ -3515,6 +4228,8 @@ foreign import ccall -- -- - #VUID-vkCmdDrawIndexedIndirectCount-OpImageWeightedSampleQCOM-06977# -- If @OpImageWeightedSampleQCOM@, @OpImageBoxFilterQCOM@, +-- @OpImageBlockMatchWindowSSDQCOM@, @OpImageBlockMatchWindowSADQCOM@, +-- @OpImageBlockMatchGatherSSDQCOM@, @OpImageBlockMatchGatherSADQCOM@, -- @OpImageBlockMatchSSDQCOM@, or @OpImageBlockMatchSADQCOM@ uses a -- 'Vulkan.Core10.Handles.Sampler' as a result of this command, then -- the sampler /must/ have been created with @@ -3522,12 +4237,36 @@ foreign import ccall -- -- - #VUID-vkCmdDrawIndexedIndirectCount-OpImageWeightedSampleQCOM-06978# -- If any command other than @OpImageWeightedSampleQCOM@, --- @OpImageBoxFilterQCOM@, @OpImageBlockMatchSSDQCOM@, or +-- @OpImageBoxFilterQCOM@, @OpImageBlockMatchWindowSSDQCOM@, +-- @OpImageBlockMatchWindowSADQCOM@, @OpImageBlockMatchGatherSSDQCOM@, +-- @OpImageBlockMatchGatherSADQCOM@, @OpImageBlockMatchSSDQCOM@, or -- @OpImageBlockMatchSADQCOM@ uses a 'Vulkan.Core10.Handles.Sampler' as -- a result of this command, then the sampler /must/ not have been -- created with -- 'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM' -- +-- - #VUID-vkCmdDrawIndexedIndirectCount-OpImageBlockMatchWindow-09215# +-- If a @OpImageBlockMatchWindow*QCOM@ or +-- @OpImageBlockMatchGather*QCOM@ instruction is used to read from an +-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then +-- the image view’s +-- +-- /must/ contain +-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM' +-- +-- - #VUID-vkCmdDrawIndexedIndirectCount-OpImageBlockMatchWindow-09216# +-- If a @OpImageBlockMatchWindow*QCOM@ or +-- @OpImageBlockMatchGather*QCOM@ instruction is used to read from an +-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then +-- the image view’s format /must/ be a single-component format. +-- +-- - #VUID-vkCmdDrawIndexedIndirectCount-OpImageBlockMatchWindow-09217# +-- If a @OpImageBlockMatchWindow*QCOM@ or +-- @OpImageBlockMatchGather*QCOM@ read from a reference image as result +-- of this command, then the specified reference coordinates /must/ not +-- fail +-- +-- -- - #VUID-vkCmdDrawIndexedIndirectCount-None-07288# Any shader -- invocation executed by this command /must/ -- @@ -3572,15 +4311,89 @@ foreign import ccall -- not be written in any way other than as an attachment by this -- command -- --- - #VUID-vkCmdDrawIndexedIndirectCount-None-06538# If any recorded --- command in the current subpass will write to an image subresource as --- an attachment, this command /must/ not read from the memory backing --- that image subresource in any other way than as an attachment +-- - #VUID-vkCmdDrawIndexedIndirectCount-None-09000# If a color +-- attachment is written by any prior command in this subpass or by the +-- load, store, or resolve operations for this subpass, it is not in +-- the +-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT' +-- image layout, and either: +-- +-- - the +-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT' +-- is set on the currently bound pipeline or +-- +-- - the last call to +-- 'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT' +-- included +-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT' +-- and +-- +-- - there is no currently bound graphics pipeline or +-- +-- - the currently bound graphics pipeline was created with +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT' +-- it /must/ not be accessed in any way other than as an +-- attachment by this command +-- +-- - #VUID-vkCmdDrawIndexedIndirectCount-None-09001# If a depth +-- attachment is written by any prior command in this subpass or by the +-- load, store, or resolve operations for this subpass, it is not in +-- the +-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT' +-- image layout, and either: +-- +-- - the +-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT' +-- is set on the currently bound pipeline or +-- +-- - the last call to +-- 'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT' +-- included +-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_DEPTH_BIT' +-- and +-- +-- - there is no currently bound graphics pipeline or +-- +-- - the currently bound graphics pipeline was created with +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT' +-- it /must/ not be accessed in any way other than as an +-- attachment by this command -- --- - #VUID-vkCmdDrawIndexedIndirectCount-None-06539# If any recorded --- command in the current subpass will read from an image subresource --- used as an attachment in any way other than as an attachment, this --- command /must/ not write to that image subresource as an attachment +-- - #VUID-vkCmdDrawIndexedIndirectCount-None-09002# If a stencil +-- attachment is written by any prior command in this subpass or by the +-- load, store, or resolve operations for this subpass, it is not in +-- the +-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT' +-- image layout, and either: +-- +-- - the +-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT' +-- is set on the currently bound pipeline or +-- +-- - the last call to +-- 'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT' +-- included +-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT' +-- and +-- +-- - there is no currently bound graphics pipeline or +-- +-- - the currently bound graphics pipeline was created with +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT' +-- it /must/ not be accessed in any way other than as an +-- attachment by this command +-- +-- - #VUID-vkCmdDrawIndexedIndirectCount-None-09003# If an attachment is +-- written by any prior command in this subpass or by the load, store, +-- or resolve operations for this subpass, it /must/ not be accessed in +-- any way other than as an attachment, storage image, or sampled image +-- by this command +-- +-- - #VUID-vkCmdDrawIndexedIndirectCount-None-06539# If any previously +-- recorded command in the current subpass accessed an image +-- subresource used as an attachment in this subpass in any way other +-- than as an attachment, this command /must/ not write to that image +-- subresource as an attachment -- -- - #VUID-vkCmdDrawIndexedIndirectCount-None-06886# If the current -- render pass instance uses a depth\/stencil attachment with a @@ -3650,18 +4463,23 @@ foreign import ccall -- graphics pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS' dynamic -- state enabled then --- 'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBias' /must/ have --- been called in the current command buffer prior to this drawing --- command +-- 'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBias' or +-- 'Vulkan.Extensions.VK_EXT_depth_bias_control.cmdSetDepthBias2EXT' +-- /must/ have been called in the current command buffer prior to this +-- drawing command -- -- - #VUID-vkCmdDrawIndexedIndirectCount-None-08620# If a shader object -- is bound to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnable' -- in the current command buffer set @depthBiasEnable@ to -- 'Vulkan.Core10.FundamentalTypes.TRUE', --- 'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBias' /must/ have --- been called in the current command buffer prior to this drawing --- command +-- 'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBias' or +-- 'Vulkan.Extensions.VK_EXT_depth_bias_control.cmdSetDepthBias2EXT' +-- /must/ have been called in the current command buffer prior to this +-- drawing command -- -- - #VUID-vkCmdDrawIndexedIndirectCount-None-07835# If the bound -- graphics pipeline state was created with the @@ -3684,7 +4502,7 @@ foreign import ccall -- the most recent call to -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT' -- in the current command buffer set the same element of --- @pColorBlendEquations@ to an +-- @pColorBlendEquations@ to a -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.ColorBlendEquationEXT' -- structure with any 'Vulkan.Core10.Enums.BlendFactor.BlendFactor' -- member with a value of @@ -3699,16 +4517,20 @@ foreign import ccall -- - #VUID-vkCmdDrawIndexedIndirectCount-None-07836# If the bound -- graphics pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS' --- dynamic state enabled then +-- dynamic state enabled, and if the current @depthBoundsTestEnable@ +-- state is 'Vulkan.Core10.FundamentalTypes.TRUE', then -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBounds' /must/ have -- been called in the current command buffer prior to this drawing -- command -- -- - #VUID-vkCmdDrawIndexedIndirectCount-None-08622# If a shader object -- is bound to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable' -- in the current command buffer set @depthBoundsTestEnable@ to --- 'Vulkan.Core10.FundamentalTypes.TRUE', +-- 'Vulkan.Core10.FundamentalTypes.TRUE', then -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBounds' /must/ have -- been called in the current command buffer prior to this drawing -- command @@ -3716,7 +4538,8 @@ foreign import ccall -- - #VUID-vkCmdDrawIndexedIndirectCount-None-07837# If the bound -- graphics pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_COMPARE_MASK' --- dynamic state enabled then +-- dynamic state enabled, and if the current @stencilTestEnable@ state +-- is 'Vulkan.Core10.FundamentalTypes.TRUE', then -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilCompareMask' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -3733,7 +4556,8 @@ foreign import ccall -- - #VUID-vkCmdDrawIndexedIndirectCount-None-07838# If the bound -- graphics pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_WRITE_MASK' --- dynamic state enabled then +-- dynamic state enabled, and if the current @stencilTestEnable@ state +-- is 'Vulkan.Core10.FundamentalTypes.TRUE', then -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilWriteMask' /must/ -- have been called in the current command buffer prior to this drawing -- command @@ -3750,7 +4574,8 @@ foreign import ccall -- - #VUID-vkCmdDrawIndexedIndirectCount-None-07839# If the bound -- graphics pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_REFERENCE' --- dynamic state enabled then +-- dynamic state enabled, and if the current @stencilTestEnable@ state +-- is 'Vulkan.Core10.FundamentalTypes.TRUE', then -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilReference' /must/ -- have been called in the current command buffer prior to this drawing -- command @@ -3790,7 +4615,10 @@ foreign import ccall -- is bound to any graphics stage, and the most recent call to -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT' -- in the current command buffer set @sampleLocationsEnable@ to --- 'Vulkan.Core10.FundamentalTypes.TRUE', +-- 'Vulkan.Core10.FundamentalTypes.TRUE', and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -3814,7 +4642,10 @@ foreign import ccall -- drawing command -- -- - #VUID-vkCmdDrawIndexedIndirectCount-None-08627# If a shader object --- is bound to any graphics stage, +-- is bound to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetCullMode' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -3828,7 +4659,10 @@ foreign import ccall -- drawing command -- -- - #VUID-vkCmdDrawIndexedIndirectCount-None-08628# If a shader object --- is bound to any graphics stage, +-- is bound to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetFrontFace' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -3842,7 +4676,10 @@ foreign import ccall -- drawing command -- -- - #VUID-vkCmdDrawIndexedIndirectCount-None-08629# If a shader object --- is bound to any graphics stage, +-- is bound to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -3856,7 +4693,10 @@ foreign import ccall -- drawing command -- -- - #VUID-vkCmdDrawIndexedIndirectCount-None-08630# If a shader object --- is bound to any graphics stage, +-- is bound to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -3871,9 +4711,12 @@ foreign import ccall -- -- - #VUID-vkCmdDrawIndexedIndirectCount-None-08631# If a shader object -- is bound to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable' -- in the current command buffer set @depthTestEnable@ to --- 'Vulkan.Core10.FundamentalTypes.TRUE', +-- 'Vulkan.Core10.FundamentalTypes.TRUE', then -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthCompareOp' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -3889,7 +4732,10 @@ foreign import ccall -- - #VUID-vkCmdDrawIndexedIndirectCount-None-08632# If a shader object -- is bound to any graphics stage, and the -- --- feature is enabled, the +-- feature is enabled, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then the -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -4009,6 +4855,13 @@ foreign import ccall -- the last call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- +-- - #VUID-vkCmdDrawIndexedIndirectCount-None-09232# If a shader object +-- is bound to any graphics stage, and the @VK_NV_clip_space_w_scaling@ +-- extension is enabled on the device, then +-- 'Vulkan.Extensions.VK_NV_clip_space_w_scaling.cmdSetViewportWScalingNV' +-- must have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdDrawIndexedIndirectCount-None-08636# If a shader object -- is bound to any graphics stage, and the @VK_NV_clip_space_w_scaling@ -- extension is enabled on the device, then the @viewportCount@ @@ -4042,6 +4895,30 @@ foreign import ccall -- the last call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- +-- - #VUID-vkCmdDrawIndexedIndirectCount-shadingRateImage-09233# If the +-- +-- feature is enabled, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set rasterizerDiscardEnable to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then +-- 'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetCoarseSampleOrderNV' +-- must have been called in the current command buffer prior to this +-- drawing command +-- +-- - #VUID-vkCmdDrawIndexedIndirectCount-shadingRateImage-09234# If a +-- shader object is bound to any graphics stage, and the +-- +-- feature is enabled on the device, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set rasterizerDiscardEnable to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetShadingRateImageEnableNV' +-- in the current command buffer set shadingRateImageEnable to +-- 'Vulkan.Core10.FundamentalTypes.TRUE', then +-- 'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetViewportShadingRatePaletteNV' +-- must have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdDrawIndexedIndirectCount-None-08637# If a shader object -- is bound to any graphics stage, and the -- @@ -4094,6 +4971,14 @@ foreign import ccall -- /must/ have been called in the current command buffer prior to this -- drawing command -- +-- - #VUID-vkCmdDrawIndexedIndirectCount-exclusiveScissor-09235# If a +-- shader object is bound to any graphics stage, and the +-- +-- feature is enabled, then +-- 'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorEnableNV' +-- must have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdDrawIndexedIndirectCount-None-08638# If a shader object -- is bound to any graphics stage, and the most recent call to -- 'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorEnableNV' @@ -4145,7 +5030,9 @@ foreign import ccall -- 'Vulkan.Core10.Enums.LogicOp.LogicOp' value -- -- - #VUID-vkCmdDrawIndexedIndirectCount-None-08641# If a shader object --- is bound to any graphics stage, and the +-- is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage, and the -- -- feature is enabled on the device, and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' @@ -4231,6 +5118,11 @@ foreign import ccall -- to be the same as the number of samples for the current render pass -- color and\/or depth\/stencil attachments -- +-- - #VUID-vkCmdDrawIndexedIndirectCount-None-08876# If a shader object +-- is bound to any graphics stage, the current render pass instance +-- /must/ have been begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' +-- -- - #VUID-vkCmdDrawIndexedIndirectCount-imageView-06172# If the current -- render pass instance was begun with -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', @@ -4303,8 +5195,11 @@ foreign import ccall -- equal to -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ -- --- - #VUID-vkCmdDrawIndexedIndirectCount-colorAttachmentCount-06180# If --- the current render pass instance was begun with +-- - #VUID-vkCmdDrawIndexedIndirectCount-dynamicRenderingUnusedAttachments-08910# +-- If the +-- +-- feature is not enabled, and the current render pass instance was +-- begun with -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' -- and -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ @@ -4317,8 +5212,32 @@ foreign import ccall -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@ -- used to create the currently bound graphics pipeline -- --- - #VUID-vkCmdDrawIndexedIndirectCount-colorAttachmentCount-07616# If --- the current render pass instance was begun with +-- - #VUID-vkCmdDrawIndexedIndirectCount-dynamicRenderingUnusedAttachments-08911# +-- If the +-- +-- feature is enabled, and the current render pass instance was begun +-- with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' +-- and +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ +-- greater than @0@, then each element of the +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@ +-- array with a @imageView@ not equal to +-- 'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created +-- with a 'Vulkan.Core10.Enums.Format.Format' equal to the +-- corresponding element of +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@ +-- used to create the currently bound graphics pipeline, or the +-- corresponding element of +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@, +-- if it exists, /must/ be +-- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' +-- +-- - #VUID-vkCmdDrawIndexedIndirectCount-dynamicRenderingUnusedAttachments-08912# +-- If the +-- +-- feature is not enabled, and the current render pass instance was +-- begun with -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' -- and -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ @@ -4331,6 +5250,132 @@ foreign import ccall -- used to create the currently bound pipeline equal to -- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' -- +-- - #VUID-vkCmdDrawIndexedIndirectCount-colorAttachmentCount-09362# If +-- the current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- with a +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ +-- equal to @1@, there is no shader object bound to any graphics stage, +-- and a color attachment with a resolve mode of +-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID', +-- each element of the +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@ +-- array with a @resolveImageView@ not equal to +-- 'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created +-- with an image created with a +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- value equal to the +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- value used to create the currently bound graphics pipeline +-- +-- - #VUID-vkCmdDrawIndexedIndirectCount-None-09363# If there is no +-- shader object bound to any graphics stage, the current render pass +-- instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' +-- and a +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ +-- equal to @1@, and a color attachment with a resolve mode of +-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID', +-- each element of the +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@ +-- array with a @imageView@ not equal to +-- 'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created +-- with an image created with a +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- value equal to the +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- value used to create the currently bound graphics pipeline +-- +-- - #VUID-vkCmdDrawIndexedIndirectCount-None-09364# If the current +-- render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- there is no shader object bound to any graphics stage, and the +-- currently bound graphics pipeline was created with a non-zero +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- value and with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT' +-- dynamic state enabled, then +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT' +-- /must/ have set the blend enable to +-- 'Vulkan.Core10.FundamentalTypes.FALSE' prior to this drawing command +-- +-- - #VUID-vkCmdDrawIndexedIndirectCount-None-09365# If the current +-- render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- there is no shader object bound to any graphics stage, and the +-- currently bound graphics pipeline was created with a non-zero +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- value and with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT' +-- dynamic state enabled, then +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT' +-- /must/ have set @rasterizationSamples@ to +-- 'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT' prior +-- to this drawing command +-- +-- - #VUID-vkCmdDrawIndexedIndirectCount-None-09366# If there is a shader +-- object bound to any graphics stage, and the current render pass +-- includes a color attachment that uses the +-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID' +-- resolve mode, then +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT' +-- /must/ have set blend enable to +-- 'Vulkan.Core10.FundamentalTypes.FALSE' prior to this drawing command +-- +-- - #VUID-vkCmdDrawIndexedIndirectCount-rasterizationSamples-09367# If +-- there is a shader object bound to any graphics stage, and the +-- current render pass includes a color attachment that uses the +-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID' +-- resolve mode, then +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT' +-- /must/ have set @rasterizationSamples@ to +-- 'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT' prior +-- to this drawing command +-- +-- - #VUID-vkCmdDrawIndexedIndirectCount-None-09368# If the current +-- render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- there is no shader object bound to any graphics stage, and the +-- currently bound graphics pipeline was created with a non-zero +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- value and with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR' +-- dynamic state enabled, then +-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR' +-- /must/ have set @pFragmentSize->width@ to @1@ prior to this drawing +-- command +-- +-- - #VUID-vkCmdDrawIndexedIndirectCount-None-09369# If the current +-- render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- there is no shader object bound to any graphics stage, and the +-- currently bound graphics pipeline was created with a non-zero +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- value and with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR' +-- dynamic state enabled, then +-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR' +-- /must/ have set @pFragmentSize->height@ to @1@ prior to this drawing +-- command +-- +-- - #VUID-vkCmdDrawIndexedIndirectCount-pFragmentSize-09370# If there is +-- a shader object bound to any graphics stage, and the current render +-- pass includes a color attachment that uses the +-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID' +-- resolve mode, then +-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR' +-- /must/ have set @pFragmentSize->width@ to @1@ prior to this drawing +-- command +-- +-- - #VUID-vkCmdDrawIndexedIndirectCount-pFragmentSize-09371# If there is +-- a shader object bound to any graphics stage, and the current render +-- pass includes a color attachment that uses the +-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID' +-- resolve mode, then +-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR' +-- /must/ have set @pFragmentSize->height@ to @1@ prior to this drawing +-- command +-- -- - #VUID-vkCmdDrawIndexedIndirectCount-None-07749# If the bound -- graphics pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT' @@ -4342,7 +5387,9 @@ foreign import ccall -- - #VUID-vkCmdDrawIndexedIndirectCount-None-08646# If the -- -- feature is enabled on the device, and a shader object is bound to --- the fragment stage, and the most recent call to +-- the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage, and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' -- in the current command buffer set @rasterizerDiscardEnable@ to -- 'Vulkan.Core10.FundamentalTypes.FALSE', then @@ -4362,7 +5409,9 @@ foreign import ccall -- - #VUID-vkCmdDrawIndexedIndirectCount-None-08647# If the -- -- feature is enabled on the device, and a shader object is bound to --- the fragment stage, and the most recent call to +-- the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage, and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' -- in the current command buffer set @rasterizerDiscardEnable@ to -- 'Vulkan.Core10.FundamentalTypes.FALSE', then the @attachmentCount@ @@ -4388,6 +5437,17 @@ foreign import ccall -- /must/ have been called in the current command buffer prior to this -- drawing command -- +-- - #VUID-vkCmdDrawIndexedIndirectCount-rasterizerDiscardEnable-09236# +-- If the @VK_EXT_discard_rectangles@ extension is enabled, and a +-- shader object is bound to any graphics stage, and the most recent +-- call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then +-- 'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEXT' +-- /must/ have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdDrawIndexedIndirectCount-None-08648# If the -- @VK_EXT_discard_rectangles@ extension is enabled, and a shader -- object is bound to any graphics stage, and the most recent call to @@ -4419,10 +5479,24 @@ foreign import ccall -- /must/ have been called in the current command buffer prior to this -- drawing command -- --- - #VUID-vkCmdDrawIndexedIndirectCount-pDepthAttachment-06181# If the --- current render pass instance was begun with --- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' --- and +-- - #VUID-vkCmdDrawIndexedIndirectCount-dynamicRenderingUnusedAttachments-08913# +-- If the current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- the +-- +-- feature is not enabled, and +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@ +-- was 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@ +-- used to create the currently bound graphics pipeline /must/ be equal +-- to 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' +-- +-- - #VUID-vkCmdDrawIndexedIndirectCount-dynamicRenderingUnusedAttachments-08914# +-- If current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- the +-- +-- feature is not enabled, and -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@ -- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@ @@ -4430,20 +5504,39 @@ foreign import ccall -- to the 'Vulkan.Core10.Enums.Format.Format' used to create -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@ -- --- - #VUID-vkCmdDrawIndexedIndirectCount-pDepthAttachment-07617# If the --- current render pass instance was begun with --- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' --- and +-- - #VUID-vkCmdDrawIndexedIndirectCount-dynamicRenderingUnusedAttachments-08915# +-- If the current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- the +-- +-- feature is enabled, -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@ --- was 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of +-- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the value of -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@ +-- used to create the currently bound graphics pipeline was not equal +-- to the 'Vulkan.Core10.Enums.Format.Format' used to create +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@, +-- the value of the format /must/ be +-- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' +-- +-- - #VUID-vkCmdDrawIndexedIndirectCount-dynamicRenderingUnusedAttachments-08916# +-- If the current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- the +-- +-- feature is not enabled, and +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@ +-- was 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@ -- used to create the currently bound graphics pipeline /must/ be equal -- to 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' -- --- - #VUID-vkCmdDrawIndexedIndirectCount-pStencilAttachment-06182# If the --- current render pass instance was begun with --- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' --- and +-- - #VUID-vkCmdDrawIndexedIndirectCount-dynamicRenderingUnusedAttachments-08917# +-- If current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- the +-- +-- feature is not enabled, and -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@ -- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@ @@ -4451,15 +5544,20 @@ foreign import ccall -- to the 'Vulkan.Core10.Enums.Format.Format' used to create -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@ -- --- - #VUID-vkCmdDrawIndexedIndirectCount-pStencilAttachment-07618# If the --- current render pass instance was begun with --- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' --- and +-- - #VUID-vkCmdDrawIndexedIndirectCount-dynamicRenderingUnusedAttachments-08918# +-- If the current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- the +-- +-- feature is enabled, -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@ --- was 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of +-- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the value of -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@ --- used to create the currently bound graphics pipeline /must/ be equal --- to 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' +-- used to create the currently bound graphics pipeline was not equal +-- to the 'Vulkan.Core10.Enums.Format.Format' used to create +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@, +-- the value of the format /must/ be +-- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' -- -- - #VUID-vkCmdDrawIndexedIndirectCount-imageView-06183# If the current -- render pass instance was begun with @@ -4606,6 +5704,40 @@ foreign import ccall -- 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@renderPass@ -- equal to 'Vulkan.Core10.APIConstants.NULL_HANDLE' -- +-- - #VUID-vkCmdDrawIndexedIndirectCount-pColorAttachments-08963# If the +-- current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- there is a graphics pipeline bound with a fragment shader that +-- statically writes to a color attachment, the color write mask is not +-- zero, color writes are enabled, and the corresponding element of the +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments->imageView@ +-- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', then the +-- corresponding element of +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@ +-- used to create the pipeline /must/ not be +-- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' +-- +-- - #VUID-vkCmdDrawIndexedIndirectCount-pDepthAttachment-08964# If the +-- current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- there is a graphics pipeline bound, depth test is enabled, depth +-- write is enabled, and the +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@ +-- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', then the +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@ +-- used to create the pipeline /must/ not be +-- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' +-- +-- - #VUID-vkCmdDrawIndexedIndirectCount-pStencilAttachment-08965# If the +-- current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- there is a graphics pipeline bound, stencil test is enabled and the +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@ +-- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', then the +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@ +-- used to create the pipeline /must/ not be +-- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' +-- -- - #VUID-vkCmdDrawIndexedIndirectCount-primitivesGeneratedQueryWithRasterizerDiscard-06708# -- If the -- @@ -4632,6 +5764,22 @@ foreign import ccall -- /must/ have been called in the current command buffer prior to this -- drawing command -- +-- - #VUID-vkCmdDrawIndexedIndirectCount-None-07620# If the bound +-- graphics pipeline state was created with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT' +-- dynamic state enabled then +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClampEnableEXT' +-- /must/ have been called in the current command buffer prior to this +-- drawing command +-- +-- - #VUID-vkCmdDrawIndexedIndirectCount-None-09237# If a shader object +-- is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT' +-- stage, then +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetTessellationDomainOriginEXT' +-- /must/ have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdDrawIndexedIndirectCount-None-08650# If the -- -- feature is enabled, and a shader object is bound to any graphics @@ -4702,6 +5850,17 @@ foreign import ccall -- /must/ have been called in the current command buffer prior to this -- drawing command -- +-- - #VUID-vkCmdDrawIndexedIndirectCount-alphaToCoverageEnable-08919# If +-- the bound graphics pipeline state was created with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT' +-- dynamic state enabled, and @alphaToCoverageEnable@ was +-- 'Vulkan.Core10.FundamentalTypes.TRUE' in the last call to +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT', +-- then the +-- +-- /must/ contain a variable for the alpha @Component@ word in +-- @Location@ 0 at @Index@ 0 +-- -- - #VUID-vkCmdDrawIndexedIndirectCount-None-08654# If a shader object -- is bound to any graphics stage, and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' @@ -4711,6 +5870,16 @@ foreign import ccall -- /must/ have been called in the current command buffer prior to this -- drawing command -- +-- - #VUID-vkCmdDrawIndexedIndirectCount-alphaToCoverageEnable-08920# If +-- a shader object is bound to any graphics stage, and the most recent +-- call to +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT' +-- in the current command buffer set @alphaToCoverageEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.TRUE', then the +-- +-- /must/ contain a variable for the alpha @Component@ word in +-- @Location@ 0 at @Index@ 0 +-- -- - #VUID-vkCmdDrawIndexedIndirectCount-None-07625# If the bound -- graphics pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT' @@ -4740,7 +5909,8 @@ foreign import ccall -- -- - #VUID-vkCmdDrawIndexedIndirectCount-None-08656# If the -- --- feature is enabled, and a shader object is bound to any graphics +-- feature is enabled, and a shader object is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' -- stage, and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' -- in the current command buffer set @rasterizerDiscardEnable@ to @@ -4758,7 +5928,9 @@ foreign import ccall -- drawing command -- -- - #VUID-vkCmdDrawIndexedIndirectCount-None-08657# If a shader object --- is bound to any graphics stage, and the most recent call to +-- is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage, and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' -- in the current command buffer set @rasterizerDiscardEnable@ to -- 'Vulkan.Core10.FundamentalTypes.FALSE', then @@ -4795,7 +5967,9 @@ foreign import ccall -- drawing command -- -- - #VUID-vkCmdDrawIndexedIndirectCount-None-08659# If a shader object --- is bound to any graphics stage, and the most recent call to +-- is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage, and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' -- in the current command buffer set @rasterizerDiscardEnable@ to -- 'Vulkan.Core10.FundamentalTypes.FALSE', then @@ -4813,7 +5987,8 @@ foreign import ccall -- -- - #VUID-vkCmdDrawIndexedIndirectCount-None-08660# If the -- --- feature is enabled, and a shader object is bound to the geometry +-- feature is enabled, and a shader object is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT' -- stage, then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationStreamEXT' -- /must/ have been called in the current command buffer prior to this @@ -4913,7 +6088,9 @@ foreign import ccall -- -- - #VUID-vkCmdDrawIndexedIndirectCount-None-08665# If the -- @VK_EXT_provoking_vertex@ extension is enabled, and a shader object --- is bound to the vertex stage, then +-- is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT' +-- stage, then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetProvokingVertexModeEXT' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -5022,7 +6199,7 @@ foreign import ccall -- stage, then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClipNegativeOneToOneEXT' -- /must/ have been called in the current command buffer prior to this --- drawing command ifdef::VK_EXT_extended_dynamic_state3 +-- drawing command -- -- - #VUID-vkCmdDrawIndexedIndirectCount-None-07640# If the bound -- graphics pipeline state was created with the @@ -5030,7 +6207,7 @@ foreign import ccall -- dynamic state enabled then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetViewportWScalingEnableNV' -- /must/ have been called in the current command buffer prior to this --- drawing command endif::VK_EXT_extended_dynamic_state3 +-- drawing command -- -- - #VUID-vkCmdDrawIndexedIndirectCount-None-08674# If the -- @VK_NV_clip_space_w_scaling@ extension is enabled, and a shader @@ -5064,7 +6241,12 @@ foreign import ccall -- -- - #VUID-vkCmdDrawIndexedIndirectCount-None-08676# If the -- @VK_NV_fragment_coverage_to_color@ extension is enabled, and a --- shader object is bound to any graphics stage, then +-- shader object is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -5079,8 +6261,9 @@ foreign import ccall -- -- - #VUID-vkCmdDrawIndexedIndirectCount-None-08677# If the -- @VK_NV_fragment_coverage_to_color@ extension is enabled, and a --- shader object is bound to any graphics stage, and the most recent --- call to +-- shader object is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage, and the most recent call to -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV' -- in the current command buffer set @coverageToColorEnable@ to -- 'Vulkan.Core10.FundamentalTypes.TRUE', then @@ -5098,7 +6281,10 @@ foreign import ccall -- -- - #VUID-vkCmdDrawIndexedIndirectCount-None-08678# If the -- @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader --- object is bound to any graphics stage, then +-- object is bound to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationModeNV' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -5113,7 +6299,15 @@ foreign import ccall -- -- - #VUID-vkCmdDrawIndexedIndirectCount-None-08679# If the -- @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader --- object is bound to any graphics stage, then +-- object is bound to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationModeNV' +-- in the current command buffer set coverageModulationMode to any +-- value other than +-- 'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.COVERAGE_MODULATION_MODE_NONE_NV', +-- then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -5129,6 +6323,9 @@ foreign import ccall -- - #VUID-vkCmdDrawIndexedIndirectCount-None-08680# If the -- @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader -- object is bound to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV' -- in the current command buffer set @coverageModulationTableEnable@ to -- 'Vulkan.Core10.FundamentalTypes.TRUE', then @@ -5144,10 +6341,26 @@ foreign import ccall -- /must/ have been called in the current command buffer prior to this -- drawing command -- +-- - #VUID-vkCmdDrawIndexedIndirectCount-pipelineFragmentShadingRate-09238# +-- If the +-- +-- feature is enabled, and a shader object is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set rasterizerDiscardEnable to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then +-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR' +-- must have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdDrawIndexedIndirectCount-None-08681# If the -- -- feature is enabled, and a shader object is bound to any graphics --- stage, then +-- stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetShadingRateImageEnableNV' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -5157,13 +6370,16 @@ foreign import ccall -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV' -- dynamic state enabled then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRepresentativeFragmentTestEnableNV' --- must have been called in the current command buffer prior to this +-- /must/ have been called in the current command buffer prior to this -- drawing command -- -- - #VUID-vkCmdDrawIndexedIndirectCount-None-08682# If the -- -- feature is enabled, and a shader object is bound to any graphics --- stage, then +-- stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRepresentativeFragmentTestEnableNV' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -5179,7 +6395,10 @@ foreign import ccall -- - #VUID-vkCmdDrawIndexedIndirectCount-None-08683# If the -- -- feature is enabled, and a shader object is bound to any graphics --- stage, then +-- stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageReductionModeNV' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -5228,18 +6447,29 @@ foreign import ccall -- in the last call to -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT' -- --- - #VUID-vkCmdDrawIndexedIndirectCount-multisampledRenderToSingleSampled-07475# --- If the bound graphics pipeline state was created with the +-- - #VUID-vkCmdDrawIndexedIndirectCount-rasterizationSamples-07474# If +-- the bound graphics pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT' --- state enabled, and none of the @VK_AMD_mixed_attachment_samples@ --- extension, @VK_NV_framebuffer_mixed_samples@ extension, or the --- --- feature is enabled, then the @rasterizationSamples@ in the last call --- to +-- state enabled, and neither the @VK_AMD_mixed_attachment_samples@ nor +-- the @VK_NV_framebuffer_mixed_samples@ extensions are enabled, then +-- the @rasterizationSamples@ in the last call to -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT' -- /must/ be the same as the current subpass color and\/or -- depth\/stencil attachments -- +-- - #VUID-vkCmdDrawIndexedIndirectCount-None-09211# If the bound +-- graphics pipeline state was created with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT' +-- state enabled, or a shader object is bound to any graphics stage, +-- and the current render pass instance includes a +-- 'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT' +-- structure with @multisampledRenderToSingleSampledEnable@ equal to +-- 'Vulkan.Core10.FundamentalTypes.TRUE', then the +-- @rasterizationSamples@ in the last call to +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT' +-- /must/ be the same as the @rasterizationSamples@ member of that +-- structure +-- -- - #VUID-vkCmdDrawIndexedIndirectCount-firstAttachment-07476# If the -- bound graphics pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT' @@ -5298,7 +6528,7 @@ foreign import ccall -- and -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendAdvancedEXT' -- have enabled advanced blending, then the number of active color --- attachments in the current subpass must not exceed +-- attachments in the current subpass /must/ not exceed -- -- -- - #VUID-vkCmdDrawIndexedIndirectCount-primitivesGeneratedQueryWithNonZeroStreams-07481# @@ -5460,7 +6690,7 @@ foreign import ccall -- the @VK_NV_framebuffer_mixed_samples@ extension is enabled, and if -- current subpass has a depth\/stencil attachment and depth test, -- stencil test, or depth bounds test are enabled in the currently --- bound pipeline state, then the current @rasterizationSamples@ must +-- bound pipeline state, then the current @rasterizationSamples@ /must/ -- be the same as the sample count of the depth\/stencil attachment -- -- - #VUID-vkCmdDrawIndexedIndirectCount-coverageToColorEnable-07490# If @@ -5491,7 +6721,7 @@ foreign import ccall -- states enabled, the current coverage reduction mode -- @coverageReductionMode@, then the current @rasterizationSamples@, -- and the sample counts for the color and depth\/stencil attachments --- (if the subpass has them) must be a valid combination returned by +-- (if the subpass has them) /must/ be a valid combination returned by -- 'Vulkan.Extensions.VK_NV_coverage_reduction_mode.getPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV' -- -- - #VUID-vkCmdDrawIndexedIndirectCount-viewportCount-07492# If the @@ -5579,7 +6809,7 @@ foreign import ccall -- -- feature /must/ be enabled and -- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@strictLines@ --- must be VK_TRUE +-- /must/ be 'Vulkan.Core10.FundamentalTypes.TRUE' -- -- - #VUID-vkCmdDrawIndexedIndirectCount-conservativePointAndLineRasterization-07499# -- If the bound graphics pipeline state was created with the @@ -5606,7 +6836,15 @@ foreign import ccall -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT', -- then -- --- must not be active +-- /must/ not be active +-- +-- - #VUID-vkCmdDrawIndexedIndirectCount-None-08877# If the bound +-- graphics pipeline state was created with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT' +-- dynamic state +-- 'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT' +-- /must/ have been called in the current command buffer prior to this +-- drawing command -- -- - #VUID-vkCmdDrawIndexedIndirectCount-None-07850# If dynamic state was -- inherited from @@ -5617,7 +6855,7 @@ foreign import ccall -- - #VUID-vkCmdDrawIndexedIndirectCount-None-08684# If there is no bound -- graphics pipeline, -- 'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/ --- have been called on the current command buffer with @pStages@ with +-- have been called in the current command buffer with @pStages@ with -- an element of -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT' -- @@ -5626,7 +6864,7 @@ foreign import ccall -- -- feature is enabled, -- 'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/ --- have been called on the current command buffer with @pStages@ with +-- have been called in the current command buffer with @pStages@ with -- an element of -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT' -- @@ -5635,7 +6873,7 @@ foreign import ccall -- -- feature is enabled, -- 'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/ --- have been called on the current command buffer with @pStages@ with +-- have been called in the current command buffer with @pStages@ with -- an element of -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT' -- @@ -5644,14 +6882,14 @@ foreign import ccall -- -- feature is enabled, -- 'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/ --- have been called on the current command buffer with @pStages@ with +-- have been called in the current command buffer with @pStages@ with -- an element of -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT' -- -- - #VUID-vkCmdDrawIndexedIndirectCount-None-08688# If there is no bound -- graphics pipeline, -- 'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/ --- have been called on the current command buffer with @pStages@ with +-- have been called in the current command buffer with @pStages@ with -- an element of -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' -- @@ -5660,7 +6898,7 @@ foreign import ccall -- -- feature is enabled, -- 'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/ --- have been called on the current command buffer with @pStages@ with +-- have been called in the current command buffer with @pStages@ with -- an element of -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT' -- @@ -5669,7 +6907,7 @@ foreign import ccall -- -- feature is enabled, -- 'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/ --- have been called on the current command buffer with @pStages@ with +-- have been called in the current command buffer with @pStages@ with -- an element of -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT' -- @@ -5681,8 +6919,8 @@ foreign import ccall -- features is enabled, one of the -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT' or -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT' --- stages must have a valid 'Vulkan.Extensions.Handles.ShaderEXT' --- bound, and the other must have no +-- stages /must/ have a valid 'Vulkan.Extensions.Handles.ShaderEXT' +-- bound, and the other /must/ have no -- 'Vulkan.Extensions.Handles.ShaderEXT' bound -- -- - #VUID-vkCmdDrawIndexedIndirectCount-None-08694# If there is no bound @@ -5747,6 +6985,37 @@ foreign import ccall -- 'Vulkan.Extensions.VK_EXT_shader_object.createShadersEXT' call -- /must/ not have any 'Vulkan.Extensions.Handles.ShaderEXT' bound -- +-- - #VUID-vkCmdDrawIndexedIndirectCount-None-08878# All bound graphics +-- shader objects /must/ have been created with identical or +-- identically defined push constant ranges +-- +-- - #VUID-vkCmdDrawIndexedIndirectCount-None-08879# All bound graphics +-- shader objects /must/ have been created with identical or +-- identically defined arrays of descriptor set layouts +-- +-- - #VUID-vkCmdDrawIndexedIndirectCount-colorAttachmentCount-09372# If +-- the current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' +-- and a +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ +-- equal to @1@, a color attachment with a resolve mode of +-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID', +-- and a fragment shader is bound, it /must/ not declare the +-- @DepthReplacing@ or @StencilRefReplacingEXT@ execution modes +-- +-- - #VUID-vkCmdDrawIndexedIndirectCount-None-08880# If a shader object +-- is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage and the +-- +-- feature is enabled on the device, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE' +-- 'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT' +-- /must/ have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdDrawIndexedIndirectCount-pDynamicStates-08715# If the -- bound graphics pipeline state includes a fragment shader stage, was -- created with @@ -5771,6 +7040,33 @@ foreign import ccall -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilWriteMask' /must/ -- be @0@ -- +-- - #VUID-vkCmdDrawIndexedIndirectCount-None-09116# If a shader object +-- is bound to any graphics stage or the currently bound graphics +-- pipeline was created with +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_MASK_EXT', +-- and the format of any color attachment is +-- 'Vulkan.Core10.Enums.Format.FORMAT_E5B9G9R9_UFLOAT_PACK32', the +-- corresponding element of the @pColorWriteMasks@ parameter of +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorWriteMaskEXT' +-- /must/ either include all of +-- 'Vulkan.Core10.Enums.ColorComponentFlagBits.COLOR_COMPONENT_R_BIT', +-- 'Vulkan.Core10.Enums.ColorComponentFlagBits.COLOR_COMPONENT_G_BIT', +-- and +-- 'Vulkan.Core10.Enums.ColorComponentFlagBits.COLOR_COMPONENT_B_BIT', +-- or none of them +-- +-- - #VUID-vkCmdDrawIndexedIndirectCount-maxFragmentDualSrcAttachments-09239# +-- If +-- +-- is enabled for any attachment where either the source or destination +-- blend factors for that attachment +-- , +-- the maximum value of @Location@ for any output attachment +-- +-- in the @Fragment@ @Execution@ @Model@ executed by this command +-- /must/ be less than +-- +-- -- - #VUID-vkCmdDrawIndexedIndirectCount-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 @@ -5832,6 +7128,14 @@ foreign import ccall -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT' -- /must/ not be @NULL@ -- +-- - #VUID-vkCmdDrawIndexedIndirectCount-None-08881# If a shader object +-- is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT' +-- stage, then +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology' +-- /must/ have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdDrawIndexedIndirectCount-None-04914# If the bound -- graphics pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT' @@ -5848,6 +7152,53 @@ foreign import ccall -- @OpEntryPoint@ /must/ contain a location in -- 'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@location@ -- +-- - #VUID-vkCmdDrawIndexedIndirectCount-Input-08734# If the bound +-- graphics pipeline state was created with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT' +-- dynamic state enabled, then the numeric type associated with all +-- @Input@ variables of the corresponding @Location@ in the @Vertex@ +-- @Execution@ @Model@ @OpEntryPoint@ /must/ be the same as +-- 'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@format@ +-- +-- - #VUID-vkCmdDrawIndexedIndirectCount-format-08936# If there is a +-- shader object bound to a graphics stage or the currently bound +-- graphics pipeline was created with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT' +-- dynamic state enabled, and +-- 'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@format@ +-- has a 64-bit component, then the scalar width associated with all +-- @Input@ variables of the corresponding @Location@ in the @Vertex@ +-- @Execution@ @Model@ @OpEntryPoint@ /must/ be 64-bit +-- +-- - #VUID-vkCmdDrawIndexedIndirectCount-format-08937# If there is a +-- shader object bound to a graphics stage or the currently bound +-- graphics pipeline was created with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT' +-- dynamic state enabled, and the scalar width associated with a +-- @Location@ decorated @Input@ variable in the @Vertex@ @Execution@ +-- @Model@ @OpEntryPoint@ is 64-bit, then the corresponding +-- 'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@format@ +-- /must/ have a 64-bit component +-- +-- - #VUID-vkCmdDrawIndexedIndirectCount-None-09203# If there is a shader +-- object bound to a graphics stage or the currently bound graphics +-- pipeline was created with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT' +-- dynamic state enabled, and +-- 'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@format@ +-- has a 64-bit component, then all @Input@ variables at the +-- corresponding @Location@ in the @Vertex@ @Execution@ @Model@ +-- @OpEntryPoint@ /must/ not use components that are not present in the +-- format +-- +-- - #VUID-vkCmdDrawIndexedIndirectCount-None-08882# If a shader object +-- is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT' +-- stage, then +-- 'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT' +-- /must/ have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdDrawIndexedIndirectCount-None-04875# If the bound -- graphics pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT' @@ -5856,6 +7207,14 @@ foreign import ccall -- /must/ have been called in the current command buffer prior to this -- drawing command -- +-- - #VUID-vkCmdDrawIndexedIndirectCount-None-08883# If a shader object +-- is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT' +-- stage, 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-04879# If the bound -- graphics pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE' @@ -5864,6 +7223,16 @@ foreign import ccall -- /must/ have been called in the current command buffer prior to this -- drawing command -- +-- - #VUID-vkCmdDrawIndexedIndirectCount-rasterizerDiscardEnable-08884# +-- If a shader object is bound to any graphics stage, and the most +-- recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetPrimitiveRestartEnable' +-- /must/ have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdDrawIndexedIndirectCount-stage-06481# The bound graphics -- pipeline /must/ not have been created with the -- 'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo'::@stage@ @@ -5874,6 +7243,13 @@ foreign import ccall -- or -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT' -- +-- - #VUID-vkCmdDrawIndexedIndirectCount-None-08885# There /must/ be no +-- shader object bound to either of the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT' +-- or +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT' +-- stages +-- -- - #VUID-vkCmdDrawIndexedIndirectCount-buffer-02708# If @buffer@ is -- non-sparse then it /must/ be bound completely and contiguously to a -- single 'Vulkan.Core10.Handles.DeviceMemory' object diff --git a/src/Vulkan/Core13.hs b/src/Vulkan/Core13.hs index 6d4b0ade1..e1a0a07d5 100644 --- a/src/Vulkan/Core13.hs +++ b/src/Vulkan/Core13.hs @@ -430,7 +430,16 @@ data PhysicalDeviceVulkan13Properties = PhysicalDeviceVulkan13Properties -- -- binding. maxInlineUniformBlockSize :: Word32 - , -- No documentation found for Nested "VkPhysicalDeviceVulkan13Properties" "maxPerStageDescriptorInlineUniformBlocks" + , -- | #limits-maxPerStageDescriptorInlineUniformBlocks# + -- @maxPerStageDescriptorInlineUniformBlocks@ is the maximum number of + -- inline uniform block bindings that /can/ be accessible to a single + -- shader stage in a pipeline layout. Descriptor bindings with a descriptor + -- type of + -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK' + -- count against this limit. Only descriptor bindings in descriptor set + -- layouts created without the + -- 'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT' + -- bit set count against this limit. maxPerStageDescriptorInlineUniformBlocks :: Word32 , -- | #limits-maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks# -- @maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks@ is similar to diff --git a/src/Vulkan/Core13/Enums/AccessFlags2.hs b/src/Vulkan/Core13/Enums/AccessFlags2.hs index 4a7f2d616..d82e535b3 100644 --- a/src/Vulkan/Core13/Enums/AccessFlags2.hs +++ b/src/Vulkan/Core13/Enums/AccessFlags2.hs @@ -199,6 +199,7 @@ pattern ACCESS_2_INDIRECT_COMMAND_READ_BIT = AccessFlagBits2 0x0000000000000001 -- | 'ACCESS_2_INDEX_READ_BIT' specifies read access to an index buffer as -- part of an indexed drawing command, bound by +-- 'Vulkan.Extensions.VK_KHR_maintenance5.cmdBindIndexBuffer2KHR' and -- 'Vulkan.Core10.CommandBufferBuilding.cmdBindIndexBuffer'. Such access -- occurs in the -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_INDEX_INPUT_BIT' @@ -222,7 +223,7 @@ pattern ACCESS_2_UNIFORM_READ_BIT = AccessFlagBits2 0x0000000000000008 -- -- within a render pass during subpass shading or fragment shading. Such -- access occurs in the --- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI' +-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI' -- or -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT' -- pipeline stage. @@ -230,8 +231,6 @@ pattern ACCESS_2_INPUT_ATTACHMENT_READ_BIT = AccessFlagBits2 0x0000000000000010 -- | 'ACCESS_2_SHADER_READ_BIT' is equivalent to the logical OR of: -- --- - 'ACCESS_2_UNIFORM_READ_BIT' --- -- - 'ACCESS_2_SHADER_SAMPLED_READ_BIT' -- -- - 'ACCESS_2_SHADER_STORAGE_READ_BIT' @@ -249,23 +248,28 @@ pattern ACCESS_2_SHADER_WRITE_BIT = AccessFlagBits2 0x0000000000000040 -- -- (other than -- ), --- , --- or via certain --- --- or --- . --- Such access occurs in the +-- +-- or certain +-- +-- in the -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT' +-- pipeline stage or via +-- +-- in the +-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT' -- pipeline stage. pattern ACCESS_2_COLOR_ATTACHMENT_READ_BIT = AccessFlagBits2 0x0000000000000080 -- | 'ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT' specifies write access to a --- +-- -- during a -- --- or via certain --- . --- Such access occurs in the +-- or via certain render pass +-- , +-- , +-- and +-- +-- operations. Such access occurs in the -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT' -- pipeline stage. pattern ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT = AccessFlagBits2 0x0000000000000100 @@ -275,27 +279,32 @@ pattern ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT = AccessFlagBits2 0x0000000000000100 -- via -- -- or certain --- . --- Such access occurs in the +-- +-- in the -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT' -- or -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT' --- pipeline stages. +-- pipeline stages or via +-- +-- in the +-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT' +-- pipeline stage. pattern ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT = AccessFlagBits2 0x0000000000000200 --- | 'ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT' specifies write +-- | 'ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT' specifies write access to +-- a +-- , +-- via -- --- in the --- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR' --- or --- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR' --- pipeline stages or via certain --- +-- or certain render pass +-- +-- and +-- +-- operations. Such access occurs in the +-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT' -- or --- --- in the --- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT_KHR' --- pipeline stage. +-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT' +-- pipeline stages. pattern ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT = AccessFlagBits2 0x0000000000000400 -- | 'ACCESS_2_TRANSFER_READ_BIT' specifies read access to an image or buffer diff --git a/src/Vulkan/Core13/Enums/FormatFeatureFlags2.hs b/src/Vulkan/Core13/Enums/FormatFeatureFlags2.hs index 38f873e44..e3cd34b63 100644 --- a/src/Vulkan/Core13/Enums/FormatFeatureFlags2.hs +++ b/src/Vulkan/Core13/Enums/FormatFeatureFlags2.hs @@ -63,6 +63,7 @@ module Vulkan.Core13.Enums.FormatFeatureFlags2 ( pattern FORMAT_FEATURE_2_SAMPL , FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM , FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM , FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV + , FORMAT_FEATURE_2_HOST_IMAGE_TRANSFER_BIT_EXT , FORMAT_FEATURE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR , FORMAT_FEATURE_2_FRAGMENT_DENSITY_MAP_BIT_EXT , FORMAT_FEATURE_2_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR @@ -359,8 +360,9 @@ type FormatFeatureFlags2 = FormatFeatureFlagBits2 -- - 'FORMAT_FEATURE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR' -- specifies that an image view /can/ be used as a -- . --- An implementation /must/ not set this feature for formats with --- numeric type other than @*UINT@, or set it as a buffer feature. +-- An implementation /must/ not set this feature for formats with a +-- +-- other than @UINT@, or set it as a buffer feature. -- -- - @VK_FORMAT_FEATURE_2_VIDEO_DECODE_OUTPUT_BIT_KHR@ specifies that an -- image view with this format /can/ be used as a @@ -449,6 +451,10 @@ type FormatFeatureFlags2 = FormatFeatureFlagBits2 -- -- operations. -- +-- - 'FORMAT_FEATURE_2_HOST_IMAGE_TRANSFER_BIT_EXT' specifies that an +-- image /can/ be created with +-- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_HOST_TRANSFER_BIT_EXT'. +-- -- The following bits /may/ be set in @bufferFeatures@, specifying that the -- features are supported by or -- created with the queried @@ -784,11 +790,17 @@ pattern FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM = FormatFeatureFlagBits2 0x000000 -- @optimalTilingFeatures@ or @bufferFeatures@ members. pattern FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV = FormatFeatureFlagBits2 0x0000004000000000 +-- | 'FORMAT_FEATURE_2_HOST_IMAGE_TRANSFER_BIT_EXT' specifies that an image +-- /can/ be created with +-- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_HOST_TRANSFER_BIT_EXT'. +pattern FORMAT_FEATURE_2_HOST_IMAGE_TRANSFER_BIT_EXT = FormatFeatureFlagBits2 0x0000400000000000 + -- | 'FORMAT_FEATURE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR' specifies -- that an image view /can/ be used as a -- . --- An implementation /must/ not set this feature for formats with numeric --- type other than @*UINT@, or set it as a buffer feature. +-- An implementation /must/ not set this feature for formats with a +-- +-- other than @UINT@, or set it as a buffer feature. pattern FORMAT_FEATURE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = FormatFeatureFlagBits2 0x0000000040000000 -- | 'FORMAT_FEATURE_2_FRAGMENT_DENSITY_MAP_BIT_EXT' specifies that an image @@ -955,6 +967,10 @@ showTableFormatFeatureFlagBits2 = ( FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV , "LINEAR_COLOR_ATTACHMENT_BIT_NV" ) + , + ( FORMAT_FEATURE_2_HOST_IMAGE_TRANSFER_BIT_EXT + , "HOST_IMAGE_TRANSFER_BIT_EXT" + ) , ( FORMAT_FEATURE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR , "FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR" diff --git a/src/Vulkan/Core13/Enums/PipelineStageFlags2.hs b/src/Vulkan/Core13/Enums/PipelineStageFlags2.hs index e8ccdb999..893746b44 100644 --- a/src/Vulkan/Core13/Enums/PipelineStageFlags2.hs +++ b/src/Vulkan/Core13/Enums/PipelineStageFlags2.hs @@ -58,7 +58,7 @@ module Vulkan.Core13.Enums.PipelineStageFlags2 ( pattern PIPELINE_STAGE_2_NONE_ , PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT , PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR , PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI - , PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI + , PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI , PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT , PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT , PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT @@ -264,14 +264,14 @@ pattern PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT = PipelineStageFlagBits2 0x00000000 -- | 'PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT' specifies the stage of the -- pipeline where early fragment tests (depth and stencil tests before -- fragment shading) are performed. This stage also includes --- +-- -- for framebuffer attachments with a depth\/stencil format. pattern PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT = PipelineStageFlagBits2 0x0000000000000100 -- | 'PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT' specifies the stage of the -- pipeline where late fragment tests (depth and stencil tests after -- fragment shading) are performed. This stage also includes --- +-- -- for framebuffer attachments with a depth\/stencil format. pattern PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT = PipelineStageFlagBits2 0x0000000000000200 @@ -280,10 +280,13 @@ pattern PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT = PipelineStageFlagBits2 0x0000 -- stage includes -- , -- , --- , --- multisample resolve operations for framebuffer attachments with a color --- or depth\/stencil format, and --- 'Vulkan.Core10.CommandBufferBuilding.cmdClearAttachments'. +-- render pass +-- +-- and +-- +-- operations for color attachments, +-- , +-- and 'Vulkan.Core10.CommandBufferBuilding.cmdClearAttachments'. pattern PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT = PipelineStageFlagBits2 0x0000000000000400 -- | 'PIPELINE_STAGE_2_COMPUTE_SHADER_BIT' specifies the compute shader @@ -346,10 +349,12 @@ pattern PIPELINE_STAGE_2_HOST_BIT = PipelineStageFlagBits2 0x0000000000004000 -- -- - 'PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT' -- --- - 'Vulkan.Extensions.VK_KHR_synchronization2.PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV' +-- - 'PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR' -- -- - 'PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT' -- +-- - 'PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI' +-- -- - 'PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI' -- -- - 'PIPELINE_STAGE_2_CLUSTER_CULLING_SHADER_BIT_HUAWEI' @@ -429,9 +434,9 @@ pattern PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR = PipelineStageFlag -- to optimize the ray dispatch. pattern PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI = PipelineStageFlagBits2 0x0000010000000000 --- | 'PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI' specifies the subpass +-- | 'PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI' specifies the subpass -- shading shader stage. -pattern PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI = PipelineStageFlagBits2 0x0000008000000000 +pattern PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI = PipelineStageFlagBits2 0x0000008000000000 -- | 'PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT' specifies the mesh shader stage. pattern PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT = PipelineStageFlagBits2 0x0000000000100000 @@ -593,8 +598,8 @@ showTablePipelineStageFlagBits2 = , "INVOCATION_MASK_BIT_HUAWEI" ) , - ( PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI - , "SUBPASS_SHADING_BIT_HUAWEI" + ( PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI + , "SUBPASS_SHADER_BIT_HUAWEI" ) , ( PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT diff --git a/src/Vulkan/Core13/Enums/RenderingFlagBits.hs b/src/Vulkan/Core13/Enums/RenderingFlagBits.hs index 5beba0a69..4da14abd7 100644 --- a/src/Vulkan/Core13/Enums/RenderingFlagBits.hs +++ b/src/Vulkan/Core13/Enums/RenderingFlagBits.hs @@ -8,6 +8,7 @@ module Vulkan.Core13.Enums.RenderingFlagBits ( pattern RENDERING_CONTENTS_SECON , RENDERING_SUSPENDING_BIT , RENDERING_RESUMING_BIT , RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT + , RENDERING_CONTENTS_INLINE_BIT_EXT , .. ) ) where @@ -60,7 +61,10 @@ newtype RenderingFlagBits = RenderingFlagBits Flags -- | 'RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT' specifies that draw -- calls for the render pass instance will be recorded in secondary command --- buffers. +-- buffers. If the +-- +-- feature is enabled, the draw calls /can/ come from both inline and +-- 'Vulkan.Core10.CommandBufferBuilding.cmdExecuteCommands'. pattern RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT = RenderingFlagBits 0x00000001 -- | 'RENDERING_SUSPENDING_BIT' specifies that the render pass instance will @@ -76,6 +80,15 @@ pattern RENDERING_RESUMING_BIT = RenderingFlagBits 0x00000004 -- is enabled for the render pass instance. pattern RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT = RenderingFlagBits 0x00000008 +-- | 'RENDERING_CONTENTS_INLINE_BIT_EXT' specifies that draw calls for the +-- render pass instance /can/ be recorded inline within the current command +-- buffer. When the +-- +-- feature is enabled this /can/ be combined with the +-- 'RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT' bit to allow draw +-- calls to be recorded both inline and in secondary command buffers. +pattern RENDERING_CONTENTS_INLINE_BIT_EXT = RenderingFlagBits 0x00000010 + conNameRenderingFlagBits :: String conNameRenderingFlagBits = "RenderingFlagBits" @@ -94,6 +107,10 @@ showTableRenderingFlagBits = ( RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT , "ENABLE_LEGACY_DITHERING_BIT_EXT" ) + , + ( RENDERING_CONTENTS_INLINE_BIT_EXT + , "CONTENTS_INLINE_BIT_EXT" + ) ] instance Show RenderingFlagBits where diff --git a/src/Vulkan/Core13/Promoted_From_VK_EXT_extended_dynamic_state.hs b/src/Vulkan/Core13/Promoted_From_VK_EXT_extended_dynamic_state.hs index 2f2c14cb0..aadc0470d 100644 --- a/src/Vulkan/Core13/Promoted_From_VK_EXT_extended_dynamic_state.hs +++ b/src/Vulkan/Core13/Promoted_From_VK_EXT_extended_dynamic_state.hs @@ -96,6 +96,24 @@ foreign import ccall -- 'Vulkan.Core10.Pipeline.PipelineRasterizationStateCreateInfo'::@cullMode@ -- value used to create the currently active pipeline. -- +-- == Valid Usage +-- +-- - #VUID-vkCmdSetCullMode-None-08971# At least one of the following +-- /must/ be true: +-- +-- - the +-- +-- feature is enabled +-- +-- - the +-- +-- feature is enabled +-- +-- - the value of +-- 'Vulkan.Core10.DeviceInitialization.ApplicationInfo'::@apiVersion@ +-- used to create the 'Vulkan.Core10.Handles.Instance' parent of +-- @commandBuffer@ is greater than or equal to Version 1.3 +-- -- == Valid Usage (Implicit) -- -- - #VUID-vkCmdSetCullMode-commandBuffer-parameter# @commandBuffer@ @@ -182,6 +200,24 @@ foreign import ccall -- 'Vulkan.Core10.Pipeline.PipelineRasterizationStateCreateInfo'::@frontFace@ -- value used to create the currently active pipeline. -- +-- == Valid Usage +-- +-- - #VUID-vkCmdSetFrontFace-None-08971# At least one of the following +-- /must/ be true: +-- +-- - the +-- +-- feature is enabled +-- +-- - the +-- +-- feature is enabled +-- +-- - the value of +-- 'Vulkan.Core10.DeviceInitialization.ApplicationInfo'::@apiVersion@ +-- used to create the 'Vulkan.Core10.Handles.Instance' parent of +-- @commandBuffer@ is greater than or equal to Version 1.3 +-- -- == Valid Usage (Implicit) -- -- - #VUID-vkCmdSetFrontFace-commandBuffer-parameter# @commandBuffer@ @@ -269,6 +305,24 @@ foreign import ccall -- 'Vulkan.Core10.Pipeline.PipelineInputAssemblyStateCreateInfo'::@topology@ -- value used to create the currently active pipeline. -- +-- == Valid Usage +-- +-- - #VUID-vkCmdSetPrimitiveTopology-None-08971# At least one of the +-- following /must/ be true: +-- +-- - the +-- +-- feature is enabled +-- +-- - the +-- +-- feature is enabled +-- +-- - the value of +-- 'Vulkan.Core10.DeviceInitialization.ApplicationInfo'::@apiVersion@ +-- used to create the 'Vulkan.Core10.Handles.Instance' parent of +-- @commandBuffer@ is greater than or equal to Version 1.3 +-- -- == Valid Usage (Implicit) -- -- - #VUID-vkCmdSetPrimitiveTopology-commandBuffer-parameter# @@ -359,6 +413,22 @@ foreign import ccall -- -- == Valid Usage -- +-- - #VUID-vkCmdSetViewportWithCount-None-08971# At least one of the +-- following /must/ be true: +-- +-- - the +-- +-- feature is enabled +-- +-- - the +-- +-- feature is enabled +-- +-- - the value of +-- 'Vulkan.Core10.DeviceInitialization.ApplicationInfo'::@apiVersion@ +-- used to create the 'Vulkan.Core10.Handles.Instance' parent of +-- @commandBuffer@ is greater than or equal to Version 1.3 +-- -- - #VUID-vkCmdSetViewportWithCount-viewportCount-03394# @viewportCount@ -- /must/ be between @1@ and -- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxViewports@, @@ -468,6 +538,22 @@ foreign import ccall -- -- == Valid Usage -- +-- - #VUID-vkCmdSetScissorWithCount-None-08971# At least one of the +-- following /must/ be true: +-- +-- - the +-- +-- feature is enabled +-- +-- - the +-- +-- feature is enabled +-- +-- - the value of +-- 'Vulkan.Core10.DeviceInitialization.ApplicationInfo'::@apiVersion@ +-- used to create the 'Vulkan.Core10.Handles.Instance' parent of +-- @commandBuffer@ is greater than or equal to Version 1.3 +-- -- - #VUID-vkCmdSetScissorWithCount-scissorCount-03397# @scissorCount@ -- /must/ be between @1@ and -- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxViewports@, @@ -583,9 +669,12 @@ foreign import ccall -- the offset indicated by @pOffsets@[i] from the start of the buffer -- @pBuffers@[i]. If @pSizes@ is not @NULL@ then @pSizes@[i] specifies the -- bound size of the vertex buffer starting from the corresponding elements --- of @pBuffers@[i] plus @pOffsets@[i]. All vertex input attributes that --- use each of these bindings will use these updated addresses in their --- address calculations for subsequent drawing commands. If the +-- of @pBuffers@[i] plus @pOffsets@[i]. If @pSizes@[i] is +-- 'Vulkan.Core10.APIConstants.WHOLE_SIZE' then the bound size is from +-- @pBuffers@[i] plus @pOffsets@[i] to the end of the buffer @pBuffers@[i]. +-- All vertex input attributes that use each of these bindings will use +-- these updated addresses in their address calculations for subsequent +-- drawing commands. If the -- -- feature is enabled, elements of @pBuffers@ /can/ be -- 'Vulkan.Core10.APIConstants.NULL_HANDLE', and /can/ be used by the @@ -635,13 +724,14 @@ foreign import ccall -- @firstBinding@ and @bindingCount@ /must/ be less than or equal to -- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxVertexInputBindings@ -- --- - #VUID-vkCmdBindVertexBuffers2-pOffsets-03357# All elements of --- @pOffsets@ /must/ be less than the size of the corresponding element --- in @pBuffers@ +-- - #VUID-vkCmdBindVertexBuffers2-pOffsets-03357# If @pSizes@ is not +-- @NULL@, all elements of @pOffsets@ /must/ be less than the size of +-- the corresponding element in @pBuffers@ -- -- - #VUID-vkCmdBindVertexBuffers2-pSizes-03358# If @pSizes@ is not --- @NULL@, all elements of @pOffsets@ plus @pSizes@ /must/ be less than --- or equal to the size of the corresponding element in @pBuffers@ +-- @NULL@, all elements of @pOffsets@ plus @pSizes@ , where @pSizes@ is +-- not 'Vulkan.Core10.APIConstants.WHOLE_SIZE', /must/ be less than or +-- equal to the size of the corresponding element in @pBuffers@ -- -- - #VUID-vkCmdBindVertexBuffers2-pBuffers-03359# All elements of -- @pBuffers@ /must/ have been created with the @@ -830,6 +920,24 @@ foreign import ccall -- 'Vulkan.Core10.Pipeline.PipelineDepthStencilStateCreateInfo'::@depthTestEnable@ -- value used to create the currently active pipeline. -- +-- == Valid Usage +-- +-- - #VUID-vkCmdSetDepthTestEnable-None-08971# At least one of the +-- following /must/ be true: +-- +-- - the +-- +-- feature is enabled +-- +-- - the +-- +-- feature is enabled +-- +-- - the value of +-- 'Vulkan.Core10.DeviceInitialization.ApplicationInfo'::@apiVersion@ +-- used to create the 'Vulkan.Core10.Handles.Instance' parent of +-- @commandBuffer@ is greater than or equal to Version 1.3 +-- -- == Valid Usage (Implicit) -- -- - #VUID-vkCmdSetDepthTestEnable-commandBuffer-parameter# @@ -914,6 +1022,24 @@ foreign import ccall -- 'Vulkan.Core10.Pipeline.PipelineDepthStencilStateCreateInfo'::@depthWriteEnable@ -- value used to create the currently active pipeline. -- +-- == Valid Usage +-- +-- - #VUID-vkCmdSetDepthWriteEnable-None-08971# At least one of the +-- following /must/ be true: +-- +-- - the +-- +-- feature is enabled +-- +-- - the +-- +-- feature is enabled +-- +-- - the value of +-- 'Vulkan.Core10.DeviceInitialization.ApplicationInfo'::@apiVersion@ +-- used to create the 'Vulkan.Core10.Handles.Instance' parent of +-- @commandBuffer@ is greater than or equal to Version 1.3 +-- -- == Valid Usage (Implicit) -- -- - #VUID-vkCmdSetDepthWriteEnable-commandBuffer-parameter# @@ -997,6 +1123,24 @@ foreign import ccall -- 'Vulkan.Core10.Pipeline.PipelineDepthStencilStateCreateInfo'::@depthCompareOp@ -- value used to create the currently active pipeline. -- +-- == Valid Usage +-- +-- - #VUID-vkCmdSetDepthCompareOp-None-08971# At least one of the +-- following /must/ be true: +-- +-- - the +-- +-- feature is enabled +-- +-- - the +-- +-- feature is enabled +-- +-- - the value of +-- 'Vulkan.Core10.DeviceInitialization.ApplicationInfo'::@apiVersion@ +-- used to create the 'Vulkan.Core10.Handles.Instance' parent of +-- @commandBuffer@ is greater than or equal to Version 1.3 +-- -- == Valid Usage (Implicit) -- -- - #VUID-vkCmdSetDepthCompareOp-commandBuffer-parameter# @@ -1089,6 +1233,24 @@ foreign import ccall -- 'Vulkan.Core10.Pipeline.PipelineDepthStencilStateCreateInfo'::@depthBoundsTestEnable@ -- value used to create the currently active pipeline. -- +-- == Valid Usage +-- +-- - #VUID-vkCmdSetDepthBoundsTestEnable-None-08971# At least one of the +-- following /must/ be true: +-- +-- - the +-- +-- feature is enabled +-- +-- - the +-- +-- feature is enabled +-- +-- - the value of +-- 'Vulkan.Core10.DeviceInitialization.ApplicationInfo'::@apiVersion@ +-- used to create the 'Vulkan.Core10.Handles.Instance' parent of +-- @commandBuffer@ is greater than or equal to Version 1.3 +-- -- == Valid Usage (Implicit) -- -- - #VUID-vkCmdSetDepthBoundsTestEnable-commandBuffer-parameter# @@ -1173,6 +1335,24 @@ foreign import ccall -- 'Vulkan.Core10.Pipeline.PipelineDepthStencilStateCreateInfo'::@stencilTestEnable@ -- value used to create the currently active pipeline. -- +-- == Valid Usage +-- +-- - #VUID-vkCmdSetStencilTestEnable-None-08971# At least one of the +-- following /must/ be true: +-- +-- - the +-- +-- feature is enabled +-- +-- - the +-- +-- feature is enabled +-- +-- - the value of +-- 'Vulkan.Core10.DeviceInitialization.ApplicationInfo'::@apiVersion@ +-- used to create the 'Vulkan.Core10.Handles.Instance' parent of +-- @commandBuffer@ is greater than or equal to Version 1.3 +-- -- == Valid Usage (Implicit) -- -- - #VUID-vkCmdSetStencilTestEnable-commandBuffer-parameter# @@ -1257,6 +1437,24 @@ foreign import ccall -- @passOp@, @depthFailOp@, and @compareOp@ values used to create the -- currently active pipeline, for both front and back faces. -- +-- == Valid Usage +-- +-- - #VUID-vkCmdSetStencilOp-None-08971# At least one of the following +-- /must/ be true: +-- +-- - the +-- +-- feature is enabled +-- +-- - the +-- +-- feature is enabled +-- +-- - the value of +-- 'Vulkan.Core10.DeviceInitialization.ApplicationInfo'::@apiVersion@ +-- used to create the 'Vulkan.Core10.Handles.Instance' parent of +-- @commandBuffer@ is greater than or equal to Version 1.3 +-- -- == Valid Usage (Implicit) -- -- - #VUID-vkCmdSetStencilOp-commandBuffer-parameter# @commandBuffer@ diff --git a/src/Vulkan/Core13/Promoted_From_VK_EXT_extended_dynamic_state2.hs b/src/Vulkan/Core13/Promoted_From_VK_EXT_extended_dynamic_state2.hs index 3810a6094..d2e34d0d1 100644 --- a/src/Vulkan/Core13/Promoted_From_VK_EXT_extended_dynamic_state2.hs +++ b/src/Vulkan/Core13/Promoted_From_VK_EXT_extended_dynamic_state2.hs @@ -52,6 +52,24 @@ foreign import ccall -- 'Vulkan.Core10.Pipeline.PipelineRasterizationStateCreateInfo'::@rasterizerDiscardEnable@ -- value used to create the currently active pipeline. -- +-- == Valid Usage +-- +-- - #VUID-vkCmdSetRasterizerDiscardEnable-None-08970# At least one of +-- the following /must/ be true: +-- +-- - the +-- +-- feature is enabled +-- +-- - the +-- +-- feature is enabled +-- +-- - the value of +-- 'Vulkan.Core10.DeviceInitialization.ApplicationInfo'::@apiVersion@ +-- used to create the 'Vulkan.Core10.Handles.Instance' parent of +-- @commandBuffer@ is greater than or equal to Version 1.3 +-- -- == Valid Usage (Implicit) -- -- - #VUID-vkCmdSetRasterizerDiscardEnable-commandBuffer-parameter# @@ -138,6 +156,24 @@ foreign import ccall -- 'Vulkan.Core10.Pipeline.PipelineRasterizationStateCreateInfo'::@depthBiasEnable@ -- value used to create the currently active pipeline. -- +-- == Valid Usage +-- +-- - #VUID-vkCmdSetDepthBiasEnable-None-08970# At least one of the +-- following /must/ be true: +-- +-- - the +-- +-- feature is enabled +-- +-- - the +-- +-- feature is enabled +-- +-- - the value of +-- 'Vulkan.Core10.DeviceInitialization.ApplicationInfo'::@apiVersion@ +-- used to create the 'Vulkan.Core10.Handles.Instance' parent of +-- @commandBuffer@ is greater than or equal to Version 1.3 +-- -- == Valid Usage (Implicit) -- -- - #VUID-vkCmdSetDepthBiasEnable-commandBuffer-parameter# @@ -222,6 +258,24 @@ foreign import ccall -- 'Vulkan.Core10.Pipeline.PipelineInputAssemblyStateCreateInfo'::@primitiveRestartEnable@ -- value used to create the currently active pipeline. -- +-- == Valid Usage +-- +-- - #VUID-vkCmdSetPrimitiveRestartEnable-None-08970# At least one of the +-- following /must/ be true: +-- +-- - the +-- +-- feature is enabled +-- +-- - the +-- +-- feature is enabled +-- +-- - the value of +-- 'Vulkan.Core10.DeviceInitialization.ApplicationInfo'::@apiVersion@ +-- used to create the 'Vulkan.Core10.Handles.Instance' parent of +-- @commandBuffer@ is greater than or equal to Version 1.3 +-- -- == Valid Usage (Implicit) -- -- - #VUID-vkCmdSetPrimitiveRestartEnable-commandBuffer-parameter# diff --git a/src/Vulkan/Core13/Promoted_From_VK_EXT_inline_uniform_block.hs b/src/Vulkan/Core13/Promoted_From_VK_EXT_inline_uniform_block.hs index cf34f1c99..dc4b93c35 100644 --- a/src/Vulkan/Core13/Promoted_From_VK_EXT_inline_uniform_block.hs +++ b/src/Vulkan/Core13/Promoted_From_VK_EXT_inline_uniform_block.hs @@ -148,7 +148,16 @@ data PhysicalDeviceInlineUniformBlockProperties = PhysicalDeviceInlineUniformBlo -- -- binding. maxInlineUniformBlockSize :: Word32 - , -- No documentation found for Nested "VkPhysicalDeviceInlineUniformBlockProperties" "maxPerStageDescriptorInlineUniformBlocks" + , -- | #extension-limits-maxPerStageDescriptorInlineUniformBlocks# + -- @maxPerStageDescriptorInlineUniformBlocks@ is the maximum number of + -- inline uniform block bindings that /can/ be accessible to a single + -- shader stage in a pipeline layout. Descriptor bindings with a descriptor + -- type of + -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK' + -- count against this limit. Only descriptor bindings in descriptor set + -- layouts created without the + -- 'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT' + -- bit set count against this limit. maxPerStageDescriptorInlineUniformBlocks :: Word32 , -- | #extension-limits-maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks# -- @maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks@ is similar to diff --git a/src/Vulkan/Core13/Promoted_From_VK_KHR_copy_commands2.hs b/src/Vulkan/Core13/Promoted_From_VK_KHR_copy_commands2.hs index 7a53f03bf..b951bf16c 100644 --- a/src/Vulkan/Core13/Promoted_From_VK_KHR_copy_commands2.hs +++ b/src/Vulkan/Core13/Promoted_From_VK_KHR_copy_commands2.hs @@ -62,6 +62,7 @@ import Vulkan.CStruct.Extends (forgetExtensions) import Vulkan.CStruct.Utils (lowerArrayPtr) import Vulkan.CStruct.Extends (peekSomeCStruct) import Vulkan.CStruct.Extends (pokeSomeCStruct) +import {-# SOURCE #-} Vulkan.Extensions.VK_QCOM_filter_cubic_weights (BlitImageCubicWeightsInfoQCOM) import Vulkan.Core10.Handles (Buffer) import Vulkan.CStruct.Extends (Chain) import Vulkan.Core10.Handles (CommandBuffer) @@ -114,12 +115,12 @@ foreign import ccall -- -- = Description -- --- Each source region specified by @pCopyBufferInfo->pname@:pRegions is --- copied from the source buffer to the destination region of the --- destination buffer. If any of the specified regions in --- @pCopyBufferInfo->pname@:srcBuffer overlaps in memory with any of the --- specified regions in @pCopyBufferInfo->pname@:dstBuffer, values read --- from those overlapping regions are undefined. +-- Each source region specified by @pCopyBufferInfo->pRegions@ is copied +-- from the source buffer to the destination region of the destination +-- buffer. If any of the specified regions in @pCopyBufferInfo->srcBuffer@ +-- overlaps in memory with any of the specified regions in +-- @pCopyBufferInfo->dstBuffer@, values read from those overlapping regions +-- are undefined. -- -- == Valid Usage -- @@ -312,7 +313,7 @@ foreign import ccall unsafe #endif "dynamic" mkVkCmdBlitImage2 - :: FunPtr (Ptr CommandBuffer_T -> Ptr BlitImageInfo2 -> IO ()) -> Ptr CommandBuffer_T -> Ptr BlitImageInfo2 -> IO () + :: FunPtr (Ptr CommandBuffer_T -> Ptr (SomeStruct BlitImageInfo2) -> IO ()) -> Ptr CommandBuffer_T -> Ptr (SomeStruct BlitImageInfo2) -> IO () -- | vkCmdBlitImage2 - Copy regions of an image, potentially performing -- format conversion, @@ -386,14 +387,14 @@ foreign import ccall -- , -- , -- 'BlitImageInfo2', 'Vulkan.Core10.Handles.CommandBuffer' -cmdBlitImage2 :: forall io - . (MonadIO io) +cmdBlitImage2 :: forall a io + . (Extendss BlitImageInfo2 a, PokeChain a, MonadIO io) => -- | @commandBuffer@ is the command buffer into which the command will be -- recorded. CommandBuffer -> -- | @pBlitImageInfo@ is a pointer to a 'BlitImageInfo2' structure describing -- the blit parameters. - BlitImageInfo2 + (BlitImageInfo2 a) -> io () cmdBlitImage2 commandBuffer blitImageInfo = liftIO . evalContT $ do let vkCmdBlitImage2Ptr = pVkCmdBlitImage2 (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds) @@ -403,7 +404,7 @@ cmdBlitImage2 commandBuffer blitImageInfo = liftIO . evalContT $ do pBlitImageInfo <- ContT $ withCStruct (blitImageInfo) lift $ traceAroundEvent "vkCmdBlitImage2" (vkCmdBlitImage2' (commandBufferHandle (commandBuffer)) - pBlitImageInfo) + (forgetExtensions pBlitImageInfo)) pure $ () @@ -836,14 +837,14 @@ instance Zero BufferCopy2 where -- -- - #VUID-VkImageCopy2-apiVersion-07940# If the -- --- extension is not enabled and +-- extension is not enabled, and -- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceProperties'::@apiVersion@ -- is less than Vulkan 1.1, the @aspectMask@ member of @srcSubresource@ -- and @dstSubresource@ /must/ match -- -- - #VUID-VkImageCopy2-apiVersion-07941# If the -- --- extension is not enabled and +-- extension is not enabled, and -- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceProperties'::@apiVersion@ -- is less than Vulkan 1.1, the @layerCount@ member of @srcSubresource@ -- and @dstSubresource@ /must/ match @@ -875,7 +876,9 @@ instance Zero BufferCopy2 where -- -- , -- , --- 'CopyImageInfo2', 'Vulkan.Core10.FundamentalTypes.Extent3D', +-- 'CopyImageInfo2', +-- 'Vulkan.Extensions.VK_EXT_host_image_copy.CopyImageToImageInfoEXT', +-- 'Vulkan.Core10.FundamentalTypes.Extent3D', -- 'Vulkan.Core10.CommandBufferBuilding.ImageSubresourceLayers', -- 'Vulkan.Core10.FundamentalTypes.Offset3D', -- 'Vulkan.Core10.Enums.StructureType.StructureType' @@ -962,8 +965,25 @@ instance Zero ImageCopy2 where -- - #VUID-VkImageBlit2-aspectMask-00238# The @aspectMask@ member of -- @srcSubresource@ and @dstSubresource@ /must/ match -- --- - #VUID-VkImageBlit2-layerCount-00239# The @layerCount@ member of --- @srcSubresource@ and @dstSubresource@ /must/ match +-- - #VUID-VkImageBlit2-layerCount-08800# If neither of the @layerCount@ +-- members of @srcSubresource@ or @dstSubresource@ are +-- 'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS', the +-- @layerCount@ members of @srcSubresource@ or @dstSubresource@ /must/ +-- match +-- +-- - #VUID-VkImageBlit2-maintenance5-08799# If the +-- +-- feature is not enabled, the @layerCount@ member of @srcSubresource@ +-- or @dstSubresource@ /must/ not be +-- 'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS' +-- +-- - #VUID-VkImageBlit2-layerCount-08801# If one of the @layerCount@ +-- members of @srcSubresource@ or @dstSubresource@ is +-- 'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS', the other +-- member /must/ be either +-- 'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS' or equal to the +-- @arrayLayers@ member of the 'Vulkan.Core10.Image.ImageCreateInfo' +-- used to create the image minus @baseArrayLayer@ -- -- == Valid Usage (Implicit) -- @@ -1105,15 +1125,15 @@ instance es ~ '[] => Zero (ImageBlit2 es) where -- -- == Valid Usage -- --- - #VUID-VkBufferImageCopy2-bufferRowLength-00195# @bufferRowLength@ +-- - #VUID-VkBufferImageCopy2-bufferRowLength-09101# @bufferRowLength@ -- /must/ be @0@, or greater than or equal to the @width@ member of -- @imageExtent@ -- --- - #VUID-VkBufferImageCopy2-bufferImageHeight-00196# +-- - #VUID-VkBufferImageCopy2-bufferImageHeight-09102# -- @bufferImageHeight@ /must/ be @0@, or greater than or equal to the -- @height@ member of @imageExtent@ -- --- - #VUID-VkBufferImageCopy2-aspectMask-00212# The @aspectMask@ member +-- - #VUID-VkBufferImageCopy2-aspectMask-09103# The @aspectMask@ member -- of @imageSubresource@ /must/ only have a single bit set -- -- - #VUID-VkBufferImageCopy2-imageExtent-06659# @imageExtent.width@ @@ -1260,8 +1280,25 @@ instance es ~ '[] => Zero (BufferImageCopy2 es) where -- @srcSubresource@ and @dstSubresource@ /must/ only contain -- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT' -- --- - #VUID-VkImageResolve2-layerCount-00267# The @layerCount@ member of --- @srcSubresource@ and @dstSubresource@ /must/ match +-- - #VUID-VkImageResolve2-layerCount-08803# If neither of the +-- @layerCount@ members of @srcSubresource@ or @dstSubresource@ are +-- 'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS', the +-- @layerCount@ member of @srcSubresource@ and @dstSubresource@ /must/ +-- match +-- +-- - #VUID-VkImageResolve2-maintenance5-08802# If the +-- +-- feature is not enabled, the @layerCount@ member of @srcSubresource@ +-- or @dstSubresource@ /must/ not be +-- 'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS' +-- +-- - #VUID-VkImageResolve2-layerCount-08804# If one of the @layerCount@ +-- members of @srcSubresource@ or @dstSubresource@ is +-- 'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS', the other +-- member /must/ be either +-- 'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS' or equal to the +-- @arrayLayers@ member of the 'Vulkan.Core10.Image.ImageCreateInfo' +-- used to create the image minus @baseArrayLayer@ -- -- == Valid Usage (Implicit) -- @@ -1508,9 +1545,9 @@ instance Zero CopyBufferInfo2 where -- -- - #VUID-VkCopyImageInfo2-srcImageLayout-01917# @srcImageLayout@ /must/ -- be +-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHARED_PRESENT_KHR', -- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL', --- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL', or --- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHARED_PRESENT_KHR' +-- or 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL' -- -- - #VUID-VkCopyImageInfo2-dstImage-01996# The -- @@ -1524,9 +1561,9 @@ instance Zero CopyBufferInfo2 where -- -- - #VUID-VkCopyImageInfo2-dstImageLayout-01395# @dstImageLayout@ /must/ -- be +-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHARED_PRESENT_KHR', -- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL', --- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL', or --- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHARED_PRESENT_KHR' +-- or 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL' -- -- - #VUID-VkCopyImageInfo2-srcImage-01548# If the -- 'Vulkan.Core10.Enums.Format.Format' of each of @srcImage@ and @@ -1543,6 +1580,12 @@ instance Zero CopyBufferInfo2 where -- -- for the plane being copied -- +-- - #VUID-VkCopyImageInfo2-srcImage-09247# If the +-- 'Vulkan.Core10.Enums.Format.Format' of each of @srcImage@ and +-- @dstImage@ is a +-- , +-- the formats /must/ have the same texel block extent +-- -- - #VUID-VkCopyImageInfo2-srcImage-00136# The sample count of -- @srcImage@ and @dstImage@ /must/ match -- @@ -1569,12 +1612,14 @@ instance Zero CopyBufferInfo2 where -- then for each element of @pRegions@, @srcSubresource.aspectMask@ -- /must/ be a single valid -- +-- bit -- -- - #VUID-VkCopyImageInfo2-dstImage-08714# If @dstImage@ has a -- , -- then for each element of @pRegions@, @dstSubresource.aspectMask@ -- /must/ be a single valid -- +-- bit -- -- - #VUID-VkCopyImageInfo2-srcImage-01556# If @srcImage@ has a -- @@ -1590,14 +1635,14 @@ instance Zero CopyBufferInfo2 where -- -- - #VUID-VkCopyImageInfo2-apiVersion-07932# If the -- --- extension is not enabled, +-- extension is not enabled, or -- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceProperties'::@apiVersion@ -- is less than Vulkan 1.1, and either @srcImage@ or @dstImage@ is of -- type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D', then for each -- element of @pRegions@, @srcSubresource.baseArrayLayer@ and --- @dstSubresource.baseArrayLayer@ /must/ each be @0@, and +-- @dstSubresource.baseArrayLayer@ /must/ both be @0@, and -- @srcSubresource.layerCount@ and @dstSubresource.layerCount@ /must/ --- each be @1@ +-- both be @1@ -- -- - #VUID-VkCopyImageInfo2-srcImage-04443# If @srcImage@ is of type -- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D', then for each element @@ -1658,20 +1703,48 @@ instance Zero CopyBufferInfo2 where -- -- - #VUID-VkCopyImageInfo2-apiVersion-07933# If the -- --- extension is not enabled, +-- extension is not enabled, and -- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceProperties'::@apiVersion@ -- is less than Vulkan 1.1, @srcImage@ and @dstImage@ /must/ have the -- same 'Vulkan.Core10.Enums.ImageType.ImageType' -- --- - #VUID-VkCopyImageInfo2-srcImage-07743# If @srcImage@ and @dstImage@ --- have a different 'Vulkan.Core10.Enums.ImageType.ImageType', one --- /must/ be 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D' and the --- other /must/ be 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D' +-- - #VUID-VkCopyImageInfo2-apiVersion-08969# If the +-- +-- extension is not enabled, and +-- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceProperties'::@apiVersion@ +-- is less than Vulkan 1.1, @srcImage@ or @dstImage@ is of type +-- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D', then for each element +-- of @pRegions@, @extent.depth@ /must/ be @1@ -- --- - #VUID-VkCopyImageInfo2-srcImage-07744# If @srcImage@ and @dstImage@ --- have the same 'Vulkan.Core10.Enums.ImageType.ImageType', the --- @layerCount@ member of @srcSubresource@ and @dstSubresource@ in each --- element of @pRegions@ /must/ match +-- - #VUID-VkCopyImageInfo2-srcImage-07743# If @srcImage@ and @dstImage@ +-- have a different 'Vulkan.Core10.Enums.ImageType.ImageType', and +-- +-- is not enabled, one /must/ be +-- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D' and the other /must/ +-- be 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D' +-- +-- - #VUID-VkCopyImageInfo2-srcImage-08793# If @srcImage@ and @dstImage@ +-- have the same 'Vulkan.Core10.Enums.ImageType.ImageType', for each +-- element of @pRegions@, if neither of the @layerCount@ members of +-- @srcSubresource@ or @dstSubresource@ are +-- 'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS', the +-- @layerCount@ members of @srcSubresource@ or @dstSubresource@ /must/ +-- match +-- +-- - #VUID-VkCopyImageInfo2-maintenance5-08792# If the +-- +-- feature is not enabled, the @layerCount@ member of @srcSubresource@ +-- or @dstSubresource@ /must/ not be +-- 'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS' +-- +-- - #VUID-VkCopyImageInfo2-srcImage-08794# If @srcImage@ and @dstImage@ +-- have the same 'Vulkan.Core10.Enums.ImageType.ImageType', and one of +-- the @layerCount@ members of @srcSubresource@ or @dstSubresource@ is +-- 'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS', the other +-- member /must/ be either +-- 'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS' or equal to the +-- @arrayLayers@ member of the 'Vulkan.Core10.Image.ImageCreateInfo' +-- used to create the image minus @baseArrayLayer@ -- -- - #VUID-VkCopyImageInfo2-srcImage-01790# If @srcImage@ and @dstImage@ -- are both of type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D', then @@ -1834,9 +1907,12 @@ instance Zero CopyBufferInfo2 where -- -- - #VUID-VkCopyImageInfo2-srcSubresource-07968# The -- @srcSubresource.baseArrayLayer@ + @srcSubresource.layerCount@ of --- each element of @pRegions@ /must/ be less than or equal to the --- @arrayLayers@ specified in 'Vulkan.Core10.Image.ImageCreateInfo' --- when @srcImage@ was created +-- each element of @pRegions@ , if @srcSubresource.layerCount@ is not +-- 'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS' and +-- +-- is not enabled, /must/ be less than or equal to the @arrayLayers@ +-- specified in 'Vulkan.Core10.Image.ImageCreateInfo' when @srcImage@ +-- was created -- -- - #VUID-VkCopyImageInfo2-srcImage-07969# @srcImage@ /must/ not have -- been created with @flags@ containing @@ -1854,9 +1930,12 @@ instance Zero CopyBufferInfo2 where -- -- - #VUID-VkCopyImageInfo2-dstSubresource-07968# The -- @dstSubresource.baseArrayLayer@ + @dstSubresource.layerCount@ of --- each element of @pRegions@ /must/ be less than or equal to the --- @arrayLayers@ specified in 'Vulkan.Core10.Image.ImageCreateInfo' --- when @dstImage@ was created +-- each element of @pRegions@ , if @dstSubresource.layerCount@ is not +-- 'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS' and +-- +-- is not enabled, /must/ be less than or equal to the @arrayLayers@ +-- specified in 'Vulkan.Core10.Image.ImageCreateInfo' when @dstImage@ +-- was created -- -- - #VUID-VkCopyImageInfo2-dstImage-07969# @dstImage@ /must/ not have -- been created with @flags@ containing @@ -2095,15 +2174,21 @@ instance Zero CopyImageInfo2 where -- -- - #VUID-VkBlitImageInfo2-srcSubresource-01707# The -- @srcSubresource.baseArrayLayer@ + @srcSubresource.layerCount@ of --- each element of @pRegions@ /must/ be less than or equal to the --- @arrayLayers@ specified in 'Vulkan.Core10.Image.ImageCreateInfo' --- when @srcImage@ was created +-- each element of @pRegions@ , if @srcSubresource.layerCount@ is not +-- 'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS' and +-- +-- is not enabled, /must/ be less than or equal to the @arrayLayers@ +-- specified in 'Vulkan.Core10.Image.ImageCreateInfo' when @srcImage@ +-- was created -- -- - #VUID-VkBlitImageInfo2-dstSubresource-01708# The -- @dstSubresource.baseArrayLayer@ + @dstSubresource.layerCount@ of --- each element of @pRegions@ /must/ be less than or equal to the --- @arrayLayers@ specified in 'Vulkan.Core10.Image.ImageCreateInfo' --- when @dstImage@ was created +-- each element of @pRegions@ , if @srcSubresource.layerCount@ is not +-- 'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS' and +-- +-- is not enabled, /must/ be less than or equal to the @arrayLayers@ +-- specified in 'Vulkan.Core10.Image.ImageCreateInfo' when @dstImage@ +-- was created -- -- - #VUID-VkBlitImageInfo2-dstImage-02545# @dstImage@ and @srcImage@ -- /must/ not have been created with @flags@ containing @@ -2194,12 +2279,23 @@ instance Zero CopyImageInfo2 where -- in its @pNext@ chain, then @srcImage@ /must/ not have a -- -- +-- - #VUID-VkBlitImageInfo2-filter-09204# If @filter@ is +-- 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' and if the +-- +-- feature is not enabled then the cubic weights /must/ be +-- 'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM' +-- -- == Valid Usage (Implicit) -- -- - #VUID-VkBlitImageInfo2-sType-sType# @sType@ /must/ be -- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_BLIT_IMAGE_INFO_2' -- --- - #VUID-VkBlitImageInfo2-pNext-pNext# @pNext@ /must/ be @NULL@ +-- - #VUID-VkBlitImageInfo2-pNext-pNext# @pNext@ /must/ be @NULL@ or a +-- pointer to a valid instance of +-- 'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.BlitImageCubicWeightsInfoQCOM' +-- +-- - #VUID-VkBlitImageInfo2-sType-unique# The @sType@ value of each +-- struct in the @pNext@ chain /must/ be unique -- -- - #VUID-VkBlitImageInfo2-srcImage-parameter# @srcImage@ /must/ be a -- valid 'Vulkan.Core10.Handles.Image' handle @@ -2237,8 +2333,10 @@ instance Zero CopyImageInfo2 where -- 'ImageBlit2', 'Vulkan.Core10.Enums.ImageLayout.ImageLayout', -- 'Vulkan.Core10.Enums.StructureType.StructureType', 'cmdBlitImage2', -- 'Vulkan.Extensions.VK_KHR_copy_commands2.cmdBlitImage2KHR' -data BlitImageInfo2 = BlitImageInfo2 - { -- | @srcImage@ is the source image. +data BlitImageInfo2 (es :: [Type]) = BlitImageInfo2 + { -- | @pNext@ is @NULL@ or a pointer to a structure extending this structure. + next :: Chain es + , -- | @srcImage@ is the source image. srcImage :: Image , -- | @srcImageLayout@ is the layout of the source image subresources for the -- blit. @@ -2257,15 +2355,26 @@ data BlitImageInfo2 = BlitImageInfo2 } deriving (Typeable) #if defined(GENERIC_INSTANCES) -deriving instance Generic (BlitImageInfo2) +deriving instance Generic (BlitImageInfo2 (es :: [Type])) #endif -deriving instance Show BlitImageInfo2 +deriving instance Show (Chain es) => Show (BlitImageInfo2 es) + +instance Extensible BlitImageInfo2 where + extensibleTypeName = "BlitImageInfo2" + setNext BlitImageInfo2{..} next' = BlitImageInfo2{next = next', ..} + getNext BlitImageInfo2{..} = next + extends :: forall e b proxy. Typeable e => proxy e -> (Extends BlitImageInfo2 e => b) -> Maybe b + extends _ f + | Just Refl <- eqT @e @BlitImageCubicWeightsInfoQCOM = Just f + | otherwise = Nothing -instance ToCStruct BlitImageInfo2 where +instance ( Extendss BlitImageInfo2 es + , PokeChain es ) => ToCStruct (BlitImageInfo2 es) where withCStruct x f = allocaBytes 64 $ \p -> pokeCStruct p x (f p) pokeCStruct p BlitImageInfo2{..} f = evalContT $ do lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_BLIT_IMAGE_INFO_2) - lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr) + pNext'' <- fmap castPtr . ContT $ withChain (next) + lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext'' lift $ poke ((p `plusPtr` 16 :: Ptr Image)) (srcImage) lift $ poke ((p `plusPtr` 24 :: Ptr ImageLayout)) (srcImageLayout) lift $ poke ((p `plusPtr` 32 :: Ptr Image)) (dstImage) @@ -2278,18 +2387,22 @@ instance ToCStruct BlitImageInfo2 where lift $ f cStructSize = 64 cStructAlignment = 8 - pokeZeroCStruct p f = do - poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_BLIT_IMAGE_INFO_2) - poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr) - poke ((p `plusPtr` 16 :: Ptr Image)) (zero) - poke ((p `plusPtr` 24 :: Ptr ImageLayout)) (zero) - poke ((p `plusPtr` 32 :: Ptr Image)) (zero) - poke ((p `plusPtr` 40 :: Ptr ImageLayout)) (zero) - poke ((p `plusPtr` 56 :: Ptr Filter)) (zero) - f + pokeZeroCStruct p f = evalContT $ do + lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_BLIT_IMAGE_INFO_2) + pNext' <- fmap castPtr . ContT $ withZeroChain @es + lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext' + lift $ poke ((p `plusPtr` 16 :: Ptr Image)) (zero) + lift $ poke ((p `plusPtr` 24 :: Ptr ImageLayout)) (zero) + lift $ poke ((p `plusPtr` 32 :: Ptr Image)) (zero) + lift $ poke ((p `plusPtr` 40 :: Ptr ImageLayout)) (zero) + lift $ poke ((p `plusPtr` 56 :: Ptr Filter)) (zero) + lift $ f -instance FromCStruct BlitImageInfo2 where +instance ( Extendss BlitImageInfo2 es + , PeekChain es ) => FromCStruct (BlitImageInfo2 es) where peekCStruct p = do + pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ()))) + next <- peekChain (castPtr pNext) srcImage <- peek @Image ((p `plusPtr` 16 :: Ptr Image)) srcImageLayout <- peek @ImageLayout ((p `plusPtr` 24 :: Ptr ImageLayout)) dstImage <- peek @Image ((p `plusPtr` 32 :: Ptr Image)) @@ -2299,10 +2412,17 @@ instance FromCStruct BlitImageInfo2 where pRegions' <- generateM (fromIntegral regionCount) (\i -> peekSomeCStruct (forgetExtensions ((pRegions `advancePtrBytes` (96 * (i)) :: Ptr (ImageBlit2 _))))) filter' <- peek @Filter ((p `plusPtr` 56 :: Ptr Filter)) pure $ BlitImageInfo2 - srcImage srcImageLayout dstImage dstImageLayout pRegions' filter' - -instance Zero BlitImageInfo2 where + next + srcImage + srcImageLayout + dstImage + dstImageLayout + pRegions' + filter' + +instance es ~ '[] => Zero (BlitImageInfo2 es) where zero = BlitImageInfo2 + () zero zero zero @@ -2316,11 +2436,11 @@ instance Zero BlitImageInfo2 where -- -- == Valid Usage -- --- - #VUID-VkCopyBufferToImageInfo2-pRegions-04565# If the image region --- specified by each element of @pRegions@ does not contain +-- - #VUID-VkCopyBufferToImageInfo2-pRegions-04565# The image region +-- specified by each element of @pRegions@ that does not contain -- 'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM' --- in its @pNext@ chain, it /must/ be a region that is contained within --- the specified @imageSubresource@ of @dstImage@ +-- in its @pNext@ chain /must/ be contained within the specified +-- @imageSubresource@ of @dstImage@ -- -- - #VUID-VkCopyBufferToImageInfo2KHR-pRegions-04554# If the image -- region specified by each element of @pRegions@ contains @@ -2383,9 +2503,9 @@ instance Zero BlitImageInfo2 where -- -- - #VUID-VkCopyBufferToImageInfo2-dstImageLayout-01396# -- @dstImageLayout@ /must/ be +-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHARED_PRESENT_KHR', -- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL', --- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL', or --- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHARED_PRESENT_KHR' +-- or 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL' -- -- - #VUID-VkCopyBufferToImageInfo2-pRegions-07931# If -- @@ -2405,9 +2525,12 @@ instance Zero BlitImageInfo2 where -- -- - #VUID-VkCopyBufferToImageInfo2-imageSubresource-07968# The -- @imageSubresource.baseArrayLayer@ + @imageSubresource.layerCount@ of --- each element of @pRegions@ /must/ be less than or equal to the --- @arrayLayers@ specified in 'Vulkan.Core10.Image.ImageCreateInfo' --- when @dstImage@ was created +-- each element of @pRegions@ , if @imageSubresource.layerCount@ is not +-- 'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS' and +-- +-- is not enabled, /must/ be less than or equal to the @arrayLayers@ +-- specified in 'Vulkan.Core10.Image.ImageCreateInfo' when @dstImage@ +-- was created -- -- - #VUID-VkCopyBufferToImageInfo2-dstImage-07969# @dstImage@ /must/ not -- have been created with @flags@ containing @@ -2422,7 +2545,7 @@ instance Zero BlitImageInfo2 where -- element of @pRegions@, @imageOffset.y@ /must/ be @0@ and -- @imageExtent.height@ /must/ be @1@ -- --- - #VUID-VkCopyBufferToImageInfo2-imageOffset-00200# For each element +-- - #VUID-VkCopyBufferToImageInfo2-imageOffset-09104# For each element -- of @pRegions@, @imageOffset.z@ and (@imageExtent.depth@ + -- @imageOffset.z@) /must/ both be greater than or equal to @0@ and -- less than or equal to the depth of the specified @imageSubresource@ @@ -2434,89 +2557,77 @@ instance Zero BlitImageInfo2 where -- of @pRegions@, @imageOffset.z@ /must/ be @0@ and @imageExtent.depth@ -- /must/ be @1@ -- --- - #VUID-VkCopyBufferToImageInfo2-bufferRowLength-00203# For each --- element of @pRegions@, @bufferRowLength@ /must/ be a multiple of the --- --- of the 'Vulkan.Core10.Enums.Format.Format' of @dstImage@ --- --- - #VUID-VkCopyBufferToImageInfo2-bufferImageHeight-00204# For each --- element of @pRegions@, @bufferImageHeight@ /must/ be a multiple of --- the --- --- of the 'Vulkan.Core10.Enums.Format.Format' of @dstImage@ --- --- - #VUID-VkCopyBufferToImageInfo2-pRegions-07274# For each element of +-- - #VUID-VkCopyBufferToImageInfo2-dstImage-07274# For each element of -- @pRegions@, @imageOffset.x@ /must/ be a multiple of the -- -- of the 'Vulkan.Core10.Enums.Format.Format' of @dstImage@ -- --- - #VUID-VkCopyBufferToImageInfo2-pRegions-07275# For each element of +-- - #VUID-VkCopyBufferToImageInfo2-dstImage-07275# For each element of -- @pRegions@, @imageOffset.y@ /must/ be a multiple of the -- -- of the 'Vulkan.Core10.Enums.Format.Format' of @dstImage@ -- --- - #VUID-VkCopyBufferToImageInfo2-pRegions-07276# For each element of +-- - #VUID-VkCopyBufferToImageInfo2-dstImage-07276# For each element of -- @pRegions@, @imageOffset.z@ /must/ be a multiple of the -- -- of the 'Vulkan.Core10.Enums.Format.Format' of @dstImage@ -- --- - #VUID-VkCopyBufferToImageInfo2-imageExtent-00207# For each element --- of @pRegions@, if the sum of @imageOffset.x@ and @extent.width@ does +-- - #VUID-VkCopyBufferToImageInfo2-dstImage-00207# For each element of +-- @pRegions@, if the sum of @imageOffset.x@ and @extent.width@ does -- not equal the width of the subresource specified by -- @srcSubresource@, @extent.width@ /must/ be a multiple of the -- -- of the 'Vulkan.Core10.Enums.Format.Format' of @dstImage@ -- --- - #VUID-VkCopyBufferToImageInfo2-imageExtent-00208# For each element --- of @pRegions@, if the sum of @imageOffset.y@ and @extent.height@ --- does not equal the height of the subresource specified by +-- - #VUID-VkCopyBufferToImageInfo2-dstImage-00208# For each element of +-- @pRegions@, if the sum of @imageOffset.y@ and @extent.height@ does +-- not equal the height of the subresource specified by -- @srcSubresource@, @extent.height@ /must/ be a multiple of the -- -- of the 'Vulkan.Core10.Enums.Format.Format' of @dstImage@ -- --- - #VUID-VkCopyBufferToImageInfo2-imageExtent-00209# For each element --- of @pRegions@, if the sum of @imageOffset.z@ and @extent.depth@ does +-- - #VUID-VkCopyBufferToImageInfo2-dstImage-00209# For each element of +-- @pRegions@, if the sum of @imageOffset.z@ and @extent.depth@ does -- not equal the depth of the subresource specified by -- @srcSubresource@, @extent.depth@ /must/ be a multiple of the -- -- of the 'Vulkan.Core10.Enums.Format.Format' of @dstImage@ -- --- - #VUID-VkCopyBufferToImageInfo2-aspectMask-00211# For each element of --- @pRegions@, @imageSubresource.aspectMask@ /must/ specify aspects --- present in @dstImage@ +-- - #VUID-VkCopyBufferToImageInfo2-imageSubresource-09105# For each +-- element of @pRegions@, @imageSubresource.aspectMask@ /must/ specify +-- aspects present in @dstImage@ -- -- - #VUID-VkCopyBufferToImageInfo2-dstImage-07981# If @dstImage@ has a --- 'Vulkan.Core10.Enums.Format.Format' with --- --- then for each element of @pRegions@, @imageSubresource.aspectMask@ --- /must/ be --- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT' --- or --- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT' --- --- - #VUID-VkCopyBufferToImageInfo2-dstImage-07982# If @dstImage@ has a --- 'Vulkan.Core10.Enums.Format.Format' with --- +-- , -- then for each element of @pRegions@, @imageSubresource.aspectMask@ --- /must/ be --- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT', --- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT', --- or --- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_2_BIT' +-- /must/ be a single valid +-- +-- bit -- -- - #VUID-VkCopyBufferToImageInfo2-dstImage-07983# If @dstImage@ is of -- type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D', for each element -- of @pRegions@, @imageSubresource.baseArrayLayer@ /must/ be @0@ and -- @imageSubresource.layerCount@ /must/ be @1@ -- --- - #VUID-VkCopyBufferToImageInfo2-pRegions-07277# For each element of --- @pRegions@, @bufferRowLength@ divided by the +-- - #VUID-VkCopyBufferToImageInfo2-bufferRowLength-09106# For each +-- element of @pRegions@, @bufferRowLength@ /must/ be a multiple of the +-- +-- of the 'Vulkan.Core10.Enums.Format.Format' of @dstImage@ +-- +-- - #VUID-VkCopyBufferToImageInfo2-bufferImageHeight-09107# For each +-- element of @pRegions@, @bufferImageHeight@ /must/ be a multiple of +-- the +-- +-- of the 'Vulkan.Core10.Enums.Format.Format' of @dstImage@ +-- +-- - #VUID-VkCopyBufferToImageInfo2-bufferRowLength-09108# For each +-- element of @pRegions@, @bufferRowLength@ divided by the -- -- and then multiplied by the texel block size of @dstImage@ /must/ be -- less than or equal to 231-1 -- -- - #VUID-VkCopyBufferToImageInfo2-dstImage-07975# If @dstImage@ does --- not have either a depth\/stencil or a +-- not have either a depth\/stencil format or a -- , -- then for each element of @pRegions@, @bufferOffset@ /must/ be a -- multiple of the @@ -2652,10 +2763,10 @@ instance Zero CopyBufferToImageInfo2 where -- -- == Valid Usage -- --- - #VUID-VkCopyImageToBufferInfo2-pRegions-04566# If the image region --- specified by each element of @pRegions@ does not contain +-- - #VUID-VkCopyImageToBufferInfo2-pRegions-04566# The image region +-- specified by each element of @pRegions@ that does not contain -- 'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM' --- in its @pNext@ chain, it /must/ be contained within the specified +-- in its @pNext@ chain /must/ be contained within the specified -- @imageSubresource@ of @srcImage@ -- -- - #VUID-VkCopyImageToBufferInfo2KHR-pRegions-04557# If the image @@ -2719,9 +2830,9 @@ instance Zero CopyBufferToImageInfo2 where -- -- - #VUID-VkCopyImageToBufferInfo2-srcImageLayout-01397# -- @srcImageLayout@ /must/ be +-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHARED_PRESENT_KHR', -- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL', --- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL', or --- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHARED_PRESENT_KHR' +-- or 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL' -- -- - #VUID-VkCopyImageToBufferInfo2-srcImage-07966# If @srcImage@ is -- non-sparse then the image or the specified /disjoint/ plane /must/ @@ -2735,9 +2846,12 @@ instance Zero CopyBufferToImageInfo2 where -- -- - #VUID-VkCopyImageToBufferInfo2-imageSubresource-07968# The -- @imageSubresource.baseArrayLayer@ + @imageSubresource.layerCount@ of --- each element of @pRegions@ /must/ be less than or equal to the --- @arrayLayers@ specified in 'Vulkan.Core10.Image.ImageCreateInfo' --- when @srcImage@ was created +-- each element of @pRegions@ , if @imageSubresource.layerCount@ is not +-- 'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS' and +-- +-- is not enabled, /must/ be less than or equal to the @arrayLayers@ +-- specified in 'Vulkan.Core10.Image.ImageCreateInfo' when @srcImage@ +-- was created -- -- - #VUID-VkCopyImageToBufferInfo2-srcImage-07969# @srcImage@ /must/ not -- have been created with @flags@ containing @@ -2752,7 +2866,7 @@ instance Zero CopyBufferToImageInfo2 where -- element of @pRegions@, @imageOffset.y@ /must/ be @0@ and -- @imageExtent.height@ /must/ be @1@ -- --- - #VUID-VkCopyImageToBufferInfo2-imageOffset-00200# For each element +-- - #VUID-VkCopyImageToBufferInfo2-imageOffset-09104# For each element -- of @pRegions@, @imageOffset.z@ and (@imageExtent.depth@ + -- @imageOffset.z@) /must/ both be greater than or equal to @0@ and -- less than or equal to the depth of the specified @imageSubresource@ @@ -2764,89 +2878,77 @@ instance Zero CopyBufferToImageInfo2 where -- of @pRegions@, @imageOffset.z@ /must/ be @0@ and @imageExtent.depth@ -- /must/ be @1@ -- --- - #VUID-VkCopyImageToBufferInfo2-bufferRowLength-00203# For each --- element of @pRegions@, @bufferRowLength@ /must/ be a multiple of the --- --- of the 'Vulkan.Core10.Enums.Format.Format' of @srcImage@ --- --- - #VUID-VkCopyImageToBufferInfo2-bufferImageHeight-00204# For each --- element of @pRegions@, @bufferImageHeight@ /must/ be a multiple of --- the --- --- of the 'Vulkan.Core10.Enums.Format.Format' of @srcImage@ --- --- - #VUID-VkCopyImageToBufferInfo2-pRegions-07274# For each element of +-- - #VUID-VkCopyImageToBufferInfo2-srcImage-07274# For each element of -- @pRegions@, @imageOffset.x@ /must/ be a multiple of the -- -- of the 'Vulkan.Core10.Enums.Format.Format' of @srcImage@ -- --- - #VUID-VkCopyImageToBufferInfo2-pRegions-07275# For each element of +-- - #VUID-VkCopyImageToBufferInfo2-srcImage-07275# For each element of -- @pRegions@, @imageOffset.y@ /must/ be a multiple of the -- -- of the 'Vulkan.Core10.Enums.Format.Format' of @srcImage@ -- --- - #VUID-VkCopyImageToBufferInfo2-pRegions-07276# For each element of +-- - #VUID-VkCopyImageToBufferInfo2-srcImage-07276# For each element of -- @pRegions@, @imageOffset.z@ /must/ be a multiple of the -- -- of the 'Vulkan.Core10.Enums.Format.Format' of @srcImage@ -- --- - #VUID-VkCopyImageToBufferInfo2-imageExtent-00207# For each element --- of @pRegions@, if the sum of @imageOffset.x@ and @extent.width@ does +-- - #VUID-VkCopyImageToBufferInfo2-srcImage-00207# For each element of +-- @pRegions@, if the sum of @imageOffset.x@ and @extent.width@ does -- not equal the width of the subresource specified by -- @srcSubresource@, @extent.width@ /must/ be a multiple of the -- -- of the 'Vulkan.Core10.Enums.Format.Format' of @srcImage@ -- --- - #VUID-VkCopyImageToBufferInfo2-imageExtent-00208# For each element --- of @pRegions@, if the sum of @imageOffset.y@ and @extent.height@ --- does not equal the height of the subresource specified by +-- - #VUID-VkCopyImageToBufferInfo2-srcImage-00208# For each element of +-- @pRegions@, if the sum of @imageOffset.y@ and @extent.height@ does +-- not equal the height of the subresource specified by -- @srcSubresource@, @extent.height@ /must/ be a multiple of the -- -- of the 'Vulkan.Core10.Enums.Format.Format' of @srcImage@ -- --- - #VUID-VkCopyImageToBufferInfo2-imageExtent-00209# For each element --- of @pRegions@, if the sum of @imageOffset.z@ and @extent.depth@ does +-- - #VUID-VkCopyImageToBufferInfo2-srcImage-00209# For each element of +-- @pRegions@, if the sum of @imageOffset.z@ and @extent.depth@ does -- not equal the depth of the subresource specified by -- @srcSubresource@, @extent.depth@ /must/ be a multiple of the -- -- of the 'Vulkan.Core10.Enums.Format.Format' of @srcImage@ -- --- - #VUID-VkCopyImageToBufferInfo2-aspectMask-00211# For each element of --- @pRegions@, @imageSubresource.aspectMask@ /must/ specify aspects --- present in @srcImage@ +-- - #VUID-VkCopyImageToBufferInfo2-imageSubresource-09105# For each +-- element of @pRegions@, @imageSubresource.aspectMask@ /must/ specify +-- aspects present in @srcImage@ -- -- - #VUID-VkCopyImageToBufferInfo2-srcImage-07981# If @srcImage@ has a --- 'Vulkan.Core10.Enums.Format.Format' with --- --- then for each element of @pRegions@, @imageSubresource.aspectMask@ --- /must/ be --- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT' --- or --- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT' --- --- - #VUID-VkCopyImageToBufferInfo2-srcImage-07982# If @srcImage@ has a --- 'Vulkan.Core10.Enums.Format.Format' with --- +-- , -- then for each element of @pRegions@, @imageSubresource.aspectMask@ --- /must/ be --- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT', --- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT', --- or --- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_2_BIT' +-- /must/ be a single valid +-- +-- bit -- -- - #VUID-VkCopyImageToBufferInfo2-srcImage-07983# If @srcImage@ is of -- type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D', for each element -- of @pRegions@, @imageSubresource.baseArrayLayer@ /must/ be @0@ and -- @imageSubresource.layerCount@ /must/ be @1@ -- --- - #VUID-VkCopyImageToBufferInfo2-pRegions-07277# For each element of --- @pRegions@, @bufferRowLength@ divided by the +-- - #VUID-VkCopyImageToBufferInfo2-bufferRowLength-09106# For each +-- element of @pRegions@, @bufferRowLength@ /must/ be a multiple of the +-- +-- of the 'Vulkan.Core10.Enums.Format.Format' of @srcImage@ +-- +-- - #VUID-VkCopyImageToBufferInfo2-bufferImageHeight-09107# For each +-- element of @pRegions@, @bufferImageHeight@ /must/ be a multiple of +-- the +-- +-- of the 'Vulkan.Core10.Enums.Format.Format' of @srcImage@ +-- +-- - #VUID-VkCopyImageToBufferInfo2-bufferRowLength-09108# For each +-- element of @pRegions@, @bufferRowLength@ divided by the -- -- and then multiplied by the texel block size of @srcImage@ /must/ be -- less than or equal to 231-1 -- -- - #VUID-VkCopyImageToBufferInfo2-srcImage-07975# If @srcImage@ does --- not have either a depth\/stencil or a +-- not have either a depth\/stencil format or a -- , -- then for each element of @pRegions@, @bufferOffset@ /must/ be a -- multiple of the @@ -3052,15 +3154,21 @@ instance Zero CopyImageToBufferInfo2 where -- -- - #VUID-VkResolveImageInfo2-srcSubresource-01711# The -- @srcSubresource.baseArrayLayer@ + @srcSubresource.layerCount@ of --- each element of @pRegions@ /must/ be less than or equal to the --- @arrayLayers@ specified in 'Vulkan.Core10.Image.ImageCreateInfo' --- when @srcImage@ was created +-- each element of @pRegions@ , if @srcSubresource.layerCount@ is not +-- 'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS' and +-- +-- is not enabled, /must/ be less than or equal to the @arrayLayers@ +-- specified in 'Vulkan.Core10.Image.ImageCreateInfo' when @srcImage@ +-- was created -- -- - #VUID-VkResolveImageInfo2-dstSubresource-01712# The -- @dstSubresource.baseArrayLayer@ + @dstSubresource.layerCount@ of --- each element of @pRegions@ /must/ be less than or equal to the --- @arrayLayers@ specified in 'Vulkan.Core10.Image.ImageCreateInfo' --- when @dstImage@ was created +-- each element of @pRegions@ , if @dstSubresource.layerCount@ is not +-- 'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS' and +-- +-- is not enabled, /must/ be less than or equal to the @arrayLayers@ +-- specified in 'Vulkan.Core10.Image.ImageCreateInfo' when @dstImage@ +-- was created -- -- - #VUID-VkResolveImageInfo2-dstImage-02546# @dstImage@ and @srcImage@ -- /must/ not have been created with @flags@ containing diff --git a/src/Vulkan/Core13/Promoted_From_VK_KHR_copy_commands2.hs-boot b/src/Vulkan/Core13/Promoted_From_VK_KHR_copy_commands2.hs-boot index 65eb1942e..9ae938c8d 100644 --- a/src/Vulkan/Core13/Promoted_From_VK_KHR_copy_commands2.hs-boot +++ b/src/Vulkan/Core13/Promoted_From_VK_KHR_copy_commands2.hs-boot @@ -20,12 +20,15 @@ import {-# SOURCE #-} Vulkan.CStruct.Extends (Chain) import {-# SOURCE #-} Vulkan.CStruct.Extends (Extendss) import {-# SOURCE #-} Vulkan.CStruct.Extends (PeekChain) import {-# SOURCE #-} Vulkan.CStruct.Extends (PokeChain) -data BlitImageInfo2 +type role BlitImageInfo2 nominal +data BlitImageInfo2 (es :: [Type]) -instance ToCStruct BlitImageInfo2 -instance Show BlitImageInfo2 +instance ( Extendss BlitImageInfo2 es + , PokeChain es ) => ToCStruct (BlitImageInfo2 es) +instance Show (Chain es) => Show (BlitImageInfo2 es) -instance FromCStruct BlitImageInfo2 +instance ( Extendss BlitImageInfo2 es + , PeekChain es ) => FromCStruct (BlitImageInfo2 es) data BufferCopy2 diff --git a/src/Vulkan/Core13/Promoted_From_VK_KHR_dynamic_rendering.hs b/src/Vulkan/Core13/Promoted_From_VK_KHR_dynamic_rendering.hs index f141bb231..5bd62b593 100644 --- a/src/Vulkan/Core13/Promoted_From_VK_KHR_dynamic_rendering.hs +++ b/src/Vulkan/Core13/Promoted_From_VK_KHR_dynamic_rendering.hs @@ -122,8 +122,9 @@ foreign import ccall -- feature /must/ be enabled -- -- - #VUID-vkCmdBeginRendering-commandBuffer-06068# If @commandBuffer@ is --- a secondary command buffer, @pRenderingInfo->flags@ /must/ not --- include +-- a secondary command buffer, and the +-- +-- feature is not enabled, @pRenderingInfo->flags@ /must/ not include -- 'Vulkan.Core13.Enums.RenderingFlagBits.RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT' -- -- == Valid Usage (Implicit) @@ -297,11 +298,11 @@ cmdEndRendering commandBuffer = liftIO $ do -- = Description -- -- When a pipeline is created without a 'Vulkan.Core10.Handles.RenderPass', --- if this structure is present in the @pNext@ chain of --- 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo', it specifies the --- view mask and format of attachments used for rendering. If this --- structure is not specified, and the pipeline does not include a --- 'Vulkan.Core10.Handles.RenderPass', @viewMask@ and +-- if the @pNext@ chain of +-- 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo' includes this +-- structure, it specifies the view mask and format of attachments used for +-- rendering. If this structure is not specified, and the pipeline does not +-- include a 'Vulkan.Core10.Handles.RenderPass', @viewMask@ and -- @colorAttachmentCount@ are @0@, and @depthAttachmentFormat@ and -- @stencilAttachmentFormat@ are -- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'. If a graphics pipeline is @@ -315,6 +316,13 @@ cmdEndRendering commandBuffer = liftIO $ do -- indicate that an attachment /can/ be used - but it is still valid to set -- the attachment to @NULL@ when beginning rendering. -- +-- If the render pass is going to be used with an external format resolve +-- attachment, a +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID' +-- structure /must/ also be included in the @pNext@ chain of +-- 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo', defining the +-- external format of the resolve attachment that will be used. +-- -- == Valid Usage (Implicit) -- -- = See Also @@ -416,8 +424,9 @@ instance Zero PipelineRenderingCreateInfo where -- decorated with a @Location@ value of __X__, then it uses the attachment -- provided in @pColorAttachments@[__X__]. If the @imageView@ member of any -- element of @pColorAttachments@ is --- 'Vulkan.Core10.APIConstants.NULL_HANDLE', writes to the corresponding --- location by a fragment are discarded. +-- 'Vulkan.Core10.APIConstants.NULL_HANDLE', and @resolveMode@ is not +-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID', +-- writes to the corresponding location by a fragment are discarded. -- -- == Valid Usage -- @@ -433,6 +442,14 @@ instance Zero PipelineRenderingCreateInfo where -- not 'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been -- created with the same @sampleCount@ -- +-- - #VUID-VkRenderingInfo-None-08994# If +-- 'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupRenderPassBeginInfo'::@deviceRenderAreaCount@ +-- is 0, @renderArea.extent.width@ /must/ be greater than 0 +-- +-- - #VUID-VkRenderingInfo-None-08995# If +-- 'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupRenderPassBeginInfo'::@deviceRenderAreaCount@ +-- is 0, @renderArea.extent.height@ /must/ be greater than 0 +-- -- - #VUID-VkRenderingInfo-imageView-06858# If -- -- is enabled, then all attachments referenced by @imageView@ members @@ -927,6 +944,41 @@ instance Zero PipelineRenderingCreateInfo where -- @renderArea@ /must/ specify a render area that includes the union of -- all per view render areas. -- +-- - #VUID-VkRenderingInfo-None-09044# Valid attachments specified by +-- this structure /must/ not be bound to memory locations that are +-- bound to any other valid attachments specified by this structure +-- +-- - #VUID-VkRenderingInfo-flags-09381# If @flags@ includes +-- 'Vulkan.Core13.Enums.RenderingFlagBits.RENDERING_CONTENTS_INLINE_BIT_EXT' +-- then the +-- +-- feature /must/ be enabled +-- +-- - #VUID-VkRenderingInfo-pDepthAttachment-09318# +-- @pDepthAttachment->resolveMode@ /must/ not be +-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID' +-- +-- - #VUID-VkRenderingInfo-pStencilAttachment-09319# +-- @pStencilAttachment->resolveMode@ /must/ not be +-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID' +-- +-- - #VUID-VkRenderingInfo-colorAttachmentCount-09320# If +-- @colorAttachmentCount@ is not @1@, the @resolveMode@ member of any +-- element of @pColorAttachments@ /must/ not be +-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID' +-- +-- - #VUID-VkRenderingInfo-resolveMode-09321# If the @resolveMode@ of any +-- element of @pColorAttachments@ is +-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID', +-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentDensityMapAttachmentInfoEXT'::@imageView@ +-- /must/ be 'Vulkan.Core10.APIConstants.NULL_HANDLE' +-- +-- - #VUID-VkRenderingInfo-resolveMode-09322# If the @resolveMode@ of any +-- element of @pColorAttachments@ is +-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID', +-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentShadingRateAttachmentInfoKHR'::@imageView@ +-- /must/ be 'Vulkan.Core10.APIConstants.NULL_HANDLE' +-- -- == Valid Usage (Implicit) -- -- - #VUID-VkRenderingInfo-sType-sType# @sType@ /must/ be @@ -1073,24 +1125,30 @@ instance es ~ '[] => Zero (RenderingInfo es) where -- Values in @imageView@ are loaded and stored according to the values of -- @loadOp@ and @storeOp@, within the render area for each device specified -- in 'RenderingInfo'. If @imageView@ is --- 'Vulkan.Core10.APIConstants.NULL_HANDLE', other members of this --- structure are ignored; writes to this attachment will be discarded, and --- no load, store, or resolve operations will be performed. +-- 'Vulkan.Core10.APIConstants.NULL_HANDLE', and @resolveMode@ is not +-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID', +-- other members of this structure are ignored; writes to this attachment +-- will be discarded, and no +-- , +-- , +-- or +-- +-- operations will be performed. -- -- If @resolveMode@ is -- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_NONE', then -- @resolveImageView@ is ignored. If @resolveMode@ is not -- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_NONE', and --- @resolveImageView@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', --- values in @resolveImageView@ within the render area become undefined --- once rendering begins. Only values in the aspect corresponding to the --- use of this attachment become undefined (the depth aspect if this --- attachment is used as 'RenderingInfo'::@pDepthAttachment@, and the --- stencil aspect if it is used as @pStencilAttachment@). --- --- At the end of rendering, the values written to each pixel location in --- @imageView@ will be resolved according to @resolveMode@ and stored into --- the same location in @resolveImageView@. +-- @resolveImageView@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', a +-- +-- is defined for the attachment subresource. If @resolveMode@ is +-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID', +-- and the +-- +-- limit is 'Vulkan.Core10.FundamentalTypes.TRUE', values are only +-- undefined once +-- +-- have completed. -- -- Note -- @@ -1110,6 +1168,18 @@ instance es ~ '[] => Zero (RenderingInfo es) where -- Image contents at the end of a suspended render pass instance remain -- defined for access by a resuming render pass instance. -- +-- If the +-- +-- limit is 'Vulkan.Core10.FundamentalTypes.TRUE', and @resolveMode@ is +-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID', +-- values in the color attachment will be loaded from the resolve +-- attachment at the start of rendering, and /may/ also be reloaded any +-- time after a resolve occurs or the resolve attachment is written to; if +-- this occurs it /must/ happen-before any writes to the color attachment +-- are performed which happen-after the resolve that triggers this. If any +-- color component in the external format is subsampled, values will be +-- read from the nearest sample in the image when they are loaded. +-- -- == Valid Usage -- -- - #VUID-VkRenderingAttachmentInfo-imageView-06129# If @imageView@ is @@ -1246,6 +1316,68 @@ instance es ~ '[] => Zero (RenderingInfo es) where -- @resolveImageLayout@ /must/ not be -- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_PRESENT_SRC_KHR' -- +-- - #VUID-VkRenderingAttachmentInfo-externalFormatResolve-09323# If +-- +-- is not enabled, @resolveMode@ /must/ not be +-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID' +-- +-- - #VUID-VkRenderingAttachmentInfo-resolveMode-09324# If @resolveMode@ +-- is +-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID', +-- @resolveImageView@ /must/ be a valid image view +-- +-- - #VUID-VkRenderingAttachmentInfo-nullColorAttachmentWithExternalFormatResolve-09325# +-- If the +-- +-- property is 'Vulkan.Core10.FundamentalTypes.TRUE' and @resolveMode@ +-- is +-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID', +-- @resolveImageView@ /must/ have been created with an image with a +-- @samples@ value of +-- 'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT' +-- +-- - #VUID-VkRenderingAttachmentInfo-resolveMode-09326# If @resolveMode@ +-- is +-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID', +-- @resolveImageView@ /must/ have been created with an external format +-- specified by +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID' +-- +-- - #VUID-VkRenderingAttachmentInfo-resolveMode-09327# If @resolveMode@ +-- is +-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID', +-- @resolveImageView@ /must/ have been created with a +-- @subresourceRange.layerCount@ of @1@ +-- +-- - #VUID-VkRenderingAttachmentInfo-resolveMode-09328# If @resolveMode@ +-- is +-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID' +-- and +-- +-- is 'Vulkan.Core10.FundamentalTypes.TRUE', @imageView@ /must/ be +-- 'Vulkan.Core10.APIConstants.NULL_HANDLE' +-- +-- - #VUID-VkRenderingAttachmentInfo-resolveMode-09329# If @resolveMode@ +-- is +-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID' +-- and +-- +-- is 'Vulkan.Core10.FundamentalTypes.FALSE', @imageView@ /must/ be a +-- valid 'Vulkan.Core10.Handles.ImageView' +-- +-- - #VUID-VkRenderingAttachmentInfo-resolveMode-09330# If @resolveMode@ +-- is +-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID' +-- and +-- +-- is 'Vulkan.Core10.FundamentalTypes.FALSE', @imageView@ /must/ have a +-- format equal to the value of +-- 'Vulkan.Extensions.VK_ANDROID_external_format_resolve.AndroidHardwareBufferFormatResolvePropertiesANDROID'::@colorAttachmentFormat@ +-- as returned by a call to +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.getAndroidHardwareBufferPropertiesANDROID' +-- for the Android hardware buffer that was used to create +-- @resolveImageView@ +-- -- == Valid Usage (Implicit) -- -- - #VUID-VkRenderingAttachmentInfo-sType-sType# @sType@ /must/ be @@ -1311,21 +1443,24 @@ data RenderingAttachmentInfo = RenderingAttachmentInfo imageLayout :: ImageLayout , -- | @resolveMode@ is a -- 'Vulkan.Core12.Enums.ResolveModeFlagBits.ResolveModeFlagBits' value - -- defining how multisampled data written to @imageView@ will be resolved. + -- defining how data written to @imageView@ will be resolved into + -- @resolveImageView@. resolveMode :: ResolveModeFlagBits - , -- | @resolveImageView@ is an image view used to write resolved multisample - -- data at the end of rendering. + , -- | @resolveImageView@ is an image view used to write resolved data at the + -- end of rendering. resolveImageView :: ImageView , -- | @resolveImageLayout@ is the layout that @resolveImageView@ will be in -- during rendering. resolveImageLayout :: ImageLayout , -- | @loadOp@ is a 'Vulkan.Core10.Enums.AttachmentLoadOp.AttachmentLoadOp' - -- value specifying how the contents of @imageView@ are treated at the - -- start of the render pass instance. + -- value defining the + -- + -- for the attachment. loadOp :: AttachmentLoadOp , -- | @storeOp@ is a 'Vulkan.Core10.Enums.AttachmentStoreOp.AttachmentStoreOp' - -- value specifying how the contents of @imageView@ are treated at the end - -- of the render pass instance. + -- value defining the + -- + -- for the attachment. storeOp :: AttachmentStoreOp , -- | @clearValue@ is a 'Vulkan.Core10.CommandBufferBuilding.ClearValue' -- structure defining values used to clear @imageView@ when @loadOp@ is @@ -1470,7 +1605,8 @@ instance Zero PhysicalDeviceDynamicRenderingFeatures where -- If @depthAttachmentFormat@, @stencilAttachmentFormat@, or any element of -- @pColorAttachmentFormats@ is -- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED', it indicates that the --- corresponding attachment is unused within the render pass. +-- corresponding attachment is unused within the render pass and writes to +-- those attachments are discarded. -- -- == Valid Usage -- @@ -1498,14 +1634,14 @@ instance Zero PhysicalDeviceDynamicRenderingFeatures where -- that include -- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT' -- --- - #VUID-VkCommandBufferInheritanceRenderingInfoKHR-pColorAttachmentFormats-06492# +-- - #VUID-VkCommandBufferInheritanceRenderingInfo-pColorAttachmentFormats-06492# -- If any element of @pColorAttachmentFormats@ is not -- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED', it /must/ be a format -- with -- -- that include --- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BIT', --- or +-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BIT' +-- , or -- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV' -- if the -- diff --git a/src/Vulkan/Core13/Promoted_From_VK_KHR_maintenance4.hs b/src/Vulkan/Core13/Promoted_From_VK_KHR_maintenance4.hs index 10883918a..d44dfdccf 100644 --- a/src/Vulkan/Core13/Promoted_From_VK_KHR_maintenance4.hs +++ b/src/Vulkan/Core13/Promoted_From_VK_KHR_maintenance4.hs @@ -312,7 +312,7 @@ instance Zero DeviceBufferMemoryRequirements where -- -- == Valid Usage -- --- - #VUID-VkDeviceImageMemoryRequirementsKHR-pCreateInfo-06416# The +-- - #VUID-VkDeviceImageMemoryRequirements-pCreateInfo-06416# The -- @pCreateInfo@::@pNext@ chain /must/ not contain a -- 'Vulkan.Extensions.VK_KHR_swapchain.ImageSwapchainCreateInfoKHR' -- structure @@ -328,14 +328,20 @@ instance Zero DeviceBufferMemoryRequirements where -- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID' -- structure with non-zero @externalFormat@ -- --- - #VUID-VkDeviceImageMemoryRequirementsKHR-pCreateInfo-06417# If +-- - #VUID-VkDeviceImageMemoryRequirements-pNext-08962# Applications also +-- /must/ not call 'getDeviceImageMemoryRequirements' with a +-- 'Vulkan.Core10.Image.ImageCreateInfo' whose @pNext@ chain includes a +-- 'Vulkan.Extensions.VK_QNX_external_memory_screen_buffer.ExternalFormatQNX' +-- structure with non-zero @externalFormat@ +-- +-- - #VUID-VkDeviceImageMemoryRequirements-pCreateInfo-06417# If -- @pCreateInfo@::@format@ specifies a /multi-planar/ format and -- @pCreateInfo@::@flags@ has -- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_DISJOINT_BIT' -- set then @planeAspect@ /must/ not be -- 'Vulkan.Extensions.VK_KHR_maintenance4.IMAGE_ASPECT_NONE_KHR' -- --- - #VUID-VkDeviceImageMemoryRequirementsKHR-pCreateInfo-06419# If +-- - #VUID-VkDeviceImageMemoryRequirements-pCreateInfo-06419# If -- @pCreateInfo@::@flags@ has -- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_DISJOINT_BIT' -- set and if the @pCreateInfo@::@tiling@ is @@ -343,8 +349,9 @@ instance Zero DeviceBufferMemoryRequirements where -- 'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_OPTIMAL', then -- @planeAspect@ /must/ be a single valid -- +-- bit -- --- - #VUID-VkDeviceImageMemoryRequirementsKHR-pCreateInfo-06420# If +-- - #VUID-VkDeviceImageMemoryRequirements-pCreateInfo-06420# If -- @pCreateInfo@::@tiling@ is -- 'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT', -- then @planeAspect@ /must/ be a single valid /memory plane/ for the diff --git a/src/Vulkan/Core13/Promoted_From_VK_KHR_synchronization2.hs b/src/Vulkan/Core13/Promoted_From_VK_KHR_synchronization2.hs index 0ea327fd7..f10ce95ea 100644 --- a/src/Vulkan/Core13/Promoted_From_VK_KHR_synchronization2.hs +++ b/src/Vulkan/Core13/Promoted_From_VK_KHR_synchronization2.hs @@ -97,11 +97,14 @@ import Vulkan.Core10.Handles (Event(..)) import Vulkan.CStruct.Extends (Extends) import Vulkan.CStruct.Extends (Extendss) import Vulkan.CStruct.Extends (Extensible(..)) +import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_external_memory_acquire_unmodified (ExternalMemoryAcquireUnmodifiedEXT) import Vulkan.Core10.Handles (Fence) import Vulkan.Core10.Handles (Fence(..)) +import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_frame_boundary (FrameBoundaryEXT) import Vulkan.Core10.Handles (Image) import Vulkan.Core10.Enums.ImageLayout (ImageLayout) import Vulkan.Core10.ImageView (ImageSubresourceRange) +import {-# SOURCE #-} Vulkan.Extensions.VK_NV_low_latency2 (LatencySubmissionPresentIdNV) import Vulkan.CStruct.Extends (PeekChain) import Vulkan.CStruct.Extends (PeekChain(..)) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_performance_query (PerformanceQuerySubmitInfoKHR) @@ -224,6 +227,18 @@ foreign import ccall -- - #VUID-vkCmdSetEvent2-dependencyFlags-03825# The @dependencyFlags@ -- member of @pDependencyInfo@ /must/ be @0@ -- +-- - #VUID-vkCmdSetEvent2-srcStageMask-09391# The @srcStageMask@ member +-- of any element of the @pMemoryBarriers@, @pBufferMemoryBarriers@, or +-- @pImageMemoryBarriers@ members of @pDependencyInfo@ /must/ not +-- include +-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_HOST_BIT' +-- +-- - #VUID-vkCmdSetEvent2-dstStageMask-09392# The @dstStageMask@ member +-- of any element of the @pMemoryBarriers@, @pBufferMemoryBarriers@, or +-- @pImageMemoryBarriers@ members of @pDependencyInfo@ /must/ not +-- include +-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_HOST_BIT' +-- -- - #VUID-vkCmdSetEvent2-commandBuffer-03826# The current device mask of -- @commandBuffer@ /must/ include exactly one physical device -- @@ -397,14 +412,14 @@ foreign import ccall -- - #VUID-vkCmdResetEvent2-stageMask-04957# If the -- -- feature is not enabled, @stageMask@ /must/ not contain --- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI' +-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI' -- -- - #VUID-vkCmdResetEvent2-stageMask-04995# If the -- -- feature is not enabled, @stageMask@ /must/ not contain -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI' -- --- - #VUID-vkCmdResetEvent2-rayTracingPipeline-07946# If neither the +-- - #VUID-vkCmdResetEvent2-stageMask-07946# If neither the -- -- extension or -- @@ -827,7 +842,22 @@ foreign import ccall -- 'Vulkan.Core10.Handles.RenderPass' object, the @image@ member of any -- image memory barrier included in this command /must/ be an -- attachment used in the current subpass both as an input attachment, --- and as either a color or depth\/stencil attachment +-- and as either a color, color resolve, or depth\/stencil attachment +-- +-- - #VUID-vkCmdPipelineBarrier2-image-09373# If 'cmdPipelineBarrier2' is +-- called within a render pass instance using a +-- 'Vulkan.Core10.Handles.RenderPass' object, and the @image@ member of +-- any image memory barrier is a color resolve attachment, the +-- corresponding color attachment /must/ be +-- 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED' +-- +-- - #VUID-vkCmdPipelineBarrier2-image-09374# If 'cmdPipelineBarrier2' is +-- called within a render pass instance using a +-- 'Vulkan.Core10.Handles.RenderPass' object, and the @image@ member of +-- any image memory barrier is a color resolve attachment, it /must/ +-- have been created with a non-zero +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- value -- -- - #VUID-vkCmdPipelineBarrier2-oldLayout-01181# If -- 'cmdPipelineBarrier2' is called within a render pass instance, the @@ -1059,20 +1089,15 @@ foreign import ccall -- member of any element of @pSubmits@, there /must/ be no other queues -- waiting on the same semaphore -- --- - #VUID-vkQueueSubmit2-semaphore-03872# The @semaphore@ member of any --- element of the @pWaitSemaphoreInfos@ member of any element of --- @pSubmits@ /must/ be semaphores that are signaled, or have --- --- previously submitted for execution --- --- - #VUID-vkQueueSubmit2-semaphore-03873# Any @semaphore@ member of any +-- - #VUID-vkQueueSubmit2-semaphore-03873# The @semaphore@ member of any -- element of the @pWaitSemaphoreInfos@ member of any element of -- @pSubmits@ that was created with a -- 'Vulkan.Extensions.VK_KHR_timeline_semaphore.SemaphoreTypeKHR' of -- 'Vulkan.Extensions.VK_KHR_timeline_semaphore.SEMAPHORE_TYPE_BINARY_KHR' -- /must/ reference a semaphore signal operation that has been --- submitted for execution and any semaphore signal operations on which --- it depends (if any) /must/ have also been submitted for execution +-- submitted for execution and any +-- +-- on which it depends /must/ have also been submitted for execution -- -- - #VUID-vkQueueSubmit2-commandBuffer-03874# The @commandBuffer@ member -- of any element of the @pCommandBufferInfos@ member of any element of @@ -1169,6 +1194,7 @@ foreign import ccall -- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ -- | | | | | | -- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================+ +-- | - | - | - | Any | - | -- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ -- -- == Return Codes @@ -1245,22 +1271,36 @@ foreign import ccall -- -- includes only the timestamp write operation. -- --- When the timestamp value is written, the availability status of the --- query is set to available. --- -- Note -- --- If an implementation is unable to detect completion and latch the timer --- immediately after @stage@ has completed, it /may/ instead do so at any --- logically later stage. --- --- Comparisons between timestamps are not meaningful if the timestamps are --- written by commands submitted to different queues. +-- Implementations may write the timestamp at any stage that is +-- +-- than @stage@. +-- +-- Any timestamp write that +-- +-- another timestamp write in the same submission /must/ not have a lower +-- value unless its value overflows the maximum supported integer bit width +-- of the query. If @VK_EXT_calibrated_timestamps@ is enabled, this extends +-- to timestamp writes across all submissions on the same logical device: +-- any timestamp write that +-- +-- another /must/ not have a lower value unless its value overflows the +-- maximum supported integer bit width of the query. Timestamps written by +-- this command /must/ be in the +-- 'Vulkan.Extensions.VK_EXT_calibrated_timestamps.TIME_DOMAIN_DEVICE_EXT' +-- . If an overflow occurs, the timestamp +-- value /must/ wrap back to zero. -- -- Note -- --- An example of such a comparison is subtracting an older timestamp from a --- newer one to determine the execution time of a sequence of commands. +-- Comparisons between timestamps should be done between timestamps where +-- they are guaranteed to not decrease. For example, subtracting an older +-- timestamp from a newer one to determine the execution time of a sequence +-- of commands is only a reliable measurement if the two timestamp writes +-- were performed in the same submission, or if the writes were performed +-- on the same logical device and @VK_EXT_calibrated_timestamps@ is +-- enabled. -- -- If 'cmdWriteTimestamp2' is called while executing a render pass instance -- that has multiview enabled, the timestamp uses N consecutive query @@ -1333,14 +1373,14 @@ foreign import ccall -- - #VUID-vkCmdWriteTimestamp2-stage-04957# If the -- -- feature is not enabled, @stage@ /must/ not contain --- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI' +-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI' -- -- - #VUID-vkCmdWriteTimestamp2-stage-04995# If the -- -- feature is not enabled, @stage@ /must/ not contain -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI' -- --- - #VUID-vkCmdWriteTimestamp2-rayTracingPipeline-07946# If neither the +-- - #VUID-vkCmdWriteTimestamp2-stage-07946# If neither the -- -- extension or -- @@ -1362,9 +1402,6 @@ foreign import ccall -- been created with a @queryType@ of -- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_TIMESTAMP' -- --- - #VUID-vkCmdWriteTimestamp2-queryPool-03862# The query identified by --- @queryPool@ and @query@ /must/ be /unavailable/ --- -- - #VUID-vkCmdWriteTimestamp2-timestampValidBits-03863# The command -- pool’s queue family /must/ support a non-zero @timestampValidBits@ -- @@ -1372,7 +1409,7 @@ foreign import ccall -- the number of queries in @queryPool@ -- -- - #VUID-vkCmdWriteTimestamp2-None-03864# All queries used by the --- command /must/ be unavailable +-- command /must/ be /unavailable/ -- -- - #VUID-vkCmdWriteTimestamp2-query-03865# If 'cmdWriteTimestamp2' is -- called within a render pass instance, the sum of @query@ and the @@ -1530,14 +1567,14 @@ cmdWriteTimestamp2 commandBuffer stage queryPool query = liftIO $ do -- - #VUID-VkMemoryBarrier2-srcStageMask-04957# If the -- -- feature is not enabled, @srcStageMask@ /must/ not contain --- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI' +-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI' -- -- - #VUID-VkMemoryBarrier2-srcStageMask-04995# If the -- -- feature is not enabled, @srcStageMask@ /must/ not contain -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI' -- --- - #VUID-VkMemoryBarrier2-rayTracingPipeline-07946# If neither the +-- - #VUID-VkMemoryBarrier2-srcStageMask-07946# If neither the -- -- extension or -- @@ -1578,7 +1615,7 @@ cmdWriteTimestamp2 commandBuffer stage queryPool query = liftIO $ do -- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_INPUT_ATTACHMENT_READ_BIT', -- @srcStageMask@ /must/ include -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT', --- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI', +-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI', -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT', -- or -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT' @@ -1694,8 +1731,8 @@ cmdWriteTimestamp2 commandBuffer stage queryPool query = liftIO $ do -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_CLEAR_BIT', -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_TRANSFER_BIT', -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR', --- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR', -- or +-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR', -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT' -- -- - #VUID-VkMemoryBarrier2-srcAccessMask-03916# If @srcAccessMask@ @@ -1925,14 +1962,14 @@ cmdWriteTimestamp2 commandBuffer stage queryPool query = liftIO $ do -- - #VUID-VkMemoryBarrier2-dstStageMask-04957# If the -- -- feature is not enabled, @dstStageMask@ /must/ not contain --- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI' +-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI' -- -- - #VUID-VkMemoryBarrier2-dstStageMask-04995# If the -- -- feature is not enabled, @dstStageMask@ /must/ not contain -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI' -- --- - #VUID-VkMemoryBarrier2-rayTracingPipeline-07946# If neither the +-- - #VUID-VkMemoryBarrier2-dstStageMask-07946# If neither the -- -- extension or -- @@ -1973,7 +2010,7 @@ cmdWriteTimestamp2 commandBuffer stage queryPool query = liftIO $ do -- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_INPUT_ATTACHMENT_READ_BIT', -- @dstStageMask@ /must/ include -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT', --- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI', +-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI', -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT', -- or -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT' @@ -2089,8 +2126,8 @@ cmdWriteTimestamp2 commandBuffer stage queryPool query = liftIO $ do -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_CLEAR_BIT', -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_TRANSFER_BIT', -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR', --- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR', -- or +-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR', -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT' -- -- - #VUID-VkMemoryBarrier2-dstAccessMask-03916# If @dstAccessMask@ @@ -2500,14 +2537,14 @@ instance Zero MemoryBarrier2 where -- - #VUID-VkImageMemoryBarrier2-srcStageMask-04957# If the -- -- feature is not enabled, @srcStageMask@ /must/ not contain --- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI' +-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI' -- -- - #VUID-VkImageMemoryBarrier2-srcStageMask-04995# If the -- -- feature is not enabled, @srcStageMask@ /must/ not contain -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI' -- --- - #VUID-VkImageMemoryBarrier2-rayTracingPipeline-07946# If neither the +-- - #VUID-VkImageMemoryBarrier2-srcStageMask-07946# If neither the -- -- extension or -- @@ -2548,7 +2585,7 @@ instance Zero MemoryBarrier2 where -- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_INPUT_ATTACHMENT_READ_BIT', -- @srcStageMask@ /must/ include -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT', --- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI', +-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI', -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT', -- or -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT' @@ -2664,8 +2701,8 @@ instance Zero MemoryBarrier2 where -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_CLEAR_BIT', -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_TRANSFER_BIT', -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR', --- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR', -- or +-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR', -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT' -- -- - #VUID-VkImageMemoryBarrier2-srcAccessMask-03916# If @srcAccessMask@ @@ -2895,14 +2932,14 @@ instance Zero MemoryBarrier2 where -- - #VUID-VkImageMemoryBarrier2-dstStageMask-04957# If the -- -- feature is not enabled, @dstStageMask@ /must/ not contain --- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI' +-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI' -- -- - #VUID-VkImageMemoryBarrier2-dstStageMask-04995# If the -- -- feature is not enabled, @dstStageMask@ /must/ not contain -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI' -- --- - #VUID-VkImageMemoryBarrier2-rayTracingPipeline-07946# If neither the +-- - #VUID-VkImageMemoryBarrier2-dstStageMask-07946# If neither the -- -- extension or -- @@ -2943,7 +2980,7 @@ instance Zero MemoryBarrier2 where -- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_INPUT_ATTACHMENT_READ_BIT', -- @dstStageMask@ /must/ include -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT', --- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI', +-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI', -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT', -- or -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT' @@ -3059,8 +3096,8 @@ instance Zero MemoryBarrier2 where -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_CLEAR_BIT', -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_TRANSFER_BIT', -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR', --- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR', -- or +-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR', -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT' -- -- - #VUID-VkImageMemoryBarrier2-dstAccessMask-03916# If @dstAccessMask@ @@ -3437,29 +3474,55 @@ instance Zero MemoryBarrier2 where -- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR' -- set -- --- - #VUID-VkImageMemoryBarrier2-srcQueueFamilyIndex-04070# If --- @srcQueueFamilyIndex@ is not equal to @dstQueueFamilyIndex@, at --- least one /must/ not be a special queue family reserved for external --- memory ownership transfers, as described in --- --- --- - #VUID-VkImageMemoryBarrier2-image-04071# If @image@ was created with +-- - #VUID-VkImageMemoryBarrier2-image-09117# If @image@ was created with -- a sharing mode of --- 'Vulkan.Core10.Enums.SharingMode.SHARING_MODE_CONCURRENT', --- @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ are not equal, and --- one of @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ is one of the --- special queue family values reserved for external memory transfers, --- the other /must/ be --- 'Vulkan.Core10.APIConstants.QUEUE_FAMILY_IGNORED' --- --- - #VUID-VkImageMemoryBarrier2-image-04072# If @image@ was created with +-- 'Vulkan.Core10.Enums.SharingMode.SHARING_MODE_EXCLUSIVE', and +-- @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ are not equal, +-- @srcQueueFamilyIndex@ /must/ be +-- 'Vulkan.Core10.APIConstants.QUEUE_FAMILY_EXTERNAL', +-- 'Vulkan.Core10.APIConstants.QUEUE_FAMILY_FOREIGN_EXT', or a valid +-- queue family +-- +-- - #VUID-VkImageMemoryBarrier2-image-09118# If @image@ was created with -- a sharing mode of -- 'Vulkan.Core10.Enums.SharingMode.SHARING_MODE_EXCLUSIVE', and -- @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ are not equal, --- @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ /must/ both be valid --- queue families, or one of the special queue family values reserved --- for external memory transfers, as described in --- +-- @dstQueueFamilyIndex@ /must/ be +-- 'Vulkan.Core10.APIConstants.QUEUE_FAMILY_EXTERNAL', +-- 'Vulkan.Core10.APIConstants.QUEUE_FAMILY_FOREIGN_EXT', or a valid +-- queue family +-- +-- - #VUID-VkImageMemoryBarrier2-srcQueueFamilyIndex-04070# If +-- @srcQueueFamilyIndex@ is not equal to @dstQueueFamilyIndex@, at +-- least one of @srcQueueFamilyIndex@ or @dstQueueFamilyIndex@ /must/ +-- not be 'Vulkan.Core10.APIConstants.QUEUE_FAMILY_EXTERNAL' or +-- 'Vulkan.Core10.APIConstants.QUEUE_FAMILY_FOREIGN_EXT' +-- +-- - #VUID-VkImageMemoryBarrier2-None-09119# If the +-- +-- extension is not enabled, and the value of +-- 'Vulkan.Core10.DeviceInitialization.ApplicationInfo'::@apiVersion@ +-- used to create the 'Vulkan.Core10.Handles.Instance' is not greater +-- than or equal to Version 1.1, @srcQueueFamilyIndex@ /must/ not be +-- 'Vulkan.Core10.APIConstants.QUEUE_FAMILY_EXTERNAL' +-- +-- - #VUID-VkImageMemoryBarrier2-None-09120# If the +-- +-- extension is not enabled, and the value of +-- 'Vulkan.Core10.DeviceInitialization.ApplicationInfo'::@apiVersion@ +-- used to create the 'Vulkan.Core10.Handles.Instance' is not greater +-- than or equal to Version 1.1, @dstQueueFamilyIndex@ /must/ not be +-- 'Vulkan.Core10.APIConstants.QUEUE_FAMILY_EXTERNAL' +-- +-- - #VUID-VkImageMemoryBarrier2-srcQueueFamilyIndex-09121# If the +-- +-- extension is not enabled @srcQueueFamilyIndex@ /must/ not be +-- 'Vulkan.Core10.APIConstants.QUEUE_FAMILY_FOREIGN_EXT' +-- +-- - #VUID-VkImageMemoryBarrier2-dstQueueFamilyIndex-09122# If the +-- +-- extension is not enabled @dstQueueFamilyIndex@ /must/ not be +-- 'Vulkan.Core10.APIConstants.QUEUE_FAMILY_FOREIGN_EXT' -- -- - #VUID-VkImageMemoryBarrier2-srcQueueFamilyIndex-07120# If -- @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ define a @@ -3567,9 +3630,14 @@ instance Zero MemoryBarrier2 where -- then it /must/ be bound completely and contiguously to a single -- 'Vulkan.Core10.Handles.DeviceMemory' object -- --- - #VUID-VkImageMemoryBarrier2-image-01671# If @image@ has a --- single-plane color format or is not /disjoint/, then the --- @aspectMask@ member of @subresourceRange@ /must/ be +-- - #VUID-VkImageMemoryBarrier2-image-09241# If @image@ has a color +-- format that is single-plane, then the @aspectMask@ member of +-- @subresourceRange@ /must/ be +-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT' +-- +-- - #VUID-VkImageMemoryBarrier2-image-09242# If @image@ has a color +-- format and is not /disjoint/, then the @aspectMask@ member of +-- @subresourceRange@ /must/ be -- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT' -- -- - #VUID-VkImageMemoryBarrier2-image-01672# If @image@ has a @@ -3577,7 +3645,8 @@ instance Zero MemoryBarrier2 where -- @aspectMask@ member of @subresourceRange@ /must/ include at least -- one -- --- or 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT' +-- bit or +-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT' -- -- - #VUID-VkImageMemoryBarrier2-image-03319# If @image@ has a -- depth\/stencil format with both depth and stencil and the @@ -3633,8 +3702,11 @@ instance Zero MemoryBarrier2 where -- - #VUID-VkImageMemoryBarrier2-sType-sType# @sType@ /must/ be -- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2' -- --- - #VUID-VkImageMemoryBarrier2-pNext-pNext# @pNext@ /must/ be @NULL@ or --- a pointer to a valid instance of +-- - #VUID-VkImageMemoryBarrier2-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_external_memory_acquire_unmodified.ExternalMemoryAcquireUnmodifiedEXT' +-- or -- 'Vulkan.Extensions.VK_EXT_sample_locations.SampleLocationsInfoEXT' -- -- - #VUID-VkImageMemoryBarrier2-sType-unique# The @sType@ value of each @@ -3733,6 +3805,7 @@ instance Extensible ImageMemoryBarrier2 where getNext ImageMemoryBarrier2{..} = next extends :: forall e b proxy. Typeable e => proxy e -> (Extends ImageMemoryBarrier2 e => b) -> Maybe b extends _ f + | Just Refl <- eqT @e @ExternalMemoryAcquireUnmodifiedEXT = Just f | Just Refl <- eqT @e @SampleLocationsInfoEXT = Just f | otherwise = Nothing @@ -3917,15 +3990,14 @@ instance es ~ '[] => Zero (ImageMemoryBarrier2 es) where -- - #VUID-VkBufferMemoryBarrier2-srcStageMask-04957# If the -- -- feature is not enabled, @srcStageMask@ /must/ not contain --- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI' +-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI' -- -- - #VUID-VkBufferMemoryBarrier2-srcStageMask-04995# If the -- -- feature is not enabled, @srcStageMask@ /must/ not contain -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI' -- --- - #VUID-VkBufferMemoryBarrier2-rayTracingPipeline-07946# If neither --- the +-- - #VUID-VkBufferMemoryBarrier2-srcStageMask-07946# If neither the -- -- extension or -- @@ -3966,7 +4038,7 @@ instance es ~ '[] => Zero (ImageMemoryBarrier2 es) where -- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_INPUT_ATTACHMENT_READ_BIT', -- @srcStageMask@ /must/ include -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT', --- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI', +-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI', -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT', -- or -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT' @@ -4082,8 +4154,8 @@ instance es ~ '[] => Zero (ImageMemoryBarrier2 es) where -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_CLEAR_BIT', -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_TRANSFER_BIT', -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR', --- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR', -- or +-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR', -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT' -- -- - #VUID-VkBufferMemoryBarrier2-srcAccessMask-03916# If @srcAccessMask@ @@ -4313,15 +4385,14 @@ instance es ~ '[] => Zero (ImageMemoryBarrier2 es) where -- - #VUID-VkBufferMemoryBarrier2-dstStageMask-04957# If the -- -- feature is not enabled, @dstStageMask@ /must/ not contain --- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI' +-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI' -- -- - #VUID-VkBufferMemoryBarrier2-dstStageMask-04995# If the -- -- feature is not enabled, @dstStageMask@ /must/ not contain -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI' -- --- - #VUID-VkBufferMemoryBarrier2-rayTracingPipeline-07946# If neither --- the +-- - #VUID-VkBufferMemoryBarrier2-dstStageMask-07946# If neither the -- -- extension or -- @@ -4362,7 +4433,7 @@ instance es ~ '[] => Zero (ImageMemoryBarrier2 es) where -- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_INPUT_ATTACHMENT_READ_BIT', -- @dstStageMask@ /must/ include -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT', --- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI', +-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI', -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_GRAPHICS_BIT', -- or -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT' @@ -4478,8 +4549,8 @@ instance es ~ '[] => Zero (ImageMemoryBarrier2 es) where -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_CLEAR_BIT', -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_TRANSFER_BIT', -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR', --- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR', -- or +-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR', -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ALL_COMMANDS_BIT' -- -- - #VUID-VkBufferMemoryBarrier2-dstAccessMask-03916# If @dstAccessMask@ @@ -4677,29 +4748,55 @@ instance es ~ '[] => Zero (ImageMemoryBarrier2 es) where -- then it /must/ be bound completely and contiguously to a single -- 'Vulkan.Core10.Handles.DeviceMemory' object -- --- - #VUID-VkBufferMemoryBarrier2-srcQueueFamilyIndex-04087# If --- @srcQueueFamilyIndex@ is not equal to @dstQueueFamilyIndex@, at --- least one /must/ not be a special queue family reserved for external --- memory ownership transfers, as described in --- --- --- - #VUID-VkBufferMemoryBarrier2-buffer-04088# If @buffer@ was created +-- - #VUID-VkBufferMemoryBarrier2-buffer-09095# If @buffer@ was created -- with a sharing mode of --- 'Vulkan.Core10.Enums.SharingMode.SHARING_MODE_CONCURRENT', --- @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ are not equal, and --- one of @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ is one of the --- special queue family values reserved for external memory transfers, --- the other /must/ be --- 'Vulkan.Core10.APIConstants.QUEUE_FAMILY_IGNORED' --- --- - #VUID-VkBufferMemoryBarrier2-buffer-04089# If @buffer@ was created +-- 'Vulkan.Core10.Enums.SharingMode.SHARING_MODE_EXCLUSIVE', and +-- @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ are not equal, +-- @srcQueueFamilyIndex@ /must/ be +-- 'Vulkan.Core10.APIConstants.QUEUE_FAMILY_EXTERNAL', +-- 'Vulkan.Core10.APIConstants.QUEUE_FAMILY_FOREIGN_EXT', or a valid +-- queue family +-- +-- - #VUID-VkBufferMemoryBarrier2-buffer-09096# If @buffer@ was created -- with a sharing mode of -- 'Vulkan.Core10.Enums.SharingMode.SHARING_MODE_EXCLUSIVE', and -- @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ are not equal, --- @srcQueueFamilyIndex@ and @dstQueueFamilyIndex@ /must/ both be valid --- queue families, or one of the special queue family values reserved --- for external memory transfers, as described in --- +-- @dstQueueFamilyIndex@ /must/ be +-- 'Vulkan.Core10.APIConstants.QUEUE_FAMILY_EXTERNAL', +-- 'Vulkan.Core10.APIConstants.QUEUE_FAMILY_FOREIGN_EXT', or a valid +-- queue family +-- +-- - #VUID-VkBufferMemoryBarrier2-srcQueueFamilyIndex-04087# If +-- @srcQueueFamilyIndex@ is not equal to @dstQueueFamilyIndex@, at +-- least one of @srcQueueFamilyIndex@ or @dstQueueFamilyIndex@ /must/ +-- not be 'Vulkan.Core10.APIConstants.QUEUE_FAMILY_EXTERNAL' or +-- 'Vulkan.Core10.APIConstants.QUEUE_FAMILY_FOREIGN_EXT' +-- +-- - #VUID-VkBufferMemoryBarrier2-None-09097# If the +-- +-- extension is not enabled, and the value of +-- 'Vulkan.Core10.DeviceInitialization.ApplicationInfo'::@apiVersion@ +-- used to create the 'Vulkan.Core10.Handles.Instance' is not greater +-- than or equal to Version 1.1, @srcQueueFamilyIndex@ /must/ not be +-- 'Vulkan.Core10.APIConstants.QUEUE_FAMILY_EXTERNAL' +-- +-- - #VUID-VkBufferMemoryBarrier2-None-09098# If the +-- +-- extension is not enabled, and the value of +-- 'Vulkan.Core10.DeviceInitialization.ApplicationInfo'::@apiVersion@ +-- used to create the 'Vulkan.Core10.Handles.Instance' is not greater +-- than or equal to Version 1.1, @dstQueueFamilyIndex@ /must/ not be +-- 'Vulkan.Core10.APIConstants.QUEUE_FAMILY_EXTERNAL' +-- +-- - #VUID-VkBufferMemoryBarrier2-srcQueueFamilyIndex-09099# If the +-- +-- extension is not enabled @srcQueueFamilyIndex@ /must/ not be +-- 'Vulkan.Core10.APIConstants.QUEUE_FAMILY_FOREIGN_EXT' +-- +-- - #VUID-VkBufferMemoryBarrier2-dstQueueFamilyIndex-09100# If the +-- +-- extension is not enabled @dstQueueFamilyIndex@ /must/ not be +-- 'Vulkan.Core10.APIConstants.QUEUE_FAMILY_FOREIGN_EXT' -- -- - #VUID-VkBufferMemoryBarrier2-srcStageMask-03851# If either -- @srcStageMask@ or @dstStageMask@ includes @@ -4712,6 +4809,11 @@ instance es ~ '[] => Zero (ImageMemoryBarrier2 es) where -- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2' -- -- - #VUID-VkBufferMemoryBarrier2-pNext-pNext# @pNext@ /must/ be @NULL@ +-- or a pointer to a valid instance of +-- 'Vulkan.Extensions.VK_EXT_external_memory_acquire_unmodified.ExternalMemoryAcquireUnmodifiedEXT' +-- +-- - #VUID-VkBufferMemoryBarrier2-sType-unique# The @sType@ value of each +-- struct in the @pNext@ chain /must/ be unique -- -- - #VUID-VkBufferMemoryBarrier2-srcStageMask-parameter# @srcStageMask@ -- /must/ be a valid combination of @@ -4743,8 +4845,10 @@ instance es ~ '[] => Zero (ImageMemoryBarrier2 es) where -- 'Vulkan.Core10.FundamentalTypes.DeviceSize', -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlags2', -- 'Vulkan.Core10.Enums.StructureType.StructureType' -data BufferMemoryBarrier2 = BufferMemoryBarrier2 - { -- | @srcStageMask@ is a +data BufferMemoryBarrier2 (es :: [Type]) = BufferMemoryBarrier2 + { -- | @pNext@ is @NULL@ or a pointer to a structure extending this structure. + next :: Chain es + , -- | @srcStageMask@ is a -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlags2' mask of -- pipeline stages to be included in the -- . @@ -4780,41 +4884,56 @@ data BufferMemoryBarrier2 = BufferMemoryBarrier2 -- from @offset@ to the end of the buffer. size :: DeviceSize } - deriving (Typeable, Eq) + deriving (Typeable) #if defined(GENERIC_INSTANCES) -deriving instance Generic (BufferMemoryBarrier2) +deriving instance Generic (BufferMemoryBarrier2 (es :: [Type])) #endif -deriving instance Show BufferMemoryBarrier2 +deriving instance Show (Chain es) => Show (BufferMemoryBarrier2 es) + +instance Extensible BufferMemoryBarrier2 where + extensibleTypeName = "BufferMemoryBarrier2" + setNext BufferMemoryBarrier2{..} next' = BufferMemoryBarrier2{next = next', ..} + getNext BufferMemoryBarrier2{..} = next + extends :: forall e b proxy. Typeable e => proxy e -> (Extends BufferMemoryBarrier2 e => b) -> Maybe b + extends _ f + | Just Refl <- eqT @e @ExternalMemoryAcquireUnmodifiedEXT = Just f + | otherwise = Nothing -instance ToCStruct BufferMemoryBarrier2 where +instance ( Extendss BufferMemoryBarrier2 es + , PokeChain es ) => ToCStruct (BufferMemoryBarrier2 es) where withCStruct x f = allocaBytes 80 $ \p -> pokeCStruct p x (f p) - pokeCStruct p BufferMemoryBarrier2{..} f = do - poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2) - poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr) - poke ((p `plusPtr` 16 :: Ptr PipelineStageFlags2)) (srcStageMask) - poke ((p `plusPtr` 24 :: Ptr AccessFlags2)) (srcAccessMask) - poke ((p `plusPtr` 32 :: Ptr PipelineStageFlags2)) (dstStageMask) - poke ((p `plusPtr` 40 :: Ptr AccessFlags2)) (dstAccessMask) - poke ((p `plusPtr` 48 :: Ptr Word32)) (srcQueueFamilyIndex) - poke ((p `plusPtr` 52 :: Ptr Word32)) (dstQueueFamilyIndex) - poke ((p `plusPtr` 56 :: Ptr Buffer)) (buffer) - poke ((p `plusPtr` 64 :: Ptr DeviceSize)) (offset) - poke ((p `plusPtr` 72 :: Ptr DeviceSize)) (size) - f + pokeCStruct p BufferMemoryBarrier2{..} f = evalContT $ do + lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2) + pNext'' <- fmap castPtr . ContT $ withChain (next) + lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext'' + lift $ poke ((p `plusPtr` 16 :: Ptr PipelineStageFlags2)) (srcStageMask) + lift $ poke ((p `plusPtr` 24 :: Ptr AccessFlags2)) (srcAccessMask) + lift $ poke ((p `plusPtr` 32 :: Ptr PipelineStageFlags2)) (dstStageMask) + lift $ poke ((p `plusPtr` 40 :: Ptr AccessFlags2)) (dstAccessMask) + lift $ poke ((p `plusPtr` 48 :: Ptr Word32)) (srcQueueFamilyIndex) + lift $ poke ((p `plusPtr` 52 :: Ptr Word32)) (dstQueueFamilyIndex) + lift $ poke ((p `plusPtr` 56 :: Ptr Buffer)) (buffer) + lift $ poke ((p `plusPtr` 64 :: Ptr DeviceSize)) (offset) + lift $ poke ((p `plusPtr` 72 :: Ptr DeviceSize)) (size) + lift $ f cStructSize = 80 cStructAlignment = 8 - pokeZeroCStruct p f = do - poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2) - poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr) - poke ((p `plusPtr` 48 :: Ptr Word32)) (zero) - poke ((p `plusPtr` 52 :: Ptr Word32)) (zero) - poke ((p `plusPtr` 56 :: Ptr Buffer)) (zero) - poke ((p `plusPtr` 64 :: Ptr DeviceSize)) (zero) - poke ((p `plusPtr` 72 :: Ptr DeviceSize)) (zero) - f + pokeZeroCStruct p f = evalContT $ do + lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2) + pNext' <- fmap castPtr . ContT $ withZeroChain @es + lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext' + lift $ poke ((p `plusPtr` 48 :: Ptr Word32)) (zero) + lift $ poke ((p `plusPtr` 52 :: Ptr Word32)) (zero) + lift $ poke ((p `plusPtr` 56 :: Ptr Buffer)) (zero) + lift $ poke ((p `plusPtr` 64 :: Ptr DeviceSize)) (zero) + lift $ poke ((p `plusPtr` 72 :: Ptr DeviceSize)) (zero) + lift $ f -instance FromCStruct BufferMemoryBarrier2 where +instance ( Extendss BufferMemoryBarrier2 es + , PeekChain es ) => FromCStruct (BufferMemoryBarrier2 es) where peekCStruct p = do + pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ()))) + next <- peekChain (castPtr pNext) srcStageMask <- peek @PipelineStageFlags2 ((p `plusPtr` 16 :: Ptr PipelineStageFlags2)) srcAccessMask <- peek @AccessFlags2 ((p `plusPtr` 24 :: Ptr AccessFlags2)) dstStageMask <- peek @PipelineStageFlags2 ((p `plusPtr` 32 :: Ptr PipelineStageFlags2)) @@ -4825,6 +4944,7 @@ instance FromCStruct BufferMemoryBarrier2 where offset <- peek @DeviceSize ((p `plusPtr` 64 :: Ptr DeviceSize)) size <- peek @DeviceSize ((p `plusPtr` 72 :: Ptr DeviceSize)) pure $ BufferMemoryBarrier2 + next srcStageMask srcAccessMask dstStageMask @@ -4835,14 +4955,9 @@ instance FromCStruct BufferMemoryBarrier2 where offset size -instance Storable BufferMemoryBarrier2 where - sizeOf ~_ = 80 - alignment ~_ = 8 - peek = peekCStruct - poke ptr poked = pokeCStruct ptr poked (pure ()) - -instance Zero BufferMemoryBarrier2 where +instance es ~ '[] => Zero (BufferMemoryBarrier2 es) where zero = BufferMemoryBarrier2 + () zero zero zero @@ -4921,7 +5036,7 @@ data DependencyInfo = DependencyInfo , -- | @pBufferMemoryBarriers@ is a pointer to an array of -- 'BufferMemoryBarrier2' structures defining memory dependencies between -- buffer ranges. - bufferMemoryBarriers :: Vector BufferMemoryBarrier2 + bufferMemoryBarriers :: Vector (SomeStruct BufferMemoryBarrier2) , -- | @pImageMemoryBarriers@ is a pointer to an array of 'ImageMemoryBarrier2' -- structures defining memory dependencies between image subresources. imageMemoryBarriers :: Vector (SomeStruct ImageMemoryBarrier2) @@ -4943,9 +5058,9 @@ instance ToCStruct DependencyInfo where lift $ Data.Vector.imapM_ (\i e -> poke (pPMemoryBarriers' `plusPtr` (48 * (i)) :: Ptr MemoryBarrier2) (e)) (memoryBarriers) lift $ poke ((p `plusPtr` 24 :: Ptr (Ptr MemoryBarrier2))) (pPMemoryBarriers') lift $ poke ((p `plusPtr` 32 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (bufferMemoryBarriers)) :: Word32)) - pPBufferMemoryBarriers' <- ContT $ allocaBytes @BufferMemoryBarrier2 ((Data.Vector.length (bufferMemoryBarriers)) * 80) - lift $ Data.Vector.imapM_ (\i e -> poke (pPBufferMemoryBarriers' `plusPtr` (80 * (i)) :: Ptr BufferMemoryBarrier2) (e)) (bufferMemoryBarriers) - lift $ poke ((p `plusPtr` 40 :: Ptr (Ptr BufferMemoryBarrier2))) (pPBufferMemoryBarriers') + pPBufferMemoryBarriers' <- ContT $ allocaBytes @(BufferMemoryBarrier2 _) ((Data.Vector.length (bufferMemoryBarriers)) * 80) + Data.Vector.imapM_ (\i e -> ContT $ pokeSomeCStruct (forgetExtensions (pPBufferMemoryBarriers' `plusPtr` (80 * (i)) :: Ptr (BufferMemoryBarrier2 _))) (e) . ($ ())) (bufferMemoryBarriers) + lift $ poke ((p `plusPtr` 40 :: Ptr (Ptr (BufferMemoryBarrier2 _)))) (pPBufferMemoryBarriers') lift $ poke ((p `plusPtr` 48 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (imageMemoryBarriers)) :: Word32)) pPImageMemoryBarriers' <- ContT $ allocaBytes @(ImageMemoryBarrier2 _) ((Data.Vector.length (imageMemoryBarriers)) * 96) Data.Vector.imapM_ (\i e -> ContT $ pokeSomeCStruct (forgetExtensions (pPImageMemoryBarriers' `plusPtr` (96 * (i)) :: Ptr (ImageMemoryBarrier2 _))) (e) . ($ ())) (imageMemoryBarriers) @@ -4965,8 +5080,8 @@ instance FromCStruct DependencyInfo where pMemoryBarriers <- peek @(Ptr MemoryBarrier2) ((p `plusPtr` 24 :: Ptr (Ptr MemoryBarrier2))) pMemoryBarriers' <- generateM (fromIntegral memoryBarrierCount) (\i -> peekCStruct @MemoryBarrier2 ((pMemoryBarriers `advancePtrBytes` (48 * (i)) :: Ptr MemoryBarrier2))) bufferMemoryBarrierCount <- peek @Word32 ((p `plusPtr` 32 :: Ptr Word32)) - pBufferMemoryBarriers <- peek @(Ptr BufferMemoryBarrier2) ((p `plusPtr` 40 :: Ptr (Ptr BufferMemoryBarrier2))) - pBufferMemoryBarriers' <- generateM (fromIntegral bufferMemoryBarrierCount) (\i -> peekCStruct @BufferMemoryBarrier2 ((pBufferMemoryBarriers `advancePtrBytes` (80 * (i)) :: Ptr BufferMemoryBarrier2))) + pBufferMemoryBarriers <- peek @(Ptr (BufferMemoryBarrier2 _)) ((p `plusPtr` 40 :: Ptr (Ptr (BufferMemoryBarrier2 _)))) + pBufferMemoryBarriers' <- generateM (fromIntegral bufferMemoryBarrierCount) (\i -> peekSomeCStruct (forgetExtensions ((pBufferMemoryBarriers `advancePtrBytes` (80 * (i)) :: Ptr (BufferMemoryBarrier2 _))))) imageMemoryBarrierCount <- peek @Word32 ((p `plusPtr` 48 :: Ptr Word32)) pImageMemoryBarriers <- peek @(Ptr (ImageMemoryBarrier2 _)) ((p `plusPtr` 56 :: Ptr (Ptr (ImageMemoryBarrier2 _)))) pImageMemoryBarriers' <- generateM (fromIntegral imageMemoryBarrierCount) (\i -> peekSomeCStruct (forgetExtensions ((pImageMemoryBarriers `advancePtrBytes` (96 * (i)) :: Ptr (ImageMemoryBarrier2 _))))) @@ -5041,14 +5156,14 @@ instance Zero DependencyInfo where -- - #VUID-VkSemaphoreSubmitInfo-stageMask-04957# If the -- -- feature is not enabled, @stageMask@ /must/ not contain --- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI' +-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI' -- -- - #VUID-VkSemaphoreSubmitInfo-stageMask-04995# If the -- -- feature is not enabled, @stageMask@ /must/ not contain -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI' -- --- - #VUID-VkSemaphoreSubmitInfo-rayTracingPipeline-07946# If neither the +-- - #VUID-VkSemaphoreSubmitInfo-stageMask-07946# If neither the -- -- extension or -- @@ -5323,6 +5438,8 @@ instance Zero CommandBufferSubmitInfo where -- - #VUID-VkSubmitInfo2-pNext-pNext# Each @pNext@ member of any -- structure (including this one) in the @pNext@ chain /must/ be either -- @NULL@ or a pointer to a valid instance of +-- 'Vulkan.Extensions.VK_EXT_frame_boundary.FrameBoundaryEXT', +-- 'Vulkan.Extensions.VK_NV_low_latency2.LatencySubmissionPresentIdNV', -- 'Vulkan.Extensions.VK_KHR_performance_query.PerformanceQuerySubmitInfoKHR', -- 'Vulkan.Extensions.VK_KHR_win32_keyed_mutex.Win32KeyedMutexAcquireReleaseInfoKHR', -- or @@ -5389,6 +5506,8 @@ instance Extensible SubmitInfo2 where getNext SubmitInfo2{..} = next extends :: forall e b proxy. Typeable e => proxy e -> (Extends SubmitInfo2 e => b) -> Maybe b extends _ f + | Just Refl <- eqT @e @LatencySubmissionPresentIdNV = Just f + | Just Refl <- eqT @e @FrameBoundaryEXT = Just f | Just Refl <- eqT @e @PerformanceQuerySubmitInfoKHR = Just f | Just Refl <- eqT @e @Win32KeyedMutexAcquireReleaseInfoKHR = Just f | Just Refl <- eqT @e @Win32KeyedMutexAcquireReleaseInfoNV = Just f diff --git a/src/Vulkan/Core13/Promoted_From_VK_KHR_synchronization2.hs-boot b/src/Vulkan/Core13/Promoted_From_VK_KHR_synchronization2.hs-boot index 9b4e9c195..ba7ca2d1d 100644 --- a/src/Vulkan/Core13/Promoted_From_VK_KHR_synchronization2.hs-boot +++ b/src/Vulkan/Core13/Promoted_From_VK_KHR_synchronization2.hs-boot @@ -17,12 +17,15 @@ import {-# SOURCE #-} Vulkan.CStruct.Extends (Chain) import {-# SOURCE #-} Vulkan.CStruct.Extends (Extendss) import {-# SOURCE #-} Vulkan.CStruct.Extends (PeekChain) import {-# SOURCE #-} Vulkan.CStruct.Extends (PokeChain) -data BufferMemoryBarrier2 +type role BufferMemoryBarrier2 nominal +data BufferMemoryBarrier2 (es :: [Type]) -instance ToCStruct BufferMemoryBarrier2 -instance Show BufferMemoryBarrier2 +instance ( Extendss BufferMemoryBarrier2 es + , PokeChain es ) => ToCStruct (BufferMemoryBarrier2 es) +instance Show (Chain es) => Show (BufferMemoryBarrier2 es) -instance FromCStruct BufferMemoryBarrier2 +instance ( Extendss BufferMemoryBarrier2 es + , PeekChain es ) => FromCStruct (BufferMemoryBarrier2 es) data CommandBufferSubmitInfo diff --git a/src/Vulkan/Dynamic.hs b/src/Vulkan/Dynamic.hs index 0ab60ce5e..f3d4aded3 100644 --- a/src/Vulkan/Dynamic.hs +++ b/src/Vulkan/Dynamic.hs @@ -90,6 +90,7 @@ import {-# SOURCE #-} Vulkan.Core10.Enums.CompareOp (CompareOp) import {-# SOURCE #-} Vulkan.Core10.Pipeline (ComputePipelineCreateInfo) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_conditional_rendering (ConditionalRenderingBeginInfoEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_conservative_rasterization (ConservativeRasterizationModeEXT) +import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_cooperative_matrix (CooperativeMatrixPropertiesKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_cooperative_matrix (CooperativeMatrixPropertiesNV) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_acceleration_structure (CopyAccelerationStructureInfoKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_acceleration_structure (CopyAccelerationStructureModeKHR) @@ -99,7 +100,10 @@ import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2 (CopyBuf import {-# SOURCE #-} Vulkan.Core10.DescriptorSet (CopyDescriptorSet) import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2 (CopyImageInfo2) import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2 (CopyImageToBufferInfo2) +import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_host_image_copy (CopyImageToImageInfoEXT) +import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_host_image_copy (CopyImageToMemoryInfoEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_acceleration_structure (CopyMemoryToAccelerationStructureInfoKHR) +import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_host_image_copy (CopyMemoryToImageInfoEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_opacity_micromap (CopyMemoryToMicromapInfoEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_opacity_micromap (CopyMicromapInfoEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_opacity_micromap (CopyMicromapToMemoryInfoEXT) @@ -130,6 +134,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_NV_memory_decompression (DecompressMe import {-# SOURCE #-} Vulkan.Extensions.Handles (DeferredOperationKHR) import {-# SOURCE #-} Vulkan.Core10.Enums.DependencyFlagBits (DependencyFlags) import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_synchronization2 (DependencyInfo) +import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_depth_bias_control (DepthBiasInfoEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_descriptor_buffer (DescriptorBufferBindingInfoEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_descriptor_buffer (DescriptorGetInfoEXT) import {-# SOURCE #-} Vulkan.Core10.Handles (DescriptorPool) @@ -153,6 +158,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_device_fault (DeviceFaultInfoEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_swapchain (DeviceGroupPresentCapabilitiesKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_swapchain (DeviceGroupPresentModeFlagsKHR) import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_maintenance4 (DeviceImageMemoryRequirements) +import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_maintenance5 (DeviceImageSubresourceInfoKHR) import {-# SOURCE #-} Vulkan.Core10.Handles (DeviceMemory) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_buffer_device_address (DeviceMemoryOpaqueCaptureAddressInfo) import {-# SOURCE #-} Vulkan.Core11.Originally_Based_On_VK_KHR_protected_memory (DeviceQueueInfo2) @@ -160,6 +166,7 @@ import {-# SOURCE #-} Vulkan.Core10.FundamentalTypes (DeviceSize) import {-# SOURCE #-} Vulkan.Core10.Handles (Device_T) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_directfb_surface (DirectFBSurfaceCreateInfoEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_discard_rectangles (DiscardRectangleModeEXT) +import {-# SOURCE #-} Vulkan.Extensions.VK_AMDX_shader_enqueue (DispatchGraphCountInfoAMDX) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_xlib_surface (Display) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_display_control (DisplayEventInfoEXT) import {-# SOURCE #-} Vulkan.Extensions.Handles (DisplayKHR) @@ -178,6 +185,8 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_display (DisplayPropertiesKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_display (DisplaySurfaceCreateInfoKHR) import {-# SOURCE #-} Vulkan.Core10.Handles (Event) import {-# SOURCE #-} Vulkan.Core10.Event (EventCreateInfo) +import {-# SOURCE #-} Vulkan.Extensions.VK_AMDX_shader_enqueue (ExecutionGraphPipelineCreateInfoAMDX) +import {-# SOURCE #-} Vulkan.Extensions.VK_AMDX_shader_enqueue (ExecutionGraphPipelineScratchSizeAMDX) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_metal_objects (ExportMetalObjectsInfoEXT) import {-# SOURCE #-} Vulkan.Core10.ExtensionDiscovery (ExtensionProperties) import {-# SOURCE #-} Vulkan.Core10.FundamentalTypes (Extent2D) @@ -203,13 +212,16 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_NV_coverage_reduction_mode (Framebuff import {-# SOURCE #-} Vulkan.Core10.Enums.FrontFace (FrontFace) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_device_generated_commands (GeneratedCommandsInfoNV) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_device_generated_commands (GeneratedCommandsMemoryRequirementsInfoNV) +import {-# SOURCE #-} Vulkan.Extensions.VK_NV_low_latency2 (GetLatencyMarkerInfoNV) import {-# SOURCE #-} Vulkan.Core10.Pipeline (GraphicsPipelineCreateInfo) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_external_memory_win32 (HANDLE) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_hdr_metadata (HdrMetadataEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_headless_surface (HeadlessSurfaceCreateInfoEXT) +import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_host_image_copy (HostImageLayoutTransitionInfoEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_directfb_surface (IDirectFB) import {-# SOURCE #-} Vulkan.Extensions.VK_MVK_ios_surface (IOSSurfaceCreateInfoMVK) import {-# SOURCE #-} Vulkan.Core10.Handles (Image) +import {-# SOURCE #-} Vulkan.Core10.Enums.ImageAspectFlagBits (ImageAspectFlags) import {-# SOURCE #-} Vulkan.Core10.CommandBufferBuilding (ImageBlit) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_descriptor_buffer (ImageCaptureDescriptorDataInfoEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_FUCHSIA_buffer_collection (ImageConstraintsInfoFUCHSIA) @@ -226,7 +238,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_FUCHSIA_imagepipe_surface (ImagePipeS import {-# SOURCE #-} Vulkan.Core10.CommandBufferBuilding (ImageResolve) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2 (ImageSparseMemoryRequirementsInfo2) import {-# SOURCE #-} Vulkan.Core10.SparseResourceMemoryManagement (ImageSubresource) -import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_image_compression_control (ImageSubresource2EXT) +import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_maintenance5 (ImageSubresource2KHR) import {-# SOURCE #-} Vulkan.Core10.CommandBufferBuilding (ImageSubresourceLayers) import {-# SOURCE #-} Vulkan.Core10.ImageView (ImageSubresourceRange) import {-# SOURCE #-} Vulkan.Core10.Enums.ImageTiling (ImageTiling) @@ -247,6 +259,8 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_NV_device_generated_commands (Indirec import {-# SOURCE #-} Vulkan.Extensions.Handles (IndirectCommandsLayoutNV) import {-# SOURCE #-} Vulkan.Extensions.VK_INTEL_performance_query (InitializePerformanceApiInfoINTEL) import {-# SOURCE #-} Vulkan.Core10.Handles (Instance_T) +import {-# SOURCE #-} Vulkan.Extensions.VK_NV_low_latency2 (LatencySleepInfoNV) +import {-# SOURCE #-} Vulkan.Extensions.VK_NV_low_latency2 (LatencySleepModeInfoNV) import {-# SOURCE #-} Vulkan.Core10.LayerDiscovery (LayerProperties) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_line_rasterization (LineRasterizationModeEXT) import {-# SOURCE #-} Vulkan.Core10.Enums.LogicOp (LogicOp) @@ -285,6 +299,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_NV_optical_flow (OpticalFlowImageForm import {-# SOURCE #-} Vulkan.Extensions.VK_NV_optical_flow (OpticalFlowSessionBindingPointNV) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_optical_flow (OpticalFlowSessionCreateInfoNV) import {-# SOURCE #-} Vulkan.Extensions.Handles (OpticalFlowSessionNV) +import {-# SOURCE #-} Vulkan.Extensions.VK_NV_low_latency2 (OutOfBandQueueTypeInfoNV) import {-# SOURCE #-} Vulkan.Core10.FuncPointers (PFN_vkVoidFunction) import {-# SOURCE #-} Vulkan.Extensions.VK_GOOGLE_display_timing (PastPresentationTimingGOOGLE) import {-# SOURCE #-} Vulkan.Core11.Enums.PeerMemoryFeatureFlagBits (PeerMemoryFeatureFlags) @@ -321,10 +336,12 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_pipeline_executable_properties (P import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_pipeline_executable_properties (PipelineExecutableInternalRepresentationKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_pipeline_executable_properties (PipelineExecutablePropertiesKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_pipeline_executable_properties (PipelineExecutableStatisticKHR) +import {-# SOURCE #-} Vulkan.Extensions.VK_NV_device_generated_commands_compute (PipelineIndirectDeviceAddressInfoNV) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_pipeline_properties (PipelineInfoEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_pipeline_executable_properties (PipelineInfoKHR) import {-# SOURCE #-} Vulkan.Core10.Handles (PipelineLayout) import {-# SOURCE #-} Vulkan.Core10.PipelineLayout (PipelineLayoutCreateInfo) +import {-# SOURCE #-} Vulkan.Extensions.VK_AMDX_shader_enqueue (PipelineShaderStageNodeCreateInfoAMDX) import {-# SOURCE #-} Vulkan.Core10.Enums.PipelineStageFlagBits (PipelineStageFlagBits) import {-# SOURCE #-} Vulkan.Core10.Enums.PipelineStageFlagBits (PipelineStageFlags) import {-# SOURCE #-} Vulkan.Core13.Enums.PipelineStageFlags2 (PipelineStageFlags2) @@ -355,6 +372,7 @@ import {-# SOURCE #-} Vulkan.Core10.Handles (RenderPass) import {-# SOURCE #-} Vulkan.Core10.CommandBufferBuilding (RenderPassBeginInfo) import {-# SOURCE #-} Vulkan.Core10.Pass (RenderPassCreateInfo) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2 (RenderPassCreateInfo2) +import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_maintenance5 (RenderingAreaInfoKHR) import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering (RenderingInfo) import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2 (ResolveImageInfo2) import {-# SOURCE #-} Vulkan.Core10.Enums.Result (Result) @@ -366,7 +384,9 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_descriptor_buffer (SamplerCapture import {-# SOURCE #-} Vulkan.Core10.Sampler (SamplerCreateInfo) import {-# SOURCE #-} Vulkan.Core11.Handles (SamplerYcbcrConversion) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion (SamplerYcbcrConversionCreateInfo) +import {-# SOURCE #-} Vulkan.Extensions.VK_QNX_external_memory_screen_buffer (ScreenBufferPropertiesQNX) import {-# SOURCE #-} Vulkan.Extensions.VK_QNX_screen_surface (ScreenSurfaceCreateInfoQNX) +import {-# SOURCE #-} Vulkan.Extensions.VK_QNX_external_memory_screen_buffer (Screen_buffer) import {-# SOURCE #-} Vulkan.Extensions.VK_QNX_screen_surface (Screen_window) import {-# SOURCE #-} Vulkan.Core10.Handles (Semaphore) import {-# SOURCE #-} Vulkan.Core10.QueueSemaphore (SemaphoreCreateInfo) @@ -375,6 +395,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_external_semaphore_win32 (Semapho import {-# SOURCE #-} Vulkan.Extensions.VK_FUCHSIA_external_semaphore (SemaphoreGetZirconHandleInfoFUCHSIA) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore (SemaphoreSignalInfo) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore (SemaphoreWaitInfo) +import {-# SOURCE #-} Vulkan.Extensions.VK_NV_low_latency2 (SetLatencyMarkerInfoNV) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_shader_object (ShaderCreateInfoEXT) import {-# SOURCE #-} Vulkan.Extensions.Handles (ShaderEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_ray_tracing_pipeline (ShaderGroupShaderKHR) @@ -400,7 +421,7 @@ import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2 (Sub import {-# SOURCE #-} Vulkan.Core10.Enums.SubpassContents (SubpassContents) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2 (SubpassEndInfo) import {-# SOURCE #-} Vulkan.Core10.Image (SubresourceLayout) -import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_image_compression_control (SubresourceLayout2EXT) +import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_maintenance5 (SubresourceLayout2KHR) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_display_surface_counter (SurfaceCapabilities2EXT) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_get_surface_capabilities2 (SurfaceCapabilities2KHR) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_surface (SurfaceCapabilitiesKHR) @@ -485,7 +506,7 @@ data InstanceCmds = InstanceCmds , pVkGetPhysicalDeviceQueueFamilyProperties2 :: FunPtr (Ptr PhysicalDevice_T -> ("pQueueFamilyPropertyCount" ::: Ptr Word32) -> ("pQueueFamilyProperties" ::: Ptr (SomeStruct QueueFamilyProperties2)) -> IO ()) , pVkGetPhysicalDeviceMemoryProperties2 :: FunPtr (Ptr PhysicalDevice_T -> ("pMemoryProperties" ::: Ptr (SomeStruct PhysicalDeviceMemoryProperties2)) -> IO ()) , pVkGetPhysicalDeviceSparseImageFormatProperties2 :: FunPtr (Ptr PhysicalDevice_T -> ("pFormatInfo" ::: Ptr PhysicalDeviceSparseImageFormatInfo2) -> ("pPropertyCount" ::: Ptr Word32) -> ("pProperties" ::: Ptr SparseImageFormatProperties2) -> IO ()) - , pVkGetPhysicalDeviceExternalBufferProperties :: FunPtr (Ptr PhysicalDevice_T -> ("pExternalBufferInfo" ::: Ptr PhysicalDeviceExternalBufferInfo) -> ("pExternalBufferProperties" ::: Ptr ExternalBufferProperties) -> IO ()) + , pVkGetPhysicalDeviceExternalBufferProperties :: FunPtr (Ptr PhysicalDevice_T -> ("pExternalBufferInfo" ::: Ptr (SomeStruct PhysicalDeviceExternalBufferInfo)) -> ("pExternalBufferProperties" ::: Ptr ExternalBufferProperties) -> IO ()) , pVkGetPhysicalDeviceExternalSemaphoreProperties :: FunPtr (Ptr PhysicalDevice_T -> ("pExternalSemaphoreInfo" ::: Ptr (SomeStruct PhysicalDeviceExternalSemaphoreInfo)) -> ("pExternalSemaphoreProperties" ::: Ptr ExternalSemaphoreProperties) -> IO ()) , pVkGetPhysicalDeviceExternalFenceProperties :: FunPtr (Ptr PhysicalDevice_T -> ("pExternalFenceInfo" ::: Ptr PhysicalDeviceExternalFenceInfo) -> ("pExternalFenceProperties" ::: Ptr ExternalFenceProperties) -> IO ()) , pVkReleaseDisplayEXT :: FunPtr (Ptr PhysicalDevice_T -> DisplayKHR -> IO Result) @@ -521,6 +542,7 @@ data InstanceCmds = InstanceCmds , pVkAcquireDrmDisplayEXT :: FunPtr (Ptr PhysicalDevice_T -> ("drmFd" ::: Int32) -> DisplayKHR -> IO Result) , pVkGetDrmDisplayEXT :: FunPtr (Ptr PhysicalDevice_T -> ("drmFd" ::: Int32) -> ("connectorId" ::: Word32) -> Ptr DisplayKHR -> IO Result) , pVkGetPhysicalDeviceOpticalFlowImageFormatsNV :: FunPtr (Ptr PhysicalDevice_T -> ("pOpticalFlowImageFormatInfo" ::: Ptr OpticalFlowImageFormatInfoNV) -> ("pFormatCount" ::: Ptr Word32) -> ("pImageFormatProperties" ::: Ptr OpticalFlowImageFormatPropertiesNV) -> IO Result) + , pVkGetPhysicalDeviceCooperativeMatrixPropertiesKHR :: FunPtr (Ptr PhysicalDevice_T -> ("pPropertyCount" ::: Ptr Word32) -> ("pProperties" ::: Ptr CooperativeMatrixPropertiesKHR) -> IO Result) } deriving instance Eq InstanceCmds @@ -615,7 +637,7 @@ instance Zero InstanceCmds where nullFunPtr nullFunPtr nullFunPtr - nullFunPtr + nullFunPtr nullFunPtr -- | A version of 'getInstanceProcAddr' which can be called -- with a null pointer for the instance. @@ -734,6 +756,7 @@ initInstanceCmds handle = do vkAcquireDrmDisplayEXT <- getInstanceProcAddr' handle (Ptr "vkAcquireDrmDisplayEXT"#) vkGetDrmDisplayEXT <- getInstanceProcAddr' handle (Ptr "vkGetDrmDisplayEXT"#) vkGetPhysicalDeviceOpticalFlowImageFormatsNV <- getInstanceProcAddr' handle (Ptr "vkGetPhysicalDeviceOpticalFlowImageFormatsNV"#) + vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR <- getInstanceProcAddr' handle (Ptr "vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR"#) pure $ InstanceCmds handle (castFunPtr @_ @(Ptr Instance_T -> ("pAllocator" ::: Ptr AllocationCallbacks) -> IO ()) vkDestroyInstance) (castFunPtr @_ @(Ptr Instance_T -> ("pPhysicalDeviceCount" ::: Ptr Word32) -> ("pPhysicalDevices" ::: Ptr (Ptr PhysicalDevice_T)) -> IO Result) vkEnumeratePhysicalDevices) @@ -787,7 +810,7 @@ initInstanceCmds handle = do (castFunPtr @_ @(Ptr PhysicalDevice_T -> ("pQueueFamilyPropertyCount" ::: Ptr Word32) -> ("pQueueFamilyProperties" ::: Ptr (SomeStruct QueueFamilyProperties2)) -> IO ()) vkGetPhysicalDeviceQueueFamilyProperties2) (castFunPtr @_ @(Ptr PhysicalDevice_T -> ("pMemoryProperties" ::: Ptr (SomeStruct PhysicalDeviceMemoryProperties2)) -> IO ()) vkGetPhysicalDeviceMemoryProperties2) (castFunPtr @_ @(Ptr PhysicalDevice_T -> ("pFormatInfo" ::: Ptr PhysicalDeviceSparseImageFormatInfo2) -> ("pPropertyCount" ::: Ptr Word32) -> ("pProperties" ::: Ptr SparseImageFormatProperties2) -> IO ()) vkGetPhysicalDeviceSparseImageFormatProperties2) - (castFunPtr @_ @(Ptr PhysicalDevice_T -> ("pExternalBufferInfo" ::: Ptr PhysicalDeviceExternalBufferInfo) -> ("pExternalBufferProperties" ::: Ptr ExternalBufferProperties) -> IO ()) vkGetPhysicalDeviceExternalBufferProperties) + (castFunPtr @_ @(Ptr PhysicalDevice_T -> ("pExternalBufferInfo" ::: Ptr (SomeStruct PhysicalDeviceExternalBufferInfo)) -> ("pExternalBufferProperties" ::: Ptr ExternalBufferProperties) -> IO ()) vkGetPhysicalDeviceExternalBufferProperties) (castFunPtr @_ @(Ptr PhysicalDevice_T -> ("pExternalSemaphoreInfo" ::: Ptr (SomeStruct PhysicalDeviceExternalSemaphoreInfo)) -> ("pExternalSemaphoreProperties" ::: Ptr ExternalSemaphoreProperties) -> IO ()) vkGetPhysicalDeviceExternalSemaphoreProperties) (castFunPtr @_ @(Ptr PhysicalDevice_T -> ("pExternalFenceInfo" ::: Ptr PhysicalDeviceExternalFenceInfo) -> ("pExternalFenceProperties" ::: Ptr ExternalFenceProperties) -> IO ()) vkGetPhysicalDeviceExternalFenceProperties) (castFunPtr @_ @(Ptr PhysicalDevice_T -> DisplayKHR -> IO Result) vkReleaseDisplayEXT) @@ -823,6 +846,7 @@ initInstanceCmds handle = do (castFunPtr @_ @(Ptr PhysicalDevice_T -> ("drmFd" ::: Int32) -> DisplayKHR -> IO Result) vkAcquireDrmDisplayEXT) (castFunPtr @_ @(Ptr PhysicalDevice_T -> ("drmFd" ::: Int32) -> ("connectorId" ::: Word32) -> Ptr DisplayKHR -> IO Result) vkGetDrmDisplayEXT) (castFunPtr @_ @(Ptr PhysicalDevice_T -> ("pOpticalFlowImageFormatInfo" ::: Ptr OpticalFlowImageFormatInfoNV) -> ("pFormatCount" ::: Ptr Word32) -> ("pImageFormatProperties" ::: Ptr OpticalFlowImageFormatPropertiesNV) -> IO Result) vkGetPhysicalDeviceOpticalFlowImageFormatsNV) + (castFunPtr @_ @(Ptr PhysicalDevice_T -> ("pPropertyCount" ::: Ptr Word32) -> ("pProperties" ::: Ptr CooperativeMatrixPropertiesKHR) -> IO Result) vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR) data DeviceCmds = DeviceCmds { deviceCmdsHandle :: Ptr Device_T @@ -897,6 +921,7 @@ data DeviceCmds = DeviceCmds , pVkCreateRenderPass :: FunPtr (Ptr Device_T -> ("pCreateInfo" ::: Ptr (SomeStruct RenderPassCreateInfo)) -> ("pAllocator" ::: Ptr AllocationCallbacks) -> ("pRenderPass" ::: Ptr RenderPass) -> IO Result) , pVkDestroyRenderPass :: FunPtr (Ptr Device_T -> RenderPass -> ("pAllocator" ::: Ptr AllocationCallbacks) -> IO ()) , pVkGetRenderAreaGranularity :: FunPtr (Ptr Device_T -> RenderPass -> ("pGranularity" ::: Ptr Extent2D) -> IO ()) + , pVkGetRenderingAreaGranularityKHR :: FunPtr (Ptr Device_T -> ("pRenderingAreaInfo" ::: Ptr RenderingAreaInfoKHR) -> ("pGranularity" ::: Ptr Extent2D) -> IO ()) , pVkCreateCommandPool :: FunPtr (Ptr Device_T -> ("pCreateInfo" ::: Ptr CommandPoolCreateInfo) -> ("pAllocator" ::: Ptr AllocationCallbacks) -> ("pCommandPool" ::: Ptr CommandPool) -> IO Result) , pVkDestroyCommandPool :: FunPtr (Ptr Device_T -> CommandPool -> ("pAllocator" ::: Ptr AllocationCallbacks) -> IO ()) , pVkResetCommandPool :: FunPtr (Ptr Device_T -> CommandPool -> CommandPoolResetFlags -> IO Result) @@ -906,6 +931,7 @@ data DeviceCmds = DeviceCmds , pVkEndCommandBuffer :: FunPtr (Ptr CommandBuffer_T -> IO Result) , pVkResetCommandBuffer :: FunPtr (Ptr CommandBuffer_T -> CommandBufferResetFlags -> IO Result) , pVkCmdBindPipeline :: FunPtr (Ptr CommandBuffer_T -> PipelineBindPoint -> Pipeline -> IO ()) + , pVkCmdSetAttachmentFeedbackLoopEnableEXT :: FunPtr (Ptr CommandBuffer_T -> ("aspectMask" ::: ImageAspectFlags) -> IO ()) , pVkCmdSetViewport :: FunPtr (Ptr CommandBuffer_T -> ("firstViewport" ::: Word32) -> ("viewportCount" ::: Word32) -> ("pViewports" ::: Ptr Viewport) -> IO ()) , pVkCmdSetScissor :: FunPtr (Ptr CommandBuffer_T -> ("firstScissor" ::: Word32) -> ("scissorCount" ::: Word32) -> ("pScissors" ::: Ptr Rect2D) -> IO ()) , pVkCmdSetLineWidth :: FunPtr (Ptr CommandBuffer_T -> ("lineWidth" ::: CFloat) -> IO ()) @@ -929,6 +955,7 @@ data DeviceCmds = DeviceCmds , pVkCmdSubpassShadingHUAWEI :: FunPtr (Ptr CommandBuffer_T -> IO ()) , pVkCmdDrawClusterHUAWEI :: FunPtr (Ptr CommandBuffer_T -> ("groupCountX" ::: Word32) -> ("groupCountY" ::: Word32) -> ("groupCountZ" ::: Word32) -> IO ()) , pVkCmdDrawClusterIndirectHUAWEI :: FunPtr (Ptr CommandBuffer_T -> Buffer -> ("offset" ::: DeviceSize) -> IO ()) + , pVkCmdUpdatePipelineIndirectBufferNV :: FunPtr (Ptr CommandBuffer_T -> PipelineBindPoint -> Pipeline -> IO ()) , pVkCmdCopyBuffer :: FunPtr (Ptr CommandBuffer_T -> ("srcBuffer" ::: Buffer) -> ("dstBuffer" ::: Buffer) -> ("regionCount" ::: Word32) -> ("pRegions" ::: Ptr BufferCopy) -> IO ()) , pVkCmdCopyImage :: FunPtr (Ptr CommandBuffer_T -> ("srcImage" ::: Image) -> ("srcImageLayout" ::: ImageLayout) -> ("dstImage" ::: Image) -> ("dstImageLayout" ::: ImageLayout) -> ("regionCount" ::: Word32) -> ("pRegions" ::: Ptr ImageCopy) -> IO ()) , pVkCmdBlitImage :: FunPtr (Ptr CommandBuffer_T -> ("srcImage" ::: Image) -> ("srcImageLayout" ::: ImageLayout) -> ("dstImage" ::: Image) -> ("dstImageLayout" ::: ImageLayout) -> ("regionCount" ::: Word32) -> ("pRegions" ::: Ptr ImageBlit) -> Filter -> IO ()) @@ -944,8 +971,8 @@ data DeviceCmds = DeviceCmds , pVkCmdResolveImage :: FunPtr (Ptr CommandBuffer_T -> ("srcImage" ::: Image) -> ("srcImageLayout" ::: ImageLayout) -> ("dstImage" ::: Image) -> ("dstImageLayout" ::: ImageLayout) -> ("regionCount" ::: Word32) -> ("pRegions" ::: Ptr ImageResolve) -> IO ()) , pVkCmdSetEvent :: FunPtr (Ptr CommandBuffer_T -> Event -> ("stageMask" ::: PipelineStageFlags) -> IO ()) , pVkCmdResetEvent :: FunPtr (Ptr CommandBuffer_T -> Event -> ("stageMask" ::: PipelineStageFlags) -> IO ()) - , pVkCmdWaitEvents :: FunPtr (Ptr CommandBuffer_T -> ("eventCount" ::: Word32) -> ("pEvents" ::: Ptr Event) -> ("srcStageMask" ::: PipelineStageFlags) -> ("dstStageMask" ::: PipelineStageFlags) -> ("memoryBarrierCount" ::: Word32) -> ("pMemoryBarriers" ::: Ptr MemoryBarrier) -> ("bufferMemoryBarrierCount" ::: Word32) -> ("pBufferMemoryBarriers" ::: Ptr BufferMemoryBarrier) -> ("imageMemoryBarrierCount" ::: Word32) -> ("pImageMemoryBarriers" ::: Ptr (SomeStruct ImageMemoryBarrier)) -> IO ()) - , pVkCmdPipelineBarrier :: FunPtr (Ptr CommandBuffer_T -> ("srcStageMask" ::: PipelineStageFlags) -> ("dstStageMask" ::: PipelineStageFlags) -> DependencyFlags -> ("memoryBarrierCount" ::: Word32) -> ("pMemoryBarriers" ::: Ptr MemoryBarrier) -> ("bufferMemoryBarrierCount" ::: Word32) -> ("pBufferMemoryBarriers" ::: Ptr BufferMemoryBarrier) -> ("imageMemoryBarrierCount" ::: Word32) -> ("pImageMemoryBarriers" ::: Ptr (SomeStruct ImageMemoryBarrier)) -> IO ()) + , pVkCmdWaitEvents :: FunPtr (Ptr CommandBuffer_T -> ("eventCount" ::: Word32) -> ("pEvents" ::: Ptr Event) -> ("srcStageMask" ::: PipelineStageFlags) -> ("dstStageMask" ::: PipelineStageFlags) -> ("memoryBarrierCount" ::: Word32) -> ("pMemoryBarriers" ::: Ptr MemoryBarrier) -> ("bufferMemoryBarrierCount" ::: Word32) -> ("pBufferMemoryBarriers" ::: Ptr (SomeStruct BufferMemoryBarrier)) -> ("imageMemoryBarrierCount" ::: Word32) -> ("pImageMemoryBarriers" ::: Ptr (SomeStruct ImageMemoryBarrier)) -> IO ()) + , pVkCmdPipelineBarrier :: FunPtr (Ptr CommandBuffer_T -> ("srcStageMask" ::: PipelineStageFlags) -> ("dstStageMask" ::: PipelineStageFlags) -> DependencyFlags -> ("memoryBarrierCount" ::: Word32) -> ("pMemoryBarriers" ::: Ptr MemoryBarrier) -> ("bufferMemoryBarrierCount" ::: Word32) -> ("pBufferMemoryBarriers" ::: Ptr (SomeStruct BufferMemoryBarrier)) -> ("imageMemoryBarrierCount" ::: Word32) -> ("pImageMemoryBarriers" ::: Ptr (SomeStruct ImageMemoryBarrier)) -> IO ()) , pVkCmdBeginQuery :: FunPtr (Ptr CommandBuffer_T -> QueryPool -> ("query" ::: Word32) -> QueryControlFlags -> IO ()) , pVkCmdEndQuery :: FunPtr (Ptr CommandBuffer_T -> QueryPool -> ("query" ::: Word32) -> IO ()) , pVkCmdBeginConditionalRenderingEXT :: FunPtr (Ptr CommandBuffer_T -> ("pConditionalRenderingBegin" ::: Ptr ConditionalRenderingBeginInfoEXT) -> IO ()) @@ -1141,11 +1168,14 @@ data DeviceCmds = DeviceCmds , pVkGetDeferredOperationMaxConcurrencyKHR :: FunPtr (Ptr Device_T -> DeferredOperationKHR -> IO Word32) , pVkGetDeferredOperationResultKHR :: FunPtr (Ptr Device_T -> DeferredOperationKHR -> IO Result) , pVkDeferredOperationJoinKHR :: FunPtr (Ptr Device_T -> DeferredOperationKHR -> IO Result) + , pVkGetPipelineIndirectMemoryRequirementsNV :: FunPtr (Ptr Device_T -> ("pCreateInfo" ::: Ptr (SomeStruct ComputePipelineCreateInfo)) -> ("pMemoryRequirements" ::: Ptr (SomeStruct MemoryRequirements2)) -> IO ()) + , pVkGetPipelineIndirectDeviceAddressNV :: FunPtr (Ptr Device_T -> ("pInfo" ::: Ptr PipelineIndirectDeviceAddressInfoNV) -> IO DeviceAddress) , pVkCmdSetCullMode :: FunPtr (Ptr CommandBuffer_T -> CullModeFlags -> IO ()) , pVkCmdSetFrontFace :: FunPtr (Ptr CommandBuffer_T -> FrontFace -> IO ()) , pVkCmdSetPrimitiveTopology :: FunPtr (Ptr CommandBuffer_T -> PrimitiveTopology -> IO ()) , pVkCmdSetViewportWithCount :: FunPtr (Ptr CommandBuffer_T -> ("viewportCount" ::: Word32) -> ("pViewports" ::: Ptr Viewport) -> IO ()) , pVkCmdSetScissorWithCount :: FunPtr (Ptr CommandBuffer_T -> ("scissorCount" ::: Word32) -> ("pScissors" ::: Ptr Rect2D) -> IO ()) + , pVkCmdBindIndexBuffer2KHR :: FunPtr (Ptr CommandBuffer_T -> Buffer -> ("offset" ::: DeviceSize) -> DeviceSize -> IndexType -> IO ()) , pVkCmdBindVertexBuffers2 :: FunPtr (Ptr CommandBuffer_T -> ("firstBinding" ::: Word32) -> ("bindingCount" ::: Word32) -> ("pBuffers" ::: Ptr Buffer) -> ("pOffsets" ::: Ptr DeviceSize) -> ("pSizes" ::: Ptr DeviceSize) -> ("pStrides" ::: Ptr DeviceSize) -> IO ()) , pVkCmdSetDepthTestEnable :: FunPtr (Ptr CommandBuffer_T -> ("depthTestEnable" ::: Bool32) -> IO ()) , pVkCmdSetDepthWriteEnable :: FunPtr (Ptr CommandBuffer_T -> ("depthWriteEnable" ::: Bool32) -> IO ()) @@ -1195,7 +1225,7 @@ data DeviceCmds = DeviceCmds , pVkGetPrivateData :: FunPtr (Ptr Device_T -> ObjectType -> ("objectHandle" ::: Word64) -> PrivateDataSlot -> ("pData" ::: Ptr Word64) -> IO ()) , pVkCmdCopyBuffer2 :: FunPtr (Ptr CommandBuffer_T -> ("pCopyBufferInfo" ::: Ptr CopyBufferInfo2) -> IO ()) , pVkCmdCopyImage2 :: FunPtr (Ptr CommandBuffer_T -> ("pCopyImageInfo" ::: Ptr CopyImageInfo2) -> IO ()) - , pVkCmdBlitImage2 :: FunPtr (Ptr CommandBuffer_T -> ("pBlitImageInfo" ::: Ptr BlitImageInfo2) -> IO ()) + , pVkCmdBlitImage2 :: FunPtr (Ptr CommandBuffer_T -> ("pBlitImageInfo" ::: Ptr (SomeStruct BlitImageInfo2)) -> IO ()) , pVkCmdCopyBufferToImage2 :: FunPtr (Ptr CommandBuffer_T -> ("pCopyBufferToImageInfo" ::: Ptr CopyBufferToImageInfo2) -> IO ()) , pVkCmdCopyImageToBuffer2 :: FunPtr (Ptr CommandBuffer_T -> ("pCopyImageToBufferInfo" ::: Ptr CopyImageToBufferInfo2) -> IO ()) , pVkCmdResolveImage2 :: FunPtr (Ptr CommandBuffer_T -> ("pResolveImageInfo" ::: Ptr ResolveImageInfo2) -> IO ()) @@ -1212,6 +1242,10 @@ data DeviceCmds = DeviceCmds , pVkCmdWriteTimestamp2 :: FunPtr (Ptr CommandBuffer_T -> PipelineStageFlags2 -> QueryPool -> ("query" ::: Word32) -> IO ()) , pVkCmdWriteBufferMarker2AMD :: FunPtr (Ptr CommandBuffer_T -> PipelineStageFlags2 -> ("dstBuffer" ::: Buffer) -> ("dstOffset" ::: DeviceSize) -> ("marker" ::: Word32) -> IO ()) , pVkGetQueueCheckpointData2NV :: FunPtr (Ptr Queue_T -> ("pCheckpointDataCount" ::: Ptr Word32) -> ("pCheckpointData" ::: Ptr CheckpointData2NV) -> IO ()) + , pVkCopyMemoryToImageEXT :: FunPtr (Ptr Device_T -> ("pCopyMemoryToImageInfo" ::: Ptr CopyMemoryToImageInfoEXT) -> IO Result) + , pVkCopyImageToMemoryEXT :: FunPtr (Ptr Device_T -> ("pCopyImageToMemoryInfo" ::: Ptr CopyImageToMemoryInfoEXT) -> IO Result) + , pVkCopyImageToImageEXT :: FunPtr (Ptr Device_T -> ("pCopyImageToImageInfo" ::: Ptr CopyImageToImageInfoEXT) -> IO Result) + , pVkTransitionImageLayoutEXT :: FunPtr (Ptr Device_T -> ("transitionCount" ::: Word32) -> ("pTransitions" ::: Ptr HostImageLayoutTransitionInfoEXT) -> IO Result) , pVkCmdDecompressMemoryNV :: FunPtr (Ptr CommandBuffer_T -> ("decompressRegionCount" ::: Word32) -> ("pDecompressMemoryRegions" ::: Ptr DecompressMemoryRegionNV) -> IO ()) , pVkCmdDecompressMemoryIndirectCountNV :: FunPtr (Ptr CommandBuffer_T -> ("indirectCommandsAddress" ::: DeviceAddress) -> ("indirectCommandsCountAddress" ::: DeviceAddress) -> ("stride" ::: Word32) -> IO ()) , pVkCreateCuModuleNVX :: FunPtr (Ptr Device_T -> ("pCreateInfo" ::: Ptr CuModuleCreateInfoNVX) -> ("pAllocator" ::: Ptr AllocationCallbacks) -> ("pModule" ::: Ptr CuModuleNVX) -> IO Result) @@ -1257,7 +1291,7 @@ data DeviceCmds = DeviceCmds , pVkGetMicromapBuildSizesEXT :: FunPtr (Ptr Device_T -> AccelerationStructureBuildTypeKHR -> Ptr MicromapBuildInfoEXT -> ("pSizeInfo" ::: Ptr MicromapBuildSizesInfoEXT) -> IO ()) , pVkGetShaderModuleIdentifierEXT :: FunPtr (Ptr Device_T -> ShaderModule -> ("pIdentifier" ::: Ptr ShaderModuleIdentifierEXT) -> IO ()) , pVkGetShaderModuleCreateInfoIdentifierEXT :: FunPtr (Ptr Device_T -> ("pCreateInfo" ::: Ptr (SomeStruct ShaderModuleCreateInfo)) -> ("pIdentifier" ::: Ptr ShaderModuleIdentifierEXT) -> IO ()) - , pVkGetImageSubresourceLayout2EXT :: FunPtr (Ptr Device_T -> Image -> ("pSubresource" ::: Ptr ImageSubresource2EXT) -> ("pLayout" ::: Ptr (SomeStruct SubresourceLayout2EXT)) -> IO ()) + , pVkGetImageSubresourceLayout2KHR :: FunPtr (Ptr Device_T -> Image -> ("pSubresource" ::: Ptr ImageSubresource2KHR) -> ("pLayout" ::: Ptr (SomeStruct SubresourceLayout2KHR)) -> IO ()) , pVkGetPipelinePropertiesEXT :: FunPtr (Ptr Device_T -> ("pPipelineInfo" ::: Ptr PipelineInfoEXT) -> ("pPipelineProperties" ::: Ptr BaseOutStructure) -> IO Result) , pVkExportMetalObjectsEXT :: FunPtr (Ptr Device_T -> ("pMetalObjectsInfo" ::: Ptr (SomeStruct ExportMetalObjectsInfoEXT)) -> IO ()) , pVkGetFramebufferTilePropertiesQCOM :: FunPtr (Ptr Device_T -> Framebuffer -> ("pPropertiesCount" ::: Ptr Word32) -> ("pProperties" ::: Ptr TilePropertiesQCOM) -> IO Result) @@ -1267,13 +1301,28 @@ data DeviceCmds = DeviceCmds , pVkBindOpticalFlowSessionImageNV :: FunPtr (Ptr Device_T -> OpticalFlowSessionNV -> OpticalFlowSessionBindingPointNV -> ImageView -> ImageLayout -> IO Result) , pVkCmdOpticalFlowExecuteNV :: FunPtr (Ptr CommandBuffer_T -> OpticalFlowSessionNV -> ("pExecuteInfo" ::: Ptr OpticalFlowExecuteInfoNV) -> IO ()) , pVkGetDeviceFaultInfoEXT :: FunPtr (Ptr Device_T -> ("pFaultCounts" ::: Ptr DeviceFaultCountsEXT) -> ("pFaultInfo" ::: Ptr DeviceFaultInfoEXT) -> IO Result) + , pVkCmdSetDepthBias2EXT :: FunPtr (Ptr CommandBuffer_T -> ("pDepthBiasInfo" ::: Ptr (SomeStruct DepthBiasInfoEXT)) -> IO ()) , pVkReleaseSwapchainImagesEXT :: FunPtr (Ptr Device_T -> ("pReleaseInfo" ::: Ptr ReleaseSwapchainImagesInfoEXT) -> IO Result) + , pVkGetDeviceImageSubresourceLayoutKHR :: FunPtr (Ptr Device_T -> ("pInfo" ::: Ptr DeviceImageSubresourceInfoKHR) -> ("pLayout" ::: Ptr (SomeStruct SubresourceLayout2KHR)) -> IO ()) , pVkMapMemory2KHR :: FunPtr (Ptr Device_T -> ("pMemoryMapInfo" ::: Ptr MemoryMapInfoKHR) -> ("ppData" ::: Ptr (Ptr ())) -> IO Result) , pVkUnmapMemory2KHR :: FunPtr (Ptr Device_T -> ("pMemoryUnmapInfo" ::: Ptr MemoryUnmapInfoKHR) -> IO Result) , pVkCreateShadersEXT :: FunPtr (Ptr Device_T -> ("createInfoCount" ::: Word32) -> ("pCreateInfos" ::: Ptr (SomeStruct ShaderCreateInfoEXT)) -> ("pAllocator" ::: Ptr AllocationCallbacks) -> ("pShaders" ::: Ptr ShaderEXT) -> IO Result) , pVkDestroyShaderEXT :: FunPtr (Ptr Device_T -> ShaderEXT -> ("pAllocator" ::: Ptr AllocationCallbacks) -> IO ()) , pVkGetShaderBinaryDataEXT :: FunPtr (Ptr Device_T -> ShaderEXT -> ("pDataSize" ::: Ptr CSize) -> ("pData" ::: Ptr ()) -> IO Result) , pVkCmdBindShadersEXT :: FunPtr (Ptr CommandBuffer_T -> ("stageCount" ::: Word32) -> ("pStages" ::: Ptr ShaderStageFlagBits) -> ("pShaders" ::: Ptr ShaderEXT) -> IO ()) + , pVkGetScreenBufferPropertiesQNX :: FunPtr (Ptr Device_T -> Ptr Screen_buffer -> ("pProperties" ::: Ptr (SomeStruct ScreenBufferPropertiesQNX)) -> IO Result) + , pVkGetExecutionGraphPipelineScratchSizeAMDX :: FunPtr (Ptr Device_T -> ("executionGraph" ::: Pipeline) -> ("pSizeInfo" ::: Ptr ExecutionGraphPipelineScratchSizeAMDX) -> IO Result) + , pVkGetExecutionGraphPipelineNodeIndexAMDX :: FunPtr (Ptr Device_T -> ("executionGraph" ::: Pipeline) -> ("pNodeInfo" ::: Ptr PipelineShaderStageNodeCreateInfoAMDX) -> ("pNodeIndex" ::: Ptr Word32) -> IO Result) + , pVkCreateExecutionGraphPipelinesAMDX :: FunPtr (Ptr Device_T -> PipelineCache -> ("createInfoCount" ::: Word32) -> ("pCreateInfos" ::: Ptr (SomeStruct ExecutionGraphPipelineCreateInfoAMDX)) -> ("pAllocator" ::: Ptr AllocationCallbacks) -> ("pPipelines" ::: Ptr Pipeline) -> IO Result) + , pVkCmdInitializeGraphScratchMemoryAMDX :: FunPtr (Ptr CommandBuffer_T -> ("scratch" ::: DeviceAddress) -> IO ()) + , pVkCmdDispatchGraphAMDX :: FunPtr (Ptr CommandBuffer_T -> ("scratch" ::: DeviceAddress) -> ("pCountInfo" ::: Ptr DispatchGraphCountInfoAMDX) -> IO ()) + , pVkCmdDispatchGraphIndirectAMDX :: FunPtr (Ptr CommandBuffer_T -> ("scratch" ::: DeviceAddress) -> ("pCountInfo" ::: Ptr DispatchGraphCountInfoAMDX) -> IO ()) + , pVkCmdDispatchGraphIndirectCountAMDX :: FunPtr (Ptr CommandBuffer_T -> ("scratch" ::: DeviceAddress) -> ("countInfo" ::: DeviceAddress) -> IO ()) + , pVkSetLatencySleepModeNV :: FunPtr (Ptr Device_T -> SwapchainKHR -> ("pSleepModeInfo" ::: Ptr LatencySleepModeInfoNV) -> IO Result) + , pVkLatencySleepNV :: FunPtr (Ptr Device_T -> SwapchainKHR -> ("pSleepInfo" ::: Ptr LatencySleepInfoNV) -> IO Result) + , pVkSetLatencyMarkerNV :: FunPtr (Ptr Device_T -> SwapchainKHR -> ("pLatencyMarkerInfo" ::: Ptr SetLatencyMarkerInfoNV) -> IO ()) + , pVkGetLatencyTimingsNV :: FunPtr (Ptr Device_T -> SwapchainKHR -> ("pTimingCount" ::: Ptr Word32) -> ("pLatencyMarkerInfo" ::: Ptr GetLatencyMarkerInfoNV) -> IO ()) + , pVkQueueNotifyOutOfBandNV :: FunPtr (Ptr Queue_T -> ("pQueueTypeInfo" ::: Ptr OutOfBandQueueTypeInfoNV) -> IO ()) } deriving instance Eq DeviceCmds @@ -1729,6 +1778,30 @@ instance Zero DeviceCmds where nullFunPtr nullFunPtr nullFunPtr + nullFunPtr + 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) @@ -1821,6 +1894,7 @@ initDeviceCmds instanceCmds handle = do vkCreateRenderPass <- getDeviceProcAddr' handle (Ptr "vkCreateRenderPass"#) vkDestroyRenderPass <- getDeviceProcAddr' handle (Ptr "vkDestroyRenderPass"#) vkGetRenderAreaGranularity <- getDeviceProcAddr' handle (Ptr "vkGetRenderAreaGranularity"#) + vkGetRenderingAreaGranularityKHR <- getDeviceProcAddr' handle (Ptr "vkGetRenderingAreaGranularityKHR"#) vkCreateCommandPool <- getDeviceProcAddr' handle (Ptr "vkCreateCommandPool"#) vkDestroyCommandPool <- getDeviceProcAddr' handle (Ptr "vkDestroyCommandPool"#) vkResetCommandPool <- getDeviceProcAddr' handle (Ptr "vkResetCommandPool"#) @@ -1830,6 +1904,7 @@ initDeviceCmds instanceCmds handle = do vkEndCommandBuffer <- getDeviceProcAddr' handle (Ptr "vkEndCommandBuffer"#) vkResetCommandBuffer <- getDeviceProcAddr' handle (Ptr "vkResetCommandBuffer"#) vkCmdBindPipeline <- getDeviceProcAddr' handle (Ptr "vkCmdBindPipeline"#) + vkCmdSetAttachmentFeedbackLoopEnableEXT <- getDeviceProcAddr' handle (Ptr "vkCmdSetAttachmentFeedbackLoopEnableEXT"#) vkCmdSetViewport <- getDeviceProcAddr' handle (Ptr "vkCmdSetViewport"#) vkCmdSetScissor <- getDeviceProcAddr' handle (Ptr "vkCmdSetScissor"#) vkCmdSetLineWidth <- getDeviceProcAddr' handle (Ptr "vkCmdSetLineWidth"#) @@ -1853,6 +1928,7 @@ initDeviceCmds instanceCmds handle = do vkCmdSubpassShadingHUAWEI <- getDeviceProcAddr' handle (Ptr "vkCmdSubpassShadingHUAWEI"#) vkCmdDrawClusterHUAWEI <- getDeviceProcAddr' handle (Ptr "vkCmdDrawClusterHUAWEI"#) vkCmdDrawClusterIndirectHUAWEI <- getDeviceProcAddr' handle (Ptr "vkCmdDrawClusterIndirectHUAWEI"#) + vkCmdUpdatePipelineIndirectBufferNV <- getDeviceProcAddr' handle (Ptr "vkCmdUpdatePipelineIndirectBufferNV"#) vkCmdCopyBuffer <- getDeviceProcAddr' handle (Ptr "vkCmdCopyBuffer"#) vkCmdCopyImage <- getDeviceProcAddr' handle (Ptr "vkCmdCopyImage"#) vkCmdBlitImage <- getDeviceProcAddr' handle (Ptr "vkCmdBlitImage"#) @@ -2099,6 +2175,8 @@ initDeviceCmds instanceCmds handle = do vkGetDeferredOperationMaxConcurrencyKHR <- getDeviceProcAddr' handle (Ptr "vkGetDeferredOperationMaxConcurrencyKHR"#) vkGetDeferredOperationResultKHR <- getDeviceProcAddr' handle (Ptr "vkGetDeferredOperationResultKHR"#) vkDeferredOperationJoinKHR <- getDeviceProcAddr' handle (Ptr "vkDeferredOperationJoinKHR"#) + vkGetPipelineIndirectMemoryRequirementsNV <- getDeviceProcAddr' handle (Ptr "vkGetPipelineIndirectMemoryRequirementsNV"#) + vkGetPipelineIndirectDeviceAddressNV <- getDeviceProcAddr' handle (Ptr "vkGetPipelineIndirectDeviceAddressNV"#) vkCmdSetCullMode <- getFirstDeviceProcAddr [ (Ptr "vkCmdSetCullModeEXT"#) , (Ptr "vkCmdSetCullMode"#) ] vkCmdSetFrontFace <- getFirstDeviceProcAddr [ (Ptr "vkCmdSetFrontFaceEXT"#) @@ -2109,6 +2187,7 @@ initDeviceCmds instanceCmds handle = do , (Ptr "vkCmdSetViewportWithCount"#) ] vkCmdSetScissorWithCount <- getFirstDeviceProcAddr [ (Ptr "vkCmdSetScissorWithCountEXT"#) , (Ptr "vkCmdSetScissorWithCount"#) ] + vkCmdBindIndexBuffer2KHR <- getDeviceProcAddr' handle (Ptr "vkCmdBindIndexBuffer2KHR"#) vkCmdBindVertexBuffers2 <- getFirstDeviceProcAddr [ (Ptr "vkCmdBindVertexBuffers2EXT"#) , (Ptr "vkCmdBindVertexBuffers2"#) ] vkCmdSetDepthTestEnable <- getFirstDeviceProcAddr [ (Ptr "vkCmdSetDepthTestEnableEXT"#) @@ -2201,6 +2280,10 @@ initDeviceCmds instanceCmds handle = do , (Ptr "vkCmdWriteTimestamp2"#) ] vkCmdWriteBufferMarker2AMD <- getDeviceProcAddr' handle (Ptr "vkCmdWriteBufferMarker2AMD"#) vkGetQueueCheckpointData2NV <- getDeviceProcAddr' handle (Ptr "vkGetQueueCheckpointData2NV"#) + vkCopyMemoryToImageEXT <- getDeviceProcAddr' handle (Ptr "vkCopyMemoryToImageEXT"#) + vkCopyImageToMemoryEXT <- getDeviceProcAddr' handle (Ptr "vkCopyImageToMemoryEXT"#) + vkCopyImageToImageEXT <- getDeviceProcAddr' handle (Ptr "vkCopyImageToImageEXT"#) + vkTransitionImageLayoutEXT <- getDeviceProcAddr' handle (Ptr "vkTransitionImageLayoutEXT"#) vkCmdDecompressMemoryNV <- getDeviceProcAddr' handle (Ptr "vkCmdDecompressMemoryNV"#) vkCmdDecompressMemoryIndirectCountNV <- getDeviceProcAddr' handle (Ptr "vkCmdDecompressMemoryIndirectCountNV"#) vkCreateCuModuleNVX <- getDeviceProcAddr' handle (Ptr "vkCreateCuModuleNVX"#) @@ -2248,7 +2331,8 @@ initDeviceCmds instanceCmds handle = do vkGetMicromapBuildSizesEXT <- getDeviceProcAddr' handle (Ptr "vkGetMicromapBuildSizesEXT"#) vkGetShaderModuleIdentifierEXT <- getDeviceProcAddr' handle (Ptr "vkGetShaderModuleIdentifierEXT"#) vkGetShaderModuleCreateInfoIdentifierEXT <- getDeviceProcAddr' handle (Ptr "vkGetShaderModuleCreateInfoIdentifierEXT"#) - vkGetImageSubresourceLayout2EXT <- getDeviceProcAddr' handle (Ptr "vkGetImageSubresourceLayout2EXT"#) + vkGetImageSubresourceLayout2KHR <- getFirstDeviceProcAddr [ (Ptr "vkGetImageSubresourceLayout2EXT"#) + , (Ptr "vkGetImageSubresourceLayout2KHR"#) ] vkGetPipelinePropertiesEXT <- getDeviceProcAddr' handle (Ptr "vkGetPipelinePropertiesEXT"#) vkExportMetalObjectsEXT <- getDeviceProcAddr' handle (Ptr "vkExportMetalObjectsEXT"#) vkGetFramebufferTilePropertiesQCOM <- getDeviceProcAddr' handle (Ptr "vkGetFramebufferTilePropertiesQCOM"#) @@ -2258,13 +2342,28 @@ initDeviceCmds instanceCmds handle = do vkBindOpticalFlowSessionImageNV <- getDeviceProcAddr' handle (Ptr "vkBindOpticalFlowSessionImageNV"#) vkCmdOpticalFlowExecuteNV <- getDeviceProcAddr' handle (Ptr "vkCmdOpticalFlowExecuteNV"#) vkGetDeviceFaultInfoEXT <- getDeviceProcAddr' handle (Ptr "vkGetDeviceFaultInfoEXT"#) + vkCmdSetDepthBias2EXT <- getDeviceProcAddr' handle (Ptr "vkCmdSetDepthBias2EXT"#) vkReleaseSwapchainImagesEXT <- getDeviceProcAddr' handle (Ptr "vkReleaseSwapchainImagesEXT"#) + vkGetDeviceImageSubresourceLayoutKHR <- getDeviceProcAddr' handle (Ptr "vkGetDeviceImageSubresourceLayoutKHR"#) vkMapMemory2KHR <- getDeviceProcAddr' handle (Ptr "vkMapMemory2KHR"#) vkUnmapMemory2KHR <- getDeviceProcAddr' handle (Ptr "vkUnmapMemory2KHR"#) vkCreateShadersEXT <- getDeviceProcAddr' handle (Ptr "vkCreateShadersEXT"#) vkDestroyShaderEXT <- getDeviceProcAddr' handle (Ptr "vkDestroyShaderEXT"#) vkGetShaderBinaryDataEXT <- getDeviceProcAddr' handle (Ptr "vkGetShaderBinaryDataEXT"#) vkCmdBindShadersEXT <- getDeviceProcAddr' handle (Ptr "vkCmdBindShadersEXT"#) + vkGetScreenBufferPropertiesQNX <- getDeviceProcAddr' handle (Ptr "vkGetScreenBufferPropertiesQNX"#) + vkGetExecutionGraphPipelineScratchSizeAMDX <- getDeviceProcAddr' handle (Ptr "vkGetExecutionGraphPipelineScratchSizeAMDX"#) + vkGetExecutionGraphPipelineNodeIndexAMDX <- getDeviceProcAddr' handle (Ptr "vkGetExecutionGraphPipelineNodeIndexAMDX"#) + vkCreateExecutionGraphPipelinesAMDX <- getDeviceProcAddr' handle (Ptr "vkCreateExecutionGraphPipelinesAMDX"#) + vkCmdInitializeGraphScratchMemoryAMDX <- getDeviceProcAddr' handle (Ptr "vkCmdInitializeGraphScratchMemoryAMDX"#) + vkCmdDispatchGraphAMDX <- getDeviceProcAddr' handle (Ptr "vkCmdDispatchGraphAMDX"#) + vkCmdDispatchGraphIndirectAMDX <- getDeviceProcAddr' handle (Ptr "vkCmdDispatchGraphIndirectAMDX"#) + vkCmdDispatchGraphIndirectCountAMDX <- getDeviceProcAddr' handle (Ptr "vkCmdDispatchGraphIndirectCountAMDX"#) + vkSetLatencySleepModeNV <- getDeviceProcAddr' handle (Ptr "vkSetLatencySleepModeNV"#) + vkLatencySleepNV <- getDeviceProcAddr' handle (Ptr "vkLatencySleepNV"#) + vkSetLatencyMarkerNV <- getDeviceProcAddr' handle (Ptr "vkSetLatencyMarkerNV"#) + vkGetLatencyTimingsNV <- getDeviceProcAddr' handle (Ptr "vkGetLatencyTimingsNV"#) + vkQueueNotifyOutOfBandNV <- getDeviceProcAddr' handle (Ptr "vkQueueNotifyOutOfBandNV"#) pure $ DeviceCmds handle (castFunPtr @_ @(Ptr Device_T -> ("pName" ::: Ptr CChar) -> IO PFN_vkVoidFunction) vkGetDeviceProcAddr) (castFunPtr @_ @(Ptr Device_T -> ("pAllocator" ::: Ptr AllocationCallbacks) -> IO ()) vkDestroyDevice) @@ -2337,6 +2436,7 @@ initDeviceCmds instanceCmds handle = do (castFunPtr @_ @(Ptr Device_T -> ("pCreateInfo" ::: Ptr (SomeStruct RenderPassCreateInfo)) -> ("pAllocator" ::: Ptr AllocationCallbacks) -> ("pRenderPass" ::: Ptr RenderPass) -> IO Result) vkCreateRenderPass) (castFunPtr @_ @(Ptr Device_T -> RenderPass -> ("pAllocator" ::: Ptr AllocationCallbacks) -> IO ()) vkDestroyRenderPass) (castFunPtr @_ @(Ptr Device_T -> RenderPass -> ("pGranularity" ::: Ptr Extent2D) -> IO ()) vkGetRenderAreaGranularity) + (castFunPtr @_ @(Ptr Device_T -> ("pRenderingAreaInfo" ::: Ptr RenderingAreaInfoKHR) -> ("pGranularity" ::: Ptr Extent2D) -> IO ()) vkGetRenderingAreaGranularityKHR) (castFunPtr @_ @(Ptr Device_T -> ("pCreateInfo" ::: Ptr CommandPoolCreateInfo) -> ("pAllocator" ::: Ptr AllocationCallbacks) -> ("pCommandPool" ::: Ptr CommandPool) -> IO Result) vkCreateCommandPool) (castFunPtr @_ @(Ptr Device_T -> CommandPool -> ("pAllocator" ::: Ptr AllocationCallbacks) -> IO ()) vkDestroyCommandPool) (castFunPtr @_ @(Ptr Device_T -> CommandPool -> CommandPoolResetFlags -> IO Result) vkResetCommandPool) @@ -2346,6 +2446,7 @@ initDeviceCmds instanceCmds handle = do (castFunPtr @_ @(Ptr CommandBuffer_T -> IO Result) vkEndCommandBuffer) (castFunPtr @_ @(Ptr CommandBuffer_T -> CommandBufferResetFlags -> IO Result) vkResetCommandBuffer) (castFunPtr @_ @(Ptr CommandBuffer_T -> PipelineBindPoint -> Pipeline -> IO ()) vkCmdBindPipeline) + (castFunPtr @_ @(Ptr CommandBuffer_T -> ("aspectMask" ::: ImageAspectFlags) -> IO ()) vkCmdSetAttachmentFeedbackLoopEnableEXT) (castFunPtr @_ @(Ptr CommandBuffer_T -> ("firstViewport" ::: Word32) -> ("viewportCount" ::: Word32) -> ("pViewports" ::: Ptr Viewport) -> IO ()) vkCmdSetViewport) (castFunPtr @_ @(Ptr CommandBuffer_T -> ("firstScissor" ::: Word32) -> ("scissorCount" ::: Word32) -> ("pScissors" ::: Ptr Rect2D) -> IO ()) vkCmdSetScissor) (castFunPtr @_ @(Ptr CommandBuffer_T -> ("lineWidth" ::: CFloat) -> IO ()) vkCmdSetLineWidth) @@ -2369,6 +2470,7 @@ initDeviceCmds instanceCmds handle = do (castFunPtr @_ @(Ptr CommandBuffer_T -> IO ()) vkCmdSubpassShadingHUAWEI) (castFunPtr @_ @(Ptr CommandBuffer_T -> ("groupCountX" ::: Word32) -> ("groupCountY" ::: Word32) -> ("groupCountZ" ::: Word32) -> IO ()) vkCmdDrawClusterHUAWEI) (castFunPtr @_ @(Ptr CommandBuffer_T -> Buffer -> ("offset" ::: DeviceSize) -> IO ()) vkCmdDrawClusterIndirectHUAWEI) + (castFunPtr @_ @(Ptr CommandBuffer_T -> PipelineBindPoint -> Pipeline -> IO ()) vkCmdUpdatePipelineIndirectBufferNV) (castFunPtr @_ @(Ptr CommandBuffer_T -> ("srcBuffer" ::: Buffer) -> ("dstBuffer" ::: Buffer) -> ("regionCount" ::: Word32) -> ("pRegions" ::: Ptr BufferCopy) -> IO ()) vkCmdCopyBuffer) (castFunPtr @_ @(Ptr CommandBuffer_T -> ("srcImage" ::: Image) -> ("srcImageLayout" ::: ImageLayout) -> ("dstImage" ::: Image) -> ("dstImageLayout" ::: ImageLayout) -> ("regionCount" ::: Word32) -> ("pRegions" ::: Ptr ImageCopy) -> IO ()) vkCmdCopyImage) (castFunPtr @_ @(Ptr CommandBuffer_T -> ("srcImage" ::: Image) -> ("srcImageLayout" ::: ImageLayout) -> ("dstImage" ::: Image) -> ("dstImageLayout" ::: ImageLayout) -> ("regionCount" ::: Word32) -> ("pRegions" ::: Ptr ImageBlit) -> Filter -> IO ()) vkCmdBlitImage) @@ -2384,8 +2486,8 @@ initDeviceCmds instanceCmds handle = do (castFunPtr @_ @(Ptr CommandBuffer_T -> ("srcImage" ::: Image) -> ("srcImageLayout" ::: ImageLayout) -> ("dstImage" ::: Image) -> ("dstImageLayout" ::: ImageLayout) -> ("regionCount" ::: Word32) -> ("pRegions" ::: Ptr ImageResolve) -> IO ()) vkCmdResolveImage) (castFunPtr @_ @(Ptr CommandBuffer_T -> Event -> ("stageMask" ::: PipelineStageFlags) -> IO ()) vkCmdSetEvent) (castFunPtr @_ @(Ptr CommandBuffer_T -> Event -> ("stageMask" ::: PipelineStageFlags) -> IO ()) vkCmdResetEvent) - (castFunPtr @_ @(Ptr CommandBuffer_T -> ("eventCount" ::: Word32) -> ("pEvents" ::: Ptr Event) -> ("srcStageMask" ::: PipelineStageFlags) -> ("dstStageMask" ::: PipelineStageFlags) -> ("memoryBarrierCount" ::: Word32) -> ("pMemoryBarriers" ::: Ptr MemoryBarrier) -> ("bufferMemoryBarrierCount" ::: Word32) -> ("pBufferMemoryBarriers" ::: Ptr BufferMemoryBarrier) -> ("imageMemoryBarrierCount" ::: Word32) -> ("pImageMemoryBarriers" ::: Ptr (SomeStruct ImageMemoryBarrier)) -> IO ()) vkCmdWaitEvents) - (castFunPtr @_ @(Ptr CommandBuffer_T -> ("srcStageMask" ::: PipelineStageFlags) -> ("dstStageMask" ::: PipelineStageFlags) -> DependencyFlags -> ("memoryBarrierCount" ::: Word32) -> ("pMemoryBarriers" ::: Ptr MemoryBarrier) -> ("bufferMemoryBarrierCount" ::: Word32) -> ("pBufferMemoryBarriers" ::: Ptr BufferMemoryBarrier) -> ("imageMemoryBarrierCount" ::: Word32) -> ("pImageMemoryBarriers" ::: Ptr (SomeStruct ImageMemoryBarrier)) -> IO ()) vkCmdPipelineBarrier) + (castFunPtr @_ @(Ptr CommandBuffer_T -> ("eventCount" ::: Word32) -> ("pEvents" ::: Ptr Event) -> ("srcStageMask" ::: PipelineStageFlags) -> ("dstStageMask" ::: PipelineStageFlags) -> ("memoryBarrierCount" ::: Word32) -> ("pMemoryBarriers" ::: Ptr MemoryBarrier) -> ("bufferMemoryBarrierCount" ::: Word32) -> ("pBufferMemoryBarriers" ::: Ptr (SomeStruct BufferMemoryBarrier)) -> ("imageMemoryBarrierCount" ::: Word32) -> ("pImageMemoryBarriers" ::: Ptr (SomeStruct ImageMemoryBarrier)) -> IO ()) vkCmdWaitEvents) + (castFunPtr @_ @(Ptr CommandBuffer_T -> ("srcStageMask" ::: PipelineStageFlags) -> ("dstStageMask" ::: PipelineStageFlags) -> DependencyFlags -> ("memoryBarrierCount" ::: Word32) -> ("pMemoryBarriers" ::: Ptr MemoryBarrier) -> ("bufferMemoryBarrierCount" ::: Word32) -> ("pBufferMemoryBarriers" ::: Ptr (SomeStruct BufferMemoryBarrier)) -> ("imageMemoryBarrierCount" ::: Word32) -> ("pImageMemoryBarriers" ::: Ptr (SomeStruct ImageMemoryBarrier)) -> IO ()) vkCmdPipelineBarrier) (castFunPtr @_ @(Ptr CommandBuffer_T -> QueryPool -> ("query" ::: Word32) -> QueryControlFlags -> IO ()) vkCmdBeginQuery) (castFunPtr @_ @(Ptr CommandBuffer_T -> QueryPool -> ("query" ::: Word32) -> IO ()) vkCmdEndQuery) (castFunPtr @_ @(Ptr CommandBuffer_T -> ("pConditionalRenderingBegin" ::: Ptr ConditionalRenderingBeginInfoEXT) -> IO ()) vkCmdBeginConditionalRenderingEXT) @@ -2581,11 +2683,14 @@ initDeviceCmds instanceCmds handle = do (castFunPtr @_ @(Ptr Device_T -> DeferredOperationKHR -> IO Word32) vkGetDeferredOperationMaxConcurrencyKHR) (castFunPtr @_ @(Ptr Device_T -> DeferredOperationKHR -> IO Result) vkGetDeferredOperationResultKHR) (castFunPtr @_ @(Ptr Device_T -> DeferredOperationKHR -> IO Result) vkDeferredOperationJoinKHR) + (castFunPtr @_ @(Ptr Device_T -> ("pCreateInfo" ::: Ptr (SomeStruct ComputePipelineCreateInfo)) -> ("pMemoryRequirements" ::: Ptr (SomeStruct MemoryRequirements2)) -> IO ()) vkGetPipelineIndirectMemoryRequirementsNV) + (castFunPtr @_ @(Ptr Device_T -> ("pInfo" ::: Ptr PipelineIndirectDeviceAddressInfoNV) -> IO DeviceAddress) vkGetPipelineIndirectDeviceAddressNV) (castFunPtr @_ @(Ptr CommandBuffer_T -> CullModeFlags -> IO ()) vkCmdSetCullMode) (castFunPtr @_ @(Ptr CommandBuffer_T -> FrontFace -> IO ()) vkCmdSetFrontFace) (castFunPtr @_ @(Ptr CommandBuffer_T -> PrimitiveTopology -> IO ()) vkCmdSetPrimitiveTopology) (castFunPtr @_ @(Ptr CommandBuffer_T -> ("viewportCount" ::: Word32) -> ("pViewports" ::: Ptr Viewport) -> IO ()) vkCmdSetViewportWithCount) (castFunPtr @_ @(Ptr CommandBuffer_T -> ("scissorCount" ::: Word32) -> ("pScissors" ::: Ptr Rect2D) -> IO ()) vkCmdSetScissorWithCount) + (castFunPtr @_ @(Ptr CommandBuffer_T -> Buffer -> ("offset" ::: DeviceSize) -> DeviceSize -> IndexType -> IO ()) vkCmdBindIndexBuffer2KHR) (castFunPtr @_ @(Ptr CommandBuffer_T -> ("firstBinding" ::: Word32) -> ("bindingCount" ::: Word32) -> ("pBuffers" ::: Ptr Buffer) -> ("pOffsets" ::: Ptr DeviceSize) -> ("pSizes" ::: Ptr DeviceSize) -> ("pStrides" ::: Ptr DeviceSize) -> IO ()) vkCmdBindVertexBuffers2) (castFunPtr @_ @(Ptr CommandBuffer_T -> ("depthTestEnable" ::: Bool32) -> IO ()) vkCmdSetDepthTestEnable) (castFunPtr @_ @(Ptr CommandBuffer_T -> ("depthWriteEnable" ::: Bool32) -> IO ()) vkCmdSetDepthWriteEnable) @@ -2635,7 +2740,7 @@ initDeviceCmds instanceCmds handle = do (castFunPtr @_ @(Ptr Device_T -> ObjectType -> ("objectHandle" ::: Word64) -> PrivateDataSlot -> ("pData" ::: Ptr Word64) -> IO ()) vkGetPrivateData) (castFunPtr @_ @(Ptr CommandBuffer_T -> ("pCopyBufferInfo" ::: Ptr CopyBufferInfo2) -> IO ()) vkCmdCopyBuffer2) (castFunPtr @_ @(Ptr CommandBuffer_T -> ("pCopyImageInfo" ::: Ptr CopyImageInfo2) -> IO ()) vkCmdCopyImage2) - (castFunPtr @_ @(Ptr CommandBuffer_T -> ("pBlitImageInfo" ::: Ptr BlitImageInfo2) -> IO ()) vkCmdBlitImage2) + (castFunPtr @_ @(Ptr CommandBuffer_T -> ("pBlitImageInfo" ::: Ptr (SomeStruct BlitImageInfo2)) -> IO ()) vkCmdBlitImage2) (castFunPtr @_ @(Ptr CommandBuffer_T -> ("pCopyBufferToImageInfo" ::: Ptr CopyBufferToImageInfo2) -> IO ()) vkCmdCopyBufferToImage2) (castFunPtr @_ @(Ptr CommandBuffer_T -> ("pCopyImageToBufferInfo" ::: Ptr CopyImageToBufferInfo2) -> IO ()) vkCmdCopyImageToBuffer2) (castFunPtr @_ @(Ptr CommandBuffer_T -> ("pResolveImageInfo" ::: Ptr ResolveImageInfo2) -> IO ()) vkCmdResolveImage2) @@ -2652,6 +2757,10 @@ initDeviceCmds instanceCmds handle = do (castFunPtr @_ @(Ptr CommandBuffer_T -> PipelineStageFlags2 -> QueryPool -> ("query" ::: Word32) -> IO ()) vkCmdWriteTimestamp2) (castFunPtr @_ @(Ptr CommandBuffer_T -> PipelineStageFlags2 -> ("dstBuffer" ::: Buffer) -> ("dstOffset" ::: DeviceSize) -> ("marker" ::: Word32) -> IO ()) vkCmdWriteBufferMarker2AMD) (castFunPtr @_ @(Ptr Queue_T -> ("pCheckpointDataCount" ::: Ptr Word32) -> ("pCheckpointData" ::: Ptr CheckpointData2NV) -> IO ()) vkGetQueueCheckpointData2NV) + (castFunPtr @_ @(Ptr Device_T -> ("pCopyMemoryToImageInfo" ::: Ptr CopyMemoryToImageInfoEXT) -> IO Result) vkCopyMemoryToImageEXT) + (castFunPtr @_ @(Ptr Device_T -> ("pCopyImageToMemoryInfo" ::: Ptr CopyImageToMemoryInfoEXT) -> IO Result) vkCopyImageToMemoryEXT) + (castFunPtr @_ @(Ptr Device_T -> ("pCopyImageToImageInfo" ::: Ptr CopyImageToImageInfoEXT) -> IO Result) vkCopyImageToImageEXT) + (castFunPtr @_ @(Ptr Device_T -> ("transitionCount" ::: Word32) -> ("pTransitions" ::: Ptr HostImageLayoutTransitionInfoEXT) -> IO Result) vkTransitionImageLayoutEXT) (castFunPtr @_ @(Ptr CommandBuffer_T -> ("decompressRegionCount" ::: Word32) -> ("pDecompressMemoryRegions" ::: Ptr DecompressMemoryRegionNV) -> IO ()) vkCmdDecompressMemoryNV) (castFunPtr @_ @(Ptr CommandBuffer_T -> ("indirectCommandsAddress" ::: DeviceAddress) -> ("indirectCommandsCountAddress" ::: DeviceAddress) -> ("stride" ::: Word32) -> IO ()) vkCmdDecompressMemoryIndirectCountNV) (castFunPtr @_ @(Ptr Device_T -> ("pCreateInfo" ::: Ptr CuModuleCreateInfoNVX) -> ("pAllocator" ::: Ptr AllocationCallbacks) -> ("pModule" ::: Ptr CuModuleNVX) -> IO Result) vkCreateCuModuleNVX) @@ -2697,7 +2806,7 @@ initDeviceCmds instanceCmds handle = do (castFunPtr @_ @(Ptr Device_T -> AccelerationStructureBuildTypeKHR -> Ptr MicromapBuildInfoEXT -> ("pSizeInfo" ::: Ptr MicromapBuildSizesInfoEXT) -> IO ()) vkGetMicromapBuildSizesEXT) (castFunPtr @_ @(Ptr Device_T -> ShaderModule -> ("pIdentifier" ::: Ptr ShaderModuleIdentifierEXT) -> IO ()) vkGetShaderModuleIdentifierEXT) (castFunPtr @_ @(Ptr Device_T -> ("pCreateInfo" ::: Ptr (SomeStruct ShaderModuleCreateInfo)) -> ("pIdentifier" ::: Ptr ShaderModuleIdentifierEXT) -> IO ()) vkGetShaderModuleCreateInfoIdentifierEXT) - (castFunPtr @_ @(Ptr Device_T -> Image -> ("pSubresource" ::: Ptr ImageSubresource2EXT) -> ("pLayout" ::: Ptr (SomeStruct SubresourceLayout2EXT)) -> IO ()) vkGetImageSubresourceLayout2EXT) + (castFunPtr @_ @(Ptr Device_T -> Image -> ("pSubresource" ::: Ptr ImageSubresource2KHR) -> ("pLayout" ::: Ptr (SomeStruct SubresourceLayout2KHR)) -> IO ()) vkGetImageSubresourceLayout2KHR) (castFunPtr @_ @(Ptr Device_T -> ("pPipelineInfo" ::: Ptr PipelineInfoEXT) -> ("pPipelineProperties" ::: Ptr BaseOutStructure) -> IO Result) vkGetPipelinePropertiesEXT) (castFunPtr @_ @(Ptr Device_T -> ("pMetalObjectsInfo" ::: Ptr (SomeStruct ExportMetalObjectsInfoEXT)) -> IO ()) vkExportMetalObjectsEXT) (castFunPtr @_ @(Ptr Device_T -> Framebuffer -> ("pPropertiesCount" ::: Ptr Word32) -> ("pProperties" ::: Ptr TilePropertiesQCOM) -> IO Result) vkGetFramebufferTilePropertiesQCOM) @@ -2707,11 +2816,26 @@ initDeviceCmds instanceCmds handle = do (castFunPtr @_ @(Ptr Device_T -> OpticalFlowSessionNV -> OpticalFlowSessionBindingPointNV -> ImageView -> ImageLayout -> IO Result) vkBindOpticalFlowSessionImageNV) (castFunPtr @_ @(Ptr CommandBuffer_T -> OpticalFlowSessionNV -> ("pExecuteInfo" ::: Ptr OpticalFlowExecuteInfoNV) -> IO ()) vkCmdOpticalFlowExecuteNV) (castFunPtr @_ @(Ptr Device_T -> ("pFaultCounts" ::: Ptr DeviceFaultCountsEXT) -> ("pFaultInfo" ::: Ptr DeviceFaultInfoEXT) -> IO Result) vkGetDeviceFaultInfoEXT) + (castFunPtr @_ @(Ptr CommandBuffer_T -> ("pDepthBiasInfo" ::: Ptr (SomeStruct DepthBiasInfoEXT)) -> IO ()) vkCmdSetDepthBias2EXT) (castFunPtr @_ @(Ptr Device_T -> ("pReleaseInfo" ::: Ptr ReleaseSwapchainImagesInfoEXT) -> IO Result) vkReleaseSwapchainImagesEXT) + (castFunPtr @_ @(Ptr Device_T -> ("pInfo" ::: Ptr DeviceImageSubresourceInfoKHR) -> ("pLayout" ::: Ptr (SomeStruct SubresourceLayout2KHR)) -> IO ()) vkGetDeviceImageSubresourceLayoutKHR) (castFunPtr @_ @(Ptr Device_T -> ("pMemoryMapInfo" ::: Ptr MemoryMapInfoKHR) -> ("ppData" ::: Ptr (Ptr ())) -> IO Result) vkMapMemory2KHR) (castFunPtr @_ @(Ptr Device_T -> ("pMemoryUnmapInfo" ::: Ptr MemoryUnmapInfoKHR) -> IO Result) vkUnmapMemory2KHR) (castFunPtr @_ @(Ptr Device_T -> ("createInfoCount" ::: Word32) -> ("pCreateInfos" ::: Ptr (SomeStruct ShaderCreateInfoEXT)) -> ("pAllocator" ::: Ptr AllocationCallbacks) -> ("pShaders" ::: Ptr ShaderEXT) -> IO Result) vkCreateShadersEXT) (castFunPtr @_ @(Ptr Device_T -> ShaderEXT -> ("pAllocator" ::: Ptr AllocationCallbacks) -> IO ()) vkDestroyShaderEXT) (castFunPtr @_ @(Ptr Device_T -> ShaderEXT -> ("pDataSize" ::: Ptr CSize) -> ("pData" ::: Ptr ()) -> IO Result) vkGetShaderBinaryDataEXT) (castFunPtr @_ @(Ptr CommandBuffer_T -> ("stageCount" ::: Word32) -> ("pStages" ::: Ptr ShaderStageFlagBits) -> ("pShaders" ::: Ptr ShaderEXT) -> IO ()) vkCmdBindShadersEXT) + (castFunPtr @_ @(Ptr Device_T -> Ptr Screen_buffer -> ("pProperties" ::: Ptr (SomeStruct ScreenBufferPropertiesQNX)) -> IO Result) vkGetScreenBufferPropertiesQNX) + (castFunPtr @_ @(Ptr Device_T -> ("executionGraph" ::: Pipeline) -> ("pSizeInfo" ::: Ptr ExecutionGraphPipelineScratchSizeAMDX) -> IO Result) vkGetExecutionGraphPipelineScratchSizeAMDX) + (castFunPtr @_ @(Ptr Device_T -> ("executionGraph" ::: Pipeline) -> ("pNodeInfo" ::: Ptr PipelineShaderStageNodeCreateInfoAMDX) -> ("pNodeIndex" ::: Ptr Word32) -> IO Result) vkGetExecutionGraphPipelineNodeIndexAMDX) + (castFunPtr @_ @(Ptr Device_T -> PipelineCache -> ("createInfoCount" ::: Word32) -> ("pCreateInfos" ::: Ptr (SomeStruct ExecutionGraphPipelineCreateInfoAMDX)) -> ("pAllocator" ::: Ptr AllocationCallbacks) -> ("pPipelines" ::: Ptr Pipeline) -> IO Result) vkCreateExecutionGraphPipelinesAMDX) + (castFunPtr @_ @(Ptr CommandBuffer_T -> ("scratch" ::: DeviceAddress) -> IO ()) vkCmdInitializeGraphScratchMemoryAMDX) + (castFunPtr @_ @(Ptr CommandBuffer_T -> ("scratch" ::: DeviceAddress) -> ("pCountInfo" ::: Ptr DispatchGraphCountInfoAMDX) -> IO ()) vkCmdDispatchGraphAMDX) + (castFunPtr @_ @(Ptr CommandBuffer_T -> ("scratch" ::: DeviceAddress) -> ("pCountInfo" ::: Ptr DispatchGraphCountInfoAMDX) -> IO ()) vkCmdDispatchGraphIndirectAMDX) + (castFunPtr @_ @(Ptr CommandBuffer_T -> ("scratch" ::: DeviceAddress) -> ("countInfo" ::: DeviceAddress) -> IO ()) vkCmdDispatchGraphIndirectCountAMDX) + (castFunPtr @_ @(Ptr Device_T -> SwapchainKHR -> ("pSleepModeInfo" ::: Ptr LatencySleepModeInfoNV) -> IO Result) vkSetLatencySleepModeNV) + (castFunPtr @_ @(Ptr Device_T -> SwapchainKHR -> ("pSleepInfo" ::: Ptr LatencySleepInfoNV) -> IO Result) vkLatencySleepNV) + (castFunPtr @_ @(Ptr Device_T -> SwapchainKHR -> ("pLatencyMarkerInfo" ::: Ptr SetLatencyMarkerInfoNV) -> IO ()) vkSetLatencyMarkerNV) + (castFunPtr @_ @(Ptr Device_T -> SwapchainKHR -> ("pTimingCount" ::: Ptr Word32) -> ("pLatencyMarkerInfo" ::: Ptr GetLatencyMarkerInfoNV) -> IO ()) vkGetLatencyTimingsNV) + (castFunPtr @_ @(Ptr Queue_T -> ("pQueueTypeInfo" ::: Ptr OutOfBandQueueTypeInfoNV) -> IO ()) vkQueueNotifyOutOfBandNV) diff --git a/src/Vulkan/Exception.hs b/src/Vulkan/Exception.hs index 27cf9ad81..cf7978210 100644 --- a/src/Vulkan/Exception.hs +++ b/src/Vulkan/Exception.hs @@ -43,6 +43,7 @@ resultString = \case THREAD_IDLE_KHR -> "A deferred operation is not complete but there is currently no work for this thread to do at the time of this call" ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT -> "An operation on a swapchain created with VK_FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT failed as it did not have exclusive full-screen access" ERROR_INVALID_SHADER_NV -> "One or more shaders failed to compile or link" + ERROR_VALIDATION_FAILED_EXT -> "A command failed because invalid usage was detected by the implementation or a validation-layer" ERROR_INCOMPATIBLE_DISPLAY_KHR -> "The display used by a swapchain does not use the same presentable image layout, or is incompatible in a way that prevents sharing an image" ERROR_OUT_OF_DATE_KHR -> "A surface has changed in such a way that it is no longer compatible with the swapchain, and further presentation requests using the swapchain will fail" SUBOPTIMAL_KHR -> "A swapchain no longer matches the surface properties exactly, but can still be used to present to the surface successfully" diff --git a/src/Vulkan/Extensions.hs b/src/Vulkan/Extensions.hs index 1ecce6661..d5de6824a 100644 --- a/src/Vulkan/Extensions.hs +++ b/src/Vulkan/Extensions.hs @@ -2,6 +2,7 @@ -- No documentation found for Chapter "Extensions" module Vulkan.Extensions ( module Vulkan.Extensions.Dependencies , module Vulkan.Extensions.Handles + , module Vulkan.Extensions.VK_AMDX_shader_enqueue , module Vulkan.Extensions.VK_AMD_buffer_marker , module Vulkan.Extensions.VK_AMD_device_coherent_memory , module Vulkan.Extensions.VK_AMD_display_native_hdr @@ -24,6 +25,7 @@ module Vulkan.Extensions ( module Vulkan.Extensions.Dependencies , module Vulkan.Extensions.VK_AMD_shader_info , module Vulkan.Extensions.VK_AMD_shader_trinary_minmax , module Vulkan.Extensions.VK_AMD_texture_gather_bias_lod + , module Vulkan.Extensions.VK_ANDROID_external_format_resolve , module Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer , module Vulkan.Extensions.VK_ARM_rasterization_order_attachment_access , module Vulkan.Extensions.VK_ARM_shader_core_builtins @@ -32,6 +34,7 @@ module Vulkan.Extensions ( module Vulkan.Extensions.Dependencies , module Vulkan.Extensions.VK_EXT_acquire_drm_display , module Vulkan.Extensions.VK_EXT_acquire_xlib_display , module Vulkan.Extensions.VK_EXT_astc_decode_mode + , module Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state , module Vulkan.Extensions.VK_EXT_attachment_feedback_loop_layout , module Vulkan.Extensions.VK_EXT_blend_operation_advanced , module Vulkan.Extensions.VK_EXT_border_color_swizzle @@ -44,6 +47,7 @@ module Vulkan.Extensions ( module Vulkan.Extensions.Dependencies , module Vulkan.Extensions.VK_EXT_debug_marker , module Vulkan.Extensions.VK_EXT_debug_report , module Vulkan.Extensions.VK_EXT_debug_utils + , module Vulkan.Extensions.VK_EXT_depth_bias_control , module Vulkan.Extensions.VK_EXT_depth_clamp_zero_one , module Vulkan.Extensions.VK_EXT_depth_clip_control , module Vulkan.Extensions.VK_EXT_depth_clip_enable @@ -58,21 +62,25 @@ module Vulkan.Extensions ( module Vulkan.Extensions.Dependencies , module Vulkan.Extensions.VK_EXT_discard_rectangles , module Vulkan.Extensions.VK_EXT_display_control , module Vulkan.Extensions.VK_EXT_display_surface_counter + , module Vulkan.Extensions.VK_EXT_dynamic_rendering_unused_attachments , module Vulkan.Extensions.VK_EXT_extended_dynamic_state , module Vulkan.Extensions.VK_EXT_extended_dynamic_state2 , module Vulkan.Extensions.VK_EXT_extended_dynamic_state3 + , module Vulkan.Extensions.VK_EXT_external_memory_acquire_unmodified , module Vulkan.Extensions.VK_EXT_external_memory_dma_buf , module Vulkan.Extensions.VK_EXT_external_memory_host , module Vulkan.Extensions.VK_EXT_filter_cubic , module Vulkan.Extensions.VK_EXT_fragment_density_map , module Vulkan.Extensions.VK_EXT_fragment_density_map2 , module Vulkan.Extensions.VK_EXT_fragment_shader_interlock + , module Vulkan.Extensions.VK_EXT_frame_boundary , module Vulkan.Extensions.VK_EXT_full_screen_exclusive , module Vulkan.Extensions.VK_EXT_global_priority , module Vulkan.Extensions.VK_EXT_global_priority_query , module Vulkan.Extensions.VK_EXT_graphics_pipeline_library , module Vulkan.Extensions.VK_EXT_hdr_metadata , module Vulkan.Extensions.VK_EXT_headless_surface + , module Vulkan.Extensions.VK_EXT_host_image_copy , module Vulkan.Extensions.VK_EXT_host_query_reset , module Vulkan.Extensions.VK_EXT_image_2d_view_of_3d , module Vulkan.Extensions.VK_EXT_image_compression_control @@ -94,6 +102,7 @@ module Vulkan.Extensions ( module Vulkan.Extensions.Dependencies , module Vulkan.Extensions.VK_EXT_multi_draw , module Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled , module Vulkan.Extensions.VK_EXT_mutable_descriptor_type + , module Vulkan.Extensions.VK_EXT_nested_command_buffer , module Vulkan.Extensions.VK_EXT_non_seamless_cube_map , module Vulkan.Extensions.VK_EXT_opacity_micromap , module Vulkan.Extensions.VK_EXT_pageable_device_local_memory @@ -169,6 +178,7 @@ module Vulkan.Extensions ( module Vulkan.Extensions.Dependencies , module Vulkan.Extensions.VK_KHR_android_surface , module Vulkan.Extensions.VK_KHR_bind_memory2 , module Vulkan.Extensions.VK_KHR_buffer_device_address + , module Vulkan.Extensions.VK_KHR_cooperative_matrix , module Vulkan.Extensions.VK_KHR_copy_commands2 , module Vulkan.Extensions.VK_KHR_create_renderpass2 , module Vulkan.Extensions.VK_KHR_dedicated_allocation @@ -209,6 +219,7 @@ module Vulkan.Extensions ( module Vulkan.Extensions.Dependencies , module Vulkan.Extensions.VK_KHR_maintenance2 , module Vulkan.Extensions.VK_KHR_maintenance3 , module Vulkan.Extensions.VK_KHR_maintenance4 + , module Vulkan.Extensions.VK_KHR_maintenance5 , module Vulkan.Extensions.VK_KHR_map_memory2 , module Vulkan.Extensions.VK_KHR_multiview , module Vulkan.Extensions.VK_KHR_performance_query @@ -222,6 +233,7 @@ module Vulkan.Extensions ( module Vulkan.Extensions.Dependencies , module Vulkan.Extensions.VK_KHR_ray_query , module Vulkan.Extensions.VK_KHR_ray_tracing_maintenance1 , module Vulkan.Extensions.VK_KHR_ray_tracing_pipeline + , module Vulkan.Extensions.VK_KHR_ray_tracing_position_fetch , module Vulkan.Extensions.VK_KHR_relaxed_block_layout , module Vulkan.Extensions.VK_KHR_sampler_mirror_clamp_to_edge , module Vulkan.Extensions.VK_KHR_sampler_ycbcr_conversion @@ -256,6 +268,7 @@ module Vulkan.Extensions ( module Vulkan.Extensions.Dependencies , module Vulkan.Extensions.VK_KHR_xlib_surface , module Vulkan.Extensions.VK_KHR_zero_initialize_workgroup_memory , module Vulkan.Extensions.VK_LUNARG_direct_driver_loading + , module Vulkan.Extensions.VK_MSFT_layered_driver , module Vulkan.Extensions.VK_MVK_ios_surface , module Vulkan.Extensions.VK_MVK_macos_surface , module Vulkan.Extensions.VK_NN_vi_surface @@ -271,10 +284,13 @@ module Vulkan.Extensions ( module Vulkan.Extensions.Dependencies , module Vulkan.Extensions.VK_NV_coverage_reduction_mode , module Vulkan.Extensions.VK_NV_dedicated_allocation , module Vulkan.Extensions.VK_NV_dedicated_allocation_image_aliasing + , module Vulkan.Extensions.VK_NV_descriptor_pool_overallocation , module Vulkan.Extensions.VK_NV_device_diagnostic_checkpoints , module Vulkan.Extensions.VK_NV_device_diagnostics_config , module Vulkan.Extensions.VK_NV_device_generated_commands + , module Vulkan.Extensions.VK_NV_device_generated_commands_compute , module Vulkan.Extensions.VK_NV_displacement_micromap + , module Vulkan.Extensions.VK_NV_extended_sparse_address_space , module Vulkan.Extensions.VK_NV_external_memory , module Vulkan.Extensions.VK_NV_external_memory_capabilities , module Vulkan.Extensions.VK_NV_external_memory_rdma @@ -289,6 +305,7 @@ module Vulkan.Extensions ( module Vulkan.Extensions.Dependencies , module Vulkan.Extensions.VK_NV_inherited_viewport_scissor , module Vulkan.Extensions.VK_NV_linear_color_attachment , module Vulkan.Extensions.VK_NV_low_latency + , module Vulkan.Extensions.VK_NV_low_latency2 , module Vulkan.Extensions.VK_NV_memory_decompression , module Vulkan.Extensions.VK_NV_mesh_shader , module Vulkan.Extensions.VK_NV_optical_flow @@ -306,8 +323,11 @@ module Vulkan.Extensions ( module Vulkan.Extensions.Dependencies , module Vulkan.Extensions.VK_NV_viewport_array2 , module Vulkan.Extensions.VK_NV_viewport_swizzle , module Vulkan.Extensions.VK_NV_win32_keyed_mutex + , module Vulkan.Extensions.VK_QCOM_filter_cubic_clamp + , module Vulkan.Extensions.VK_QCOM_filter_cubic_weights , module Vulkan.Extensions.VK_QCOM_fragment_density_map_offset , module Vulkan.Extensions.VK_QCOM_image_processing + , module Vulkan.Extensions.VK_QCOM_image_processing2 , module Vulkan.Extensions.VK_QCOM_multiview_per_view_render_areas , module Vulkan.Extensions.VK_QCOM_multiview_per_view_viewports , module Vulkan.Extensions.VK_QCOM_render_pass_shader_resolve @@ -315,6 +335,8 @@ module Vulkan.Extensions ( module Vulkan.Extensions.Dependencies , module Vulkan.Extensions.VK_QCOM_render_pass_transform , module Vulkan.Extensions.VK_QCOM_rotated_copy_commands , module Vulkan.Extensions.VK_QCOM_tile_properties + , module Vulkan.Extensions.VK_QCOM_ycbcr_degamma + , module Vulkan.Extensions.VK_QNX_external_memory_screen_buffer , module Vulkan.Extensions.VK_QNX_screen_surface , module Vulkan.Extensions.VK_SEC_amigo_profiling , module Vulkan.Extensions.VK_VALVE_descriptor_set_host_mapping @@ -322,6 +344,7 @@ module Vulkan.Extensions ( module Vulkan.Extensions.Dependencies ) where import Vulkan.Extensions.Dependencies import Vulkan.Extensions.Handles +import Vulkan.Extensions.VK_AMDX_shader_enqueue import Vulkan.Extensions.VK_AMD_buffer_marker import Vulkan.Extensions.VK_AMD_device_coherent_memory import Vulkan.Extensions.VK_AMD_display_native_hdr @@ -344,6 +367,7 @@ import Vulkan.Extensions.VK_AMD_shader_image_load_store_lod import Vulkan.Extensions.VK_AMD_shader_info import Vulkan.Extensions.VK_AMD_shader_trinary_minmax import Vulkan.Extensions.VK_AMD_texture_gather_bias_lod +import Vulkan.Extensions.VK_ANDROID_external_format_resolve import Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer import Vulkan.Extensions.VK_ARM_rasterization_order_attachment_access import Vulkan.Extensions.VK_ARM_shader_core_builtins @@ -352,6 +376,7 @@ import Vulkan.Extensions.VK_EXT_4444_formats import Vulkan.Extensions.VK_EXT_acquire_drm_display import Vulkan.Extensions.VK_EXT_acquire_xlib_display import Vulkan.Extensions.VK_EXT_astc_decode_mode +import Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state import Vulkan.Extensions.VK_EXT_attachment_feedback_loop_layout import Vulkan.Extensions.VK_EXT_blend_operation_advanced import Vulkan.Extensions.VK_EXT_border_color_swizzle @@ -364,6 +389,7 @@ import Vulkan.Extensions.VK_EXT_custom_border_color import Vulkan.Extensions.VK_EXT_debug_marker import Vulkan.Extensions.VK_EXT_debug_report import Vulkan.Extensions.VK_EXT_debug_utils +import Vulkan.Extensions.VK_EXT_depth_bias_control import Vulkan.Extensions.VK_EXT_depth_clamp_zero_one import Vulkan.Extensions.VK_EXT_depth_clip_control import Vulkan.Extensions.VK_EXT_depth_clip_enable @@ -378,21 +404,25 @@ import Vulkan.Extensions.VK_EXT_directfb_surface import Vulkan.Extensions.VK_EXT_discard_rectangles import Vulkan.Extensions.VK_EXT_display_control import Vulkan.Extensions.VK_EXT_display_surface_counter +import Vulkan.Extensions.VK_EXT_dynamic_rendering_unused_attachments import Vulkan.Extensions.VK_EXT_extended_dynamic_state import Vulkan.Extensions.VK_EXT_extended_dynamic_state2 import Vulkan.Extensions.VK_EXT_extended_dynamic_state3 +import Vulkan.Extensions.VK_EXT_external_memory_acquire_unmodified import Vulkan.Extensions.VK_EXT_external_memory_dma_buf import Vulkan.Extensions.VK_EXT_external_memory_host import Vulkan.Extensions.VK_EXT_filter_cubic import Vulkan.Extensions.VK_EXT_fragment_density_map import Vulkan.Extensions.VK_EXT_fragment_density_map2 import Vulkan.Extensions.VK_EXT_fragment_shader_interlock +import Vulkan.Extensions.VK_EXT_frame_boundary import Vulkan.Extensions.VK_EXT_full_screen_exclusive import Vulkan.Extensions.VK_EXT_global_priority import Vulkan.Extensions.VK_EXT_global_priority_query import Vulkan.Extensions.VK_EXT_graphics_pipeline_library import Vulkan.Extensions.VK_EXT_hdr_metadata import Vulkan.Extensions.VK_EXT_headless_surface +import Vulkan.Extensions.VK_EXT_host_image_copy import Vulkan.Extensions.VK_EXT_host_query_reset import Vulkan.Extensions.VK_EXT_image_2d_view_of_3d import Vulkan.Extensions.VK_EXT_image_compression_control @@ -414,6 +444,7 @@ import Vulkan.Extensions.VK_EXT_metal_surface import Vulkan.Extensions.VK_EXT_multi_draw import Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled import Vulkan.Extensions.VK_EXT_mutable_descriptor_type +import Vulkan.Extensions.VK_EXT_nested_command_buffer import Vulkan.Extensions.VK_EXT_non_seamless_cube_map import Vulkan.Extensions.VK_EXT_opacity_micromap import Vulkan.Extensions.VK_EXT_pageable_device_local_memory @@ -489,6 +520,7 @@ import Vulkan.Extensions.VK_KHR_acceleration_structure import Vulkan.Extensions.VK_KHR_android_surface import Vulkan.Extensions.VK_KHR_bind_memory2 import Vulkan.Extensions.VK_KHR_buffer_device_address +import Vulkan.Extensions.VK_KHR_cooperative_matrix import Vulkan.Extensions.VK_KHR_copy_commands2 import Vulkan.Extensions.VK_KHR_create_renderpass2 import Vulkan.Extensions.VK_KHR_dedicated_allocation @@ -529,6 +561,7 @@ import Vulkan.Extensions.VK_KHR_maintenance1 import Vulkan.Extensions.VK_KHR_maintenance2 import Vulkan.Extensions.VK_KHR_maintenance3 import Vulkan.Extensions.VK_KHR_maintenance4 +import Vulkan.Extensions.VK_KHR_maintenance5 import Vulkan.Extensions.VK_KHR_map_memory2 import Vulkan.Extensions.VK_KHR_multiview import Vulkan.Extensions.VK_KHR_performance_query @@ -542,6 +575,7 @@ import Vulkan.Extensions.VK_KHR_push_descriptor import Vulkan.Extensions.VK_KHR_ray_query import Vulkan.Extensions.VK_KHR_ray_tracing_maintenance1 import Vulkan.Extensions.VK_KHR_ray_tracing_pipeline +import Vulkan.Extensions.VK_KHR_ray_tracing_position_fetch import Vulkan.Extensions.VK_KHR_relaxed_block_layout import Vulkan.Extensions.VK_KHR_sampler_mirror_clamp_to_edge import Vulkan.Extensions.VK_KHR_sampler_ycbcr_conversion @@ -576,6 +610,7 @@ import Vulkan.Extensions.VK_KHR_xcb_surface import Vulkan.Extensions.VK_KHR_xlib_surface import Vulkan.Extensions.VK_KHR_zero_initialize_workgroup_memory import Vulkan.Extensions.VK_LUNARG_direct_driver_loading +import Vulkan.Extensions.VK_MSFT_layered_driver import Vulkan.Extensions.VK_MVK_ios_surface import Vulkan.Extensions.VK_MVK_macos_surface import Vulkan.Extensions.VK_NN_vi_surface @@ -591,10 +626,13 @@ import Vulkan.Extensions.VK_NV_corner_sampled_image import Vulkan.Extensions.VK_NV_coverage_reduction_mode import Vulkan.Extensions.VK_NV_dedicated_allocation import Vulkan.Extensions.VK_NV_dedicated_allocation_image_aliasing +import Vulkan.Extensions.VK_NV_descriptor_pool_overallocation import Vulkan.Extensions.VK_NV_device_diagnostic_checkpoints import Vulkan.Extensions.VK_NV_device_diagnostics_config import Vulkan.Extensions.VK_NV_device_generated_commands +import Vulkan.Extensions.VK_NV_device_generated_commands_compute import Vulkan.Extensions.VK_NV_displacement_micromap +import Vulkan.Extensions.VK_NV_extended_sparse_address_space import Vulkan.Extensions.VK_NV_external_memory import Vulkan.Extensions.VK_NV_external_memory_capabilities import Vulkan.Extensions.VK_NV_external_memory_rdma @@ -609,6 +647,7 @@ import Vulkan.Extensions.VK_NV_glsl_shader import Vulkan.Extensions.VK_NV_inherited_viewport_scissor import Vulkan.Extensions.VK_NV_linear_color_attachment import Vulkan.Extensions.VK_NV_low_latency +import Vulkan.Extensions.VK_NV_low_latency2 import Vulkan.Extensions.VK_NV_memory_decompression import Vulkan.Extensions.VK_NV_mesh_shader import Vulkan.Extensions.VK_NV_optical_flow @@ -626,8 +665,11 @@ import Vulkan.Extensions.VK_NV_shading_rate_image import Vulkan.Extensions.VK_NV_viewport_array2 import Vulkan.Extensions.VK_NV_viewport_swizzle import Vulkan.Extensions.VK_NV_win32_keyed_mutex +import Vulkan.Extensions.VK_QCOM_filter_cubic_clamp +import Vulkan.Extensions.VK_QCOM_filter_cubic_weights import Vulkan.Extensions.VK_QCOM_fragment_density_map_offset import Vulkan.Extensions.VK_QCOM_image_processing +import Vulkan.Extensions.VK_QCOM_image_processing2 import Vulkan.Extensions.VK_QCOM_multiview_per_view_render_areas import Vulkan.Extensions.VK_QCOM_multiview_per_view_viewports import Vulkan.Extensions.VK_QCOM_render_pass_shader_resolve @@ -635,6 +677,8 @@ import Vulkan.Extensions.VK_QCOM_render_pass_store_ops import Vulkan.Extensions.VK_QCOM_render_pass_transform import Vulkan.Extensions.VK_QCOM_rotated_copy_commands import Vulkan.Extensions.VK_QCOM_tile_properties +import Vulkan.Extensions.VK_QCOM_ycbcr_degamma +import Vulkan.Extensions.VK_QNX_external_memory_screen_buffer import Vulkan.Extensions.VK_QNX_screen_surface import Vulkan.Extensions.VK_SEC_amigo_profiling import Vulkan.Extensions.VK_VALVE_descriptor_set_host_mapping diff --git a/src/Vulkan/Extensions/Handles.hs b/src/Vulkan/Extensions/Handles.hs index 76e8d9d30..8534acd55 100644 --- a/src/Vulkan/Extensions/Handles.hs +++ b/src/Vulkan/Extensions/Handles.hs @@ -533,14 +533,18 @@ instance Show SurfaceKHR where -- 'Vulkan.Extensions.VK_KHR_display_swapchain.createSharedSwapchainsKHR', -- 'Vulkan.Extensions.VK_KHR_swapchain.createSwapchainKHR', -- 'Vulkan.Extensions.VK_KHR_swapchain.destroySwapchainKHR', +-- 'Vulkan.Extensions.VK_NV_low_latency2.getLatencyTimingsNV', -- 'Vulkan.Extensions.VK_GOOGLE_display_timing.getPastPresentationTimingGOOGLE', -- 'Vulkan.Extensions.VK_GOOGLE_display_timing.getRefreshCycleDurationGOOGLE', -- 'Vulkan.Extensions.VK_EXT_display_control.getSwapchainCounterEXT', -- 'Vulkan.Extensions.VK_KHR_swapchain.getSwapchainImagesKHR', -- 'Vulkan.Extensions.VK_KHR_shared_presentable_image.getSwapchainStatusKHR', +-- 'Vulkan.Extensions.VK_NV_low_latency2.latencySleepNV', -- 'Vulkan.Extensions.VK_KHR_swapchain.queuePresentKHR', -- 'Vulkan.Extensions.VK_EXT_full_screen_exclusive.releaseFullScreenExclusiveModeEXT', -- 'Vulkan.Extensions.VK_EXT_hdr_metadata.setHdrMetadataEXT', +-- 'Vulkan.Extensions.VK_NV_low_latency2.setLatencyMarkerNV', +-- 'Vulkan.Extensions.VK_NV_low_latency2.setLatencySleepModeNV', -- 'Vulkan.Extensions.VK_AMD_display_native_hdr.setLocalDimmingAMD', -- 'Vulkan.Extensions.VK_KHR_present_wait.waitForPresentKHR' newtype SwapchainKHR = SwapchainKHR Word64 diff --git a/src/Vulkan/Extensions/VK_AMDX_shader_enqueue.hs b/src/Vulkan/Extensions/VK_AMDX_shader_enqueue.hs new file mode 100644 index 000000000..854767eeb --- /dev/null +++ b/src/Vulkan/Extensions/VK_AMDX_shader_enqueue.hs @@ -0,0 +1,4113 @@ +{-# language CPP #-} +-- | = Name +-- +-- VK_AMDX_shader_enqueue - device extension +-- +-- == VK_AMDX_shader_enqueue +-- +-- [__Name String__] +-- @VK_AMDX_shader_enqueue@ +-- +-- [__Extension Type__] +-- Device extension +-- +-- [__Registered Extension Number__] +-- 135 +-- +-- [__Revision__] +-- 1 +-- +-- [__Ratification Status__] +-- Not ratified +-- +-- [__Extension and Version Dependencies__] +-- +-- and +-- +-- and +-- +-- and +-- +-- +-- - __This is a /provisional/ extension and /must/ be used with +-- caution. See the +-- +-- of provisional header files for enablement and stability +-- details.__ +-- +-- [__Contact__] +-- +-- - Tobias Hector +-- +-- +-- [__Extension Proposal__] +-- +-- +-- == Other Extension Metadata +-- +-- [__Last Modified Date__] +-- 2021-07-22 +-- +-- [__Interactions and External Dependencies__] +-- +-- - This extension requires +-- . +-- +-- [__Provisional__] +-- __This extension is /provisional/ and /should/ not be used in +-- production applications. The functionality /may/ change in ways that +-- break backwards compatibility between revisions, and before final +-- release.__ +-- +-- [__Contributors__] +-- +-- - Tobias Hector, AMD +-- +-- - Matthaeus Chajdas, AMD +-- +-- - Maciej Jesionowski, AMD +-- +-- - Robert Martin, AMD +-- +-- - Qun Lin, AMD +-- +-- - Rex Xu, AMD +-- +-- - Dominik Witczak, AMD +-- +-- - Karthik Srinivasan, AMD +-- +-- - Nicolai Haehnle, AMD +-- +-- - Stuart Smith, AMD +-- +-- == Description +-- +-- This extension adds the ability for developers to enqueue compute shader +-- workgroups from other compute shaders. +-- +-- == New Commands +-- +-- - 'cmdDispatchGraphAMDX' +-- +-- - 'cmdDispatchGraphIndirectAMDX' +-- +-- - 'cmdDispatchGraphIndirectCountAMDX' +-- +-- - 'cmdInitializeGraphScratchMemoryAMDX' +-- +-- - 'createExecutionGraphPipelinesAMDX' +-- +-- - 'getExecutionGraphPipelineNodeIndexAMDX' +-- +-- - 'getExecutionGraphPipelineScratchSizeAMDX' +-- +-- == New Structures +-- +-- - 'DispatchGraphCountInfoAMDX' +-- +-- - 'DispatchGraphInfoAMDX' +-- +-- - 'ExecutionGraphPipelineCreateInfoAMDX' +-- +-- - 'ExecutionGraphPipelineScratchSizeAMDX' +-- +-- - Extending +-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2', +-- 'Vulkan.Core10.Device.DeviceCreateInfo': +-- +-- - 'PhysicalDeviceShaderEnqueueFeaturesAMDX' +-- +-- - Extending +-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2': +-- +-- - 'PhysicalDeviceShaderEnqueuePropertiesAMDX' +-- +-- - Extending 'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo': +-- +-- - 'PipelineShaderStageNodeCreateInfoAMDX' +-- +-- == New Unions +-- +-- - 'DeviceOrHostAddressConstAMDX' +-- +-- == New Enum Constants +-- +-- - 'AMDX_SHADER_ENQUEUE_EXTENSION_NAME' +-- +-- - 'AMDX_SHADER_ENQUEUE_SPEC_VERSION' +-- +-- - 'Vulkan.Core10.APIConstants.SHADER_INDEX_UNUSED_AMDX' +-- +-- - Extending +-- 'Vulkan.Core10.Enums.BufferUsageFlagBits.BufferUsageFlagBits': +-- +-- - 'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_EXECUTION_GRAPH_SCRATCH_BIT_AMDX' +-- +-- - Extending 'Vulkan.Core10.Enums.PipelineBindPoint.PipelineBindPoint': +-- +-- - 'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_EXECUTION_GRAPH_AMDX' +-- +-- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType': +-- +-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_EXECUTION_GRAPH_PIPELINE_CREATE_INFO_AMDX' +-- +-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_EXECUTION_GRAPH_PIPELINE_SCRATCH_SIZE_AMDX' +-- +-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ENQUEUE_FEATURES_AMDX' +-- +-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ENQUEUE_PROPERTIES_AMDX' +-- +-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_NODE_CREATE_INFO_AMDX' +-- +-- If +-- +-- is supported: +-- +-- - Extending 'BufferUsageFlagBits2KHR': +-- +-- - 'BUFFER_USAGE_2_EXECUTION_GRAPH_SCRATCH_BIT_AMDX' +-- +-- == Version History +-- +-- - Revision 1, 2021-07-22 (Tobias Hector) +-- +-- - Initial revision +-- +-- == See Also +-- +-- 'Vulkan.Core10.APIConstants.SHADER_INDEX_UNUSED_AMDX', +-- 'DeviceOrHostAddressConstAMDX', 'DispatchGraphCountInfoAMDX', +-- 'DispatchGraphInfoAMDX', 'ExecutionGraphPipelineCreateInfoAMDX', +-- 'ExecutionGraphPipelineScratchSizeAMDX', +-- 'PhysicalDeviceShaderEnqueueFeaturesAMDX', +-- 'PhysicalDeviceShaderEnqueuePropertiesAMDX', +-- 'PipelineShaderStageNodeCreateInfoAMDX', 'cmdDispatchGraphAMDX', +-- 'cmdDispatchGraphIndirectAMDX', 'cmdDispatchGraphIndirectCountAMDX', +-- 'cmdInitializeGraphScratchMemoryAMDX', +-- 'createExecutionGraphPipelinesAMDX', +-- 'getExecutionGraphPipelineNodeIndexAMDX', +-- 'getExecutionGraphPipelineScratchSizeAMDX' +-- +-- == Document Notes +-- +-- For more information, see the +-- +-- +-- This page is a generated document. Fixes and changes should be made to +-- the generator scripts, not directly. +module Vulkan.Extensions.VK_AMDX_shader_enqueue ( getExecutionGraphPipelineScratchSizeAMDX + , getExecutionGraphPipelineNodeIndexAMDX + , createExecutionGraphPipelinesAMDX + , cmdInitializeGraphScratchMemoryAMDX + , cmdDispatchGraphAMDX + , cmdDispatchGraphIndirectAMDX + , cmdDispatchGraphIndirectCountAMDX + , PhysicalDeviceShaderEnqueuePropertiesAMDX(..) + , PhysicalDeviceShaderEnqueueFeaturesAMDX(..) + , ExecutionGraphPipelineCreateInfoAMDX(..) + , PipelineShaderStageNodeCreateInfoAMDX(..) + , ExecutionGraphPipelineScratchSizeAMDX(..) + , DispatchGraphInfoAMDX(..) + , DispatchGraphCountInfoAMDX(..) + , DeviceOrHostAddressConstAMDX(..) + , BufferUsageFlags2KHR + , BufferUsageFlagBits2KHR( BUFFER_USAGE_2_TRANSFER_SRC_BIT_KHR + , BUFFER_USAGE_2_TRANSFER_DST_BIT_KHR + , BUFFER_USAGE_2_UNIFORM_TEXEL_BUFFER_BIT_KHR + , BUFFER_USAGE_2_STORAGE_TEXEL_BUFFER_BIT_KHR + , BUFFER_USAGE_2_UNIFORM_BUFFER_BIT_KHR + , BUFFER_USAGE_2_STORAGE_BUFFER_BIT_KHR + , BUFFER_USAGE_2_INDEX_BUFFER_BIT_KHR + , BUFFER_USAGE_2_VERTEX_BUFFER_BIT_KHR + , BUFFER_USAGE_2_INDIRECT_BUFFER_BIT_KHR + , BUFFER_USAGE_2_MICROMAP_STORAGE_BIT_EXT + , BUFFER_USAGE_2_MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT + , BUFFER_USAGE_2_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT + , BUFFER_USAGE_2_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT + , BUFFER_USAGE_2_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT + , BUFFER_USAGE_2_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR + , BUFFER_USAGE_2_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR + , BUFFER_USAGE_2_SHADER_DEVICE_ADDRESS_BIT_KHR + , BUFFER_USAGE_2_VIDEO_ENCODE_SRC_BIT_KHR + , BUFFER_USAGE_2_VIDEO_ENCODE_DST_BIT_KHR + , BUFFER_USAGE_2_VIDEO_DECODE_DST_BIT_KHR + , BUFFER_USAGE_2_VIDEO_DECODE_SRC_BIT_KHR + , BUFFER_USAGE_2_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT + , BUFFER_USAGE_2_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT + , BUFFER_USAGE_2_SHADER_BINDING_TABLE_BIT_KHR + , BUFFER_USAGE_2_CONDITIONAL_RENDERING_BIT_EXT + , BUFFER_USAGE_2_EXECUTION_GRAPH_SCRATCH_BIT_AMDX + , .. + ) + , AMDX_SHADER_ENQUEUE_SPEC_VERSION + , pattern AMDX_SHADER_ENQUEUE_SPEC_VERSION + , AMDX_SHADER_ENQUEUE_EXTENSION_NAME + , pattern AMDX_SHADER_ENQUEUE_EXTENSION_NAME + , PipelineLibraryCreateInfoKHR(..) + , SHADER_INDEX_UNUSED_AMDX + , pattern SHADER_INDEX_UNUSED_AMDX + ) where + +import Data.Bits (Bits) +import Data.Bits (FiniteBits) +import Vulkan.Internal.Utils (enumReadPrec) +import Vulkan.Internal.Utils (enumShowsPrec) +import Vulkan.Internal.Utils (traceAroundEvent) +import Control.Exception.Base (bracket) +import Control.Monad (unless) +import Control.Monad.IO.Class (liftIO) +import Data.Typeable (eqT) +import Foreign.Marshal.Alloc (allocaBytes) +import Foreign.Marshal.Alloc (callocBytes) +import Foreign.Marshal.Alloc (free) +import Foreign.Marshal.Utils (maybePeek) +import GHC.Base (when) +import GHC.IO (throwIO) +import GHC.Ptr (castPtr) +import GHC.Ptr (nullFunPtr) +import Foreign.Ptr (nullPtr) +import Foreign.Ptr (plusPtr) +import GHC.Show (showString) +import Numeric (showHex) +import Data.ByteString (packCString) +import Data.ByteString (useAsCString) +import Control.Monad.Trans.Class (lift) +import Control.Monad.Trans.Cont (evalContT) +import Control.Monad.Trans.Cont (runContT) +import Data.Vector (generateM) +import qualified Data.Vector (imapM_) +import qualified Data.Vector (length) +import qualified Data.Vector (null) +import Vulkan.CStruct (FromCStruct) +import Vulkan.CStruct (FromCStruct(..)) +import Vulkan.CStruct (ToCStruct) +import Vulkan.CStruct (ToCStruct(..)) +import Vulkan.Zero (Zero) +import Vulkan.Zero (Zero(..)) +import Control.Monad.IO.Class (MonadIO) +import Data.String (IsString) +import Data.Type.Equality ((:~:)(Refl)) +import Data.Typeable (Typeable) +import Foreign.C.Types (CChar) +import Foreign.Storable (Storable) +import Foreign.Storable (Storable(peek)) +import Foreign.Storable (Storable(poke)) +import qualified Foreign.Storable (Storable(..)) +import GHC.Generics (Generic) +import GHC.IO.Exception (IOErrorType(..)) +import GHC.IO.Exception (IOException(..)) +import Data.Int (Int32) +import Foreign.Ptr (FunPtr) +import Foreign.Ptr (Ptr) +import GHC.Read (Read(readPrec)) +import GHC.Show (Show(showsPrec)) +import Data.Word (Word32) +import Data.Word (Word64) +import Data.ByteString (ByteString) +import Data.Kind (Type) +import Control.Monad.Trans.Cont (ContT(..)) +import Data.Vector (Vector) +import Vulkan.CStruct.Utils (advancePtrBytes) +import Vulkan.Core10.FundamentalTypes (bool32ToBool) +import Vulkan.Core10.FundamentalTypes (boolToBool32) +import Vulkan.CStruct.Extends (forgetExtensions) +import Vulkan.CStruct.Extends (peekSomeCStruct) +import Vulkan.CStruct.Extends (pokeSomeCStruct) +import Vulkan.NamedType ((:::)) +import Vulkan.Core10.AllocationCallbacks (AllocationCallbacks) +import Vulkan.Core10.FundamentalTypes (Bool32) +import Vulkan.CStruct.Extends (Chain) +import Vulkan.Core10.Handles (CommandBuffer) +import Vulkan.Core10.Handles (CommandBuffer(..)) +import Vulkan.Core10.Handles (CommandBuffer(CommandBuffer)) +import Vulkan.Core10.Handles (CommandBuffer_T) +import Vulkan.Core10.Handles (Device) +import Vulkan.Core10.Handles (Device(..)) +import Vulkan.Core10.Handles (Device(Device)) +import Vulkan.Core10.FundamentalTypes (DeviceAddress) +import Vulkan.Dynamic (DeviceCmds(pVkCmdDispatchGraphAMDX)) +import Vulkan.Dynamic (DeviceCmds(pVkCmdDispatchGraphIndirectAMDX)) +import Vulkan.Dynamic (DeviceCmds(pVkCmdDispatchGraphIndirectCountAMDX)) +import Vulkan.Dynamic (DeviceCmds(pVkCmdInitializeGraphScratchMemoryAMDX)) +import Vulkan.Dynamic (DeviceCmds(pVkCreateExecutionGraphPipelinesAMDX)) +import Vulkan.Dynamic (DeviceCmds(pVkGetExecutionGraphPipelineNodeIndexAMDX)) +import Vulkan.Dynamic (DeviceCmds(pVkGetExecutionGraphPipelineScratchSizeAMDX)) +import Vulkan.Core10.FundamentalTypes (DeviceSize) +import Vulkan.Core10.Handles (Device_T) +import Vulkan.CStruct.Extends (Extends) +import Vulkan.CStruct.Extends (Extendss) +import Vulkan.CStruct.Extends (Extensible(..)) +import Vulkan.Core10.FundamentalTypes (Flags64) +import Vulkan.CStruct.Extends (PeekChain) +import Vulkan.CStruct.Extends (PeekChain(..)) +import Vulkan.Core10.Handles (Pipeline) +import Vulkan.Core10.Handles (Pipeline(..)) +import Vulkan.Core10.Handles (PipelineCache) +import Vulkan.Core10.Handles (PipelineCache(..)) +import {-# SOURCE #-} Vulkan.Extensions.VK_AMD_pipeline_compiler_control (PipelineCompilerControlCreateInfoAMD) +import Vulkan.Core10.Enums.PipelineCreateFlagBits (PipelineCreateFlags) +import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_pipeline_creation_feedback (PipelineCreationFeedbackCreateInfo) +import Vulkan.Core10.Handles (PipelineLayout) +import Vulkan.Extensions.VK_KHR_pipeline_library (PipelineLibraryCreateInfoKHR) +import Vulkan.Core10.Pipeline (PipelineShaderStageCreateInfo) +import Vulkan.CStruct.Extends (PokeChain) +import Vulkan.CStruct.Extends (PokeChain(..)) +import Vulkan.Core10.Enums.Result (Result) +import Vulkan.Core10.Enums.Result (Result(..)) +import Vulkan.CStruct.Extends (SomeStruct) +import Vulkan.Core10.Enums.StructureType (StructureType) +import Vulkan.Exception (VulkanException(..)) +import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_EXECUTION_GRAPH_PIPELINE_CREATE_INFO_AMDX)) +import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_EXECUTION_GRAPH_PIPELINE_SCRATCH_SIZE_AMDX)) +import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ENQUEUE_FEATURES_AMDX)) +import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ENQUEUE_PROPERTIES_AMDX)) +import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_NODE_CREATE_INFO_AMDX)) +import Vulkan.Core10.Enums.Result (Result(SUCCESS)) +import Vulkan.Extensions.VK_KHR_pipeline_library (PipelineLibraryCreateInfoKHR(..)) +import Vulkan.Core10.APIConstants (SHADER_INDEX_UNUSED_AMDX) +import Vulkan.Core10.APIConstants (pattern SHADER_INDEX_UNUSED_AMDX) +foreign import ccall +#if !defined(SAFE_FOREIGN_CALLS) + unsafe +#endif + "dynamic" mkVkGetExecutionGraphPipelineScratchSizeAMDX + :: FunPtr (Ptr Device_T -> Pipeline -> Ptr ExecutionGraphPipelineScratchSizeAMDX -> IO Result) -> Ptr Device_T -> Pipeline -> Ptr ExecutionGraphPipelineScratchSizeAMDX -> IO Result + +-- | vkGetExecutionGraphPipelineScratchSizeAMDX - Query scratch space +-- required to dispatch an execution graph +-- +-- = Description +-- +-- After this function returns, information about the scratch space +-- required will be returned in @pSizeInfo@. +-- +-- == Return Codes +-- +-- [] +-- +-- - 'Vulkan.Core10.Enums.Result.SUCCESS' +-- +-- [] +-- +-- - 'Vulkan.Core10.Enums.Result.ERROR_OUT_OF_HOST_MEMORY' +-- +-- = See Also +-- +-- , +-- 'Vulkan.Core10.Handles.Device', 'ExecutionGraphPipelineScratchSizeAMDX', +-- 'Vulkan.Core10.Handles.Pipeline' +getExecutionGraphPipelineScratchSizeAMDX :: forall io + . (MonadIO io) + => -- | @device@ is the that @executionGraph@ was created on. + -- + -- #VUID-vkGetExecutionGraphPipelineScratchSizeAMDX-device-parameter# + -- @device@ /must/ be a valid 'Vulkan.Core10.Handles.Device' handle + Device + -> -- | @executionGraph@ is the execution graph pipeline to query the scratch + -- space for. + -- + -- #VUID-vkGetExecutionGraphPipelineScratchSizeAMDX-executionGraph-parameter# + -- @executionGraph@ /must/ be a valid 'Vulkan.Core10.Handles.Pipeline' + -- handle + -- + -- #VUID-vkGetExecutionGraphPipelineScratchSizeAMDX-executionGraph-parent# + -- @executionGraph@ /must/ have been created, allocated, or retrieved from + -- @device@ + ("executionGraph" ::: Pipeline) + -> io (("sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX)) +getExecutionGraphPipelineScratchSizeAMDX device + executionGraph = liftIO . evalContT $ do + let vkGetExecutionGraphPipelineScratchSizeAMDXPtr = pVkGetExecutionGraphPipelineScratchSizeAMDX (case device of Device{deviceCmds} -> deviceCmds) + lift $ unless (vkGetExecutionGraphPipelineScratchSizeAMDXPtr /= nullFunPtr) $ + throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetExecutionGraphPipelineScratchSizeAMDX is null" Nothing Nothing + let vkGetExecutionGraphPipelineScratchSizeAMDX' = mkVkGetExecutionGraphPipelineScratchSizeAMDX vkGetExecutionGraphPipelineScratchSizeAMDXPtr + pPSizeInfo <- ContT (withZeroCStruct @ExecutionGraphPipelineScratchSizeAMDX) + r <- lift $ traceAroundEvent "vkGetExecutionGraphPipelineScratchSizeAMDX" (vkGetExecutionGraphPipelineScratchSizeAMDX' + (deviceHandle (device)) + (executionGraph) + (pPSizeInfo)) + lift $ when (r < SUCCESS) (throwIO (VulkanException r)) + pSizeInfo <- lift $ peekCStruct @ExecutionGraphPipelineScratchSizeAMDX pPSizeInfo + pure $ (pSizeInfo) + + +foreign import ccall +#if !defined(SAFE_FOREIGN_CALLS) + unsafe +#endif + "dynamic" mkVkGetExecutionGraphPipelineNodeIndexAMDX + :: FunPtr (Ptr Device_T -> Pipeline -> Ptr PipelineShaderStageNodeCreateInfoAMDX -> Ptr Word32 -> IO Result) -> Ptr Device_T -> Pipeline -> Ptr PipelineShaderStageNodeCreateInfoAMDX -> Ptr Word32 -> IO Result + +-- | vkGetExecutionGraphPipelineNodeIndexAMDX - Query internal id of a node +-- in an execution graph +-- +-- = Description +-- +-- Once this function returns, the contents of @pNodeIndex@ contain the +-- internal node index of the identified node. +-- +-- == Valid Usage +-- +-- - #VUID-vkGetExecutionGraphPipelineNodeIndexAMDX-pNodeInfo-09140# +-- @pNodeInfo->pName@ /must/ not be @NULL@ +-- +-- - #VUID-vkGetExecutionGraphPipelineNodeIndexAMDX-pNodeInfo-09141# +-- @pNodeInfo->index@ /must/ not be +-- 'Vulkan.Core10.APIConstants.SHADER_INDEX_UNUSED_AMDX' +-- +-- - #VUID-vkGetExecutionGraphPipelineNodeIndexAMDX-executionGraph-09142# +-- There /must/ be a node in @executionGraph@ with a shader name and +-- index equal to @pNodeInfo->pName@ and @pNodeInfo->index@ +-- +-- == Valid Usage (Implicit) +-- +-- - #VUID-vkGetExecutionGraphPipelineNodeIndexAMDX-device-parameter# +-- @device@ /must/ be a valid 'Vulkan.Core10.Handles.Device' handle +-- +-- - #VUID-vkGetExecutionGraphPipelineNodeIndexAMDX-executionGraph-parameter# +-- @executionGraph@ /must/ be a valid 'Vulkan.Core10.Handles.Pipeline' +-- handle +-- +-- - #VUID-vkGetExecutionGraphPipelineNodeIndexAMDX-pNodeInfo-parameter# +-- @pNodeInfo@ /must/ be a valid pointer to a valid +-- 'PipelineShaderStageNodeCreateInfoAMDX' structure +-- +-- - #VUID-vkGetExecutionGraphPipelineNodeIndexAMDX-pNodeIndex-parameter# +-- @pNodeIndex@ /must/ be a valid pointer to a @uint32_t@ value +-- +-- - #VUID-vkGetExecutionGraphPipelineNodeIndexAMDX-executionGraph-parent# +-- @executionGraph@ /must/ have been created, allocated, or retrieved +-- from @device@ +-- +-- == Return Codes +-- +-- [] +-- +-- - 'Vulkan.Core10.Enums.Result.SUCCESS' +-- +-- [] +-- +-- - 'Vulkan.Core10.Enums.Result.ERROR_OUT_OF_HOST_MEMORY' +-- +-- = See Also +-- +-- , +-- 'Vulkan.Core10.Handles.Device', 'Vulkan.Core10.Handles.Pipeline', +-- 'PipelineShaderStageNodeCreateInfoAMDX' +getExecutionGraphPipelineNodeIndexAMDX :: forall io + . (MonadIO io) + => -- | @device@ is the that @executionGraph@ was created on. + Device + -> -- | @executionGraph@ is the execution graph pipeline to query the internal + -- node index for. + ("executionGraph" ::: Pipeline) + -> -- | @pNodeInfo@ is a pointer to a 'PipelineShaderStageNodeCreateInfoAMDX' + -- structure identifying the name and index of the node to query. + ("nodeInfo" ::: PipelineShaderStageNodeCreateInfoAMDX) + -> io (("nodeIndex" ::: Word32)) +getExecutionGraphPipelineNodeIndexAMDX device + executionGraph + nodeInfo = liftIO . evalContT $ do + let vkGetExecutionGraphPipelineNodeIndexAMDXPtr = pVkGetExecutionGraphPipelineNodeIndexAMDX (case device of Device{deviceCmds} -> deviceCmds) + lift $ unless (vkGetExecutionGraphPipelineNodeIndexAMDXPtr /= nullFunPtr) $ + throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetExecutionGraphPipelineNodeIndexAMDX is null" Nothing Nothing + let vkGetExecutionGraphPipelineNodeIndexAMDX' = mkVkGetExecutionGraphPipelineNodeIndexAMDX vkGetExecutionGraphPipelineNodeIndexAMDXPtr + pNodeInfo <- ContT $ withCStruct (nodeInfo) + pPNodeIndex <- ContT $ bracket (callocBytes @Word32 4) free + r <- lift $ traceAroundEvent "vkGetExecutionGraphPipelineNodeIndexAMDX" (vkGetExecutionGraphPipelineNodeIndexAMDX' + (deviceHandle (device)) + (executionGraph) + pNodeInfo + (pPNodeIndex)) + lift $ when (r < SUCCESS) (throwIO (VulkanException r)) + pNodeIndex <- lift $ peek @Word32 pPNodeIndex + pure $ (pNodeIndex) + + +foreign import ccall +#if !defined(SAFE_FOREIGN_CALLS) + unsafe +#endif + "dynamic" mkVkCreateExecutionGraphPipelinesAMDX + :: FunPtr (Ptr Device_T -> PipelineCache -> Word32 -> Ptr (SomeStruct ExecutionGraphPipelineCreateInfoAMDX) -> Ptr AllocationCallbacks -> Ptr Pipeline -> IO Result) -> Ptr Device_T -> PipelineCache -> Word32 -> Ptr (SomeStruct ExecutionGraphPipelineCreateInfoAMDX) -> Ptr AllocationCallbacks -> Ptr Pipeline -> IO Result + +-- | vkCreateExecutionGraphPipelinesAMDX - Creates a new execution graph +-- pipeline object +-- +-- = Description +-- +-- The implementation will create a pipeline in each element of +-- @pPipelines@ from the corresponding element of @pCreateInfos@. If +-- creation of any pipeline fails, that pipeline will be set to +-- 'Vulkan.Core10.APIConstants.NULL_HANDLE'. +-- +-- If creation fails for a pipeline create info with a +-- 'ExecutionGraphPipelineCreateInfoAMDX'::@flags@ value that included +-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT', +-- all pipelines at a greater index all automatically fail. +-- +-- == Valid Usage +-- +-- - #VUID-vkCreateExecutionGraphPipelinesAMDX-shaderEnqueue-09124# The +-- +-- /must/ be enabled +-- +-- - #VUID-vkCreateExecutionGraphPipelinesAMDX-flags-09125# If the +-- @flags@ member of any element of @pCreateInfos@ contains the +-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DERIVATIVE_BIT' +-- flag, and the @basePipelineIndex@ member of that same element is not +-- @-1@, @basePipelineIndex@ /must/ be less than the index into +-- @pCreateInfos@ that corresponds to that element +-- +-- - #VUID-vkCreateExecutionGraphPipelinesAMDX-flags-09126# If the +-- @flags@ member of any element of @pCreateInfos@ contains the +-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DERIVATIVE_BIT' +-- flag, the base pipeline /must/ have been created with the +-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT' +-- flag set +-- +-- - #VUID-vkCreateExecutionGraphPipelinesAMDX-pipelineCache-09127# If +-- @pipelineCache@ was created with +-- 'Vulkan.Core10.Enums.PipelineCacheCreateFlagBits.PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT', +-- host access to @pipelineCache@ /must/ be +-- +-- +-- == Valid Usage (Implicit) +-- +-- - #VUID-vkCreateExecutionGraphPipelinesAMDX-device-parameter# @device@ +-- /must/ be a valid 'Vulkan.Core10.Handles.Device' handle +-- +-- - #VUID-vkCreateExecutionGraphPipelinesAMDX-pipelineCache-parameter# +-- If @pipelineCache@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', +-- @pipelineCache@ /must/ be a valid +-- 'Vulkan.Core10.Handles.PipelineCache' handle +-- +-- - #VUID-vkCreateExecutionGraphPipelinesAMDX-pCreateInfos-parameter# +-- @pCreateInfos@ /must/ be a valid pointer to an array of +-- @createInfoCount@ valid 'ExecutionGraphPipelineCreateInfoAMDX' +-- structures +-- +-- - #VUID-vkCreateExecutionGraphPipelinesAMDX-pAllocator-parameter# If +-- @pAllocator@ is not @NULL@, @pAllocator@ /must/ be a valid pointer +-- to a valid 'Vulkan.Core10.AllocationCallbacks.AllocationCallbacks' +-- structure +-- +-- - #VUID-vkCreateExecutionGraphPipelinesAMDX-pPipelines-parameter# +-- @pPipelines@ /must/ be a valid pointer to an array of +-- @createInfoCount@ 'Vulkan.Core10.Handles.Pipeline' handles +-- +-- - #VUID-vkCreateExecutionGraphPipelinesAMDX-createInfoCount-arraylength# +-- @createInfoCount@ /must/ be greater than @0@ +-- +-- - #VUID-vkCreateExecutionGraphPipelinesAMDX-pipelineCache-parent# If +-- @pipelineCache@ is a valid handle, it /must/ have been created, +-- allocated, or retrieved from @device@ +-- +-- == Return Codes +-- +-- [] +-- +-- - 'Vulkan.Core10.Enums.Result.SUCCESS' +-- +-- - 'Vulkan.Extensions.VK_EXT_pipeline_creation_cache_control.PIPELINE_COMPILE_REQUIRED_EXT' +-- +-- [] +-- +-- - 'Vulkan.Core10.Enums.Result.ERROR_OUT_OF_HOST_MEMORY' +-- +-- - 'Vulkan.Core10.Enums.Result.ERROR_OUT_OF_DEVICE_MEMORY' +-- +-- = See Also +-- +-- , +-- 'Vulkan.Core10.AllocationCallbacks.AllocationCallbacks', +-- 'Vulkan.Core10.Handles.Device', 'ExecutionGraphPipelineCreateInfoAMDX', +-- 'Vulkan.Core10.Handles.Pipeline', 'Vulkan.Core10.Handles.PipelineCache' +createExecutionGraphPipelinesAMDX :: forall io + . (MonadIO io) + => -- | @device@ is the logical device that creates the execution graph + -- pipelines. + Device + -> -- | @pipelineCache@ is either 'Vulkan.Core10.APIConstants.NULL_HANDLE', + -- indicating that pipeline caching is disabled; or the handle of a valid + -- + -- object, in which case use of that cache is enabled for the duration of + -- the command. + PipelineCache + -> -- | @pCreateInfos@ is a pointer to an array of + -- 'ExecutionGraphPipelineCreateInfoAMDX' structures. + ("createInfos" ::: Vector (SomeStruct ExecutionGraphPipelineCreateInfoAMDX)) + -> -- | @pAllocator@ controls host memory allocation as described in the + -- + -- chapter. + ("allocator" ::: Maybe AllocationCallbacks) + -> io (Result, ("pipelines" ::: Vector Pipeline)) +createExecutionGraphPipelinesAMDX device + pipelineCache + createInfos + allocator = liftIO . evalContT $ do + let vkCreateExecutionGraphPipelinesAMDXPtr = pVkCreateExecutionGraphPipelinesAMDX (case device of Device{deviceCmds} -> deviceCmds) + lift $ unless (vkCreateExecutionGraphPipelinesAMDXPtr /= nullFunPtr) $ + throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCreateExecutionGraphPipelinesAMDX is null" Nothing Nothing + let vkCreateExecutionGraphPipelinesAMDX' = mkVkCreateExecutionGraphPipelinesAMDX vkCreateExecutionGraphPipelinesAMDXPtr + pPCreateInfos <- ContT $ allocaBytes @(ExecutionGraphPipelineCreateInfoAMDX _) ((Data.Vector.length (createInfos)) * 64) + Data.Vector.imapM_ (\i e -> ContT $ pokeSomeCStruct (forgetExtensions (pPCreateInfos `plusPtr` (64 * (i)) :: Ptr (ExecutionGraphPipelineCreateInfoAMDX _))) (e) . ($ ())) (createInfos) + pAllocator <- case (allocator) of + Nothing -> pure nullPtr + Just j -> ContT $ withCStruct (j) + pPPipelines <- ContT $ bracket (callocBytes @Pipeline ((fromIntegral ((fromIntegral (Data.Vector.length $ (createInfos)) :: Word32))) * 8)) free + r <- lift $ traceAroundEvent "vkCreateExecutionGraphPipelinesAMDX" (vkCreateExecutionGraphPipelinesAMDX' + (deviceHandle (device)) + (pipelineCache) + ((fromIntegral (Data.Vector.length $ (createInfos)) :: Word32)) + (forgetExtensions (pPCreateInfos)) + pAllocator + (pPPipelines)) + lift $ when (r < SUCCESS) (throwIO (VulkanException r)) + pPipelines <- lift $ generateM (fromIntegral ((fromIntegral (Data.Vector.length $ (createInfos)) :: Word32))) (\i -> peek @Pipeline ((pPPipelines `advancePtrBytes` (8 * (i)) :: Ptr Pipeline))) + pure $ (r, pPipelines) + + +foreign import ccall +#if !defined(SAFE_FOREIGN_CALLS) + unsafe +#endif + "dynamic" mkVkCmdInitializeGraphScratchMemoryAMDX + :: FunPtr (Ptr CommandBuffer_T -> DeviceAddress -> IO ()) -> Ptr CommandBuffer_T -> DeviceAddress -> IO () + +-- | vkCmdInitializeGraphScratchMemoryAMDX - Initialize scratch memory for an +-- execution graph +-- +-- = Description +-- +-- This command /must/ be called before using @scratch@ to dispatch the +-- currently bound execution graph pipeline. +-- +-- Execution of this command /may/ modify any memory locations in the range +-- [@scratch@,@scratch@ + @size@), where @size@ is the value returned in +-- 'ExecutionGraphPipelineScratchSizeAMDX'::@size@ by +-- 'ExecutionGraphPipelineScratchSizeAMDX' for the currently bound +-- execution graph pipeline. Accesses to this memory range are performed in +-- the +-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COMPUTE_SHADER_BIT' +-- pipeline stage with the +-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_SHADER_STORAGE_READ_BIT' and +-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_SHADER_STORAGE_WRITE_BIT' +-- access flags. +-- +-- If any portion of @scratch@ is modified by any command other than +-- 'cmdDispatchGraphAMDX', 'cmdDispatchGraphIndirectAMDX', +-- 'cmdDispatchGraphIndirectCountAMDX', or +-- 'cmdInitializeGraphScratchMemoryAMDX' with the same execution graph, it +-- /must/ be reinitialized for the execution graph again before dispatching +-- against it. +-- +-- == Valid Usage +-- +-- - #VUID-vkCmdInitializeGraphScratchMemoryAMDX-scratch-09143# @scratch@ +-- /must/ be the device address of an allocated memory range at least +-- as large as the value of +-- 'ExecutionGraphPipelineScratchSizeAMDX'::@size@ returned by +-- 'ExecutionGraphPipelineScratchSizeAMDX' for the currently bound +-- execution graph pipeline. +-- +-- - #VUID-vkCmdInitializeGraphScratchMemoryAMDX-scratch-09144# @scratch@ +-- /must/ be a multiple of 64 +-- +-- == Valid Usage (Implicit) +-- +-- - #VUID-vkCmdInitializeGraphScratchMemoryAMDX-commandBuffer-parameter# +-- @commandBuffer@ /must/ be a valid +-- 'Vulkan.Core10.Handles.CommandBuffer' handle +-- +-- - #VUID-vkCmdInitializeGraphScratchMemoryAMDX-commandBuffer-recording# +-- @commandBuffer@ /must/ be in the +-- +-- +-- - #VUID-vkCmdInitializeGraphScratchMemoryAMDX-commandBuffer-cmdpool# +-- The 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was +-- allocated from /must/ support graphics, or compute operations +-- +-- - #VUID-vkCmdInitializeGraphScratchMemoryAMDX-renderpass# This command +-- /must/ only be called outside of a render pass instance +-- +-- - #VUID-vkCmdInitializeGraphScratchMemoryAMDX-videocoding# This +-- command /must/ only be called outside of a video coding scope +-- +-- - #VUID-vkCmdInitializeGraphScratchMemoryAMDX-bufferlevel# +-- @commandBuffer@ /must/ be a primary +-- 'Vulkan.Core10.Handles.CommandBuffer' +-- +-- == Host Synchronization +-- +-- - Host access to the 'Vulkan.Core10.Handles.CommandPool' that +-- @commandBuffer@ was allocated from /must/ be externally synchronized +-- +-- == Command Properties +-- +-- \' +-- +-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ +-- | | | | | | +-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================+ +-- | Primary | Outside | Outside | Graphics | Action | +-- | | | | Compute | | +-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ +-- +-- = See Also +-- +-- , +-- 'Vulkan.Core10.Handles.CommandBuffer', +-- 'Vulkan.Core10.FundamentalTypes.DeviceAddress' +cmdInitializeGraphScratchMemoryAMDX :: forall io + . (MonadIO io) + => -- | @commandBuffer@ is the command buffer into which the command will be + -- recorded. + CommandBuffer + -> -- | @scratch@ is a pointer to the scratch memory to be initialized. + ("scratch" ::: DeviceAddress) + -> io () +cmdInitializeGraphScratchMemoryAMDX commandBuffer scratch = liftIO $ do + let vkCmdInitializeGraphScratchMemoryAMDXPtr = pVkCmdInitializeGraphScratchMemoryAMDX (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds) + unless (vkCmdInitializeGraphScratchMemoryAMDXPtr /= nullFunPtr) $ + throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdInitializeGraphScratchMemoryAMDX is null" Nothing Nothing + let vkCmdInitializeGraphScratchMemoryAMDX' = mkVkCmdInitializeGraphScratchMemoryAMDX vkCmdInitializeGraphScratchMemoryAMDXPtr + traceAroundEvent "vkCmdInitializeGraphScratchMemoryAMDX" (vkCmdInitializeGraphScratchMemoryAMDX' + (commandBufferHandle (commandBuffer)) + (scratch)) + pure $ () + + +foreign import ccall +#if !defined(SAFE_FOREIGN_CALLS) + unsafe +#endif + "dynamic" mkVkCmdDispatchGraphAMDX + :: FunPtr (Ptr CommandBuffer_T -> DeviceAddress -> Ptr DispatchGraphCountInfoAMDX -> IO ()) -> Ptr CommandBuffer_T -> DeviceAddress -> Ptr DispatchGraphCountInfoAMDX -> IO () + +-- | vkCmdDispatchGraphAMDX - Dispatch an execution graph +-- +-- = Description +-- +-- When this command is executed, the nodes specified in @pCountInfo@ are +-- executed. Nodes executed as part of this command are not implicitly +-- synchronized in any way against each other once they are dispatched. +-- +-- For this command, all device\/host pointers in substructures are treated +-- as host pointers and read only during host execution of this command. +-- Once this command returns, no reference to the original pointers is +-- retained. +-- +-- Execution of this command /may/ modify any memory locations in the range +-- [@scratch@,@scratch@ + @size@), where @size@ is the value returned in +-- 'ExecutionGraphPipelineScratchSizeAMDX'::@size@ by +-- 'ExecutionGraphPipelineScratchSizeAMDX' for the currently bound +-- execution graph pipeline Accesses to this memory range are performed in +-- the +-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COMPUTE_SHADER_BIT' +-- pipeline stage with the +-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_SHADER_STORAGE_READ_BIT' and +-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_SHADER_STORAGE_WRITE_BIT' +-- access flags. +-- +-- == Valid Usage +-- +-- - #VUID-vkCmdDispatchGraphAMDX-magFilter-04553# If a +-- 'Vulkan.Core10.Handles.Sampler' created with @magFilter@ or +-- @minFilter@ equal to 'Vulkan.Core10.Enums.Filter.FILTER_LINEAR' and +-- @compareEnable@ equal to 'Vulkan.Core10.FundamentalTypes.FALSE' is +-- used to sample a 'Vulkan.Core10.Handles.ImageView' as a result of +-- this command, then the image view’s +-- +-- /must/ contain +-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT' +-- +-- - #VUID-vkCmdDispatchGraphAMDX-mipmapMode-04770# If a +-- 'Vulkan.Core10.Handles.Sampler' created with @mipmapMode@ equal to +-- 'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR' +-- and @compareEnable@ equal to 'Vulkan.Core10.FundamentalTypes.FALSE' +-- is used to sample a 'Vulkan.Core10.Handles.ImageView' as a result of +-- this command, then the image view’s +-- +-- /must/ contain +-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT' +-- +-- - #VUID-vkCmdDispatchGraphAMDX-None-06479# If a +-- 'Vulkan.Core10.Handles.ImageView' is sampled with +-- , +-- the image view’s +-- +-- /must/ contain +-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT' +-- +-- - #VUID-vkCmdDispatchGraphAMDX-None-02691# If a +-- 'Vulkan.Core10.Handles.ImageView' is accessed using atomic +-- operations as a result of this command, then the image view’s +-- +-- /must/ contain +-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT' +-- +-- - #VUID-vkCmdDispatchGraphAMDX-None-07888# If a +-- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER' +-- descriptor is accessed using atomic operations as a result of this +-- command, then the storage texel buffer’s +-- +-- /must/ contain +-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT' +-- +-- - #VUID-vkCmdDispatchGraphAMDX-None-02692# If a +-- 'Vulkan.Core10.Handles.ImageView' is sampled with +-- 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a result of this +-- command, then the image view’s +-- +-- /must/ contain +-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT' +-- +-- - #VUID-vkCmdDispatchGraphAMDX-None-02693# If the +-- +-- extension is not enabled and any 'Vulkan.Core10.Handles.ImageView' +-- is sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a +-- result of this command, it /must/ not have a +-- 'Vulkan.Core10.Enums.ImageViewType.ImageViewType' of +-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_3D', +-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE', or +-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE_ARRAY' +-- +-- - #VUID-vkCmdDispatchGraphAMDX-filterCubic-02694# Any +-- 'Vulkan.Core10.Handles.ImageView' being sampled with +-- 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a result of this +-- command /must/ have a +-- 'Vulkan.Core10.Enums.ImageViewType.ImageViewType' and format that +-- supports cubic filtering, as specified by +-- 'Vulkan.Extensions.VK_EXT_filter_cubic.FilterCubicImageViewImageFormatPropertiesEXT'::@filterCubic@ +-- returned by +-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceImageFormatProperties2' +-- +-- - #VUID-vkCmdDispatchGraphAMDX-filterCubicMinmax-02695# Any +-- 'Vulkan.Core10.Handles.ImageView' being sampled with +-- 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' with a reduction mode +-- of either +-- 'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MIN' +-- or +-- 'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MAX' +-- as a result of this command /must/ have a +-- 'Vulkan.Core10.Enums.ImageViewType.ImageViewType' and format that +-- supports cubic filtering together with minmax filtering, as +-- specified by +-- 'Vulkan.Extensions.VK_EXT_filter_cubic.FilterCubicImageViewImageFormatPropertiesEXT'::@filterCubicMinmax@ +-- returned by +-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceImageFormatProperties2' +-- +-- - #VUID-vkCmdDispatchGraphAMDX-cubicRangeClamp-09212# If the +-- +-- feature is not enabled, then any 'Vulkan.Core10.Handles.ImageView' +-- being sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as +-- a result of this command +-- +-- [/must/ not have a 'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo'] +-- @reductionMode@ equal to +-- 'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM' +-- +-- - #VUID-vkCmdDispatchGraphAMDX-reductionMode-09213# Any +-- 'Vulkan.Core10.Handles.ImageView' being sampled with a +-- 'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo'::@reductionMode@ +-- equal to +-- 'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM' +-- as a result of this command /must/ sample with +-- 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' +-- +-- - #VUID-vkCmdDispatchGraphAMDX-selectableCubicWeights-09214# If the +-- +-- feature is not enabled, then any 'Vulkan.Core10.Handles.ImageView' +-- being sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as +-- a result of this command /must/ have +-- 'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.SamplerCubicWeightsCreateInfoQCOM'::@cubicWeights@ +-- equal to +-- 'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM' +-- +-- - #VUID-vkCmdDispatchGraphAMDX-flags-02696# Any +-- 'Vulkan.Core10.Handles.Image' created with a +-- 'Vulkan.Core10.Image.ImageCreateInfo'::@flags@ containing +-- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_CORNER_SAMPLED_BIT_NV' +-- sampled as a result of this command /must/ only be sampled using a +-- 'Vulkan.Core10.Enums.SamplerAddressMode.SamplerAddressMode' of +-- 'Vulkan.Core10.Enums.SamplerAddressMode.SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE' +-- +-- - #VUID-vkCmdDispatchGraphAMDX-OpTypeImage-07027# For any +-- 'Vulkan.Core10.Handles.ImageView' being written as a storage image +-- where the image format field of the @OpTypeImage@ is @Unknown@, the +-- view’s +-- +-- /must/ contain +-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT' +-- +-- - #VUID-vkCmdDispatchGraphAMDX-OpTypeImage-07028# For any +-- 'Vulkan.Core10.Handles.ImageView' being read as a storage image +-- where the image format field of the @OpTypeImage@ is @Unknown@, the +-- view’s +-- +-- /must/ contain +-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT' +-- +-- - #VUID-vkCmdDispatchGraphAMDX-OpTypeImage-07029# For any +-- 'Vulkan.Core10.Handles.BufferView' being written as a storage texel +-- buffer where the image format field of the @OpTypeImage@ is +-- @Unknown@, the view’s +-- +-- /must/ contain +-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT' +-- +-- - #VUID-vkCmdDispatchGraphAMDX-OpTypeImage-07030# Any +-- 'Vulkan.Core10.Handles.BufferView' being read as a storage texel +-- buffer where the image format field of the @OpTypeImage@ is +-- @Unknown@ then the view’s +-- +-- /must/ contain +-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT' +-- +-- - #VUID-vkCmdDispatchGraphAMDX-None-08600# For each set /n/ that is +-- statically used by +-- , +-- a descriptor set /must/ have been bound to /n/ at the same pipeline +-- bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is +-- compatible for set /n/, with the +-- 'Vulkan.Core10.Handles.PipelineLayout' or +-- 'Vulkan.Core10.Handles.DescriptorSetLayout' array that was used to +-- create the current 'Vulkan.Core10.Handles.Pipeline' or +-- 'Vulkan.Extensions.Handles.ShaderEXT', as described in +-- +-- +-- - #VUID-vkCmdDispatchGraphAMDX-None-08601# For each push constant that +-- is statically used by +-- , +-- a push constant value /must/ have been set for the same pipeline +-- bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is +-- compatible for push constants, with the +-- 'Vulkan.Core10.Handles.PipelineLayout' or +-- 'Vulkan.Core10.Handles.DescriptorSetLayout' and +-- 'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to +-- create the current 'Vulkan.Core10.Handles.Pipeline' or +-- 'Vulkan.Extensions.Handles.ShaderEXT', as described in +-- +-- +-- - #VUID-vkCmdDispatchGraphAMDX-maintenance4-08602# If the +-- +-- feature is not enabled, then for each push constant that is +-- statically used by +-- , +-- a push constant value /must/ have been set for the same pipeline +-- bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is +-- compatible for push constants, with the +-- 'Vulkan.Core10.Handles.PipelineLayout' or +-- 'Vulkan.Core10.Handles.DescriptorSetLayout' and +-- 'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to +-- create the current 'Vulkan.Core10.Handles.Pipeline' or +-- 'Vulkan.Extensions.Handles.ShaderEXT', as described in +-- +-- +-- - #VUID-vkCmdDispatchGraphAMDX-None-08114# Descriptors in each bound +-- descriptor set, specified via +-- 'Vulkan.Core10.CommandBufferBuilding.cmdBindDescriptorSets', /must/ +-- be valid if they are statically used by the +-- 'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point +-- used by this command and the bound 'Vulkan.Core10.Handles.Pipeline' +-- was not created with +-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT' +-- +-- - #VUID-vkCmdDispatchGraphAMDX-None-08115# If the descriptors used by +-- the 'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind +-- point were specified via +-- 'Vulkan.Core10.CommandBufferBuilding.cmdBindDescriptorSets', the +-- bound 'Vulkan.Core10.Handles.Pipeline' /must/ have been created +-- without +-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT' +-- +-- - #VUID-vkCmdDispatchGraphAMDX-None-08116# Descriptors in bound +-- descriptor buffers, specified via +-- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT', +-- /must/ be valid if they are dynamically used by the +-- 'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point +-- used by this command and the bound 'Vulkan.Core10.Handles.Pipeline' +-- was created with +-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT' +-- +-- - #VUID-vkCmdDispatchGraphAMDX-None-08604# Descriptors in bound +-- descriptor buffers, specified via +-- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT', +-- /must/ be valid if they are dynamically used by any +-- 'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding +-- to the pipeline bind point used by this command +-- +-- - #VUID-vkCmdDispatchGraphAMDX-None-08117# If the descriptors used by +-- the 'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind +-- point were specified via +-- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT', +-- the bound 'Vulkan.Core10.Handles.Pipeline' /must/ have been created +-- with +-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT' +-- +-- - #VUID-vkCmdDispatchGraphAMDX-None-08119# If a descriptor is +-- dynamically used with a 'Vulkan.Core10.Handles.Pipeline' created +-- with +-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT', +-- the descriptor memory /must/ be resident +-- +-- - #VUID-vkCmdDispatchGraphAMDX-None-08605# If a descriptor is +-- dynamically used with a 'Vulkan.Extensions.Handles.ShaderEXT' +-- created with a 'Vulkan.Core10.Handles.DescriptorSetLayout' that was +-- created with +-- 'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT', +-- the descriptor memory /must/ be resident +-- +-- - #VUID-vkCmdDispatchGraphAMDX-None-08606# If the +-- +-- feature is not enabled, a valid pipeline /must/ be bound to the +-- pipeline bind point used by this command +-- +-- - #VUID-vkCmdDispatchGraphAMDX-None-08607# If the +-- +-- is enabled, either a valid pipeline /must/ be bound to the pipeline +-- bind point used by this command, or a valid combination of valid and +-- 'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be +-- bound to every supported shader stage corresponding to the pipeline +-- bind point used by this command +-- +-- - #VUID-vkCmdDispatchGraphAMDX-None-08608# If a pipeline is bound to +-- the pipeline bind point used by this command, there /must/ not have +-- been any calls to dynamic state setting commands for any state not +-- specified as dynamic in the 'Vulkan.Core10.Handles.Pipeline' object +-- bound to the pipeline bind point used by this command, since that +-- pipeline was bound +-- +-- - #VUID-vkCmdDispatchGraphAMDX-None-08609# If the +-- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind +-- point used by this command or any +-- 'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding +-- to the pipeline bind point used by this command accesses a +-- 'Vulkan.Core10.Handles.Sampler' object that uses unnormalized +-- coordinates, that sampler /must/ not be used to sample from any +-- 'Vulkan.Core10.Handles.Image' with a +-- 'Vulkan.Core10.Handles.ImageView' of the type +-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_3D', +-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE', +-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_1D_ARRAY', +-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D_ARRAY' or +-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE_ARRAY', in +-- any shader stage +-- +-- - #VUID-vkCmdDispatchGraphAMDX-None-08610# If the +-- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind +-- point used by this command or any +-- 'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding +-- to the pipeline bind point used by this command accesses a +-- 'Vulkan.Core10.Handles.Sampler' object that uses unnormalized +-- coordinates, that sampler /must/ not be used with any of the SPIR-V +-- @OpImageSample*@ or @OpImageSparseSample*@ instructions with +-- @ImplicitLod@, @Dref@ or @Proj@ in their name, in any shader stage +-- +-- - #VUID-vkCmdDispatchGraphAMDX-None-08611# If the +-- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind +-- point used by this command or any +-- 'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding +-- to the pipeline bind point used by this command accesses a +-- 'Vulkan.Core10.Handles.Sampler' object that uses unnormalized +-- coordinates, that sampler /must/ not be used with any of the SPIR-V +-- @OpImageSample*@ or @OpImageSparseSample*@ instructions that +-- includes a LOD bias or any offset values, in any shader stage +-- +-- - #VUID-vkCmdDispatchGraphAMDX-uniformBuffers-06935# If any stage of +-- the 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline +-- bind point used by this command accesses a uniform buffer, and that +-- stage was created without enabling either +-- 'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT' +-- or +-- 'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT' +-- for @uniformBuffers@, and the +-- +-- feature is not enabled, that stage /must/ not access values outside +-- of the range of the buffer as specified in the descriptor set bound +-- to the same pipeline bind point +-- +-- - #VUID-vkCmdDispatchGraphAMDX-None-08612# If the +-- +-- feature is not enabled, and any +-- 'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding +-- to the pipeline bind point used by this command accesses a uniform +-- buffer, it /must/ not access values outside of the range of the +-- buffer as specified in the descriptor set bound to the same pipeline +-- bind point +-- +-- - #VUID-vkCmdDispatchGraphAMDX-storageBuffers-06936# If any stage of +-- the 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline +-- bind point used by this command accesses a storage buffer, and that +-- stage was created without enabling either +-- 'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT' +-- or +-- 'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT' +-- for @storageBuffers@, and the +-- +-- feature is not enabled, that stage /must/ not access values outside +-- of the range of the buffer as specified in the descriptor set bound +-- to the same pipeline bind point +-- +-- - #VUID-vkCmdDispatchGraphAMDX-None-08613# If the +-- +-- feature is not enabled, and any +-- 'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding +-- to the pipeline bind point used by this command accesses a storage +-- buffer, it /must/ not access values outside of the range of the +-- buffer as specified in the descriptor set bound to the same pipeline +-- bind point +-- +-- - #VUID-vkCmdDispatchGraphAMDX-commandBuffer-02707# If @commandBuffer@ +-- is an unprotected command buffer and +-- +-- is not supported, any resource accessed by +-- +-- /must/ not be a protected resource +-- +-- - #VUID-vkCmdDispatchGraphAMDX-None-06550# If +-- +-- accesses a 'Vulkan.Core10.Handles.Sampler' or +-- 'Vulkan.Core10.Handles.ImageView' object that enables +-- , +-- that object /must/ only be used with @OpImageSample*@ or +-- @OpImageSparseSample*@ instructions +-- +-- - #VUID-vkCmdDispatchGraphAMDX-ConstOffset-06551# If +-- +-- accesses a 'Vulkan.Core10.Handles.Sampler' or +-- 'Vulkan.Core10.Handles.ImageView' object that enables +-- , +-- that object /must/ not use the @ConstOffset@ and @Offset@ operands +-- +-- - #VUID-vkCmdDispatchGraphAMDX-viewType-07752# If a +-- 'Vulkan.Core10.Handles.ImageView' is accessed as a result of this +-- command, then the image view’s @viewType@ /must/ match the @Dim@ +-- operand of the @OpTypeImage@ as described in +-- +-- +-- - #VUID-vkCmdDispatchGraphAMDX-format-07753# If a +-- 'Vulkan.Core10.Handles.ImageView' is accessed as a result of this +-- command, then the +-- +-- of the image view’s @format@ and the @Sampled@ @Type@ operand of the +-- @OpTypeImage@ /must/ match +-- +-- - #VUID-vkCmdDispatchGraphAMDX-OpImageWrite-08795# If a +-- 'Vulkan.Core10.Handles.ImageView' created with a format other than +-- 'Vulkan.Core10.Enums.Format.FORMAT_A8_UNORM_KHR' is accessed using +-- @OpImageWrite@ as a result of this command, then the @Type@ of the +-- @Texel@ operand of that instruction /must/ have at least as many +-- components as the image view’s format +-- +-- - #VUID-vkCmdDispatchGraphAMDX-OpImageWrite-08796# If a +-- 'Vulkan.Core10.Handles.ImageView' created with the format +-- 'Vulkan.Core10.Enums.Format.FORMAT_A8_UNORM_KHR' is accessed using +-- @OpImageWrite@ as a result of this command, then the @Type@ of the +-- @Texel@ operand of that instruction /must/ have four components +-- +-- - #VUID-vkCmdDispatchGraphAMDX-OpImageWrite-04469# If a +-- 'Vulkan.Core10.Handles.BufferView' is accessed using @OpImageWrite@ +-- as a result of this command, then the @Type@ of the @Texel@ operand +-- of that instruction /must/ have at least as many components as the +-- buffer view’s format +-- +-- - #VUID-vkCmdDispatchGraphAMDX-SampledType-04470# If a +-- 'Vulkan.Core10.Handles.ImageView' with a +-- 'Vulkan.Core10.Enums.Format.Format' that has a 64-bit component +-- width is accessed as a result of this command, the @SampledType@ of +-- the @OpTypeImage@ operand of that instruction /must/ have a @Width@ +-- of 64 +-- +-- - #VUID-vkCmdDispatchGraphAMDX-SampledType-04471# If a +-- 'Vulkan.Core10.Handles.ImageView' with a +-- 'Vulkan.Core10.Enums.Format.Format' that has a component width less +-- than 64-bit is accessed as a result of this command, the +-- @SampledType@ of the @OpTypeImage@ operand of that instruction +-- /must/ have a @Width@ of 32 +-- +-- - #VUID-vkCmdDispatchGraphAMDX-SampledType-04472# If a +-- 'Vulkan.Core10.Handles.BufferView' with a +-- 'Vulkan.Core10.Enums.Format.Format' that has a 64-bit component +-- width is accessed as a result of this command, the @SampledType@ of +-- the @OpTypeImage@ operand of that instruction /must/ have a @Width@ +-- of 64 +-- +-- - #VUID-vkCmdDispatchGraphAMDX-SampledType-04473# If a +-- 'Vulkan.Core10.Handles.BufferView' with a +-- 'Vulkan.Core10.Enums.Format.Format' that has a component width less +-- than 64-bit is accessed as a result of this command, the +-- @SampledType@ of the @OpTypeImage@ operand of that instruction +-- /must/ have a @Width@ of 32 +-- +-- - #VUID-vkCmdDispatchGraphAMDX-sparseImageInt64Atomics-04474# If the +-- +-- feature is not enabled, 'Vulkan.Core10.Handles.Image' objects +-- created with the +-- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SPARSE_RESIDENCY_BIT' +-- flag /must/ not be accessed by atomic instructions through an +-- @OpTypeImage@ with a @SampledType@ with a @Width@ of 64 by this +-- command +-- +-- - #VUID-vkCmdDispatchGraphAMDX-sparseImageInt64Atomics-04475# If the +-- +-- feature is not enabled, 'Vulkan.Core10.Handles.Buffer' objects +-- created with the +-- 'Vulkan.Core10.Enums.BufferCreateFlagBits.BUFFER_CREATE_SPARSE_RESIDENCY_BIT' +-- flag /must/ not be accessed by atomic instructions through an +-- @OpTypeImage@ with a @SampledType@ with a @Width@ of 64 by this +-- command +-- +-- - #VUID-vkCmdDispatchGraphAMDX-OpImageWeightedSampleQCOM-06971# If +-- @OpImageWeightedSampleQCOM@ is used to sample a +-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then +-- the image view’s +-- +-- /must/ contain +-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM' +-- +-- - #VUID-vkCmdDispatchGraphAMDX-OpImageWeightedSampleQCOM-06972# If +-- @OpImageWeightedSampleQCOM@ uses a 'Vulkan.Core10.Handles.ImageView' +-- as a sample weight image as a result of this command, then the image +-- view’s +-- +-- /must/ contain +-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM' +-- +-- - #VUID-vkCmdDispatchGraphAMDX-OpImageBoxFilterQCOM-06973# If +-- @OpImageBoxFilterQCOM@ is used to sample a +-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then +-- the image view’s +-- +-- /must/ contain +-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM' +-- +-- - #VUID-vkCmdDispatchGraphAMDX-OpImageBlockMatchSSDQCOM-06974# If +-- @OpImageBlockMatchSSDQCOM@ is used to read from an +-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then +-- the image view’s +-- +-- /must/ contain +-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM' +-- +-- - #VUID-vkCmdDispatchGraphAMDX-OpImageBlockMatchSADQCOM-06975# If +-- @OpImageBlockMatchSADQCOM@ is used to read from an +-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then +-- the image view’s +-- +-- /must/ contain +-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM' +-- +-- - #VUID-vkCmdDispatchGraphAMDX-OpImageBlockMatchSADQCOM-06976# If +-- @OpImageBlockMatchSADQCOM@ or OpImageBlockMatchSSDQCOM is used to +-- read from a reference image as result of this command, then the +-- specified reference coordinates /must/ not fail +-- +-- +-- - #VUID-vkCmdDispatchGraphAMDX-OpImageWeightedSampleQCOM-06977# If +-- @OpImageWeightedSampleQCOM@, @OpImageBoxFilterQCOM@, +-- @OpImageBlockMatchWindowSSDQCOM@, @OpImageBlockMatchWindowSADQCOM@, +-- @OpImageBlockMatchGatherSSDQCOM@, @OpImageBlockMatchGatherSADQCOM@, +-- @OpImageBlockMatchSSDQCOM@, or @OpImageBlockMatchSADQCOM@ uses a +-- 'Vulkan.Core10.Handles.Sampler' as a result of this command, then +-- the sampler /must/ have been created with +-- 'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM' +-- +-- - #VUID-vkCmdDispatchGraphAMDX-OpImageWeightedSampleQCOM-06978# If any +-- command other than @OpImageWeightedSampleQCOM@, +-- @OpImageBoxFilterQCOM@, @OpImageBlockMatchWindowSSDQCOM@, +-- @OpImageBlockMatchWindowSADQCOM@, @OpImageBlockMatchGatherSSDQCOM@, +-- @OpImageBlockMatchGatherSADQCOM@, @OpImageBlockMatchSSDQCOM@, or +-- @OpImageBlockMatchSADQCOM@ uses a 'Vulkan.Core10.Handles.Sampler' as +-- a result of this command, then the sampler /must/ not have been +-- created with +-- 'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM' +-- +-- - #VUID-vkCmdDispatchGraphAMDX-OpImageBlockMatchWindow-09215# If a +-- @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@ +-- instruction is used to read from an +-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then +-- the image view’s +-- +-- /must/ contain +-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM' +-- +-- - #VUID-vkCmdDispatchGraphAMDX-OpImageBlockMatchWindow-09216# If a +-- @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@ +-- instruction is used to read from an +-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then +-- the image view’s format /must/ be a single-component format. +-- +-- - #VUID-vkCmdDispatchGraphAMDX-OpImageBlockMatchWindow-09217# If a +-- @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@ +-- read from a reference image as result of this command, then the +-- specified reference coordinates /must/ not fail +-- +-- +-- - #VUID-vkCmdDispatchGraphAMDX-None-07288# Any shader invocation +-- executed by this command /must/ +-- +-- +-- - #VUID-vkCmdDispatchGraphAMDX-commandBuffer-09181# @commandBuffer@ +-- /must/ not be a protected command buffer +-- +-- - #VUID-vkCmdDispatchGraphAMDX-commandBuffer-09182# @commandBuffer@ +-- /must/ be a primary command buffer +-- +-- - #VUID-vkCmdDispatchGraphAMDX-scratch-09183# @scratch@ /must/ be the +-- device address of an allocated memory range at least as large as the +-- value of 'ExecutionGraphPipelineScratchSizeAMDX'::@size@ returned by +-- 'ExecutionGraphPipelineScratchSizeAMDX' for the currently bound +-- execution graph pipeline +-- +-- - #VUID-vkCmdDispatchGraphAMDX-scratch-09184# @scratch@ /must/ be a +-- device address within a 'Vulkan.Core10.Handles.Buffer' created with +-- the +-- 'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_EXECUTION_GRAPH_SCRATCH_BIT_AMDX' +-- or 'BUFFER_USAGE_2_EXECUTION_GRAPH_SCRATCH_BIT_AMDX' flag +-- +-- - #VUID-vkCmdDispatchGraphAMDX-scratch-09185# Device memory in the +-- range [@scratch@,@scratch@ +-- 'ExecutionGraphPipelineScratchSizeAMDX'::@size@) /must/ have been +-- initialized with 'cmdInitializeGraphScratchMemoryAMDX' using the +-- currently bound execution graph pipeline, and not modified after +-- that by anything other than another execution graph dispatch command +-- +-- - #VUID-vkCmdDispatchGraphAMDX-maxComputeWorkGroupCount-09186# +-- Execution of this command /must/ not cause a node to be dispatched +-- with a larger number of workgroups than that specified by either a +-- @MaxNumWorkgroupsAMDX@ decoration in the dispatched node or +-- +-- +-- - #VUID-vkCmdDispatchGraphAMDX-maxExecutionGraphShaderPayloadCount-09187# +-- Execution of this command /must/ not cause any shader to initialize +-- more than +-- +-- output payloads +-- +-- - #VUID-vkCmdDispatchGraphAMDX-NodeMaxPayloadsAMDX-09188# Execution of +-- this command /must/ not cause any shader that declares +-- @NodeMaxPayloadsAMDX@ to initialize more output payloads than +-- specified by the max number of payloads for that decoration. This +-- requirement applies to each @NodeMaxPayloadsAMDX@ decoration +-- separately +-- +-- - #VUID-vkCmdDispatchGraphAMDX-pCountInfo-09145# @pCountInfo->infos@ +-- /must/ be a host pointer to a memory allocation at least as large as +-- the product of @count@ and @stride@ +-- +-- - #VUID-vkCmdDispatchGraphAMDX-infos-09146# Host memory locations at +-- indexes in the range [@infos@, @infos@ + (@count@*@stride@)), at a +-- granularity of @stride@ /must/ contain valid 'DispatchGraphInfoAMDX' +-- structures in the first 24 bytes +-- +-- - #VUID-vkCmdDispatchGraphAMDX-pCountInfo-09147# For each +-- 'DispatchGraphInfoAMDX' structure in @pCountInfo->infos@, @payloads@ +-- /must/ be a host pointer to a memory allocation at least as large as +-- the product of @payloadCount@ and @payloadStride@ +-- +-- - #VUID-vkCmdDispatchGraphAMDX-pCountInfo-09148# For each +-- 'DispatchGraphInfoAMDX' structure in @pCountInfo->infos@, +-- @nodeIndex@ /must/ be a valid node index in the currently bound +-- execution graph pipeline, as returned by +-- 'getExecutionGraphPipelineNodeIndexAMDX' +-- +-- - #VUID-vkCmdDispatchGraphAMDX-pCountInfo-09149# For each +-- 'DispatchGraphInfoAMDX' structure in @pCountInfo->infos@, host +-- memory locations at indexes in the range [@payloads@, @payloads@ + +-- (@payloadCount@ * @payloadStride@)), at a granularity of +-- @payloadStride@ /must/ contain a payload matching the size of the +-- input payload expected by the node in @nodeIndex@ in the first bytes +-- +-- == Valid Usage (Implicit) +-- +-- - #VUID-vkCmdDispatchGraphAMDX-commandBuffer-parameter# +-- @commandBuffer@ /must/ be a valid +-- 'Vulkan.Core10.Handles.CommandBuffer' handle +-- +-- - #VUID-vkCmdDispatchGraphAMDX-pCountInfo-parameter# @pCountInfo@ +-- /must/ be a valid pointer to a valid 'DispatchGraphCountInfoAMDX' +-- structure +-- +-- - #VUID-vkCmdDispatchGraphAMDX-commandBuffer-recording# +-- @commandBuffer@ /must/ be in the +-- +-- +-- - #VUID-vkCmdDispatchGraphAMDX-commandBuffer-cmdpool# The +-- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was +-- allocated from /must/ support graphics, or compute operations +-- +-- - #VUID-vkCmdDispatchGraphAMDX-renderpass# This command /must/ only be +-- called outside of a render pass instance +-- +-- - #VUID-vkCmdDispatchGraphAMDX-videocoding# This command /must/ only +-- be called outside of a video coding scope +-- +-- - #VUID-vkCmdDispatchGraphAMDX-bufferlevel# @commandBuffer@ /must/ be +-- a primary 'Vulkan.Core10.Handles.CommandBuffer' +-- +-- == Host Synchronization +-- +-- - Host access to the 'Vulkan.Core10.Handles.CommandPool' that +-- @commandBuffer@ was allocated from /must/ be externally synchronized +-- +-- == Command Properties +-- +-- \' +-- +-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ +-- | | | | | | +-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================+ +-- | Primary | Outside | Outside | Graphics | Action | +-- | | | | Compute | | +-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ +-- +-- = See Also +-- +-- , +-- 'Vulkan.Core10.Handles.CommandBuffer', +-- 'Vulkan.Core10.FundamentalTypes.DeviceAddress', +-- 'DispatchGraphCountInfoAMDX' +cmdDispatchGraphAMDX :: forall io + . (MonadIO io) + => -- | @commandBuffer@ is the command buffer into which the command will be + -- recorded. + CommandBuffer + -> -- | @scratch@ is a pointer to the scratch memory to be used. + ("scratch" ::: DeviceAddress) + -> -- | @pCountInfo@ is a host pointer to a 'DispatchGraphCountInfoAMDX' + -- structure defining the nodes which will be initially executed. + DispatchGraphCountInfoAMDX + -> io () +cmdDispatchGraphAMDX commandBuffer scratch countInfo = liftIO . evalContT $ do + let vkCmdDispatchGraphAMDXPtr = pVkCmdDispatchGraphAMDX (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds) + lift $ unless (vkCmdDispatchGraphAMDXPtr /= nullFunPtr) $ + throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdDispatchGraphAMDX is null" Nothing Nothing + let vkCmdDispatchGraphAMDX' = mkVkCmdDispatchGraphAMDX vkCmdDispatchGraphAMDXPtr + pCountInfo <- ContT $ withCStruct (countInfo) + lift $ traceAroundEvent "vkCmdDispatchGraphAMDX" (vkCmdDispatchGraphAMDX' + (commandBufferHandle (commandBuffer)) + (scratch) + pCountInfo) + pure $ () + + +foreign import ccall +#if !defined(SAFE_FOREIGN_CALLS) + unsafe +#endif + "dynamic" mkVkCmdDispatchGraphIndirectAMDX + :: FunPtr (Ptr CommandBuffer_T -> DeviceAddress -> Ptr DispatchGraphCountInfoAMDX -> IO ()) -> Ptr CommandBuffer_T -> DeviceAddress -> Ptr DispatchGraphCountInfoAMDX -> IO () + +-- | vkCmdDispatchGraphIndirectAMDX - Dispatch an execution graph with node +-- and payload parameters read on the device +-- +-- = Description +-- +-- When this command is executed, the nodes specified in @pCountInfo@ are +-- executed. Nodes executed as part of this command are not implicitly +-- synchronized in any way against each other once they are dispatched. +-- +-- For this command, all device\/host pointers in substructures are treated +-- as device pointers and read during device execution of this command. The +-- allocation and contents of these pointers only needs to be valid during +-- device execution. All of these addresses will be read in the +-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COMPUTE_SHADER_BIT' +-- pipeline stage with the +-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_SHADER_STORAGE_READ_BIT' +-- access flag. +-- +-- Execution of this command /may/ modify any memory locations in the range +-- [@scratch@,@scratch@ + @size@), where @size@ is the value returned in +-- 'ExecutionGraphPipelineScratchSizeAMDX'::@size@ by +-- 'ExecutionGraphPipelineScratchSizeAMDX' for the currently bound +-- execution graph pipeline. Accesses to this memory range are performed in +-- the +-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COMPUTE_SHADER_BIT' +-- pipeline stage with the +-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_SHADER_STORAGE_READ_BIT' and +-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_SHADER_STORAGE_WRITE_BIT' +-- access flags. +-- +-- == Valid Usage +-- +-- - #VUID-vkCmdDispatchGraphIndirectAMDX-magFilter-04553# If a +-- 'Vulkan.Core10.Handles.Sampler' created with @magFilter@ or +-- @minFilter@ equal to 'Vulkan.Core10.Enums.Filter.FILTER_LINEAR' and +-- @compareEnable@ equal to 'Vulkan.Core10.FundamentalTypes.FALSE' is +-- used to sample a 'Vulkan.Core10.Handles.ImageView' as a result of +-- this command, then the image view’s +-- +-- /must/ contain +-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT' +-- +-- - #VUID-vkCmdDispatchGraphIndirectAMDX-mipmapMode-04770# If a +-- 'Vulkan.Core10.Handles.Sampler' created with @mipmapMode@ equal to +-- 'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR' +-- and @compareEnable@ equal to 'Vulkan.Core10.FundamentalTypes.FALSE' +-- is used to sample a 'Vulkan.Core10.Handles.ImageView' as a result of +-- this command, then the image view’s +-- +-- /must/ contain +-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT' +-- +-- - #VUID-vkCmdDispatchGraphIndirectAMDX-None-06479# If a +-- 'Vulkan.Core10.Handles.ImageView' is sampled with +-- , +-- the image view’s +-- +-- /must/ contain +-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT' +-- +-- - #VUID-vkCmdDispatchGraphIndirectAMDX-None-02691# If a +-- 'Vulkan.Core10.Handles.ImageView' is accessed using atomic +-- operations as a result of this command, then the image view’s +-- +-- /must/ contain +-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT' +-- +-- - #VUID-vkCmdDispatchGraphIndirectAMDX-None-07888# If a +-- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER' +-- descriptor is accessed using atomic operations as a result of this +-- command, then the storage texel buffer’s +-- +-- /must/ contain +-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT' +-- +-- - #VUID-vkCmdDispatchGraphIndirectAMDX-None-02692# If a +-- 'Vulkan.Core10.Handles.ImageView' is sampled with +-- 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a result of this +-- command, then the image view’s +-- +-- /must/ contain +-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT' +-- +-- - #VUID-vkCmdDispatchGraphIndirectAMDX-None-02693# If the +-- +-- extension is not enabled and any 'Vulkan.Core10.Handles.ImageView' +-- is sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a +-- result of this command, it /must/ not have a +-- 'Vulkan.Core10.Enums.ImageViewType.ImageViewType' of +-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_3D', +-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE', or +-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE_ARRAY' +-- +-- - #VUID-vkCmdDispatchGraphIndirectAMDX-filterCubic-02694# Any +-- 'Vulkan.Core10.Handles.ImageView' being sampled with +-- 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a result of this +-- command /must/ have a +-- 'Vulkan.Core10.Enums.ImageViewType.ImageViewType' and format that +-- supports cubic filtering, as specified by +-- 'Vulkan.Extensions.VK_EXT_filter_cubic.FilterCubicImageViewImageFormatPropertiesEXT'::@filterCubic@ +-- returned by +-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceImageFormatProperties2' +-- +-- - #VUID-vkCmdDispatchGraphIndirectAMDX-filterCubicMinmax-02695# Any +-- 'Vulkan.Core10.Handles.ImageView' being sampled with +-- 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' with a reduction mode +-- of either +-- 'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MIN' +-- or +-- 'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MAX' +-- as a result of this command /must/ have a +-- 'Vulkan.Core10.Enums.ImageViewType.ImageViewType' and format that +-- supports cubic filtering together with minmax filtering, as +-- specified by +-- 'Vulkan.Extensions.VK_EXT_filter_cubic.FilterCubicImageViewImageFormatPropertiesEXT'::@filterCubicMinmax@ +-- returned by +-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceImageFormatProperties2' +-- +-- - #VUID-vkCmdDispatchGraphIndirectAMDX-cubicRangeClamp-09212# If the +-- +-- feature is not enabled, then any 'Vulkan.Core10.Handles.ImageView' +-- being sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as +-- a result of this command +-- +-- [/must/ not have a 'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo'] +-- @reductionMode@ equal to +-- 'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM' +-- +-- - #VUID-vkCmdDispatchGraphIndirectAMDX-reductionMode-09213# Any +-- 'Vulkan.Core10.Handles.ImageView' being sampled with a +-- 'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo'::@reductionMode@ +-- equal to +-- 'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM' +-- as a result of this command /must/ sample with +-- 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' +-- +-- - #VUID-vkCmdDispatchGraphIndirectAMDX-selectableCubicWeights-09214# +-- If the +-- +-- feature is not enabled, then any 'Vulkan.Core10.Handles.ImageView' +-- being sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as +-- a result of this command /must/ have +-- 'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.SamplerCubicWeightsCreateInfoQCOM'::@cubicWeights@ +-- equal to +-- 'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM' +-- +-- - #VUID-vkCmdDispatchGraphIndirectAMDX-flags-02696# Any +-- 'Vulkan.Core10.Handles.Image' created with a +-- 'Vulkan.Core10.Image.ImageCreateInfo'::@flags@ containing +-- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_CORNER_SAMPLED_BIT_NV' +-- sampled as a result of this command /must/ only be sampled using a +-- 'Vulkan.Core10.Enums.SamplerAddressMode.SamplerAddressMode' of +-- 'Vulkan.Core10.Enums.SamplerAddressMode.SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE' +-- +-- - #VUID-vkCmdDispatchGraphIndirectAMDX-OpTypeImage-07027# For any +-- 'Vulkan.Core10.Handles.ImageView' being written as a storage image +-- where the image format field of the @OpTypeImage@ is @Unknown@, the +-- view’s +-- +-- /must/ contain +-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT' +-- +-- - #VUID-vkCmdDispatchGraphIndirectAMDX-OpTypeImage-07028# For any +-- 'Vulkan.Core10.Handles.ImageView' being read as a storage image +-- where the image format field of the @OpTypeImage@ is @Unknown@, the +-- view’s +-- +-- /must/ contain +-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT' +-- +-- - #VUID-vkCmdDispatchGraphIndirectAMDX-OpTypeImage-07029# For any +-- 'Vulkan.Core10.Handles.BufferView' being written as a storage texel +-- buffer where the image format field of the @OpTypeImage@ is +-- @Unknown@, the view’s +-- +-- /must/ contain +-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT' +-- +-- - #VUID-vkCmdDispatchGraphIndirectAMDX-OpTypeImage-07030# Any +-- 'Vulkan.Core10.Handles.BufferView' being read as a storage texel +-- buffer where the image format field of the @OpTypeImage@ is +-- @Unknown@ then the view’s +-- +-- /must/ contain +-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT' +-- +-- - #VUID-vkCmdDispatchGraphIndirectAMDX-None-08600# For each set /n/ +-- that is statically used by +-- , +-- a descriptor set /must/ have been bound to /n/ at the same pipeline +-- bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is +-- compatible for set /n/, with the +-- 'Vulkan.Core10.Handles.PipelineLayout' or +-- 'Vulkan.Core10.Handles.DescriptorSetLayout' array that was used to +-- create the current 'Vulkan.Core10.Handles.Pipeline' or +-- 'Vulkan.Extensions.Handles.ShaderEXT', as described in +-- +-- +-- - #VUID-vkCmdDispatchGraphIndirectAMDX-None-08601# For each push +-- constant that is statically used by +-- , +-- a push constant value /must/ have been set for the same pipeline +-- bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is +-- compatible for push constants, with the +-- 'Vulkan.Core10.Handles.PipelineLayout' or +-- 'Vulkan.Core10.Handles.DescriptorSetLayout' and +-- 'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to +-- create the current 'Vulkan.Core10.Handles.Pipeline' or +-- 'Vulkan.Extensions.Handles.ShaderEXT', as described in +-- +-- +-- - #VUID-vkCmdDispatchGraphIndirectAMDX-maintenance4-08602# If the +-- +-- feature is not enabled, then for each push constant that is +-- statically used by +-- , +-- a push constant value /must/ have been set for the same pipeline +-- bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is +-- compatible for push constants, with the +-- 'Vulkan.Core10.Handles.PipelineLayout' or +-- 'Vulkan.Core10.Handles.DescriptorSetLayout' and +-- 'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to +-- create the current 'Vulkan.Core10.Handles.Pipeline' or +-- 'Vulkan.Extensions.Handles.ShaderEXT', as described in +-- +-- +-- - #VUID-vkCmdDispatchGraphIndirectAMDX-None-08114# Descriptors in each +-- bound descriptor set, specified via +-- 'Vulkan.Core10.CommandBufferBuilding.cmdBindDescriptorSets', /must/ +-- be valid if they are statically used by the +-- 'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point +-- used by this command and the bound 'Vulkan.Core10.Handles.Pipeline' +-- was not created with +-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT' +-- +-- - #VUID-vkCmdDispatchGraphIndirectAMDX-None-08115# If the descriptors +-- used by the 'Vulkan.Core10.Handles.Pipeline' bound to the pipeline +-- bind point were specified via +-- 'Vulkan.Core10.CommandBufferBuilding.cmdBindDescriptorSets', the +-- bound 'Vulkan.Core10.Handles.Pipeline' /must/ have been created +-- without +-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT' +-- +-- - #VUID-vkCmdDispatchGraphIndirectAMDX-None-08116# Descriptors in +-- bound descriptor buffers, specified via +-- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT', +-- /must/ be valid if they are dynamically used by the +-- 'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point +-- used by this command and the bound 'Vulkan.Core10.Handles.Pipeline' +-- was created with +-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT' +-- +-- - #VUID-vkCmdDispatchGraphIndirectAMDX-None-08604# Descriptors in +-- bound descriptor buffers, specified via +-- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT', +-- /must/ be valid if they are dynamically used by any +-- 'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding +-- to the pipeline bind point used by this command +-- +-- - #VUID-vkCmdDispatchGraphIndirectAMDX-None-08117# If the descriptors +-- used by the 'Vulkan.Core10.Handles.Pipeline' bound to the pipeline +-- bind point were specified via +-- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT', +-- the bound 'Vulkan.Core10.Handles.Pipeline' /must/ have been created +-- with +-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT' +-- +-- - #VUID-vkCmdDispatchGraphIndirectAMDX-None-08119# If a descriptor is +-- dynamically used with a 'Vulkan.Core10.Handles.Pipeline' created +-- with +-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT', +-- the descriptor memory /must/ be resident +-- +-- - #VUID-vkCmdDispatchGraphIndirectAMDX-None-08605# If a descriptor is +-- dynamically used with a 'Vulkan.Extensions.Handles.ShaderEXT' +-- created with a 'Vulkan.Core10.Handles.DescriptorSetLayout' that was +-- created with +-- 'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT', +-- the descriptor memory /must/ be resident +-- +-- - #VUID-vkCmdDispatchGraphIndirectAMDX-None-08606# If the +-- +-- feature is not enabled, a valid pipeline /must/ be bound to the +-- pipeline bind point used by this command +-- +-- - #VUID-vkCmdDispatchGraphIndirectAMDX-None-08607# If the +-- +-- is enabled, either a valid pipeline /must/ be bound to the pipeline +-- bind point used by this command, or a valid combination of valid and +-- 'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be +-- bound to every supported shader stage corresponding to the pipeline +-- bind point used by this command +-- +-- - #VUID-vkCmdDispatchGraphIndirectAMDX-None-08608# If a pipeline is +-- bound to the pipeline bind point used by this command, there /must/ +-- not have been any calls to dynamic state setting commands for any +-- state not specified as dynamic in the +-- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind +-- point used by this command, since that pipeline was bound +-- +-- - #VUID-vkCmdDispatchGraphIndirectAMDX-None-08609# If the +-- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind +-- point used by this command or any +-- 'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding +-- to the pipeline bind point used by this command accesses a +-- 'Vulkan.Core10.Handles.Sampler' object that uses unnormalized +-- coordinates, that sampler /must/ not be used to sample from any +-- 'Vulkan.Core10.Handles.Image' with a +-- 'Vulkan.Core10.Handles.ImageView' of the type +-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_3D', +-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE', +-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_1D_ARRAY', +-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D_ARRAY' or +-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE_ARRAY', in +-- any shader stage +-- +-- - #VUID-vkCmdDispatchGraphIndirectAMDX-None-08610# If the +-- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind +-- point used by this command or any +-- 'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding +-- to the pipeline bind point used by this command accesses a +-- 'Vulkan.Core10.Handles.Sampler' object that uses unnormalized +-- coordinates, that sampler /must/ not be used with any of the SPIR-V +-- @OpImageSample*@ or @OpImageSparseSample*@ instructions with +-- @ImplicitLod@, @Dref@ or @Proj@ in their name, in any shader stage +-- +-- - #VUID-vkCmdDispatchGraphIndirectAMDX-None-08611# If the +-- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind +-- point used by this command or any +-- 'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding +-- to the pipeline bind point used by this command accesses a +-- 'Vulkan.Core10.Handles.Sampler' object that uses unnormalized +-- coordinates, that sampler /must/ not be used with any of the SPIR-V +-- @OpImageSample*@ or @OpImageSparseSample*@ instructions that +-- includes a LOD bias or any offset values, in any shader stage +-- +-- - #VUID-vkCmdDispatchGraphIndirectAMDX-uniformBuffers-06935# If any +-- stage of the 'Vulkan.Core10.Handles.Pipeline' object bound to the +-- pipeline bind point used by this command accesses a uniform buffer, +-- and that stage was created without enabling either +-- 'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT' +-- or +-- 'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT' +-- for @uniformBuffers@, and the +-- +-- feature is not enabled, that stage /must/ not access values outside +-- of the range of the buffer as specified in the descriptor set bound +-- to the same pipeline bind point +-- +-- - #VUID-vkCmdDispatchGraphIndirectAMDX-None-08612# If the +-- +-- feature is not enabled, and any +-- 'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding +-- to the pipeline bind point used by this command accesses a uniform +-- buffer, it /must/ not access values outside of the range of the +-- buffer as specified in the descriptor set bound to the same pipeline +-- bind point +-- +-- - #VUID-vkCmdDispatchGraphIndirectAMDX-storageBuffers-06936# If any +-- stage of the 'Vulkan.Core10.Handles.Pipeline' object bound to the +-- pipeline bind point used by this command accesses a storage buffer, +-- and that stage was created without enabling either +-- 'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT' +-- or +-- 'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT' +-- for @storageBuffers@, and the +-- +-- feature is not enabled, that stage /must/ not access values outside +-- of the range of the buffer as specified in the descriptor set bound +-- to the same pipeline bind point +-- +-- - #VUID-vkCmdDispatchGraphIndirectAMDX-None-08613# If the +-- +-- feature is not enabled, and any +-- 'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding +-- to the pipeline bind point used by this command accesses a storage +-- buffer, it /must/ not access values outside of the range of the +-- buffer as specified in the descriptor set bound to the same pipeline +-- bind point +-- +-- - #VUID-vkCmdDispatchGraphIndirectAMDX-commandBuffer-02707# If +-- @commandBuffer@ is an unprotected command buffer and +-- +-- is not supported, any resource accessed by +-- +-- /must/ not be a protected resource +-- +-- - #VUID-vkCmdDispatchGraphIndirectAMDX-None-06550# If +-- +-- accesses a 'Vulkan.Core10.Handles.Sampler' or +-- 'Vulkan.Core10.Handles.ImageView' object that enables +-- , +-- that object /must/ only be used with @OpImageSample*@ or +-- @OpImageSparseSample*@ instructions +-- +-- - #VUID-vkCmdDispatchGraphIndirectAMDX-ConstOffset-06551# If +-- +-- accesses a 'Vulkan.Core10.Handles.Sampler' or +-- 'Vulkan.Core10.Handles.ImageView' object that enables +-- , +-- that object /must/ not use the @ConstOffset@ and @Offset@ operands +-- +-- - #VUID-vkCmdDispatchGraphIndirectAMDX-viewType-07752# If a +-- 'Vulkan.Core10.Handles.ImageView' is accessed as a result of this +-- command, then the image view’s @viewType@ /must/ match the @Dim@ +-- operand of the @OpTypeImage@ as described in +-- +-- +-- - #VUID-vkCmdDispatchGraphIndirectAMDX-format-07753# If a +-- 'Vulkan.Core10.Handles.ImageView' is accessed as a result of this +-- command, then the +-- +-- of the image view’s @format@ and the @Sampled@ @Type@ operand of the +-- @OpTypeImage@ /must/ match +-- +-- - #VUID-vkCmdDispatchGraphIndirectAMDX-OpImageWrite-08795# If a +-- 'Vulkan.Core10.Handles.ImageView' created with a format other than +-- 'Vulkan.Core10.Enums.Format.FORMAT_A8_UNORM_KHR' is accessed using +-- @OpImageWrite@ as a result of this command, then the @Type@ of the +-- @Texel@ operand of that instruction /must/ have at least as many +-- components as the image view’s format +-- +-- - #VUID-vkCmdDispatchGraphIndirectAMDX-OpImageWrite-08796# If a +-- 'Vulkan.Core10.Handles.ImageView' created with the format +-- 'Vulkan.Core10.Enums.Format.FORMAT_A8_UNORM_KHR' is accessed using +-- @OpImageWrite@ as a result of this command, then the @Type@ of the +-- @Texel@ operand of that instruction /must/ have four components +-- +-- - #VUID-vkCmdDispatchGraphIndirectAMDX-OpImageWrite-04469# If a +-- 'Vulkan.Core10.Handles.BufferView' is accessed using @OpImageWrite@ +-- as a result of this command, then the @Type@ of the @Texel@ operand +-- of that instruction /must/ have at least as many components as the +-- buffer view’s format +-- +-- - #VUID-vkCmdDispatchGraphIndirectAMDX-SampledType-04470# If a +-- 'Vulkan.Core10.Handles.ImageView' with a +-- 'Vulkan.Core10.Enums.Format.Format' that has a 64-bit component +-- width is accessed as a result of this command, the @SampledType@ of +-- the @OpTypeImage@ operand of that instruction /must/ have a @Width@ +-- of 64 +-- +-- - #VUID-vkCmdDispatchGraphIndirectAMDX-SampledType-04471# If a +-- 'Vulkan.Core10.Handles.ImageView' with a +-- 'Vulkan.Core10.Enums.Format.Format' that has a component width less +-- than 64-bit is accessed as a result of this command, the +-- @SampledType@ of the @OpTypeImage@ operand of that instruction +-- /must/ have a @Width@ of 32 +-- +-- - #VUID-vkCmdDispatchGraphIndirectAMDX-SampledType-04472# If a +-- 'Vulkan.Core10.Handles.BufferView' with a +-- 'Vulkan.Core10.Enums.Format.Format' that has a 64-bit component +-- width is accessed as a result of this command, the @SampledType@ of +-- the @OpTypeImage@ operand of that instruction /must/ have a @Width@ +-- of 64 +-- +-- - #VUID-vkCmdDispatchGraphIndirectAMDX-SampledType-04473# If a +-- 'Vulkan.Core10.Handles.BufferView' with a +-- 'Vulkan.Core10.Enums.Format.Format' that has a component width less +-- than 64-bit is accessed as a result of this command, the +-- @SampledType@ of the @OpTypeImage@ operand of that instruction +-- /must/ have a @Width@ of 32 +-- +-- - #VUID-vkCmdDispatchGraphIndirectAMDX-sparseImageInt64Atomics-04474# +-- If the +-- +-- feature is not enabled, 'Vulkan.Core10.Handles.Image' objects +-- created with the +-- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SPARSE_RESIDENCY_BIT' +-- flag /must/ not be accessed by atomic instructions through an +-- @OpTypeImage@ with a @SampledType@ with a @Width@ of 64 by this +-- command +-- +-- - #VUID-vkCmdDispatchGraphIndirectAMDX-sparseImageInt64Atomics-04475# +-- If the +-- +-- feature is not enabled, 'Vulkan.Core10.Handles.Buffer' objects +-- created with the +-- 'Vulkan.Core10.Enums.BufferCreateFlagBits.BUFFER_CREATE_SPARSE_RESIDENCY_BIT' +-- flag /must/ not be accessed by atomic instructions through an +-- @OpTypeImage@ with a @SampledType@ with a @Width@ of 64 by this +-- command +-- +-- - #VUID-vkCmdDispatchGraphIndirectAMDX-OpImageWeightedSampleQCOM-06971# +-- If @OpImageWeightedSampleQCOM@ is used to sample a +-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then +-- the image view’s +-- +-- /must/ contain +-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM' +-- +-- - #VUID-vkCmdDispatchGraphIndirectAMDX-OpImageWeightedSampleQCOM-06972# +-- If @OpImageWeightedSampleQCOM@ uses a +-- 'Vulkan.Core10.Handles.ImageView' as a sample weight image as a +-- result of this command, then the image view’s +-- +-- /must/ contain +-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM' +-- +-- - #VUID-vkCmdDispatchGraphIndirectAMDX-OpImageBoxFilterQCOM-06973# If +-- @OpImageBoxFilterQCOM@ is used to sample a +-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then +-- the image view’s +-- +-- /must/ contain +-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM' +-- +-- - #VUID-vkCmdDispatchGraphIndirectAMDX-OpImageBlockMatchSSDQCOM-06974# +-- If @OpImageBlockMatchSSDQCOM@ is used to read from an +-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then +-- the image view’s +-- +-- /must/ contain +-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM' +-- +-- - #VUID-vkCmdDispatchGraphIndirectAMDX-OpImageBlockMatchSADQCOM-06975# +-- If @OpImageBlockMatchSADQCOM@ is used to read from an +-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then +-- the image view’s +-- +-- /must/ contain +-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM' +-- +-- - #VUID-vkCmdDispatchGraphIndirectAMDX-OpImageBlockMatchSADQCOM-06976# +-- If @OpImageBlockMatchSADQCOM@ or OpImageBlockMatchSSDQCOM is used to +-- read from a reference image as result of this command, then the +-- specified reference coordinates /must/ not fail +-- +-- +-- - #VUID-vkCmdDispatchGraphIndirectAMDX-OpImageWeightedSampleQCOM-06977# +-- If @OpImageWeightedSampleQCOM@, @OpImageBoxFilterQCOM@, +-- @OpImageBlockMatchWindowSSDQCOM@, @OpImageBlockMatchWindowSADQCOM@, +-- @OpImageBlockMatchGatherSSDQCOM@, @OpImageBlockMatchGatherSADQCOM@, +-- @OpImageBlockMatchSSDQCOM@, or @OpImageBlockMatchSADQCOM@ uses a +-- 'Vulkan.Core10.Handles.Sampler' as a result of this command, then +-- the sampler /must/ have been created with +-- 'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM' +-- +-- - #VUID-vkCmdDispatchGraphIndirectAMDX-OpImageWeightedSampleQCOM-06978# +-- If any command other than @OpImageWeightedSampleQCOM@, +-- @OpImageBoxFilterQCOM@, @OpImageBlockMatchWindowSSDQCOM@, +-- @OpImageBlockMatchWindowSADQCOM@, @OpImageBlockMatchGatherSSDQCOM@, +-- @OpImageBlockMatchGatherSADQCOM@, @OpImageBlockMatchSSDQCOM@, or +-- @OpImageBlockMatchSADQCOM@ uses a 'Vulkan.Core10.Handles.Sampler' as +-- a result of this command, then the sampler /must/ not have been +-- created with +-- 'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM' +-- +-- - #VUID-vkCmdDispatchGraphIndirectAMDX-OpImageBlockMatchWindow-09215# +-- If a @OpImageBlockMatchWindow*QCOM@ or +-- @OpImageBlockMatchGather*QCOM@ instruction is used to read from an +-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then +-- the image view’s +-- +-- /must/ contain +-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM' +-- +-- - #VUID-vkCmdDispatchGraphIndirectAMDX-OpImageBlockMatchWindow-09216# +-- If a @OpImageBlockMatchWindow*QCOM@ or +-- @OpImageBlockMatchGather*QCOM@ instruction is used to read from an +-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then +-- the image view’s format /must/ be a single-component format. +-- +-- - #VUID-vkCmdDispatchGraphIndirectAMDX-OpImageBlockMatchWindow-09217# +-- If a @OpImageBlockMatchWindow*QCOM@ or +-- @OpImageBlockMatchGather*QCOM@ read from a reference image as result +-- of this command, then the specified reference coordinates /must/ not +-- fail +-- +-- +-- - #VUID-vkCmdDispatchGraphIndirectAMDX-None-07288# Any shader +-- invocation executed by this command /must/ +-- +-- +-- - #VUID-vkCmdDispatchGraphIndirectAMDX-commandBuffer-09181# +-- @commandBuffer@ /must/ not be a protected command buffer +-- +-- - #VUID-vkCmdDispatchGraphIndirectAMDX-commandBuffer-09182# +-- @commandBuffer@ /must/ be a primary command buffer +-- +-- - #VUID-vkCmdDispatchGraphIndirectAMDX-scratch-09183# @scratch@ /must/ +-- be the device address of an allocated memory range at least as large +-- as the value of 'ExecutionGraphPipelineScratchSizeAMDX'::@size@ +-- returned by 'ExecutionGraphPipelineScratchSizeAMDX' for the +-- currently bound execution graph pipeline +-- +-- - #VUID-vkCmdDispatchGraphIndirectAMDX-scratch-09184# @scratch@ /must/ +-- be a device address within a 'Vulkan.Core10.Handles.Buffer' created +-- with the +-- 'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_EXECUTION_GRAPH_SCRATCH_BIT_AMDX' +-- or 'BUFFER_USAGE_2_EXECUTION_GRAPH_SCRATCH_BIT_AMDX' flag +-- +-- - #VUID-vkCmdDispatchGraphIndirectAMDX-scratch-09185# Device memory in +-- the range [@scratch@,@scratch@ +-- 'ExecutionGraphPipelineScratchSizeAMDX'::@size@) /must/ have been +-- initialized with 'cmdInitializeGraphScratchMemoryAMDX' using the +-- currently bound execution graph pipeline, and not modified after +-- that by anything other than another execution graph dispatch command +-- +-- - #VUID-vkCmdDispatchGraphIndirectAMDX-maxComputeWorkGroupCount-09186# +-- Execution of this command /must/ not cause a node to be dispatched +-- with a larger number of workgroups than that specified by either a +-- @MaxNumWorkgroupsAMDX@ decoration in the dispatched node or +-- +-- +-- - #VUID-vkCmdDispatchGraphIndirectAMDX-maxExecutionGraphShaderPayloadCount-09187# +-- Execution of this command /must/ not cause any shader to initialize +-- more than +-- +-- output payloads +-- +-- - #VUID-vkCmdDispatchGraphIndirectAMDX-NodeMaxPayloadsAMDX-09188# +-- Execution of this command /must/ not cause any shader that declares +-- @NodeMaxPayloadsAMDX@ to initialize more output payloads than +-- specified by the max number of payloads for that decoration. This +-- requirement applies to each @NodeMaxPayloadsAMDX@ decoration +-- separately +-- +-- - #VUID-vkCmdDispatchGraphIndirectAMDX-pCountInfo-09150# +-- @pCountInfo->infos@ /must/ be a device pointer to a memory +-- allocation at least as large as the product of @count@ and @stride@ +-- when this command is executed on the device +-- +-- - #VUID-vkCmdDispatchGraphIndirectAMDX-pCountInfo-09151# +-- @pCountInfo->infos@ /must/ be a device address within a +-- 'Vulkan.Core10.Handles.Buffer' created with the +-- 'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_INDIRECT_BUFFER_BIT' +-- flag +-- +-- - #VUID-vkCmdDispatchGraphIndirectAMDX-pCountInfo-09152# +-- @pCountInfo->infos@ /must/ be a multiple of +-- +-- +-- - #VUID-vkCmdDispatchGraphIndirectAMDX-infos-09153# Device memory +-- locations at indexes in the range [@infos@, @infos@ + +-- (@count@*@stride@)), at a granularity of @stride@ /must/ contain +-- valid 'DispatchGraphInfoAMDX' structures in the first 24 bytes when +-- this command is executed on the device +-- +-- - #VUID-vkCmdDispatchGraphIndirectAMDX-pCountInfo-09154# For each +-- 'DispatchGraphInfoAMDX' structure in @pCountInfo->infos@, @payloads@ +-- /must/ be a device pointer to a memory allocation at least as large +-- as the product of @payloadCount@ and @payloadStride@ when this +-- command is executed on the device +-- +-- - #VUID-vkCmdDispatchGraphIndirectAMDX-pCountInfo-09155# For each +-- 'DispatchGraphInfoAMDX' structure in @pCountInfo->infos@, @payloads@ +-- /must/ be a device address within a 'Vulkan.Core10.Handles.Buffer' +-- created with the +-- 'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_INDIRECT_BUFFER_BIT' +-- flag +-- +-- - #VUID-vkCmdDispatchGraphIndirectAMDX-pCountInfo-09156# For each +-- 'DispatchGraphInfoAMDX' structure in @pCountInfo->infos@, @payloads@ +-- /must/ be a multiple of +-- +-- +-- - #VUID-vkCmdDispatchGraphIndirectAMDX-pCountInfo-09157# For each +-- 'DispatchGraphInfoAMDX' structure in @pCountInfo->infos@, +-- @nodeIndex@ /must/ be a valid node index in the currently bound +-- execution graph pipeline, as returned by +-- 'getExecutionGraphPipelineNodeIndexAMDX' when this command is +-- executed on the device +-- +-- - #VUID-vkCmdDispatchGraphIndirectAMDX-pCountInfo-09158# For each +-- 'DispatchGraphInfoAMDX' structure in @pCountInfo->infos@, device +-- memory locations at indexes in the range [@payloads@, @payloads@ + +-- (@payloadCount@ * @payloadStride@)), at a granularity of +-- @payloadStride@ /must/ contain a payload matching the size of the +-- input payload expected by the node in @nodeIndex@ in the first bytes +-- when this command is executed on the device +-- +-- == Valid Usage (Implicit) +-- +-- - #VUID-vkCmdDispatchGraphIndirectAMDX-commandBuffer-parameter# +-- @commandBuffer@ /must/ be a valid +-- 'Vulkan.Core10.Handles.CommandBuffer' handle +-- +-- - #VUID-vkCmdDispatchGraphIndirectAMDX-pCountInfo-parameter# +-- @pCountInfo@ /must/ be a valid pointer to a valid +-- 'DispatchGraphCountInfoAMDX' structure +-- +-- - #VUID-vkCmdDispatchGraphIndirectAMDX-commandBuffer-recording# +-- @commandBuffer@ /must/ be in the +-- +-- +-- - #VUID-vkCmdDispatchGraphIndirectAMDX-commandBuffer-cmdpool# The +-- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was +-- allocated from /must/ support graphics, or compute operations +-- +-- - #VUID-vkCmdDispatchGraphIndirectAMDX-renderpass# This command /must/ +-- only be called outside of a render pass instance +-- +-- - #VUID-vkCmdDispatchGraphIndirectAMDX-videocoding# This command +-- /must/ only be called outside of a video coding scope +-- +-- - #VUID-vkCmdDispatchGraphIndirectAMDX-bufferlevel# @commandBuffer@ +-- /must/ be a primary 'Vulkan.Core10.Handles.CommandBuffer' +-- +-- == Host Synchronization +-- +-- - Host access to the 'Vulkan.Core10.Handles.CommandPool' that +-- @commandBuffer@ was allocated from /must/ be externally synchronized +-- +-- == Command Properties +-- +-- \' +-- +-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ +-- | | | | | | +-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================+ +-- | Primary | Outside | Outside | Graphics | Action | +-- | | | | Compute | | +-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ +-- +-- = See Also +-- +-- , +-- 'Vulkan.Core10.Handles.CommandBuffer', +-- 'Vulkan.Core10.FundamentalTypes.DeviceAddress', +-- 'DispatchGraphCountInfoAMDX' +cmdDispatchGraphIndirectAMDX :: forall io + . (MonadIO io) + => -- | @commandBuffer@ is the command buffer into which the command will be + -- recorded. + CommandBuffer + -> -- | @scratch@ is a pointer to the scratch memory to be used. + ("scratch" ::: DeviceAddress) + -> -- | @pCountInfo@ is a host pointer to a 'DispatchGraphCountInfoAMDX' + -- structure defining the nodes which will be initially executed. + DispatchGraphCountInfoAMDX + -> io () +cmdDispatchGraphIndirectAMDX commandBuffer + scratch + countInfo = liftIO . evalContT $ do + let vkCmdDispatchGraphIndirectAMDXPtr = pVkCmdDispatchGraphIndirectAMDX (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds) + lift $ unless (vkCmdDispatchGraphIndirectAMDXPtr /= nullFunPtr) $ + throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdDispatchGraphIndirectAMDX is null" Nothing Nothing + let vkCmdDispatchGraphIndirectAMDX' = mkVkCmdDispatchGraphIndirectAMDX vkCmdDispatchGraphIndirectAMDXPtr + pCountInfo <- ContT $ withCStruct (countInfo) + lift $ traceAroundEvent "vkCmdDispatchGraphIndirectAMDX" (vkCmdDispatchGraphIndirectAMDX' + (commandBufferHandle (commandBuffer)) + (scratch) + pCountInfo) + pure $ () + + +foreign import ccall +#if !defined(SAFE_FOREIGN_CALLS) + unsafe +#endif + "dynamic" mkVkCmdDispatchGraphIndirectCountAMDX + :: FunPtr (Ptr CommandBuffer_T -> DeviceAddress -> DeviceAddress -> IO ()) -> Ptr CommandBuffer_T -> DeviceAddress -> DeviceAddress -> IO () + +-- | vkCmdDispatchGraphIndirectCountAMDX - Dispatch an execution graph with +-- all parameters read on the device +-- +-- = Description +-- +-- When this command is executed, the nodes specified in @countInfo@ are +-- executed. Nodes executed as part of this command are not implicitly +-- synchronized in any way against each other once they are dispatched. +-- +-- For this command, all pointers in substructures are treated as device +-- pointers and read during device execution of this command. The +-- allocation and contents of these pointers only needs to be valid during +-- device execution. All of these addresses will be read in the +-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COMPUTE_SHADER_BIT' +-- pipeline stage with the +-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_SHADER_STORAGE_READ_BIT' +-- access flag. +-- +-- Execution of this command /may/ modify any memory locations in the range +-- [@scratch@,@scratch@ + @size@), where @size@ is the value returned in +-- 'ExecutionGraphPipelineScratchSizeAMDX'::@size@ by +-- 'ExecutionGraphPipelineScratchSizeAMDX' for the currently bound +-- execution graph pipeline. Accesses to this memory range are performed in +-- the +-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COMPUTE_SHADER_BIT' +-- pipeline stage with the +-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_SHADER_STORAGE_READ_BIT' and +-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_SHADER_STORAGE_WRITE_BIT' +-- access flags. +-- +-- == Valid Usage +-- +-- - #VUID-vkCmdDispatchGraphIndirectCountAMDX-magFilter-04553# If a +-- 'Vulkan.Core10.Handles.Sampler' created with @magFilter@ or +-- @minFilter@ equal to 'Vulkan.Core10.Enums.Filter.FILTER_LINEAR' and +-- @compareEnable@ equal to 'Vulkan.Core10.FundamentalTypes.FALSE' is +-- used to sample a 'Vulkan.Core10.Handles.ImageView' as a result of +-- this command, then the image view’s +-- +-- /must/ contain +-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT' +-- +-- - #VUID-vkCmdDispatchGraphIndirectCountAMDX-mipmapMode-04770# If a +-- 'Vulkan.Core10.Handles.Sampler' created with @mipmapMode@ equal to +-- 'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR' +-- and @compareEnable@ equal to 'Vulkan.Core10.FundamentalTypes.FALSE' +-- is used to sample a 'Vulkan.Core10.Handles.ImageView' as a result of +-- this command, then the image view’s +-- +-- /must/ contain +-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT' +-- +-- - #VUID-vkCmdDispatchGraphIndirectCountAMDX-None-06479# If a +-- 'Vulkan.Core10.Handles.ImageView' is sampled with +-- , +-- the image view’s +-- +-- /must/ contain +-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT' +-- +-- - #VUID-vkCmdDispatchGraphIndirectCountAMDX-None-02691# If a +-- 'Vulkan.Core10.Handles.ImageView' is accessed using atomic +-- operations as a result of this command, then the image view’s +-- +-- /must/ contain +-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT' +-- +-- - #VUID-vkCmdDispatchGraphIndirectCountAMDX-None-07888# If a +-- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER' +-- descriptor is accessed using atomic operations as a result of this +-- command, then the storage texel buffer’s +-- +-- /must/ contain +-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT' +-- +-- - #VUID-vkCmdDispatchGraphIndirectCountAMDX-None-02692# If a +-- 'Vulkan.Core10.Handles.ImageView' is sampled with +-- 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a result of this +-- command, then the image view’s +-- +-- /must/ contain +-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT' +-- +-- - #VUID-vkCmdDispatchGraphIndirectCountAMDX-None-02693# If the +-- +-- extension is not enabled and any 'Vulkan.Core10.Handles.ImageView' +-- is sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a +-- result of this command, it /must/ not have a +-- 'Vulkan.Core10.Enums.ImageViewType.ImageViewType' of +-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_3D', +-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE', or +-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE_ARRAY' +-- +-- - #VUID-vkCmdDispatchGraphIndirectCountAMDX-filterCubic-02694# Any +-- 'Vulkan.Core10.Handles.ImageView' being sampled with +-- 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a result of this +-- command /must/ have a +-- 'Vulkan.Core10.Enums.ImageViewType.ImageViewType' and format that +-- supports cubic filtering, as specified by +-- 'Vulkan.Extensions.VK_EXT_filter_cubic.FilterCubicImageViewImageFormatPropertiesEXT'::@filterCubic@ +-- returned by +-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceImageFormatProperties2' +-- +-- - #VUID-vkCmdDispatchGraphIndirectCountAMDX-filterCubicMinmax-02695# +-- Any 'Vulkan.Core10.Handles.ImageView' being sampled with +-- 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' with a reduction mode +-- of either +-- 'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MIN' +-- or +-- 'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MAX' +-- as a result of this command /must/ have a +-- 'Vulkan.Core10.Enums.ImageViewType.ImageViewType' and format that +-- supports cubic filtering together with minmax filtering, as +-- specified by +-- 'Vulkan.Extensions.VK_EXT_filter_cubic.FilterCubicImageViewImageFormatPropertiesEXT'::@filterCubicMinmax@ +-- returned by +-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceImageFormatProperties2' +-- +-- - #VUID-vkCmdDispatchGraphIndirectCountAMDX-cubicRangeClamp-09212# If +-- the +-- +-- feature is not enabled, then any 'Vulkan.Core10.Handles.ImageView' +-- being sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as +-- a result of this command +-- +-- [/must/ not have a 'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo'] +-- @reductionMode@ equal to +-- 'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM' +-- +-- - #VUID-vkCmdDispatchGraphIndirectCountAMDX-reductionMode-09213# Any +-- 'Vulkan.Core10.Handles.ImageView' being sampled with a +-- 'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo'::@reductionMode@ +-- equal to +-- 'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM' +-- as a result of this command /must/ sample with +-- 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' +-- +-- - #VUID-vkCmdDispatchGraphIndirectCountAMDX-selectableCubicWeights-09214# +-- If the +-- +-- feature is not enabled, then any 'Vulkan.Core10.Handles.ImageView' +-- being sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as +-- a result of this command /must/ have +-- 'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.SamplerCubicWeightsCreateInfoQCOM'::@cubicWeights@ +-- equal to +-- 'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM' +-- +-- - #VUID-vkCmdDispatchGraphIndirectCountAMDX-flags-02696# Any +-- 'Vulkan.Core10.Handles.Image' created with a +-- 'Vulkan.Core10.Image.ImageCreateInfo'::@flags@ containing +-- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_CORNER_SAMPLED_BIT_NV' +-- sampled as a result of this command /must/ only be sampled using a +-- 'Vulkan.Core10.Enums.SamplerAddressMode.SamplerAddressMode' of +-- 'Vulkan.Core10.Enums.SamplerAddressMode.SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE' +-- +-- - #VUID-vkCmdDispatchGraphIndirectCountAMDX-OpTypeImage-07027# For any +-- 'Vulkan.Core10.Handles.ImageView' being written as a storage image +-- where the image format field of the @OpTypeImage@ is @Unknown@, the +-- view’s +-- +-- /must/ contain +-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT' +-- +-- - #VUID-vkCmdDispatchGraphIndirectCountAMDX-OpTypeImage-07028# For any +-- 'Vulkan.Core10.Handles.ImageView' being read as a storage image +-- where the image format field of the @OpTypeImage@ is @Unknown@, the +-- view’s +-- +-- /must/ contain +-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT' +-- +-- - #VUID-vkCmdDispatchGraphIndirectCountAMDX-OpTypeImage-07029# For any +-- 'Vulkan.Core10.Handles.BufferView' being written as a storage texel +-- buffer where the image format field of the @OpTypeImage@ is +-- @Unknown@, the view’s +-- +-- /must/ contain +-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT' +-- +-- - #VUID-vkCmdDispatchGraphIndirectCountAMDX-OpTypeImage-07030# Any +-- 'Vulkan.Core10.Handles.BufferView' being read as a storage texel +-- buffer where the image format field of the @OpTypeImage@ is +-- @Unknown@ then the view’s +-- +-- /must/ contain +-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT' +-- +-- - #VUID-vkCmdDispatchGraphIndirectCountAMDX-None-08600# For each set +-- /n/ that is statically used by +-- , +-- a descriptor set /must/ have been bound to /n/ at the same pipeline +-- bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is +-- compatible for set /n/, with the +-- 'Vulkan.Core10.Handles.PipelineLayout' or +-- 'Vulkan.Core10.Handles.DescriptorSetLayout' array that was used to +-- create the current 'Vulkan.Core10.Handles.Pipeline' or +-- 'Vulkan.Extensions.Handles.ShaderEXT', as described in +-- +-- +-- - #VUID-vkCmdDispatchGraphIndirectCountAMDX-None-08601# For each push +-- constant that is statically used by +-- , +-- a push constant value /must/ have been set for the same pipeline +-- bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is +-- compatible for push constants, with the +-- 'Vulkan.Core10.Handles.PipelineLayout' or +-- 'Vulkan.Core10.Handles.DescriptorSetLayout' and +-- 'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to +-- create the current 'Vulkan.Core10.Handles.Pipeline' or +-- 'Vulkan.Extensions.Handles.ShaderEXT', as described in +-- +-- +-- - #VUID-vkCmdDispatchGraphIndirectCountAMDX-maintenance4-08602# If the +-- +-- feature is not enabled, then for each push constant that is +-- statically used by +-- , +-- a push constant value /must/ have been set for the same pipeline +-- bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is +-- compatible for push constants, with the +-- 'Vulkan.Core10.Handles.PipelineLayout' or +-- 'Vulkan.Core10.Handles.DescriptorSetLayout' and +-- 'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to +-- create the current 'Vulkan.Core10.Handles.Pipeline' or +-- 'Vulkan.Extensions.Handles.ShaderEXT', as described in +-- +-- +-- - #VUID-vkCmdDispatchGraphIndirectCountAMDX-None-08114# Descriptors in +-- each bound descriptor set, specified via +-- 'Vulkan.Core10.CommandBufferBuilding.cmdBindDescriptorSets', /must/ +-- be valid if they are statically used by the +-- 'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point +-- used by this command and the bound 'Vulkan.Core10.Handles.Pipeline' +-- was not created with +-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT' +-- +-- - #VUID-vkCmdDispatchGraphIndirectCountAMDX-None-08115# If the +-- descriptors used by the 'Vulkan.Core10.Handles.Pipeline' bound to +-- the pipeline bind point were specified via +-- 'Vulkan.Core10.CommandBufferBuilding.cmdBindDescriptorSets', the +-- bound 'Vulkan.Core10.Handles.Pipeline' /must/ have been created +-- without +-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT' +-- +-- - #VUID-vkCmdDispatchGraphIndirectCountAMDX-None-08116# Descriptors in +-- bound descriptor buffers, specified via +-- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT', +-- /must/ be valid if they are dynamically used by the +-- 'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point +-- used by this command and the bound 'Vulkan.Core10.Handles.Pipeline' +-- was created with +-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT' +-- +-- - #VUID-vkCmdDispatchGraphIndirectCountAMDX-None-08604# Descriptors in +-- bound descriptor buffers, specified via +-- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT', +-- /must/ be valid if they are dynamically used by any +-- 'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding +-- to the pipeline bind point used by this command +-- +-- - #VUID-vkCmdDispatchGraphIndirectCountAMDX-None-08117# If the +-- descriptors used by the 'Vulkan.Core10.Handles.Pipeline' bound to +-- the pipeline bind point were specified via +-- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.cmdSetDescriptorBufferOffsetsEXT', +-- the bound 'Vulkan.Core10.Handles.Pipeline' /must/ have been created +-- with +-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT' +-- +-- - #VUID-vkCmdDispatchGraphIndirectCountAMDX-None-08119# If a +-- descriptor is dynamically used with a +-- 'Vulkan.Core10.Handles.Pipeline' created with +-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT', +-- the descriptor memory /must/ be resident +-- +-- - #VUID-vkCmdDispatchGraphIndirectCountAMDX-None-08605# If a +-- descriptor is dynamically used with a +-- 'Vulkan.Extensions.Handles.ShaderEXT' created with a +-- 'Vulkan.Core10.Handles.DescriptorSetLayout' that was created with +-- 'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT', +-- the descriptor memory /must/ be resident +-- +-- - #VUID-vkCmdDispatchGraphIndirectCountAMDX-None-08606# If the +-- +-- feature is not enabled, a valid pipeline /must/ be bound to the +-- pipeline bind point used by this command +-- +-- - #VUID-vkCmdDispatchGraphIndirectCountAMDX-None-08607# If the +-- +-- is enabled, either a valid pipeline /must/ be bound to the pipeline +-- bind point used by this command, or a valid combination of valid and +-- 'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be +-- bound to every supported shader stage corresponding to the pipeline +-- bind point used by this command +-- +-- - #VUID-vkCmdDispatchGraphIndirectCountAMDX-None-08608# If a pipeline +-- is bound to the pipeline bind point used by this command, there +-- /must/ not have been any calls to dynamic state setting commands for +-- any state not specified as dynamic in the +-- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind +-- point used by this command, since that pipeline was bound +-- +-- - #VUID-vkCmdDispatchGraphIndirectCountAMDX-None-08609# If the +-- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind +-- point used by this command or any +-- 'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding +-- to the pipeline bind point used by this command accesses a +-- 'Vulkan.Core10.Handles.Sampler' object that uses unnormalized +-- coordinates, that sampler /must/ not be used to sample from any +-- 'Vulkan.Core10.Handles.Image' with a +-- 'Vulkan.Core10.Handles.ImageView' of the type +-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_3D', +-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE', +-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_1D_ARRAY', +-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D_ARRAY' or +-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE_ARRAY', in +-- any shader stage +-- +-- - #VUID-vkCmdDispatchGraphIndirectCountAMDX-None-08610# If the +-- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind +-- point used by this command or any +-- 'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding +-- to the pipeline bind point used by this command accesses a +-- 'Vulkan.Core10.Handles.Sampler' object that uses unnormalized +-- coordinates, that sampler /must/ not be used with any of the SPIR-V +-- @OpImageSample*@ or @OpImageSparseSample*@ instructions with +-- @ImplicitLod@, @Dref@ or @Proj@ in their name, in any shader stage +-- +-- - #VUID-vkCmdDispatchGraphIndirectCountAMDX-None-08611# If the +-- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind +-- point used by this command or any +-- 'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding +-- to the pipeline bind point used by this command accesses a +-- 'Vulkan.Core10.Handles.Sampler' object that uses unnormalized +-- coordinates, that sampler /must/ not be used with any of the SPIR-V +-- @OpImageSample*@ or @OpImageSparseSample*@ instructions that +-- includes a LOD bias or any offset values, in any shader stage +-- +-- - #VUID-vkCmdDispatchGraphIndirectCountAMDX-uniformBuffers-06935# If +-- any stage of the 'Vulkan.Core10.Handles.Pipeline' object bound to +-- the pipeline bind point used by this command accesses a uniform +-- buffer, and that stage was created without enabling either +-- 'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT' +-- or +-- 'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT' +-- for @uniformBuffers@, and the +-- +-- feature is not enabled, that stage /must/ not access values outside +-- of the range of the buffer as specified in the descriptor set bound +-- to the same pipeline bind point +-- +-- - #VUID-vkCmdDispatchGraphIndirectCountAMDX-None-08612# If the +-- +-- feature is not enabled, and any +-- 'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding +-- to the pipeline bind point used by this command accesses a uniform +-- buffer, it /must/ not access values outside of the range of the +-- buffer as specified in the descriptor set bound to the same pipeline +-- bind point +-- +-- - #VUID-vkCmdDispatchGraphIndirectCountAMDX-storageBuffers-06936# If +-- any stage of the 'Vulkan.Core10.Handles.Pipeline' object bound to +-- the pipeline bind point used by this command accesses a storage +-- buffer, and that stage was created without enabling either +-- 'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT' +-- or +-- 'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT' +-- for @storageBuffers@, and the +-- +-- feature is not enabled, that stage /must/ not access values outside +-- of the range of the buffer as specified in the descriptor set bound +-- to the same pipeline bind point +-- +-- - #VUID-vkCmdDispatchGraphIndirectCountAMDX-None-08613# If the +-- +-- feature is not enabled, and any +-- 'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding +-- to the pipeline bind point used by this command accesses a storage +-- buffer, it /must/ not access values outside of the range of the +-- buffer as specified in the descriptor set bound to the same pipeline +-- bind point +-- +-- - #VUID-vkCmdDispatchGraphIndirectCountAMDX-commandBuffer-02707# If +-- @commandBuffer@ is an unprotected command buffer and +-- +-- is not supported, any resource accessed by +-- +-- /must/ not be a protected resource +-- +-- - #VUID-vkCmdDispatchGraphIndirectCountAMDX-None-06550# If +-- +-- accesses a 'Vulkan.Core10.Handles.Sampler' or +-- 'Vulkan.Core10.Handles.ImageView' object that enables +-- , +-- that object /must/ only be used with @OpImageSample*@ or +-- @OpImageSparseSample*@ instructions +-- +-- - #VUID-vkCmdDispatchGraphIndirectCountAMDX-ConstOffset-06551# If +-- +-- accesses a 'Vulkan.Core10.Handles.Sampler' or +-- 'Vulkan.Core10.Handles.ImageView' object that enables +-- , +-- that object /must/ not use the @ConstOffset@ and @Offset@ operands +-- +-- - #VUID-vkCmdDispatchGraphIndirectCountAMDX-viewType-07752# If a +-- 'Vulkan.Core10.Handles.ImageView' is accessed as a result of this +-- command, then the image view’s @viewType@ /must/ match the @Dim@ +-- operand of the @OpTypeImage@ as described in +-- +-- +-- - #VUID-vkCmdDispatchGraphIndirectCountAMDX-format-07753# If a +-- 'Vulkan.Core10.Handles.ImageView' is accessed as a result of this +-- command, then the +-- +-- of the image view’s @format@ and the @Sampled@ @Type@ operand of the +-- @OpTypeImage@ /must/ match +-- +-- - #VUID-vkCmdDispatchGraphIndirectCountAMDX-OpImageWrite-08795# If a +-- 'Vulkan.Core10.Handles.ImageView' created with a format other than +-- 'Vulkan.Core10.Enums.Format.FORMAT_A8_UNORM_KHR' is accessed using +-- @OpImageWrite@ as a result of this command, then the @Type@ of the +-- @Texel@ operand of that instruction /must/ have at least as many +-- components as the image view’s format +-- +-- - #VUID-vkCmdDispatchGraphIndirectCountAMDX-OpImageWrite-08796# If a +-- 'Vulkan.Core10.Handles.ImageView' created with the format +-- 'Vulkan.Core10.Enums.Format.FORMAT_A8_UNORM_KHR' is accessed using +-- @OpImageWrite@ as a result of this command, then the @Type@ of the +-- @Texel@ operand of that instruction /must/ have four components +-- +-- - #VUID-vkCmdDispatchGraphIndirectCountAMDX-OpImageWrite-04469# If a +-- 'Vulkan.Core10.Handles.BufferView' is accessed using @OpImageWrite@ +-- as a result of this command, then the @Type@ of the @Texel@ operand +-- of that instruction /must/ have at least as many components as the +-- buffer view’s format +-- +-- - #VUID-vkCmdDispatchGraphIndirectCountAMDX-SampledType-04470# If a +-- 'Vulkan.Core10.Handles.ImageView' with a +-- 'Vulkan.Core10.Enums.Format.Format' that has a 64-bit component +-- width is accessed as a result of this command, the @SampledType@ of +-- the @OpTypeImage@ operand of that instruction /must/ have a @Width@ +-- of 64 +-- +-- - #VUID-vkCmdDispatchGraphIndirectCountAMDX-SampledType-04471# If a +-- 'Vulkan.Core10.Handles.ImageView' with a +-- 'Vulkan.Core10.Enums.Format.Format' that has a component width less +-- than 64-bit is accessed as a result of this command, the +-- @SampledType@ of the @OpTypeImage@ operand of that instruction +-- /must/ have a @Width@ of 32 +-- +-- - #VUID-vkCmdDispatchGraphIndirectCountAMDX-SampledType-04472# If a +-- 'Vulkan.Core10.Handles.BufferView' with a +-- 'Vulkan.Core10.Enums.Format.Format' that has a 64-bit component +-- width is accessed as a result of this command, the @SampledType@ of +-- the @OpTypeImage@ operand of that instruction /must/ have a @Width@ +-- of 64 +-- +-- - #VUID-vkCmdDispatchGraphIndirectCountAMDX-SampledType-04473# If a +-- 'Vulkan.Core10.Handles.BufferView' with a +-- 'Vulkan.Core10.Enums.Format.Format' that has a component width less +-- than 64-bit is accessed as a result of this command, the +-- @SampledType@ of the @OpTypeImage@ operand of that instruction +-- /must/ have a @Width@ of 32 +-- +-- - #VUID-vkCmdDispatchGraphIndirectCountAMDX-sparseImageInt64Atomics-04474# +-- If the +-- +-- feature is not enabled, 'Vulkan.Core10.Handles.Image' objects +-- created with the +-- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SPARSE_RESIDENCY_BIT' +-- flag /must/ not be accessed by atomic instructions through an +-- @OpTypeImage@ with a @SampledType@ with a @Width@ of 64 by this +-- command +-- +-- - #VUID-vkCmdDispatchGraphIndirectCountAMDX-sparseImageInt64Atomics-04475# +-- If the +-- +-- feature is not enabled, 'Vulkan.Core10.Handles.Buffer' objects +-- created with the +-- 'Vulkan.Core10.Enums.BufferCreateFlagBits.BUFFER_CREATE_SPARSE_RESIDENCY_BIT' +-- flag /must/ not be accessed by atomic instructions through an +-- @OpTypeImage@ with a @SampledType@ with a @Width@ of 64 by this +-- command +-- +-- - #VUID-vkCmdDispatchGraphIndirectCountAMDX-OpImageWeightedSampleQCOM-06971# +-- If @OpImageWeightedSampleQCOM@ is used to sample a +-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then +-- the image view’s +-- +-- /must/ contain +-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM' +-- +-- - #VUID-vkCmdDispatchGraphIndirectCountAMDX-OpImageWeightedSampleQCOM-06972# +-- If @OpImageWeightedSampleQCOM@ uses a +-- 'Vulkan.Core10.Handles.ImageView' as a sample weight image as a +-- result of this command, then the image view’s +-- +-- /must/ contain +-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM' +-- +-- - #VUID-vkCmdDispatchGraphIndirectCountAMDX-OpImageBoxFilterQCOM-06973# +-- If @OpImageBoxFilterQCOM@ is used to sample a +-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then +-- the image view’s +-- +-- /must/ contain +-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM' +-- +-- - #VUID-vkCmdDispatchGraphIndirectCountAMDX-OpImageBlockMatchSSDQCOM-06974# +-- If @OpImageBlockMatchSSDQCOM@ is used to read from an +-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then +-- the image view’s +-- +-- /must/ contain +-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM' +-- +-- - #VUID-vkCmdDispatchGraphIndirectCountAMDX-OpImageBlockMatchSADQCOM-06975# +-- If @OpImageBlockMatchSADQCOM@ is used to read from an +-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then +-- the image view’s +-- +-- /must/ contain +-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM' +-- +-- - #VUID-vkCmdDispatchGraphIndirectCountAMDX-OpImageBlockMatchSADQCOM-06976# +-- If @OpImageBlockMatchSADQCOM@ or OpImageBlockMatchSSDQCOM is used to +-- read from a reference image as result of this command, then the +-- specified reference coordinates /must/ not fail +-- +-- +-- - #VUID-vkCmdDispatchGraphIndirectCountAMDX-OpImageWeightedSampleQCOM-06977# +-- If @OpImageWeightedSampleQCOM@, @OpImageBoxFilterQCOM@, +-- @OpImageBlockMatchWindowSSDQCOM@, @OpImageBlockMatchWindowSADQCOM@, +-- @OpImageBlockMatchGatherSSDQCOM@, @OpImageBlockMatchGatherSADQCOM@, +-- @OpImageBlockMatchSSDQCOM@, or @OpImageBlockMatchSADQCOM@ uses a +-- 'Vulkan.Core10.Handles.Sampler' as a result of this command, then +-- the sampler /must/ have been created with +-- 'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM' +-- +-- - #VUID-vkCmdDispatchGraphIndirectCountAMDX-OpImageWeightedSampleQCOM-06978# +-- If any command other than @OpImageWeightedSampleQCOM@, +-- @OpImageBoxFilterQCOM@, @OpImageBlockMatchWindowSSDQCOM@, +-- @OpImageBlockMatchWindowSADQCOM@, @OpImageBlockMatchGatherSSDQCOM@, +-- @OpImageBlockMatchGatherSADQCOM@, @OpImageBlockMatchSSDQCOM@, or +-- @OpImageBlockMatchSADQCOM@ uses a 'Vulkan.Core10.Handles.Sampler' as +-- a result of this command, then the sampler /must/ not have been +-- created with +-- 'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM' +-- +-- - #VUID-vkCmdDispatchGraphIndirectCountAMDX-OpImageBlockMatchWindow-09215# +-- If a @OpImageBlockMatchWindow*QCOM@ or +-- @OpImageBlockMatchGather*QCOM@ instruction is used to read from an +-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then +-- the image view’s +-- +-- /must/ contain +-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM' +-- +-- - #VUID-vkCmdDispatchGraphIndirectCountAMDX-OpImageBlockMatchWindow-09216# +-- If a @OpImageBlockMatchWindow*QCOM@ or +-- @OpImageBlockMatchGather*QCOM@ instruction is used to read from an +-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then +-- the image view’s format /must/ be a single-component format. +-- +-- - #VUID-vkCmdDispatchGraphIndirectCountAMDX-OpImageBlockMatchWindow-09217# +-- If a @OpImageBlockMatchWindow*QCOM@ or +-- @OpImageBlockMatchGather*QCOM@ read from a reference image as result +-- of this command, then the specified reference coordinates /must/ not +-- fail +-- +-- +-- - #VUID-vkCmdDispatchGraphIndirectCountAMDX-None-07288# Any shader +-- invocation executed by this command /must/ +-- +-- +-- - #VUID-vkCmdDispatchGraphIndirectCountAMDX-commandBuffer-09181# +-- @commandBuffer@ /must/ not be a protected command buffer +-- +-- - #VUID-vkCmdDispatchGraphIndirectCountAMDX-commandBuffer-09182# +-- @commandBuffer@ /must/ be a primary command buffer +-- +-- - #VUID-vkCmdDispatchGraphIndirectCountAMDX-scratch-09183# @scratch@ +-- /must/ be the device address of an allocated memory range at least +-- as large as the value of +-- 'ExecutionGraphPipelineScratchSizeAMDX'::@size@ returned by +-- 'ExecutionGraphPipelineScratchSizeAMDX' for the currently bound +-- execution graph pipeline +-- +-- - #VUID-vkCmdDispatchGraphIndirectCountAMDX-scratch-09184# @scratch@ +-- /must/ be a device address within a 'Vulkan.Core10.Handles.Buffer' +-- created with the +-- 'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_EXECUTION_GRAPH_SCRATCH_BIT_AMDX' +-- or 'BUFFER_USAGE_2_EXECUTION_GRAPH_SCRATCH_BIT_AMDX' flag +-- +-- - #VUID-vkCmdDispatchGraphIndirectCountAMDX-scratch-09185# Device +-- memory in the range [@scratch@,@scratch@ +-- 'ExecutionGraphPipelineScratchSizeAMDX'::@size@) /must/ have been +-- initialized with 'cmdInitializeGraphScratchMemoryAMDX' using the +-- currently bound execution graph pipeline, and not modified after +-- that by anything other than another execution graph dispatch command +-- +-- - #VUID-vkCmdDispatchGraphIndirectCountAMDX-maxComputeWorkGroupCount-09186# +-- Execution of this command /must/ not cause a node to be dispatched +-- with a larger number of workgroups than that specified by either a +-- @MaxNumWorkgroupsAMDX@ decoration in the dispatched node or +-- +-- +-- - #VUID-vkCmdDispatchGraphIndirectCountAMDX-maxExecutionGraphShaderPayloadCount-09187# +-- Execution of this command /must/ not cause any shader to initialize +-- more than +-- +-- output payloads +-- +-- - #VUID-vkCmdDispatchGraphIndirectCountAMDX-NodeMaxPayloadsAMDX-09188# +-- Execution of this command /must/ not cause any shader that declares +-- @NodeMaxPayloadsAMDX@ to initialize more output payloads than +-- specified by the max number of payloads for that decoration. This +-- requirement applies to each @NodeMaxPayloadsAMDX@ decoration +-- separately +-- +-- - #VUID-vkCmdDispatchGraphIndirectCountAMDX-countInfo-09159# +-- @countInfo@ /must/ be a device pointer to a memory allocation +-- containing a valid 'DispatchGraphCountInfoAMDX' structure when this +-- command is executed on the device +-- +-- - #VUID-vkCmdDispatchGraphIndirectCountAMDX-countInfo-09160# +-- @countInfo@ /must/ be a device address within a +-- 'Vulkan.Core10.Handles.Buffer' created with the +-- 'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_INDIRECT_BUFFER_BIT' +-- flag +-- +-- - #VUID-vkCmdDispatchGraphIndirectCountAMDX-countInfo-09161# +-- @countInfo@ /must/ be a multiple of +-- +-- +-- - #VUID-vkCmdDispatchGraphIndirectCountAMDX-countInfo-09162# +-- @countInfo->infos@ /must/ be a device pointer to a memory allocation +-- at least as large as the product of @count@ and @stride@ when this +-- command is executed on the device +-- +-- - #VUID-vkCmdDispatchGraphIndirectCountAMDX-countInfo-09163# +-- @countInfo->infos@ /must/ be a device address within a +-- 'Vulkan.Core10.Handles.Buffer' created with the +-- 'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_INDIRECT_BUFFER_BIT' +-- flag +-- +-- - #VUID-vkCmdDispatchGraphIndirectCountAMDX-countInfo-09164# +-- @countInfo->infos@ /must/ be a multiple of +-- +-- +-- - #VUID-vkCmdDispatchGraphIndirectCountAMDX-infos-09165# Device memory +-- locations at indexes in the range [@infos@, @infos@ + +-- (@count@*@stride@)), at a granularity of @stride@ /must/ contain +-- valid 'DispatchGraphInfoAMDX' structures in the first 24 bytes when +-- this command is executed on the device +-- +-- - #VUID-vkCmdDispatchGraphIndirectCountAMDX-countInfo-09166# For each +-- 'DispatchGraphInfoAMDX' structure in @countInfo->infos@, @payloads@ +-- /must/ be a device pointer to a memory allocation at least as large +-- as the product of @payloadCount@ and @payloadStride@ when this +-- command is executed on the device +-- +-- - #VUID-vkCmdDispatchGraphIndirectCountAMDX-countInfo-09167# For each +-- 'DispatchGraphInfoAMDX' structure in @countInfo->infos@, @payloads@ +-- /must/ be a device address within a 'Vulkan.Core10.Handles.Buffer' +-- created with the +-- 'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_INDIRECT_BUFFER_BIT' +-- flag +-- +-- - #VUID-vkCmdDispatchGraphIndirectCountAMDX-countInfo-09168# For each +-- 'DispatchGraphInfoAMDX' structure in @countInfo->infos@, @payloads@ +-- /must/ be a multiple of +-- +-- +-- - #VUID-vkCmdDispatchGraphIndirectCountAMDX-countInfo-09169# For each +-- 'DispatchGraphInfoAMDX' structure in @countInfo->infos@, @nodeIndex@ +-- /must/ be a valid node index in the currently bound execution graph +-- pipeline, as returned by 'getExecutionGraphPipelineNodeIndexAMDX' +-- when this command is executed on the device +-- +-- - #VUID-vkCmdDispatchGraphIndirectCountAMDX-countInfo-09170# For each +-- 'DispatchGraphInfoAMDX' structure in @countInfo->infos@, device +-- memory locations at indexes in the range [@payloads@, @payloads@ + +-- (@payloadCount@ * @payloadStride@)), at a granularity of +-- @payloadStride@ /must/ contain a payload matching the size of the +-- input payload expected by the node in @nodeIndex@ in the first bytes +-- when this command is executed on the device +-- +-- == Valid Usage (Implicit) +-- +-- - #VUID-vkCmdDispatchGraphIndirectCountAMDX-commandBuffer-parameter# +-- @commandBuffer@ /must/ be a valid +-- 'Vulkan.Core10.Handles.CommandBuffer' handle +-- +-- - #VUID-vkCmdDispatchGraphIndirectCountAMDX-commandBuffer-recording# +-- @commandBuffer@ /must/ be in the +-- +-- +-- - #VUID-vkCmdDispatchGraphIndirectCountAMDX-commandBuffer-cmdpool# The +-- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was +-- allocated from /must/ support graphics, or compute operations +-- +-- - #VUID-vkCmdDispatchGraphIndirectCountAMDX-renderpass# This command +-- /must/ only be called outside of a render pass instance +-- +-- - #VUID-vkCmdDispatchGraphIndirectCountAMDX-videocoding# This command +-- /must/ only be called outside of a video coding scope +-- +-- - #VUID-vkCmdDispatchGraphIndirectCountAMDX-bufferlevel# +-- @commandBuffer@ /must/ be a primary +-- 'Vulkan.Core10.Handles.CommandBuffer' +-- +-- == Host Synchronization +-- +-- - Host access to the 'Vulkan.Core10.Handles.CommandPool' that +-- @commandBuffer@ was allocated from /must/ be externally synchronized +-- +-- == Command Properties +-- +-- \' +-- +-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ +-- | | | | | | +-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================+ +-- | Primary | Outside | Outside | Graphics | Action | +-- | | | | Compute | | +-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ +-- +-- = See Also +-- +-- , +-- 'Vulkan.Core10.Handles.CommandBuffer', +-- 'Vulkan.Core10.FundamentalTypes.DeviceAddress' +cmdDispatchGraphIndirectCountAMDX :: forall io + . (MonadIO io) + => -- | @commandBuffer@ is the command buffer into which the command will be + -- recorded. + CommandBuffer + -> -- | @scratch@ is a pointer to the scratch memory to be used. + ("scratch" ::: DeviceAddress) + -> -- | @countInfo@ is a device address of a 'DispatchGraphCountInfoAMDX' + -- structure defining the nodes which will be initially executed. + ("countInfo" ::: DeviceAddress) + -> io () +cmdDispatchGraphIndirectCountAMDX commandBuffer scratch countInfo = liftIO $ do + let vkCmdDispatchGraphIndirectCountAMDXPtr = pVkCmdDispatchGraphIndirectCountAMDX (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds) + unless (vkCmdDispatchGraphIndirectCountAMDXPtr /= nullFunPtr) $ + throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdDispatchGraphIndirectCountAMDX is null" Nothing Nothing + let vkCmdDispatchGraphIndirectCountAMDX' = mkVkCmdDispatchGraphIndirectCountAMDX vkCmdDispatchGraphIndirectCountAMDXPtr + traceAroundEvent "vkCmdDispatchGraphIndirectCountAMDX" (vkCmdDispatchGraphIndirectCountAMDX' + (commandBufferHandle (commandBuffer)) + (scratch) + (countInfo)) + pure $ () + + +-- | VkPhysicalDeviceShaderEnqueuePropertiesAMDX - Structure describing +-- shader enqueue limits of an implementation +-- +-- = Members +-- +-- The members of the 'PhysicalDeviceShaderEnqueuePropertiesAMDX' structure +-- describe the following limits: +-- +-- = Description +-- +-- If the 'PhysicalDeviceShaderEnqueuePropertiesAMDX' 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.Enums.StructureType.StructureType' +data PhysicalDeviceShaderEnqueuePropertiesAMDX = PhysicalDeviceShaderEnqueuePropertiesAMDX + { -- | #limits-maxExecutionGraphDepth# @maxExecutionGraphDepth@ defines the + -- maximum node chain depth in the graph. The dispatched node is at depth 1 + -- and the node enqueued by it is at depth 2, and so on. If a node enqueues + -- itself, each recursive enqueue increases the depth by 1 as well. + maxExecutionGraphDepth :: Word32 + , -- | #limits-maxExecutionGraphShaderOutputNodes# + -- @maxExecutionGraphShaderOutputNodes@ specifies the maximum number of + -- unique nodes that can be dispatched from a single shader, and must be at + -- least 256. + maxExecutionGraphShaderOutputNodes :: Word32 + , -- | #limits-maxExecutionGraphShaderPayloadSize# + -- @maxExecutionGraphShaderPayloadSize@ specifies the maximum total size of + -- payload declarations in a shader. For any payload declarations that + -- share resources, indicated by @NodeSharesPayloadLimitsWithAMDX@ + -- decorations, the maximum size of each set of shared payload declarations + -- is taken. The sum of each shared set’s maximum size and the size of each + -- unshared payload is counted against this limit. + maxExecutionGraphShaderPayloadSize :: Word32 + , -- | #limits-maxExecutionGraphShaderPayloadCount# + -- @maxExecutionGraphShaderPayloadCount@ specifies the maximum number of + -- output payloads that can be initialized in a single workgroup. + maxExecutionGraphShaderPayloadCount :: Word32 + , -- | #limits-executionGraphDispatchAddressAlignment# + -- @executionGraphDispatchAddressAlignment@ specifies the alignment of + -- non-scratch 'Vulkan.Core10.FundamentalTypes.DeviceAddress' arguments + -- consumed by graph dispatch commands. + executionGraphDispatchAddressAlignment :: Word32 + } + deriving (Typeable, Eq) +#if defined(GENERIC_INSTANCES) +deriving instance Generic (PhysicalDeviceShaderEnqueuePropertiesAMDX) +#endif +deriving instance Show PhysicalDeviceShaderEnqueuePropertiesAMDX + +instance ToCStruct PhysicalDeviceShaderEnqueuePropertiesAMDX where + withCStruct x f = allocaBytes 40 $ \p -> pokeCStruct p x (f p) + pokeCStruct p PhysicalDeviceShaderEnqueuePropertiesAMDX{..} f = do + poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ENQUEUE_PROPERTIES_AMDX) + poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr) + poke ((p `plusPtr` 16 :: Ptr Word32)) (maxExecutionGraphDepth) + poke ((p `plusPtr` 20 :: Ptr Word32)) (maxExecutionGraphShaderOutputNodes) + poke ((p `plusPtr` 24 :: Ptr Word32)) (maxExecutionGraphShaderPayloadSize) + poke ((p `plusPtr` 28 :: Ptr Word32)) (maxExecutionGraphShaderPayloadCount) + poke ((p `plusPtr` 32 :: Ptr Word32)) (executionGraphDispatchAddressAlignment) + f + cStructSize = 40 + cStructAlignment = 8 + pokeZeroCStruct p f = do + poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ENQUEUE_PROPERTIES_AMDX) + poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr) + poke ((p `plusPtr` 16 :: Ptr Word32)) (zero) + poke ((p `plusPtr` 20 :: Ptr Word32)) (zero) + poke ((p `plusPtr` 24 :: Ptr Word32)) (zero) + poke ((p `plusPtr` 28 :: Ptr Word32)) (zero) + poke ((p `plusPtr` 32 :: Ptr Word32)) (zero) + f + +instance FromCStruct PhysicalDeviceShaderEnqueuePropertiesAMDX where + peekCStruct p = do + maxExecutionGraphDepth <- peek @Word32 ((p `plusPtr` 16 :: Ptr Word32)) + maxExecutionGraphShaderOutputNodes <- peek @Word32 ((p `plusPtr` 20 :: Ptr Word32)) + maxExecutionGraphShaderPayloadSize <- peek @Word32 ((p `plusPtr` 24 :: Ptr Word32)) + maxExecutionGraphShaderPayloadCount <- peek @Word32 ((p `plusPtr` 28 :: Ptr Word32)) + executionGraphDispatchAddressAlignment <- peek @Word32 ((p `plusPtr` 32 :: Ptr Word32)) + pure $ PhysicalDeviceShaderEnqueuePropertiesAMDX + maxExecutionGraphDepth + maxExecutionGraphShaderOutputNodes + maxExecutionGraphShaderPayloadSize + maxExecutionGraphShaderPayloadCount + executionGraphDispatchAddressAlignment + +instance Storable PhysicalDeviceShaderEnqueuePropertiesAMDX where + sizeOf ~_ = 40 + alignment ~_ = 8 + peek = peekCStruct + poke ptr poked = pokeCStruct ptr poked (pure ()) + +instance Zero PhysicalDeviceShaderEnqueuePropertiesAMDX where + zero = PhysicalDeviceShaderEnqueuePropertiesAMDX + zero + zero + zero + zero + zero + + +-- | VkPhysicalDeviceShaderEnqueueFeaturesAMDX - Structure describing whether +-- shader enqueue within execution graphs are supported by the +-- implementation +-- +-- = Members +-- +-- This structure describes the following feature: +-- +-- = Description +-- +-- If the 'PhysicalDeviceShaderEnqueueFeaturesAMDX' 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. 'PhysicalDeviceShaderEnqueueFeaturesAMDX' /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 PhysicalDeviceShaderEnqueueFeaturesAMDX = PhysicalDeviceShaderEnqueueFeaturesAMDX + { -- | #features-shaderEnqueue# @shaderEnqueue@ indicates whether the + -- implementation supports + -- . + shaderEnqueue :: Bool } + deriving (Typeable, Eq) +#if defined(GENERIC_INSTANCES) +deriving instance Generic (PhysicalDeviceShaderEnqueueFeaturesAMDX) +#endif +deriving instance Show PhysicalDeviceShaderEnqueueFeaturesAMDX + +instance ToCStruct PhysicalDeviceShaderEnqueueFeaturesAMDX where + withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p) + pokeCStruct p PhysicalDeviceShaderEnqueueFeaturesAMDX{..} f = do + poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ENQUEUE_FEATURES_AMDX) + poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr) + poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (shaderEnqueue)) + f + cStructSize = 24 + cStructAlignment = 8 + pokeZeroCStruct p f = do + poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ENQUEUE_FEATURES_AMDX) + poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr) + poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero)) + f + +instance FromCStruct PhysicalDeviceShaderEnqueueFeaturesAMDX where + peekCStruct p = do + shaderEnqueue <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32)) + pure $ PhysicalDeviceShaderEnqueueFeaturesAMDX + (bool32ToBool shaderEnqueue) + +instance Storable PhysicalDeviceShaderEnqueueFeaturesAMDX where + sizeOf ~_ = 24 + alignment ~_ = 8 + peek = peekCStruct + poke ptr poked = pokeCStruct ptr poked (pure ()) + +instance Zero PhysicalDeviceShaderEnqueueFeaturesAMDX where + zero = PhysicalDeviceShaderEnqueueFeaturesAMDX + zero + + +-- | VkExecutionGraphPipelineCreateInfoAMDX - Structure specifying parameters +-- of a newly created execution graph pipeline +-- +-- = Description +-- +-- The parameters @basePipelineHandle@ and @basePipelineIndex@ are +-- described in more detail in +-- . +-- +-- Each shader stage provided when creating an execution graph pipeline +-- (including those in libraries) is associated with a name and an index, +-- determined by the inclusion or omission of a +-- 'PipelineShaderStageNodeCreateInfoAMDX' structure in its @pNext@ chain. +-- +-- In addition to the shader name and index, an internal \"node index\" is +-- also generated for each node, which can be queried with +-- 'getExecutionGraphPipelineNodeIndexAMDX', and is used exclusively for +-- initial dispatch of an execution graph. +-- +-- == Valid Usage +-- +-- - #VUID-VkExecutionGraphPipelineCreateInfoAMDX-flags-07984# If @flags@ +-- contains the +-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DERIVATIVE_BIT' +-- flag, and @basePipelineIndex@ is -1, @basePipelineHandle@ /must/ be +-- a valid execution graph 'Vulkan.Core10.Handles.Pipeline' handle +-- +-- - #VUID-VkExecutionGraphPipelineCreateInfoAMDX-flags-07985# If @flags@ +-- contains the +-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DERIVATIVE_BIT' +-- flag, and @basePipelineHandle@ is +-- 'Vulkan.Core10.APIConstants.NULL_HANDLE', @basePipelineIndex@ /must/ +-- be a valid index into the calling command’s @pCreateInfos@ parameter +-- +-- - #VUID-VkExecutionGraphPipelineCreateInfoAMDX-flags-07986# If @flags@ +-- contains the +-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DERIVATIVE_BIT' +-- flag, @basePipelineIndex@ /must/ be -1 or @basePipelineHandle@ +-- /must/ be 'Vulkan.Core10.APIConstants.NULL_HANDLE' +-- +-- - #VUID-VkExecutionGraphPipelineCreateInfoAMDX-layout-07987# If a push +-- constant block is declared in a shader, a push constant range in +-- @layout@ /must/ match both the shader stage and range +-- +-- - #VUID-VkExecutionGraphPipelineCreateInfoAMDX-layout-07988# If a +-- +-- is declared in a shader, a descriptor slot in @layout@ /must/ match +-- the shader stage +-- +-- - #VUID-VkExecutionGraphPipelineCreateInfoAMDX-layout-07990# If a +-- +-- is declared in a shader, and the descriptor type is not +-- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_MUTABLE_EXT', a +-- descriptor slot in @layout@ /must/ match the descriptor type +-- +-- - #VUID-VkExecutionGraphPipelineCreateInfoAMDX-layout-07991# If a +-- +-- is declared in a shader as an array, a descriptor slot in @layout@ +-- /must/ match the descriptor count +-- +-- - #VUID-VkExecutionGraphPipelineCreateInfoAMDX-flags-03365# @flags@ +-- /must/ not include +-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR' +-- +-- - #VUID-VkExecutionGraphPipelineCreateInfoAMDX-flags-03366# @flags@ +-- /must/ not include +-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR' +-- +-- - #VUID-VkExecutionGraphPipelineCreateInfoAMDX-flags-03367# @flags@ +-- /must/ not include +-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR' +-- +-- - #VUID-VkExecutionGraphPipelineCreateInfoAMDX-flags-03368# @flags@ +-- /must/ not include +-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR' +-- +-- - #VUID-VkExecutionGraphPipelineCreateInfoAMDX-flags-03369# @flags@ +-- /must/ not include +-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR' +-- +-- - #VUID-VkExecutionGraphPipelineCreateInfoAMDX-flags-03370# @flags@ +-- /must/ not include +-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR' +-- +-- - #VUID-VkExecutionGraphPipelineCreateInfoAMDX-flags-03576# @flags@ +-- /must/ not include +-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR' +-- +-- - #VUID-VkExecutionGraphPipelineCreateInfoAMDX-flags-04945# @flags@ +-- /must/ not include +-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV' +-- +-- - #VUID-VkExecutionGraphPipelineCreateInfoAMDX-flags-09007# If @flags@ +-- includes +-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV', +-- then the +-- +-- feature /must/ be enabled +-- +-- - #VUID-VkExecutionGraphPipelineCreateInfoAMDX-flags-09008# If @flags@ +-- includes +-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV', +-- then the @pNext@ chain /must/ include a pointer to a valid instance +-- of +-- 'Vulkan.Extensions.VK_NV_device_generated_commands_compute.ComputePipelineIndirectBufferInfoNV' +-- specifying the address where the pipeline’s metadata will be saved +-- +-- - #VUID-VkExecutionGraphPipelineCreateInfoAMDX-pipelineCreationCacheControl-02875# +-- If the +-- +-- feature is not enabled, @flags@ /must/ not include +-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT' +-- or +-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT' +-- +-- - #VUID-VkExecutionGraphPipelineCreateInfoAMDX-stage-09128# The +-- @stage@ member of any element of @pStages@ /must/ be +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_COMPUTE_BIT' +-- +-- - #VUID-VkExecutionGraphPipelineCreateInfoAMDX-pStages-09129# The +-- shader code for the entry point identified by each element of +-- @pStages@ and the rest of the state identified by this structure +-- /must/ adhere to the pipeline linking rules described in the +-- +-- chapter +-- +-- - #VUID-VkExecutionGraphPipelineCreateInfoAMDX-layout-09130# @layout@ +-- /must/ be +-- +-- with the layout of the shaders specified in @pStages@ +-- +-- - #VUID-VkExecutionGraphPipelineCreateInfoAMDX-pLibraryInfo-09131# If +-- @pLibraryInfo@ is not @NULL@, each element of its @pLibraries@ +-- member /must/ have been created with a @layout@ that is compatible +-- with the @layout@ in this pipeline +-- +-- - #VUID-VkExecutionGraphPipelineCreateInfoAMDX-layout-09132# 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-VkExecutionGraphPipelineCreateInfoAMDX-pLibraryInfo-09133# If +-- @pLibraryInfo@ is not @NULL@, each element of +-- @pLibraryInfo->libraries@ /must/ be either a compute pipeline or an +-- execution graph pipeline +-- +-- - #VUID-VkExecutionGraphPipelineCreateInfoAMDX-None-09134# There +-- /must/ be no two nodes in the pipeline that share both the same +-- shader name and index, as specified by +-- 'PipelineShaderStageNodeCreateInfoAMDX' +-- +-- - #VUID-VkExecutionGraphPipelineCreateInfoAMDX-None-09135# There +-- /must/ be no two nodes in the pipeline that share the same shader +-- name and have input payload declarations with different sizes +-- +-- - #VUID-VkExecutionGraphPipelineCreateInfoAMDX-None-09136# There +-- /must/ be no two nodes in the pipeline that share the same name but +-- have different execution models +-- +-- - #VUID-VkExecutionGraphPipelineCreateInfoAMDX-CoalescedInputCountAMDX-09137# +-- There /must/ be no two nodes in the pipeline that share the same +-- name where one includes @CoalescedInputCountAMDX@ and the other does +-- not +-- +-- - #VUID-VkExecutionGraphPipelineCreateInfoAMDX-StaticNumWorkgroupsAMDX-09138# +-- There /must/ be no two nodes in the pipeline that share the same +-- name where one includes @StaticNumWorkgroupsAMDX@ and the other does +-- not +-- +-- - #VUID-VkExecutionGraphPipelineCreateInfoAMDX-PayloadNodeNameAMDX-09139# +-- If an output payload declared in any shader in the pipeline has a +-- @PayloadNodeNameAMDX@ decoration with a @Node@ @Name@ that matches +-- the shader name of any other node in the graph, the size of the +-- output payload /must/ match the size of the input payload in the +-- matching node +-- +-- == Valid Usage (Implicit) +-- +-- - #VUID-VkExecutionGraphPipelineCreateInfoAMDX-sType-sType# @sType@ +-- /must/ be +-- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_EXECUTION_GRAPH_PIPELINE_CREATE_INFO_AMDX' +-- +-- - #VUID-VkExecutionGraphPipelineCreateInfoAMDX-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_AMD_pipeline_compiler_control.PipelineCompilerControlCreateInfoAMD' +-- or +-- 'Vulkan.Core13.Promoted_From_VK_EXT_pipeline_creation_feedback.PipelineCreationFeedbackCreateInfo' +-- +-- - #VUID-VkExecutionGraphPipelineCreateInfoAMDX-sType-unique# The +-- @sType@ value of each struct in the @pNext@ chain /must/ be unique +-- +-- - #VUID-VkExecutionGraphPipelineCreateInfoAMDX-flags-parameter# +-- @flags@ /must/ be a valid combination of +-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PipelineCreateFlagBits' +-- values +-- +-- - #VUID-VkExecutionGraphPipelineCreateInfoAMDX-pStages-parameter# If +-- @stageCount@ is not @0@, and @pStages@ is not @NULL@, @pStages@ +-- /must/ be a valid pointer to an array of @stageCount@ valid +-- 'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo' structures +-- +-- - #VUID-VkExecutionGraphPipelineCreateInfoAMDX-pLibraryInfo-parameter# +-- If @pLibraryInfo@ is not @NULL@, @pLibraryInfo@ /must/ be a valid +-- pointer to a valid +-- 'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR' +-- structure +-- +-- - #VUID-VkExecutionGraphPipelineCreateInfoAMDX-layout-parameter# +-- @layout@ /must/ be a valid 'Vulkan.Core10.Handles.PipelineLayout' +-- handle +-- +-- - #VUID-VkExecutionGraphPipelineCreateInfoAMDX-commonparent# Both of +-- @basePipelineHandle@, and @layout@ that are valid handles of +-- non-ignored parameters /must/ have been created, allocated, or +-- retrieved from the same 'Vulkan.Core10.Handles.Device' +-- +-- = See Also +-- +-- , +-- 'Vulkan.Core10.Handles.Pipeline', +-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PipelineCreateFlags', +-- 'Vulkan.Core10.Handles.PipelineLayout', +-- 'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR', +-- 'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo', +-- 'Vulkan.Core10.Enums.StructureType.StructureType', +-- 'createExecutionGraphPipelinesAMDX' +data ExecutionGraphPipelineCreateInfoAMDX (es :: [Type]) = ExecutionGraphPipelineCreateInfoAMDX + { -- | @pNext@ is @NULL@ or a pointer to a structure extending this structure. + next :: Chain es + , -- | @flags@ is a bitmask of + -- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PipelineCreateFlagBits' + -- specifying how the pipeline will be generated. + flags :: PipelineCreateFlags + , -- | @stageCount@ is the number of entries in the @pStages@ array. + stageCount :: Word32 + , -- | @pStages@ is a pointer to an array of @stageCount@ + -- 'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo' structures + -- describing the set of the shader stages to be included in the execution + -- graph pipeline. + stages :: Vector (SomeStruct PipelineShaderStageCreateInfo) + , -- | @pLibraryInfo@ is a pointer to a + -- 'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR' + -- structure defining pipeline libraries to include. + libraryInfo :: Maybe PipelineLibraryCreateInfoKHR + , -- | @layout@ is the description of binding locations used by both the + -- pipeline and descriptor sets used with the pipeline. + layout :: PipelineLayout + , -- | @basePipelineHandle@ is a pipeline to derive from + basePipelineHandle :: Pipeline + , -- | @basePipelineIndex@ is an index into the @pCreateInfos@ parameter to use + -- as a pipeline to derive from + basePipelineIndex :: Int32 + } + deriving (Typeable) +#if defined(GENERIC_INSTANCES) +deriving instance Generic (ExecutionGraphPipelineCreateInfoAMDX (es :: [Type])) +#endif +deriving instance Show (Chain es) => Show (ExecutionGraphPipelineCreateInfoAMDX es) + +instance Extensible ExecutionGraphPipelineCreateInfoAMDX where + extensibleTypeName = "ExecutionGraphPipelineCreateInfoAMDX" + setNext ExecutionGraphPipelineCreateInfoAMDX{..} next' = ExecutionGraphPipelineCreateInfoAMDX{next = next', ..} + getNext ExecutionGraphPipelineCreateInfoAMDX{..} = next + extends :: forall e b proxy. Typeable e => proxy e -> (Extends ExecutionGraphPipelineCreateInfoAMDX e => b) -> Maybe b + extends _ f + | Just Refl <- eqT @e @PipelineCompilerControlCreateInfoAMD = Just f + | Just Refl <- eqT @e @PipelineCreationFeedbackCreateInfo = Just f + | otherwise = Nothing + +instance ( Extendss ExecutionGraphPipelineCreateInfoAMDX es + , PokeChain es ) => ToCStruct (ExecutionGraphPipelineCreateInfoAMDX es) where + withCStruct x f = allocaBytes 64 $ \p -> pokeCStruct p x (f p) + pokeCStruct p ExecutionGraphPipelineCreateInfoAMDX{..} f = evalContT $ do + lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_EXECUTION_GRAPH_PIPELINE_CREATE_INFO_AMDX) + pNext'' <- fmap castPtr . ContT $ withChain (next) + lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext'' + lift $ poke ((p `plusPtr` 16 :: Ptr PipelineCreateFlags)) (flags) + let pStagesLength = Data.Vector.length $ (stages) + stageCount'' <- lift $ if (stageCount) == 0 + then pure $ fromIntegral pStagesLength + else do + unless (fromIntegral pStagesLength == (stageCount) || pStagesLength == 0) $ + throwIO $ IOError Nothing InvalidArgument "" "pStages must be empty or have 'stageCount' elements" Nothing Nothing + pure (stageCount) + lift $ poke ((p `plusPtr` 20 :: Ptr Word32)) (stageCount'') + pStages'' <- if Data.Vector.null (stages) + then pure nullPtr + else do + pPStages <- ContT $ allocaBytes @(PipelineShaderStageCreateInfo _) (((Data.Vector.length (stages))) * 48) + Data.Vector.imapM_ (\i e -> ContT $ pokeSomeCStruct (forgetExtensions (pPStages `plusPtr` (48 * (i)) :: Ptr (PipelineShaderStageCreateInfo _))) (e) . ($ ())) ((stages)) + pure $ pPStages + lift $ poke ((p `plusPtr` 24 :: Ptr (Ptr (PipelineShaderStageCreateInfo _)))) pStages'' + pLibraryInfo'' <- case (libraryInfo) of + Nothing -> pure nullPtr + Just j -> ContT $ withCStruct (j) + lift $ poke ((p `plusPtr` 32 :: Ptr (Ptr PipelineLibraryCreateInfoKHR))) pLibraryInfo'' + lift $ poke ((p `plusPtr` 40 :: Ptr PipelineLayout)) (layout) + lift $ poke ((p `plusPtr` 48 :: Ptr Pipeline)) (basePipelineHandle) + lift $ poke ((p `plusPtr` 56 :: Ptr Int32)) (basePipelineIndex) + lift $ f + cStructSize = 64 + cStructAlignment = 8 + pokeZeroCStruct p f = evalContT $ do + lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_EXECUTION_GRAPH_PIPELINE_CREATE_INFO_AMDX) + pNext' <- fmap castPtr . ContT $ withZeroChain @es + lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext' + lift $ poke ((p `plusPtr` 40 :: Ptr PipelineLayout)) (zero) + lift $ poke ((p `plusPtr` 56 :: Ptr Int32)) (zero) + lift $ f + +instance ( Extendss ExecutionGraphPipelineCreateInfoAMDX es + , PeekChain es ) => FromCStruct (ExecutionGraphPipelineCreateInfoAMDX es) where + peekCStruct p = do + pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ()))) + next <- peekChain (castPtr pNext) + flags <- peek @PipelineCreateFlags ((p `plusPtr` 16 :: Ptr PipelineCreateFlags)) + stageCount <- peek @Word32 ((p `plusPtr` 20 :: Ptr Word32)) + pStages <- peek @(Ptr (PipelineShaderStageCreateInfo _)) ((p `plusPtr` 24 :: Ptr (Ptr (PipelineShaderStageCreateInfo _)))) + let pStagesLength = if pStages == nullPtr then 0 else (fromIntegral stageCount) + pStages' <- generateM pStagesLength (\i -> peekSomeCStruct (forgetExtensions ((pStages `advancePtrBytes` (48 * (i)) :: Ptr (PipelineShaderStageCreateInfo _))))) + pLibraryInfo <- peek @(Ptr PipelineLibraryCreateInfoKHR) ((p `plusPtr` 32 :: Ptr (Ptr PipelineLibraryCreateInfoKHR))) + pLibraryInfo' <- maybePeek (\j -> peekCStruct @PipelineLibraryCreateInfoKHR (j)) pLibraryInfo + layout <- peek @PipelineLayout ((p `plusPtr` 40 :: Ptr PipelineLayout)) + basePipelineHandle <- peek @Pipeline ((p `plusPtr` 48 :: Ptr Pipeline)) + basePipelineIndex <- peek @Int32 ((p `plusPtr` 56 :: Ptr Int32)) + pure $ ExecutionGraphPipelineCreateInfoAMDX + next + flags + stageCount + pStages' + pLibraryInfo' + layout + basePipelineHandle + basePipelineIndex + +instance es ~ '[] => Zero (ExecutionGraphPipelineCreateInfoAMDX es) where + zero = ExecutionGraphPipelineCreateInfoAMDX + () + zero + zero + mempty + Nothing + zero + zero + zero + + +-- | VkPipelineShaderStageNodeCreateInfoAMDX - Structure specifying the +-- shader name and index with an execution graph +-- +-- = Description +-- +-- When included in the @pNext@ chain of a +-- 'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo' structure, this +-- structure specifies the shader name and shader index of a node when +-- creating an execution graph pipeline. If this structure is omitted, the +-- shader name is set to the name of the entry point in SPIR-V and the +-- shader index is set to @0@. +-- +-- When dispatching a node from another shader, the name is fixed at +-- pipeline creation, but the index /can/ be set dynamically. By +-- associating multiple shaders with the same name but different indexes, +-- applications can dynamically select different nodes to execute. +-- Applications /must/ ensure each node has a unique name and index. +-- +-- == Valid Usage (Implicit) +-- +-- - #VUID-VkPipelineShaderStageNodeCreateInfoAMDX-sType-sType# @sType@ +-- /must/ be +-- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_NODE_CREATE_INFO_AMDX' +-- +-- - #VUID-VkPipelineShaderStageNodeCreateInfoAMDX-pName-parameter# If +-- @pName@ is not @NULL@, @pName@ /must/ be a null-terminated UTF-8 +-- string +-- +-- = See Also +-- +-- , +-- 'Vulkan.Core10.Enums.StructureType.StructureType', +-- 'getExecutionGraphPipelineNodeIndexAMDX' +data PipelineShaderStageNodeCreateInfoAMDX = PipelineShaderStageNodeCreateInfoAMDX + { -- | @pName@ is the shader name to use when creating a node in an execution + -- graph. If @pName@ is @NULL@, the name of the entry point specified in + -- SPIR-V is used as the shader name. + name :: Maybe ByteString + , -- | @index@ is the shader index to use when creating a node in an execution + -- graph. If @index@ is + -- 'Vulkan.Core10.APIConstants.SHADER_INDEX_UNUSED_AMDX' then the original + -- index is used, either as specified by the @ShaderIndexAMDX@ execution + -- mode, or @0@ if that too is not specified. + index :: Word32 + } + deriving (Typeable) +#if defined(GENERIC_INSTANCES) +deriving instance Generic (PipelineShaderStageNodeCreateInfoAMDX) +#endif +deriving instance Show PipelineShaderStageNodeCreateInfoAMDX + +instance ToCStruct PipelineShaderStageNodeCreateInfoAMDX where + withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p) + pokeCStruct p PipelineShaderStageNodeCreateInfoAMDX{..} f = evalContT $ do + lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_NODE_CREATE_INFO_AMDX) + lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr) + pName'' <- case (name) of + Nothing -> pure nullPtr + Just j -> ContT $ useAsCString (j) + lift $ poke ((p `plusPtr` 16 :: Ptr (Ptr CChar))) pName'' + lift $ poke ((p `plusPtr` 24 :: Ptr Word32)) (index) + lift $ f + cStructSize = 32 + cStructAlignment = 8 + pokeZeroCStruct p f = do + poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_NODE_CREATE_INFO_AMDX) + poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr) + poke ((p `plusPtr` 24 :: Ptr Word32)) (zero) + f + +instance FromCStruct PipelineShaderStageNodeCreateInfoAMDX where + peekCStruct p = do + pName <- peek @(Ptr CChar) ((p `plusPtr` 16 :: Ptr (Ptr CChar))) + pName' <- maybePeek (\j -> packCString (j)) pName + index <- peek @Word32 ((p `plusPtr` 24 :: Ptr Word32)) + pure $ PipelineShaderStageNodeCreateInfoAMDX + pName' index + +instance Zero PipelineShaderStageNodeCreateInfoAMDX where + zero = PipelineShaderStageNodeCreateInfoAMDX + Nothing + zero + + +-- | VkExecutionGraphPipelineScratchSizeAMDX - Structure describing the +-- scratch space required to dispatch an execution graph +-- +-- == Valid Usage (Implicit) +-- +-- = See Also +-- +-- , +-- 'Vulkan.Core10.FundamentalTypes.DeviceSize', +-- 'Vulkan.Core10.Enums.StructureType.StructureType', +-- 'getExecutionGraphPipelineScratchSizeAMDX' +data ExecutionGraphPipelineScratchSizeAMDX = ExecutionGraphPipelineScratchSizeAMDX + { -- | @size@ indicates the scratch space required for dispatch the queried + -- execution graph. + size :: DeviceSize } + deriving (Typeable, Eq) +#if defined(GENERIC_INSTANCES) +deriving instance Generic (ExecutionGraphPipelineScratchSizeAMDX) +#endif +deriving instance Show ExecutionGraphPipelineScratchSizeAMDX + +instance ToCStruct ExecutionGraphPipelineScratchSizeAMDX where + withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p) + pokeCStruct p ExecutionGraphPipelineScratchSizeAMDX{..} f = do + poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_EXECUTION_GRAPH_PIPELINE_SCRATCH_SIZE_AMDX) + poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr) + poke ((p `plusPtr` 16 :: Ptr DeviceSize)) (size) + f + cStructSize = 24 + cStructAlignment = 8 + pokeZeroCStruct p f = do + poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_EXECUTION_GRAPH_PIPELINE_SCRATCH_SIZE_AMDX) + poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr) + poke ((p `plusPtr` 16 :: Ptr DeviceSize)) (zero) + f + +instance FromCStruct ExecutionGraphPipelineScratchSizeAMDX where + peekCStruct p = do + size <- peek @DeviceSize ((p `plusPtr` 16 :: Ptr DeviceSize)) + pure $ ExecutionGraphPipelineScratchSizeAMDX + size + +instance Storable ExecutionGraphPipelineScratchSizeAMDX where + sizeOf ~_ = 24 + alignment ~_ = 8 + peek = peekCStruct + poke ptr poked = pokeCStruct ptr poked (pure ()) + +instance Zero ExecutionGraphPipelineScratchSizeAMDX where + zero = ExecutionGraphPipelineScratchSizeAMDX + zero + + +-- | VkDispatchGraphInfoAMDX - Structure specifying node parameters for +-- execution graph dispatch +-- +-- = Description +-- +-- Whether @payloads@ is consumed as a device or host pointer is defined by +-- the command this structure is used in. +-- +-- == Valid Usage +-- +-- = See Also +-- +-- , +-- 'DeviceOrHostAddressConstAMDX', 'DispatchGraphCountInfoAMDX' +data DispatchGraphInfoAMDX = DispatchGraphInfoAMDX + { -- | @nodeIndex@ is the index of a node in an execution graph to be + -- dispatched. + nodeIndex :: Word32 + , -- | @payloadCount@ is the number of payloads to dispatch for the specified + -- node. + -- + -- #VUID-VkDispatchGraphInfoAMDX-payloadCount-09171# @payloadCount@ /must/ + -- be no greater than + -- + payloadCount :: Word32 + , -- | @payloads@ is a device or host address pointer to a flat array of + -- payloads with size equal to the product of @payloadCount@ and + -- @payloadStride@ + payloads :: DeviceOrHostAddressConstAMDX + , -- | @payloadStride@ is the byte stride between successive payloads in + -- @payloads@ + payloadStride :: Word64 + } + deriving (Typeable) +#if defined(GENERIC_INSTANCES) +deriving instance Generic (DispatchGraphInfoAMDX) +#endif +deriving instance Show DispatchGraphInfoAMDX + +instance ToCStruct DispatchGraphInfoAMDX where + withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p) + pokeCStruct p DispatchGraphInfoAMDX{..} f = evalContT $ do + lift $ poke ((p `plusPtr` 0 :: Ptr Word32)) (nodeIndex) + lift $ poke ((p `plusPtr` 4 :: Ptr Word32)) (payloadCount) + ContT $ pokeCStruct ((p `plusPtr` 8 :: Ptr DeviceOrHostAddressConstAMDX)) (payloads) . ($ ()) + lift $ poke ((p `plusPtr` 16 :: Ptr Word64)) (payloadStride) + lift $ f + cStructSize = 24 + cStructAlignment = 8 + pokeZeroCStruct p f = evalContT $ do + lift $ poke ((p `plusPtr` 0 :: Ptr Word32)) (zero) + ContT $ pokeCStruct ((p `plusPtr` 8 :: Ptr DeviceOrHostAddressConstAMDX)) (zero) . ($ ()) + lift $ poke ((p `plusPtr` 16 :: Ptr Word64)) (zero) + lift $ f + +instance Zero DispatchGraphInfoAMDX where + zero = DispatchGraphInfoAMDX + zero + zero + zero + zero + + +-- | VkDispatchGraphCountInfoAMDX - Structure specifying count parameters for +-- execution graph dispatch +-- +-- = Description +-- +-- Whether @infos@ is consumed as a device or host pointer is defined by +-- the command this structure is used in. +-- +-- = See Also +-- +-- , +-- 'DeviceOrHostAddressConstAMDX', 'cmdDispatchGraphAMDX', +-- 'cmdDispatchGraphIndirectAMDX', 'cmdDispatchGraphIndirectCountAMDX' +data DispatchGraphCountInfoAMDX = DispatchGraphCountInfoAMDX + { -- | @count@ is the number of dispatches to perform. + count :: Word32 + , -- | @infos@ is the device or host address of a flat array of + -- 'DispatchGraphInfoAMDX' structures + infos :: DeviceOrHostAddressConstAMDX + , -- | @stride@ is the byte stride between successive 'DispatchGraphInfoAMDX' + -- structures in @infos@ + stride :: Word64 + } + deriving (Typeable) +#if defined(GENERIC_INSTANCES) +deriving instance Generic (DispatchGraphCountInfoAMDX) +#endif +deriving instance Show DispatchGraphCountInfoAMDX + +instance ToCStruct DispatchGraphCountInfoAMDX where + withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p) + pokeCStruct p DispatchGraphCountInfoAMDX{..} f = evalContT $ do + lift $ poke ((p `plusPtr` 0 :: Ptr Word32)) (count) + ContT $ pokeCStruct ((p `plusPtr` 8 :: Ptr DeviceOrHostAddressConstAMDX)) (infos) . ($ ()) + lift $ poke ((p `plusPtr` 16 :: Ptr Word64)) (stride) + lift $ f + cStructSize = 24 + cStructAlignment = 8 + pokeZeroCStruct p f = evalContT $ do + ContT $ pokeCStruct ((p `plusPtr` 8 :: Ptr DeviceOrHostAddressConstAMDX)) (zero) . ($ ()) + lift $ poke ((p `plusPtr` 16 :: Ptr Word64)) (zero) + lift $ f + +instance Zero DispatchGraphCountInfoAMDX where + zero = DispatchGraphCountInfoAMDX + zero + zero + zero + + +data DeviceOrHostAddressConstAMDX + = DeviceAddressConstAMDX DeviceAddress + | HostAddressConstAMDX (Ptr ()) + deriving (Show) + +instance ToCStruct DeviceOrHostAddressConstAMDX where + withCStruct x f = allocaBytes 8 $ \p -> pokeCStruct p x (f p) + pokeCStruct :: Ptr DeviceOrHostAddressConstAMDX -> DeviceOrHostAddressConstAMDX -> IO a -> IO a + pokeCStruct p = (. const) . runContT . \case + DeviceAddressConstAMDX v -> lift $ poke (castPtr @_ @DeviceAddress p) (v) + HostAddressConstAMDX v -> lift $ poke (castPtr @_ @(Ptr ()) p) (v) + pokeZeroCStruct :: Ptr DeviceOrHostAddressConstAMDX -> IO b -> IO b + pokeZeroCStruct _ f = f + cStructSize = 8 + cStructAlignment = 8 + +instance Zero DeviceOrHostAddressConstAMDX where + zero = DeviceAddressConstAMDX zero + + +type BufferUsageFlags2KHR = BufferUsageFlagBits2KHR + +-- | VkBufferUsageFlagBits2KHR - Bitmask controlling how a pipeline is +-- created +-- +-- = See Also +-- +-- +newtype BufferUsageFlagBits2KHR = BufferUsageFlagBits2KHR Flags64 + deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits) + +-- | 'BUFFER_USAGE_2_TRANSFER_SRC_BIT_KHR' specifies that the buffer /can/ be +-- used as the source of a /transfer command/ (see the definition of +-- ). +pattern BUFFER_USAGE_2_TRANSFER_SRC_BIT_KHR = BufferUsageFlagBits2KHR 0x0000000000000001 + +-- | 'BUFFER_USAGE_2_TRANSFER_DST_BIT_KHR' specifies that the buffer /can/ be +-- used as the destination of a transfer command. +pattern BUFFER_USAGE_2_TRANSFER_DST_BIT_KHR = BufferUsageFlagBits2KHR 0x0000000000000002 + +-- | 'BUFFER_USAGE_2_UNIFORM_TEXEL_BUFFER_BIT_KHR' specifies that the buffer +-- /can/ be used to create a 'Vulkan.Core10.Handles.BufferView' suitable +-- for occupying a 'Vulkan.Core10.Handles.DescriptorSet' slot of type +-- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER'. +pattern BUFFER_USAGE_2_UNIFORM_TEXEL_BUFFER_BIT_KHR = BufferUsageFlagBits2KHR 0x0000000000000004 + +-- | 'BUFFER_USAGE_2_STORAGE_TEXEL_BUFFER_BIT_KHR' specifies that the buffer +-- /can/ be used to create a 'Vulkan.Core10.Handles.BufferView' suitable +-- for occupying a 'Vulkan.Core10.Handles.DescriptorSet' slot of type +-- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER'. +pattern BUFFER_USAGE_2_STORAGE_TEXEL_BUFFER_BIT_KHR = BufferUsageFlagBits2KHR 0x0000000000000008 + +-- | 'BUFFER_USAGE_2_UNIFORM_BUFFER_BIT_KHR' specifies that the buffer /can/ +-- be used in a 'Vulkan.Core10.DescriptorSet.DescriptorBufferInfo' suitable +-- for occupying a 'Vulkan.Core10.Handles.DescriptorSet' slot either of +-- type 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_UNIFORM_BUFFER' +-- or +-- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC'. +pattern BUFFER_USAGE_2_UNIFORM_BUFFER_BIT_KHR = BufferUsageFlagBits2KHR 0x0000000000000010 + +-- | 'BUFFER_USAGE_2_STORAGE_BUFFER_BIT_KHR' specifies that the buffer /can/ +-- be used in a 'Vulkan.Core10.DescriptorSet.DescriptorBufferInfo' suitable +-- for occupying a 'Vulkan.Core10.Handles.DescriptorSet' slot either of +-- type 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_BUFFER' +-- or +-- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC'. +pattern BUFFER_USAGE_2_STORAGE_BUFFER_BIT_KHR = BufferUsageFlagBits2KHR 0x0000000000000020 + +-- | 'BUFFER_USAGE_2_INDEX_BUFFER_BIT_KHR' specifies that the buffer is +-- suitable for passing as the @buffer@ parameter to +-- 'Vulkan.Extensions.VK_KHR_maintenance5.cmdBindIndexBuffer2KHR' and +-- 'Vulkan.Core10.CommandBufferBuilding.cmdBindIndexBuffer'. +pattern BUFFER_USAGE_2_INDEX_BUFFER_BIT_KHR = BufferUsageFlagBits2KHR 0x0000000000000040 + +-- | 'BUFFER_USAGE_2_VERTEX_BUFFER_BIT_KHR' specifies that the buffer is +-- suitable for passing as an element of the @pBuffers@ array to +-- 'Vulkan.Core10.CommandBufferBuilding.cmdBindVertexBuffers'. +pattern BUFFER_USAGE_2_VERTEX_BUFFER_BIT_KHR = BufferUsageFlagBits2KHR 0x0000000000000080 + +-- | 'BUFFER_USAGE_2_INDIRECT_BUFFER_BIT_KHR' specifies that the buffer is +-- suitable for passing as the @buffer@ parameter to +-- 'Vulkan.Core10.CommandBufferBuilding.cmdDrawIndirect', +-- 'Vulkan.Core10.CommandBufferBuilding.cmdDrawIndexedIndirect', +-- 'Vulkan.Extensions.VK_NV_mesh_shader.cmdDrawMeshTasksIndirectNV', +-- 'Vulkan.Extensions.VK_NV_mesh_shader.cmdDrawMeshTasksIndirectCountNV', +-- 'Vulkan.Extensions.VK_EXT_mesh_shader.cmdDrawMeshTasksIndirectEXT', +-- 'Vulkan.Extensions.VK_EXT_mesh_shader.cmdDrawMeshTasksIndirectCountEXT', +-- 'Vulkan.Extensions.VK_HUAWEI_cluster_culling_shader.cmdDrawClusterIndirectHUAWEI', +-- or 'Vulkan.Core10.CommandBufferBuilding.cmdDispatchIndirect'. It is also +-- suitable for passing as the @buffer@ member of +-- 'Vulkan.Extensions.VK_NV_device_generated_commands.IndirectCommandsStreamNV', +-- or @sequencesCountBuffer@ or @sequencesIndexBuffer@ or +-- @preprocessedBuffer@ member of +-- 'Vulkan.Extensions.VK_NV_device_generated_commands.GeneratedCommandsInfoNV' +pattern BUFFER_USAGE_2_INDIRECT_BUFFER_BIT_KHR = BufferUsageFlagBits2KHR 0x0000000000000100 + +-- No documentation found for Nested "VkBufferUsageFlagBits2KHR" "VK_BUFFER_USAGE_2_MICROMAP_STORAGE_BIT_EXT" +pattern BUFFER_USAGE_2_MICROMAP_STORAGE_BIT_EXT = BufferUsageFlagBits2KHR 0x0000000001000000 + +-- No documentation found for Nested "VkBufferUsageFlagBits2KHR" "VK_BUFFER_USAGE_2_MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT" +pattern BUFFER_USAGE_2_MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT = BufferUsageFlagBits2KHR 0x0000000000800000 + +-- | 'BUFFER_USAGE_2_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT' specifies +-- that the buffer, when bound, /can/ be used by the implementation to +-- support push descriptors when using descriptor buffers. +pattern BUFFER_USAGE_2_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT = BufferUsageFlagBits2KHR 0x0000000004000000 + +-- | 'BUFFER_USAGE_2_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT' specifies that the +-- buffer is suitable to contain resource descriptors when bound as a +-- descriptor buffer. +pattern BUFFER_USAGE_2_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT = BufferUsageFlagBits2KHR 0x0000000000400000 + +-- | 'BUFFER_USAGE_2_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT' specifies that the +-- buffer is suitable to contain sampler and combined image sampler +-- descriptors when bound as a descriptor buffer. Buffers containing +-- combined image sampler descriptors /must/ also specify +-- 'BUFFER_USAGE_2_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT'. +pattern BUFFER_USAGE_2_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT = BufferUsageFlagBits2KHR 0x0000000000200000 + +-- | 'BUFFER_USAGE_2_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR' specifies that +-- the buffer is suitable for storage space for a +-- 'Vulkan.Extensions.Handles.AccelerationStructureKHR'. +pattern BUFFER_USAGE_2_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR = BufferUsageFlagBits2KHR 0x0000000000100000 + +-- | 'BUFFER_USAGE_2_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR' +-- specifies that the buffer is suitable for use as a read-only input to an +-- . +pattern BUFFER_USAGE_2_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR = BufferUsageFlagBits2KHR 0x0000000000080000 + +-- | 'BUFFER_USAGE_2_SHADER_DEVICE_ADDRESS_BIT_KHR' specifies that the buffer +-- /can/ be used to retrieve a buffer device address via +-- 'Vulkan.Core12.Promoted_From_VK_KHR_buffer_device_address.getBufferDeviceAddress' +-- and use that address to access the buffer’s memory from a shader. +pattern BUFFER_USAGE_2_SHADER_DEVICE_ADDRESS_BIT_KHR = BufferUsageFlagBits2KHR 0x0000000000020000 + +-- | 'BUFFER_USAGE_2_VIDEO_ENCODE_SRC_BIT_KHR' is reserved for future use. +pattern BUFFER_USAGE_2_VIDEO_ENCODE_SRC_BIT_KHR = BufferUsageFlagBits2KHR 0x0000000000010000 + +-- | 'BUFFER_USAGE_2_VIDEO_ENCODE_DST_BIT_KHR' specifies that the buffer +-- /can/ be used as the destination video bitstream buffer in a +-- . +pattern BUFFER_USAGE_2_VIDEO_ENCODE_DST_BIT_KHR = BufferUsageFlagBits2KHR 0x0000000000008000 + +-- | 'BUFFER_USAGE_2_VIDEO_DECODE_DST_BIT_KHR' is reserved for future use. +pattern BUFFER_USAGE_2_VIDEO_DECODE_DST_BIT_KHR = BufferUsageFlagBits2KHR 0x0000000000004000 + +-- | 'BUFFER_USAGE_2_VIDEO_DECODE_SRC_BIT_KHR' specifies that the buffer +-- /can/ be used as the source video bitstream buffer in a +-- . +pattern BUFFER_USAGE_2_VIDEO_DECODE_SRC_BIT_KHR = BufferUsageFlagBits2KHR 0x0000000000002000 + +-- | 'BUFFER_USAGE_2_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT' specifies +-- that the buffer is suitable for using as a counter buffer with +-- 'Vulkan.Extensions.VK_EXT_transform_feedback.cmdBeginTransformFeedbackEXT' +-- and +-- 'Vulkan.Extensions.VK_EXT_transform_feedback.cmdEndTransformFeedbackEXT'. +pattern BUFFER_USAGE_2_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT = BufferUsageFlagBits2KHR 0x0000000000001000 + +-- | 'BUFFER_USAGE_2_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT' specifies that the +-- buffer is suitable for using for binding as a transform feedback buffer +-- with +-- 'Vulkan.Extensions.VK_EXT_transform_feedback.cmdBindTransformFeedbackBuffersEXT'. +pattern BUFFER_USAGE_2_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT = BufferUsageFlagBits2KHR 0x0000000000000800 + +-- | 'BUFFER_USAGE_2_SHADER_BINDING_TABLE_BIT_KHR' specifies that the buffer +-- is suitable for use as a +-- . +pattern BUFFER_USAGE_2_SHADER_BINDING_TABLE_BIT_KHR = BufferUsageFlagBits2KHR 0x0000000000000400 + +-- | 'BUFFER_USAGE_2_CONDITIONAL_RENDERING_BIT_EXT' specifies that the buffer +-- is suitable for passing as the @buffer@ parameter to +-- 'Vulkan.Extensions.VK_EXT_conditional_rendering.cmdBeginConditionalRenderingEXT'. +pattern BUFFER_USAGE_2_CONDITIONAL_RENDERING_BIT_EXT = BufferUsageFlagBits2KHR 0x0000000000000200 + +-- | 'BUFFER_USAGE_2_EXECUTION_GRAPH_SCRATCH_BIT_AMDX' specifies that the +-- buffer /can/ be used for as scratch memory for +-- . +pattern BUFFER_USAGE_2_EXECUTION_GRAPH_SCRATCH_BIT_AMDX = BufferUsageFlagBits2KHR 0x0000000002000000 + +conNameBufferUsageFlagBits2KHR :: String +conNameBufferUsageFlagBits2KHR = "BufferUsageFlagBits2KHR" + +enumPrefixBufferUsageFlagBits2KHR :: String +enumPrefixBufferUsageFlagBits2KHR = "BUFFER_USAGE_2_" + +showTableBufferUsageFlagBits2KHR :: [(BufferUsageFlagBits2KHR, String)] +showTableBufferUsageFlagBits2KHR = + [ + ( BUFFER_USAGE_2_TRANSFER_SRC_BIT_KHR + , "TRANSFER_SRC_BIT_KHR" + ) + , + ( BUFFER_USAGE_2_TRANSFER_DST_BIT_KHR + , "TRANSFER_DST_BIT_KHR" + ) + , + ( BUFFER_USAGE_2_UNIFORM_TEXEL_BUFFER_BIT_KHR + , "UNIFORM_TEXEL_BUFFER_BIT_KHR" + ) + , + ( BUFFER_USAGE_2_STORAGE_TEXEL_BUFFER_BIT_KHR + , "STORAGE_TEXEL_BUFFER_BIT_KHR" + ) + , + ( BUFFER_USAGE_2_UNIFORM_BUFFER_BIT_KHR + , "UNIFORM_BUFFER_BIT_KHR" + ) + , + ( BUFFER_USAGE_2_STORAGE_BUFFER_BIT_KHR + , "STORAGE_BUFFER_BIT_KHR" + ) + , + ( BUFFER_USAGE_2_INDEX_BUFFER_BIT_KHR + , "INDEX_BUFFER_BIT_KHR" + ) + , + ( BUFFER_USAGE_2_VERTEX_BUFFER_BIT_KHR + , "VERTEX_BUFFER_BIT_KHR" + ) + , + ( BUFFER_USAGE_2_INDIRECT_BUFFER_BIT_KHR + , "INDIRECT_BUFFER_BIT_KHR" + ) + , + ( BUFFER_USAGE_2_MICROMAP_STORAGE_BIT_EXT + , "MICROMAP_STORAGE_BIT_EXT" + ) + , + ( BUFFER_USAGE_2_MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT + , "MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT" + ) + , + ( BUFFER_USAGE_2_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT + , "PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT" + ) + , + ( BUFFER_USAGE_2_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT + , "RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT" + ) + , + ( BUFFER_USAGE_2_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT + , "SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT" + ) + , + ( BUFFER_USAGE_2_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR + , "ACCELERATION_STRUCTURE_STORAGE_BIT_KHR" + ) + , + ( BUFFER_USAGE_2_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR + , "ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR" + ) + , + ( BUFFER_USAGE_2_SHADER_DEVICE_ADDRESS_BIT_KHR + , "SHADER_DEVICE_ADDRESS_BIT_KHR" + ) + , + ( BUFFER_USAGE_2_VIDEO_ENCODE_SRC_BIT_KHR + , "VIDEO_ENCODE_SRC_BIT_KHR" + ) + , + ( BUFFER_USAGE_2_VIDEO_ENCODE_DST_BIT_KHR + , "VIDEO_ENCODE_DST_BIT_KHR" + ) + , + ( BUFFER_USAGE_2_VIDEO_DECODE_DST_BIT_KHR + , "VIDEO_DECODE_DST_BIT_KHR" + ) + , + ( BUFFER_USAGE_2_VIDEO_DECODE_SRC_BIT_KHR + , "VIDEO_DECODE_SRC_BIT_KHR" + ) + , + ( BUFFER_USAGE_2_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT + , "TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT" + ) + , + ( BUFFER_USAGE_2_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT + , "TRANSFORM_FEEDBACK_BUFFER_BIT_EXT" + ) + , + ( BUFFER_USAGE_2_SHADER_BINDING_TABLE_BIT_KHR + , "SHADER_BINDING_TABLE_BIT_KHR" + ) + , + ( BUFFER_USAGE_2_CONDITIONAL_RENDERING_BIT_EXT + , "CONDITIONAL_RENDERING_BIT_EXT" + ) + , + ( BUFFER_USAGE_2_EXECUTION_GRAPH_SCRATCH_BIT_AMDX + , "EXECUTION_GRAPH_SCRATCH_BIT_AMDX" + ) + ] + +instance Show BufferUsageFlagBits2KHR where + showsPrec = + enumShowsPrec + enumPrefixBufferUsageFlagBits2KHR + showTableBufferUsageFlagBits2KHR + conNameBufferUsageFlagBits2KHR + (\(BufferUsageFlagBits2KHR x) -> x) + (\x -> showString "0x" . showHex x) + +instance Read BufferUsageFlagBits2KHR where + readPrec = + enumReadPrec + enumPrefixBufferUsageFlagBits2KHR + showTableBufferUsageFlagBits2KHR + conNameBufferUsageFlagBits2KHR + BufferUsageFlagBits2KHR + +type AMDX_SHADER_ENQUEUE_SPEC_VERSION = 1 + +-- No documentation found for TopLevel "VK_AMDX_SHADER_ENQUEUE_SPEC_VERSION" +pattern AMDX_SHADER_ENQUEUE_SPEC_VERSION :: forall a . Integral a => a +pattern AMDX_SHADER_ENQUEUE_SPEC_VERSION = 1 + + +type AMDX_SHADER_ENQUEUE_EXTENSION_NAME = "VK_AMDX_shader_enqueue" + +-- No documentation found for TopLevel "VK_AMDX_SHADER_ENQUEUE_EXTENSION_NAME" +pattern AMDX_SHADER_ENQUEUE_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a +pattern AMDX_SHADER_ENQUEUE_EXTENSION_NAME = "VK_AMDX_shader_enqueue" + diff --git a/src/Vulkan/Extensions/VK_AMDX_shader_enqueue.hs-boot b/src/Vulkan/Extensions/VK_AMDX_shader_enqueue.hs-boot new file mode 100644 index 000000000..c4242ed43 --- /dev/null +++ b/src/Vulkan/Extensions/VK_AMDX_shader_enqueue.hs-boot @@ -0,0 +1,268 @@ +{-# language CPP #-} +-- | = Name +-- +-- VK_AMDX_shader_enqueue - device extension +-- +-- == VK_AMDX_shader_enqueue +-- +-- [__Name String__] +-- @VK_AMDX_shader_enqueue@ +-- +-- [__Extension Type__] +-- Device extension +-- +-- [__Registered Extension Number__] +-- 135 +-- +-- [__Revision__] +-- 1 +-- +-- [__Ratification Status__] +-- Not ratified +-- +-- [__Extension and Version Dependencies__] +-- +-- and +-- +-- and +-- +-- and +-- +-- +-- - __This is a /provisional/ extension and /must/ be used with +-- caution. See the +-- +-- of provisional header files for enablement and stability +-- details.__ +-- +-- [__Contact__] +-- +-- - Tobias Hector +-- +-- +-- [__Extension Proposal__] +-- +-- +-- == Other Extension Metadata +-- +-- [__Last Modified Date__] +-- 2021-07-22 +-- +-- [__Interactions and External Dependencies__] +-- +-- - This extension requires +-- . +-- +-- [__Provisional__] +-- __This extension is /provisional/ and /should/ not be used in +-- production applications. The functionality /may/ change in ways that +-- break backwards compatibility between revisions, and before final +-- release.__ +-- +-- [__Contributors__] +-- +-- - Tobias Hector, AMD +-- +-- - Matthaeus Chajdas, AMD +-- +-- - Maciej Jesionowski, AMD +-- +-- - Robert Martin, AMD +-- +-- - Qun Lin, AMD +-- +-- - Rex Xu, AMD +-- +-- - Dominik Witczak, AMD +-- +-- - Karthik Srinivasan, AMD +-- +-- - Nicolai Haehnle, AMD +-- +-- - Stuart Smith, AMD +-- +-- == Description +-- +-- This extension adds the ability for developers to enqueue compute shader +-- workgroups from other compute shaders. +-- +-- == New Commands +-- +-- - 'cmdDispatchGraphAMDX' +-- +-- - 'cmdDispatchGraphIndirectAMDX' +-- +-- - 'cmdDispatchGraphIndirectCountAMDX' +-- +-- - 'cmdInitializeGraphScratchMemoryAMDX' +-- +-- - 'createExecutionGraphPipelinesAMDX' +-- +-- - 'getExecutionGraphPipelineNodeIndexAMDX' +-- +-- - 'getExecutionGraphPipelineScratchSizeAMDX' +-- +-- == New Structures +-- +-- - 'DispatchGraphCountInfoAMDX' +-- +-- - 'DispatchGraphInfoAMDX' +-- +-- - 'ExecutionGraphPipelineCreateInfoAMDX' +-- +-- - 'ExecutionGraphPipelineScratchSizeAMDX' +-- +-- - Extending +-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2', +-- 'Vulkan.Core10.Device.DeviceCreateInfo': +-- +-- - 'PhysicalDeviceShaderEnqueueFeaturesAMDX' +-- +-- - Extending +-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2': +-- +-- - 'PhysicalDeviceShaderEnqueuePropertiesAMDX' +-- +-- - Extending 'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo': +-- +-- - 'PipelineShaderStageNodeCreateInfoAMDX' +-- +-- == New Unions +-- +-- - 'DeviceOrHostAddressConstAMDX' +-- +-- == New Enum Constants +-- +-- - 'AMDX_SHADER_ENQUEUE_EXTENSION_NAME' +-- +-- - 'AMDX_SHADER_ENQUEUE_SPEC_VERSION' +-- +-- - 'Vulkan.Core10.APIConstants.SHADER_INDEX_UNUSED_AMDX' +-- +-- - Extending +-- 'Vulkan.Core10.Enums.BufferUsageFlagBits.BufferUsageFlagBits': +-- +-- - 'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_EXECUTION_GRAPH_SCRATCH_BIT_AMDX' +-- +-- - Extending 'Vulkan.Core10.Enums.PipelineBindPoint.PipelineBindPoint': +-- +-- - 'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_EXECUTION_GRAPH_AMDX' +-- +-- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType': +-- +-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_EXECUTION_GRAPH_PIPELINE_CREATE_INFO_AMDX' +-- +-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_EXECUTION_GRAPH_PIPELINE_SCRATCH_SIZE_AMDX' +-- +-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ENQUEUE_FEATURES_AMDX' +-- +-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ENQUEUE_PROPERTIES_AMDX' +-- +-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_NODE_CREATE_INFO_AMDX' +-- +-- If +-- +-- is supported: +-- +-- - Extending 'BufferUsageFlagBits2KHR': +-- +-- - 'BUFFER_USAGE_2_EXECUTION_GRAPH_SCRATCH_BIT_AMDX' +-- +-- == Version History +-- +-- - Revision 1, 2021-07-22 (Tobias Hector) +-- +-- - Initial revision +-- +-- == See Also +-- +-- 'Vulkan.Core10.APIConstants.SHADER_INDEX_UNUSED_AMDX', +-- 'DeviceOrHostAddressConstAMDX', 'DispatchGraphCountInfoAMDX', +-- 'DispatchGraphInfoAMDX', 'ExecutionGraphPipelineCreateInfoAMDX', +-- 'ExecutionGraphPipelineScratchSizeAMDX', +-- 'PhysicalDeviceShaderEnqueueFeaturesAMDX', +-- 'PhysicalDeviceShaderEnqueuePropertiesAMDX', +-- 'PipelineShaderStageNodeCreateInfoAMDX', 'cmdDispatchGraphAMDX', +-- 'cmdDispatchGraphIndirectAMDX', 'cmdDispatchGraphIndirectCountAMDX', +-- 'cmdInitializeGraphScratchMemoryAMDX', +-- 'createExecutionGraphPipelinesAMDX', +-- 'getExecutionGraphPipelineNodeIndexAMDX', +-- 'getExecutionGraphPipelineScratchSizeAMDX' +-- +-- == Document Notes +-- +-- For more information, see the +-- +-- +-- This page is a generated document. Fixes and changes should be made to +-- the generator scripts, not directly. +module Vulkan.Extensions.VK_AMDX_shader_enqueue ( DispatchGraphCountInfoAMDX + , DispatchGraphInfoAMDX + , ExecutionGraphPipelineCreateInfoAMDX + , ExecutionGraphPipelineScratchSizeAMDX + , PhysicalDeviceShaderEnqueueFeaturesAMDX + , PhysicalDeviceShaderEnqueuePropertiesAMDX + , PipelineShaderStageNodeCreateInfoAMDX + ) where + +import Vulkan.CStruct (FromCStruct) +import Vulkan.CStruct (ToCStruct) +import Data.Kind (Type) +import {-# SOURCE #-} Vulkan.CStruct.Extends (Chain) +import {-# SOURCE #-} Vulkan.CStruct.Extends (Extendss) +import {-# SOURCE #-} Vulkan.CStruct.Extends (PeekChain) +import {-# SOURCE #-} Vulkan.CStruct.Extends (PokeChain) +data DispatchGraphCountInfoAMDX + +instance ToCStruct DispatchGraphCountInfoAMDX +instance Show DispatchGraphCountInfoAMDX + + +data DispatchGraphInfoAMDX + +instance ToCStruct DispatchGraphInfoAMDX +instance Show DispatchGraphInfoAMDX + + +type role ExecutionGraphPipelineCreateInfoAMDX nominal +data ExecutionGraphPipelineCreateInfoAMDX (es :: [Type]) + +instance ( Extendss ExecutionGraphPipelineCreateInfoAMDX es + , PokeChain es ) => ToCStruct (ExecutionGraphPipelineCreateInfoAMDX es) +instance Show (Chain es) => Show (ExecutionGraphPipelineCreateInfoAMDX es) + +instance ( Extendss ExecutionGraphPipelineCreateInfoAMDX es + , PeekChain es ) => FromCStruct (ExecutionGraphPipelineCreateInfoAMDX es) + + +data ExecutionGraphPipelineScratchSizeAMDX + +instance ToCStruct ExecutionGraphPipelineScratchSizeAMDX +instance Show ExecutionGraphPipelineScratchSizeAMDX + +instance FromCStruct ExecutionGraphPipelineScratchSizeAMDX + + +data PhysicalDeviceShaderEnqueueFeaturesAMDX + +instance ToCStruct PhysicalDeviceShaderEnqueueFeaturesAMDX +instance Show PhysicalDeviceShaderEnqueueFeaturesAMDX + +instance FromCStruct PhysicalDeviceShaderEnqueueFeaturesAMDX + + +data PhysicalDeviceShaderEnqueuePropertiesAMDX + +instance ToCStruct PhysicalDeviceShaderEnqueuePropertiesAMDX +instance Show PhysicalDeviceShaderEnqueuePropertiesAMDX + +instance FromCStruct PhysicalDeviceShaderEnqueuePropertiesAMDX + + +data PipelineShaderStageNodeCreateInfoAMDX + +instance ToCStruct PipelineShaderStageNodeCreateInfoAMDX +instance Show PipelineShaderStageNodeCreateInfoAMDX + +instance FromCStruct PipelineShaderStageNodeCreateInfoAMDX + diff --git a/src/Vulkan/Extensions/VK_AMD_buffer_marker.hs b/src/Vulkan/Extensions/VK_AMD_buffer_marker.hs index 4d848f707..3fcc726bc 100644 --- a/src/Vulkan/Extensions/VK_AMD_buffer_marker.hs +++ b/src/Vulkan/Extensions/VK_AMD_buffer_marker.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__; __Special Use__] -- -- - diff --git a/src/Vulkan/Extensions/VK_AMD_device_coherent_memory.hs b/src/Vulkan/Extensions/VK_AMD_device_coherent_memory.hs index ce3c14dda..47f235db2 100644 --- a/src/Vulkan/Extensions/VK_AMD_device_coherent_memory.hs +++ b/src/Vulkan/Extensions/VK_AMD_device_coherent_memory.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- diff --git a/src/Vulkan/Extensions/VK_AMD_device_coherent_memory.hs-boot b/src/Vulkan/Extensions/VK_AMD_device_coherent_memory.hs-boot index 362abe89e..1109b777e 100644 --- a/src/Vulkan/Extensions/VK_AMD_device_coherent_memory.hs-boot +++ b/src/Vulkan/Extensions/VK_AMD_device_coherent_memory.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- diff --git a/src/Vulkan/Extensions/VK_AMD_display_native_hdr.hs b/src/Vulkan/Extensions/VK_AMD_display_native_hdr.hs index 074f83dbd..966e72a89 100644 --- a/src/Vulkan/Extensions/VK_AMD_display_native_hdr.hs +++ b/src/Vulkan/Extensions/VK_AMD_display_native_hdr.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- and @@ -57,8 +60,8 @@ -- Vulkan: -- -- - A new 'Vulkan.Extensions.VK_KHR_surface.ColorSpaceKHR' enum for --- setting the native display colorspace. For example, this color space --- would be set by the swapchain to use the native color space in +-- setting the native display color space. For example, this color +-- space would be set by the swapchain to use the native color space in -- Freesync2 displays. -- -- - Local dimming control diff --git a/src/Vulkan/Extensions/VK_AMD_display_native_hdr.hs-boot b/src/Vulkan/Extensions/VK_AMD_display_native_hdr.hs-boot index b2d1adeb6..5d9747827 100644 --- a/src/Vulkan/Extensions/VK_AMD_display_native_hdr.hs-boot +++ b/src/Vulkan/Extensions/VK_AMD_display_native_hdr.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- and @@ -57,8 +60,8 @@ -- Vulkan: -- -- - A new 'Vulkan.Extensions.VK_KHR_surface.ColorSpaceKHR' enum for --- setting the native display colorspace. For example, this color space --- would be set by the swapchain to use the native color space in +-- setting the native display color space. For example, this color +-- space would be set by the swapchain to use the native color space in -- Freesync2 displays. -- -- - Local dimming control diff --git a/src/Vulkan/Extensions/VK_AMD_draw_indirect_count.hs b/src/Vulkan/Extensions/VK_AMD_draw_indirect_count.hs index a0f0a2610..111d6cf98 100644 --- a/src/Vulkan/Extensions/VK_AMD_draw_indirect_count.hs +++ b/src/Vulkan/Extensions/VK_AMD_draw_indirect_count.hs @@ -17,7 +17,10 @@ -- [__Revision__] -- 2 -- --- [__Extension and Version Dependencies__; __Deprecation state__] +-- [__Ratification Status__] +-- Not ratified +-- +-- [__Extension and Version Dependencies__; __Deprecation State__] -- -- - /Promoted/ to @VK_KHR_draw_indirect_count@ extension -- diff --git a/src/Vulkan/Extensions/VK_AMD_gcn_shader.hs b/src/Vulkan/Extensions/VK_AMD_gcn_shader.hs index 5390338ec..bc420b3b7 100644 --- a/src/Vulkan/Extensions/VK_AMD_gcn_shader.hs +++ b/src/Vulkan/Extensions/VK_AMD_gcn_shader.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__; __Contact__] -- -- - Dominik Witczak diff --git a/src/Vulkan/Extensions/VK_AMD_gpu_shader_half_float.hs b/src/Vulkan/Extensions/VK_AMD_gpu_shader_half_float.hs index 102b0b5f8..bbe114585 100644 --- a/src/Vulkan/Extensions/VK_AMD_gpu_shader_half_float.hs +++ b/src/Vulkan/Extensions/VK_AMD_gpu_shader_half_float.hs @@ -17,7 +17,10 @@ -- [__Revision__] -- 2 -- --- [__Extension and Version Dependencies__; __Deprecation state__] +-- [__Ratification Status__] +-- Not ratified +-- +-- [__Extension and Version Dependencies__; __Deprecation State__] -- -- - /Deprecated/ by @VK_KHR_shader_float16_int8@ extension -- diff --git a/src/Vulkan/Extensions/VK_AMD_gpu_shader_int16.hs b/src/Vulkan/Extensions/VK_AMD_gpu_shader_int16.hs index 3dfb9a9e9..344855d73 100644 --- a/src/Vulkan/Extensions/VK_AMD_gpu_shader_int16.hs +++ b/src/Vulkan/Extensions/VK_AMD_gpu_shader_int16.hs @@ -17,7 +17,10 @@ -- [__Revision__] -- 2 -- --- [__Extension and Version Dependencies__; __Deprecation state__] +-- [__Ratification Status__] +-- Not ratified +-- +-- [__Extension and Version Dependencies__; __Deprecation State__] -- -- - /Deprecated/ by @VK_KHR_shader_float16_int8@ extension -- diff --git a/src/Vulkan/Extensions/VK_AMD_memory_overallocation_behavior.hs b/src/Vulkan/Extensions/VK_AMD_memory_overallocation_behavior.hs index 8cf9f7368..4221b0da0 100644 --- a/src/Vulkan/Extensions/VK_AMD_memory_overallocation_behavior.hs +++ b/src/Vulkan/Extensions/VK_AMD_memory_overallocation_behavior.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__; __Contact__] -- -- - Martin Dinkov diff --git a/src/Vulkan/Extensions/VK_AMD_memory_overallocation_behavior.hs-boot b/src/Vulkan/Extensions/VK_AMD_memory_overallocation_behavior.hs-boot index 81293653d..52c6a5dae 100644 --- a/src/Vulkan/Extensions/VK_AMD_memory_overallocation_behavior.hs-boot +++ b/src/Vulkan/Extensions/VK_AMD_memory_overallocation_behavior.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__; __Contact__] -- -- - Martin Dinkov diff --git a/src/Vulkan/Extensions/VK_AMD_mixed_attachment_samples.hs b/src/Vulkan/Extensions/VK_AMD_mixed_attachment_samples.hs index c3cfc972f..498a27375 100644 --- a/src/Vulkan/Extensions/VK_AMD_mixed_attachment_samples.hs +++ b/src/Vulkan/Extensions/VK_AMD_mixed_attachment_samples.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__; __Contact__] -- -- - Matthaeus G. Chajdas diff --git a/src/Vulkan/Extensions/VK_AMD_negative_viewport_height.hs b/src/Vulkan/Extensions/VK_AMD_negative_viewport_height.hs index 81068d874..4d4ec3e05 100644 --- a/src/Vulkan/Extensions/VK_AMD_negative_viewport_height.hs +++ b/src/Vulkan/Extensions/VK_AMD_negative_viewport_height.hs @@ -17,7 +17,10 @@ -- [__Revision__] -- 1 -- --- [__Extension and Version Dependencies__; __Deprecation state__] +-- [__Ratification Status__] +-- Not ratified +-- +-- [__Extension and Version Dependencies__; __Deprecation State__] -- -- - /Obsoleted/ by @VK_KHR_maintenance1@ extension -- diff --git a/src/Vulkan/Extensions/VK_AMD_pipeline_compiler_control.hs b/src/Vulkan/Extensions/VK_AMD_pipeline_compiler_control.hs index ef4a3f8f2..575dce13f 100644 --- a/src/Vulkan/Extensions/VK_AMD_pipeline_compiler_control.hs +++ b/src/Vulkan/Extensions/VK_AMD_pipeline_compiler_control.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__; __Contact__] -- -- - Matthaeus G. Chajdas @@ -49,7 +52,8 @@ -- == New Structures -- -- - Extending 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo', --- 'Vulkan.Core10.Pipeline.ComputePipelineCreateInfo': +-- 'Vulkan.Core10.Pipeline.ComputePipelineCreateInfo', +-- 'Vulkan.Extensions.VK_AMDX_shader_enqueue.ExecutionGraphPipelineCreateInfoAMDX': -- -- - 'PipelineCompilerControlCreateInfoAMD' -- diff --git a/src/Vulkan/Extensions/VK_AMD_pipeline_compiler_control.hs-boot b/src/Vulkan/Extensions/VK_AMD_pipeline_compiler_control.hs-boot index a69d9c88b..041f61758 100644 --- a/src/Vulkan/Extensions/VK_AMD_pipeline_compiler_control.hs-boot +++ b/src/Vulkan/Extensions/VK_AMD_pipeline_compiler_control.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__; __Contact__] -- -- - Matthaeus G. Chajdas @@ -49,7 +52,8 @@ -- == New Structures -- -- - Extending 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo', --- 'Vulkan.Core10.Pipeline.ComputePipelineCreateInfo': +-- 'Vulkan.Core10.Pipeline.ComputePipelineCreateInfo', +-- 'Vulkan.Extensions.VK_AMDX_shader_enqueue.ExecutionGraphPipelineCreateInfoAMDX': -- -- - 'PipelineCompilerControlCreateInfoAMD' -- diff --git a/src/Vulkan/Extensions/VK_AMD_rasterization_order.hs b/src/Vulkan/Extensions/VK_AMD_rasterization_order.hs index 4c25dfb73..0147be56f 100644 --- a/src/Vulkan/Extensions/VK_AMD_rasterization_order.hs +++ b/src/Vulkan/Extensions/VK_AMD_rasterization_order.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__; __Contact__] -- -- - Daniel Rakos diff --git a/src/Vulkan/Extensions/VK_AMD_rasterization_order.hs-boot b/src/Vulkan/Extensions/VK_AMD_rasterization_order.hs-boot index 39121d629..8d59821e1 100644 --- a/src/Vulkan/Extensions/VK_AMD_rasterization_order.hs-boot +++ b/src/Vulkan/Extensions/VK_AMD_rasterization_order.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__; __Contact__] -- -- - Daniel Rakos diff --git a/src/Vulkan/Extensions/VK_AMD_shader_ballot.hs b/src/Vulkan/Extensions/VK_AMD_shader_ballot.hs index 30e7d55a4..c95479c2f 100644 --- a/src/Vulkan/Extensions/VK_AMD_shader_ballot.hs +++ b/src/Vulkan/Extensions/VK_AMD_shader_ballot.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__; __Contact__] -- -- - Dominik Witczak diff --git a/src/Vulkan/Extensions/VK_AMD_shader_core_properties.hs b/src/Vulkan/Extensions/VK_AMD_shader_core_properties.hs index 3f9345bd7..2028d10d6 100644 --- a/src/Vulkan/Extensions/VK_AMD_shader_core_properties.hs +++ b/src/Vulkan/Extensions/VK_AMD_shader_core_properties.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 2 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- @@ -223,7 +226,7 @@ data PhysicalDeviceShaderCorePropertiesAMD = PhysicalDeviceShaderCorePropertiesA -- indicating the maximum size of a subgroup. wavefrontSize :: Word32 , -- | #limits-sgprsPerSimd# @sgprsPerSimd@ is an unsigned integer value - -- indicating the number of physical Scalar General Purpose Registers + -- indicating the number of physical Scalar General-Purpose Registers -- (SGPRs) per SIMD. sgprsPerSimd :: Word32 , -- | #limits-minSgprAllocation# @minSgprAllocation@ is an unsigned integer @@ -237,7 +240,7 @@ data PhysicalDeviceShaderCorePropertiesAMD = PhysicalDeviceShaderCorePropertiesA -- a wave. sgprAllocationGranularity :: Word32 , -- | #limits-vgprsPerSimd# @vgprsPerSimd@ is an unsigned integer value - -- indicating the number of physical Vector General Purpose Registers + -- indicating the number of physical Vector General-Purpose Registers -- (VGPRs) per SIMD. vgprsPerSimd :: Word32 , -- | #limits-minVgprAllocation# @minVgprAllocation@ is an unsigned integer diff --git a/src/Vulkan/Extensions/VK_AMD_shader_core_properties.hs-boot b/src/Vulkan/Extensions/VK_AMD_shader_core_properties.hs-boot index b3e95539d..1bc75f74f 100644 --- a/src/Vulkan/Extensions/VK_AMD_shader_core_properties.hs-boot +++ b/src/Vulkan/Extensions/VK_AMD_shader_core_properties.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 2 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- diff --git a/src/Vulkan/Extensions/VK_AMD_shader_core_properties2.hs b/src/Vulkan/Extensions/VK_AMD_shader_core_properties2.hs index 3cf883883..b8d500c6c 100644 --- a/src/Vulkan/Extensions/VK_AMD_shader_core_properties2.hs +++ b/src/Vulkan/Extensions/VK_AMD_shader_core_properties2.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- diff --git a/src/Vulkan/Extensions/VK_AMD_shader_core_properties2.hs-boot b/src/Vulkan/Extensions/VK_AMD_shader_core_properties2.hs-boot index b195ea9db..f448c34de 100644 --- a/src/Vulkan/Extensions/VK_AMD_shader_core_properties2.hs-boot +++ b/src/Vulkan/Extensions/VK_AMD_shader_core_properties2.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- diff --git a/src/Vulkan/Extensions/VK_AMD_shader_early_and_late_fragment_tests.hs b/src/Vulkan/Extensions/VK_AMD_shader_early_and_late_fragment_tests.hs index 359ab43b6..697829c4d 100644 --- a/src/Vulkan/Extensions/VK_AMD_shader_early_and_late_fragment_tests.hs +++ b/src/Vulkan/Extensions/VK_AMD_shader_early_and_late_fragment_tests.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- diff --git a/src/Vulkan/Extensions/VK_AMD_shader_early_and_late_fragment_tests.hs-boot b/src/Vulkan/Extensions/VK_AMD_shader_early_and_late_fragment_tests.hs-boot index e82ba7593..7d2cb862a 100644 --- a/src/Vulkan/Extensions/VK_AMD_shader_early_and_late_fragment_tests.hs-boot +++ b/src/Vulkan/Extensions/VK_AMD_shader_early_and_late_fragment_tests.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- diff --git a/src/Vulkan/Extensions/VK_AMD_shader_explicit_vertex_parameter.hs b/src/Vulkan/Extensions/VK_AMD_shader_explicit_vertex_parameter.hs index 9a14d8508..41a96fd60 100644 --- a/src/Vulkan/Extensions/VK_AMD_shader_explicit_vertex_parameter.hs +++ b/src/Vulkan/Extensions/VK_AMD_shader_explicit_vertex_parameter.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__; __Contact__] -- -- - Qun Lin diff --git a/src/Vulkan/Extensions/VK_AMD_shader_fragment_mask.hs b/src/Vulkan/Extensions/VK_AMD_shader_fragment_mask.hs index 33920a2c7..69a2ba2ec 100644 --- a/src/Vulkan/Extensions/VK_AMD_shader_fragment_mask.hs +++ b/src/Vulkan/Extensions/VK_AMD_shader_fragment_mask.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__; __Contact__] -- -- - Aaron Hagan diff --git a/src/Vulkan/Extensions/VK_AMD_shader_image_load_store_lod.hs b/src/Vulkan/Extensions/VK_AMD_shader_image_load_store_lod.hs index c1387094d..ab0505509 100644 --- a/src/Vulkan/Extensions/VK_AMD_shader_image_load_store_lod.hs +++ b/src/Vulkan/Extensions/VK_AMD_shader_image_load_store_lod.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__; __Contact__] -- -- - Dominik Witczak diff --git a/src/Vulkan/Extensions/VK_AMD_shader_info.hs b/src/Vulkan/Extensions/VK_AMD_shader_info.hs index d3b579b52..9f2dd7136 100644 --- a/src/Vulkan/Extensions/VK_AMD_shader_info.hs +++ b/src/Vulkan/Extensions/VK_AMD_shader_info.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__; __Special Use__] -- -- - diff --git a/src/Vulkan/Extensions/VK_AMD_shader_info.hs-boot b/src/Vulkan/Extensions/VK_AMD_shader_info.hs-boot index 24edc63c6..ab368c55a 100644 --- a/src/Vulkan/Extensions/VK_AMD_shader_info.hs-boot +++ b/src/Vulkan/Extensions/VK_AMD_shader_info.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__; __Special Use__] -- -- - diff --git a/src/Vulkan/Extensions/VK_AMD_shader_trinary_minmax.hs b/src/Vulkan/Extensions/VK_AMD_shader_trinary_minmax.hs index 67b513c2b..40874e366 100644 --- a/src/Vulkan/Extensions/VK_AMD_shader_trinary_minmax.hs +++ b/src/Vulkan/Extensions/VK_AMD_shader_trinary_minmax.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__; __Contact__] -- -- - Qun Lin diff --git a/src/Vulkan/Extensions/VK_AMD_texture_gather_bias_lod.hs b/src/Vulkan/Extensions/VK_AMD_texture_gather_bias_lod.hs index e1d465280..e2d2500fe 100644 --- a/src/Vulkan/Extensions/VK_AMD_texture_gather_bias_lod.hs +++ b/src/Vulkan/Extensions/VK_AMD_texture_gather_bias_lod.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- diff --git a/src/Vulkan/Extensions/VK_AMD_texture_gather_bias_lod.hs-boot b/src/Vulkan/Extensions/VK_AMD_texture_gather_bias_lod.hs-boot index 62608b1d0..8223f16aa 100644 --- a/src/Vulkan/Extensions/VK_AMD_texture_gather_bias_lod.hs-boot +++ b/src/Vulkan/Extensions/VK_AMD_texture_gather_bias_lod.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- diff --git a/src/Vulkan/Extensions/VK_ANDROID_external_format_resolve.hs b/src/Vulkan/Extensions/VK_ANDROID_external_format_resolve.hs new file mode 100644 index 000000000..3f1c1e97a --- /dev/null +++ b/src/Vulkan/Extensions/VK_ANDROID_external_format_resolve.hs @@ -0,0 +1,432 @@ +{-# language CPP #-} +-- | = Name +-- +-- VK_ANDROID_external_format_resolve - device extension +-- +-- == VK_ANDROID_external_format_resolve +-- +-- [__Name String__] +-- @VK_ANDROID_external_format_resolve@ +-- +-- [__Extension Type__] +-- Device extension +-- +-- [__Registered Extension Number__] +-- 469 +-- +-- [__Revision__] +-- 1 +-- +-- [__Ratification Status__] +-- Not ratified +-- +-- [__Extension and Version Dependencies__] +-- +-- +-- [__Special Use__] +-- +-- - +-- +-- [__Contact__] +-- +-- - Chris Forbes +-- +-- +-- [__Extension Proposal__] +-- +-- +-- == Other Extension Metadata +-- +-- [__Last Modified Date__] +-- 2023-05-03 +-- +-- [__IP Status__] +-- No known IP claims. +-- +-- [__Contributors__] +-- +-- - Tobias Hector, AMD +-- +-- - Chris Forbes, Google +-- +-- - Jan-Harald Fredriksen, Arm +-- +-- - Shahbaz Youssefi, Google +-- +-- - Matthew Netsch, Qualcomm +-- +-- - Tony Zlatsinki, Nvidia +-- +-- - Daniel Koch, Nvidia +-- +-- - Jeff Leger, Qualcomm +-- +-- - Alex Walters, Imagination +-- +-- - Andrew Garrard, Imagination +-- +-- - Ralph Potter, Samsung +-- +-- - Ian Elliott, Google +-- +-- == Description +-- +-- This extension enables rendering to Android Hardware Buffers with +-- external formats which cannot be directly represented as renderable in +-- Vulkan, including Y′CBCR formats. +-- +-- == New Structures +-- +-- - Extending +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.AndroidHardwareBufferPropertiesANDROID': +-- +-- - 'AndroidHardwareBufferFormatResolvePropertiesANDROID' +-- +-- - Extending +-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2', +-- 'Vulkan.Core10.Device.DeviceCreateInfo': +-- +-- - 'PhysicalDeviceExternalFormatResolveFeaturesANDROID' +-- +-- - Extending +-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2': +-- +-- - 'PhysicalDeviceExternalFormatResolvePropertiesANDROID' +-- +-- == New Enum Constants +-- +-- - 'ANDROID_EXTERNAL_FORMAT_RESOLVE_EXTENSION_NAME' +-- +-- - 'ANDROID_EXTERNAL_FORMAT_RESOLVE_SPEC_VERSION' +-- +-- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType': +-- +-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_RESOLVE_PROPERTIES_ANDROID' +-- +-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_FEATURES_ANDROID' +-- +-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_PROPERTIES_ANDROID' +-- +-- If +-- +-- is supported: +-- +-- - Extending +-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.ResolveModeFlagBits': +-- +-- - 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID' +-- +-- == Version History +-- +-- - Revision 1, 2023-05-34 (Tobias Hector) +-- +-- - Initial version +-- +-- == See Also +-- +-- 'AndroidHardwareBufferFormatResolvePropertiesANDROID', +-- 'PhysicalDeviceExternalFormatResolveFeaturesANDROID', +-- 'PhysicalDeviceExternalFormatResolvePropertiesANDROID' +-- +-- == Document Notes +-- +-- For more information, see the +-- +-- +-- This page is a generated document. Fixes and changes should be made to +-- the generator scripts, not directly. +module Vulkan.Extensions.VK_ANDROID_external_format_resolve ( PhysicalDeviceExternalFormatResolveFeaturesANDROID(..) + , PhysicalDeviceExternalFormatResolvePropertiesANDROID(..) + , AndroidHardwareBufferFormatResolvePropertiesANDROID(..) + , ANDROID_EXTERNAL_FORMAT_RESOLVE_SPEC_VERSION + , pattern ANDROID_EXTERNAL_FORMAT_RESOLVE_SPEC_VERSION + , ANDROID_EXTERNAL_FORMAT_RESOLVE_EXTENSION_NAME + , pattern ANDROID_EXTERNAL_FORMAT_RESOLVE_EXTENSION_NAME + ) where + +import Foreign.Marshal.Alloc (allocaBytes) +import Foreign.Ptr (nullPtr) +import Foreign.Ptr (plusPtr) +import Vulkan.CStruct (FromCStruct) +import Vulkan.CStruct (FromCStruct(..)) +import Vulkan.CStruct (ToCStruct) +import Vulkan.CStruct (ToCStruct(..)) +import Vulkan.Zero (Zero(..)) +import Data.String (IsString) +import Data.Typeable (Typeable) +import Foreign.Storable (Storable) +import Foreign.Storable (Storable(peek)) +import Foreign.Storable (Storable(poke)) +import qualified Foreign.Storable (Storable(..)) +import GHC.Generics (Generic) +import Foreign.Ptr (Ptr) +import Data.Kind (Type) +import Vulkan.Core10.FundamentalTypes (bool32ToBool) +import Vulkan.Core10.FundamentalTypes (boolToBool32) +import Vulkan.Core10.FundamentalTypes (Bool32) +import Vulkan.Core11.Enums.ChromaLocation (ChromaLocation) +import Vulkan.Core10.Enums.Format (Format) +import Vulkan.Core10.Enums.StructureType (StructureType) +import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_RESOLVE_PROPERTIES_ANDROID)) +import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_FEATURES_ANDROID)) +import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_PROPERTIES_ANDROID)) +-- | VkPhysicalDeviceExternalFormatResolveFeaturesANDROID - Structure +-- describing whether external format resolves are supported +-- +-- = Description +-- +-- If the 'PhysicalDeviceExternalFormatResolveFeaturesANDROID' 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. 'PhysicalDeviceExternalFormatResolveFeaturesANDROID' /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 PhysicalDeviceExternalFormatResolveFeaturesANDROID = PhysicalDeviceExternalFormatResolveFeaturesANDROID + { -- | #features-externalFormatResolve# @externalFormatResolve@ specifies + -- whether external format resolves are supported. + externalFormatResolve :: Bool } + deriving (Typeable, Eq) +#if defined(GENERIC_INSTANCES) +deriving instance Generic (PhysicalDeviceExternalFormatResolveFeaturesANDROID) +#endif +deriving instance Show PhysicalDeviceExternalFormatResolveFeaturesANDROID + +instance ToCStruct PhysicalDeviceExternalFormatResolveFeaturesANDROID where + withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p) + pokeCStruct p PhysicalDeviceExternalFormatResolveFeaturesANDROID{..} f = do + poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_FEATURES_ANDROID) + poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr) + poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (externalFormatResolve)) + f + cStructSize = 24 + cStructAlignment = 8 + pokeZeroCStruct p f = do + poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_FEATURES_ANDROID) + poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr) + poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero)) + f + +instance FromCStruct PhysicalDeviceExternalFormatResolveFeaturesANDROID where + peekCStruct p = do + externalFormatResolve <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32)) + pure $ PhysicalDeviceExternalFormatResolveFeaturesANDROID + (bool32ToBool externalFormatResolve) + +instance Storable PhysicalDeviceExternalFormatResolveFeaturesANDROID where + sizeOf ~_ = 24 + alignment ~_ = 8 + peek = peekCStruct + poke ptr poked = pokeCStruct ptr poked (pure ()) + +instance Zero PhysicalDeviceExternalFormatResolveFeaturesANDROID where + zero = PhysicalDeviceExternalFormatResolveFeaturesANDROID + zero + + +-- | VkPhysicalDeviceExternalFormatResolvePropertiesANDROID - Structure +-- describing external format resolve supported by an implementation +-- +-- = Description +-- +-- If the 'PhysicalDeviceExternalFormatResolvePropertiesANDROID' 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.Core11.Enums.ChromaLocation.ChromaLocation', +-- 'Vulkan.Core10.Enums.StructureType.StructureType' +data PhysicalDeviceExternalFormatResolvePropertiesANDROID = PhysicalDeviceExternalFormatResolvePropertiesANDROID + { -- | #limits-nullColorAttachmentWithExternalFormatResolve# + -- @nullColorAttachmentWithExternalFormatResolve@ indicates that there + -- /must/ be no color attachment image when performing external format + -- resolves if it is 'Vulkan.Core10.FundamentalTypes.TRUE'. + nullColorAttachmentWithExternalFormatResolve :: Bool + , -- | #limits-externalFormatResolveChromaOffsetX# + -- @externalFormatResolveChromaOffsetX@ indicates the + -- 'Vulkan.Core11.Enums.ChromaLocation.ChromaLocation' that an + -- implementation uses in the X axis for accesses to an external format + -- image as a resolve attachment. This /must/ be consistent between + -- external format resolves and load operations from external format + -- resolve attachments to color attachments when + -- @nullColorAttachmentWithExternalFormatResolve@ is + -- 'Vulkan.Core10.FundamentalTypes.TRUE'. + externalFormatResolveChromaOffsetX :: ChromaLocation + , -- | #limits-externalFormatResolveChromaOffsetY# + -- @externalFormatResolveChromaOffsetY@ indicates the + -- 'Vulkan.Core11.Enums.ChromaLocation.ChromaLocation' that an + -- implementation uses in the Y axis for accesses to an external format + -- image as a resolve attachment. This /must/ be consistent between + -- external format resolves and load operations from external format + -- resolve attachments to color attachments when + -- @nullColorAttachmentWithExternalFormatResolve@ is + -- 'Vulkan.Core10.FundamentalTypes.TRUE'. + externalFormatResolveChromaOffsetY :: ChromaLocation + } + deriving (Typeable, Eq) +#if defined(GENERIC_INSTANCES) +deriving instance Generic (PhysicalDeviceExternalFormatResolvePropertiesANDROID) +#endif +deriving instance Show PhysicalDeviceExternalFormatResolvePropertiesANDROID + +instance ToCStruct PhysicalDeviceExternalFormatResolvePropertiesANDROID where + withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p) + pokeCStruct p PhysicalDeviceExternalFormatResolvePropertiesANDROID{..} f = do + poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_PROPERTIES_ANDROID) + poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr) + poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (nullColorAttachmentWithExternalFormatResolve)) + poke ((p `plusPtr` 20 :: Ptr ChromaLocation)) (externalFormatResolveChromaOffsetX) + poke ((p `plusPtr` 24 :: Ptr ChromaLocation)) (externalFormatResolveChromaOffsetY) + f + cStructSize = 32 + cStructAlignment = 8 + pokeZeroCStruct p f = do + poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_PROPERTIES_ANDROID) + poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr) + poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero)) + poke ((p `plusPtr` 20 :: Ptr ChromaLocation)) (zero) + poke ((p `plusPtr` 24 :: Ptr ChromaLocation)) (zero) + f + +instance FromCStruct PhysicalDeviceExternalFormatResolvePropertiesANDROID where + peekCStruct p = do + nullColorAttachmentWithExternalFormatResolve <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32)) + externalFormatResolveChromaOffsetX <- peek @ChromaLocation ((p `plusPtr` 20 :: Ptr ChromaLocation)) + externalFormatResolveChromaOffsetY <- peek @ChromaLocation ((p `plusPtr` 24 :: Ptr ChromaLocation)) + pure $ PhysicalDeviceExternalFormatResolvePropertiesANDROID + (bool32ToBool nullColorAttachmentWithExternalFormatResolve) + externalFormatResolveChromaOffsetX + externalFormatResolveChromaOffsetY + +instance Storable PhysicalDeviceExternalFormatResolvePropertiesANDROID where + sizeOf ~_ = 32 + alignment ~_ = 8 + peek = peekCStruct + poke ptr poked = pokeCStruct ptr poked (pure ()) + +instance Zero PhysicalDeviceExternalFormatResolvePropertiesANDROID where + zero = PhysicalDeviceExternalFormatResolvePropertiesANDROID + zero + zero + zero + + +-- | VkAndroidHardwareBufferFormatResolvePropertiesANDROID - Structure +-- defining properties of resolves using an external format +-- +-- = Description +-- +-- Any Android hardware buffer created with the @GRALLOC_USAGE_HW_RENDER@ +-- flag /must/ be renderable in some way in Vulkan, either: +-- +-- - 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.AndroidHardwareBufferFormatPropertiesANDROID'::@format@ +-- /must/ be a format that supports +-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BIT' +-- or +-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT' +-- in +-- 'Vulkan.Core10.DeviceInitialization.FormatProperties'::@optimalTilingFeatures@; +-- or +-- +-- - @colorAttachmentFormat@ /must/ be a format that supports +-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BIT' +-- in +-- 'Vulkan.Core10.DeviceInitialization.FormatProperties'::@optimalTilingFeatures@. +-- +-- == Valid Usage (Implicit) +-- +-- - #VUID-VkAndroidHardwareBufferFormatResolvePropertiesANDROID-sType-sType# +-- @sType@ /must/ be +-- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_RESOLVE_PROPERTIES_ANDROID' +-- +-- = See Also +-- +-- , +-- 'Vulkan.Core10.Enums.Format.Format', +-- 'Vulkan.Core10.Enums.StructureType.StructureType' +data AndroidHardwareBufferFormatResolvePropertiesANDROID = AndroidHardwareBufferFormatResolvePropertiesANDROID + { -- | @colorAttachmentFormat@ is a 'Vulkan.Core10.Enums.Format.Format' + -- specifying the format of color attachment images that /must/ be used for + -- color attachments when resolving to the specified external format. If + -- the implementation supports external format resolves for the specified + -- external format, this value will be set to a color format supporting the + -- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BIT' + -- in + -- 'Vulkan.Core10.DeviceInitialization.FormatProperties'::@optimalTilingFeatures@ + -- as returned by + -- 'Vulkan.Core10.DeviceInitialization.getPhysicalDeviceFormatProperties' + -- with @format@ equal to @colorAttachmentFormat@ If external format + -- resolves are not supported, this value will be set to + -- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'. + colorAttachmentFormat :: Format } + deriving (Typeable, Eq) +#if defined(GENERIC_INSTANCES) +deriving instance Generic (AndroidHardwareBufferFormatResolvePropertiesANDROID) +#endif +deriving instance Show AndroidHardwareBufferFormatResolvePropertiesANDROID + +instance ToCStruct AndroidHardwareBufferFormatResolvePropertiesANDROID where + withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p) + pokeCStruct p AndroidHardwareBufferFormatResolvePropertiesANDROID{..} f = do + poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_RESOLVE_PROPERTIES_ANDROID) + poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr) + poke ((p `plusPtr` 16 :: Ptr Format)) (colorAttachmentFormat) + f + cStructSize = 24 + cStructAlignment = 8 + pokeZeroCStruct p f = do + poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_RESOLVE_PROPERTIES_ANDROID) + poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr) + poke ((p `plusPtr` 16 :: Ptr Format)) (zero) + f + +instance FromCStruct AndroidHardwareBufferFormatResolvePropertiesANDROID where + peekCStruct p = do + colorAttachmentFormat <- peek @Format ((p `plusPtr` 16 :: Ptr Format)) + pure $ AndroidHardwareBufferFormatResolvePropertiesANDROID + colorAttachmentFormat + +instance Storable AndroidHardwareBufferFormatResolvePropertiesANDROID where + sizeOf ~_ = 24 + alignment ~_ = 8 + peek = peekCStruct + poke ptr poked = pokeCStruct ptr poked (pure ()) + +instance Zero AndroidHardwareBufferFormatResolvePropertiesANDROID where + zero = AndroidHardwareBufferFormatResolvePropertiesANDROID + zero + + +type ANDROID_EXTERNAL_FORMAT_RESOLVE_SPEC_VERSION = 1 + +-- No documentation found for TopLevel "VK_ANDROID_EXTERNAL_FORMAT_RESOLVE_SPEC_VERSION" +pattern ANDROID_EXTERNAL_FORMAT_RESOLVE_SPEC_VERSION :: forall a . Integral a => a +pattern ANDROID_EXTERNAL_FORMAT_RESOLVE_SPEC_VERSION = 1 + + +type ANDROID_EXTERNAL_FORMAT_RESOLVE_EXTENSION_NAME = "VK_ANDROID_external_format_resolve" + +-- No documentation found for TopLevel "VK_ANDROID_EXTERNAL_FORMAT_RESOLVE_EXTENSION_NAME" +pattern ANDROID_EXTERNAL_FORMAT_RESOLVE_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a +pattern ANDROID_EXTERNAL_FORMAT_RESOLVE_EXTENSION_NAME = "VK_ANDROID_external_format_resolve" + diff --git a/src/Vulkan/Extensions/VK_ANDROID_external_format_resolve.hs-boot b/src/Vulkan/Extensions/VK_ANDROID_external_format_resolve.hs-boot new file mode 100644 index 000000000..a9b3183d6 --- /dev/null +++ b/src/Vulkan/Extensions/VK_ANDROID_external_format_resolve.hs-boot @@ -0,0 +1,169 @@ +{-# language CPP #-} +-- | = Name +-- +-- VK_ANDROID_external_format_resolve - device extension +-- +-- == VK_ANDROID_external_format_resolve +-- +-- [__Name String__] +-- @VK_ANDROID_external_format_resolve@ +-- +-- [__Extension Type__] +-- Device extension +-- +-- [__Registered Extension Number__] +-- 469 +-- +-- [__Revision__] +-- 1 +-- +-- [__Ratification Status__] +-- Not ratified +-- +-- [__Extension and Version Dependencies__] +-- +-- +-- [__Special Use__] +-- +-- - +-- +-- [__Contact__] +-- +-- - Chris Forbes +-- +-- +-- [__Extension Proposal__] +-- +-- +-- == Other Extension Metadata +-- +-- [__Last Modified Date__] +-- 2023-05-03 +-- +-- [__IP Status__] +-- No known IP claims. +-- +-- [__Contributors__] +-- +-- - Tobias Hector, AMD +-- +-- - Chris Forbes, Google +-- +-- - Jan-Harald Fredriksen, Arm +-- +-- - Shahbaz Youssefi, Google +-- +-- - Matthew Netsch, Qualcomm +-- +-- - Tony Zlatsinki, Nvidia +-- +-- - Daniel Koch, Nvidia +-- +-- - Jeff Leger, Qualcomm +-- +-- - Alex Walters, Imagination +-- +-- - Andrew Garrard, Imagination +-- +-- - Ralph Potter, Samsung +-- +-- - Ian Elliott, Google +-- +-- == Description +-- +-- This extension enables rendering to Android Hardware Buffers with +-- external formats which cannot be directly represented as renderable in +-- Vulkan, including Y′CBCR formats. +-- +-- == New Structures +-- +-- - Extending +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.AndroidHardwareBufferPropertiesANDROID': +-- +-- - 'AndroidHardwareBufferFormatResolvePropertiesANDROID' +-- +-- - Extending +-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2', +-- 'Vulkan.Core10.Device.DeviceCreateInfo': +-- +-- - 'PhysicalDeviceExternalFormatResolveFeaturesANDROID' +-- +-- - Extending +-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2': +-- +-- - 'PhysicalDeviceExternalFormatResolvePropertiesANDROID' +-- +-- == New Enum Constants +-- +-- - 'ANDROID_EXTERNAL_FORMAT_RESOLVE_EXTENSION_NAME' +-- +-- - 'ANDROID_EXTERNAL_FORMAT_RESOLVE_SPEC_VERSION' +-- +-- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType': +-- +-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_RESOLVE_PROPERTIES_ANDROID' +-- +-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_FEATURES_ANDROID' +-- +-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_PROPERTIES_ANDROID' +-- +-- If +-- +-- is supported: +-- +-- - Extending +-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.ResolveModeFlagBits': +-- +-- - 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID' +-- +-- == Version History +-- +-- - Revision 1, 2023-05-34 (Tobias Hector) +-- +-- - Initial version +-- +-- == See Also +-- +-- 'AndroidHardwareBufferFormatResolvePropertiesANDROID', +-- 'PhysicalDeviceExternalFormatResolveFeaturesANDROID', +-- 'PhysicalDeviceExternalFormatResolvePropertiesANDROID' +-- +-- == Document Notes +-- +-- For more information, see the +-- +-- +-- This page is a generated document. Fixes and changes should be made to +-- the generator scripts, not directly. +module Vulkan.Extensions.VK_ANDROID_external_format_resolve ( AndroidHardwareBufferFormatResolvePropertiesANDROID + , PhysicalDeviceExternalFormatResolveFeaturesANDROID + , PhysicalDeviceExternalFormatResolvePropertiesANDROID + ) where + +import Vulkan.CStruct (FromCStruct) +import Vulkan.CStruct (ToCStruct) +import Data.Kind (Type) + +data AndroidHardwareBufferFormatResolvePropertiesANDROID + +instance ToCStruct AndroidHardwareBufferFormatResolvePropertiesANDROID +instance Show AndroidHardwareBufferFormatResolvePropertiesANDROID + +instance FromCStruct AndroidHardwareBufferFormatResolvePropertiesANDROID + + +data PhysicalDeviceExternalFormatResolveFeaturesANDROID + +instance ToCStruct PhysicalDeviceExternalFormatResolveFeaturesANDROID +instance Show PhysicalDeviceExternalFormatResolveFeaturesANDROID + +instance FromCStruct PhysicalDeviceExternalFormatResolveFeaturesANDROID + + +data PhysicalDeviceExternalFormatResolvePropertiesANDROID + +instance ToCStruct PhysicalDeviceExternalFormatResolvePropertiesANDROID +instance Show PhysicalDeviceExternalFormatResolvePropertiesANDROID + +instance FromCStruct PhysicalDeviceExternalFormatResolvePropertiesANDROID + diff --git a/src/Vulkan/Extensions/VK_ANDROID_external_memory_android_hardware_buffer.hs b/src/Vulkan/Extensions/VK_ANDROID_external_memory_android_hardware_buffer.hs index 610162f17..252882c38 100644 --- a/src/Vulkan/Extensions/VK_ANDROID_external_memory_android_hardware_buffer.hs +++ b/src/Vulkan/Extensions/VK_ANDROID_external_memory_android_hardware_buffer.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 5 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- and @@ -94,7 +97,10 @@ -- - 'AndroidHardwareBufferFormatPropertiesANDROID' -- -- - Extending 'Vulkan.Core10.Image.ImageCreateInfo', --- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.SamplerYcbcrConversionCreateInfo': +-- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.SamplerYcbcrConversionCreateInfo', +-- 'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.AttachmentDescription2', +-- 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo', +-- 'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo': -- -- - 'ExternalFormatANDROID' -- @@ -331,6 +337,7 @@ import Data.Word (Word64) import Data.Kind (Type) import Control.Monad.Trans.Cont (ContT(..)) import Vulkan.CStruct.Extends (forgetExtensions) +import {-# SOURCE #-} Vulkan.Extensions.VK_ANDROID_external_format_resolve (AndroidHardwareBufferFormatResolvePropertiesANDROID) import Vulkan.CStruct.Extends (Chain) import Vulkan.Core11.Enums.ChromaLocation (ChromaLocation) import Vulkan.Core10.ImageView (ComponentMapping) @@ -669,8 +676,9 @@ instance Zero AndroidHardwareBufferUsageANDROID where -- - #VUID-VkAndroidHardwareBufferPropertiesANDROID-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 --- 'AndroidHardwareBufferFormatProperties2ANDROID' or --- 'AndroidHardwareBufferFormatPropertiesANDROID' +-- 'AndroidHardwareBufferFormatProperties2ANDROID', +-- 'AndroidHardwareBufferFormatPropertiesANDROID', or +-- 'Vulkan.Extensions.VK_ANDROID_external_format_resolve.AndroidHardwareBufferFormatResolvePropertiesANDROID' -- -- - #VUID-VkAndroidHardwareBufferPropertiesANDROID-sType-unique# The -- @sType@ value of each struct in the @pNext@ chain /must/ be unique @@ -702,6 +710,7 @@ instance Extensible AndroidHardwareBufferPropertiesANDROID where getNext AndroidHardwareBufferPropertiesANDROID{..} = next extends :: forall e b proxy. Typeable e => proxy e -> (Extends AndroidHardwareBufferPropertiesANDROID e => b) -> Maybe b extends _ f + | Just Refl <- eqT @e @AndroidHardwareBufferFormatResolvePropertiesANDROID = Just f | Just Refl <- eqT @e @AndroidHardwareBufferFormatProperties2ANDROID = Just f | Just Refl <- eqT @e @AndroidHardwareBufferFormatPropertiesANDROID = Just f | otherwise = Nothing @@ -859,9 +868,9 @@ instance Zero MemoryGetAndroidHardwareBufferInfoANDROID where -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceImageFormatProperties2' -- with appropriate parameters. These sets of features are independent of -- each other, e.g. the external format will support sampler Y′CBCR --- conversion even if the non-external format does not, and writing to --- non-external format images is possible but writing to external format --- images is not. +-- conversion even if the non-external format does not, and rendering +-- directly to the external format will not be supported even if the +-- non-external format does support this. -- -- Android hardware buffers with the same external format /must/ have the -- same support for @@ -1027,9 +1036,13 @@ instance Zero AndroidHardwareBufferFormatPropertiesANDROID where -- -- = Description -- --- If @externalFormat@ is zero, the effect is as if the --- 'ExternalFormatANDROID' structure was not present. Otherwise, the --- @image@ will have the specified external format. +-- When included in the @pNext@ chain of another structure, it indicates +-- +-- beyond what is provided by 'Vulkan.Core10.Enums.Format.Format' values +-- for an Android hardware buffer. If @externalFormat@ is zero, it +-- indicates that no external format is used, and implementations should +-- rely only on other format information. If this structure is not present, +-- it is equivalent to setting @externalFormat@ to zero. -- -- == Valid Usage (Implicit) -- diff --git a/src/Vulkan/Extensions/VK_ANDROID_external_memory_android_hardware_buffer.hs-boot b/src/Vulkan/Extensions/VK_ANDROID_external_memory_android_hardware_buffer.hs-boot index cfab79831..90f574207 100644 --- a/src/Vulkan/Extensions/VK_ANDROID_external_memory_android_hardware_buffer.hs-boot +++ b/src/Vulkan/Extensions/VK_ANDROID_external_memory_android_hardware_buffer.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 5 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- and @@ -94,7 +97,10 @@ -- - 'AndroidHardwareBufferFormatPropertiesANDROID' -- -- - Extending 'Vulkan.Core10.Image.ImageCreateInfo', --- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.SamplerYcbcrConversionCreateInfo': +-- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.SamplerYcbcrConversionCreateInfo', +-- 'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.AttachmentDescription2', +-- 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo', +-- 'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo': -- -- - 'ExternalFormatANDROID' -- diff --git a/src/Vulkan/Extensions/VK_ARM_rasterization_order_attachment_access.hs b/src/Vulkan/Extensions/VK_ARM_rasterization_order_attachment_access.hs index a7eecf62e..eb37a45d8 100644 --- a/src/Vulkan/Extensions/VK_ARM_rasterization_order_attachment_access.hs +++ b/src/Vulkan/Extensions/VK_ARM_rasterization_order_attachment_access.hs @@ -17,10 +17,13 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- --- [__Deprecation state__] +-- [__Deprecation State__] -- -- - /Promoted/ to @VK_EXT_rasterization_order_attachment_access@ -- extension @@ -58,10 +61,6 @@ -- depth\/stencil, attachments from one fragment to the next, in -- rasterization order, without explicit synchronization. -- --- See --- --- for more information. --- -- == New Structures -- -- - Extending diff --git a/src/Vulkan/Extensions/VK_ARM_shader_core_builtins.hs b/src/Vulkan/Extensions/VK_ARM_shader_core_builtins.hs index 34cfec868..8836ca56f 100644 --- a/src/Vulkan/Extensions/VK_ARM_shader_core_builtins.hs +++ b/src/Vulkan/Extensions/VK_ARM_shader_core_builtins.hs @@ -17,13 +17,16 @@ -- [__Revision__] -- 2 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- -- [__Contact__] -- -- - Kevin Petit --- +-- -- -- == Other Extension Metadata -- diff --git a/src/Vulkan/Extensions/VK_ARM_shader_core_builtins.hs-boot b/src/Vulkan/Extensions/VK_ARM_shader_core_builtins.hs-boot index 5351fc02a..57203cdc3 100644 --- a/src/Vulkan/Extensions/VK_ARM_shader_core_builtins.hs-boot +++ b/src/Vulkan/Extensions/VK_ARM_shader_core_builtins.hs-boot @@ -17,13 +17,16 @@ -- [__Revision__] -- 2 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- -- [__Contact__] -- -- - Kevin Petit --- +-- -- -- == Other Extension Metadata -- diff --git a/src/Vulkan/Extensions/VK_ARM_shader_core_properties.hs b/src/Vulkan/Extensions/VK_ARM_shader_core_properties.hs index c172d9bc6..547a3559b 100644 --- a/src/Vulkan/Extensions/VK_ARM_shader_core_properties.hs +++ b/src/Vulkan/Extensions/VK_ARM_shader_core_properties.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- diff --git a/src/Vulkan/Extensions/VK_ARM_shader_core_properties.hs-boot b/src/Vulkan/Extensions/VK_ARM_shader_core_properties.hs-boot index 57a054902..a4462660f 100644 --- a/src/Vulkan/Extensions/VK_ARM_shader_core_properties.hs-boot +++ b/src/Vulkan/Extensions/VK_ARM_shader_core_properties.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- diff --git a/src/Vulkan/Extensions/VK_EXT_4444_formats.hs b/src/Vulkan/Extensions/VK_EXT_4444_formats.hs index e6e1e8128..4a8589081 100644 --- a/src/Vulkan/Extensions/VK_EXT_4444_formats.hs +++ b/src/Vulkan/Extensions/VK_EXT_4444_formats.hs @@ -17,12 +17,15 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- or -- -- --- [__Deprecation state__] +-- [__Deprecation State__] -- -- - /Promoted/ to -- diff --git a/src/Vulkan/Extensions/VK_EXT_4444_formats.hs-boot b/src/Vulkan/Extensions/VK_EXT_4444_formats.hs-boot index d5372d41b..6a9ad9d90 100644 --- a/src/Vulkan/Extensions/VK_EXT_4444_formats.hs-boot +++ b/src/Vulkan/Extensions/VK_EXT_4444_formats.hs-boot @@ -17,12 +17,15 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- or -- -- --- [__Deprecation state__] +-- [__Deprecation State__] -- -- - /Promoted/ to -- diff --git a/src/Vulkan/Extensions/VK_EXT_acquire_drm_display.hs b/src/Vulkan/Extensions/VK_EXT_acquire_drm_display.hs index 7354e9cd2..e42e0c4ce 100644 --- a/src/Vulkan/Extensions/VK_EXT_acquire_drm_display.hs +++ b/src/Vulkan/Extensions/VK_EXT_acquire_drm_display.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- diff --git a/src/Vulkan/Extensions/VK_EXT_acquire_xlib_display.hs b/src/Vulkan/Extensions/VK_EXT_acquire_xlib_display.hs index cb70828e3..224b75556 100644 --- a/src/Vulkan/Extensions/VK_EXT_acquire_xlib_display.hs +++ b/src/Vulkan/Extensions/VK_EXT_acquire_xlib_display.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- diff --git a/src/Vulkan/Extensions/VK_EXT_acquire_xlib_display.hs-boot b/src/Vulkan/Extensions/VK_EXT_acquire_xlib_display.hs-boot index 96c0cd881..4434e291c 100644 --- a/src/Vulkan/Extensions/VK_EXT_acquire_xlib_display.hs-boot +++ b/src/Vulkan/Extensions/VK_EXT_acquire_xlib_display.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- diff --git a/src/Vulkan/Extensions/VK_EXT_astc_decode_mode.hs b/src/Vulkan/Extensions/VK_EXT_astc_decode_mode.hs index b77f6c8cc..e66ef2967 100644 --- a/src/Vulkan/Extensions/VK_EXT_astc_decode_mode.hs +++ b/src/Vulkan/Extensions/VK_EXT_astc_decode_mode.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- or @@ -116,17 +119,17 @@ -- -- > VkImageViewASTCDecodeModeEXT decodeMode = -- > { --- > VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT, // sType --- > NULL, // pNext --- > VK_FORMAT_R8G8B8A8_UNORM // decode mode +-- > .sType = VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT, +-- > .pNext = NULL, +-- > .decodeMode = VK_FORMAT_R8G8B8A8_UNORM -- > }; -- > -- > VkImageViewCreateInfo createInfo = -- > { --- > VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO, // sType --- > &decodeMode, // pNext +-- > .sType = VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO, +-- > .pNext = &decodeMode, -- > // flags, image, viewType set to application-desired values --- > VK_FORMAT_ASTC_8x8_UNORM_BLOCK, // format +-- > .format = VK_FORMAT_ASTC_8x8_UNORM_BLOCK, -- > // components, subresourceRange set to application-desired values -- > }; -- > diff --git a/src/Vulkan/Extensions/VK_EXT_astc_decode_mode.hs-boot b/src/Vulkan/Extensions/VK_EXT_astc_decode_mode.hs-boot index eaeaa1d7f..3ce40e9c2 100644 --- a/src/Vulkan/Extensions/VK_EXT_astc_decode_mode.hs-boot +++ b/src/Vulkan/Extensions/VK_EXT_astc_decode_mode.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- or @@ -116,17 +119,17 @@ -- -- > VkImageViewASTCDecodeModeEXT decodeMode = -- > { --- > VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT, // sType --- > NULL, // pNext --- > VK_FORMAT_R8G8B8A8_UNORM // decode mode +-- > .sType = VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT, +-- > .pNext = NULL, +-- > .decodeMode = VK_FORMAT_R8G8B8A8_UNORM -- > }; -- > -- > VkImageViewCreateInfo createInfo = -- > { --- > VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO, // sType --- > &decodeMode, // pNext +-- > .sType = VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO, +-- > .pNext = &decodeMode, -- > // flags, image, viewType set to application-desired values --- > VK_FORMAT_ASTC_8x8_UNORM_BLOCK, // format +-- > .format = VK_FORMAT_ASTC_8x8_UNORM_BLOCK, -- > // components, subresourceRange set to application-desired values -- > }; -- > diff --git a/src/Vulkan/Extensions/VK_EXT_attachment_feedback_loop_dynamic_state.hs b/src/Vulkan/Extensions/VK_EXT_attachment_feedback_loop_dynamic_state.hs new file mode 100644 index 000000000..7264488cb --- /dev/null +++ b/src/Vulkan/Extensions/VK_EXT_attachment_feedback_loop_dynamic_state.hs @@ -0,0 +1,337 @@ +{-# language CPP #-} +-- | = Name +-- +-- VK_EXT_attachment_feedback_loop_dynamic_state - device extension +-- +-- == VK_EXT_attachment_feedback_loop_dynamic_state +-- +-- [__Name String__] +-- @VK_EXT_attachment_feedback_loop_dynamic_state@ +-- +-- [__Extension Type__] +-- Device extension +-- +-- [__Registered Extension Number__] +-- 525 +-- +-- [__Revision__] +-- 1 +-- +-- [__Ratification Status__] +-- Ratified +-- +-- [__Extension and Version Dependencies__] +-- +-- and +-- +-- +-- [__Contact__] +-- +-- - Mike Blumenkrantz +-- +-- +-- [__Extension Proposal__] +-- +-- +-- == Other Extension Metadata +-- +-- [__Last Modified Date__] +-- 2023-04-28 +-- +-- [__IP Status__] +-- No known IP claims. +-- +-- [__Contributors__] +-- +-- - Mike Blumenkrantz, Valve +-- +-- - Daniel Story, Nintendo +-- +-- - Stu Smith, AMD +-- +-- - Samuel Pitoiset, Valve +-- +-- - Ricardo Garcia, Igalia +-- +-- == Description +-- +-- This extension adds support for setting attachment feedback loops +-- dynamically on command buffers. +-- +-- == New Commands +-- +-- - 'cmdSetAttachmentFeedbackLoopEnableEXT' +-- +-- == New Structures +-- +-- - Extending +-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2', +-- 'Vulkan.Core10.Device.DeviceCreateInfo': +-- +-- - 'PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT' +-- +-- == New Enum Constants +-- +-- - 'EXT_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_EXTENSION_NAME' +-- +-- - 'EXT_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_SPEC_VERSION' +-- +-- - Extending 'Vulkan.Core10.Enums.DynamicState.DynamicState': +-- +-- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT' +-- +-- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType': +-- +-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_FEATURES_EXT' +-- +-- == Version History +-- +-- - Revision 1, 2023-04-28 (Mike Blumenkrantz) +-- +-- - Initial revision +-- +-- == See Also +-- +-- 'PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT', +-- 'cmdSetAttachmentFeedbackLoopEnableEXT' +-- +-- == Document Notes +-- +-- For more information, see the +-- +-- +-- This page is a generated document. Fixes and changes should be made to +-- the generator scripts, not directly. +module Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state ( cmdSetAttachmentFeedbackLoopEnableEXT + , PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT(..) + , EXT_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_SPEC_VERSION + , pattern EXT_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_SPEC_VERSION + , EXT_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_EXTENSION_NAME + , pattern EXT_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_EXTENSION_NAME + ) where + +import Vulkan.Internal.Utils (traceAroundEvent) +import Control.Monad (unless) +import Control.Monad.IO.Class (liftIO) +import Foreign.Marshal.Alloc (allocaBytes) +import GHC.IO (throwIO) +import GHC.Ptr (nullFunPtr) +import Foreign.Ptr (nullPtr) +import Foreign.Ptr (plusPtr) +import 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.Kind (Type) +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(CommandBuffer)) +import Vulkan.Core10.Handles (CommandBuffer_T) +import Vulkan.Dynamic (DeviceCmds(pVkCmdSetAttachmentFeedbackLoopEnableEXT)) +import Vulkan.Core10.Enums.ImageAspectFlagBits (ImageAspectFlagBits(..)) +import Vulkan.Core10.Enums.ImageAspectFlagBits (ImageAspectFlags) +import Vulkan.Core10.Enums.StructureType (StructureType) +import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_FEATURES_EXT)) +foreign import ccall +#if !defined(SAFE_FOREIGN_CALLS) + unsafe +#endif + "dynamic" mkVkCmdSetAttachmentFeedbackLoopEnableEXT + :: FunPtr (Ptr CommandBuffer_T -> ImageAspectFlags -> IO ()) -> Ptr CommandBuffer_T -> ImageAspectFlags -> IO () + +-- | vkCmdSetAttachmentFeedbackLoopEnableEXT - Specify whether attachment +-- feedback loops are enabled dynamically on a command buffer +-- +-- = Description +-- +-- For attachments that are written to in a render pass, only attachments +-- with the aspects specified in @aspectMask@ /can/ be accessed as +-- non-attachments by subsequent +-- . +-- +-- == Valid Usage +-- +-- - #VUID-vkCmdSetAttachmentFeedbackLoopEnableEXT-attachmentFeedbackLoopDynamicState-08862# +-- The +-- +-- feature /must/ be enabled +-- +-- - #VUID-vkCmdSetAttachmentFeedbackLoopEnableEXT-aspectMask-08863# +-- @aspectMask@ /must/ only include +-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_NONE', +-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT', +-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_DEPTH_BIT', +-- and +-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT' +-- +-- - #VUID-vkCmdSetAttachmentFeedbackLoopEnableEXT-attachmentFeedbackLoopLayout-08864# +-- If the +-- +-- feature is not enabled, @aspectMask@ /must/ be +-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_NONE' +-- +-- == Valid Usage (Implicit) +-- +-- - #VUID-vkCmdSetAttachmentFeedbackLoopEnableEXT-commandBuffer-parameter# +-- @commandBuffer@ /must/ be a valid +-- 'Vulkan.Core10.Handles.CommandBuffer' handle +-- +-- - #VUID-vkCmdSetAttachmentFeedbackLoopEnableEXT-aspectMask-parameter# +-- @aspectMask@ /must/ be a valid combination of +-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.ImageAspectFlagBits' values +-- +-- - #VUID-vkCmdSetAttachmentFeedbackLoopEnableEXT-commandBuffer-recording# +-- @commandBuffer@ /must/ be in the +-- +-- +-- - #VUID-vkCmdSetAttachmentFeedbackLoopEnableEXT-commandBuffer-cmdpool# +-- The 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was +-- allocated from /must/ support graphics operations +-- +-- - #VUID-vkCmdSetAttachmentFeedbackLoopEnableEXT-videocoding# This +-- command /must/ only be called outside of a video coding scope +-- +-- == Host Synchronization +-- +-- - Host access to @commandBuffer@ /must/ be externally synchronized +-- +-- - Host access to the 'Vulkan.Core10.Handles.CommandPool' that +-- @commandBuffer@ was allocated from /must/ be externally synchronized +-- +-- == Command Properties +-- +-- \' +-- +-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ +-- | | | | | | +-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================+ +-- | Primary | Both | Outside | Graphics | State | +-- | Secondary | | | | | +-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ +-- +-- = See Also +-- +-- , +-- 'Vulkan.Core10.Handles.CommandBuffer', +-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.ImageAspectFlags' +cmdSetAttachmentFeedbackLoopEnableEXT :: forall io + . (MonadIO io) + => -- | @commandBuffer@ is the command buffer into which the command will be + -- recorded. + CommandBuffer + -> -- | @aspectMask@ specifies the types of attachments for which feedback loops + -- will be enabled. Attachment types whose aspects are not included in + -- @aspectMask@ will have feedback loops disabled. + ("aspectMask" ::: ImageAspectFlags) + -> io () +cmdSetAttachmentFeedbackLoopEnableEXT commandBuffer aspectMask = liftIO $ do + let vkCmdSetAttachmentFeedbackLoopEnableEXTPtr = pVkCmdSetAttachmentFeedbackLoopEnableEXT (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds) + unless (vkCmdSetAttachmentFeedbackLoopEnableEXTPtr /= nullFunPtr) $ + throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetAttachmentFeedbackLoopEnableEXT is null" Nothing Nothing + let vkCmdSetAttachmentFeedbackLoopEnableEXT' = mkVkCmdSetAttachmentFeedbackLoopEnableEXT vkCmdSetAttachmentFeedbackLoopEnableEXTPtr + traceAroundEvent "vkCmdSetAttachmentFeedbackLoopEnableEXT" (vkCmdSetAttachmentFeedbackLoopEnableEXT' + (commandBufferHandle (commandBuffer)) + (aspectMask)) + pure $ () + + +-- | VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT - +-- Structure describing if dynamic feedback loops can be used +-- +-- = Members +-- +-- This structure describes the following features: +-- +-- = Description +-- +-- If the 'PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT' +-- 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. 'PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT' +-- /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 PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT = PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT + { -- | #features-attachmentFeedbackLoopDynamicState# + -- @attachmentFeedbackLoopDynamicState@ specifies whether dynamic feedback + -- loops are supported. + attachmentFeedbackLoopDynamicState :: Bool } + deriving (Typeable, Eq) +#if defined(GENERIC_INSTANCES) +deriving instance Generic (PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT) +#endif +deriving instance Show PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT + +instance ToCStruct PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT where + withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p) + pokeCStruct p PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT{..} f = do + poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_FEATURES_EXT) + poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr) + poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (attachmentFeedbackLoopDynamicState)) + f + cStructSize = 24 + cStructAlignment = 8 + pokeZeroCStruct p f = do + poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_FEATURES_EXT) + poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr) + poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero)) + f + +instance FromCStruct PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT where + peekCStruct p = do + attachmentFeedbackLoopDynamicState <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32)) + pure $ PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT + (bool32ToBool attachmentFeedbackLoopDynamicState) + +instance Storable PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT where + sizeOf ~_ = 24 + alignment ~_ = 8 + peek = peekCStruct + poke ptr poked = pokeCStruct ptr poked (pure ()) + +instance Zero PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT where + zero = PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT + zero + + +type EXT_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_SPEC_VERSION = 1 + +-- No documentation found for TopLevel "VK_EXT_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_SPEC_VERSION" +pattern EXT_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_SPEC_VERSION :: forall a . Integral a => a +pattern EXT_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_SPEC_VERSION = 1 + + +type EXT_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_EXTENSION_NAME = "VK_EXT_attachment_feedback_loop_dynamic_state" + +-- No documentation found for TopLevel "VK_EXT_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_EXTENSION_NAME" +pattern EXT_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a +pattern EXT_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_EXTENSION_NAME = "VK_EXT_attachment_feedback_loop_dynamic_state" + diff --git a/src/Vulkan/Extensions/VK_EXT_attachment_feedback_loop_dynamic_state.hs-boot b/src/Vulkan/Extensions/VK_EXT_attachment_feedback_loop_dynamic_state.hs-boot new file mode 100644 index 000000000..36cde53a3 --- /dev/null +++ b/src/Vulkan/Extensions/VK_EXT_attachment_feedback_loop_dynamic_state.hs-boot @@ -0,0 +1,117 @@ +{-# language CPP #-} +-- | = Name +-- +-- VK_EXT_attachment_feedback_loop_dynamic_state - device extension +-- +-- == VK_EXT_attachment_feedback_loop_dynamic_state +-- +-- [__Name String__] +-- @VK_EXT_attachment_feedback_loop_dynamic_state@ +-- +-- [__Extension Type__] +-- Device extension +-- +-- [__Registered Extension Number__] +-- 525 +-- +-- [__Revision__] +-- 1 +-- +-- [__Ratification Status__] +-- Ratified +-- +-- [__Extension and Version Dependencies__] +-- +-- and +-- +-- +-- [__Contact__] +-- +-- - Mike Blumenkrantz +-- +-- +-- [__Extension Proposal__] +-- +-- +-- == Other Extension Metadata +-- +-- [__Last Modified Date__] +-- 2023-04-28 +-- +-- [__IP Status__] +-- No known IP claims. +-- +-- [__Contributors__] +-- +-- - Mike Blumenkrantz, Valve +-- +-- - Daniel Story, Nintendo +-- +-- - Stu Smith, AMD +-- +-- - Samuel Pitoiset, Valve +-- +-- - Ricardo Garcia, Igalia +-- +-- == Description +-- +-- This extension adds support for setting attachment feedback loops +-- dynamically on command buffers. +-- +-- == New Commands +-- +-- - 'cmdSetAttachmentFeedbackLoopEnableEXT' +-- +-- == New Structures +-- +-- - Extending +-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2', +-- 'Vulkan.Core10.Device.DeviceCreateInfo': +-- +-- - 'PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT' +-- +-- == New Enum Constants +-- +-- - 'EXT_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_EXTENSION_NAME' +-- +-- - 'EXT_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_SPEC_VERSION' +-- +-- - Extending 'Vulkan.Core10.Enums.DynamicState.DynamicState': +-- +-- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT' +-- +-- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType': +-- +-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_FEATURES_EXT' +-- +-- == Version History +-- +-- - Revision 1, 2023-04-28 (Mike Blumenkrantz) +-- +-- - Initial revision +-- +-- == See Also +-- +-- 'PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT', +-- 'cmdSetAttachmentFeedbackLoopEnableEXT' +-- +-- == Document Notes +-- +-- For more information, see the +-- +-- +-- This page is a generated document. Fixes and changes should be made to +-- the generator scripts, not directly. +module Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state (PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT) where + +import Vulkan.CStruct (FromCStruct) +import Vulkan.CStruct (ToCStruct) +import Data.Kind (Type) + +data PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT + +instance ToCStruct PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT +instance Show PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT + +instance FromCStruct PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT + diff --git a/src/Vulkan/Extensions/VK_EXT_attachment_feedback_loop_layout.hs b/src/Vulkan/Extensions/VK_EXT_attachment_feedback_loop_layout.hs index c8817be1a..818a96546 100644 --- a/src/Vulkan/Extensions/VK_EXT_attachment_feedback_loop_layout.hs +++ b/src/Vulkan/Extensions/VK_EXT_attachment_feedback_loop_layout.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 2 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- diff --git a/src/Vulkan/Extensions/VK_EXT_attachment_feedback_loop_layout.hs-boot b/src/Vulkan/Extensions/VK_EXT_attachment_feedback_loop_layout.hs-boot index b35a6f626..24f771c23 100644 --- a/src/Vulkan/Extensions/VK_EXT_attachment_feedback_loop_layout.hs-boot +++ b/src/Vulkan/Extensions/VK_EXT_attachment_feedback_loop_layout.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 2 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- diff --git a/src/Vulkan/Extensions/VK_EXT_blend_operation_advanced.hs b/src/Vulkan/Extensions/VK_EXT_blend_operation_advanced.hs index 9f99811ae..64535a87e 100644 --- a/src/Vulkan/Extensions/VK_EXT_blend_operation_advanced.hs +++ b/src/Vulkan/Extensions/VK_EXT_blend_operation_advanced.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 2 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- or diff --git a/src/Vulkan/Extensions/VK_EXT_blend_operation_advanced.hs-boot b/src/Vulkan/Extensions/VK_EXT_blend_operation_advanced.hs-boot index 090a9c1fd..ae82b492a 100644 --- a/src/Vulkan/Extensions/VK_EXT_blend_operation_advanced.hs-boot +++ b/src/Vulkan/Extensions/VK_EXT_blend_operation_advanced.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 2 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- or diff --git a/src/Vulkan/Extensions/VK_EXT_border_color_swizzle.hs b/src/Vulkan/Extensions/VK_EXT_border_color_swizzle.hs index 516e7db6b..f3ba7a00b 100644 --- a/src/Vulkan/Extensions/VK_EXT_border_color_swizzle.hs +++ b/src/Vulkan/Extensions/VK_EXT_border_color_swizzle.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- diff --git a/src/Vulkan/Extensions/VK_EXT_border_color_swizzle.hs-boot b/src/Vulkan/Extensions/VK_EXT_border_color_swizzle.hs-boot index f353cb054..e76c4bb71 100644 --- a/src/Vulkan/Extensions/VK_EXT_border_color_swizzle.hs-boot +++ b/src/Vulkan/Extensions/VK_EXT_border_color_swizzle.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- diff --git a/src/Vulkan/Extensions/VK_EXT_buffer_device_address.hs b/src/Vulkan/Extensions/VK_EXT_buffer_device_address.hs index 9edba6916..79a379340 100644 --- a/src/Vulkan/Extensions/VK_EXT_buffer_device_address.hs +++ b/src/Vulkan/Extensions/VK_EXT_buffer_device_address.hs @@ -17,10 +17,13 @@ -- [__Revision__] -- 2 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- --- [__Deprecation state__] +-- [__Deprecation State__] -- -- - /Deprecated/ by @VK_KHR_buffer_device_address@ extension -- diff --git a/src/Vulkan/Extensions/VK_EXT_buffer_device_address.hs-boot b/src/Vulkan/Extensions/VK_EXT_buffer_device_address.hs-boot index 3c097947d..b86c93ddf 100644 --- a/src/Vulkan/Extensions/VK_EXT_buffer_device_address.hs-boot +++ b/src/Vulkan/Extensions/VK_EXT_buffer_device_address.hs-boot @@ -17,10 +17,13 @@ -- [__Revision__] -- 2 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- --- [__Deprecation state__] +-- [__Deprecation State__] -- -- - /Deprecated/ by @VK_KHR_buffer_device_address@ extension -- diff --git a/src/Vulkan/Extensions/VK_EXT_calibrated_timestamps.hs b/src/Vulkan/Extensions/VK_EXT_calibrated_timestamps.hs index f1883f08a..6695af1f9 100644 --- a/src/Vulkan/Extensions/VK_EXT_calibrated_timestamps.hs +++ b/src/Vulkan/Extensions/VK_EXT_calibrated_timestamps.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 2 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- or @@ -27,6 +30,9 @@ -- - Daniel Rakos -- -- +-- [__Extension Proposal__] +-- +-- -- == Other Extension Metadata -- -- [__Last Modified Date__] @@ -78,80 +84,6 @@ -- -- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT' -- --- == Issues --- --- 1) Is the device timestamp value returned in the same time domain as the --- timestamp values written by --- 'Vulkan.Core10.CommandBufferBuilding.cmdWriteTimestamp'? --- --- __RESOLVED__: Yes. --- --- 2) What time domain is the host timestamp returned in? --- --- __RESOLVED__: A query is provided to determine the calibrateable time --- domains. The expected host time domain used on Windows is that of --- QueryPerformanceCounter, and on Linux that of CLOCK_MONOTONIC. --- --- 3) Should we support other time domain combinations than just one host --- and the device time domain? --- --- __RESOLVED__: Supporting that would need the application to query the --- set of supported time domains, while supporting only one host and the --- device time domain would only need a query for the host time domain --- type. The proposed API chooses the general approach for the sake of --- extensibility. --- --- 4) Should we use CLOCK_MONOTONIC_RAW instead of CLOCK_MONOTONIC? --- --- __RESOLVED__: CLOCK_MONOTONIC is usable in a wider set of situations, --- however, it is subject to NTP adjustments so some use cases may prefer --- CLOCK_MONOTONIC_RAW. Thus this extension allows both to be exposed. --- --- 5) How can the application extrapolate future device timestamp values --- from the calibrated timestamp value? --- --- __RESOLVED__: --- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@timestampPeriod@ --- makes it possible to calculate future device timestamps as follows: --- --- > futureTimestamp = calibratedTimestamp + deltaNanoseconds / timestampPeriod --- --- 6) In what queue are timestamp values in time domain --- 'TIME_DOMAIN_DEVICE_EXT' captured by 'getCalibratedTimestampsEXT'? --- --- __RESOLVED__: An implementation supporting this extension will have all --- its VkQueue share the same time domain. --- --- 6) Can the host and device timestamp values drift apart over longer --- periods of time? --- --- __RESOLVED__: Yes, especially as some time domains by definition allow --- for that to happen (e.g. CLOCK_MONOTONIC is subject to NTP adjustments). --- Thus it is recommended that applications re-calibrate from time to time. --- --- 7) Should we add a query for reporting the maximum deviation of the --- timestamp values returned by calibrated timestamp queries? --- --- __RESOLVED__: A global query seems inappropriate and difficult to --- enforce. However, it is possible to return the maximum deviation any --- single calibrated timestamp query can have by sampling one of the time --- domains twice as follows: --- --- > timestampX = timestampX_before = SampleTimeDomain(X) --- > for each time domain Y != X --- > timestampY = SampleTimeDomain(Y) --- > timestampX_after = SampleTimeDomain(X) --- > maxDeviation = timestampX_after - timestampX_before --- --- 8) Can the maximum deviation reported ever be zero? --- --- __RESOLVED__: Unless the tick of each clock corresponding to the set of --- time domains coincides and all clocks can literally be sampled --- simultaneously, there is not really a possibility for the maximum --- deviation to be zero, so by convention the maximum deviation is always --- at least the maximum of the length of the ticks of the set of time --- domains calibrated and thus can never be zero. --- -- == Version History -- -- - Revision 2, 2021-03-16 (Lionel Landwerlin) @@ -368,6 +300,31 @@ foreign import ccall -- enough to fit any particular purpose, so applications are expected to -- re-calibrate the timestamps on a regular basis. -- +-- == Valid Usage +-- +-- - #VUID-vkGetCalibratedTimestampsEXT-timeDomain-09246# The +-- @timeDomain@ value of each 'CalibratedTimestampInfoEXT' in +-- @pTimestampInfos@ /must/ be unique +-- +-- == Valid Usage (Implicit) +-- +-- - #VUID-vkGetCalibratedTimestampsEXT-device-parameter# @device@ /must/ +-- be a valid 'Vulkan.Core10.Handles.Device' handle +-- +-- - #VUID-vkGetCalibratedTimestampsEXT-pTimestampInfos-parameter# +-- @pTimestampInfos@ /must/ be a valid pointer to an array of +-- @timestampCount@ valid 'CalibratedTimestampInfoEXT' structures +-- +-- - #VUID-vkGetCalibratedTimestampsEXT-pTimestamps-parameter# +-- @pTimestamps@ /must/ be a valid pointer to an array of +-- @timestampCount@ @uint64_t@ values +-- +-- - #VUID-vkGetCalibratedTimestampsEXT-pMaxDeviation-parameter# +-- @pMaxDeviation@ /must/ be a valid pointer to a @uint64_t@ value +-- +-- - #VUID-vkGetCalibratedTimestampsEXT-timestampCount-arraylength# +-- @timestampCount@ /must/ be greater than @0@ +-- -- == Return Codes -- -- [] @@ -387,17 +344,10 @@ foreign import ccall getCalibratedTimestampsEXT :: forall io . (MonadIO io) => -- | @device@ is the logical device used to perform the query. - -- - -- #VUID-vkGetCalibratedTimestampsEXT-device-parameter# @device@ /must/ be - -- a valid 'Vulkan.Core10.Handles.Device' handle Device -> -- | @pTimestampInfos@ is a pointer to an array of @timestampCount@ -- 'CalibratedTimestampInfoEXT' structures, describing the time domains the -- calibrated timestamps should be captured from. - -- - -- #VUID-vkGetCalibratedTimestampsEXT-pTimestampInfos-parameter# - -- @pTimestampInfos@ /must/ be a valid pointer to an array of - -- @timestampCount@ valid 'CalibratedTimestampInfoEXT' structures ("timestampInfos" ::: Vector CalibratedTimestampInfoEXT) -> io (("timestamps" ::: Vector Word64), ("maxDeviation" ::: Word64)) getCalibratedTimestampsEXT device timestampInfos = liftIO . evalContT $ do diff --git a/src/Vulkan/Extensions/VK_EXT_calibrated_timestamps.hs-boot b/src/Vulkan/Extensions/VK_EXT_calibrated_timestamps.hs-boot index 8b5fb39df..8e7b56a4e 100644 --- a/src/Vulkan/Extensions/VK_EXT_calibrated_timestamps.hs-boot +++ b/src/Vulkan/Extensions/VK_EXT_calibrated_timestamps.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 2 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- or @@ -27,6 +30,9 @@ -- - Daniel Rakos -- -- +-- [__Extension Proposal__] +-- +-- -- == Other Extension Metadata -- -- [__Last Modified Date__] @@ -78,80 +84,6 @@ -- -- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT' -- --- == Issues --- --- 1) Is the device timestamp value returned in the same time domain as the --- timestamp values written by --- 'Vulkan.Core10.CommandBufferBuilding.cmdWriteTimestamp'? --- --- __RESOLVED__: Yes. --- --- 2) What time domain is the host timestamp returned in? --- --- __RESOLVED__: A query is provided to determine the calibrateable time --- domains. The expected host time domain used on Windows is that of --- QueryPerformanceCounter, and on Linux that of CLOCK_MONOTONIC. --- --- 3) Should we support other time domain combinations than just one host --- and the device time domain? --- --- __RESOLVED__: Supporting that would need the application to query the --- set of supported time domains, while supporting only one host and the --- device time domain would only need a query for the host time domain --- type. The proposed API chooses the general approach for the sake of --- extensibility. --- --- 4) Should we use CLOCK_MONOTONIC_RAW instead of CLOCK_MONOTONIC? --- --- __RESOLVED__: CLOCK_MONOTONIC is usable in a wider set of situations, --- however, it is subject to NTP adjustments so some use cases may prefer --- CLOCK_MONOTONIC_RAW. Thus this extension allows both to be exposed. --- --- 5) How can the application extrapolate future device timestamp values --- from the calibrated timestamp value? --- --- __RESOLVED__: --- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@timestampPeriod@ --- makes it possible to calculate future device timestamps as follows: --- --- > futureTimestamp = calibratedTimestamp + deltaNanoseconds / timestampPeriod --- --- 6) In what queue are timestamp values in time domain --- 'TIME_DOMAIN_DEVICE_EXT' captured by 'getCalibratedTimestampsEXT'? --- --- __RESOLVED__: An implementation supporting this extension will have all --- its VkQueue share the same time domain. --- --- 6) Can the host and device timestamp values drift apart over longer --- periods of time? --- --- __RESOLVED__: Yes, especially as some time domains by definition allow --- for that to happen (e.g. CLOCK_MONOTONIC is subject to NTP adjustments). --- Thus it is recommended that applications re-calibrate from time to time. --- --- 7) Should we add a query for reporting the maximum deviation of the --- timestamp values returned by calibrated timestamp queries? --- --- __RESOLVED__: A global query seems inappropriate and difficult to --- enforce. However, it is possible to return the maximum deviation any --- single calibrated timestamp query can have by sampling one of the time --- domains twice as follows: --- --- > timestampX = timestampX_before = SampleTimeDomain(X) --- > for each time domain Y != X --- > timestampY = SampleTimeDomain(Y) --- > timestampX_after = SampleTimeDomain(X) --- > maxDeviation = timestampX_after - timestampX_before --- --- 8) Can the maximum deviation reported ever be zero? --- --- __RESOLVED__: Unless the tick of each clock corresponding to the set of --- time domains coincides and all clocks can literally be sampled --- simultaneously, there is not really a possibility for the maximum --- deviation to be zero, so by convention the maximum deviation is always --- at least the maximum of the length of the ticks of the set of time --- domains calibrated and thus can never be zero. --- -- == Version History -- -- - Revision 2, 2021-03-16 (Lionel Landwerlin) diff --git a/src/Vulkan/Extensions/VK_EXT_color_write_enable.hs b/src/Vulkan/Extensions/VK_EXT_color_write_enable.hs index f43b1df72..2cfda99c7 100644 --- a/src/Vulkan/Extensions/VK_EXT_color_write_enable.hs +++ b/src/Vulkan/Extensions/VK_EXT_color_write_enable.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- or @@ -385,6 +388,7 @@ instance Zero PhysicalDeviceColorWriteEnableFeaturesEXT where -- -- - #VUID-VkPipelineColorWriteCreateInfoEXT-attachmentCount-07608# If -- the pipeline is being created with +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT', -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT', -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT', -- or diff --git a/src/Vulkan/Extensions/VK_EXT_color_write_enable.hs-boot b/src/Vulkan/Extensions/VK_EXT_color_write_enable.hs-boot index a47a837a3..4c2493b17 100644 --- a/src/Vulkan/Extensions/VK_EXT_color_write_enable.hs-boot +++ b/src/Vulkan/Extensions/VK_EXT_color_write_enable.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- or diff --git a/src/Vulkan/Extensions/VK_EXT_conditional_rendering.hs b/src/Vulkan/Extensions/VK_EXT_conditional_rendering.hs index 2deaab7e1..7934d4ec5 100644 --- a/src/Vulkan/Extensions/VK_EXT_conditional_rendering.hs +++ b/src/Vulkan/Extensions/VK_EXT_conditional_rendering.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 2 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- diff --git a/src/Vulkan/Extensions/VK_EXT_conditional_rendering.hs-boot b/src/Vulkan/Extensions/VK_EXT_conditional_rendering.hs-boot index 0049b8223..407c171bc 100644 --- a/src/Vulkan/Extensions/VK_EXT_conditional_rendering.hs-boot +++ b/src/Vulkan/Extensions/VK_EXT_conditional_rendering.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 2 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- diff --git a/src/Vulkan/Extensions/VK_EXT_conservative_rasterization.hs b/src/Vulkan/Extensions/VK_EXT_conservative_rasterization.hs index b3f70bbb1..bb5e6ab41 100644 --- a/src/Vulkan/Extensions/VK_EXT_conservative_rasterization.hs +++ b/src/Vulkan/Extensions/VK_EXT_conservative_rasterization.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- or diff --git a/src/Vulkan/Extensions/VK_EXT_conservative_rasterization.hs-boot b/src/Vulkan/Extensions/VK_EXT_conservative_rasterization.hs-boot index 6b36baf2a..5393ec510 100644 --- a/src/Vulkan/Extensions/VK_EXT_conservative_rasterization.hs-boot +++ b/src/Vulkan/Extensions/VK_EXT_conservative_rasterization.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- or diff --git a/src/Vulkan/Extensions/VK_EXT_custom_border_color.hs b/src/Vulkan/Extensions/VK_EXT_custom_border_color.hs index 42ab4975f..cca259c05 100644 --- a/src/Vulkan/Extensions/VK_EXT_custom_border_color.hs +++ b/src/Vulkan/Extensions/VK_EXT_custom_border_color.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 12 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- or @@ -298,14 +301,23 @@ import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_SAMPLER_C -- Note -- -- If @format@ is a depth\/stencil format, the aspect is determined by the --- value of 'Vulkan.Core10.Sampler.SamplerCreateInfo'::@pname@:borderColor. --- If 'Vulkan.Core10.Sampler.SamplerCreateInfo'::@pname@:borderColor is +-- value of 'Vulkan.Core10.Sampler.SamplerCreateInfo'::@borderColor@. If +-- 'Vulkan.Core10.Sampler.SamplerCreateInfo'::@borderColor@ is -- 'Vulkan.Core10.Enums.BorderColor.BORDER_COLOR_FLOAT_CUSTOM_EXT', the -- depth aspect is considered. If --- 'Vulkan.Core10.Sampler.SamplerCreateInfo'::@pname@:borderColor is +-- 'Vulkan.Core10.Sampler.SamplerCreateInfo'::@borderColor@ is -- 'Vulkan.Core10.Enums.BorderColor.BORDER_COLOR_INT_CUSTOM_EXT', the -- stencil aspect is considered. -- +-- If @format@ is 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED', the +-- 'Vulkan.Core10.Sampler.SamplerCreateInfo'::@borderColor@ is +-- 'Vulkan.Core10.Enums.BorderColor.BORDER_COLOR_INT_CUSTOM_EXT', and the +-- sampler is used with an image with a stencil format, then the +-- implementation /must/ source the custom border color from either the +-- first or second components of +-- 'Vulkan.Core10.Sampler.SamplerCreateInfo'::@customBorderColor@ and +-- /should/ source it from the first component. +-- -- == Valid Usage -- -- - #VUID-VkSamplerCustomBorderColorCreateInfoEXT-format-07605# If @@ -313,7 +325,7 @@ import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_SAMPLER_C -- @format@ is not a depth\/stencil format then the -- 'Vulkan.Core10.Sampler.SamplerCreateInfo'::@borderColor@ type /must/ -- match the sampled type of the provided @format@, as shown in the --- /SPIR-V Sampled Type/ column of the +-- /SPIR-V Type/ column of the -- -- table -- @@ -325,7 +337,8 @@ import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_SAMPLER_C -- - #VUID-VkSamplerCustomBorderColorCreateInfoEXT-format-04015# If the -- sampler is used to sample an image view of -- 'Vulkan.Core10.Enums.Format.FORMAT_B4G4R4A4_UNORM_PACK16', --- 'Vulkan.Core10.Enums.Format.FORMAT_B5G6R5_UNORM_PACK16', or +-- 'Vulkan.Core10.Enums.Format.FORMAT_B5G6R5_UNORM_PACK16', +-- 'Vulkan.Core10.Enums.Format.FORMAT_A1B5G5R5_UNORM_PACK16_KHR', or -- 'Vulkan.Core10.Enums.Format.FORMAT_B5G5R5A1_UNORM_PACK16' format -- then @format@ /must/ not be -- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' diff --git a/src/Vulkan/Extensions/VK_EXT_custom_border_color.hs-boot b/src/Vulkan/Extensions/VK_EXT_custom_border_color.hs-boot index 1bb7a7581..38733f34e 100644 --- a/src/Vulkan/Extensions/VK_EXT_custom_border_color.hs-boot +++ b/src/Vulkan/Extensions/VK_EXT_custom_border_color.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 12 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- or diff --git a/src/Vulkan/Extensions/VK_EXT_debug_marker.hs b/src/Vulkan/Extensions/VK_EXT_debug_marker.hs index d292ba0eb..32f81410f 100644 --- a/src/Vulkan/Extensions/VK_EXT_debug_marker.hs +++ b/src/Vulkan/Extensions/VK_EXT_debug_marker.hs @@ -17,10 +17,13 @@ -- [__Revision__] -- 4 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- --- [__Deprecation state__] +-- [__Deprecation State__] -- -- - /Promoted/ to @VK_EXT_debug_utils@ extension -- @@ -114,11 +117,11 @@ -- > // Set a name on the image -- > const VkDebugMarkerObjectNameInfoEXT imageNameInfo = -- > { --- > VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT, // sType --- > NULL, // pNext --- > VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT, // objectType --- > (uint64_t)image, // object --- > "Brick Diffuse Texture", // pObjectName +-- > .sType = VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT, +-- > .pNext = NULL, +-- > .objectType = VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT, +-- > .object = (uint64_t)image, +-- > .pObjectName = "Brick Diffuse Texture", -- > }; -- > -- > pfnDebugMarkerSetObjectNameEXT(device, &imageNameInfo); @@ -144,10 +147,10 @@ -- > // Describe the area being rendered -- > const VkDebugMarkerMarkerInfoEXT houseMarker = -- > { --- > VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT, // sType --- > NULL, // pNext --- > "Brick House", // pMarkerName --- > { 1.0f, 0.0f, 0.0f, 1.0f }, // color +-- > .sType = VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT, +-- > .pNext = NULL, +-- > .pMarkerName = "Brick House", +-- > .color = { 1.0f, 0.0f, 0.0f, 1.0f }, -- > }; -- > -- > // Start an annotated group of calls under the 'Brick House' name @@ -156,10 +159,10 @@ -- > // A mutable structure for each part being rendered -- > VkDebugMarkerMarkerInfoEXT housePartMarker = -- > { --- > VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT, // sType --- > NULL, // pNext --- > NULL, // pMarkerName --- > { 0.0f, 0.0f, 0.0f, 0.0f }, // color +-- > .sType = VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT, +-- > .pNext = NULL, +-- > .pMarkerName = NULL, +-- > .color = { 0.0f, 0.0f, 0.0f, 0.0f }, -- > }; -- > -- > // Set the name and insert the marker diff --git a/src/Vulkan/Extensions/VK_EXT_debug_marker.hs-boot b/src/Vulkan/Extensions/VK_EXT_debug_marker.hs-boot index 11d8d7769..83670a7d0 100644 --- a/src/Vulkan/Extensions/VK_EXT_debug_marker.hs-boot +++ b/src/Vulkan/Extensions/VK_EXT_debug_marker.hs-boot @@ -17,10 +17,13 @@ -- [__Revision__] -- 4 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- --- [__Deprecation state__] +-- [__Deprecation State__] -- -- - /Promoted/ to @VK_EXT_debug_utils@ extension -- @@ -114,11 +117,11 @@ -- > // Set a name on the image -- > const VkDebugMarkerObjectNameInfoEXT imageNameInfo = -- > { --- > VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT, // sType --- > NULL, // pNext --- > VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT, // objectType --- > (uint64_t)image, // object --- > "Brick Diffuse Texture", // pObjectName +-- > .sType = VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT, +-- > .pNext = NULL, +-- > .objectType = VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT, +-- > .object = (uint64_t)image, +-- > .pObjectName = "Brick Diffuse Texture", -- > }; -- > -- > pfnDebugMarkerSetObjectNameEXT(device, &imageNameInfo); @@ -144,10 +147,10 @@ -- > // Describe the area being rendered -- > const VkDebugMarkerMarkerInfoEXT houseMarker = -- > { --- > VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT, // sType --- > NULL, // pNext --- > "Brick House", // pMarkerName --- > { 1.0f, 0.0f, 0.0f, 1.0f }, // color +-- > .sType = VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT, +-- > .pNext = NULL, +-- > .pMarkerName = "Brick House", +-- > .color = { 1.0f, 0.0f, 0.0f, 1.0f }, -- > }; -- > -- > // Start an annotated group of calls under the 'Brick House' name @@ -156,10 +159,10 @@ -- > // A mutable structure for each part being rendered -- > VkDebugMarkerMarkerInfoEXT housePartMarker = -- > { --- > VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT, // sType --- > NULL, // pNext --- > NULL, // pMarkerName --- > { 0.0f, 0.0f, 0.0f, 0.0f }, // color +-- > .sType = VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT, +-- > .pNext = NULL, +-- > .pMarkerName = NULL, +-- > .color = { 0.0f, 0.0f, 0.0f, 0.0f }, -- > }; -- > -- > // Set the name and insert the marker diff --git a/src/Vulkan/Extensions/VK_EXT_debug_report.hs b/src/Vulkan/Extensions/VK_EXT_debug_report.hs index 824814c31..24e8f90da 100644 --- a/src/Vulkan/Extensions/VK_EXT_debug_report.hs +++ b/src/Vulkan/Extensions/VK_EXT_debug_report.hs @@ -17,7 +17,10 @@ -- [__Revision__] -- 10 -- --- [__Extension and Version Dependencies__; __Deprecation state__] +-- [__Ratification Status__] +-- Not ratified +-- +-- [__Extension and Version Dependencies__; __Deprecation State__] -- -- - /Deprecated/ by @VK_EXT_debug_utils@ extension -- @@ -144,12 +147,12 @@ -- > VkDebugReportCallbackEXT cb1, cb2, cb3; -- > -- > VkDebugReportCallbackCreateInfoEXT callback1 = { --- > VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT, // sType --- > NULL, // pNext --- > VK_DEBUG_REPORT_ERROR_BIT_EXT | // flags --- > VK_DEBUG_REPORT_WARNING_BIT_EXT, --- > myOutputDebugString, // pfnCallback --- > NULL // pUserData +-- > .sType = VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT, +-- > .pNext = NULL, +-- > .flags = VK_DEBUG_REPORT_ERROR_BIT_EXT | +-- > VK_DEBUG_REPORT_WARNING_BIT_EXT, +-- > .pfnCallback = myOutputDebugString, +-- > .pUserData = NULL -- > }; -- > res = vkCreateDebugReportCallbackEXT(instance, &callback1, &cb1); -- > if (res != VK_SUCCESS) @@ -163,11 +166,11 @@ -- > /* Do error handling for VK_ERROR_OUT_OF_MEMORY */ -- > -- > VkDebugReportCallbackCreateInfoEXT callback3 = { --- > VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT, // sType --- > NULL, // pNext --- > VK_DEBUG_REPORT_WARNING_BIT_EXT, // flags --- > mystdOutLogger, // pfnCallback --- > NULL // pUserData +-- > .sType = VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT, +-- > .pNext = NULL, +-- > .flags = VK_DEBUG_REPORT_WARNING_BIT_EXT, +-- > .pfnCallback = mystdOutLogger, +-- > .pUserData = NULL -- > }; -- > res = vkCreateDebugReportCallbackEXT(instance, &callback3, &cb3); -- > if (res != VK_SUCCESS) diff --git a/src/Vulkan/Extensions/VK_EXT_debug_report.hs-boot b/src/Vulkan/Extensions/VK_EXT_debug_report.hs-boot index 753060031..699cbeb0f 100644 --- a/src/Vulkan/Extensions/VK_EXT_debug_report.hs-boot +++ b/src/Vulkan/Extensions/VK_EXT_debug_report.hs-boot @@ -17,7 +17,10 @@ -- [__Revision__] -- 10 -- --- [__Extension and Version Dependencies__; __Deprecation state__] +-- [__Ratification Status__] +-- Not ratified +-- +-- [__Extension and Version Dependencies__; __Deprecation State__] -- -- - /Deprecated/ by @VK_EXT_debug_utils@ extension -- @@ -144,12 +147,12 @@ -- > VkDebugReportCallbackEXT cb1, cb2, cb3; -- > -- > VkDebugReportCallbackCreateInfoEXT callback1 = { --- > VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT, // sType --- > NULL, // pNext --- > VK_DEBUG_REPORT_ERROR_BIT_EXT | // flags --- > VK_DEBUG_REPORT_WARNING_BIT_EXT, --- > myOutputDebugString, // pfnCallback --- > NULL // pUserData +-- > .sType = VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT, +-- > .pNext = NULL, +-- > .flags = VK_DEBUG_REPORT_ERROR_BIT_EXT | +-- > VK_DEBUG_REPORT_WARNING_BIT_EXT, +-- > .pfnCallback = myOutputDebugString, +-- > .pUserData = NULL -- > }; -- > res = vkCreateDebugReportCallbackEXT(instance, &callback1, &cb1); -- > if (res != VK_SUCCESS) @@ -163,11 +166,11 @@ -- > /* Do error handling for VK_ERROR_OUT_OF_MEMORY */ -- > -- > VkDebugReportCallbackCreateInfoEXT callback3 = { --- > VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT, // sType --- > NULL, // pNext --- > VK_DEBUG_REPORT_WARNING_BIT_EXT, // flags --- > mystdOutLogger, // pfnCallback --- > NULL // pUserData +-- > .sType = VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT, +-- > .pNext = NULL, +-- > .flags = VK_DEBUG_REPORT_WARNING_BIT_EXT, +-- > .pfnCallback = mystdOutLogger, +-- > .pUserData = NULL -- > }; -- > res = vkCreateDebugReportCallbackEXT(instance, &callback3, &cb3); -- > if (res != VK_SUCCESS) diff --git a/src/Vulkan/Extensions/VK_EXT_debug_utils.hs b/src/Vulkan/Extensions/VK_EXT_debug_utils.hs index cc11dc016..3187fe5fb 100644 --- a/src/Vulkan/Extensions/VK_EXT_debug_utils.hs +++ b/src/Vulkan/Extensions/VK_EXT_debug_utils.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 2 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__; __Special Use__] -- -- - @@ -230,15 +233,15 @@ -- > PFN_vkDestroyDebugUtilsMessengerEXT pfnDestroyDebugUtilsMessengerEXT = (PFN_vkDestroyDebugUtilsMessengerEXT)vkGetInstanceProcAddr(instance, "vkDestroyDebugUtilsMessengerEXT"); -- > -- > VkDebugUtilsMessengerCreateInfoEXT callback1 = { --- > VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT, // sType --- > NULL, // pNext --- > 0, // flags --- > VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT | // messageSeverity --- > VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT, --- > VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT | // messageType --- > VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT, --- > myOutputDebugString, // pfnUserCallback --- > NULL // pUserData +-- > .sType = VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT, +-- > .pNext = NULL, +-- > .flags = 0, +-- > .messageSeverity = VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT | +-- > VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT, +-- > .messageType= VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT | +-- > VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT, +-- > .pfnUserCallback = myOutputDebugString, +-- > .pUserData = NULL -- > }; -- > res = pfnCreateDebugUtilsMessengerEXT(instance, &callback1, NULL, &cb1); -- > if (res != VK_SUCCESS) { @@ -254,14 +257,14 @@ -- > } -- > -- > VkDebugUtilsMessengerCreateInfoEXT callback3 = { --- > VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT, // sType --- > NULL, // pNext --- > 0, // flags --- > VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT, // messageSeverity --- > VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT | // messageType --- > VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT, --- > mystdOutLogger, // pfnUserCallback --- > NULL // pUserData +-- > .sType = VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT, +-- > .pNext = NULL, +-- > .flags = 0, +-- > .messageSeverity = VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT, +-- > .messageType = VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT | +-- > VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT, +-- > .pfnUserCallback = mystdOutLogger, +-- > .pUserData = NULL -- > }; -- > res = pfnCreateDebugUtilsMessengerEXT(instance, &callback3, NULL, &cb3); -- > if (res != VK_SUCCESS) { @@ -291,11 +294,11 @@ -- > // Set a name on the image -- > const VkDebugUtilsObjectNameInfoEXT imageNameInfo = -- > { --- > VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT, // sType --- > NULL, // pNext --- > VK_OBJECT_TYPE_IMAGE, // objectType --- > (uint64_t)image, // objectHandle --- > "Brick Diffuse Texture", // pObjectName +-- > .sType = VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT, +-- > .pNext = NULL, +-- > .objectType = VK_OBJECT_TYPE_IMAGE, +-- > .objectHandle = (uint64_t)image, +-- > .pObjectName = "Brick Diffuse Texture", -- > }; -- > -- > pfnSetDebugUtilsObjectNameEXT(device, &imageNameInfo); @@ -323,10 +326,10 @@ -- > // Describe the area being rendered -- > const VkDebugUtilsLabelEXT houseLabel = -- > { --- > VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT, // sType --- > NULL, // pNext --- > "Brick House", // pLabelName --- > { 1.0f, 0.0f, 0.0f, 1.0f }, // color +-- > .sType = VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT, +-- > .pNext = NULL, +-- > .pLabelName = "Brick House", +-- > .color = { 1.0f, 0.0f, 0.0f, 1.0f }, -- > }; -- > -- > // Start an annotated group of calls under the 'Brick House' name @@ -335,10 +338,10 @@ -- > // A mutable structure for each part being rendered -- > VkDebugUtilsLabelEXT housePartLabel = -- > { --- > VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT, // sType --- > NULL, // pNext --- > NULL, // pLabelName --- > { 0.0f, 0.0f, 0.0f, 0.0f }, // color +-- > .sType = VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT, +-- > .pNext = NULL, +-- > .pLabelName = NULL, +-- > .color = { 0.0f, 0.0f, 0.0f, 0.0f }, -- > }; -- > -- > // Set the name and insert the marker @@ -377,10 +380,10 @@ -- > // Describe the queue being used -- > const VkDebugUtilsLabelEXT queueLabel = -- > { --- > VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT, // sType --- > NULL, // pNext --- > "Main Render Work", // pLabelName --- > { 0.0f, 1.0f, 0.0f, 1.0f }, // color +-- > .sType = VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT, +-- > .pNext = NULL, +-- > .pLabelName = "Main Render Work", +-- > .color = { 0.0f, 1.0f, 0.0f, 1.0f }, -- > }; -- > -- > // Identify the queue label region @@ -388,15 +391,18 @@ -- > -- > // Submit the work for the main render thread -- > const VkCommandBuffer cmd_bufs[] = {commandBuffer}; --- > VkSubmitInfo submit_info = {.sType = VK_STRUCTURE_TYPE_SUBMIT_INFO, --- > .pNext = NULL, --- > .waitSemaphoreCount = 0, --- > .pWaitSemaphores = NULL, --- > .pWaitDstStageMask = NULL, --- > .commandBufferCount = 1, --- > .pCommandBuffers = cmd_bufs, --- > .signalSemaphoreCount = 0, --- > .pSignalSemaphores = NULL}; +-- > VkSubmitInfo submit_info = +-- > { +-- > .sType = VK_STRUCTURE_TYPE_SUBMIT_INFO, +-- > .pNext = NULL, +-- > .waitSemaphoreCount = 0, +-- > .pWaitSemaphores = NULL, +-- > .pWaitDstStageMask = NULL, +-- > .commandBufferCount = 1, +-- > .pCommandBuffers = cmd_bufs, +-- > .signalSemaphoreCount = 0, +-- > .pSignalSemaphores = NULL +-- > }; -- > vkQueueSubmit(queue, 1, &submit_info, fence); -- > -- > // End the queue label region @@ -667,22 +673,21 @@ foreign import ccall -- 'Vulkan.Core10.APIConstants.NULL_HANDLE' -- -- - #VUID-vkSetDebugUtilsObjectNameEXT-pNameInfo-07872# If --- @pNameInfo->pname@:objectHandle is the valid handle of an --- instance-level object, the 'Vulkan.Core10.Handles.Device' identified --- by @device@ /must/ be a descendent of the same --- 'Vulkan.Core10.Handles.Instance' as the object identified by --- @pNameInfo->pname@:objectHandle +-- @pNameInfo->objectHandle@ is the valid handle of an instance-level +-- object, the 'Vulkan.Core10.Handles.Device' identified by @device@ +-- /must/ be a descendent of the same 'Vulkan.Core10.Handles.Instance' +-- as the object identified by @pNameInfo->objectHandle@ -- -- - #VUID-vkSetDebugUtilsObjectNameEXT-pNameInfo-07873# If --- @pNameInfo->pname@:objectHandle is the valid handle of a +-- @pNameInfo->objectHandle@ is the valid handle of a -- physical-device-level object, the 'Vulkan.Core10.Handles.Device' -- identified by @device@ /must/ be a descendant of the same -- 'Vulkan.Core10.Handles.PhysicalDevice' as the object identified by --- @pNameInfo->pname@:objectHandle +-- @pNameInfo->objectHandle@ -- -- - #VUID-vkSetDebugUtilsObjectNameEXT-pNameInfo-07874# If --- @pNameInfo->pname@:objectHandle is the valid handle of a --- device-level object, that object /must/ be a descendent of the +-- @pNameInfo->objectHandle@ is the valid handle of a device-level +-- object, that object /must/ be a descendent of the -- 'Vulkan.Core10.Handles.Device' identified by @device@ -- -- == Valid Usage (Implicit) @@ -748,22 +753,21 @@ foreign import ccall -- == Valid Usage -- -- - #VUID-vkSetDebugUtilsObjectTagEXT-pNameInfo-07875# If --- @pNameInfo->pname@:objectHandle is the valid handle of an --- instance-level object, the 'Vulkan.Core10.Handles.Device' identified --- by @device@ /must/ be a descendent of the same --- 'Vulkan.Core10.Handles.Instance' as the object identified by --- @pNameInfo->pname@:objectHandle +-- @pNameInfo->objectHandle@ is the valid handle of an instance-level +-- object, the 'Vulkan.Core10.Handles.Device' identified by @device@ +-- /must/ be a descendent of the same 'Vulkan.Core10.Handles.Instance' +-- as the object identified by @pNameInfo->objectHandle@ -- -- - #VUID-vkSetDebugUtilsObjectTagEXT-pNameInfo-07876# If --- @pNameInfo->pname@:objectHandle is the valid handle of a +-- @pNameInfo->objectHandle@ is the valid handle of a -- physical-device-level object, the 'Vulkan.Core10.Handles.Device' -- identified by @device@ /must/ be a descendant of the same -- 'Vulkan.Core10.Handles.PhysicalDevice' as the object identified by --- @pNameInfo->pname@:objectHandle +-- @pNameInfo->objectHandle@ -- -- - #VUID-vkSetDebugUtilsObjectTagEXT-pNameInfo-07877# If --- @pNameInfo->pname@:objectHandle is the valid handle of a --- device-level object, that object /must/ be a descendent of the +-- @pNameInfo->objectHandle@ is the valid handle of a device-level +-- object, that object /must/ be a descendent of the -- 'Vulkan.Core10.Handles.Device' identified by @device@ -- -- == Valid Usage (Implicit) @@ -832,6 +836,7 @@ foreign import ccall -- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ -- | | | | | | -- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================+ +-- | - | - | - | Any | - | -- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ -- -- = See Also @@ -896,6 +901,7 @@ foreign import ccall -- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ -- | | | | | | -- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================+ +-- | - | - | - | Any | - | -- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ -- -- = See Also @@ -933,6 +939,7 @@ foreign import ccall -- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ -- | | | | | | -- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================+ +-- | - | - | - | Any | - | -- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ -- -- = See Also diff --git a/src/Vulkan/Extensions/VK_EXT_debug_utils.hs-boot b/src/Vulkan/Extensions/VK_EXT_debug_utils.hs-boot index 3cb6f33c5..707724d6c 100644 --- a/src/Vulkan/Extensions/VK_EXT_debug_utils.hs-boot +++ b/src/Vulkan/Extensions/VK_EXT_debug_utils.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 2 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__; __Special Use__] -- -- - @@ -230,15 +233,15 @@ -- > PFN_vkDestroyDebugUtilsMessengerEXT pfnDestroyDebugUtilsMessengerEXT = (PFN_vkDestroyDebugUtilsMessengerEXT)vkGetInstanceProcAddr(instance, "vkDestroyDebugUtilsMessengerEXT"); -- > -- > VkDebugUtilsMessengerCreateInfoEXT callback1 = { --- > VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT, // sType --- > NULL, // pNext --- > 0, // flags --- > VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT | // messageSeverity --- > VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT, --- > VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT | // messageType --- > VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT, --- > myOutputDebugString, // pfnUserCallback --- > NULL // pUserData +-- > .sType = VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT, +-- > .pNext = NULL, +-- > .flags = 0, +-- > .messageSeverity = VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT | +-- > VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT, +-- > .messageType= VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT | +-- > VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT, +-- > .pfnUserCallback = myOutputDebugString, +-- > .pUserData = NULL -- > }; -- > res = pfnCreateDebugUtilsMessengerEXT(instance, &callback1, NULL, &cb1); -- > if (res != VK_SUCCESS) { @@ -254,14 +257,14 @@ -- > } -- > -- > VkDebugUtilsMessengerCreateInfoEXT callback3 = { --- > VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT, // sType --- > NULL, // pNext --- > 0, // flags --- > VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT, // messageSeverity --- > VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT | // messageType --- > VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT, --- > mystdOutLogger, // pfnUserCallback --- > NULL // pUserData +-- > .sType = VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT, +-- > .pNext = NULL, +-- > .flags = 0, +-- > .messageSeverity = VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT, +-- > .messageType = VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT | +-- > VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT, +-- > .pfnUserCallback = mystdOutLogger, +-- > .pUserData = NULL -- > }; -- > res = pfnCreateDebugUtilsMessengerEXT(instance, &callback3, NULL, &cb3); -- > if (res != VK_SUCCESS) { @@ -291,11 +294,11 @@ -- > // Set a name on the image -- > const VkDebugUtilsObjectNameInfoEXT imageNameInfo = -- > { --- > VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT, // sType --- > NULL, // pNext --- > VK_OBJECT_TYPE_IMAGE, // objectType --- > (uint64_t)image, // objectHandle --- > "Brick Diffuse Texture", // pObjectName +-- > .sType = VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT, +-- > .pNext = NULL, +-- > .objectType = VK_OBJECT_TYPE_IMAGE, +-- > .objectHandle = (uint64_t)image, +-- > .pObjectName = "Brick Diffuse Texture", -- > }; -- > -- > pfnSetDebugUtilsObjectNameEXT(device, &imageNameInfo); @@ -323,10 +326,10 @@ -- > // Describe the area being rendered -- > const VkDebugUtilsLabelEXT houseLabel = -- > { --- > VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT, // sType --- > NULL, // pNext --- > "Brick House", // pLabelName --- > { 1.0f, 0.0f, 0.0f, 1.0f }, // color +-- > .sType = VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT, +-- > .pNext = NULL, +-- > .pLabelName = "Brick House", +-- > .color = { 1.0f, 0.0f, 0.0f, 1.0f }, -- > }; -- > -- > // Start an annotated group of calls under the 'Brick House' name @@ -335,10 +338,10 @@ -- > // A mutable structure for each part being rendered -- > VkDebugUtilsLabelEXT housePartLabel = -- > { --- > VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT, // sType --- > NULL, // pNext --- > NULL, // pLabelName --- > { 0.0f, 0.0f, 0.0f, 0.0f }, // color +-- > .sType = VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT, +-- > .pNext = NULL, +-- > .pLabelName = NULL, +-- > .color = { 0.0f, 0.0f, 0.0f, 0.0f }, -- > }; -- > -- > // Set the name and insert the marker @@ -377,10 +380,10 @@ -- > // Describe the queue being used -- > const VkDebugUtilsLabelEXT queueLabel = -- > { --- > VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT, // sType --- > NULL, // pNext --- > "Main Render Work", // pLabelName --- > { 0.0f, 1.0f, 0.0f, 1.0f }, // color +-- > .sType = VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT, +-- > .pNext = NULL, +-- > .pLabelName = "Main Render Work", +-- > .color = { 0.0f, 1.0f, 0.0f, 1.0f }, -- > }; -- > -- > // Identify the queue label region @@ -388,15 +391,18 @@ -- > -- > // Submit the work for the main render thread -- > const VkCommandBuffer cmd_bufs[] = {commandBuffer}; --- > VkSubmitInfo submit_info = {.sType = VK_STRUCTURE_TYPE_SUBMIT_INFO, --- > .pNext = NULL, --- > .waitSemaphoreCount = 0, --- > .pWaitSemaphores = NULL, --- > .pWaitDstStageMask = NULL, --- > .commandBufferCount = 1, --- > .pCommandBuffers = cmd_bufs, --- > .signalSemaphoreCount = 0, --- > .pSignalSemaphores = NULL}; +-- > VkSubmitInfo submit_info = +-- > { +-- > .sType = VK_STRUCTURE_TYPE_SUBMIT_INFO, +-- > .pNext = NULL, +-- > .waitSemaphoreCount = 0, +-- > .pWaitSemaphores = NULL, +-- > .pWaitDstStageMask = NULL, +-- > .commandBufferCount = 1, +-- > .pCommandBuffers = cmd_bufs, +-- > .signalSemaphoreCount = 0, +-- > .pSignalSemaphores = NULL +-- > }; -- > vkQueueSubmit(queue, 1, &submit_info, fence); -- > -- > // End the queue label region diff --git a/src/Vulkan/Extensions/VK_EXT_depth_bias_control.hs b/src/Vulkan/Extensions/VK_EXT_depth_bias_control.hs new file mode 100644 index 000000000..2e6b62d8b --- /dev/null +++ b/src/Vulkan/Extensions/VK_EXT_depth_bias_control.hs @@ -0,0 +1,657 @@ +{-# language CPP #-} +-- | = Name +-- +-- VK_EXT_depth_bias_control - device extension +-- +-- == VK_EXT_depth_bias_control +-- +-- [__Name String__] +-- @VK_EXT_depth_bias_control@ +-- +-- [__Extension Type__] +-- Device extension +-- +-- [__Registered Extension Number__] +-- 284 +-- +-- [__Revision__] +-- 1 +-- +-- [__Ratification Status__] +-- Ratified +-- +-- [__Extension and Version Dependencies__] +-- +-- +-- [__Special Use__] +-- +-- - +-- +-- [__Contact__] +-- +-- - Joshua Ashton +-- +-- +-- [__Extension Proposal__] +-- +-- +-- == Other Extension Metadata +-- +-- [__Last Modified Date__] +-- 2023-02-15 +-- +-- [__IP Status__] +-- No known IP claims. +-- +-- [__Contributors__] +-- +-- - Joshua Ashton, VALVE +-- +-- - Hans-Kristian Arntzen, VALVE +-- +-- - Mike Blumenkrantz, VALVE +-- +-- - Georg Lehmann, VALVE +-- +-- - Piers Daniell, NVIDIA +-- +-- - Lionel Landwerlin, INTEL +-- +-- - Tobias Hector, AMD +-- +-- - Ricardo Garcia, IGALIA +-- +-- - Jan-Harald Fredriksen, ARM +-- +-- - Shahbaz Youssefi, GOOGLE +-- +-- - Tom Olson, ARM +-- +-- == Description +-- +-- This extension adds a new structure, 'DepthBiasRepresentationInfoEXT', +-- that can be added to a @pNext@ chain of +-- 'Vulkan.Core10.Pipeline.PipelineRasterizationStateCreateInfo' and allows +-- setting the scaling and representation of depth bias for a pipeline. +-- +-- This state can also be set dynamically by using the new structure +-- mentioned above in combination with the new 'cmdSetDepthBias2EXT' +-- command. +-- +-- == New Commands +-- +-- - 'cmdSetDepthBias2EXT' +-- +-- == New Structures +-- +-- - 'DepthBiasInfoEXT' +-- +-- - Extending 'DepthBiasInfoEXT', +-- 'Vulkan.Core10.Pipeline.PipelineRasterizationStateCreateInfo': +-- +-- - 'DepthBiasRepresentationInfoEXT' +-- +-- - Extending +-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2', +-- 'Vulkan.Core10.Device.DeviceCreateInfo': +-- +-- - 'PhysicalDeviceDepthBiasControlFeaturesEXT' +-- +-- == New Enums +-- +-- - 'DepthBiasRepresentationEXT' +-- +-- == New Enum Constants +-- +-- - 'EXT_DEPTH_BIAS_CONTROL_EXTENSION_NAME' +-- +-- - 'EXT_DEPTH_BIAS_CONTROL_SPEC_VERSION' +-- +-- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType': +-- +-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_DEPTH_BIAS_INFO_EXT' +-- +-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_DEPTH_BIAS_REPRESENTATION_INFO_EXT' +-- +-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_BIAS_CONTROL_FEATURES_EXT' +-- +-- == Version History +-- +-- - Revision 1, 2022-09-22 (Joshua Ashton) +-- +-- - Initial draft. +-- +-- == See Also +-- +-- 'DepthBiasInfoEXT', 'DepthBiasRepresentationEXT', +-- 'DepthBiasRepresentationInfoEXT', +-- 'PhysicalDeviceDepthBiasControlFeaturesEXT', 'cmdSetDepthBias2EXT' +-- +-- == Document Notes +-- +-- For more information, see the +-- +-- +-- This page is a generated document. Fixes and changes should be made to +-- the generator scripts, not directly. +module Vulkan.Extensions.VK_EXT_depth_bias_control ( cmdSetDepthBias2EXT + , DepthBiasInfoEXT(..) + , DepthBiasRepresentationInfoEXT(..) + , PhysicalDeviceDepthBiasControlFeaturesEXT(..) + , DepthBiasRepresentationEXT( DEPTH_BIAS_REPRESENTATION_LEAST_REPRESENTABLE_VALUE_FORMAT_EXT + , DEPTH_BIAS_REPRESENTATION_LEAST_REPRESENTABLE_VALUE_FORCE_UNORM_EXT + , DEPTH_BIAS_REPRESENTATION_FLOAT_EXT + , .. + ) + , EXT_DEPTH_BIAS_CONTROL_SPEC_VERSION + , pattern EXT_DEPTH_BIAS_CONTROL_SPEC_VERSION + , EXT_DEPTH_BIAS_CONTROL_EXTENSION_NAME + , pattern EXT_DEPTH_BIAS_CONTROL_EXTENSION_NAME + ) where + +import Vulkan.Internal.Utils (enumReadPrec) +import Vulkan.Internal.Utils (enumShowsPrec) +import Vulkan.Internal.Utils (traceAroundEvent) +import Control.Monad (unless) +import Control.Monad.IO.Class (liftIO) +import Data.Typeable (eqT) +import Foreign.Marshal.Alloc (allocaBytes) +import GHC.IO (throwIO) +import GHC.Ptr (castPtr) +import GHC.Ptr (nullFunPtr) +import Foreign.Ptr (nullPtr) +import Foreign.Ptr (plusPtr) +import GHC.Show (showsPrec) +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 Vulkan.Zero (Zero(..)) +import Control.Monad.IO.Class (MonadIO) +import Data.String (IsString) +import Data.Type.Equality ((:~:)(Refl)) +import Data.Typeable (Typeable) +import Foreign.C.Types (CFloat) +import Foreign.C.Types (CFloat(..)) +import Foreign.C.Types (CFloat(CFloat)) +import Foreign.Storable (Storable) +import Foreign.Storable (Storable(peek)) +import Foreign.Storable (Storable(poke)) +import qualified Foreign.Storable (Storable(..)) +import GHC.Generics (Generic) +import GHC.IO.Exception (IOErrorType(..)) +import GHC.IO.Exception (IOException(..)) +import Data.Int (Int32) +import Foreign.Ptr (FunPtr) +import Foreign.Ptr (Ptr) +import GHC.Read (Read(readPrec)) +import GHC.Show (Show(showsPrec)) +import Data.Kind (Type) +import Control.Monad.Trans.Cont (ContT(..)) +import Vulkan.Core10.FundamentalTypes (bool32ToBool) +import Vulkan.Core10.FundamentalTypes (boolToBool32) +import Vulkan.CStruct.Extends (forgetExtensions) +import Vulkan.Core10.FundamentalTypes (Bool32) +import Vulkan.CStruct.Extends (Chain) +import Vulkan.Core10.Handles (CommandBuffer) +import Vulkan.Core10.Handles (CommandBuffer(..)) +import Vulkan.Core10.Handles (CommandBuffer(CommandBuffer)) +import Vulkan.Core10.Handles (CommandBuffer_T) +import Vulkan.Dynamic (DeviceCmds(pVkCmdSetDepthBias2EXT)) +import Vulkan.CStruct.Extends (Extends) +import Vulkan.CStruct.Extends (Extendss) +import Vulkan.CStruct.Extends (Extensible(..)) +import Vulkan.CStruct.Extends (PeekChain) +import Vulkan.CStruct.Extends (PeekChain(..)) +import Vulkan.CStruct.Extends (PokeChain) +import Vulkan.CStruct.Extends (PokeChain(..)) +import Vulkan.CStruct.Extends (SomeStruct) +import Vulkan.Core10.Enums.StructureType (StructureType) +import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_DEPTH_BIAS_INFO_EXT)) +import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_DEPTH_BIAS_REPRESENTATION_INFO_EXT)) +import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_BIAS_CONTROL_FEATURES_EXT)) +foreign import ccall +#if !defined(SAFE_FOREIGN_CALLS) + unsafe +#endif + "dynamic" mkVkCmdSetDepthBias2EXT + :: FunPtr (Ptr CommandBuffer_T -> Ptr (SomeStruct DepthBiasInfoEXT) -> IO ()) -> Ptr CommandBuffer_T -> Ptr (SomeStruct DepthBiasInfoEXT) -> IO () + +-- | vkCmdSetDepthBias2EXT - Set depth bias factors and clamp dynamically for +-- a command buffer +-- +-- = Description +-- +-- This command is functionally identical to +-- 'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBias', but includes +-- extensible sub-structures that include @sType@ and @pNext@ parameters, +-- allowing them to be more easily extended. +-- +-- == Valid Usage (Implicit) +-- +-- - #VUID-vkCmdSetDepthBias2EXT-commandBuffer-parameter# @commandBuffer@ +-- /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle +-- +-- - #VUID-vkCmdSetDepthBias2EXT-pDepthBiasInfo-parameter# +-- @pDepthBiasInfo@ /must/ be a valid pointer to a valid +-- 'DepthBiasInfoEXT' structure +-- +-- - #VUID-vkCmdSetDepthBias2EXT-commandBuffer-recording# @commandBuffer@ +-- /must/ be in the +-- +-- +-- - #VUID-vkCmdSetDepthBias2EXT-commandBuffer-cmdpool# The +-- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was +-- allocated from /must/ support graphics operations +-- +-- - #VUID-vkCmdSetDepthBias2EXT-videocoding# This command /must/ only be +-- called outside of a video coding scope +-- +-- == Host Synchronization +-- +-- - Host access to @commandBuffer@ /must/ be externally synchronized +-- +-- - Host access to the 'Vulkan.Core10.Handles.CommandPool' that +-- @commandBuffer@ was allocated from /must/ be externally synchronized +-- +-- == Command Properties +-- +-- \' +-- +-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ +-- | | | | | | +-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================+ +-- | Primary | Both | Outside | Graphics | State | +-- | Secondary | | | | | +-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ +-- +-- = See Also +-- +-- , +-- 'Vulkan.Core10.Handles.CommandBuffer', 'DepthBiasInfoEXT' +cmdSetDepthBias2EXT :: forall a io + . (Extendss DepthBiasInfoEXT a, PokeChain a, MonadIO io) + => -- | @commandBuffer@ is the command buffer into which the command will be + -- recorded. + CommandBuffer + -> -- | @pDepthBiasInfo@ is a pointer to a 'DepthBiasInfoEXT' structure + -- specifying depth bias parameters. + (DepthBiasInfoEXT a) + -> io () +cmdSetDepthBias2EXT commandBuffer depthBiasInfo = liftIO . evalContT $ do + let vkCmdSetDepthBias2EXTPtr = pVkCmdSetDepthBias2EXT (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds) + lift $ unless (vkCmdSetDepthBias2EXTPtr /= nullFunPtr) $ + throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetDepthBias2EXT is null" Nothing Nothing + let vkCmdSetDepthBias2EXT' = mkVkCmdSetDepthBias2EXT vkCmdSetDepthBias2EXTPtr + pDepthBiasInfo <- ContT $ withCStruct (depthBiasInfo) + lift $ traceAroundEvent "vkCmdSetDepthBias2EXT" (vkCmdSetDepthBias2EXT' + (commandBufferHandle (commandBuffer)) + (forgetExtensions pDepthBiasInfo)) + pure $ () + + +-- | VkDepthBiasInfoEXT - Structure specifying depth bias parameters +-- +-- = Description +-- +-- If @pNext@ does not contain a 'DepthBiasRepresentationInfoEXT' +-- structure, then this command is equivalent to including a +-- 'DepthBiasRepresentationInfoEXT' with @depthBiasExact@ set to +-- 'Vulkan.Core10.FundamentalTypes.FALSE' and @depthBiasRepresentation@ set +-- to 'DEPTH_BIAS_REPRESENTATION_LEAST_REPRESENTABLE_VALUE_FORMAT_EXT'. +-- +-- == Valid Usage +-- +-- - #VUID-VkDepthBiasInfoEXT-depthBiasClamp-08950# If the +-- +-- feature is not enabled, @depthBiasClamp@ /must/ be @0.0@ +-- +-- == Valid Usage (Implicit) +-- +-- - #VUID-VkDepthBiasInfoEXT-sType-sType# @sType@ /must/ be +-- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_DEPTH_BIAS_INFO_EXT' +-- +-- - #VUID-VkDepthBiasInfoEXT-pNext-pNext# @pNext@ /must/ be @NULL@ or a +-- pointer to a valid instance of 'DepthBiasRepresentationInfoEXT' +-- +-- - #VUID-VkDepthBiasInfoEXT-sType-unique# The @sType@ value of each +-- struct in the @pNext@ chain /must/ be unique +-- +-- = See Also +-- +-- , +-- 'Vulkan.Core10.Enums.StructureType.StructureType', 'cmdSetDepthBias2EXT' +data DepthBiasInfoEXT (es :: [Type]) = DepthBiasInfoEXT + { -- | @pNext@ is @NULL@ or a pointer to a structure extending this structure. + next :: Chain es + , -- | @depthBiasConstantFactor@ is a scalar factor controlling the constant + -- depth value added to each fragment. + depthBiasConstantFactor :: Float + , -- | @depthBiasClamp@ is the maximum (or minimum) depth bias of a fragment. + depthBiasClamp :: Float + , -- | @depthBiasSlopeFactor@ is a scalar factor applied to a fragment’s slope + -- in depth bias calculations. + depthBiasSlopeFactor :: Float + } + deriving (Typeable) +#if defined(GENERIC_INSTANCES) +deriving instance Generic (DepthBiasInfoEXT (es :: [Type])) +#endif +deriving instance Show (Chain es) => Show (DepthBiasInfoEXT es) + +instance Extensible DepthBiasInfoEXT where + extensibleTypeName = "DepthBiasInfoEXT" + setNext DepthBiasInfoEXT{..} next' = DepthBiasInfoEXT{next = next', ..} + getNext DepthBiasInfoEXT{..} = next + extends :: forall e b proxy. Typeable e => proxy e -> (Extends DepthBiasInfoEXT e => b) -> Maybe b + extends _ f + | Just Refl <- eqT @e @DepthBiasRepresentationInfoEXT = Just f + | otherwise = Nothing + +instance ( Extendss DepthBiasInfoEXT es + , PokeChain es ) => ToCStruct (DepthBiasInfoEXT es) where + withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p) + pokeCStruct p DepthBiasInfoEXT{..} f = evalContT $ do + lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_DEPTH_BIAS_INFO_EXT) + pNext'' <- fmap castPtr . ContT $ withChain (next) + lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext'' + lift $ poke ((p `plusPtr` 16 :: Ptr CFloat)) (CFloat (depthBiasConstantFactor)) + lift $ poke ((p `plusPtr` 20 :: Ptr CFloat)) (CFloat (depthBiasClamp)) + lift $ poke ((p `plusPtr` 24 :: Ptr CFloat)) (CFloat (depthBiasSlopeFactor)) + lift $ f + cStructSize = 32 + cStructAlignment = 8 + pokeZeroCStruct p f = evalContT $ do + lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_DEPTH_BIAS_INFO_EXT) + pNext' <- fmap castPtr . ContT $ withZeroChain @es + lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext' + lift $ poke ((p `plusPtr` 16 :: Ptr CFloat)) (CFloat (zero)) + lift $ poke ((p `plusPtr` 20 :: Ptr CFloat)) (CFloat (zero)) + lift $ poke ((p `plusPtr` 24 :: Ptr CFloat)) (CFloat (zero)) + lift $ f + +instance ( Extendss DepthBiasInfoEXT es + , PeekChain es ) => FromCStruct (DepthBiasInfoEXT es) where + peekCStruct p = do + pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ()))) + next <- peekChain (castPtr pNext) + depthBiasConstantFactor <- peek @CFloat ((p `plusPtr` 16 :: Ptr CFloat)) + depthBiasClamp <- peek @CFloat ((p `plusPtr` 20 :: Ptr CFloat)) + depthBiasSlopeFactor <- peek @CFloat ((p `plusPtr` 24 :: Ptr CFloat)) + pure $ DepthBiasInfoEXT + next + (coerce @CFloat @Float depthBiasConstantFactor) + (coerce @CFloat @Float depthBiasClamp) + (coerce @CFloat @Float depthBiasSlopeFactor) + +instance es ~ '[] => Zero (DepthBiasInfoEXT es) where + zero = DepthBiasInfoEXT + () + zero + zero + zero + + +-- | VkDepthBiasRepresentationInfoEXT - Structure specifying depth bias +-- parameters +-- +-- == Valid Usage +-- +-- - #VUID-VkDepthBiasRepresentationInfoEXT-leastRepresentableValueForceUnormRepresentation-08947# +-- If the +-- +-- feature is not enabled, @depthBiasRepresentation@ /must/ not be +-- 'DEPTH_BIAS_REPRESENTATION_LEAST_REPRESENTABLE_VALUE_FORCE_UNORM_EXT' +-- +-- - #VUID-VkDepthBiasRepresentationInfoEXT-floatRepresentation-08948# If +-- the +-- +-- feature is not enabled, @depthBiasRepresentation@ /must/ not be +-- 'DEPTH_BIAS_REPRESENTATION_FLOAT_EXT' +-- +-- - #VUID-VkDepthBiasRepresentationInfoEXT-depthBiasExact-08949# If the +-- +-- feature is not enabled, @depthBiasExact@ /must/ be +-- 'Vulkan.Core10.FundamentalTypes.FALSE' +-- +-- == Valid Usage (Implicit) +-- +-- - #VUID-VkDepthBiasRepresentationInfoEXT-sType-sType# @sType@ /must/ +-- be +-- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_DEPTH_BIAS_REPRESENTATION_INFO_EXT' +-- +-- - #VUID-VkDepthBiasRepresentationInfoEXT-depthBiasRepresentation-parameter# +-- @depthBiasRepresentation@ /must/ be a valid +-- 'DepthBiasRepresentationEXT' value +-- +-- = See Also +-- +-- , +-- 'Vulkan.Core10.FundamentalTypes.Bool32', 'DepthBiasRepresentationEXT', +-- 'Vulkan.Core10.Enums.StructureType.StructureType' +data DepthBiasRepresentationInfoEXT = DepthBiasRepresentationInfoEXT + { -- | @depthBiasRepresentation@ is a 'DepthBiasRepresentationEXT' value + -- specifying the depth bias representation. + depthBiasRepresentation :: DepthBiasRepresentationEXT + , -- | @depthBiasExact@ specifies that the implementation is not allowed to + -- scale the depth bias value to ensure a minimum resolvable distance. + depthBiasExact :: Bool + } + deriving (Typeable, Eq) +#if defined(GENERIC_INSTANCES) +deriving instance Generic (DepthBiasRepresentationInfoEXT) +#endif +deriving instance Show DepthBiasRepresentationInfoEXT + +instance ToCStruct DepthBiasRepresentationInfoEXT where + withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p) + pokeCStruct p DepthBiasRepresentationInfoEXT{..} f = do + poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_DEPTH_BIAS_REPRESENTATION_INFO_EXT) + poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr) + poke ((p `plusPtr` 16 :: Ptr DepthBiasRepresentationEXT)) (depthBiasRepresentation) + poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (depthBiasExact)) + f + cStructSize = 24 + cStructAlignment = 8 + pokeZeroCStruct p f = do + poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_DEPTH_BIAS_REPRESENTATION_INFO_EXT) + poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr) + poke ((p `plusPtr` 16 :: Ptr DepthBiasRepresentationEXT)) (zero) + poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (zero)) + f + +instance FromCStruct DepthBiasRepresentationInfoEXT where + peekCStruct p = do + depthBiasRepresentation <- peek @DepthBiasRepresentationEXT ((p `plusPtr` 16 :: Ptr DepthBiasRepresentationEXT)) + depthBiasExact <- peek @Bool32 ((p `plusPtr` 20 :: Ptr Bool32)) + pure $ DepthBiasRepresentationInfoEXT + depthBiasRepresentation (bool32ToBool depthBiasExact) + +instance Storable DepthBiasRepresentationInfoEXT where + sizeOf ~_ = 24 + alignment ~_ = 8 + peek = peekCStruct + poke ptr poked = pokeCStruct ptr poked (pure ()) + +instance Zero DepthBiasRepresentationInfoEXT where + zero = DepthBiasRepresentationInfoEXT + zero + zero + + +-- | VkPhysicalDeviceDepthBiasControlFeaturesEXT - Structure indicating +-- support for depth bias scaling and representation control +-- +-- = Members +-- +-- This structure describes the following feature: +-- +-- == Valid Usage (Implicit) +-- +-- = See Also +-- +-- , +-- 'Vulkan.Core10.FundamentalTypes.Bool32', +-- 'Vulkan.Core10.Enums.StructureType.StructureType' +data PhysicalDeviceDepthBiasControlFeaturesEXT = PhysicalDeviceDepthBiasControlFeaturesEXT + { -- | #features-depthBiasControl# @depthBiasControl@ indicates whether the + -- implementation supports the 'cmdSetDepthBias2EXT' command and the + -- 'DepthBiasRepresentationInfoEXT' structure. + depthBiasControl :: Bool + , -- | #features-leastRepresentableValueForceUnormRepresentation# + -- @leastRepresentableValueForceUnormRepresentation@ indicates whether the + -- implementation supports using the + -- 'DEPTH_BIAS_REPRESENTATION_LEAST_REPRESENTABLE_VALUE_FORCE_UNORM_EXT' + -- depth bias representation. + leastRepresentableValueForceUnormRepresentation :: Bool + , -- | #features-floatRepresentation# @floatRepresentation@ indicates whether + -- the implementation supports using the + -- 'DEPTH_BIAS_REPRESENTATION_FLOAT_EXT' depth bias representation. + floatRepresentation :: Bool + , -- | #features-depthBiasExact# @depthBiasExact@ indicates whether the + -- implementation supports forcing depth bias to not be scaled to ensure a + -- minimum resolvable difference using + -- 'DepthBiasRepresentationInfoEXT'::@depthBiasExact@. + depthBiasExact :: Bool + } + deriving (Typeable, Eq) +#if defined(GENERIC_INSTANCES) +deriving instance Generic (PhysicalDeviceDepthBiasControlFeaturesEXT) +#endif +deriving instance Show PhysicalDeviceDepthBiasControlFeaturesEXT + +instance ToCStruct PhysicalDeviceDepthBiasControlFeaturesEXT where + withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p) + pokeCStruct p PhysicalDeviceDepthBiasControlFeaturesEXT{..} f = do + poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_BIAS_CONTROL_FEATURES_EXT) + poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr) + poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (depthBiasControl)) + poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (leastRepresentableValueForceUnormRepresentation)) + poke ((p `plusPtr` 24 :: Ptr Bool32)) (boolToBool32 (floatRepresentation)) + poke ((p `plusPtr` 28 :: Ptr Bool32)) (boolToBool32 (depthBiasExact)) + f + cStructSize = 32 + cStructAlignment = 8 + pokeZeroCStruct p f = do + poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_BIAS_CONTROL_FEATURES_EXT) + poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr) + poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero)) + poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (zero)) + poke ((p `plusPtr` 24 :: Ptr Bool32)) (boolToBool32 (zero)) + poke ((p `plusPtr` 28 :: Ptr Bool32)) (boolToBool32 (zero)) + f + +instance FromCStruct PhysicalDeviceDepthBiasControlFeaturesEXT where + peekCStruct p = do + depthBiasControl <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32)) + leastRepresentableValueForceUnormRepresentation <- peek @Bool32 ((p `plusPtr` 20 :: Ptr Bool32)) + floatRepresentation <- peek @Bool32 ((p `plusPtr` 24 :: Ptr Bool32)) + depthBiasExact <- peek @Bool32 ((p `plusPtr` 28 :: Ptr Bool32)) + pure $ PhysicalDeviceDepthBiasControlFeaturesEXT + (bool32ToBool depthBiasControl) + (bool32ToBool leastRepresentableValueForceUnormRepresentation) + (bool32ToBool floatRepresentation) + (bool32ToBool depthBiasExact) + +instance Storable PhysicalDeviceDepthBiasControlFeaturesEXT where + sizeOf ~_ = 32 + alignment ~_ = 8 + peek = peekCStruct + poke ptr poked = pokeCStruct ptr poked (pure ()) + +instance Zero PhysicalDeviceDepthBiasControlFeaturesEXT where + zero = PhysicalDeviceDepthBiasControlFeaturesEXT + zero + zero + zero + zero + + +-- | VkDepthBiasRepresentationEXT - Specify the depth bias representation +-- +-- = See Also +-- +-- , +-- 'DepthBiasRepresentationInfoEXT' +newtype DepthBiasRepresentationEXT = DepthBiasRepresentationEXT Int32 + deriving newtype (Eq, Ord, Storable, Zero) + +-- | 'DEPTH_BIAS_REPRESENTATION_LEAST_REPRESENTABLE_VALUE_FORMAT_EXT' +-- specifies that the depth bias representation is a factor of the format’s +-- r as described in +-- . +pattern DEPTH_BIAS_REPRESENTATION_LEAST_REPRESENTABLE_VALUE_FORMAT_EXT = DepthBiasRepresentationEXT 0 + +-- | 'DEPTH_BIAS_REPRESENTATION_LEAST_REPRESENTABLE_VALUE_FORCE_UNORM_EXT' +-- specifies that the depth bias representation is a factor of a constant r +-- defined by the bit-size or mantissa of the format as described in +-- . +pattern DEPTH_BIAS_REPRESENTATION_LEAST_REPRESENTABLE_VALUE_FORCE_UNORM_EXT = DepthBiasRepresentationEXT 1 + +-- | 'DEPTH_BIAS_REPRESENTATION_FLOAT_EXT' specifies that the depth bias +-- representation is a factor of constant r equal to 1. +pattern DEPTH_BIAS_REPRESENTATION_FLOAT_EXT = DepthBiasRepresentationEXT 2 + +{-# COMPLETE + DEPTH_BIAS_REPRESENTATION_LEAST_REPRESENTABLE_VALUE_FORMAT_EXT + , DEPTH_BIAS_REPRESENTATION_LEAST_REPRESENTABLE_VALUE_FORCE_UNORM_EXT + , DEPTH_BIAS_REPRESENTATION_FLOAT_EXT :: + DepthBiasRepresentationEXT + #-} + +conNameDepthBiasRepresentationEXT :: String +conNameDepthBiasRepresentationEXT = "DepthBiasRepresentationEXT" + +enumPrefixDepthBiasRepresentationEXT :: String +enumPrefixDepthBiasRepresentationEXT = "DEPTH_BIAS_REPRESENTATION_" + +showTableDepthBiasRepresentationEXT :: [(DepthBiasRepresentationEXT, String)] +showTableDepthBiasRepresentationEXT = + [ + ( DEPTH_BIAS_REPRESENTATION_LEAST_REPRESENTABLE_VALUE_FORMAT_EXT + , "LEAST_REPRESENTABLE_VALUE_FORMAT_EXT" + ) + , + ( DEPTH_BIAS_REPRESENTATION_LEAST_REPRESENTABLE_VALUE_FORCE_UNORM_EXT + , "LEAST_REPRESENTABLE_VALUE_FORCE_UNORM_EXT" + ) + , + ( DEPTH_BIAS_REPRESENTATION_FLOAT_EXT + , "FLOAT_EXT" + ) + ] + +instance Show DepthBiasRepresentationEXT where + showsPrec = + enumShowsPrec + enumPrefixDepthBiasRepresentationEXT + showTableDepthBiasRepresentationEXT + conNameDepthBiasRepresentationEXT + (\(DepthBiasRepresentationEXT x) -> x) + (showsPrec 11) + +instance Read DepthBiasRepresentationEXT where + readPrec = + enumReadPrec + enumPrefixDepthBiasRepresentationEXT + showTableDepthBiasRepresentationEXT + conNameDepthBiasRepresentationEXT + DepthBiasRepresentationEXT + +type EXT_DEPTH_BIAS_CONTROL_SPEC_VERSION = 1 + +-- No documentation found for TopLevel "VK_EXT_DEPTH_BIAS_CONTROL_SPEC_VERSION" +pattern EXT_DEPTH_BIAS_CONTROL_SPEC_VERSION :: forall a . Integral a => a +pattern EXT_DEPTH_BIAS_CONTROL_SPEC_VERSION = 1 + + +type EXT_DEPTH_BIAS_CONTROL_EXTENSION_NAME = "VK_EXT_depth_bias_control" + +-- No documentation found for TopLevel "VK_EXT_DEPTH_BIAS_CONTROL_EXTENSION_NAME" +pattern EXT_DEPTH_BIAS_CONTROL_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a +pattern EXT_DEPTH_BIAS_CONTROL_EXTENSION_NAME = "VK_EXT_depth_bias_control" + diff --git a/src/Vulkan/Extensions/VK_EXT_depth_bias_control.hs-boot b/src/Vulkan/Extensions/VK_EXT_depth_bias_control.hs-boot new file mode 100644 index 000000000..09bdfe7e6 --- /dev/null +++ b/src/Vulkan/Extensions/VK_EXT_depth_bias_control.hs-boot @@ -0,0 +1,174 @@ +{-# language CPP #-} +-- | = Name +-- +-- VK_EXT_depth_bias_control - device extension +-- +-- == VK_EXT_depth_bias_control +-- +-- [__Name String__] +-- @VK_EXT_depth_bias_control@ +-- +-- [__Extension Type__] +-- Device extension +-- +-- [__Registered Extension Number__] +-- 284 +-- +-- [__Revision__] +-- 1 +-- +-- [__Ratification Status__] +-- Ratified +-- +-- [__Extension and Version Dependencies__] +-- +-- +-- [__Special Use__] +-- +-- - +-- +-- [__Contact__] +-- +-- - Joshua Ashton +-- +-- +-- [__Extension Proposal__] +-- +-- +-- == Other Extension Metadata +-- +-- [__Last Modified Date__] +-- 2023-02-15 +-- +-- [__IP Status__] +-- No known IP claims. +-- +-- [__Contributors__] +-- +-- - Joshua Ashton, VALVE +-- +-- - Hans-Kristian Arntzen, VALVE +-- +-- - Mike Blumenkrantz, VALVE +-- +-- - Georg Lehmann, VALVE +-- +-- - Piers Daniell, NVIDIA +-- +-- - Lionel Landwerlin, INTEL +-- +-- - Tobias Hector, AMD +-- +-- - Ricardo Garcia, IGALIA +-- +-- - Jan-Harald Fredriksen, ARM +-- +-- - Shahbaz Youssefi, GOOGLE +-- +-- - Tom Olson, ARM +-- +-- == Description +-- +-- This extension adds a new structure, 'DepthBiasRepresentationInfoEXT', +-- that can be added to a @pNext@ chain of +-- 'Vulkan.Core10.Pipeline.PipelineRasterizationStateCreateInfo' and allows +-- setting the scaling and representation of depth bias for a pipeline. +-- +-- This state can also be set dynamically by using the new structure +-- mentioned above in combination with the new 'cmdSetDepthBias2EXT' +-- command. +-- +-- == New Commands +-- +-- - 'cmdSetDepthBias2EXT' +-- +-- == New Structures +-- +-- - 'DepthBiasInfoEXT' +-- +-- - Extending 'DepthBiasInfoEXT', +-- 'Vulkan.Core10.Pipeline.PipelineRasterizationStateCreateInfo': +-- +-- - 'DepthBiasRepresentationInfoEXT' +-- +-- - Extending +-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2', +-- 'Vulkan.Core10.Device.DeviceCreateInfo': +-- +-- - 'PhysicalDeviceDepthBiasControlFeaturesEXT' +-- +-- == New Enums +-- +-- - 'DepthBiasRepresentationEXT' +-- +-- == New Enum Constants +-- +-- - 'EXT_DEPTH_BIAS_CONTROL_EXTENSION_NAME' +-- +-- - 'EXT_DEPTH_BIAS_CONTROL_SPEC_VERSION' +-- +-- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType': +-- +-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_DEPTH_BIAS_INFO_EXT' +-- +-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_DEPTH_BIAS_REPRESENTATION_INFO_EXT' +-- +-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_BIAS_CONTROL_FEATURES_EXT' +-- +-- == Version History +-- +-- - Revision 1, 2022-09-22 (Joshua Ashton) +-- +-- - Initial draft. +-- +-- == See Also +-- +-- 'DepthBiasInfoEXT', 'DepthBiasRepresentationEXT', +-- 'DepthBiasRepresentationInfoEXT', +-- 'PhysicalDeviceDepthBiasControlFeaturesEXT', 'cmdSetDepthBias2EXT' +-- +-- == Document Notes +-- +-- For more information, see the +-- +-- +-- This page is a generated document. Fixes and changes should be made to +-- the generator scripts, not directly. +module Vulkan.Extensions.VK_EXT_depth_bias_control ( DepthBiasInfoEXT + , DepthBiasRepresentationInfoEXT + , PhysicalDeviceDepthBiasControlFeaturesEXT + ) where + +import Vulkan.CStruct (FromCStruct) +import Vulkan.CStruct (ToCStruct) +import Data.Kind (Type) +import {-# SOURCE #-} Vulkan.CStruct.Extends (Chain) +import {-# SOURCE #-} Vulkan.CStruct.Extends (Extendss) +import {-# SOURCE #-} Vulkan.CStruct.Extends (PeekChain) +import {-# SOURCE #-} Vulkan.CStruct.Extends (PokeChain) +type role DepthBiasInfoEXT nominal +data DepthBiasInfoEXT (es :: [Type]) + +instance ( Extendss DepthBiasInfoEXT es + , PokeChain es ) => ToCStruct (DepthBiasInfoEXT es) +instance Show (Chain es) => Show (DepthBiasInfoEXT es) + +instance ( Extendss DepthBiasInfoEXT es + , PeekChain es ) => FromCStruct (DepthBiasInfoEXT es) + + +data DepthBiasRepresentationInfoEXT + +instance ToCStruct DepthBiasRepresentationInfoEXT +instance Show DepthBiasRepresentationInfoEXT + +instance FromCStruct DepthBiasRepresentationInfoEXT + + +data PhysicalDeviceDepthBiasControlFeaturesEXT + +instance ToCStruct PhysicalDeviceDepthBiasControlFeaturesEXT +instance Show PhysicalDeviceDepthBiasControlFeaturesEXT + +instance FromCStruct PhysicalDeviceDepthBiasControlFeaturesEXT + diff --git a/src/Vulkan/Extensions/VK_EXT_depth_clamp_zero_one.hs b/src/Vulkan/Extensions/VK_EXT_depth_clamp_zero_one.hs index 88d0c37b0..827c4eed7 100644 --- a/src/Vulkan/Extensions/VK_EXT_depth_clamp_zero_one.hs +++ b/src/Vulkan/Extensions/VK_EXT_depth_clamp_zero_one.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- diff --git a/src/Vulkan/Extensions/VK_EXT_depth_clamp_zero_one.hs-boot b/src/Vulkan/Extensions/VK_EXT_depth_clamp_zero_one.hs-boot index 337de1b61..674c668b6 100644 --- a/src/Vulkan/Extensions/VK_EXT_depth_clamp_zero_one.hs-boot +++ b/src/Vulkan/Extensions/VK_EXT_depth_clamp_zero_one.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- diff --git a/src/Vulkan/Extensions/VK_EXT_depth_clip_control.hs b/src/Vulkan/Extensions/VK_EXT_depth_clip_control.hs index b6382fd9d..f6c3c98e4 100644 --- a/src/Vulkan/Extensions/VK_EXT_depth_clip_control.hs +++ b/src/Vulkan/Extensions/VK_EXT_depth_clip_control.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- diff --git a/src/Vulkan/Extensions/VK_EXT_depth_clip_control.hs-boot b/src/Vulkan/Extensions/VK_EXT_depth_clip_control.hs-boot index f082462cb..13265a0c2 100644 --- a/src/Vulkan/Extensions/VK_EXT_depth_clip_control.hs-boot +++ b/src/Vulkan/Extensions/VK_EXT_depth_clip_control.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- diff --git a/src/Vulkan/Extensions/VK_EXT_depth_clip_enable.hs b/src/Vulkan/Extensions/VK_EXT_depth_clip_enable.hs index 4b1ba553c..e8b02d151 100644 --- a/src/Vulkan/Extensions/VK_EXT_depth_clip_enable.hs +++ b/src/Vulkan/Extensions/VK_EXT_depth_clip_enable.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- or diff --git a/src/Vulkan/Extensions/VK_EXT_depth_clip_enable.hs-boot b/src/Vulkan/Extensions/VK_EXT_depth_clip_enable.hs-boot index b970977d6..9bd38ce4d 100644 --- a/src/Vulkan/Extensions/VK_EXT_depth_clip_enable.hs-boot +++ b/src/Vulkan/Extensions/VK_EXT_depth_clip_enable.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- or diff --git a/src/Vulkan/Extensions/VK_EXT_depth_range_unrestricted.hs b/src/Vulkan/Extensions/VK_EXT_depth_range_unrestricted.hs index 01bd74fb9..3fa30bd34 100644 --- a/src/Vulkan/Extensions/VK_EXT_depth_range_unrestricted.hs +++ b/src/Vulkan/Extensions/VK_EXT_depth_range_unrestricted.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__; __Contact__] -- -- - Piers Daniell diff --git a/src/Vulkan/Extensions/VK_EXT_descriptor_buffer.hs b/src/Vulkan/Extensions/VK_EXT_descriptor_buffer.hs index 9eff13aca..04ebe1748 100644 --- a/src/Vulkan/Extensions/VK_EXT_descriptor_buffer.hs +++ b/src/Vulkan/Extensions/VK_EXT_descriptor_buffer.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- and @@ -388,6 +391,7 @@ import Vulkan.Extensions.Handles (AccelerationStructureNV) import Vulkan.Core10.FundamentalTypes (Bool32) import Vulkan.Core10.Handles (Buffer) import Vulkan.Core10.Enums.BufferUsageFlagBits (BufferUsageFlags) +import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_maintenance5 (BufferUsageFlags2CreateInfoKHR) import Vulkan.CStruct.Extends (Chain) import Vulkan.Core10.Handles (CommandBuffer) import Vulkan.Core10.Handles (CommandBuffer(..)) @@ -515,7 +519,8 @@ foreign import ccall -- -- - #VUID-vkGetDescriptorSetLayoutSizeEXT-layout-08012# @layout@ /must/ -- have been created with the --- VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT flag set +-- 'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT' +-- flag set -- -- == Valid Usage (Implicit) -- @@ -579,8 +584,8 @@ foreign import ccall -- precise location accessed by a shader for a given descriptor is as -- follows: -- --- - location = bufferAddress + setOffset + descriptorOffset --- (arrayElement * descriptorSize) +-- - location = bufferAddress + setOffset + descriptorOffset + +-- (arrayElement × descriptorSize) -- -- where bufferAddress and setOffset are the base address and offset for -- the identified descriptor set as specified by @@ -618,7 +623,8 @@ foreign import ccall -- -- - #VUID-vkGetDescriptorSetLayoutBindingOffsetEXT-layout-08014# -- @layout@ /must/ have been created with the --- VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT flag set +-- 'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT' +-- flag set -- -- == Valid Usage (Implicit) -- @@ -1037,6 +1043,13 @@ foreign import ccall -- @pipelineBindPoint@ /must/ be supported by the @commandBuffer@’s -- parent 'Vulkan.Core10.Handles.CommandPool'’s queue family -- +-- - #VUID-vkCmdSetDescriptorBufferOffsetsEXT-firstSet-09006# The +-- 'Vulkan.Core10.Handles.DescriptorSetLayout' for each set from +-- @firstSet@ to @firstSet@ + @setCount@ when @layout@ was created +-- /must/ have been created with the +-- 'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT' +-- bit set +-- -- == Valid Usage (Implicit) -- -- - #VUID-vkCmdSetDescriptorBufferOffsetsEXT-commandBuffer-parameter# @@ -2291,6 +2304,13 @@ instance Zero PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT where -- -- feature is not enabled, @address@ /must/ not be zero -- +-- - #VUID-VkDescriptorAddressInfoEXT-nullDescriptor-08938# If @address@ +-- is zero, @range@ /must/ be 'Vulkan.Core10.APIConstants.WHOLE_SIZE' +-- +-- - #VUID-VkDescriptorAddressInfoEXT-nullDescriptor-08939# If @address@ +-- is not zero, @range@ /must/ not be +-- 'Vulkan.Core10.APIConstants.WHOLE_SIZE' +-- -- - #VUID-VkDescriptorAddressInfoEXT-None-08044# If @address@ is not -- zero, @address@ /must/ be a valid device address at an offset within -- a 'Vulkan.Core10.Handles.Buffer' @@ -2299,8 +2319,8 @@ instance Zero PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT where -- than or equal to the size of the buffer containing @address@ minus -- the offset of @address@ from the base address of the buffer -- --- - #VUID-VkDescriptorAddressInfoEXT-range-08046# @range@ must not be --- 'Vulkan.Core10.APIConstants.WHOLE_SIZE' +-- - #VUID-VkDescriptorAddressInfoEXT-range-08940# @range@ /must/ not be +-- zero -- -- == Valid Usage (Implicit) -- @@ -2387,14 +2407,22 @@ instance Zero DescriptorAddressInfoEXT where -- | VkDescriptorBufferBindingInfoEXT - Structure specifying descriptor -- buffer binding information -- +-- = Description +-- +-- If a +-- 'Vulkan.Extensions.VK_KHR_maintenance5.PipelineCreateFlags2CreateInfoKHR' +-- structure is present in the @pNext@ chain, +-- 'Vulkan.Extensions.VK_KHR_maintenance5.PipelineCreateFlags2CreateInfoKHR'::@flags@ +-- from that structure is used instead of @flags@ from this structure. +-- -- == Valid Usage -- -- - #VUID-VkDescriptorBufferBindingInfoEXT-bufferlessPushDescriptors-08056# -- If -- -- is 'Vulkan.Core10.FundamentalTypes.FALSE', and @usage@ contains --- VK_BUFFER_USAGE_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT, then the --- @pNext@ chain /must/ include a +-- 'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT', +-- then the @pNext@ chain /must/ include a -- 'DescriptorBufferBindingPushDescriptorBufferHandleEXT' structure -- -- - #VUID-VkDescriptorBufferBindingInfoEXT-address-08057# @address@ @@ -2428,9 +2456,11 @@ instance Zero DescriptorAddressInfoEXT where -- be -- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_INFO_EXT' -- --- - #VUID-VkDescriptorBufferBindingInfoEXT-pNext-pNext# @pNext@ /must/ --- be @NULL@ or a pointer to a valid instance of --- 'DescriptorBufferBindingPushDescriptorBufferHandleEXT' +-- - #VUID-VkDescriptorBufferBindingInfoEXT-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_maintenance5.BufferUsageFlags2CreateInfoKHR' +-- or 'DescriptorBufferBindingPushDescriptorBufferHandleEXT' -- -- - #VUID-VkDescriptorBufferBindingInfoEXT-sType-unique# The @sType@ -- value of each struct in the @pNext@ chain /must/ be unique @@ -2450,11 +2480,15 @@ instance Zero DescriptorAddressInfoEXT where -- 'Vulkan.Core10.Enums.StructureType.StructureType', -- 'cmdBindDescriptorBuffersEXT' data DescriptorBufferBindingInfoEXT (es :: [Type]) = DescriptorBufferBindingInfoEXT - { -- No documentation found for Nested "VkDescriptorBufferBindingInfoEXT" "pNext" + { -- | @pNext@ is @NULL@ or a pointer to a structure extending this structure. next :: Chain es - , -- No documentation found for Nested "VkDescriptorBufferBindingInfoEXT" "address" + , -- | @address@ is a 'Vulkan.Core10.FundamentalTypes.DeviceAddress' specifying + -- the device address defining the descriptor buffer to be bound. address :: DeviceAddress - , -- No documentation found for Nested "VkDescriptorBufferBindingInfoEXT" "usage" + , -- | @usage@ is a bitmask of + -- 'Vulkan.Core10.Enums.BufferUsageFlagBits.BufferUsageFlagBits' specifying + -- the 'Vulkan.Core10.Buffer.BufferCreateInfo'::@usage@ for the buffer from + -- which @address@ was queried. usage :: BufferUsageFlags } deriving (Typeable) @@ -2470,6 +2504,7 @@ instance Extensible DescriptorBufferBindingInfoEXT where extends :: forall e b proxy. Typeable e => proxy e -> (Extends DescriptorBufferBindingInfoEXT e => b) -> Maybe b extends _ f | Just Refl <- eqT @e @DescriptorBufferBindingPushDescriptorBufferHandleEXT = Just f + | Just Refl <- eqT @e @BufferUsageFlags2CreateInfoKHR = Just f | otherwise = Nothing instance ( Extendss DescriptorBufferBindingInfoEXT es @@ -3026,7 +3061,7 @@ instance Zero SamplerCaptureDescriptorDataInfoEXT where -- @accelerationStructureNV@ /must/ have been created with -- 'Vulkan.Extensions.VK_KHR_acceleration_structure.ACCELERATION_STRUCTURE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT' -- set in --- 'Vulkan.Extensions.VK_NV_ray_tracing.AccelerationStructureCreateInfoNV'::info::@flags@ +-- 'Vulkan.Extensions.VK_NV_ray_tracing.AccelerationStructureCreateInfoNV'::@info.flags@ -- -- - #VUID-VkAccelerationStructureCaptureDescriptorDataInfoEXT-accelerationStructure-08093# -- If @accelerationStructure@ is not diff --git a/src/Vulkan/Extensions/VK_EXT_descriptor_buffer.hs-boot b/src/Vulkan/Extensions/VK_EXT_descriptor_buffer.hs-boot index da153d386..c786aa38b 100644 --- a/src/Vulkan/Extensions/VK_EXT_descriptor_buffer.hs-boot +++ b/src/Vulkan/Extensions/VK_EXT_descriptor_buffer.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- and diff --git a/src/Vulkan/Extensions/VK_EXT_descriptor_indexing.hs b/src/Vulkan/Extensions/VK_EXT_descriptor_indexing.hs index a0bd9e885..f304e9bfd 100644 --- a/src/Vulkan/Extensions/VK_EXT_descriptor_indexing.hs +++ b/src/Vulkan/Extensions/VK_EXT_descriptor_indexing.hs @@ -17,12 +17,15 @@ -- [__Revision__] -- 2 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- and -- -- --- [__Deprecation state__] +-- [__Deprecation State__] -- -- - /Promoted/ to -- diff --git a/src/Vulkan/Extensions/VK_EXT_device_address_binding_report.hs b/src/Vulkan/Extensions/VK_EXT_device_address_binding_report.hs index 0197b320e..cf9417458 100644 --- a/src/Vulkan/Extensions/VK_EXT_device_address_binding_report.hs +++ b/src/Vulkan/Extensions/VK_EXT_device_address_binding_report.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- and diff --git a/src/Vulkan/Extensions/VK_EXT_device_address_binding_report.hs-boot b/src/Vulkan/Extensions/VK_EXT_device_address_binding_report.hs-boot index 4ede4db4d..344e9c636 100644 --- a/src/Vulkan/Extensions/VK_EXT_device_address_binding_report.hs-boot +++ b/src/Vulkan/Extensions/VK_EXT_device_address_binding_report.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- and diff --git a/src/Vulkan/Extensions/VK_EXT_device_fault.hs b/src/Vulkan/Extensions/VK_EXT_device_fault.hs index 2ee07adc2..4151f0469 100644 --- a/src/Vulkan/Extensions/VK_EXT_device_fault.hs +++ b/src/Vulkan/Extensions/VK_EXT_device_fault.hs @@ -15,7 +15,10 @@ -- 342 -- -- [__Revision__] --- 1 +-- 2 +-- +-- [__Ratification Status__] +-- Not ratified -- -- [__Extension and Version Dependencies__] -- @@ -110,6 +113,12 @@ -- -- == Version History -- +-- - Revision 2, 2023-04-05 (Ralph Potter) +-- +-- - Restored two missing members to the XML definition of +-- VkDeviceFaultVendorBinaryHeaderVersionOneEXT. No functional +-- change to the specification. +-- -- - Revision 1, 2020-10-19 (Ralph Potter) -- -- - Initial revision @@ -863,6 +872,14 @@ data DeviceFaultVendorBinaryHeaderVersionOneEXT = DeviceFaultVendorBinaryHeaderV -- 'Vulkan.Core10.DeviceInitialization.ApplicationInfo'::@pEngineName@ -- during instance creation. engineNameOffset :: Word32 + , -- | @engineVersion@ /must/ be zero or the value specified by + -- 'Vulkan.Core10.DeviceInitialization.ApplicationInfo'::@engineVersion@ + -- during instance creation. + engineVersion :: Word32 + , -- | @apiVersion@ /must/ be zero or the value specified by + -- 'Vulkan.Core10.DeviceInitialization.ApplicationInfo'::@apiVersion@ + -- during instance creation. + apiVersion :: Word32 } deriving (Typeable) #if defined(GENERIC_INSTANCES) @@ -871,7 +888,7 @@ deriving instance Generic (DeviceFaultVendorBinaryHeaderVersionOneEXT) deriving instance Show DeviceFaultVendorBinaryHeaderVersionOneEXT instance ToCStruct DeviceFaultVendorBinaryHeaderVersionOneEXT where - withCStruct x f = allocaBytes 48 $ \p -> pokeCStruct p x (f p) + withCStruct x f = allocaBytes 56 $ \p -> pokeCStruct p x (f p) pokeCStruct p DeviceFaultVendorBinaryHeaderVersionOneEXT{..} f = do poke ((p `plusPtr` 0 :: Ptr Word32)) (headerSize) poke ((p `plusPtr` 4 :: Ptr DeviceFaultVendorBinaryHeaderVersionEXT)) (headerVersion) @@ -882,8 +899,10 @@ instance ToCStruct DeviceFaultVendorBinaryHeaderVersionOneEXT where poke ((p `plusPtr` 36 :: Ptr Word32)) (applicationNameOffset) poke ((p `plusPtr` 40 :: Ptr Word32)) (applicationVersion) poke ((p `plusPtr` 44 :: Ptr Word32)) (engineNameOffset) + poke ((p `plusPtr` 48 :: Ptr Word32)) (engineVersion) + poke ((p `plusPtr` 52 :: Ptr Word32)) (apiVersion) f - cStructSize = 48 + cStructSize = 56 cStructAlignment = 4 pokeZeroCStruct p f = do poke ((p `plusPtr` 0 :: Ptr Word32)) (zero) @@ -895,6 +914,8 @@ instance ToCStruct DeviceFaultVendorBinaryHeaderVersionOneEXT where poke ((p `plusPtr` 36 :: Ptr Word32)) (zero) poke ((p `plusPtr` 40 :: Ptr Word32)) (zero) poke ((p `plusPtr` 44 :: Ptr Word32)) (zero) + poke ((p `plusPtr` 48 :: Ptr Word32)) (zero) + poke ((p `plusPtr` 52 :: Ptr Word32)) (zero) f instance FromCStruct DeviceFaultVendorBinaryHeaderVersionOneEXT where @@ -908,6 +929,8 @@ instance FromCStruct DeviceFaultVendorBinaryHeaderVersionOneEXT where applicationNameOffset <- peek @Word32 ((p `plusPtr` 36 :: Ptr Word32)) applicationVersion <- peek @Word32 ((p `plusPtr` 40 :: Ptr Word32)) engineNameOffset <- peek @Word32 ((p `plusPtr` 44 :: Ptr Word32)) + engineVersion <- peek @Word32 ((p `plusPtr` 48 :: Ptr Word32)) + apiVersion <- peek @Word32 ((p `plusPtr` 52 :: Ptr Word32)) pure $ DeviceFaultVendorBinaryHeaderVersionOneEXT headerSize headerVersion @@ -918,9 +941,11 @@ instance FromCStruct DeviceFaultVendorBinaryHeaderVersionOneEXT where applicationNameOffset applicationVersion engineNameOffset + engineVersion + apiVersion instance Storable DeviceFaultVendorBinaryHeaderVersionOneEXT where - sizeOf ~_ = 48 + sizeOf ~_ = 56 alignment ~_ = 4 peek = peekCStruct poke ptr poked = pokeCStruct ptr poked (pure ()) @@ -936,6 +961,8 @@ instance Zero DeviceFaultVendorBinaryHeaderVersionOneEXT where zero zero zero + zero + zero -- | VkDeviceFaultAddressTypeEXT - Page fault access types @@ -1103,11 +1130,11 @@ instance Read DeviceFaultVendorBinaryHeaderVersionEXT where conNameDeviceFaultVendorBinaryHeaderVersionEXT DeviceFaultVendorBinaryHeaderVersionEXT -type EXT_DEVICE_FAULT_SPEC_VERSION = 1 +type EXT_DEVICE_FAULT_SPEC_VERSION = 2 -- No documentation found for TopLevel "VK_EXT_DEVICE_FAULT_SPEC_VERSION" pattern EXT_DEVICE_FAULT_SPEC_VERSION :: forall a . Integral a => a -pattern EXT_DEVICE_FAULT_SPEC_VERSION = 1 +pattern EXT_DEVICE_FAULT_SPEC_VERSION = 2 type EXT_DEVICE_FAULT_EXTENSION_NAME = "VK_EXT_device_fault" diff --git a/src/Vulkan/Extensions/VK_EXT_device_fault.hs-boot b/src/Vulkan/Extensions/VK_EXT_device_fault.hs-boot index 0e2275279..cb98e3e1f 100644 --- a/src/Vulkan/Extensions/VK_EXT_device_fault.hs-boot +++ b/src/Vulkan/Extensions/VK_EXT_device_fault.hs-boot @@ -15,7 +15,10 @@ -- 342 -- -- [__Revision__] --- 1 +-- 2 +-- +-- [__Ratification Status__] +-- Not ratified -- -- [__Extension and Version Dependencies__] -- @@ -110,6 +113,12 @@ -- -- == Version History -- +-- - Revision 2, 2023-04-05 (Ralph Potter) +-- +-- - Restored two missing members to the XML definition of +-- VkDeviceFaultVendorBinaryHeaderVersionOneEXT. No functional +-- change to the specification. +-- -- - Revision 1, 2020-10-19 (Ralph Potter) -- -- - Initial revision diff --git a/src/Vulkan/Extensions/VK_EXT_device_memory_report.hs b/src/Vulkan/Extensions/VK_EXT_device_memory_report.hs index 1e9303c0f..681244b24 100644 --- a/src/Vulkan/Extensions/VK_EXT_device_memory_report.hs +++ b/src/Vulkan/Extensions/VK_EXT_device_memory_report.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 2 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- diff --git a/src/Vulkan/Extensions/VK_EXT_device_memory_report.hs-boot b/src/Vulkan/Extensions/VK_EXT_device_memory_report.hs-boot index d4a4af885..0235ce46d 100644 --- a/src/Vulkan/Extensions/VK_EXT_device_memory_report.hs-boot +++ b/src/Vulkan/Extensions/VK_EXT_device_memory_report.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 2 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- diff --git a/src/Vulkan/Extensions/VK_EXT_direct_mode_display.hs b/src/Vulkan/Extensions/VK_EXT_direct_mode_display.hs index 62d573ddd..fdb317440 100644 --- a/src/Vulkan/Extensions/VK_EXT_direct_mode_display.hs +++ b/src/Vulkan/Extensions/VK_EXT_direct_mode_display.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- diff --git a/src/Vulkan/Extensions/VK_EXT_directfb_surface.hs b/src/Vulkan/Extensions/VK_EXT_directfb_surface.hs index d3f2e27c8..c45e21470 100644 --- a/src/Vulkan/Extensions/VK_EXT_directfb_surface.hs +++ b/src/Vulkan/Extensions/VK_EXT_directfb_surface.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- diff --git a/src/Vulkan/Extensions/VK_EXT_directfb_surface.hs-boot b/src/Vulkan/Extensions/VK_EXT_directfb_surface.hs-boot index 5f59822dd..e53b74a26 100644 --- a/src/Vulkan/Extensions/VK_EXT_directfb_surface.hs-boot +++ b/src/Vulkan/Extensions/VK_EXT_directfb_surface.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- diff --git a/src/Vulkan/Extensions/VK_EXT_discard_rectangles.hs b/src/Vulkan/Extensions/VK_EXT_discard_rectangles.hs index 0b452d948..3e369f20d 100644 --- a/src/Vulkan/Extensions/VK_EXT_discard_rectangles.hs +++ b/src/Vulkan/Extensions/VK_EXT_discard_rectangles.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 2 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- or diff --git a/src/Vulkan/Extensions/VK_EXT_discard_rectangles.hs-boot b/src/Vulkan/Extensions/VK_EXT_discard_rectangles.hs-boot index bec22d121..c28876124 100644 --- a/src/Vulkan/Extensions/VK_EXT_discard_rectangles.hs-boot +++ b/src/Vulkan/Extensions/VK_EXT_discard_rectangles.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 2 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- or diff --git a/src/Vulkan/Extensions/VK_EXT_display_control.hs b/src/Vulkan/Extensions/VK_EXT_display_control.hs index ced64da43..f0f33301d 100644 --- a/src/Vulkan/Extensions/VK_EXT_display_control.hs +++ b/src/Vulkan/Extensions/VK_EXT_display_control.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- and diff --git a/src/Vulkan/Extensions/VK_EXT_display_control.hs-boot b/src/Vulkan/Extensions/VK_EXT_display_control.hs-boot index 8aab5fed5..8c40bcc71 100644 --- a/src/Vulkan/Extensions/VK_EXT_display_control.hs-boot +++ b/src/Vulkan/Extensions/VK_EXT_display_control.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- and diff --git a/src/Vulkan/Extensions/VK_EXT_display_surface_counter.hs b/src/Vulkan/Extensions/VK_EXT_display_surface_counter.hs index fb2d7838c..5d6d641b9 100644 --- a/src/Vulkan/Extensions/VK_EXT_display_surface_counter.hs +++ b/src/Vulkan/Extensions/VK_EXT_display_surface_counter.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- @@ -198,11 +201,12 @@ foreign import ccall -- -- == Valid Usage -- --- - [[VUID-{refpage}-surface-06523]] @surface@ /must/ be a valid --- 'Vulkan.Extensions.Handles.SurfaceKHR' handle +-- - #VUID-vkGetPhysicalDeviceSurfaceCapabilities2EXT-surface-06523# +-- @surface@ /must/ be a valid 'Vulkan.Extensions.Handles.SurfaceKHR' +-- handle -- --- - [[VUID-{refpage}-surface-06211]] @surface@ /must/ be supported by --- @physicalDevice@, as reported by +-- - #VUID-vkGetPhysicalDeviceSurfaceCapabilities2EXT-surface-06211# +-- @surface@ /must/ be supported by @physicalDevice@, as reported by -- 'Vulkan.Extensions.VK_KHR_surface.getPhysicalDeviceSurfaceSupportKHR' -- or an equivalent platform-specific mechanism -- diff --git a/src/Vulkan/Extensions/VK_EXT_display_surface_counter.hs-boot b/src/Vulkan/Extensions/VK_EXT_display_surface_counter.hs-boot index 3934af1f9..a7558f6ac 100644 --- a/src/Vulkan/Extensions/VK_EXT_display_surface_counter.hs-boot +++ b/src/Vulkan/Extensions/VK_EXT_display_surface_counter.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- diff --git a/src/Vulkan/Extensions/VK_EXT_dynamic_rendering_unused_attachments.hs b/src/Vulkan/Extensions/VK_EXT_dynamic_rendering_unused_attachments.hs new file mode 100644 index 000000000..71d0e9377 --- /dev/null +++ b/src/Vulkan/Extensions/VK_EXT_dynamic_rendering_unused_attachments.hs @@ -0,0 +1,266 @@ +{-# language CPP #-} +-- | = Name +-- +-- VK_EXT_dynamic_rendering_unused_attachments - device extension +-- +-- == VK_EXT_dynamic_rendering_unused_attachments +-- +-- [__Name String__] +-- @VK_EXT_dynamic_rendering_unused_attachments@ +-- +-- [__Extension Type__] +-- Device extension +-- +-- [__Registered Extension Number__] +-- 500 +-- +-- [__Revision__] +-- 1 +-- +-- [__Ratification Status__] +-- Ratified +-- +-- [__Extension and Version Dependencies__] +--      +-- +--      or +--      +-- +-- and +--      +-- +--      or +--      +-- +-- +-- [__Contact__] +-- +-- - Piers Daniell +-- +-- +-- [__Extension Proposal__] +-- +-- +-- == Other Extension Metadata +-- +-- [__Last Modified Date__] +-- 2023-05-22 +-- +-- [__IP Status__] +-- No known IP claims. +-- +-- [__Contributors__] +-- +-- - Daniel Story, Nintendo +-- +-- - Hans-Kristian Arntzen, Valve +-- +-- - Jan-Harald Fredriksen, Arm +-- +-- - James Fitzpatrick, Imagination Technologies +-- +-- - Pan Gao, Huawei Technologies +-- +-- - Ricardo Garcia, Igalia +-- +-- - Stu Smith, AMD +-- +-- == Description +-- +-- This extension lifts some restrictions in the @VK_KHR_dynamic_rendering@ +-- extension to allow render pass instances and bound pipelines within +-- those render pass instances to have an unused attachment specified in +-- one but not the other. It also allows pipelines to use different formats +-- in a render pass as long the attachment is NULL. +-- +-- == New Structures +-- +-- - Extending +-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2', +-- 'Vulkan.Core10.Device.DeviceCreateInfo': +-- +-- - 'PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT' +-- +-- == New Enum Constants +-- +-- - 'EXT_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_EXTENSION_NAME' +-- +-- - 'EXT_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_SPEC_VERSION' +-- +-- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType': +-- +-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_FEATURES_EXT' +-- +-- == Issues +-- +-- None. +-- +-- == Version History +-- +-- - Revision 1, 2023-05-22 (Piers Daniell) +-- +-- - Internal revisions +-- +-- == See Also +-- +-- 'PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT' +-- +-- == Document Notes +-- +-- For more information, see the +-- +-- +-- This page is a generated document. Fixes and changes should be made to +-- the generator scripts, not directly. +module Vulkan.Extensions.VK_EXT_dynamic_rendering_unused_attachments ( PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT(..) + , EXT_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_SPEC_VERSION + , pattern EXT_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_SPEC_VERSION + , EXT_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_EXTENSION_NAME + , pattern EXT_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_EXTENSION_NAME + ) where + +import Foreign.Marshal.Alloc (allocaBytes) +import Foreign.Ptr (nullPtr) +import Foreign.Ptr (plusPtr) +import Vulkan.CStruct (FromCStruct) +import Vulkan.CStruct (FromCStruct(..)) +import Vulkan.CStruct (ToCStruct) +import Vulkan.CStruct (ToCStruct(..)) +import Vulkan.Zero (Zero(..)) +import Data.String (IsString) +import Data.Typeable (Typeable) +import Foreign.Storable (Storable) +import Foreign.Storable (Storable(peek)) +import Foreign.Storable (Storable(poke)) +import qualified Foreign.Storable (Storable(..)) +import GHC.Generics (Generic) +import Foreign.Ptr (Ptr) +import Data.Kind (Type) +import Vulkan.Core10.FundamentalTypes (bool32ToBool) +import Vulkan.Core10.FundamentalTypes (boolToBool32) +import Vulkan.Core10.FundamentalTypes (Bool32) +import Vulkan.Core10.Enums.StructureType (StructureType) +import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_FEATURES_EXT)) +-- | VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT - Structure +-- describing the dynamic rendering unused attachment features that can be +-- supported by an implementation +-- +-- = Members +-- +-- This structure describes the following feature: +-- +-- = Description +-- +-- If the 'PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT' +-- 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. 'PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT' +-- /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 PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT = PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT + { -- | #features-dynamicRenderingUnusedAttachments# + -- @dynamicRenderingUnusedAttachments@ indicates that the implementation + -- supports binding graphics pipelines within a render pass instance where + -- any pipeline + -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@ + -- element with a format other than + -- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' is allowed with a + -- corresponding + -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@ + -- element with a @imageView@ equal to + -- 'Vulkan.Core10.APIConstants.NULL_HANDLE', or any pipeline + -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@ + -- element with a 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' format is + -- allowed with a corresponding + -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@ + -- element with a non-'Vulkan.Core10.APIConstants.NULL_HANDLE' @imageView@. + -- Also a + -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@ + -- other than 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' is allowed with + -- a 'Vulkan.Core10.APIConstants.NULL_HANDLE' + -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment@, + -- or a + -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@ + -- of 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' is allowed with a + -- non-'Vulkan.Core10.APIConstants.NULL_HANDLE' + -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment@. + -- Also a + -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@ + -- other than 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' is allowed with + -- a 'Vulkan.Core10.APIConstants.NULL_HANDLE' + -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment@, + -- or a + -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@ + -- of 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' is allowed with a + -- non-'Vulkan.Core10.APIConstants.NULL_HANDLE' + -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment@. + -- Any writes to a + -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@, + -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment@, + -- or + -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment@ + -- with 'Vulkan.Core10.APIConstants.NULL_HANDLE' are discarded. + dynamicRenderingUnusedAttachments :: Bool } + deriving (Typeable, Eq) +#if defined(GENERIC_INSTANCES) +deriving instance Generic (PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT) +#endif +deriving instance Show PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT + +instance ToCStruct PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT where + withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p) + pokeCStruct p PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT{..} f = do + poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_FEATURES_EXT) + poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr) + poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (dynamicRenderingUnusedAttachments)) + f + cStructSize = 24 + cStructAlignment = 8 + pokeZeroCStruct p f = do + poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_FEATURES_EXT) + poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr) + poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero)) + f + +instance FromCStruct PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT where + peekCStruct p = do + dynamicRenderingUnusedAttachments <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32)) + pure $ PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT + (bool32ToBool dynamicRenderingUnusedAttachments) + +instance Storable PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT where + sizeOf ~_ = 24 + alignment ~_ = 8 + peek = peekCStruct + poke ptr poked = pokeCStruct ptr poked (pure ()) + +instance Zero PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT where + zero = PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT + zero + + +type EXT_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_SPEC_VERSION = 1 + +-- No documentation found for TopLevel "VK_EXT_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_SPEC_VERSION" +pattern EXT_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_SPEC_VERSION :: forall a . Integral a => a +pattern EXT_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_SPEC_VERSION = 1 + + +type EXT_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_EXTENSION_NAME = "VK_EXT_dynamic_rendering_unused_attachments" + +-- No documentation found for TopLevel "VK_EXT_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_EXTENSION_NAME" +pattern EXT_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a +pattern EXT_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_EXTENSION_NAME = "VK_EXT_dynamic_rendering_unused_attachments" + diff --git a/src/Vulkan/Extensions/VK_EXT_dynamic_rendering_unused_attachments.hs-boot b/src/Vulkan/Extensions/VK_EXT_dynamic_rendering_unused_attachments.hs-boot new file mode 100644 index 000000000..875491bf4 --- /dev/null +++ b/src/Vulkan/Extensions/VK_EXT_dynamic_rendering_unused_attachments.hs-boot @@ -0,0 +1,127 @@ +{-# language CPP #-} +-- | = Name +-- +-- VK_EXT_dynamic_rendering_unused_attachments - device extension +-- +-- == VK_EXT_dynamic_rendering_unused_attachments +-- +-- [__Name String__] +-- @VK_EXT_dynamic_rendering_unused_attachments@ +-- +-- [__Extension Type__] +-- Device extension +-- +-- [__Registered Extension Number__] +-- 500 +-- +-- [__Revision__] +-- 1 +-- +-- [__Ratification Status__] +-- Ratified +-- +-- [__Extension and Version Dependencies__] +--      +-- +--      or +--      +-- +-- and +--      +-- +--      or +--      +-- +-- +-- [__Contact__] +-- +-- - Piers Daniell +-- +-- +-- [__Extension Proposal__] +-- +-- +-- == Other Extension Metadata +-- +-- [__Last Modified Date__] +-- 2023-05-22 +-- +-- [__IP Status__] +-- No known IP claims. +-- +-- [__Contributors__] +-- +-- - Daniel Story, Nintendo +-- +-- - Hans-Kristian Arntzen, Valve +-- +-- - Jan-Harald Fredriksen, Arm +-- +-- - James Fitzpatrick, Imagination Technologies +-- +-- - Pan Gao, Huawei Technologies +-- +-- - Ricardo Garcia, Igalia +-- +-- - Stu Smith, AMD +-- +-- == Description +-- +-- This extension lifts some restrictions in the @VK_KHR_dynamic_rendering@ +-- extension to allow render pass instances and bound pipelines within +-- those render pass instances to have an unused attachment specified in +-- one but not the other. It also allows pipelines to use different formats +-- in a render pass as long the attachment is NULL. +-- +-- == New Structures +-- +-- - Extending +-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2', +-- 'Vulkan.Core10.Device.DeviceCreateInfo': +-- +-- - 'PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT' +-- +-- == New Enum Constants +-- +-- - 'EXT_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_EXTENSION_NAME' +-- +-- - 'EXT_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_SPEC_VERSION' +-- +-- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType': +-- +-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_FEATURES_EXT' +-- +-- == Issues +-- +-- None. +-- +-- == Version History +-- +-- - Revision 1, 2023-05-22 (Piers Daniell) +-- +-- - Internal revisions +-- +-- == See Also +-- +-- 'PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT' +-- +-- == Document Notes +-- +-- For more information, see the +-- +-- +-- This page is a generated document. Fixes and changes should be made to +-- the generator scripts, not directly. +module Vulkan.Extensions.VK_EXT_dynamic_rendering_unused_attachments (PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT) where + +import Vulkan.CStruct (FromCStruct) +import Vulkan.CStruct (ToCStruct) +import Data.Kind (Type) + +data PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT + +instance ToCStruct PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT +instance Show PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT + +instance FromCStruct PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT + diff --git a/src/Vulkan/Extensions/VK_EXT_extended_dynamic_state.hs b/src/Vulkan/Extensions/VK_EXT_extended_dynamic_state.hs index aa9fda371..4adaec533 100644 --- a/src/Vulkan/Extensions/VK_EXT_extended_dynamic_state.hs +++ b/src/Vulkan/Extensions/VK_EXT_extended_dynamic_state.hs @@ -17,12 +17,15 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- or -- -- --- [__Deprecation state__] +-- [__Deprecation State__] -- -- - /Promoted/ to -- @@ -150,7 +153,12 @@ -- interfaces that were promoted remain available as aliases of the core -- functionality. -- --- === Why are the values of @pStrides@ in 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2' limited to be between 0 and the maximum extent of the binding, when this restriction is not present for the same static state? +-- == Issues +-- +-- 1) Why are the values of @pStrides@ in +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2' +-- limited to be between 0 and the maximum extent of the binding, when this +-- restriction is not present for the same static state? -- -- Implementing these edge cases adds overhead to some implementations that -- would require significant cost when calling this function, and the diff --git a/src/Vulkan/Extensions/VK_EXT_extended_dynamic_state.hs-boot b/src/Vulkan/Extensions/VK_EXT_extended_dynamic_state.hs-boot index 4816c9851..bd4d22e58 100644 --- a/src/Vulkan/Extensions/VK_EXT_extended_dynamic_state.hs-boot +++ b/src/Vulkan/Extensions/VK_EXT_extended_dynamic_state.hs-boot @@ -17,12 +17,15 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- or -- -- --- [__Deprecation state__] +-- [__Deprecation State__] -- -- - /Promoted/ to -- @@ -150,7 +153,12 @@ -- interfaces that were promoted remain available as aliases of the core -- functionality. -- --- === Why are the values of @pStrides@ in 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2' limited to be between 0 and the maximum extent of the binding, when this restriction is not present for the same static state? +-- == Issues +-- +-- 1) Why are the values of @pStrides@ in +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2' +-- limited to be between 0 and the maximum extent of the binding, when this +-- restriction is not present for the same static state? -- -- Implementing these edge cases adds overhead to some implementations that -- would require significant cost when calling this function, and the diff --git a/src/Vulkan/Extensions/VK_EXT_extended_dynamic_state2.hs b/src/Vulkan/Extensions/VK_EXT_extended_dynamic_state2.hs index 01df12a36..7627d0d6a 100644 --- a/src/Vulkan/Extensions/VK_EXT_extended_dynamic_state2.hs +++ b/src/Vulkan/Extensions/VK_EXT_extended_dynamic_state2.hs @@ -17,12 +17,15 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- or -- -- --- [__Deprecation state__] +-- [__Deprecation State__] -- -- - /Promoted/ to -- diff --git a/src/Vulkan/Extensions/VK_EXT_extended_dynamic_state2.hs-boot b/src/Vulkan/Extensions/VK_EXT_extended_dynamic_state2.hs-boot index 65da4bb89..7d7e373e9 100644 --- a/src/Vulkan/Extensions/VK_EXT_extended_dynamic_state2.hs-boot +++ b/src/Vulkan/Extensions/VK_EXT_extended_dynamic_state2.hs-boot @@ -17,12 +17,15 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- or -- -- --- [__Deprecation state__] +-- [__Deprecation State__] -- -- - /Promoted/ to -- diff --git a/src/Vulkan/Extensions/VK_EXT_extended_dynamic_state3.hs b/src/Vulkan/Extensions/VK_EXT_extended_dynamic_state3.hs index 63fcfd320..4245b169c 100644 --- a/src/Vulkan/Extensions/VK_EXT_extended_dynamic_state3.hs +++ b/src/Vulkan/Extensions/VK_EXT_extended_dynamic_state3.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 2 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- @@ -80,18 +83,6 @@ -- -- - 'cmdSetConservativeRasterizationModeEXT' -- --- - 'cmdSetCoverageModulationModeNV' --- --- - 'cmdSetCoverageModulationTableEnableNV' --- --- - 'cmdSetCoverageModulationTableNV' --- --- - 'cmdSetCoverageReductionModeNV' --- --- - 'cmdSetCoverageToColorEnableNV' --- --- - 'cmdSetCoverageToColorLocationNV' --- -- - 'cmdSetDepthClampEnableEXT' -- -- - 'cmdSetDepthClipEnableEXT' @@ -114,20 +105,60 @@ -- -- - 'cmdSetRasterizationStreamEXT' -- --- - 'cmdSetRepresentativeFragmentTestEnableNV' --- -- - 'cmdSetSampleLocationsEnableEXT' -- -- - 'cmdSetSampleMaskEXT' -- --- - 'cmdSetShadingRateImageEnableNV' --- -- - 'cmdSetTessellationDomainOriginEXT' -- --- - 'cmdSetViewportSwizzleNV' +-- If +-- +-- is supported: -- -- - 'cmdSetViewportWScalingEnableNV' -- +-- If +-- +-- is supported: +-- +-- - 'cmdSetCoverageReductionModeNV' +-- +-- If +-- +-- is supported: +-- +-- - 'cmdSetCoverageToColorEnableNV' +-- +-- - 'cmdSetCoverageToColorLocationNV' +-- +-- If +-- +-- is supported: +-- +-- - 'cmdSetCoverageModulationModeNV' +-- +-- - 'cmdSetCoverageModulationTableEnableNV' +-- +-- - 'cmdSetCoverageModulationTableNV' +-- +-- If +-- +-- is supported: +-- +-- - 'cmdSetRepresentativeFragmentTestEnableNV' +-- +-- If +-- +-- is supported: +-- +-- - 'cmdSetShadingRateImageEnableNV' +-- +-- If +-- +-- is supported: +-- +-- - 'cmdSetViewportSwizzleNV' +-- -- == New Structures -- -- - 'ColorBlendAdvancedEXT' @@ -167,18 +198,6 @@ -- -- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT' -- --- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV' --- --- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV' --- --- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV' --- --- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV' --- --- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV' --- --- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV' --- -- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT' -- -- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT' @@ -201,26 +220,80 @@ -- -- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_STREAM_EXT' -- --- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV' --- -- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT' -- -- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_MASK_EXT' -- --- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV' --- -- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT' -- --- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV' --- --- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV' --- -- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType': -- -- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT' -- -- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_PROPERTIES_EXT' -- +-- If +-- +-- is supported: +-- +-- - Extending 'Vulkan.Core10.Enums.DynamicState.DynamicState': +-- +-- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV' +-- +-- If +-- +-- is supported: +-- +-- - Extending 'Vulkan.Core10.Enums.DynamicState.DynamicState': +-- +-- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV' +-- +-- If +-- +-- is supported: +-- +-- - Extending 'Vulkan.Core10.Enums.DynamicState.DynamicState': +-- +-- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV' +-- +-- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV' +-- +-- If +-- +-- is supported: +-- +-- - Extending 'Vulkan.Core10.Enums.DynamicState.DynamicState': +-- +-- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV' +-- +-- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV' +-- +-- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV' +-- +-- If +-- +-- is supported: +-- +-- - Extending 'Vulkan.Core10.Enums.DynamicState.DynamicState': +-- +-- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV' +-- +-- If +-- +-- is supported: +-- +-- - Extending 'Vulkan.Core10.Enums.DynamicState.DynamicState': +-- +-- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV' +-- +-- If +-- +-- is supported: +-- +-- - Extending 'Vulkan.Core10.Enums.DynamicState.DynamicState': +-- +-- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV' +-- -- == Issues -- -- 1) What about the VkPipelineMultisampleStateCreateInfo state @@ -252,22 +325,14 @@ -- 'cmdSetAlphaToCoverageEnableEXT', 'cmdSetAlphaToOneEnableEXT', -- 'cmdSetColorBlendAdvancedEXT', 'cmdSetColorBlendEnableEXT', -- 'cmdSetColorBlendEquationEXT', 'cmdSetColorWriteMaskEXT', --- 'cmdSetConservativeRasterizationModeEXT', --- 'cmdSetCoverageModulationModeNV', --- 'cmdSetCoverageModulationTableEnableNV', --- 'cmdSetCoverageModulationTableNV', 'cmdSetCoverageReductionModeNV', --- 'cmdSetCoverageToColorEnableNV', 'cmdSetCoverageToColorLocationNV', --- 'cmdSetDepthClampEnableEXT', 'cmdSetDepthClipEnableEXT', --- 'cmdSetDepthClipNegativeOneToOneEXT', +-- 'cmdSetConservativeRasterizationModeEXT', 'cmdSetDepthClampEnableEXT', +-- 'cmdSetDepthClipEnableEXT', 'cmdSetDepthClipNegativeOneToOneEXT', -- 'cmdSetExtraPrimitiveOverestimationSizeEXT', -- 'cmdSetLineRasterizationModeEXT', 'cmdSetLineStippleEnableEXT', -- 'cmdSetLogicOpEnableEXT', 'cmdSetPolygonModeEXT', -- 'cmdSetProvokingVertexModeEXT', 'cmdSetRasterizationSamplesEXT', --- 'cmdSetRasterizationStreamEXT', --- 'cmdSetRepresentativeFragmentTestEnableNV', --- 'cmdSetSampleLocationsEnableEXT', 'cmdSetSampleMaskEXT', --- 'cmdSetShadingRateImageEnableNV', 'cmdSetTessellationDomainOriginEXT', --- 'cmdSetViewportSwizzleNV', 'cmdSetViewportWScalingEnableNV' +-- 'cmdSetRasterizationStreamEXT', 'cmdSetSampleLocationsEnableEXT', +-- 'cmdSetSampleMaskEXT', 'cmdSetTessellationDomainOriginEXT' -- -- == Document Notes -- @@ -920,8 +985,9 @@ cmdSetSampleMaskEXT :: forall io CommandBuffer -> -- | @samples@ specifies the number of sample bits in the @pSampleMask@. ("samples" ::: SampleCountFlagBits) - -> -- | @pSampleMask@ is a pointer to an array of VkSampleMask values, where the - -- array size is based on the @samples@ parameter. + -> -- | @pSampleMask@ is a pointer to an array of + -- 'Vulkan.Core10.FundamentalTypes.SampleMask' values, where the array size + -- is based on the @samples@ parameter. ("sampleMask" ::: Vector SampleMask) -> io () cmdSetSampleMaskEXT commandBuffer samples sampleMask = liftIO . evalContT $ do @@ -964,8 +1030,8 @@ foreign import ccall -- == Valid Usage -- -- - #VUID-vkCmdSetAlphaToCoverageEnableEXT-None-08506# Either the --- \> feature or the +-- +-- feature or the -- -- feature or both /must/ be enabled -- @@ -1466,6 +1532,15 @@ foreign import ccall -- 'Vulkan.Core10.Pipeline.PipelineColorBlendAttachmentState'::@colorWriteMask@ -- values used to create the currently active pipeline. -- +-- Note +-- +-- Formats with bits that are shared between components specified by +-- 'Vulkan.Core10.Enums.ColorComponentFlagBits.ColorComponentFlagBits', +-- such as 'Vulkan.Core10.Enums.Format.FORMAT_E5B9G9R9_UFLOAT_PACK32', +-- cannot have their channels individually masked by this functionality; +-- either all components that share bits have to be enabled, or none of +-- them. +-- -- == Valid Usage -- -- - #VUID-vkCmdSetColorWriteMaskEXT-None-08540# Either the @@ -2635,6 +2710,7 @@ foreign import ccall -- -- , -- , +-- , -- 'Vulkan.Core10.FundamentalTypes.Bool32', -- 'Vulkan.Core10.Handles.CommandBuffer' cmdSetViewportWScalingEnableNV :: forall io @@ -2738,6 +2814,7 @@ foreign import ccall -- -- , -- , +-- , -- 'Vulkan.Core10.Handles.CommandBuffer', -- 'Vulkan.Extensions.VK_NV_viewport_swizzle.ViewportSwizzleNV' cmdSetViewportSwizzleNV :: forall io @@ -2840,6 +2917,7 @@ foreign import ccall -- -- , -- , +-- , -- 'Vulkan.Core10.FundamentalTypes.Bool32', -- 'Vulkan.Core10.Handles.CommandBuffer' cmdSetCoverageToColorEnableNV :: forall io @@ -2931,6 +3009,7 @@ foreign import ccall -- -- , -- , +-- , -- 'Vulkan.Core10.Handles.CommandBuffer' cmdSetCoverageToColorLocationNV :: forall io . (MonadIO io) @@ -3027,6 +3106,7 @@ foreign import ccall -- -- , -- , +-- , -- 'Vulkan.Core10.Handles.CommandBuffer', -- 'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.CoverageModulationModeNV' cmdSetCoverageModulationModeNV :: forall io @@ -3119,6 +3199,7 @@ foreign import ccall -- -- , -- , +-- , -- 'Vulkan.Core10.FundamentalTypes.Bool32', -- 'Vulkan.Core10.Handles.CommandBuffer' cmdSetCoverageModulationTableEnableNV :: forall io @@ -3221,6 +3302,7 @@ foreign import ccall -- -- , -- , +-- , -- 'Vulkan.Core10.Handles.CommandBuffer' cmdSetCoverageModulationTableNV :: forall io . (MonadIO io) @@ -3316,6 +3398,7 @@ foreign import ccall -- -- , -- , +-- , -- 'Vulkan.Core10.FundamentalTypes.Bool32', -- 'Vulkan.Core10.Handles.CommandBuffer' cmdSetShadingRateImageEnableNV :: forall io @@ -3413,6 +3496,7 @@ foreign import ccall -- -- , -- , +-- , -- 'Vulkan.Core10.Handles.CommandBuffer', -- 'Vulkan.Extensions.VK_NV_coverage_reduction_mode.CoverageReductionModeNV' cmdSetCoverageReductionModeNV :: forall io @@ -3505,6 +3589,7 @@ foreign import ccall -- -- , -- , +-- , -- 'Vulkan.Core10.FundamentalTypes.Bool32', -- 'Vulkan.Core10.Handles.CommandBuffer' cmdSetRepresentativeFragmentTestEnableNV :: forall io diff --git a/src/Vulkan/Extensions/VK_EXT_extended_dynamic_state3.hs-boot b/src/Vulkan/Extensions/VK_EXT_extended_dynamic_state3.hs-boot index dbac0e276..0b31f50be 100644 --- a/src/Vulkan/Extensions/VK_EXT_extended_dynamic_state3.hs-boot +++ b/src/Vulkan/Extensions/VK_EXT_extended_dynamic_state3.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 2 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- @@ -80,18 +83,6 @@ -- -- - 'cmdSetConservativeRasterizationModeEXT' -- --- - 'cmdSetCoverageModulationModeNV' --- --- - 'cmdSetCoverageModulationTableEnableNV' --- --- - 'cmdSetCoverageModulationTableNV' --- --- - 'cmdSetCoverageReductionModeNV' --- --- - 'cmdSetCoverageToColorEnableNV' --- --- - 'cmdSetCoverageToColorLocationNV' --- -- - 'cmdSetDepthClampEnableEXT' -- -- - 'cmdSetDepthClipEnableEXT' @@ -114,20 +105,60 @@ -- -- - 'cmdSetRasterizationStreamEXT' -- --- - 'cmdSetRepresentativeFragmentTestEnableNV' --- -- - 'cmdSetSampleLocationsEnableEXT' -- -- - 'cmdSetSampleMaskEXT' -- --- - 'cmdSetShadingRateImageEnableNV' --- -- - 'cmdSetTessellationDomainOriginEXT' -- --- - 'cmdSetViewportSwizzleNV' +-- If +-- +-- is supported: -- -- - 'cmdSetViewportWScalingEnableNV' -- +-- If +-- +-- is supported: +-- +-- - 'cmdSetCoverageReductionModeNV' +-- +-- If +-- +-- is supported: +-- +-- - 'cmdSetCoverageToColorEnableNV' +-- +-- - 'cmdSetCoverageToColorLocationNV' +-- +-- If +-- +-- is supported: +-- +-- - 'cmdSetCoverageModulationModeNV' +-- +-- - 'cmdSetCoverageModulationTableEnableNV' +-- +-- - 'cmdSetCoverageModulationTableNV' +-- +-- If +-- +-- is supported: +-- +-- - 'cmdSetRepresentativeFragmentTestEnableNV' +-- +-- If +-- +-- is supported: +-- +-- - 'cmdSetShadingRateImageEnableNV' +-- +-- If +-- +-- is supported: +-- +-- - 'cmdSetViewportSwizzleNV' +-- -- == New Structures -- -- - 'ColorBlendAdvancedEXT' @@ -167,18 +198,6 @@ -- -- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT' -- --- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV' --- --- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV' --- --- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV' --- --- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV' --- --- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV' --- --- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV' --- -- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT' -- -- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT' @@ -201,26 +220,80 @@ -- -- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_STREAM_EXT' -- --- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV' --- -- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT' -- -- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_MASK_EXT' -- --- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV' --- -- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT' -- --- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV' --- --- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV' --- -- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType': -- -- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT' -- -- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_PROPERTIES_EXT' -- +-- If +-- +-- is supported: +-- +-- - Extending 'Vulkan.Core10.Enums.DynamicState.DynamicState': +-- +-- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV' +-- +-- If +-- +-- is supported: +-- +-- - Extending 'Vulkan.Core10.Enums.DynamicState.DynamicState': +-- +-- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV' +-- +-- If +-- +-- is supported: +-- +-- - Extending 'Vulkan.Core10.Enums.DynamicState.DynamicState': +-- +-- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV' +-- +-- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV' +-- +-- If +-- +-- is supported: +-- +-- - Extending 'Vulkan.Core10.Enums.DynamicState.DynamicState': +-- +-- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV' +-- +-- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV' +-- +-- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV' +-- +-- If +-- +-- is supported: +-- +-- - Extending 'Vulkan.Core10.Enums.DynamicState.DynamicState': +-- +-- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV' +-- +-- If +-- +-- is supported: +-- +-- - Extending 'Vulkan.Core10.Enums.DynamicState.DynamicState': +-- +-- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV' +-- +-- If +-- +-- is supported: +-- +-- - Extending 'Vulkan.Core10.Enums.DynamicState.DynamicState': +-- +-- - 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV' +-- -- == Issues -- -- 1) What about the VkPipelineMultisampleStateCreateInfo state @@ -252,22 +325,14 @@ -- 'cmdSetAlphaToCoverageEnableEXT', 'cmdSetAlphaToOneEnableEXT', -- 'cmdSetColorBlendAdvancedEXT', 'cmdSetColorBlendEnableEXT', -- 'cmdSetColorBlendEquationEXT', 'cmdSetColorWriteMaskEXT', --- 'cmdSetConservativeRasterizationModeEXT', --- 'cmdSetCoverageModulationModeNV', --- 'cmdSetCoverageModulationTableEnableNV', --- 'cmdSetCoverageModulationTableNV', 'cmdSetCoverageReductionModeNV', --- 'cmdSetCoverageToColorEnableNV', 'cmdSetCoverageToColorLocationNV', --- 'cmdSetDepthClampEnableEXT', 'cmdSetDepthClipEnableEXT', --- 'cmdSetDepthClipNegativeOneToOneEXT', +-- 'cmdSetConservativeRasterizationModeEXT', 'cmdSetDepthClampEnableEXT', +-- 'cmdSetDepthClipEnableEXT', 'cmdSetDepthClipNegativeOneToOneEXT', -- 'cmdSetExtraPrimitiveOverestimationSizeEXT', -- 'cmdSetLineRasterizationModeEXT', 'cmdSetLineStippleEnableEXT', -- 'cmdSetLogicOpEnableEXT', 'cmdSetPolygonModeEXT', -- 'cmdSetProvokingVertexModeEXT', 'cmdSetRasterizationSamplesEXT', --- 'cmdSetRasterizationStreamEXT', --- 'cmdSetRepresentativeFragmentTestEnableNV', --- 'cmdSetSampleLocationsEnableEXT', 'cmdSetSampleMaskEXT', --- 'cmdSetShadingRateImageEnableNV', 'cmdSetTessellationDomainOriginEXT', --- 'cmdSetViewportSwizzleNV', 'cmdSetViewportWScalingEnableNV' +-- 'cmdSetRasterizationStreamEXT', 'cmdSetSampleLocationsEnableEXT', +-- 'cmdSetSampleMaskEXT', 'cmdSetTessellationDomainOriginEXT' -- -- == Document Notes -- diff --git a/src/Vulkan/Extensions/VK_EXT_external_memory_acquire_unmodified.hs b/src/Vulkan/Extensions/VK_EXT_external_memory_acquire_unmodified.hs new file mode 100644 index 000000000..b944619a2 --- /dev/null +++ b/src/Vulkan/Extensions/VK_EXT_external_memory_acquire_unmodified.hs @@ -0,0 +1,248 @@ +{-# language CPP #-} +-- | = Name +-- +-- VK_EXT_external_memory_acquire_unmodified - device extension +-- +-- == VK_EXT_external_memory_acquire_unmodified +-- +-- [__Name String__] +-- @VK_EXT_external_memory_acquire_unmodified@ +-- +-- [__Extension Type__] +-- Device extension +-- +-- [__Registered Extension Number__] +-- 454 +-- +-- [__Revision__] +-- 1 +-- +-- [__Ratification Status__] +-- Ratified +-- +-- [__Extension and Version Dependencies__] +-- +-- +-- [__Contact__] +-- +-- - Lina Versace +-- +-- +-- [__Extension Proposal__] +-- +-- +-- == Other Extension Metadata +-- +-- [__Last Modified Date__] +-- 2023-03-09 +-- +-- [__Contributors__] +-- +-- - Lina Versace, Google +-- +-- - Chia-I Wu, Google +-- +-- - James Jones, NVIDIA +-- +-- - Yiwei Zhang, Google +-- +-- == Description +-- +-- A memory barrier /may/ have a performance penalty when acquiring +-- ownership of a subresource range from an external queue family. This +-- extension provides API that /may/ reduce the performance penalty if +-- ownership of the subresource range was previously released to the +-- external queue family and if the resource’s memory has remained +-- unmodified between the release and acquire operations. +-- +-- == New Structures +-- +-- - Extending 'Vulkan.Core10.OtherTypes.BufferMemoryBarrier', +-- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.BufferMemoryBarrier2', +-- 'Vulkan.Core10.OtherTypes.ImageMemoryBarrier', +-- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.ImageMemoryBarrier2': +-- +-- - 'ExternalMemoryAcquireUnmodifiedEXT' +-- +-- == New Enum Constants +-- +-- - 'EXT_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_EXTENSION_NAME' +-- +-- - 'EXT_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_SPEC_VERSION' +-- +-- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType': +-- +-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_EXT' +-- +-- == Version History +-- +-- - Revision 1, 2023-03-09 (Lina Versace) +-- +-- - Initial revision +-- +-- == See Also +-- +-- 'ExternalMemoryAcquireUnmodifiedEXT' +-- +-- == Document Notes +-- +-- For more information, see the +-- +-- +-- This page is a generated document. Fixes and changes should be made to +-- the generator scripts, not directly. +module Vulkan.Extensions.VK_EXT_external_memory_acquire_unmodified ( ExternalMemoryAcquireUnmodifiedEXT(..) + , EXT_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_SPEC_VERSION + , pattern EXT_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_SPEC_VERSION + , EXT_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_EXTENSION_NAME + , pattern EXT_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_EXTENSION_NAME + ) where + +import Foreign.Marshal.Alloc (allocaBytes) +import Foreign.Ptr (nullPtr) +import Foreign.Ptr (plusPtr) +import Vulkan.CStruct (FromCStruct) +import Vulkan.CStruct (FromCStruct(..)) +import Vulkan.CStruct (ToCStruct) +import Vulkan.CStruct (ToCStruct(..)) +import Vulkan.Zero (Zero(..)) +import Data.String (IsString) +import Data.Typeable (Typeable) +import Foreign.Storable (Storable) +import Foreign.Storable (Storable(peek)) +import Foreign.Storable (Storable(poke)) +import qualified Foreign.Storable (Storable(..)) +import GHC.Generics (Generic) +import Foreign.Ptr (Ptr) +import Data.Kind (Type) +import Vulkan.Core10.FundamentalTypes (bool32ToBool) +import Vulkan.Core10.FundamentalTypes (boolToBool32) +import Vulkan.Core10.FundamentalTypes (Bool32) +import Vulkan.Core10.Enums.StructureType (StructureType) +import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_EXT)) +-- | VkExternalMemoryAcquireUnmodifiedEXT - Structure specifying that +-- external memory has remained unmodified since releasing ownership +-- +-- = Description +-- +-- If the application releases ownership of the subresource range to one of +-- the special queue families reserved for external memory ownership +-- transfers with a memory barrier structure, and later re-acquires +-- ownership from the same queue family with a memory barrier structure, +-- and if no range of 'Vulkan.Core10.Handles.DeviceMemory' bound to the +-- resource was modified at any time between the /release operation/ and +-- the /acquire operation/, then the application /should/ add a +-- 'ExternalMemoryAcquireUnmodifiedEXT' structure to the @pNext@ chain of +-- the /acquire operation/\'s memory barrier structure because this /may/ +-- reduce the performance penalty. +-- +-- This struct is ignored if @acquireUnmodifiedMemory@ is +-- 'Vulkan.Core10.FundamentalTypes.FALSE'. In particular, +-- 'Vulkan.Core10.FundamentalTypes.FALSE' does /not/ specify that memory +-- was modified. +-- +-- This struct is ignored if the memory barrier’s @srcQueueFamilyIndex@ is +-- not a special queue family reserved for external memory ownership +-- transfers. +-- +-- Note +-- +-- The method by which the application determines whether memory was +-- modified between the /release operation/ and /acquire operation/ is +-- outside the scope of Vulkan. +-- +-- For any Vulkan operation that accesses a resource, the application +-- /must/ not assume the implementation accesses the resource’s memory as +-- read-only, even for /apparently/ read-only operations such as transfer +-- commands and shader reads. +-- +-- The validity of +-- 'ExternalMemoryAcquireUnmodifiedEXT'::@acquireUnmodifiedMemory@ is +-- independent of memory ranges outside the ranges of +-- 'Vulkan.Core10.Handles.DeviceMemory' bound to the resource. In +-- particular, it is independent of any implementation-private memory +-- associated with the resource. +-- +-- == Valid Usage +-- +-- - #VUID-VkExternalMemoryAcquireUnmodifiedEXT-acquireUnmodifiedMemory-08922# +-- If @acquireUnmodifiedMemory@ is +-- 'Vulkan.Core10.FundamentalTypes.TRUE', and the memory barrier’s +-- @srcQueueFamilyIndex@ is a special queue family reserved for +-- external memory ownership transfers (as described in +-- ), +-- then each range of 'Vulkan.Core10.Handles.DeviceMemory' bound to the +-- resource /must/ have remained unmodified during all time since the +-- resource’s most recent release of ownership to the queue family. +-- +-- == Valid Usage (Implicit) +-- +-- - #VUID-VkExternalMemoryAcquireUnmodifiedEXT-sType-sType# @sType@ +-- /must/ be +-- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_EXT' +-- +-- = See Also +-- +-- , +-- 'Vulkan.Core10.FundamentalTypes.Bool32', +-- 'Vulkan.Core10.Enums.StructureType.StructureType' +data ExternalMemoryAcquireUnmodifiedEXT = ExternalMemoryAcquireUnmodifiedEXT + { -- | @acquireUnmodifiedMemory@ specifies, if + -- 'Vulkan.Core10.FundamentalTypes.TRUE', that no range of + -- 'Vulkan.Core10.Handles.DeviceMemory' bound to the resource of the memory + -- barrier’s subresource range was modified at any time since the + -- resource’s most recent release of ownership to the queue family + -- specified by the memory barrier’s @srcQueueFamilyIndex@. If + -- 'Vulkan.Core10.FundamentalTypes.FALSE', it specifies nothing. + acquireUnmodifiedMemory :: Bool } + deriving (Typeable, Eq) +#if defined(GENERIC_INSTANCES) +deriving instance Generic (ExternalMemoryAcquireUnmodifiedEXT) +#endif +deriving instance Show ExternalMemoryAcquireUnmodifiedEXT + +instance ToCStruct ExternalMemoryAcquireUnmodifiedEXT where + withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p) + pokeCStruct p ExternalMemoryAcquireUnmodifiedEXT{..} f = do + poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_EXT) + poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr) + poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (acquireUnmodifiedMemory)) + f + cStructSize = 24 + cStructAlignment = 8 + pokeZeroCStruct p f = do + poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_EXT) + poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr) + poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero)) + f + +instance FromCStruct ExternalMemoryAcquireUnmodifiedEXT where + peekCStruct p = do + acquireUnmodifiedMemory <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32)) + pure $ ExternalMemoryAcquireUnmodifiedEXT + (bool32ToBool acquireUnmodifiedMemory) + +instance Storable ExternalMemoryAcquireUnmodifiedEXT where + sizeOf ~_ = 24 + alignment ~_ = 8 + peek = peekCStruct + poke ptr poked = pokeCStruct ptr poked (pure ()) + +instance Zero ExternalMemoryAcquireUnmodifiedEXT where + zero = ExternalMemoryAcquireUnmodifiedEXT + zero + + +type EXT_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_SPEC_VERSION = 1 + +-- No documentation found for TopLevel "VK_EXT_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_SPEC_VERSION" +pattern EXT_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_SPEC_VERSION :: forall a . Integral a => a +pattern EXT_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_SPEC_VERSION = 1 + + +type EXT_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_EXTENSION_NAME = "VK_EXT_external_memory_acquire_unmodified" + +-- No documentation found for TopLevel "VK_EXT_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_EXTENSION_NAME" +pattern EXT_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a +pattern EXT_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_EXTENSION_NAME = "VK_EXT_external_memory_acquire_unmodified" + diff --git a/src/Vulkan/Extensions/VK_EXT_external_memory_acquire_unmodified.hs-boot b/src/Vulkan/Extensions/VK_EXT_external_memory_acquire_unmodified.hs-boot new file mode 100644 index 000000000..c26fe6948 --- /dev/null +++ b/src/Vulkan/Extensions/VK_EXT_external_memory_acquire_unmodified.hs-boot @@ -0,0 +1,106 @@ +{-# language CPP #-} +-- | = Name +-- +-- VK_EXT_external_memory_acquire_unmodified - device extension +-- +-- == VK_EXT_external_memory_acquire_unmodified +-- +-- [__Name String__] +-- @VK_EXT_external_memory_acquire_unmodified@ +-- +-- [__Extension Type__] +-- Device extension +-- +-- [__Registered Extension Number__] +-- 454 +-- +-- [__Revision__] +-- 1 +-- +-- [__Ratification Status__] +-- Ratified +-- +-- [__Extension and Version Dependencies__] +-- +-- +-- [__Contact__] +-- +-- - Lina Versace +-- +-- +-- [__Extension Proposal__] +-- +-- +-- == Other Extension Metadata +-- +-- [__Last Modified Date__] +-- 2023-03-09 +-- +-- [__Contributors__] +-- +-- - Lina Versace, Google +-- +-- - Chia-I Wu, Google +-- +-- - James Jones, NVIDIA +-- +-- - Yiwei Zhang, Google +-- +-- == Description +-- +-- A memory barrier /may/ have a performance penalty when acquiring +-- ownership of a subresource range from an external queue family. This +-- extension provides API that /may/ reduce the performance penalty if +-- ownership of the subresource range was previously released to the +-- external queue family and if the resource’s memory has remained +-- unmodified between the release and acquire operations. +-- +-- == New Structures +-- +-- - Extending 'Vulkan.Core10.OtherTypes.BufferMemoryBarrier', +-- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.BufferMemoryBarrier2', +-- 'Vulkan.Core10.OtherTypes.ImageMemoryBarrier', +-- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.ImageMemoryBarrier2': +-- +-- - 'ExternalMemoryAcquireUnmodifiedEXT' +-- +-- == New Enum Constants +-- +-- - 'EXT_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_EXTENSION_NAME' +-- +-- - 'EXT_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_SPEC_VERSION' +-- +-- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType': +-- +-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_EXT' +-- +-- == Version History +-- +-- - Revision 1, 2023-03-09 (Lina Versace) +-- +-- - Initial revision +-- +-- == See Also +-- +-- 'ExternalMemoryAcquireUnmodifiedEXT' +-- +-- == Document Notes +-- +-- For more information, see the +-- +-- +-- This page is a generated document. Fixes and changes should be made to +-- the generator scripts, not directly. +module Vulkan.Extensions.VK_EXT_external_memory_acquire_unmodified (ExternalMemoryAcquireUnmodifiedEXT) where + +import Vulkan.CStruct (FromCStruct) +import Vulkan.CStruct (ToCStruct) +import Data.Kind (Type) + +data ExternalMemoryAcquireUnmodifiedEXT + +instance ToCStruct ExternalMemoryAcquireUnmodifiedEXT +instance Show ExternalMemoryAcquireUnmodifiedEXT + +instance FromCStruct ExternalMemoryAcquireUnmodifiedEXT + diff --git a/src/Vulkan/Extensions/VK_EXT_external_memory_dma_buf.hs b/src/Vulkan/Extensions/VK_EXT_external_memory_dma_buf.hs index 87955c1fd..078e162a8 100644 --- a/src/Vulkan/Extensions/VK_EXT_external_memory_dma_buf.hs +++ b/src/Vulkan/Extensions/VK_EXT_external_memory_dma_buf.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- diff --git a/src/Vulkan/Extensions/VK_EXT_external_memory_host.hs b/src/Vulkan/Extensions/VK_EXT_external_memory_host.hs index dc83db83a..715665ab0 100644 --- a/src/Vulkan/Extensions/VK_EXT_external_memory_host.hs +++ b/src/Vulkan/Extensions/VK_EXT_external_memory_host.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- or @@ -268,6 +271,9 @@ foreign import ccall -- 'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.ExternalMemoryHandleTypeFlagBits' -- value -- +-- - #VUID-vkGetMemoryHostPointerPropertiesEXT-pHostPointer-parameter# +-- @pHostPointer@ /must/ be a pointer value +-- -- - #VUID-vkGetMemoryHostPointerPropertiesEXT-pMemoryHostPointerProperties-parameter# -- @pMemoryHostPointerProperties@ /must/ be a valid pointer to a -- 'MemoryHostPointerPropertiesEXT' structure @@ -390,6 +396,9 @@ getMemoryHostPointerPropertiesEXT device -- 'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.ExternalMemoryHandleTypeFlagBits' -- value -- +-- - #VUID-VkImportMemoryHostPointerInfoEXT-pHostPointer-parameter# +-- @pHostPointer@ /must/ be a pointer value +-- -- = See Also -- -- , diff --git a/src/Vulkan/Extensions/VK_EXT_external_memory_host.hs-boot b/src/Vulkan/Extensions/VK_EXT_external_memory_host.hs-boot index 5a2b1423d..1ba18c036 100644 --- a/src/Vulkan/Extensions/VK_EXT_external_memory_host.hs-boot +++ b/src/Vulkan/Extensions/VK_EXT_external_memory_host.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- or diff --git a/src/Vulkan/Extensions/VK_EXT_filter_cubic.hs b/src/Vulkan/Extensions/VK_EXT_filter_cubic.hs index 6318b946c..dadce1656 100644 --- a/src/Vulkan/Extensions/VK_EXT_filter_cubic.hs +++ b/src/Vulkan/Extensions/VK_EXT_filter_cubic.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 3 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__; __Contact__] -- -- - Bill Licea-Kane @@ -39,7 +42,7 @@ -- -- - Graeme Leese, Broadcom -- --- - Jan-Herald Fredericksen, ARM +-- - Jan-Harald Fredriksen, ARM -- -- - Jeff Leger, Qualcomm Technologies, Inc. -- diff --git a/src/Vulkan/Extensions/VK_EXT_filter_cubic.hs-boot b/src/Vulkan/Extensions/VK_EXT_filter_cubic.hs-boot index b4f8ec89c..070c3b436 100644 --- a/src/Vulkan/Extensions/VK_EXT_filter_cubic.hs-boot +++ b/src/Vulkan/Extensions/VK_EXT_filter_cubic.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 3 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__; __Contact__] -- -- - Bill Licea-Kane @@ -39,7 +42,7 @@ -- -- - Graeme Leese, Broadcom -- --- - Jan-Herald Fredericksen, ARM +-- - Jan-Harald Fredriksen, ARM -- -- - Jeff Leger, Qualcomm Technologies, Inc. -- diff --git a/src/Vulkan/Extensions/VK_EXT_fragment_density_map.hs b/src/Vulkan/Extensions/VK_EXT_fragment_density_map.hs index 27127c556..50f8eff56 100644 --- a/src/Vulkan/Extensions/VK_EXT_fragment_density_map.hs +++ b/src/Vulkan/Extensions/VK_EXT_fragment_density_map.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 2 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- diff --git a/src/Vulkan/Extensions/VK_EXT_fragment_density_map.hs-boot b/src/Vulkan/Extensions/VK_EXT_fragment_density_map.hs-boot index 3c23af852..12e689931 100644 --- a/src/Vulkan/Extensions/VK_EXT_fragment_density_map.hs-boot +++ b/src/Vulkan/Extensions/VK_EXT_fragment_density_map.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 2 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- diff --git a/src/Vulkan/Extensions/VK_EXT_fragment_density_map2.hs b/src/Vulkan/Extensions/VK_EXT_fragment_density_map2.hs index bd98afe54..2774ee7a4 100644 --- a/src/Vulkan/Extensions/VK_EXT_fragment_density_map2.hs +++ b/src/Vulkan/Extensions/VK_EXT_fragment_density_map2.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- diff --git a/src/Vulkan/Extensions/VK_EXT_fragment_density_map2.hs-boot b/src/Vulkan/Extensions/VK_EXT_fragment_density_map2.hs-boot index 55b96fe87..de823a1b5 100644 --- a/src/Vulkan/Extensions/VK_EXT_fragment_density_map2.hs-boot +++ b/src/Vulkan/Extensions/VK_EXT_fragment_density_map2.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- diff --git a/src/Vulkan/Extensions/VK_EXT_fragment_shader_interlock.hs b/src/Vulkan/Extensions/VK_EXT_fragment_shader_interlock.hs index b281713c4..7481b006e 100644 --- a/src/Vulkan/Extensions/VK_EXT_fragment_shader_interlock.hs +++ b/src/Vulkan/Extensions/VK_EXT_fragment_shader_interlock.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- or diff --git a/src/Vulkan/Extensions/VK_EXT_fragment_shader_interlock.hs-boot b/src/Vulkan/Extensions/VK_EXT_fragment_shader_interlock.hs-boot index 66e54377f..823b669cb 100644 --- a/src/Vulkan/Extensions/VK_EXT_fragment_shader_interlock.hs-boot +++ b/src/Vulkan/Extensions/VK_EXT_fragment_shader_interlock.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- or diff --git a/src/Vulkan/Extensions/VK_EXT_frame_boundary.hs b/src/Vulkan/Extensions/VK_EXT_frame_boundary.hs new file mode 100644 index 000000000..026eae13e --- /dev/null +++ b/src/Vulkan/Extensions/VK_EXT_frame_boundary.hs @@ -0,0 +1,497 @@ +{-# language CPP #-} +-- | = Name +-- +-- VK_EXT_frame_boundary - device extension +-- +-- == VK_EXT_frame_boundary +-- +-- [__Name String__] +-- @VK_EXT_frame_boundary@ +-- +-- [__Extension Type__] +-- Device extension +-- +-- [__Registered Extension Number__] +-- 376 +-- +-- [__Revision__] +-- 1 +-- +-- [__Ratification Status__] +-- Ratified +-- +-- [__Extension and Version Dependencies__; __Contact__] +-- +-- - James Fitzpatrick +-- +-- +-- [__Extension Proposal__] +-- +-- +-- == Other Extension Metadata +-- +-- [__Last Modified Date__] +-- 2023-06-14 +-- +-- [__Contributors__] +-- +-- - James Fitzpatrick, Imagination Technologies +-- +-- - Hugues Evrard, Google +-- +-- - Melih Yasin Yalcin, Google +-- +-- - Andrew Garrard, Imagination Technologies +-- +-- - Jan-Harald Fredriksen, Arm +-- +-- - Vassili Nikolaev, NVIDIA +-- +-- - Ting Wei, Huawei +-- +-- == Description +-- +-- +-- is a device extension that helps __tools__ (such as debuggers) to group +-- queue submissions per frames in non-trivial scenarios, typically when +-- 'Vulkan.Extensions.VK_KHR_swapchain.queuePresentKHR' is not a relevant +-- frame boundary delimiter. +-- +-- == New Structures +-- +-- - Extending +-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2', +-- 'Vulkan.Core10.Device.DeviceCreateInfo': +-- +-- - 'PhysicalDeviceFrameBoundaryFeaturesEXT' +-- +-- - Extending 'Vulkan.Core10.Queue.SubmitInfo', +-- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.SubmitInfo2', +-- 'Vulkan.Extensions.VK_KHR_swapchain.PresentInfoKHR', +-- 'Vulkan.Core10.SparseResourceMemoryManagement.BindSparseInfo': +-- +-- - 'FrameBoundaryEXT' +-- +-- == New Enums +-- +-- - 'FrameBoundaryFlagBitsEXT' +-- +-- == New Bitmasks +-- +-- - 'FrameBoundaryFlagsEXT' +-- +-- == New Enum Constants +-- +-- - 'EXT_FRAME_BOUNDARY_EXTENSION_NAME' +-- +-- - 'EXT_FRAME_BOUNDARY_SPEC_VERSION' +-- +-- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType': +-- +-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_FRAME_BOUNDARY_EXT' +-- +-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAME_BOUNDARY_FEATURES_EXT' +-- +-- == Version History +-- +-- - Revision 0, 2022-01-14 (Hugues Evard) +-- +-- - Initial proposal +-- +-- - Revision 1, 2023-06-14 (James Fitzpatrick) +-- +-- - Initial draft +-- +-- == See Also +-- +-- 'FrameBoundaryEXT', 'FrameBoundaryFlagBitsEXT', 'FrameBoundaryFlagsEXT', +-- 'PhysicalDeviceFrameBoundaryFeaturesEXT' +-- +-- == Document Notes +-- +-- For more information, see the +-- +-- +-- This page is a generated document. Fixes and changes should be made to +-- the generator scripts, not directly. +module Vulkan.Extensions.VK_EXT_frame_boundary ( FrameBoundaryEXT(..) + , PhysicalDeviceFrameBoundaryFeaturesEXT(..) + , FrameBoundaryFlagsEXT + , FrameBoundaryFlagBitsEXT( FRAME_BOUNDARY_FRAME_END_BIT_EXT + , .. + ) + , EXT_FRAME_BOUNDARY_SPEC_VERSION + , pattern EXT_FRAME_BOUNDARY_SPEC_VERSION + , EXT_FRAME_BOUNDARY_EXTENSION_NAME + , pattern EXT_FRAME_BOUNDARY_EXTENSION_NAME + ) where + +import Data.Bits (Bits) +import Data.Bits (FiniteBits) +import Vulkan.Internal.Utils (enumReadPrec) +import Vulkan.Internal.Utils (enumShowsPrec) +import Control.Monad (unless) +import Foreign.Marshal.Alloc (allocaBytes) +import GHC.IO (throwIO) +import Foreign.Ptr (nullPtr) +import Foreign.Ptr (plusPtr) +import GHC.Show (showString) +import Numeric (showHex) +import Data.Coerce (coerce) +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 qualified Data.Vector (null) +import Vulkan.CStruct (FromCStruct) +import Vulkan.CStruct (FromCStruct(..)) +import Vulkan.CStruct (ToCStruct) +import Vulkan.CStruct (ToCStruct(..)) +import Vulkan.Zero (Zero) +import Vulkan.Zero (Zero(..)) +import Data.String (IsString) +import Data.Typeable (Typeable) +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 (Ptr) +import GHC.Read (Read(readPrec)) +import GHC.Show (Show(showsPrec)) +import Data.Word (Word32) +import Data.Word (Word64) +import Data.Kind (Type) +import Control.Monad.Trans.Cont (ContT(..)) +import Data.Vector (Vector) +import Vulkan.CStruct.Utils (advancePtrBytes) +import Vulkan.Core10.FundamentalTypes (bool32ToBool) +import Vulkan.Core10.FundamentalTypes (boolToBool32) +import Vulkan.Core10.FundamentalTypes (Bool32) +import Vulkan.Core10.Handles (Buffer) +import Vulkan.Core10.FundamentalTypes (Flags) +import Vulkan.Core10.Handles (Image) +import Vulkan.Core10.Enums.StructureType (StructureType) +import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_FRAME_BOUNDARY_EXT)) +import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAME_BOUNDARY_FEATURES_EXT)) +-- | VkFrameBoundaryEXT - Add frame boundary information to queue submissions +-- +-- = Description +-- +-- The application /can/ associate frame boundary information to a queue +-- submission call by adding a 'FrameBoundaryEXT' structure to the @pNext@ +-- chain of +-- , +-- 'Vulkan.Extensions.VK_KHR_swapchain.PresentInfoKHR', or +-- 'Vulkan.Core10.SparseResourceMemoryManagement.BindSparseInfo'. +-- +-- The frame identifier is used to associate one or more queue submission +-- to a frame, it is thus meant to be unique within a frame lifetime, i.e. +-- it is possible (but not recommended) to reuse frame identifiers, as long +-- as any two frames with any chance of having overlapping queue +-- submissions (as in the example above) use two different frame +-- identifiers. +-- +-- Note +-- +-- Since the concept of frame is application-dependent, there is no way to +-- validate the use of frame identifier. It is good practice to use a +-- monotonically increasing counter as the frame identifier and not reuse +-- identifiers between frames. +-- +-- The @pImages@ and @pBuffers@ arrays contain a list of images and buffers +-- which store the \"end result\" of the frame. As the concept of frame is +-- application-dependent, not all frames /may/ produce their results in +-- images or buffers, yet this is a sufficiently common case to be handled +-- by 'FrameBoundaryEXT'. Note that no extra information, such as image +-- layout is being provided, since the images are meant to be used by tools +-- which would already be tracking this required information. Having the +-- possibility of passing a list of end-result images makes +-- 'FrameBoundaryEXT' as expressive as +-- 'Vulkan.Extensions.VK_KHR_swapchain.queuePresentKHR', which is often the +-- default frame boundary delimiter. +-- +-- The application /can/ also associate arbitrary extra information via tag +-- data using @tagName@, @tagSize@ and @pTag@. This extra information is +-- typically tool-specific. +-- +-- == Valid Usage (Implicit) +-- +-- - #VUID-VkFrameBoundaryEXT-sType-sType# @sType@ /must/ be +-- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_FRAME_BOUNDARY_EXT' +-- +-- - #VUID-VkFrameBoundaryEXT-flags-parameter# @flags@ /must/ be a valid +-- combination of 'FrameBoundaryFlagBitsEXT' values +-- +-- - #VUID-VkFrameBoundaryEXT-pImages-parameter# If @imageCount@ is not +-- @0@, and @pImages@ is not @NULL@, @pImages@ /must/ be a valid +-- pointer to an array of @imageCount@ valid +-- 'Vulkan.Core10.Handles.Image' handles +-- +-- - #VUID-VkFrameBoundaryEXT-pBuffers-parameter# If @bufferCount@ is not +-- @0@, and @pBuffers@ is not @NULL@, @pBuffers@ /must/ be a valid +-- pointer to an array of @bufferCount@ valid +-- 'Vulkan.Core10.Handles.Buffer' handles +-- +-- - #VUID-VkFrameBoundaryEXT-pTag-parameter# If @tagSize@ is not @0@, +-- and @pTag@ is not @NULL@, @pTag@ /must/ be a valid pointer to an +-- array of @tagSize@ bytes +-- +-- - #VUID-VkFrameBoundaryEXT-commonparent# Both of the elements of +-- @pBuffers@, and the elements of @pImages@ that are valid handles of +-- non-ignored parameters /must/ have been created, allocated, or +-- retrieved from the same 'Vulkan.Core10.Handles.Device' +-- +-- = See Also +-- +-- , +-- 'Vulkan.Core10.Handles.Buffer', 'FrameBoundaryFlagsEXT', +-- 'Vulkan.Core10.Handles.Image', +-- 'Vulkan.Core10.Enums.StructureType.StructureType' +data FrameBoundaryEXT = FrameBoundaryEXT + { -- | @flags@ is a bitmask of 'FrameBoundaryFlagBitsEXT' that can flag the + -- last submission of a frame identifier. + flags :: FrameBoundaryFlagsEXT + , -- | @frameID@ is the frame identifier. + frameID :: Word64 + , -- | @imageCount@ is the number of images that store frame results. + imageCount :: Word32 + , -- | @pImages@ is a pointer to an array of VkImage objects with imageCount + -- entries. + images :: Vector Image + , -- | @bufferCount@ is the number of buffers the store the frame results. + bufferCount :: Word32 + , -- | @pBuffers@ is a pointer to an array of VkBuffer objects with bufferCount + -- entries. + buffers :: Vector Buffer + , -- | @tagName@ is a numerical identifier for tag data. + tagName :: Word64 + , -- | @tagSize@ is the number of bytes of tag data. + tagSize :: Word64 + , -- | @pTag@ is a pointer to an array of @tagSize@ bytes containing tag data. + tag :: Ptr () + } + deriving (Typeable) +#if defined(GENERIC_INSTANCES) +deriving instance Generic (FrameBoundaryEXT) +#endif +deriving instance Show FrameBoundaryEXT + +instance ToCStruct FrameBoundaryEXT where + withCStruct x f = allocaBytes 88 $ \p -> pokeCStruct p x (f p) + pokeCStruct p FrameBoundaryEXT{..} f = evalContT $ do + lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_FRAME_BOUNDARY_EXT) + lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr) + lift $ poke ((p `plusPtr` 16 :: Ptr FrameBoundaryFlagsEXT)) (flags) + lift $ poke ((p `plusPtr` 24 :: Ptr Word64)) (frameID) + let pImagesLength = Data.Vector.length $ (images) + imageCount'' <- lift $ if (imageCount) == 0 + then pure $ fromIntegral pImagesLength + else do + unless (fromIntegral pImagesLength == (imageCount) || pImagesLength == 0) $ + throwIO $ IOError Nothing InvalidArgument "" "pImages must be empty or have 'imageCount' elements" Nothing Nothing + pure (imageCount) + lift $ poke ((p `plusPtr` 32 :: Ptr Word32)) (imageCount'') + pImages'' <- if Data.Vector.null (images) + then pure nullPtr + else do + pPImages <- ContT $ allocaBytes @Image (((Data.Vector.length (images))) * 8) + lift $ Data.Vector.imapM_ (\i e -> poke (pPImages `plusPtr` (8 * (i)) :: Ptr Image) (e)) ((images)) + pure $ pPImages + lift $ poke ((p `plusPtr` 40 :: Ptr (Ptr Image))) pImages'' + let pBuffersLength = Data.Vector.length $ (buffers) + bufferCount'' <- lift $ if (bufferCount) == 0 + then pure $ fromIntegral pBuffersLength + else do + unless (fromIntegral pBuffersLength == (bufferCount) || pBuffersLength == 0) $ + throwIO $ IOError Nothing InvalidArgument "" "pBuffers must be empty or have 'bufferCount' elements" Nothing Nothing + pure (bufferCount) + lift $ poke ((p `plusPtr` 48 :: Ptr Word32)) (bufferCount'') + pBuffers'' <- if Data.Vector.null (buffers) + then pure nullPtr + else do + pPBuffers <- ContT $ allocaBytes @Buffer (((Data.Vector.length (buffers))) * 8) + lift $ Data.Vector.imapM_ (\i e -> poke (pPBuffers `plusPtr` (8 * (i)) :: Ptr Buffer) (e)) ((buffers)) + pure $ pPBuffers + lift $ poke ((p `plusPtr` 56 :: Ptr (Ptr Buffer))) pBuffers'' + lift $ poke ((p `plusPtr` 64 :: Ptr Word64)) (tagName) + lift $ poke ((p `plusPtr` 72 :: Ptr CSize)) (CSize (tagSize)) + lift $ poke ((p `plusPtr` 80 :: Ptr (Ptr ()))) (tag) + lift $ f + cStructSize = 88 + cStructAlignment = 8 + pokeZeroCStruct p f = do + poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_FRAME_BOUNDARY_EXT) + poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr) + poke ((p `plusPtr` 24 :: Ptr Word64)) (zero) + f + +instance FromCStruct FrameBoundaryEXT where + peekCStruct p = do + flags <- peek @FrameBoundaryFlagsEXT ((p `plusPtr` 16 :: Ptr FrameBoundaryFlagsEXT)) + frameID <- peek @Word64 ((p `plusPtr` 24 :: Ptr Word64)) + imageCount <- peek @Word32 ((p `plusPtr` 32 :: Ptr Word32)) + pImages <- peek @(Ptr Image) ((p `plusPtr` 40 :: Ptr (Ptr Image))) + let pImagesLength = if pImages == nullPtr then 0 else (fromIntegral imageCount) + pImages' <- generateM pImagesLength (\i -> peek @Image ((pImages `advancePtrBytes` (8 * (i)) :: Ptr Image))) + bufferCount <- peek @Word32 ((p `plusPtr` 48 :: Ptr Word32)) + pBuffers <- peek @(Ptr Buffer) ((p `plusPtr` 56 :: Ptr (Ptr Buffer))) + let pBuffersLength = if pBuffers == nullPtr then 0 else (fromIntegral bufferCount) + pBuffers' <- generateM pBuffersLength (\i -> peek @Buffer ((pBuffers `advancePtrBytes` (8 * (i)) :: Ptr Buffer))) + tagName <- peek @Word64 ((p `plusPtr` 64 :: Ptr Word64)) + tagSize <- peek @CSize ((p `plusPtr` 72 :: Ptr CSize)) + pTag <- peek @(Ptr ()) ((p `plusPtr` 80 :: Ptr (Ptr ()))) + pure $ FrameBoundaryEXT + flags + frameID + imageCount + pImages' + bufferCount + pBuffers' + tagName + (coerce @CSize @Word64 tagSize) + pTag + +instance Zero FrameBoundaryEXT where + zero = FrameBoundaryEXT + zero + zero + zero + mempty + zero + mempty + zero + zero + zero + + +-- | VkPhysicalDeviceFrameBoundaryFeaturesEXT - Structure describing the +-- frame boundary features that can be supported by an implementation +-- +-- = Members +-- +-- This structure describes the following feature: +-- +-- = Description +-- +-- If the 'PhysicalDeviceFrameBoundaryFeaturesEXT' 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. 'PhysicalDeviceFrameBoundaryFeaturesEXT' /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 PhysicalDeviceFrameBoundaryFeaturesEXT = PhysicalDeviceFrameBoundaryFeaturesEXT + { -- | #features-frameBoundary# @frameBoundary@ indicates whether the + -- implementation supports frame boundary information. + frameBoundary :: Bool } + deriving (Typeable, Eq) +#if defined(GENERIC_INSTANCES) +deriving instance Generic (PhysicalDeviceFrameBoundaryFeaturesEXT) +#endif +deriving instance Show PhysicalDeviceFrameBoundaryFeaturesEXT + +instance ToCStruct PhysicalDeviceFrameBoundaryFeaturesEXT where + withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p) + pokeCStruct p PhysicalDeviceFrameBoundaryFeaturesEXT{..} f = do + poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAME_BOUNDARY_FEATURES_EXT) + poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr) + poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (frameBoundary)) + f + cStructSize = 24 + cStructAlignment = 8 + pokeZeroCStruct p f = do + poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAME_BOUNDARY_FEATURES_EXT) + poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr) + poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero)) + f + +instance FromCStruct PhysicalDeviceFrameBoundaryFeaturesEXT where + peekCStruct p = do + frameBoundary <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32)) + pure $ PhysicalDeviceFrameBoundaryFeaturesEXT + (bool32ToBool frameBoundary) + +instance Storable PhysicalDeviceFrameBoundaryFeaturesEXT where + sizeOf ~_ = 24 + alignment ~_ = 8 + peek = peekCStruct + poke ptr poked = pokeCStruct ptr poked (pure ()) + +instance Zero PhysicalDeviceFrameBoundaryFeaturesEXT where + zero = PhysicalDeviceFrameBoundaryFeaturesEXT + zero + + +type FrameBoundaryFlagsEXT = FrameBoundaryFlagBitsEXT + +-- | VkFrameBoundaryFlagBitsEXT - Bitmask specifying whether a queue +-- submission is the last one for a given frame +-- +-- = See Also +-- +-- , +-- 'FrameBoundaryFlagsEXT' +newtype FrameBoundaryFlagBitsEXT = FrameBoundaryFlagBitsEXT Flags + deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits) + +-- | 'FRAME_BOUNDARY_FRAME_END_BIT_EXT' specifies that this queue submission +-- is the last one for this frame, i.e. once this queue submission has +-- terminated, then the work for this frame is completed. +pattern FRAME_BOUNDARY_FRAME_END_BIT_EXT = FrameBoundaryFlagBitsEXT 0x00000001 + +conNameFrameBoundaryFlagBitsEXT :: String +conNameFrameBoundaryFlagBitsEXT = "FrameBoundaryFlagBitsEXT" + +enumPrefixFrameBoundaryFlagBitsEXT :: String +enumPrefixFrameBoundaryFlagBitsEXT = "FRAME_BOUNDARY_FRAME_END_BIT_EXT" + +showTableFrameBoundaryFlagBitsEXT :: [(FrameBoundaryFlagBitsEXT, String)] +showTableFrameBoundaryFlagBitsEXT = [(FRAME_BOUNDARY_FRAME_END_BIT_EXT, "")] + +instance Show FrameBoundaryFlagBitsEXT where + showsPrec = + enumShowsPrec + enumPrefixFrameBoundaryFlagBitsEXT + showTableFrameBoundaryFlagBitsEXT + conNameFrameBoundaryFlagBitsEXT + (\(FrameBoundaryFlagBitsEXT x) -> x) + (\x -> showString "0x" . showHex x) + +instance Read FrameBoundaryFlagBitsEXT where + readPrec = + enumReadPrec + enumPrefixFrameBoundaryFlagBitsEXT + showTableFrameBoundaryFlagBitsEXT + conNameFrameBoundaryFlagBitsEXT + FrameBoundaryFlagBitsEXT + +type EXT_FRAME_BOUNDARY_SPEC_VERSION = 1 + +-- No documentation found for TopLevel "VK_EXT_FRAME_BOUNDARY_SPEC_VERSION" +pattern EXT_FRAME_BOUNDARY_SPEC_VERSION :: forall a . Integral a => a +pattern EXT_FRAME_BOUNDARY_SPEC_VERSION = 1 + + +type EXT_FRAME_BOUNDARY_EXTENSION_NAME = "VK_EXT_frame_boundary" + +-- No documentation found for TopLevel "VK_EXT_FRAME_BOUNDARY_EXTENSION_NAME" +pattern EXT_FRAME_BOUNDARY_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a +pattern EXT_FRAME_BOUNDARY_EXTENSION_NAME = "VK_EXT_frame_boundary" + diff --git a/src/Vulkan/Extensions/VK_EXT_frame_boundary.hs-boot b/src/Vulkan/Extensions/VK_EXT_frame_boundary.hs-boot new file mode 100644 index 000000000..267d046ad --- /dev/null +++ b/src/Vulkan/Extensions/VK_EXT_frame_boundary.hs-boot @@ -0,0 +1,139 @@ +{-# language CPP #-} +-- | = Name +-- +-- VK_EXT_frame_boundary - device extension +-- +-- == VK_EXT_frame_boundary +-- +-- [__Name String__] +-- @VK_EXT_frame_boundary@ +-- +-- [__Extension Type__] +-- Device extension +-- +-- [__Registered Extension Number__] +-- 376 +-- +-- [__Revision__] +-- 1 +-- +-- [__Ratification Status__] +-- Ratified +-- +-- [__Extension and Version Dependencies__; __Contact__] +-- +-- - James Fitzpatrick +-- +-- +-- [__Extension Proposal__] +-- +-- +-- == Other Extension Metadata +-- +-- [__Last Modified Date__] +-- 2023-06-14 +-- +-- [__Contributors__] +-- +-- - James Fitzpatrick, Imagination Technologies +-- +-- - Hugues Evrard, Google +-- +-- - Melih Yasin Yalcin, Google +-- +-- - Andrew Garrard, Imagination Technologies +-- +-- - Jan-Harald Fredriksen, Arm +-- +-- - Vassili Nikolaev, NVIDIA +-- +-- - Ting Wei, Huawei +-- +-- == Description +-- +-- +-- is a device extension that helps __tools__ (such as debuggers) to group +-- queue submissions per frames in non-trivial scenarios, typically when +-- 'Vulkan.Extensions.VK_KHR_swapchain.queuePresentKHR' is not a relevant +-- frame boundary delimiter. +-- +-- == New Structures +-- +-- - Extending +-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2', +-- 'Vulkan.Core10.Device.DeviceCreateInfo': +-- +-- - 'PhysicalDeviceFrameBoundaryFeaturesEXT' +-- +-- - Extending 'Vulkan.Core10.Queue.SubmitInfo', +-- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.SubmitInfo2', +-- 'Vulkan.Extensions.VK_KHR_swapchain.PresentInfoKHR', +-- 'Vulkan.Core10.SparseResourceMemoryManagement.BindSparseInfo': +-- +-- - 'FrameBoundaryEXT' +-- +-- == New Enums +-- +-- - 'FrameBoundaryFlagBitsEXT' +-- +-- == New Bitmasks +-- +-- - 'FrameBoundaryFlagsEXT' +-- +-- == New Enum Constants +-- +-- - 'EXT_FRAME_BOUNDARY_EXTENSION_NAME' +-- +-- - 'EXT_FRAME_BOUNDARY_SPEC_VERSION' +-- +-- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType': +-- +-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_FRAME_BOUNDARY_EXT' +-- +-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAME_BOUNDARY_FEATURES_EXT' +-- +-- == Version History +-- +-- - Revision 0, 2022-01-14 (Hugues Evard) +-- +-- - Initial proposal +-- +-- - Revision 1, 2023-06-14 (James Fitzpatrick) +-- +-- - Initial draft +-- +-- == See Also +-- +-- 'FrameBoundaryEXT', 'FrameBoundaryFlagBitsEXT', 'FrameBoundaryFlagsEXT', +-- 'PhysicalDeviceFrameBoundaryFeaturesEXT' +-- +-- == Document Notes +-- +-- For more information, see the +-- +-- +-- This page is a generated document. Fixes and changes should be made to +-- the generator scripts, not directly. +module Vulkan.Extensions.VK_EXT_frame_boundary ( FrameBoundaryEXT + , PhysicalDeviceFrameBoundaryFeaturesEXT + ) where + +import Vulkan.CStruct (FromCStruct) +import Vulkan.CStruct (ToCStruct) +import Data.Kind (Type) + +data FrameBoundaryEXT + +instance ToCStruct FrameBoundaryEXT +instance Show FrameBoundaryEXT + +instance FromCStruct FrameBoundaryEXT + + +data PhysicalDeviceFrameBoundaryFeaturesEXT + +instance ToCStruct PhysicalDeviceFrameBoundaryFeaturesEXT +instance Show PhysicalDeviceFrameBoundaryFeaturesEXT + +instance FromCStruct PhysicalDeviceFrameBoundaryFeaturesEXT + diff --git a/src/Vulkan/Extensions/VK_EXT_full_screen_exclusive.hs b/src/Vulkan/Extensions/VK_EXT_full_screen_exclusive.hs index bee65dc84..135d7b27a 100644 --- a/src/Vulkan/Extensions/VK_EXT_full_screen_exclusive.hs +++ b/src/Vulkan/Extensions/VK_EXT_full_screen_exclusive.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 4 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- and diff --git a/src/Vulkan/Extensions/VK_EXT_full_screen_exclusive.hs-boot b/src/Vulkan/Extensions/VK_EXT_full_screen_exclusive.hs-boot index 3c1864602..0aed8dff5 100644 --- a/src/Vulkan/Extensions/VK_EXT_full_screen_exclusive.hs-boot +++ b/src/Vulkan/Extensions/VK_EXT_full_screen_exclusive.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 4 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- and diff --git a/src/Vulkan/Extensions/VK_EXT_global_priority.hs b/src/Vulkan/Extensions/VK_EXT_global_priority.hs index 71c90416d..a763031c3 100644 --- a/src/Vulkan/Extensions/VK_EXT_global_priority.hs +++ b/src/Vulkan/Extensions/VK_EXT_global_priority.hs @@ -17,7 +17,10 @@ -- [__Revision__] -- 2 -- --- [__Extension and Version Dependencies__; __Deprecation state__] +-- [__Ratification Status__] +-- Not ratified +-- +-- [__Extension and Version Dependencies__; __Deprecation State__] -- -- - /Promoted/ to @VK_KHR_global_priority@ extension -- diff --git a/src/Vulkan/Extensions/VK_EXT_global_priority_query.hs b/src/Vulkan/Extensions/VK_EXT_global_priority_query.hs index 94ea51350..f44accbc5 100644 --- a/src/Vulkan/Extensions/VK_EXT_global_priority_query.hs +++ b/src/Vulkan/Extensions/VK_EXT_global_priority_query.hs @@ -17,12 +17,15 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- and -- -- --- [__Deprecation state__] +-- [__Deprecation State__] -- -- - /Promoted/ to @VK_KHR_global_priority@ extension -- diff --git a/src/Vulkan/Extensions/VK_EXT_graphics_pipeline_library.hs b/src/Vulkan/Extensions/VK_EXT_graphics_pipeline_library.hs index c33b64688..82ddfa37f 100644 --- a/src/Vulkan/Extensions/VK_EXT_graphics_pipeline_library.hs +++ b/src/Vulkan/Extensions/VK_EXT_graphics_pipeline_library.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- and diff --git a/src/Vulkan/Extensions/VK_EXT_graphics_pipeline_library.hs-boot b/src/Vulkan/Extensions/VK_EXT_graphics_pipeline_library.hs-boot index 99be0bb34..f5993ea16 100644 --- a/src/Vulkan/Extensions/VK_EXT_graphics_pipeline_library.hs-boot +++ b/src/Vulkan/Extensions/VK_EXT_graphics_pipeline_library.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- and diff --git a/src/Vulkan/Extensions/VK_EXT_hdr_metadata.hs b/src/Vulkan/Extensions/VK_EXT_hdr_metadata.hs index a71da1835..f624badfa 100644 --- a/src/Vulkan/Extensions/VK_EXT_hdr_metadata.hs +++ b/src/Vulkan/Extensions/VK_EXT_hdr_metadata.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 2 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- @@ -55,7 +58,7 @@ -- metadata also includes the @maxContentLightLevel@ and -- @maxFrameAverageLightLevel@ as defined by CTA 861.3. -- --- While the general purpose of the metadata is to assist in the +-- While the intended purpose of the metadata is to assist in the -- transformation between different color volumes of different displays and -- help achieve better color reproduction, it is not in the scope of this -- extension to define how exactly the metadata should be used in such a diff --git a/src/Vulkan/Extensions/VK_EXT_hdr_metadata.hs-boot b/src/Vulkan/Extensions/VK_EXT_hdr_metadata.hs-boot index b5f8ffac1..28d574f33 100644 --- a/src/Vulkan/Extensions/VK_EXT_hdr_metadata.hs-boot +++ b/src/Vulkan/Extensions/VK_EXT_hdr_metadata.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 2 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- @@ -55,7 +58,7 @@ -- metadata also includes the @maxContentLightLevel@ and -- @maxFrameAverageLightLevel@ as defined by CTA 861.3. -- --- While the general purpose of the metadata is to assist in the +-- While the intended purpose of the metadata is to assist in the -- transformation between different color volumes of different displays and -- help achieve better color reproduction, it is not in the scope of this -- extension to define how exactly the metadata should be used in such a diff --git a/src/Vulkan/Extensions/VK_EXT_headless_surface.hs b/src/Vulkan/Extensions/VK_EXT_headless_surface.hs index 0dbb189e1..2912e2a2e 100644 --- a/src/Vulkan/Extensions/VK_EXT_headless_surface.hs +++ b/src/Vulkan/Extensions/VK_EXT_headless_surface.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- diff --git a/src/Vulkan/Extensions/VK_EXT_headless_surface.hs-boot b/src/Vulkan/Extensions/VK_EXT_headless_surface.hs-boot index 544f7bdbd..56c8454ef 100644 --- a/src/Vulkan/Extensions/VK_EXT_headless_surface.hs-boot +++ b/src/Vulkan/Extensions/VK_EXT_headless_surface.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- diff --git a/src/Vulkan/Extensions/VK_EXT_host_image_copy.hs b/src/Vulkan/Extensions/VK_EXT_host_image_copy.hs new file mode 100644 index 000000000..a5f6d71f7 --- /dev/null +++ b/src/Vulkan/Extensions/VK_EXT_host_image_copy.hs @@ -0,0 +1,2645 @@ +{-# language CPP #-} +-- | = Name +-- +-- VK_EXT_host_image_copy - device extension +-- +-- == VK_EXT_host_image_copy +-- +-- [__Name String__] +-- @VK_EXT_host_image_copy@ +-- +-- [__Extension Type__] +-- Device extension +-- +-- [__Registered Extension Number__] +-- 271 +-- +-- [__Revision__] +-- 1 +-- +-- [__Ratification Status__] +-- Ratified +-- +-- [__Extension and Version Dependencies__] +-- +-- and +-- +-- and +-- +-- +-- [__Contact__] +-- +-- - Shahbaz Youssefi +-- +-- +-- [__Extension Proposal__] +-- +-- +-- == Other Extension Metadata +-- +-- [__Last Modified Date__] +-- 2023-04-26 +-- +-- [__Contributors__] +-- +-- - Shahbaz Youssefi, Google +-- +-- - Faith Ekstrand, Collabora +-- +-- - Hans-Kristian Arntzen, Valve +-- +-- - Piers Daniell, NVIDIA +-- +-- - Jan-Harald Fredriksen, Arm +-- +-- - James Fitzpatrick, Imagination +-- +-- - Daniel Story, Nintendo +-- +-- == Description +-- +-- This extension allows applications to copy data between host memory and +-- images on the host processor, without staging the data through a +-- GPU-accessible buffer. This removes the need to allocate and manage the +-- buffer and its associated memory. On some architectures it may also +-- eliminate an extra copy operation. This extension additionally allows +-- applications to copy data between images on the host. +-- +-- To support initializing a new image in preparation for a host copy, it +-- is now possible to transition a new image to +-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL' or other +-- host-copyable layouts via 'transitionImageLayoutEXT'. Additionally, it +-- is possible to perform copies that preserve the swizzling layout of the +-- image by using the 'HOST_IMAGE_COPY_MEMCPY_EXT' flag. In that case, the +-- memory size needed for copies to or from a buffer can be retrieved by +-- chaining 'SubresourceHostMemcpySizeEXT' to @pLayout@ in +-- 'getImageSubresourceLayout2EXT'. +-- +-- == New Commands +-- +-- - 'copyImageToImageEXT' +-- +-- - 'copyImageToMemoryEXT' +-- +-- - 'copyMemoryToImageEXT' +-- +-- - 'getImageSubresourceLayout2EXT' +-- +-- - 'transitionImageLayoutEXT' +-- +-- == New Structures +-- +-- - 'CopyImageToImageInfoEXT' +-- +-- - 'CopyImageToMemoryInfoEXT' +-- +-- - 'CopyMemoryToImageInfoEXT' +-- +-- - 'HostImageLayoutTransitionInfoEXT' +-- +-- - 'ImageSubresource2EXT' +-- +-- - 'ImageToMemoryCopyEXT' +-- +-- - 'MemoryToImageCopyEXT' +-- +-- - 'SubresourceLayout2EXT' +-- +-- - Extending +-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.ImageFormatProperties2': +-- +-- - 'HostImageCopyDevicePerformanceQueryEXT' +-- +-- - Extending +-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2', +-- 'Vulkan.Core10.Device.DeviceCreateInfo': +-- +-- - 'PhysicalDeviceHostImageCopyFeaturesEXT' +-- +-- - Extending +-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2': +-- +-- - 'PhysicalDeviceHostImageCopyPropertiesEXT' +-- +-- - Extending +-- 'Vulkan.Extensions.VK_KHR_maintenance5.SubresourceLayout2KHR': +-- +-- - 'SubresourceHostMemcpySizeEXT' +-- +-- == New Enums +-- +-- - 'HostImageCopyFlagBitsEXT' +-- +-- == New Bitmasks +-- +-- - 'HostImageCopyFlagsEXT' +-- +-- == New Enum Constants +-- +-- - 'EXT_HOST_IMAGE_COPY_EXTENSION_NAME' +-- +-- - 'EXT_HOST_IMAGE_COPY_SPEC_VERSION' +-- +-- - Extending +-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FormatFeatureFlagBits2': +-- +-- - 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_HOST_IMAGE_TRANSFER_BIT_EXT' +-- +-- - Extending +-- 'Vulkan.Core10.Enums.ImageUsageFlagBits.ImageUsageFlagBits': +-- +-- - 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_HOST_TRANSFER_BIT_EXT' +-- +-- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType': +-- +-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_COPY_IMAGE_TO_IMAGE_INFO_EXT' +-- +-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_COPY_IMAGE_TO_MEMORY_INFO_EXT' +-- +-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_COPY_MEMORY_TO_IMAGE_INFO_EXT' +-- +-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_HOST_IMAGE_COPY_DEVICE_PERFORMANCE_QUERY_EXT' +-- +-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_HOST_IMAGE_LAYOUT_TRANSITION_INFO_EXT' +-- +-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_IMAGE_TO_MEMORY_COPY_EXT' +-- +-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_MEMORY_TO_IMAGE_COPY_EXT' +-- +-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_FEATURES_EXT' +-- +-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_PROPERTIES_EXT' +-- +-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_SUBRESOURCE_HOST_MEMCPY_SIZE_EXT' +-- +-- == Issues +-- +-- 1) When uploading data to an image, the data is usually loaded from +-- disk. Why not have the application load the data directly into a +-- 'Vulkan.Core10.Handles.DeviceMemory' bound to a buffer (instead of host +-- memory), and use +-- 'Vulkan.Core10.CommandBufferBuilding.cmdCopyBufferToImage'? The same +-- could be done when downloading data from an image. +-- +-- __RESOLVED__: This may not always be possible. Complicated Vulkan +-- applications such as game engines often have decoupled subsystems for +-- streaming data and rendering. It may be unreasonable to require the +-- streaming subsystem to coordinate with the rendering subsystem to +-- allocate memory on its behalf, especially as Vulkan may not be the only +-- API supported by the engine. In emulation layers, the image data is +-- necessarily provided by the application in host memory, so an +-- optimization as suggested is not possible. Most importantly, the device +-- memory may not be mappable by an application, but still accessible to +-- the driver. +-- +-- 2) Are @optimalBufferCopyOffsetAlignment@ and +-- @optimalBufferCopyRowPitchAlignment@ applicable to host memory as well +-- with the functions introduced by this extension? Or should there be new +-- limits? +-- +-- __RESOLVED__: No alignment requirements for the host memory pointer. +-- +-- 3) Should there be granularity requirements for image offsets and +-- extents? +-- +-- __RESOLVED__: No granularity requirements, i.e. a granularity of 1 pixel +-- (for non-compressed formats) and 1 texel block (for compressed formats) +-- is assumed. +-- +-- 4) How should the application deal with layout transitions before or +-- after copying to or from images? +-- +-- __RESOLVED__: An existing issue with linear images is that when +-- emulating other APIs, it is impossible to know when to transition them +-- as they are written to by the host and then used bindlessly. The copy +-- operations in this extension are affected by the same limitation. A new +-- command is thus introduced by this extension to address this problem by +-- allowing the host to perform an image layout transition between a +-- handful of layouts. +-- +-- == Version History +-- +-- - Revision 0, 2021-01-20 (Faith Ekstrand) +-- +-- - Initial idea and xml +-- +-- - Revision 1, 2023-04-26 (Shahbaz Youssefi) +-- +-- - Initial revision +-- +-- == See Also +-- +-- 'CopyImageToImageInfoEXT', 'CopyImageToMemoryInfoEXT', +-- 'CopyMemoryToImageInfoEXT', 'HostImageCopyDevicePerformanceQueryEXT', +-- 'HostImageCopyFlagBitsEXT', 'HostImageCopyFlagsEXT', +-- 'HostImageLayoutTransitionInfoEXT', 'ImageSubresource2EXT', +-- 'ImageToMemoryCopyEXT', 'MemoryToImageCopyEXT', +-- 'PhysicalDeviceHostImageCopyFeaturesEXT', +-- 'PhysicalDeviceHostImageCopyPropertiesEXT', +-- 'SubresourceHostMemcpySizeEXT', 'SubresourceLayout2EXT', +-- 'copyImageToImageEXT', 'copyImageToMemoryEXT', 'copyMemoryToImageEXT', +-- 'getImageSubresourceLayout2EXT', 'transitionImageLayoutEXT' +-- +-- == Document Notes +-- +-- For more information, see the +-- +-- +-- This page is a generated document. Fixes and changes should be made to +-- the generator scripts, not directly. +module Vulkan.Extensions.VK_EXT_host_image_copy ( copyMemoryToImageEXT + , copyImageToMemoryEXT + , copyImageToImageEXT + , transitionImageLayoutEXT + , getImageSubresourceLayout2EXT + , PhysicalDeviceHostImageCopyFeaturesEXT(..) + , PhysicalDeviceHostImageCopyPropertiesEXT(..) + , MemoryToImageCopyEXT(..) + , ImageToMemoryCopyEXT(..) + , CopyMemoryToImageInfoEXT(..) + , CopyImageToMemoryInfoEXT(..) + , CopyImageToImageInfoEXT(..) + , HostImageLayoutTransitionInfoEXT(..) + , SubresourceHostMemcpySizeEXT(..) + , HostImageCopyDevicePerformanceQueryEXT(..) + , HostImageCopyFlagsEXT + , HostImageCopyFlagBitsEXT( HOST_IMAGE_COPY_MEMCPY_EXT + , .. + ) + , ImageSubresource2EXT + , SubresourceLayout2EXT + , EXT_HOST_IMAGE_COPY_SPEC_VERSION + , pattern EXT_HOST_IMAGE_COPY_SPEC_VERSION + , EXT_HOST_IMAGE_COPY_EXTENSION_NAME + , pattern EXT_HOST_IMAGE_COPY_EXTENSION_NAME + , ImageSubresource2KHR(..) + , SubresourceLayout2KHR(..) + , getImageSubresourceLayout2KHR + ) where + +import Data.Bits (Bits) +import Data.Bits (FiniteBits) +import Vulkan.CStruct.Utils (FixedArray) +import Vulkan.Internal.Utils (enumReadPrec) +import Vulkan.Internal.Utils (enumShowsPrec) +import Vulkan.Internal.Utils (traceAroundEvent) +import Control.Monad (unless) +import Control.Monad.IO.Class (liftIO) +import Foreign.Marshal.Alloc (allocaBytes) +import GHC.Base (when) +import GHC.IO (throwIO) +import GHC.Ptr (nullFunPtr) +import Foreign.Ptr (nullPtr) +import Foreign.Ptr (plusPtr) +import GHC.Show (showString) +import Numeric (showHex) +import Control.Monad.Trans.Class (lift) +import Control.Monad.Trans.Cont (evalContT) +import Data.Vector (generateM) +import qualified Data.Vector (imapM_) +import qualified Data.Vector (length) +import Vulkan.CStruct (FromCStruct) +import Vulkan.CStruct (FromCStruct(..)) +import Vulkan.CStruct (ToCStruct) +import Vulkan.CStruct (ToCStruct(..)) +import Vulkan.Zero (Zero) +import Vulkan.Zero (Zero(..)) +import Control.Monad.IO.Class (MonadIO) +import Data.String (IsString) +import Data.Typeable (Typeable) +import Foreign.Storable (Storable) +import Foreign.Storable (Storable(peek)) +import Foreign.Storable (Storable(poke)) +import qualified Foreign.Storable (Storable(..)) +import GHC.Generics (Generic) +import GHC.IO.Exception (IOErrorType(..)) +import GHC.IO.Exception (IOException(..)) +import Foreign.Ptr (FunPtr) +import Foreign.Ptr (Ptr) +import GHC.Read (Read(readPrec)) +import GHC.Show (Show(showsPrec)) +import Data.Word (Word32) +import Data.Word (Word8) +import Data.ByteString (ByteString) +import Data.Kind (Type) +import Control.Monad.Trans.Cont (ContT(..)) +import Data.Vector (Vector) +import Vulkan.CStruct.Utils (advancePtrBytes) +import Vulkan.Core10.FundamentalTypes (bool32ToBool) +import Vulkan.Core10.FundamentalTypes (boolToBool32) +import Vulkan.Extensions.VK_KHR_maintenance5 (getImageSubresourceLayout2KHR) +import Vulkan.CStruct.Utils (peekByteStringFromSizedVectorPtr) +import Vulkan.CStruct.Utils (pokeFixedLengthByteString) +import Vulkan.NamedType ((:::)) +import Vulkan.Core10.FundamentalTypes (Bool32) +import Vulkan.Core10.Handles (Device) +import Vulkan.Core10.Handles (Device(..)) +import Vulkan.Core10.Handles (Device(Device)) +import Vulkan.Dynamic (DeviceCmds(pVkCopyImageToImageEXT)) +import Vulkan.Dynamic (DeviceCmds(pVkCopyImageToMemoryEXT)) +import Vulkan.Dynamic (DeviceCmds(pVkCopyMemoryToImageEXT)) +import Vulkan.Dynamic (DeviceCmds(pVkTransitionImageLayoutEXT)) +import Vulkan.Core10.FundamentalTypes (DeviceSize) +import Vulkan.Core10.Handles (Device_T) +import Vulkan.Core10.FundamentalTypes (Extent3D) +import Vulkan.Core10.FundamentalTypes (Flags) +import Vulkan.Core10.Handles (Image) +import Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2 (ImageCopy2) +import Vulkan.Core10.Enums.ImageLayout (ImageLayout) +import Vulkan.Extensions.VK_KHR_maintenance5 (ImageSubresource2KHR) +import Vulkan.Core10.CommandBufferBuilding (ImageSubresourceLayers) +import Vulkan.Core10.ImageView (ImageSubresourceRange) +import Vulkan.Core10.FundamentalTypes (Offset3D) +import Vulkan.Core10.Enums.Result (Result) +import Vulkan.Core10.Enums.Result (Result(..)) +import Vulkan.Core10.Enums.StructureType (StructureType) +import Vulkan.Extensions.VK_KHR_maintenance5 (SubresourceLayout2KHR) +import Vulkan.Core10.APIConstants (UUID_SIZE) +import Vulkan.Exception (VulkanException(..)) +import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_COPY_IMAGE_TO_IMAGE_INFO_EXT)) +import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_COPY_IMAGE_TO_MEMORY_INFO_EXT)) +import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_COPY_MEMORY_TO_IMAGE_INFO_EXT)) +import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_HOST_IMAGE_COPY_DEVICE_PERFORMANCE_QUERY_EXT)) +import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_HOST_IMAGE_LAYOUT_TRANSITION_INFO_EXT)) +import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_IMAGE_TO_MEMORY_COPY_EXT)) +import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_MEMORY_TO_IMAGE_COPY_EXT)) +import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_FEATURES_EXT)) +import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_PROPERTIES_EXT)) +import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_SUBRESOURCE_HOST_MEMCPY_SIZE_EXT)) +import Vulkan.Core10.Enums.Result (Result(SUCCESS)) +import Vulkan.Extensions.VK_KHR_maintenance5 (getImageSubresourceLayout2KHR) +import Vulkan.Extensions.VK_KHR_maintenance5 (ImageSubresource2KHR(..)) +import Vulkan.Extensions.VK_KHR_maintenance5 (SubresourceLayout2KHR(..)) +foreign import ccall +#if !defined(SAFE_FOREIGN_CALLS) + unsafe +#endif + "dynamic" mkVkCopyMemoryToImageEXT + :: FunPtr (Ptr Device_T -> Ptr CopyMemoryToImageInfoEXT -> IO Result) -> Ptr Device_T -> Ptr CopyMemoryToImageInfoEXT -> IO Result + +-- | vkCopyMemoryToImageEXT - Copy data from host memory into an image +-- +-- = Description +-- +-- This command is functionally similar to +-- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.cmdCopyBufferToImage2', +-- except it is executed on the host and reads from host memory instead of +-- a buffer. +-- +-- == Valid Usage +-- +-- - #VUID-vkCopyMemoryToImageEXT-hostImageCopy-09058# The +-- +-- feature /must/ be enabled +-- +-- == Valid Usage (Implicit) +-- +-- - #VUID-vkCopyMemoryToImageEXT-device-parameter# @device@ /must/ be a +-- valid 'Vulkan.Core10.Handles.Device' handle +-- +-- - #VUID-vkCopyMemoryToImageEXT-pCopyMemoryToImageInfo-parameter# +-- @pCopyMemoryToImageInfo@ /must/ be a valid pointer to a valid +-- 'CopyMemoryToImageInfoEXT' structure +-- +-- == Return Codes +-- +-- [] +-- +-- - 'Vulkan.Core10.Enums.Result.SUCCESS' +-- +-- [] +-- +-- - 'Vulkan.Core10.Enums.Result.ERROR_INITIALIZATION_FAILED' +-- +-- - 'Vulkan.Core10.Enums.Result.ERROR_OUT_OF_HOST_MEMORY' +-- +-- - 'Vulkan.Core10.Enums.Result.ERROR_OUT_OF_DEVICE_MEMORY' +-- +-- - 'Vulkan.Core10.Enums.Result.ERROR_MEMORY_MAP_FAILED' +-- +-- = See Also +-- +-- , +-- 'CopyMemoryToImageInfoEXT', 'Vulkan.Core10.Handles.Device' +copyMemoryToImageEXT :: forall io + . (MonadIO io) + => -- | @device@ is the device which owns @pCopyMemoryToImageInfo->dstImage@. + Device + -> -- | @pCopyMemoryToImageInfo@ is a pointer to a 'CopyMemoryToImageInfoEXT' + -- structure describing the copy parameters. + CopyMemoryToImageInfoEXT + -> io () +copyMemoryToImageEXT device copyMemoryToImageInfo = liftIO . evalContT $ do + let vkCopyMemoryToImageEXTPtr = pVkCopyMemoryToImageEXT (case device of Device{deviceCmds} -> deviceCmds) + lift $ unless (vkCopyMemoryToImageEXTPtr /= nullFunPtr) $ + throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCopyMemoryToImageEXT is null" Nothing Nothing + let vkCopyMemoryToImageEXT' = mkVkCopyMemoryToImageEXT vkCopyMemoryToImageEXTPtr + pCopyMemoryToImageInfo <- ContT $ withCStruct (copyMemoryToImageInfo) + r <- lift $ traceAroundEvent "vkCopyMemoryToImageEXT" (vkCopyMemoryToImageEXT' + (deviceHandle (device)) + pCopyMemoryToImageInfo) + lift $ when (r < SUCCESS) (throwIO (VulkanException r)) + + +foreign import ccall +#if !defined(SAFE_FOREIGN_CALLS) + unsafe +#endif + "dynamic" mkVkCopyImageToMemoryEXT + :: FunPtr (Ptr Device_T -> Ptr CopyImageToMemoryInfoEXT -> IO Result) -> Ptr Device_T -> Ptr CopyImageToMemoryInfoEXT -> IO Result + +-- | vkCopyImageToMemoryEXT - Copy image data into host memory +-- +-- = Description +-- +-- This command is functionally similar to +-- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.cmdCopyImageToBuffer2', +-- except it is executed on the host and writes to host memory instead of a +-- buffer. +-- +-- == Valid Usage +-- +-- - #VUID-vkCopyImageToMemoryEXT-hostImageCopy-09063# The +-- +-- feature /must/ be enabled +-- +-- == Valid Usage (Implicit) +-- +-- - #VUID-vkCopyImageToMemoryEXT-device-parameter# @device@ /must/ be a +-- valid 'Vulkan.Core10.Handles.Device' handle +-- +-- - #VUID-vkCopyImageToMemoryEXT-pCopyImageToMemoryInfo-parameter# +-- @pCopyImageToMemoryInfo@ /must/ be a valid pointer to a valid +-- 'CopyImageToMemoryInfoEXT' structure +-- +-- == Return Codes +-- +-- [] +-- +-- - 'Vulkan.Core10.Enums.Result.SUCCESS' +-- +-- [] +-- +-- - 'Vulkan.Core10.Enums.Result.ERROR_INITIALIZATION_FAILED' +-- +-- - 'Vulkan.Core10.Enums.Result.ERROR_OUT_OF_HOST_MEMORY' +-- +-- - 'Vulkan.Core10.Enums.Result.ERROR_OUT_OF_DEVICE_MEMORY' +-- +-- - 'Vulkan.Core10.Enums.Result.ERROR_MEMORY_MAP_FAILED' +-- +-- = See Also +-- +-- , +-- 'CopyImageToMemoryInfoEXT', 'Vulkan.Core10.Handles.Device' +copyImageToMemoryEXT :: forall io + . (MonadIO io) + => -- | @device@ is the device which owns @pCopyImageToMemoryInfo->srcImage@. + Device + -> -- | @pCopyImageToMemoryInfo@ is a pointer to a 'CopyImageToMemoryInfoEXT' + -- structure describing the copy parameters. + CopyImageToMemoryInfoEXT + -> io () +copyImageToMemoryEXT device copyImageToMemoryInfo = liftIO . evalContT $ do + let vkCopyImageToMemoryEXTPtr = pVkCopyImageToMemoryEXT (case device of Device{deviceCmds} -> deviceCmds) + lift $ unless (vkCopyImageToMemoryEXTPtr /= nullFunPtr) $ + throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCopyImageToMemoryEXT is null" Nothing Nothing + let vkCopyImageToMemoryEXT' = mkVkCopyImageToMemoryEXT vkCopyImageToMemoryEXTPtr + pCopyImageToMemoryInfo <- ContT $ withCStruct (copyImageToMemoryInfo) + r <- lift $ traceAroundEvent "vkCopyImageToMemoryEXT" (vkCopyImageToMemoryEXT' + (deviceHandle (device)) + pCopyImageToMemoryInfo) + lift $ when (r < SUCCESS) (throwIO (VulkanException r)) + + +foreign import ccall +#if !defined(SAFE_FOREIGN_CALLS) + unsafe +#endif + "dynamic" mkVkCopyImageToImageEXT + :: FunPtr (Ptr Device_T -> Ptr CopyImageToImageInfoEXT -> IO Result) -> Ptr Device_T -> Ptr CopyImageToImageInfoEXT -> IO Result + +-- | vkCopyImageToImageEXT - Copy image data using the host +-- +-- = Description +-- +-- This command is functionally similar to +-- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.cmdCopyImage2', +-- except it is executed on the host. +-- +-- == Valid Usage +-- +-- - #VUID-vkCopyImageToImageEXT-hostImageCopy-09068# The +-- +-- feature /must/ be enabled +-- +-- == Valid Usage (Implicit) +-- +-- - #VUID-vkCopyImageToImageEXT-device-parameter# @device@ /must/ be a +-- valid 'Vulkan.Core10.Handles.Device' handle +-- +-- - #VUID-vkCopyImageToImageEXT-pCopyImageToImageInfo-parameter# +-- @pCopyImageToImageInfo@ /must/ be a valid pointer to a valid +-- 'CopyImageToImageInfoEXT' structure +-- +-- == Return Codes +-- +-- [] +-- +-- - 'Vulkan.Core10.Enums.Result.SUCCESS' +-- +-- [] +-- +-- - 'Vulkan.Core10.Enums.Result.ERROR_INITIALIZATION_FAILED' +-- +-- - 'Vulkan.Core10.Enums.Result.ERROR_OUT_OF_HOST_MEMORY' +-- +-- - 'Vulkan.Core10.Enums.Result.ERROR_OUT_OF_DEVICE_MEMORY' +-- +-- - 'Vulkan.Core10.Enums.Result.ERROR_MEMORY_MAP_FAILED' +-- +-- = See Also +-- +-- , +-- 'CopyImageToImageInfoEXT', 'Vulkan.Core10.Handles.Device' +copyImageToImageEXT :: forall io + . (MonadIO io) + => -- | @device@ is the device which owns @pCopyImageToMemoryInfo->srcImage@. + Device + -> -- | @pCopyImageToImageInfo@ is a pointer to a 'CopyImageToImageInfoEXT' + -- structure describing the copy parameters. + CopyImageToImageInfoEXT + -> io () +copyImageToImageEXT device copyImageToImageInfo = liftIO . evalContT $ do + let vkCopyImageToImageEXTPtr = pVkCopyImageToImageEXT (case device of Device{deviceCmds} -> deviceCmds) + lift $ unless (vkCopyImageToImageEXTPtr /= nullFunPtr) $ + throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCopyImageToImageEXT is null" Nothing Nothing + let vkCopyImageToImageEXT' = mkVkCopyImageToImageEXT vkCopyImageToImageEXTPtr + pCopyImageToImageInfo <- ContT $ withCStruct (copyImageToImageInfo) + r <- lift $ traceAroundEvent "vkCopyImageToImageEXT" (vkCopyImageToImageEXT' + (deviceHandle (device)) + pCopyImageToImageInfo) + lift $ when (r < SUCCESS) (throwIO (VulkanException r)) + + +foreign import ccall +#if !defined(SAFE_FOREIGN_CALLS) + unsafe +#endif + "dynamic" mkVkTransitionImageLayoutEXT + :: FunPtr (Ptr Device_T -> Word32 -> Ptr HostImageLayoutTransitionInfoEXT -> IO Result) -> Ptr Device_T -> Word32 -> Ptr HostImageLayoutTransitionInfoEXT -> IO Result + +-- | vkTransitionImageLayoutEXT - Perform an image layout transition on the +-- host +-- +-- == Return Codes +-- +-- [] +-- +-- - 'Vulkan.Core10.Enums.Result.SUCCESS' +-- +-- [] +-- +-- - 'Vulkan.Core10.Enums.Result.ERROR_INITIALIZATION_FAILED' +-- +-- - 'Vulkan.Core10.Enums.Result.ERROR_OUT_OF_HOST_MEMORY' +-- +-- - 'Vulkan.Core10.Enums.Result.ERROR_OUT_OF_DEVICE_MEMORY' +-- +-- - 'Vulkan.Core10.Enums.Result.ERROR_MEMORY_MAP_FAILED' +-- +-- = See Also +-- +-- , +-- 'Vulkan.Core10.Handles.Device', 'HostImageLayoutTransitionInfoEXT' +transitionImageLayoutEXT :: forall io + . (MonadIO io) + => -- | @device@ is the device which owns @pTransitions@[i].@image@. + -- + -- #VUID-vkTransitionImageLayoutEXT-device-parameter# @device@ /must/ be a + -- valid 'Vulkan.Core10.Handles.Device' handle + Device + -> -- | @pTransitions@ is a pointer to an array of + -- 'HostImageLayoutTransitionInfoEXT' structures specifying the image and + -- + -- within them to transition. + -- + -- #VUID-vkTransitionImageLayoutEXT-pTransitions-parameter# @pTransitions@ + -- /must/ be a valid pointer to an array of @transitionCount@ valid + -- 'HostImageLayoutTransitionInfoEXT' structures + ("transitions" ::: Vector HostImageLayoutTransitionInfoEXT) + -> io () +transitionImageLayoutEXT device transitions = liftIO . evalContT $ do + let vkTransitionImageLayoutEXTPtr = pVkTransitionImageLayoutEXT (case device of Device{deviceCmds} -> deviceCmds) + lift $ unless (vkTransitionImageLayoutEXTPtr /= nullFunPtr) $ + throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkTransitionImageLayoutEXT is null" Nothing Nothing + let vkTransitionImageLayoutEXT' = mkVkTransitionImageLayoutEXT vkTransitionImageLayoutEXTPtr + pPTransitions <- ContT $ allocaBytes @HostImageLayoutTransitionInfoEXT ((Data.Vector.length (transitions)) * 56) + lift $ Data.Vector.imapM_ (\i e -> poke (pPTransitions `plusPtr` (56 * (i)) :: Ptr HostImageLayoutTransitionInfoEXT) (e)) (transitions) + r <- lift $ traceAroundEvent "vkTransitionImageLayoutEXT" (vkTransitionImageLayoutEXT' + (deviceHandle (device)) + ((fromIntegral (Data.Vector.length $ (transitions)) :: Word32)) + (pPTransitions)) + lift $ when (r < SUCCESS) (throwIO (VulkanException r)) + + +-- No documentation found for TopLevel "vkGetImageSubresourceLayout2EXT" +getImageSubresourceLayout2EXT = getImageSubresourceLayout2KHR + + +-- | VkPhysicalDeviceHostImageCopyFeaturesEXT - Structure indicating support +-- for copies to or from images from host memory +-- +-- = Members +-- +-- This structure describes the following feature: +-- +-- = Description +-- +-- If the 'PhysicalDeviceHostImageCopyFeaturesEXT' 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. 'PhysicalDeviceHostImageCopyFeaturesEXT' /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 PhysicalDeviceHostImageCopyFeaturesEXT = PhysicalDeviceHostImageCopyFeaturesEXT + { -- | #features-hostImageCopy# @hostImageCopy@ indicates that the + -- implementation supports copying from host memory to images using the + -- 'copyMemoryToImageEXT' command, copying from images to host memory using + -- the 'copyImageToMemoryEXT' command, and copying between images using the + -- 'copyImageToImageEXT' command. + hostImageCopy :: Bool } + deriving (Typeable, Eq) +#if defined(GENERIC_INSTANCES) +deriving instance Generic (PhysicalDeviceHostImageCopyFeaturesEXT) +#endif +deriving instance Show PhysicalDeviceHostImageCopyFeaturesEXT + +instance ToCStruct PhysicalDeviceHostImageCopyFeaturesEXT where + withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p) + pokeCStruct p PhysicalDeviceHostImageCopyFeaturesEXT{..} f = do + poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_FEATURES_EXT) + poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr) + poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (hostImageCopy)) + f + cStructSize = 24 + cStructAlignment = 8 + pokeZeroCStruct p f = do + poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_FEATURES_EXT) + poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr) + poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero)) + f + +instance FromCStruct PhysicalDeviceHostImageCopyFeaturesEXT where + peekCStruct p = do + hostImageCopy <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32)) + pure $ PhysicalDeviceHostImageCopyFeaturesEXT + (bool32ToBool hostImageCopy) + +instance Storable PhysicalDeviceHostImageCopyFeaturesEXT where + sizeOf ~_ = 24 + alignment ~_ = 8 + peek = peekCStruct + poke ptr poked = pokeCStruct ptr poked (pure ()) + +instance Zero PhysicalDeviceHostImageCopyFeaturesEXT where + zero = PhysicalDeviceHostImageCopyFeaturesEXT + zero + + +-- | VkPhysicalDeviceHostImageCopyPropertiesEXT - Structure enumerating image +-- layouts supported by an implementation for host memory copies +-- +-- = Description +-- +-- If the 'PhysicalDeviceHostImageCopyPropertiesEXT' structure is included +-- in the @pNext@ chain of the +-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2' +-- structure passed to +-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceProperties2', +-- it is filled in with each corresponding implementation-dependent +-- property. +-- +-- If @pCopyDstLayouts@ is @NULL@, then the number of image layouts that +-- are supported in 'CopyMemoryToImageInfoEXT'::@dstImageLayout@ and +-- 'CopyImageToImageInfoEXT'::@dstImageLayout@ is returned in +-- @copyDstLayoutCount@. Otherwise, @copyDstLayoutCount@ /must/ be set by +-- the user to the number of elements in the @pCopyDstLayouts@ array, and +-- on return the variable is overwritten with the number of values actually +-- written to @pCopyDstLayouts@. If the value of @copyDstLayoutCount@ is +-- less than the number of image layouts that are supported, at most +-- @copyDstLayoutCount@ values will be written to @pCopyDstLayouts@. The +-- implementation /must/ include the +-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL' image layout in +-- @pCopyDstLayouts@. +-- +-- If @pCopySrcLayouts@ is @NULL@, then the number of image layouts that +-- are supported in 'CopyImageToMemoryInfoEXT'::@srcImageLayout@ and +-- 'CopyImageToImageInfoEXT'::@srcImageLayout@ is returned in +-- @copySrcLayoutCount@. Otherwise, @copySrcLayoutCount@ /must/ be set by +-- the user to the number of elements in the @pCopySrcLayouts@ array, and +-- on return the variable is overwritten with the number of values actually +-- written to @pCopySrcLayouts@. If the value of @copySrcLayoutCount@ is +-- less than the number of image layouts that are supported, at most +-- @copySrcLayoutCount@ values will be written to @pCopySrcLayouts@. The +-- implementation /must/ include the +-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL' image layout in +-- @pCopySrcLayouts@. +-- +-- The @optimalTilingLayoutUUID@ value can be used to ensure compatible +-- data layouts when using the 'HOST_IMAGE_COPY_MEMCPY_EXT' flag in +-- 'copyMemoryToImageEXT' and 'copyImageToMemoryEXT'. +-- +-- == Valid Usage (Implicit) +-- +-- - #VUID-VkPhysicalDeviceHostImageCopyPropertiesEXT-sType-sType# +-- @sType@ /must/ be +-- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_PROPERTIES_EXT' +-- +-- - #VUID-VkPhysicalDeviceHostImageCopyPropertiesEXT-pCopySrcLayouts-parameter# +-- If @copySrcLayoutCount@ is not @0@, and @pCopySrcLayouts@ is not +-- @NULL@, @pCopySrcLayouts@ /must/ be a valid pointer to an array of +-- @copySrcLayoutCount@ 'Vulkan.Core10.Enums.ImageLayout.ImageLayout' +-- values +-- +-- - #VUID-VkPhysicalDeviceHostImageCopyPropertiesEXT-pCopyDstLayouts-parameter# +-- If @copyDstLayoutCount@ is not @0@, and @pCopyDstLayouts@ is not +-- @NULL@, @pCopyDstLayouts@ /must/ be a valid pointer to an array of +-- @copyDstLayoutCount@ 'Vulkan.Core10.Enums.ImageLayout.ImageLayout' +-- values +-- +-- = See Also +-- +-- , +-- 'Vulkan.Core10.FundamentalTypes.Bool32', +-- 'Vulkan.Core10.Enums.ImageLayout.ImageLayout', +-- 'Vulkan.Core10.Enums.StructureType.StructureType' +data PhysicalDeviceHostImageCopyPropertiesEXT = PhysicalDeviceHostImageCopyPropertiesEXT + { -- | @copySrcLayoutCount@ is an integer related to the number of image + -- layouts for host copies from images available or queried, as described + -- below. + copySrcLayoutCount :: Word32 + , -- | @pCopySrcLayouts@ is a pointer to an array of + -- 'Vulkan.Core10.Enums.ImageLayout.ImageLayout' in which supported image + -- layouts for use with host copy operations from images are returned. + copySrcLayouts :: Ptr ImageLayout + , -- | @copyDstLayoutCount@ is an integer related to the number of image + -- layouts for host copies to images available or queried, as described + -- below. + copyDstLayoutCount :: Word32 + , -- | @pCopyDstLayouts@ is a pointer to an array of + -- 'Vulkan.Core10.Enums.ImageLayout.ImageLayout' in which supported image + -- layouts for use with host copy operations to images are returned. + copyDstLayouts :: Ptr ImageLayout + , -- | @optimalTilingLayoutUUID@ is an array of + -- 'Vulkan.Core10.APIConstants.UUID_SIZE' @uint8_t@ values representing a + -- universally unique identifier for the implementation’s swizzling layout + -- of images created with + -- 'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_OPTIMAL'. + optimalTilingLayoutUUID :: ByteString + , -- | @identicalMemoryTypeRequirements@ indicates that specifying the + -- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_HOST_TRANSFER_BIT_EXT' + -- flag in 'Vulkan.Core10.Image.ImageCreateInfo'::@usage@ does not affect + -- the memory type requirements of the image. + identicalMemoryTypeRequirements :: Bool + } + deriving (Typeable) +#if defined(GENERIC_INSTANCES) +deriving instance Generic (PhysicalDeviceHostImageCopyPropertiesEXT) +#endif +deriving instance Show PhysicalDeviceHostImageCopyPropertiesEXT + +instance ToCStruct PhysicalDeviceHostImageCopyPropertiesEXT where + withCStruct x f = allocaBytes 72 $ \p -> pokeCStruct p x (f p) + pokeCStruct p PhysicalDeviceHostImageCopyPropertiesEXT{..} f = do + poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_PROPERTIES_EXT) + poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr) + poke ((p `plusPtr` 16 :: Ptr Word32)) (copySrcLayoutCount) + poke ((p `plusPtr` 24 :: Ptr (Ptr ImageLayout))) (copySrcLayouts) + poke ((p `plusPtr` 32 :: Ptr Word32)) (copyDstLayoutCount) + poke ((p `plusPtr` 40 :: Ptr (Ptr ImageLayout))) (copyDstLayouts) + pokeFixedLengthByteString ((p `plusPtr` 48 :: Ptr (FixedArray UUID_SIZE Word8))) (optimalTilingLayoutUUID) + poke ((p `plusPtr` 64 :: Ptr Bool32)) (boolToBool32 (identicalMemoryTypeRequirements)) + f + cStructSize = 72 + cStructAlignment = 8 + pokeZeroCStruct p f = do + poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_PROPERTIES_EXT) + poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr) + poke ((p `plusPtr` 64 :: Ptr Bool32)) (boolToBool32 (zero)) + f + +instance FromCStruct PhysicalDeviceHostImageCopyPropertiesEXT where + peekCStruct p = do + copySrcLayoutCount <- peek @Word32 ((p `plusPtr` 16 :: Ptr Word32)) + pCopySrcLayouts <- peek @(Ptr ImageLayout) ((p `plusPtr` 24 :: Ptr (Ptr ImageLayout))) + copyDstLayoutCount <- peek @Word32 ((p `plusPtr` 32 :: Ptr Word32)) + pCopyDstLayouts <- peek @(Ptr ImageLayout) ((p `plusPtr` 40 :: Ptr (Ptr ImageLayout))) + optimalTilingLayoutUUID <- peekByteStringFromSizedVectorPtr ((p `plusPtr` 48 :: Ptr (FixedArray UUID_SIZE Word8))) + identicalMemoryTypeRequirements <- peek @Bool32 ((p `plusPtr` 64 :: Ptr Bool32)) + pure $ PhysicalDeviceHostImageCopyPropertiesEXT + copySrcLayoutCount + pCopySrcLayouts + copyDstLayoutCount + pCopyDstLayouts + optimalTilingLayoutUUID + (bool32ToBool identicalMemoryTypeRequirements) + +instance Storable PhysicalDeviceHostImageCopyPropertiesEXT where + sizeOf ~_ = 72 + alignment ~_ = 8 + peek = peekCStruct + poke ptr poked = pokeCStruct ptr poked (pure ()) + +instance Zero PhysicalDeviceHostImageCopyPropertiesEXT where + zero = PhysicalDeviceHostImageCopyPropertiesEXT + zero + zero + zero + zero + mempty + zero + + +-- | VkMemoryToImageCopyEXT - Structure specifying a host memory to image +-- copy operation +-- +-- = Description +-- +-- This structure is functionally similar to +-- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.BufferImageCopy2', +-- except it defines host memory as the source of copy instead of a buffer. +-- In particular, the same data packing rules and restrictions as that +-- structure apply here as well. +-- +-- == Valid Usage +-- +-- - #VUID-VkMemoryToImageCopyEXT-pHostPointer-09061# @pHostPointer@ +-- /must/ point to memory that is large enough to contain all memory +-- locations that are accessed according to +-- , +-- for each element of @pRegions@ +-- +-- - #VUID-VkMemoryToImageCopyEXT-pRegions-09062# The union of all source +-- regions, and the union of all destination regions, specified by the +-- elements of @pRegions@, /must/ not overlap in memory +-- +-- - #VUID-VkMemoryToImageCopyEXT-memoryRowLength-09101# +-- @memoryRowLength@ /must/ be @0@, or greater than or equal to the +-- @width@ member of @imageExtent@ +-- +-- - #VUID-VkMemoryToImageCopyEXT-memoryImageHeight-09102# +-- @memoryImageHeight@ /must/ be @0@, or greater than or equal to the +-- @height@ member of @imageExtent@ +-- +-- - #VUID-VkMemoryToImageCopyEXT-aspectMask-09103# The @aspectMask@ +-- member of @imageSubresource@ /must/ only have a single bit set +-- +-- - #VUID-VkMemoryToImageCopyEXT-imageExtent-06659# @imageExtent.width@ +-- /must/ not be 0 +-- +-- - #VUID-VkMemoryToImageCopyEXT-imageExtent-06660# @imageExtent.height@ +-- /must/ not be 0 +-- +-- - #VUID-VkMemoryToImageCopyEXT-imageExtent-06661# @imageExtent.depth@ +-- /must/ not be 0 +-- +-- == Valid Usage (Implicit) +-- +-- - #VUID-VkMemoryToImageCopyEXT-sType-sType# @sType@ /must/ be +-- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_MEMORY_TO_IMAGE_COPY_EXT' +-- +-- - #VUID-VkMemoryToImageCopyEXT-pNext-pNext# @pNext@ /must/ be @NULL@ +-- +-- - #VUID-VkMemoryToImageCopyEXT-pHostPointer-parameter# @pHostPointer@ +-- /must/ be a pointer value +-- +-- - #VUID-VkMemoryToImageCopyEXT-imageSubresource-parameter# +-- @imageSubresource@ /must/ be a valid +-- 'Vulkan.Core10.CommandBufferBuilding.ImageSubresourceLayers' +-- structure +-- +-- = See Also +-- +-- , +-- 'CopyMemoryToImageInfoEXT', 'Vulkan.Core10.FundamentalTypes.Extent3D', +-- 'Vulkan.Core10.CommandBufferBuilding.ImageSubresourceLayers', +-- 'Vulkan.Core10.FundamentalTypes.Offset3D', +-- 'Vulkan.Core10.Enums.StructureType.StructureType' +data MemoryToImageCopyEXT = MemoryToImageCopyEXT + { -- | @pHostPointer@ is the host memory address which is the source of the + -- copy. + hostPointer :: Ptr () + , -- | @memoryRowLength@ and @memoryImageHeight@ specify in texels a subregion + -- of a larger two- or three-dimensional image in host memory, and control + -- the addressing calculations. If either of these values is zero, that + -- aspect of the host memory is considered to be tightly packed according + -- to the @imageExtent@. + memoryRowLength :: Word32 + , -- No documentation found for Nested "VkMemoryToImageCopyEXT" "memoryImageHeight" + memoryImageHeight :: Word32 + , -- | @imageSubresource@ is a + -- 'Vulkan.Core10.CommandBufferBuilding.ImageSubresourceLayers' used to + -- specify the specific image subresources of the image used for the source + -- or destination image data. + imageSubresource :: ImageSubresourceLayers + , -- | @imageOffset@ selects the initial @x@, @y@, @z@ offsets in texels of the + -- sub-region of the destination image data. + imageOffset :: Offset3D + , -- | @imageExtent@ is the size in texels of the image to copy in @width@, + -- @height@ and @depth@. + imageExtent :: Extent3D + } + deriving (Typeable) +#if defined(GENERIC_INSTANCES) +deriving instance Generic (MemoryToImageCopyEXT) +#endif +deriving instance Show MemoryToImageCopyEXT + +instance ToCStruct MemoryToImageCopyEXT where + withCStruct x f = allocaBytes 72 $ \p -> pokeCStruct p x (f p) + pokeCStruct p MemoryToImageCopyEXT{..} f = do + poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_MEMORY_TO_IMAGE_COPY_EXT) + poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr) + poke ((p `plusPtr` 16 :: Ptr (Ptr ()))) (hostPointer) + poke ((p `plusPtr` 24 :: Ptr Word32)) (memoryRowLength) + poke ((p `plusPtr` 28 :: Ptr Word32)) (memoryImageHeight) + poke ((p `plusPtr` 32 :: Ptr ImageSubresourceLayers)) (imageSubresource) + poke ((p `plusPtr` 48 :: Ptr Offset3D)) (imageOffset) + poke ((p `plusPtr` 60 :: Ptr Extent3D)) (imageExtent) + f + cStructSize = 72 + cStructAlignment = 8 + pokeZeroCStruct p f = do + poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_MEMORY_TO_IMAGE_COPY_EXT) + poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr) + poke ((p `plusPtr` 16 :: Ptr (Ptr ()))) (zero) + poke ((p `plusPtr` 24 :: Ptr Word32)) (zero) + poke ((p `plusPtr` 28 :: Ptr Word32)) (zero) + poke ((p `plusPtr` 32 :: Ptr ImageSubresourceLayers)) (zero) + poke ((p `plusPtr` 48 :: Ptr Offset3D)) (zero) + poke ((p `plusPtr` 60 :: Ptr Extent3D)) (zero) + f + +instance FromCStruct MemoryToImageCopyEXT where + peekCStruct p = do + pHostPointer <- peek @(Ptr ()) ((p `plusPtr` 16 :: Ptr (Ptr ()))) + memoryRowLength <- peek @Word32 ((p `plusPtr` 24 :: Ptr Word32)) + memoryImageHeight <- peek @Word32 ((p `plusPtr` 28 :: Ptr Word32)) + imageSubresource <- peekCStruct @ImageSubresourceLayers ((p `plusPtr` 32 :: Ptr ImageSubresourceLayers)) + imageOffset <- peekCStruct @Offset3D ((p `plusPtr` 48 :: Ptr Offset3D)) + imageExtent <- peekCStruct @Extent3D ((p `plusPtr` 60 :: Ptr Extent3D)) + pure $ MemoryToImageCopyEXT + pHostPointer + memoryRowLength + memoryImageHeight + imageSubresource + imageOffset + imageExtent + +instance Storable MemoryToImageCopyEXT where + sizeOf ~_ = 72 + alignment ~_ = 8 + peek = peekCStruct + poke ptr poked = pokeCStruct ptr poked (pure ()) + +instance Zero MemoryToImageCopyEXT where + zero = MemoryToImageCopyEXT + zero + zero + zero + zero + zero + zero + + +-- | VkImageToMemoryCopyEXT - Structure specifying an image to host memory +-- copy operation +-- +-- = Description +-- +-- This structure is functionally similar to +-- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.BufferImageCopy2', +-- except it defines host memory as the target of copy instead of a buffer. +-- In particular, the same data packing rules and restrictions as that +-- structure apply here as well. +-- +-- == Valid Usage +-- +-- - #VUID-VkImageToMemoryCopyEXT-pHostPointer-09066# @pHostPointer@ +-- /must/ point to memory that is large enough to contain all memory +-- locations that are accessed according to +-- , +-- for each element of @pRegions@ +-- +-- - #VUID-VkImageToMemoryCopyEXT-pRegions-09067# The union of all source +-- regions, and the union of all destination regions, specified by the +-- elements of @pRegions@, /must/ not overlap in memory +-- +-- - #VUID-VkImageToMemoryCopyEXT-memoryRowLength-09101# +-- @memoryRowLength@ /must/ be @0@, or greater than or equal to the +-- @width@ member of @imageExtent@ +-- +-- - #VUID-VkImageToMemoryCopyEXT-memoryImageHeight-09102# +-- @memoryImageHeight@ /must/ be @0@, or greater than or equal to the +-- @height@ member of @imageExtent@ +-- +-- - #VUID-VkImageToMemoryCopyEXT-aspectMask-09103# The @aspectMask@ +-- member of @imageSubresource@ /must/ only have a single bit set +-- +-- - #VUID-VkImageToMemoryCopyEXT-imageExtent-06659# @imageExtent.width@ +-- /must/ not be 0 +-- +-- - #VUID-VkImageToMemoryCopyEXT-imageExtent-06660# @imageExtent.height@ +-- /must/ not be 0 +-- +-- - #VUID-VkImageToMemoryCopyEXT-imageExtent-06661# @imageExtent.depth@ +-- /must/ not be 0 +-- +-- == Valid Usage (Implicit) +-- +-- - #VUID-VkImageToMemoryCopyEXT-sType-sType# @sType@ /must/ be +-- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_IMAGE_TO_MEMORY_COPY_EXT' +-- +-- - #VUID-VkImageToMemoryCopyEXT-pNext-pNext# @pNext@ /must/ be @NULL@ +-- +-- - #VUID-VkImageToMemoryCopyEXT-pHostPointer-parameter# @pHostPointer@ +-- /must/ be a pointer value +-- +-- - #VUID-VkImageToMemoryCopyEXT-imageSubresource-parameter# +-- @imageSubresource@ /must/ be a valid +-- 'Vulkan.Core10.CommandBufferBuilding.ImageSubresourceLayers' +-- structure +-- +-- = See Also +-- +-- , +-- 'CopyImageToMemoryInfoEXT', 'Vulkan.Core10.FundamentalTypes.Extent3D', +-- 'Vulkan.Core10.CommandBufferBuilding.ImageSubresourceLayers', +-- 'Vulkan.Core10.FundamentalTypes.Offset3D', +-- 'Vulkan.Core10.Enums.StructureType.StructureType' +data ImageToMemoryCopyEXT = ImageToMemoryCopyEXT + { -- | @pHostPointer@ is the host memory address which is the destination of + -- the copy. + hostPointer :: Ptr () + , -- | @memoryRowLength@ and @memoryImageHeight@ specify in texels a subregion + -- of a larger two- or three-dimensional image in host memory, and control + -- the addressing calculations. If either of these values is zero, that + -- aspect of the host memory is considered to be tightly packed according + -- to the @imageExtent@. + memoryRowLength :: Word32 + , -- No documentation found for Nested "VkImageToMemoryCopyEXT" "memoryImageHeight" + memoryImageHeight :: Word32 + , -- | @imageSubresource@ is a + -- 'Vulkan.Core10.CommandBufferBuilding.ImageSubresourceLayers' used to + -- specify the specific image subresources of the image used for the source + -- or destination image data. + imageSubresource :: ImageSubresourceLayers + , -- | @imageOffset@ selects the initial @x@, @y@, @z@ offsets in texels of the + -- sub-region of the source image data. + imageOffset :: Offset3D + , -- | @imageExtent@ is the size in texels of the image to copy in @width@, + -- @height@ and @depth@. + imageExtent :: Extent3D + } + deriving (Typeable) +#if defined(GENERIC_INSTANCES) +deriving instance Generic (ImageToMemoryCopyEXT) +#endif +deriving instance Show ImageToMemoryCopyEXT + +instance ToCStruct ImageToMemoryCopyEXT where + withCStruct x f = allocaBytes 72 $ \p -> pokeCStruct p x (f p) + pokeCStruct p ImageToMemoryCopyEXT{..} f = do + poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_IMAGE_TO_MEMORY_COPY_EXT) + poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr) + poke ((p `plusPtr` 16 :: Ptr (Ptr ()))) (hostPointer) + poke ((p `plusPtr` 24 :: Ptr Word32)) (memoryRowLength) + poke ((p `plusPtr` 28 :: Ptr Word32)) (memoryImageHeight) + poke ((p `plusPtr` 32 :: Ptr ImageSubresourceLayers)) (imageSubresource) + poke ((p `plusPtr` 48 :: Ptr Offset3D)) (imageOffset) + poke ((p `plusPtr` 60 :: Ptr Extent3D)) (imageExtent) + f + cStructSize = 72 + cStructAlignment = 8 + pokeZeroCStruct p f = do + poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_IMAGE_TO_MEMORY_COPY_EXT) + poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr) + poke ((p `plusPtr` 16 :: Ptr (Ptr ()))) (zero) + poke ((p `plusPtr` 24 :: Ptr Word32)) (zero) + poke ((p `plusPtr` 28 :: Ptr Word32)) (zero) + poke ((p `plusPtr` 32 :: Ptr ImageSubresourceLayers)) (zero) + poke ((p `plusPtr` 48 :: Ptr Offset3D)) (zero) + poke ((p `plusPtr` 60 :: Ptr Extent3D)) (zero) + f + +instance FromCStruct ImageToMemoryCopyEXT where + peekCStruct p = do + pHostPointer <- peek @(Ptr ()) ((p `plusPtr` 16 :: Ptr (Ptr ()))) + memoryRowLength <- peek @Word32 ((p `plusPtr` 24 :: Ptr Word32)) + memoryImageHeight <- peek @Word32 ((p `plusPtr` 28 :: Ptr Word32)) + imageSubresource <- peekCStruct @ImageSubresourceLayers ((p `plusPtr` 32 :: Ptr ImageSubresourceLayers)) + imageOffset <- peekCStruct @Offset3D ((p `plusPtr` 48 :: Ptr Offset3D)) + imageExtent <- peekCStruct @Extent3D ((p `plusPtr` 60 :: Ptr Extent3D)) + pure $ ImageToMemoryCopyEXT + pHostPointer + memoryRowLength + memoryImageHeight + imageSubresource + imageOffset + imageExtent + +instance Storable ImageToMemoryCopyEXT where + sizeOf ~_ = 72 + alignment ~_ = 8 + peek = peekCStruct + poke ptr poked = pokeCStruct ptr poked (pure ()) + +instance Zero ImageToMemoryCopyEXT where + zero = ImageToMemoryCopyEXT + zero + zero + zero + zero + zero + zero + + +-- | VkCopyMemoryToImageInfoEXT - Structure specifying parameters of host +-- memory to image copy command +-- +-- = Description +-- +-- 'copyMemoryToImageEXT' does not check whether the device memory +-- associated with @dstImage@ is currently in use before performing the +-- copy. The application /must/ guarantee that any previously submitted +-- command that reads from or writes to the copy regions has completed +-- before the host performs the copy. +-- +-- Copy regions for the image /must/ be aligned to a multiple of the texel +-- block extent in each dimension, except at the edges of the image, where +-- region extents /must/ match the edge of the image. +-- +-- == Valid Usage +-- +-- - #VUID-VkCopyMemoryToImageInfoEXT-dstImage-09109# If @dstImage@ is +-- sparse then all memory ranges accessed by the copy command /must/ be +-- bound as described in +-- +-- +-- - #VUID-VkCopyMemoryToImageInfoEXT-dstImage-09111# If the stencil +-- aspect of @dstImage@ is accessed, and @dstImage@ was not created +-- with +-- , +-- @dstImage@ /must/ have been created with +-- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_HOST_TRANSFER_BIT_EXT' +-- set in 'Vulkan.Core10.Image.ImageCreateInfo'::@usage@ +-- +-- - #VUID-VkCopyMemoryToImageInfoEXT-dstImage-09112# If the stencil +-- aspect of @dstImage@ is accessed, and @dstImage@ was created with +-- , +-- @dstImage@ /must/ have been created with +-- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_HOST_TRANSFER_BIT_EXT' +-- set in +-- 'Vulkan.Core12.Promoted_From_VK_EXT_separate_stencil_usage.ImageStencilUsageCreateInfo'::@stencilUsage@ +-- +-- - #VUID-VkCopyMemoryToImageInfoEXT-dstImage-09113# If non-stencil +-- aspects of @dstImage@ are accessed, @dstImage@ /must/ have been +-- created with +-- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_HOST_TRANSFER_BIT_EXT' +-- set in 'Vulkan.Core10.Image.ImageCreateInfo'::@usage@ +-- +-- - #VUID-VkCopyMemoryToImageInfoEXT-imageOffset-09114# If @flags@ +-- contains 'HOST_IMAGE_COPY_MEMCPY_EXT', the @x@, @y@, and @z@ members +-- of the @imageOffset@ member of each element of @pRegions@ /must/ be +-- @0@ +-- +-- - #VUID-VkCopyMemoryToImageInfoEXT-dstImage-09115# If @flags@ contains +-- 'HOST_IMAGE_COPY_MEMCPY_EXT', the @imageExtent@ member of each +-- element of @pRegions@ /must/ equal the extents of @dstImage@ +-- identified by @imageSubresource@ +-- +-- - #VUID-VkCopyMemoryToImageInfoEXT-dstImage-07966# If @dstImage@ is +-- non-sparse then the image or the specified /disjoint/ plane /must/ +-- be bound completely and contiguously to a single +-- 'Vulkan.Core10.Handles.DeviceMemory' object +-- +-- - #VUID-VkCopyMemoryToImageInfoEXT-imageSubresource-07967# The +-- @imageSubresource.mipLevel@ member of each element of @pRegions@ +-- /must/ be less than the @mipLevels@ specified in +-- 'Vulkan.Core10.Image.ImageCreateInfo' when @dstImage@ was created +-- +-- - #VUID-VkCopyMemoryToImageInfoEXT-imageSubresource-07968# The +-- @imageSubresource.baseArrayLayer@ + @imageSubresource.layerCount@ of +-- each element of @pRegions@ , if @imageSubresource.layerCount@ is not +-- 'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS' and +-- +-- is not enabled, /must/ be less than or equal to the @arrayLayers@ +-- specified in 'Vulkan.Core10.Image.ImageCreateInfo' when @dstImage@ +-- was created +-- +-- - #VUID-VkCopyMemoryToImageInfoEXT-dstImage-07969# @dstImage@ /must/ +-- not have been created with @flags@ containing +-- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SUBSAMPLED_BIT_EXT' +-- +-- - #VUID-VkCopyMemoryToImageInfoEXT-imageSubresource-07970# The image +-- region specified by each element of @pRegions@ /must/ be contained +-- within the specified @imageSubresource@ of @dstImage@ +-- +-- - #VUID-VkCopyMemoryToImageInfoEXT-imageSubresource-07971# For each +-- element of @pRegions@, @imageOffset.x@ and (@imageExtent.width@ + +-- @imageOffset.x@) /must/ both be greater than or equal to @0@ and +-- less than or equal to the width of the specified @imageSubresource@ +-- of @dstImage@ +-- +-- - #VUID-VkCopyMemoryToImageInfoEXT-imageSubresource-07972# For each +-- element of @pRegions@, @imageOffset.y@ and (@imageExtent.height@ + +-- @imageOffset.y@) /must/ both be greater than or equal to @0@ and +-- less than or equal to the height of the specified @imageSubresource@ +-- of @dstImage@ +-- +-- - #VUID-VkCopyMemoryToImageInfoEXT-dstImage-07973# @dstImage@ /must/ +-- have a sample count equal to +-- 'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT' +-- +-- - #VUID-VkCopyMemoryToImageInfoEXT-dstImage-07979# If @dstImage@ is of +-- type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D', then for each +-- element of @pRegions@, @imageOffset.y@ /must/ be @0@ and +-- @imageExtent.height@ /must/ be @1@ +-- +-- - #VUID-VkCopyMemoryToImageInfoEXT-imageOffset-09104# For each element +-- of @pRegions@, @imageOffset.z@ and (@imageExtent.depth@ + +-- @imageOffset.z@) /must/ both be greater than or equal to @0@ and +-- less than or equal to the depth of the specified @imageSubresource@ +-- of @dstImage@ +-- +-- - #VUID-VkCopyMemoryToImageInfoEXT-dstImage-07980# If @dstImage@ is of +-- type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D' or +-- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D', then for each element +-- of @pRegions@, @imageOffset.z@ /must/ be @0@ and @imageExtent.depth@ +-- /must/ be @1@ +-- +-- - #VUID-VkCopyMemoryToImageInfoEXT-dstImage-07274# For each element of +-- @pRegions@, @imageOffset.x@ /must/ be a multiple of the +-- +-- of the 'Vulkan.Core10.Enums.Format.Format' of @dstImage@ +-- +-- - #VUID-VkCopyMemoryToImageInfoEXT-dstImage-07275# For each element of +-- @pRegions@, @imageOffset.y@ /must/ be a multiple of the +-- +-- of the 'Vulkan.Core10.Enums.Format.Format' of @dstImage@ +-- +-- - #VUID-VkCopyMemoryToImageInfoEXT-dstImage-07276# For each element of +-- @pRegions@, @imageOffset.z@ /must/ be a multiple of the +-- +-- of the 'Vulkan.Core10.Enums.Format.Format' of @dstImage@ +-- +-- - #VUID-VkCopyMemoryToImageInfoEXT-dstImage-00207# For each element of +-- @pRegions@, if the sum of @imageOffset.x@ and @extent.width@ does +-- not equal the width of the subresource specified by +-- @srcSubresource@, @extent.width@ /must/ be a multiple of the +-- +-- of the 'Vulkan.Core10.Enums.Format.Format' of @dstImage@ +-- +-- - #VUID-VkCopyMemoryToImageInfoEXT-dstImage-00208# For each element of +-- @pRegions@, if the sum of @imageOffset.y@ and @extent.height@ does +-- not equal the height of the subresource specified by +-- @srcSubresource@, @extent.height@ /must/ be a multiple of the +-- +-- of the 'Vulkan.Core10.Enums.Format.Format' of @dstImage@ +-- +-- - #VUID-VkCopyMemoryToImageInfoEXT-dstImage-00209# For each element of +-- @pRegions@, if the sum of @imageOffset.z@ and @extent.depth@ does +-- not equal the depth of the subresource specified by +-- @srcSubresource@, @extent.depth@ /must/ be a multiple of the +-- +-- of the 'Vulkan.Core10.Enums.Format.Format' of @dstImage@ +-- +-- - #VUID-VkCopyMemoryToImageInfoEXT-imageSubresource-09105# For each +-- element of @pRegions@, @imageSubresource.aspectMask@ /must/ specify +-- aspects present in @dstImage@ +-- +-- - #VUID-VkCopyMemoryToImageInfoEXT-dstImage-07981# If @dstImage@ has a +-- , +-- then for each element of @pRegions@, @imageSubresource.aspectMask@ +-- /must/ be a single valid +-- +-- bit +-- +-- - #VUID-VkCopyMemoryToImageInfoEXT-dstImage-07983# If @dstImage@ is of +-- type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D', for each element +-- of @pRegions@, @imageSubresource.baseArrayLayer@ /must/ be @0@ and +-- @imageSubresource.layerCount@ /must/ be @1@ +-- +-- - #VUID-VkCopyMemoryToImageInfoEXT-memoryRowLength-09106# For each +-- element of @pRegions@, @memoryRowLength@ /must/ be a multiple of the +-- +-- of the 'Vulkan.Core10.Enums.Format.Format' of @dstImage@ +-- +-- - #VUID-VkCopyMemoryToImageInfoEXT-memoryImageHeight-09107# For each +-- element of @pRegions@, @memoryImageHeight@ /must/ be a multiple of +-- the +-- +-- of the 'Vulkan.Core10.Enums.Format.Format' of @dstImage@ +-- +-- - #VUID-VkCopyMemoryToImageInfoEXT-memoryRowLength-09108# For each +-- element of @pRegions@, @memoryRowLength@ divided by the +-- +-- and then multiplied by the texel block size of @dstImage@ /must/ be +-- less than or equal to 231-1 +-- +-- - #VUID-VkCopyMemoryToImageInfoEXT-dstImageLayout-09059# +-- @dstImageLayout@ /must/ specify the current layout of the image +-- subresources of @dstImage@ specified in @pRegions@ +-- +-- - #VUID-VkCopyMemoryToImageInfoEXT-dstImageLayout-09060# +-- @dstImageLayout@ /must/ be one of the image layouts returned in +-- 'PhysicalDeviceHostImageCopyPropertiesEXT'::@pCopyDstLayouts@ +-- +-- - #VUID-VkCopyMemoryToImageInfoEXT-flags-09393# If @flags@ includes +-- 'HOST_IMAGE_COPY_MEMCPY_EXT', for each region in @pRegions@, +-- @memoryRowLength@ and @memoryImageHeight@ /must/ both be 0 +-- +-- == Valid Usage (Implicit) +-- +-- - #VUID-VkCopyMemoryToImageInfoEXT-sType-sType# @sType@ /must/ be +-- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_COPY_MEMORY_TO_IMAGE_INFO_EXT' +-- +-- - #VUID-VkCopyMemoryToImageInfoEXT-pNext-pNext# @pNext@ /must/ be +-- @NULL@ +-- +-- - #VUID-VkCopyMemoryToImageInfoEXT-flags-parameter# @flags@ /must/ be +-- a valid combination of 'HostImageCopyFlagBitsEXT' values +-- +-- - #VUID-VkCopyMemoryToImageInfoEXT-dstImage-parameter# @dstImage@ +-- /must/ be a valid 'Vulkan.Core10.Handles.Image' handle +-- +-- - #VUID-VkCopyMemoryToImageInfoEXT-dstImageLayout-parameter# +-- @dstImageLayout@ /must/ be a valid +-- 'Vulkan.Core10.Enums.ImageLayout.ImageLayout' value +-- +-- - #VUID-VkCopyMemoryToImageInfoEXT-pRegions-parameter# @pRegions@ +-- /must/ be a valid pointer to an array of @regionCount@ valid +-- 'MemoryToImageCopyEXT' structures +-- +-- - #VUID-VkCopyMemoryToImageInfoEXT-regionCount-arraylength# +-- @regionCount@ /must/ be greater than @0@ +-- +-- = See Also +-- +-- , +-- 'HostImageCopyFlagsEXT', 'Vulkan.Core10.Handles.Image', +-- 'Vulkan.Core10.Enums.ImageLayout.ImageLayout', 'MemoryToImageCopyEXT', +-- 'Vulkan.Core10.Enums.StructureType.StructureType', +-- 'copyMemoryToImageEXT' +data CopyMemoryToImageInfoEXT = CopyMemoryToImageInfoEXT + { -- | @flags@ is a bitmask of 'HostImageCopyFlagBitsEXT' values describing + -- additional copy parameters. + flags :: HostImageCopyFlagsEXT + , -- | @dstImage@ is the destination image. + dstImage :: Image + , -- | @dstImageLayout@ is the layout of the destination image subresources for + -- the copy. + dstImageLayout :: ImageLayout + , -- | @pRegions@ is a pointer to an array of 'MemoryToImageCopyEXT' structures + -- specifying the regions to copy. + regions :: Vector MemoryToImageCopyEXT + } + deriving (Typeable) +#if defined(GENERIC_INSTANCES) +deriving instance Generic (CopyMemoryToImageInfoEXT) +#endif +deriving instance Show CopyMemoryToImageInfoEXT + +instance ToCStruct CopyMemoryToImageInfoEXT where + withCStruct x f = allocaBytes 48 $ \p -> pokeCStruct p x (f p) + pokeCStruct p CopyMemoryToImageInfoEXT{..} f = evalContT $ do + lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_COPY_MEMORY_TO_IMAGE_INFO_EXT) + lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr) + lift $ poke ((p `plusPtr` 16 :: Ptr HostImageCopyFlagsEXT)) (flags) + lift $ poke ((p `plusPtr` 24 :: Ptr Image)) (dstImage) + lift $ poke ((p `plusPtr` 32 :: Ptr ImageLayout)) (dstImageLayout) + lift $ poke ((p `plusPtr` 36 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (regions)) :: Word32)) + pPRegions' <- ContT $ allocaBytes @MemoryToImageCopyEXT ((Data.Vector.length (regions)) * 72) + lift $ Data.Vector.imapM_ (\i e -> poke (pPRegions' `plusPtr` (72 * (i)) :: Ptr MemoryToImageCopyEXT) (e)) (regions) + lift $ poke ((p `plusPtr` 40 :: Ptr (Ptr MemoryToImageCopyEXT))) (pPRegions') + lift $ f + cStructSize = 48 + cStructAlignment = 8 + pokeZeroCStruct p f = do + poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_COPY_MEMORY_TO_IMAGE_INFO_EXT) + poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr) + poke ((p `plusPtr` 24 :: Ptr Image)) (zero) + poke ((p `plusPtr` 32 :: Ptr ImageLayout)) (zero) + f + +instance FromCStruct CopyMemoryToImageInfoEXT where + peekCStruct p = do + flags <- peek @HostImageCopyFlagsEXT ((p `plusPtr` 16 :: Ptr HostImageCopyFlagsEXT)) + dstImage <- peek @Image ((p `plusPtr` 24 :: Ptr Image)) + dstImageLayout <- peek @ImageLayout ((p `plusPtr` 32 :: Ptr ImageLayout)) + regionCount <- peek @Word32 ((p `plusPtr` 36 :: Ptr Word32)) + pRegions <- peek @(Ptr MemoryToImageCopyEXT) ((p `plusPtr` 40 :: Ptr (Ptr MemoryToImageCopyEXT))) + pRegions' <- generateM (fromIntegral regionCount) (\i -> peekCStruct @MemoryToImageCopyEXT ((pRegions `advancePtrBytes` (72 * (i)) :: Ptr MemoryToImageCopyEXT))) + pure $ CopyMemoryToImageInfoEXT + flags dstImage dstImageLayout pRegions' + +instance Zero CopyMemoryToImageInfoEXT where + zero = CopyMemoryToImageInfoEXT + zero + zero + zero + mempty + + +-- | VkCopyImageToMemoryInfoEXT - Structure specifying parameters of an image +-- to host memory copy command +-- +-- = Description +-- +-- 'copyImageToMemoryEXT' does not check whether the device memory +-- associated with @srcImage@ is currently in use before performing the +-- copy. The application /must/ guarantee that any previously submitted +-- command that writes to the copy regions has completed before the host +-- performs the copy. +-- +-- Copy regions for the image /must/ be aligned to a multiple of the texel +-- block extent in each dimension, except at the edges of the image, where +-- region extents /must/ match the edge of the image. +-- +-- == Valid Usage +-- +-- - #VUID-VkCopyImageToMemoryInfoEXT-srcImage-09109# If @srcImage@ is +-- sparse then all memory ranges accessed by the copy command /must/ be +-- bound as described in +-- +-- +-- - #VUID-VkCopyImageToMemoryInfoEXT-srcImage-09111# If the stencil +-- aspect of @srcImage@ is accessed, and @srcImage@ was not created +-- with +-- , +-- @srcImage@ /must/ have been created with +-- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_HOST_TRANSFER_BIT_EXT' +-- set in 'Vulkan.Core10.Image.ImageCreateInfo'::@usage@ +-- +-- - #VUID-VkCopyImageToMemoryInfoEXT-srcImage-09112# If the stencil +-- aspect of @srcImage@ is accessed, and @srcImage@ was created with +-- , +-- @srcImage@ /must/ have been created with +-- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_HOST_TRANSFER_BIT_EXT' +-- set in +-- 'Vulkan.Core12.Promoted_From_VK_EXT_separate_stencil_usage.ImageStencilUsageCreateInfo'::@stencilUsage@ +-- +-- - #VUID-VkCopyImageToMemoryInfoEXT-srcImage-09113# If non-stencil +-- aspects of @srcImage@ are accessed, @srcImage@ /must/ have been +-- created with +-- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_HOST_TRANSFER_BIT_EXT' +-- set in 'Vulkan.Core10.Image.ImageCreateInfo'::@usage@ +-- +-- - #VUID-VkCopyImageToMemoryInfoEXT-imageOffset-09114# If @flags@ +-- contains 'HOST_IMAGE_COPY_MEMCPY_EXT', the @x@, @y@, and @z@ members +-- of the @imageOffset@ member of each element of @pRegions@ /must/ be +-- @0@ +-- +-- - #VUID-VkCopyImageToMemoryInfoEXT-srcImage-09115# If @flags@ contains +-- 'HOST_IMAGE_COPY_MEMCPY_EXT', the @imageExtent@ member of each +-- element of @pRegions@ /must/ equal the extents of @srcImage@ +-- identified by @imageSubresource@ +-- +-- - #VUID-VkCopyImageToMemoryInfoEXT-srcImage-07966# If @srcImage@ is +-- non-sparse then the image or the specified /disjoint/ plane /must/ +-- be bound completely and contiguously to a single +-- 'Vulkan.Core10.Handles.DeviceMemory' object +-- +-- - #VUID-VkCopyImageToMemoryInfoEXT-imageSubresource-07967# The +-- @imageSubresource.mipLevel@ member of each element of @pRegions@ +-- /must/ be less than the @mipLevels@ specified in +-- 'Vulkan.Core10.Image.ImageCreateInfo' when @srcImage@ was created +-- +-- - #VUID-VkCopyImageToMemoryInfoEXT-imageSubresource-07968# The +-- @imageSubresource.baseArrayLayer@ + @imageSubresource.layerCount@ of +-- each element of @pRegions@ , if @imageSubresource.layerCount@ is not +-- 'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS' and +-- +-- is not enabled, /must/ be less than or equal to the @arrayLayers@ +-- specified in 'Vulkan.Core10.Image.ImageCreateInfo' when @srcImage@ +-- was created +-- +-- - #VUID-VkCopyImageToMemoryInfoEXT-srcImage-07969# @srcImage@ /must/ +-- not have been created with @flags@ containing +-- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SUBSAMPLED_BIT_EXT' +-- +-- - #VUID-VkCopyImageToMemoryInfoEXT-imageSubresource-07970# The image +-- region specified by each element of @pRegions@ /must/ be contained +-- within the specified @imageSubresource@ of @srcImage@ +-- +-- - #VUID-VkCopyImageToMemoryInfoEXT-imageSubresource-07971# For each +-- element of @pRegions@, @imageOffset.x@ and (@imageExtent.width@ + +-- @imageOffset.x@) /must/ both be greater than or equal to @0@ and +-- less than or equal to the width of the specified @imageSubresource@ +-- of @srcImage@ +-- +-- - #VUID-VkCopyImageToMemoryInfoEXT-imageSubresource-07972# For each +-- element of @pRegions@, @imageOffset.y@ and (@imageExtent.height@ + +-- @imageOffset.y@) /must/ both be greater than or equal to @0@ and +-- less than or equal to the height of the specified @imageSubresource@ +-- of @srcImage@ +-- +-- - #VUID-VkCopyImageToMemoryInfoEXT-srcImage-07973# @srcImage@ /must/ +-- have a sample count equal to +-- 'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT' +-- +-- - #VUID-VkCopyImageToMemoryInfoEXT-srcImage-07979# If @srcImage@ is of +-- type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D', then for each +-- element of @pRegions@, @imageOffset.y@ /must/ be @0@ and +-- @imageExtent.height@ /must/ be @1@ +-- +-- - #VUID-VkCopyImageToMemoryInfoEXT-imageOffset-09104# For each element +-- of @pRegions@, @imageOffset.z@ and (@imageExtent.depth@ + +-- @imageOffset.z@) /must/ both be greater than or equal to @0@ and +-- less than or equal to the depth of the specified @imageSubresource@ +-- of @srcImage@ +-- +-- - #VUID-VkCopyImageToMemoryInfoEXT-srcImage-07980# If @srcImage@ is of +-- type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D' or +-- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D', then for each element +-- of @pRegions@, @imageOffset.z@ /must/ be @0@ and @imageExtent.depth@ +-- /must/ be @1@ +-- +-- - #VUID-VkCopyImageToMemoryInfoEXT-srcImage-07274# For each element of +-- @pRegions@, @imageOffset.x@ /must/ be a multiple of the +-- +-- of the 'Vulkan.Core10.Enums.Format.Format' of @srcImage@ +-- +-- - #VUID-VkCopyImageToMemoryInfoEXT-srcImage-07275# For each element of +-- @pRegions@, @imageOffset.y@ /must/ be a multiple of the +-- +-- of the 'Vulkan.Core10.Enums.Format.Format' of @srcImage@ +-- +-- - #VUID-VkCopyImageToMemoryInfoEXT-srcImage-07276# For each element of +-- @pRegions@, @imageOffset.z@ /must/ be a multiple of the +-- +-- of the 'Vulkan.Core10.Enums.Format.Format' of @srcImage@ +-- +-- - #VUID-VkCopyImageToMemoryInfoEXT-srcImage-00207# For each element of +-- @pRegions@, if the sum of @imageOffset.x@ and @extent.width@ does +-- not equal the width of the subresource specified by +-- @srcSubresource@, @extent.width@ /must/ be a multiple of the +-- +-- of the 'Vulkan.Core10.Enums.Format.Format' of @srcImage@ +-- +-- - #VUID-VkCopyImageToMemoryInfoEXT-srcImage-00208# For each element of +-- @pRegions@, if the sum of @imageOffset.y@ and @extent.height@ does +-- not equal the height of the subresource specified by +-- @srcSubresource@, @extent.height@ /must/ be a multiple of the +-- +-- of the 'Vulkan.Core10.Enums.Format.Format' of @srcImage@ +-- +-- - #VUID-VkCopyImageToMemoryInfoEXT-srcImage-00209# For each element of +-- @pRegions@, if the sum of @imageOffset.z@ and @extent.depth@ does +-- not equal the depth of the subresource specified by +-- @srcSubresource@, @extent.depth@ /must/ be a multiple of the +-- +-- of the 'Vulkan.Core10.Enums.Format.Format' of @srcImage@ +-- +-- - #VUID-VkCopyImageToMemoryInfoEXT-imageSubresource-09105# For each +-- element of @pRegions@, @imageSubresource.aspectMask@ /must/ specify +-- aspects present in @srcImage@ +-- +-- - #VUID-VkCopyImageToMemoryInfoEXT-srcImage-07981# If @srcImage@ has a +-- , +-- then for each element of @pRegions@, @imageSubresource.aspectMask@ +-- /must/ be a single valid +-- +-- bit +-- +-- - #VUID-VkCopyImageToMemoryInfoEXT-srcImage-07983# If @srcImage@ is of +-- type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D', for each element +-- of @pRegions@, @imageSubresource.baseArrayLayer@ /must/ be @0@ and +-- @imageSubresource.layerCount@ /must/ be @1@ +-- +-- - #VUID-VkCopyImageToMemoryInfoEXT-memoryRowLength-09106# For each +-- element of @pRegions@, @memoryRowLength@ /must/ be a multiple of the +-- +-- of the 'Vulkan.Core10.Enums.Format.Format' of @srcImage@ +-- +-- - #VUID-VkCopyImageToMemoryInfoEXT-memoryImageHeight-09107# For each +-- element of @pRegions@, @memoryImageHeight@ /must/ be a multiple of +-- the +-- +-- of the 'Vulkan.Core10.Enums.Format.Format' of @srcImage@ +-- +-- - #VUID-VkCopyImageToMemoryInfoEXT-memoryRowLength-09108# For each +-- element of @pRegions@, @memoryRowLength@ divided by the +-- +-- and then multiplied by the texel block size of @srcImage@ /must/ be +-- less than or equal to 231-1 +-- +-- - #VUID-VkCopyImageToMemoryInfoEXT-srcImageLayout-09064# +-- @srcImageLayout@ /must/ specify the current layout of the image +-- subresources of @srcImage@ specified in @pRegions@ +-- +-- - #VUID-VkCopyImageToMemoryInfoEXT-srcImageLayout-09065# +-- @srcImageLayout@ /must/ be one of the image layouts returned in +-- 'PhysicalDeviceHostImageCopyPropertiesEXT'::@pCopySrcLayouts@ +-- +-- - #VUID-VkCopyImageToMemoryInfoEXT-flags-09394# If @flags@ includes +-- 'HOST_IMAGE_COPY_MEMCPY_EXT', for each region in @pRegions@, +-- @memoryRowLength@ and @memoryImageHeight@ /must/ both be 0 +-- +-- == Valid Usage (Implicit) +-- +-- - #VUID-VkCopyImageToMemoryInfoEXT-sType-sType# @sType@ /must/ be +-- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_COPY_IMAGE_TO_MEMORY_INFO_EXT' +-- +-- - #VUID-VkCopyImageToMemoryInfoEXT-pNext-pNext# @pNext@ /must/ be +-- @NULL@ +-- +-- - #VUID-VkCopyImageToMemoryInfoEXT-flags-parameter# @flags@ /must/ be +-- a valid combination of 'HostImageCopyFlagBitsEXT' values +-- +-- - #VUID-VkCopyImageToMemoryInfoEXT-srcImage-parameter# @srcImage@ +-- /must/ be a valid 'Vulkan.Core10.Handles.Image' handle +-- +-- - #VUID-VkCopyImageToMemoryInfoEXT-srcImageLayout-parameter# +-- @srcImageLayout@ /must/ be a valid +-- 'Vulkan.Core10.Enums.ImageLayout.ImageLayout' value +-- +-- - #VUID-VkCopyImageToMemoryInfoEXT-pRegions-parameter# @pRegions@ +-- /must/ be a valid pointer to an array of @regionCount@ valid +-- 'ImageToMemoryCopyEXT' structures +-- +-- - #VUID-VkCopyImageToMemoryInfoEXT-regionCount-arraylength# +-- @regionCount@ /must/ be greater than @0@ +-- +-- = See Also +-- +-- , +-- 'HostImageCopyFlagsEXT', 'Vulkan.Core10.Handles.Image', +-- 'Vulkan.Core10.Enums.ImageLayout.ImageLayout', 'ImageToMemoryCopyEXT', +-- 'Vulkan.Core10.Enums.StructureType.StructureType', +-- 'copyImageToMemoryEXT' +data CopyImageToMemoryInfoEXT = CopyImageToMemoryInfoEXT + { -- | @flags@ is a bitmask of 'HostImageCopyFlagBitsEXT' values describing + -- additional copy parameters. + flags :: HostImageCopyFlagsEXT + , -- | @srcImage@ is the source image. + srcImage :: Image + , -- | @srcImageLayout@ is the layout of the source image subresources for the + -- copy. + srcImageLayout :: ImageLayout + , -- | @pRegions@ is a pointer to an array of 'ImageToMemoryCopyEXT' structures + -- specifying the regions to copy. + regions :: Vector ImageToMemoryCopyEXT + } + deriving (Typeable) +#if defined(GENERIC_INSTANCES) +deriving instance Generic (CopyImageToMemoryInfoEXT) +#endif +deriving instance Show CopyImageToMemoryInfoEXT + +instance ToCStruct CopyImageToMemoryInfoEXT where + withCStruct x f = allocaBytes 48 $ \p -> pokeCStruct p x (f p) + pokeCStruct p CopyImageToMemoryInfoEXT{..} f = evalContT $ do + lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_COPY_IMAGE_TO_MEMORY_INFO_EXT) + lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr) + lift $ poke ((p `plusPtr` 16 :: Ptr HostImageCopyFlagsEXT)) (flags) + lift $ poke ((p `plusPtr` 24 :: Ptr Image)) (srcImage) + lift $ poke ((p `plusPtr` 32 :: Ptr ImageLayout)) (srcImageLayout) + lift $ poke ((p `plusPtr` 36 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (regions)) :: Word32)) + pPRegions' <- ContT $ allocaBytes @ImageToMemoryCopyEXT ((Data.Vector.length (regions)) * 72) + lift $ Data.Vector.imapM_ (\i e -> poke (pPRegions' `plusPtr` (72 * (i)) :: Ptr ImageToMemoryCopyEXT) (e)) (regions) + lift $ poke ((p `plusPtr` 40 :: Ptr (Ptr ImageToMemoryCopyEXT))) (pPRegions') + lift $ f + cStructSize = 48 + cStructAlignment = 8 + pokeZeroCStruct p f = do + poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_COPY_IMAGE_TO_MEMORY_INFO_EXT) + poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr) + poke ((p `plusPtr` 24 :: Ptr Image)) (zero) + poke ((p `plusPtr` 32 :: Ptr ImageLayout)) (zero) + f + +instance FromCStruct CopyImageToMemoryInfoEXT where + peekCStruct p = do + flags <- peek @HostImageCopyFlagsEXT ((p `plusPtr` 16 :: Ptr HostImageCopyFlagsEXT)) + srcImage <- peek @Image ((p `plusPtr` 24 :: Ptr Image)) + srcImageLayout <- peek @ImageLayout ((p `plusPtr` 32 :: Ptr ImageLayout)) + regionCount <- peek @Word32 ((p `plusPtr` 36 :: Ptr Word32)) + pRegions <- peek @(Ptr ImageToMemoryCopyEXT) ((p `plusPtr` 40 :: Ptr (Ptr ImageToMemoryCopyEXT))) + pRegions' <- generateM (fromIntegral regionCount) (\i -> peekCStruct @ImageToMemoryCopyEXT ((pRegions `advancePtrBytes` (72 * (i)) :: Ptr ImageToMemoryCopyEXT))) + pure $ CopyImageToMemoryInfoEXT + flags srcImage srcImageLayout pRegions' + +instance Zero CopyImageToMemoryInfoEXT where + zero = CopyImageToMemoryInfoEXT + zero + zero + zero + mempty + + +-- | VkCopyImageToImageInfoEXT - Structure specifying parameters of an image +-- to image host copy command +-- +-- = Description +-- +-- 'copyImageToImageEXT' does not check whether the device memory +-- associated with @srcImage@ or @dstImage@ is currently in use before +-- performing the copy. The application /must/ guarantee that any +-- previously submitted command that writes to the copy regions has +-- completed before the host performs the copy. +-- +-- == Valid Usage +-- +-- - #VUID-VkCopyImageToImageInfoEXT-srcImage-09069# @srcImage@ and +-- @dstImage@ /must/ have been created with identical image creation +-- parameters +-- +-- - #VUID-VkCopyImageToImageInfoEXT-srcImage-09109# If @srcImage@ is +-- sparse then all memory ranges accessed by the copy command /must/ be +-- bound as described in +-- +-- +-- - #VUID-VkCopyImageToImageInfoEXT-srcImage-09111# If the stencil +-- aspect of @srcImage@ is accessed, and @srcImage@ was not created +-- with +-- , +-- @srcImage@ /must/ have been created with +-- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_HOST_TRANSFER_BIT_EXT' +-- set in 'Vulkan.Core10.Image.ImageCreateInfo'::@usage@ +-- +-- - #VUID-VkCopyImageToImageInfoEXT-srcImage-09112# If the stencil +-- aspect of @srcImage@ is accessed, and @srcImage@ was created with +-- , +-- @srcImage@ /must/ have been created with +-- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_HOST_TRANSFER_BIT_EXT' +-- set in +-- 'Vulkan.Core12.Promoted_From_VK_EXT_separate_stencil_usage.ImageStencilUsageCreateInfo'::@stencilUsage@ +-- +-- - #VUID-VkCopyImageToImageInfoEXT-srcImage-09113# If non-stencil +-- aspects of @srcImage@ are accessed, @srcImage@ /must/ have been +-- created with +-- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_HOST_TRANSFER_BIT_EXT' +-- set in 'Vulkan.Core10.Image.ImageCreateInfo'::@usage@ +-- +-- - #VUID-VkCopyImageToImageInfoEXT-srcOffset-09114# If @flags@ contains +-- 'HOST_IMAGE_COPY_MEMCPY_EXT', the @x@, @y@, and @z@ members of the +-- @srcOffset@ member of each element of @pRegions@ /must/ be @0@ +-- +-- - #VUID-VkCopyImageToImageInfoEXT-srcImage-09115# If @flags@ contains +-- 'HOST_IMAGE_COPY_MEMCPY_EXT', the @extent@ member of each element of +-- @pRegions@ /must/ equal the extents of @srcImage@ identified by +-- @srcSubresource@ +-- +-- - #VUID-VkCopyImageToImageInfoEXT-srcImage-07966# If @srcImage@ is +-- non-sparse then the image or the specified /disjoint/ plane /must/ +-- be bound completely and contiguously to a single +-- 'Vulkan.Core10.Handles.DeviceMemory' object +-- +-- - #VUID-VkCopyImageToImageInfoEXT-srcSubresource-07967# The +-- @srcSubresource.mipLevel@ member of each element of @pRegions@ +-- /must/ be less than the @mipLevels@ specified in +-- 'Vulkan.Core10.Image.ImageCreateInfo' when @srcImage@ was created +-- +-- - #VUID-VkCopyImageToImageInfoEXT-srcSubresource-07968# The +-- @srcSubresource.baseArrayLayer@ + @srcSubresource.layerCount@ of +-- each element of @pRegions@ , if @srcSubresource.layerCount@ is not +-- 'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS' and +-- +-- is not enabled, /must/ be less than or equal to the @arrayLayers@ +-- specified in 'Vulkan.Core10.Image.ImageCreateInfo' when @srcImage@ +-- was created +-- +-- - #VUID-VkCopyImageToImageInfoEXT-srcImage-07969# @srcImage@ /must/ +-- not have been created with @flags@ containing +-- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SUBSAMPLED_BIT_EXT' +-- +-- - #VUID-VkCopyImageToImageInfoEXT-srcSubresource-07970# The image +-- region specified by each element of @pRegions@ /must/ be contained +-- within the specified @srcSubresource@ of @srcImage@ +-- +-- - #VUID-VkCopyImageToImageInfoEXT-srcSubresource-07971# For each +-- element of @pRegions@, @srcOffset.x@ and (@extent.width@ + +-- @srcOffset.x@) /must/ both be greater than or equal to @0@ and less +-- than or equal to the width of the specified @srcSubresource@ of +-- @srcImage@ +-- +-- - #VUID-VkCopyImageToImageInfoEXT-srcSubresource-07972# For each +-- element of @pRegions@, @srcOffset.y@ and (@extent.height@ + +-- @srcOffset.y@) /must/ both be greater than or equal to @0@ and less +-- than or equal to the height of the specified @srcSubresource@ of +-- @srcImage@ +-- +-- - #VUID-VkCopyImageToImageInfoEXT-srcImage-07979# If @srcImage@ is of +-- type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D', then for each +-- element of @pRegions@, @srcOffset.y@ /must/ be @0@ and +-- @extent.height@ /must/ be @1@ +-- +-- - #VUID-VkCopyImageToImageInfoEXT-srcOffset-09104# For each element of +-- @pRegions@, @srcOffset.z@ and (@extent.depth@ + @srcOffset.z@) +-- /must/ both be greater than or equal to @0@ and less than or equal +-- to the depth of the specified @srcSubresource@ of @srcImage@ +-- +-- - #VUID-VkCopyImageToImageInfoEXT-srcImage-07980# If @srcImage@ is of +-- type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D' or +-- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D', then for each element +-- of @pRegions@, @srcOffset.z@ /must/ be @0@ and @extent.depth@ /must/ +-- be @1@ +-- +-- - #VUID-VkCopyImageToImageInfoEXT-srcImage-07274# For each element of +-- @pRegions@, @srcOffset.x@ /must/ be a multiple of the +-- +-- of the 'Vulkan.Core10.Enums.Format.Format' of @srcImage@ +-- +-- - #VUID-VkCopyImageToImageInfoEXT-srcImage-07275# For each element of +-- @pRegions@, @srcOffset.y@ /must/ be a multiple of the +-- +-- of the 'Vulkan.Core10.Enums.Format.Format' of @srcImage@ +-- +-- - #VUID-VkCopyImageToImageInfoEXT-srcImage-07276# For each element of +-- @pRegions@, @srcOffset.z@ /must/ be a multiple of the +-- +-- of the 'Vulkan.Core10.Enums.Format.Format' of @srcImage@ +-- +-- - #VUID-VkCopyImageToImageInfoEXT-srcImage-00207# For each element of +-- @pRegions@, if the sum of @srcOffset.x@ and @extent.width@ does not +-- equal the width of the subresource specified by @srcSubresource@, +-- @extent.width@ /must/ be a multiple of the +-- +-- of the 'Vulkan.Core10.Enums.Format.Format' of @srcImage@ +-- +-- - #VUID-VkCopyImageToImageInfoEXT-srcImage-00208# For each element of +-- @pRegions@, if the sum of @srcOffset.y@ and @extent.height@ does not +-- equal the height of the subresource specified by @srcSubresource@, +-- @extent.height@ /must/ be a multiple of the +-- +-- of the 'Vulkan.Core10.Enums.Format.Format' of @srcImage@ +-- +-- - #VUID-VkCopyImageToImageInfoEXT-srcImage-00209# For each element of +-- @pRegions@, if the sum of @srcOffset.z@ and @extent.depth@ does not +-- equal the depth of the subresource specified by @srcSubresource@, +-- @extent.depth@ /must/ be a multiple of the +-- +-- of the 'Vulkan.Core10.Enums.Format.Format' of @srcImage@ +-- +-- - #VUID-VkCopyImageToImageInfoEXT-srcSubresource-09105# For each +-- element of @pRegions@, @srcSubresource.aspectMask@ /must/ specify +-- aspects present in @srcImage@ +-- +-- - #VUID-VkCopyImageToImageInfoEXT-srcImage-07981# If @srcImage@ has a +-- , +-- then for each element of @pRegions@, @srcSubresource.aspectMask@ +-- /must/ be a single valid +-- +-- bit +-- +-- - #VUID-VkCopyImageToImageInfoEXT-srcImage-07983# If @srcImage@ is of +-- type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D', for each element +-- of @pRegions@, @srcSubresource.baseArrayLayer@ /must/ be @0@ and +-- @srcSubresource.layerCount@ /must/ be @1@ +-- +-- - #VUID-VkCopyImageToImageInfoEXT-dstImage-09109# If @dstImage@ is +-- sparse then all memory ranges accessed by the copy command /must/ be +-- bound as described in +-- +-- +-- - #VUID-VkCopyImageToImageInfoEXT-dstImage-09111# If the stencil +-- aspect of @dstImage@ is accessed, and @dstImage@ was not created +-- with +-- , +-- @dstImage@ /must/ have been created with +-- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_HOST_TRANSFER_BIT_EXT' +-- set in 'Vulkan.Core10.Image.ImageCreateInfo'::@usage@ +-- +-- - #VUID-VkCopyImageToImageInfoEXT-dstImage-09112# If the stencil +-- aspect of @dstImage@ is accessed, and @dstImage@ was created with +-- , +-- @dstImage@ /must/ have been created with +-- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_HOST_TRANSFER_BIT_EXT' +-- set in +-- 'Vulkan.Core12.Promoted_From_VK_EXT_separate_stencil_usage.ImageStencilUsageCreateInfo'::@stencilUsage@ +-- +-- - #VUID-VkCopyImageToImageInfoEXT-dstImage-09113# If non-stencil +-- aspects of @dstImage@ are accessed, @dstImage@ /must/ have been +-- created with +-- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_HOST_TRANSFER_BIT_EXT' +-- set in 'Vulkan.Core10.Image.ImageCreateInfo'::@usage@ +-- +-- - #VUID-VkCopyImageToImageInfoEXT-dstOffset-09114# If @flags@ contains +-- 'HOST_IMAGE_COPY_MEMCPY_EXT', the @x@, @y@, and @z@ members of the +-- @dstOffset@ member of each element of @pRegions@ /must/ be @0@ +-- +-- - #VUID-VkCopyImageToImageInfoEXT-dstImage-09115# If @flags@ contains +-- 'HOST_IMAGE_COPY_MEMCPY_EXT', the @extent@ member of each element of +-- @pRegions@ /must/ equal the extents of @dstImage@ identified by +-- @dstSubresource@ +-- +-- - #VUID-VkCopyImageToImageInfoEXT-dstImage-07966# If @dstImage@ is +-- non-sparse then the image or the specified /disjoint/ plane /must/ +-- be bound completely and contiguously to a single +-- 'Vulkan.Core10.Handles.DeviceMemory' object +-- +-- - #VUID-VkCopyImageToImageInfoEXT-dstSubresource-07967# The +-- @dstSubresource.mipLevel@ member of each element of @pRegions@ +-- /must/ be less than the @mipLevels@ specified in +-- 'Vulkan.Core10.Image.ImageCreateInfo' when @dstImage@ was created +-- +-- - #VUID-VkCopyImageToImageInfoEXT-dstSubresource-07968# The +-- @dstSubresource.baseArrayLayer@ + @dstSubresource.layerCount@ of +-- each element of @pRegions@ , if @dstSubresource.layerCount@ is not +-- 'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS' and +-- +-- is not enabled, /must/ be less than or equal to the @arrayLayers@ +-- specified in 'Vulkan.Core10.Image.ImageCreateInfo' when @dstImage@ +-- was created +-- +-- - #VUID-VkCopyImageToImageInfoEXT-dstImage-07969# @dstImage@ /must/ +-- not have been created with @flags@ containing +-- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SUBSAMPLED_BIT_EXT' +-- +-- - #VUID-VkCopyImageToImageInfoEXT-dstSubresource-07970# The image +-- region specified by each element of @pRegions@ /must/ be contained +-- within the specified @dstSubresource@ of @dstImage@ +-- +-- - #VUID-VkCopyImageToImageInfoEXT-dstSubresource-07971# For each +-- element of @pRegions@, @dstOffset.x@ and (@extent.width@ + +-- @dstOffset.x@) /must/ both be greater than or equal to @0@ and less +-- than or equal to the width of the specified @dstSubresource@ of +-- @dstImage@ +-- +-- - #VUID-VkCopyImageToImageInfoEXT-dstSubresource-07972# For each +-- element of @pRegions@, @dstOffset.y@ and (@extent.height@ + +-- @dstOffset.y@) /must/ both be greater than or equal to @0@ and less +-- than or equal to the height of the specified @dstSubresource@ of +-- @dstImage@ +-- +-- - #VUID-VkCopyImageToImageInfoEXT-dstImage-07979# If @dstImage@ is of +-- type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D', then for each +-- element of @pRegions@, @dstOffset.y@ /must/ be @0@ and +-- @extent.height@ /must/ be @1@ +-- +-- - #VUID-VkCopyImageToImageInfoEXT-dstOffset-09104# For each element of +-- @pRegions@, @dstOffset.z@ and (@extent.depth@ + @dstOffset.z@) +-- /must/ both be greater than or equal to @0@ and less than or equal +-- to the depth of the specified @dstSubresource@ of @dstImage@ +-- +-- - #VUID-VkCopyImageToImageInfoEXT-dstImage-07980# If @dstImage@ is of +-- type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D' or +-- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D', then for each element +-- of @pRegions@, @dstOffset.z@ /must/ be @0@ and @extent.depth@ /must/ +-- be @1@ +-- +-- - #VUID-VkCopyImageToImageInfoEXT-dstImage-07274# For each element of +-- @pRegions@, @dstOffset.x@ /must/ be a multiple of the +-- +-- of the 'Vulkan.Core10.Enums.Format.Format' of @dstImage@ +-- +-- - #VUID-VkCopyImageToImageInfoEXT-dstImage-07275# For each element of +-- @pRegions@, @dstOffset.y@ /must/ be a multiple of the +-- +-- of the 'Vulkan.Core10.Enums.Format.Format' of @dstImage@ +-- +-- - #VUID-VkCopyImageToImageInfoEXT-dstImage-07276# For each element of +-- @pRegions@, @dstOffset.z@ /must/ be a multiple of the +-- +-- of the 'Vulkan.Core10.Enums.Format.Format' of @dstImage@ +-- +-- - #VUID-VkCopyImageToImageInfoEXT-dstImage-00207# For each element of +-- @pRegions@, if the sum of @dstOffset.x@ and @extent.width@ does not +-- equal the width of the subresource specified by @srcSubresource@, +-- @extent.width@ /must/ be a multiple of the +-- +-- of the 'Vulkan.Core10.Enums.Format.Format' of @dstImage@ +-- +-- - #VUID-VkCopyImageToImageInfoEXT-dstImage-00208# For each element of +-- @pRegions@, if the sum of @dstOffset.y@ and @extent.height@ does not +-- equal the height of the subresource specified by @srcSubresource@, +-- @extent.height@ /must/ be a multiple of the +-- +-- of the 'Vulkan.Core10.Enums.Format.Format' of @dstImage@ +-- +-- - #VUID-VkCopyImageToImageInfoEXT-dstImage-00209# For each element of +-- @pRegions@, if the sum of @dstOffset.z@ and @extent.depth@ does not +-- equal the depth of the subresource specified by @srcSubresource@, +-- @extent.depth@ /must/ be a multiple of the +-- +-- of the 'Vulkan.Core10.Enums.Format.Format' of @dstImage@ +-- +-- - #VUID-VkCopyImageToImageInfoEXT-dstSubresource-09105# For each +-- element of @pRegions@, @dstSubresource.aspectMask@ /must/ specify +-- aspects present in @dstImage@ +-- +-- - #VUID-VkCopyImageToImageInfoEXT-dstImage-07981# If @dstImage@ has a +-- , +-- then for each element of @pRegions@, @dstSubresource.aspectMask@ +-- /must/ be a single valid +-- +-- bit +-- +-- - #VUID-VkCopyImageToImageInfoEXT-dstImage-07983# If @dstImage@ is of +-- type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D', for each element +-- of @pRegions@, @dstSubresource.baseArrayLayer@ /must/ be @0@ and +-- @dstSubresource.layerCount@ /must/ be @1@ +-- +-- - #VUID-VkCopyImageToImageInfoEXT-srcImageLayout-09070# +-- @srcImageLayout@ /must/ specify the current layout of the image +-- subresources of @srcImage@ specified in @pRegions@ +-- +-- - #VUID-VkCopyImageToImageInfoEXT-dstImageLayout-09071# +-- @dstImageLayout@ /must/ specify the current layout of the image +-- subresources of @dstImage@ specified in @pRegions@ +-- +-- - #VUID-VkCopyImageToImageInfoEXT-srcImageLayout-09072# +-- @srcImageLayout@ /must/ be one of the image layouts returned in +-- 'PhysicalDeviceHostImageCopyPropertiesEXT'::@pCopySrcLayouts@ +-- +-- - #VUID-VkCopyImageToImageInfoEXT-dstImageLayout-09073# +-- @dstImageLayout@ /must/ be one of the image layouts returned in +-- 'PhysicalDeviceHostImageCopyPropertiesEXT'::@pCopyDstLayouts@ +-- +-- == Valid Usage (Implicit) +-- +-- - #VUID-VkCopyImageToImageInfoEXT-sType-sType# @sType@ /must/ be +-- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_COPY_IMAGE_TO_IMAGE_INFO_EXT' +-- +-- - #VUID-VkCopyImageToImageInfoEXT-pNext-pNext# @pNext@ /must/ be +-- @NULL@ +-- +-- - #VUID-VkCopyImageToImageInfoEXT-flags-parameter# @flags@ /must/ be a +-- valid combination of 'HostImageCopyFlagBitsEXT' values +-- +-- - #VUID-VkCopyImageToImageInfoEXT-srcImage-parameter# @srcImage@ +-- /must/ be a valid 'Vulkan.Core10.Handles.Image' handle +-- +-- - #VUID-VkCopyImageToImageInfoEXT-srcImageLayout-parameter# +-- @srcImageLayout@ /must/ be a valid +-- 'Vulkan.Core10.Enums.ImageLayout.ImageLayout' value +-- +-- - #VUID-VkCopyImageToImageInfoEXT-dstImage-parameter# @dstImage@ +-- /must/ be a valid 'Vulkan.Core10.Handles.Image' handle +-- +-- - #VUID-VkCopyImageToImageInfoEXT-dstImageLayout-parameter# +-- @dstImageLayout@ /must/ be a valid +-- 'Vulkan.Core10.Enums.ImageLayout.ImageLayout' value +-- +-- - #VUID-VkCopyImageToImageInfoEXT-pRegions-parameter# @pRegions@ +-- /must/ be a valid pointer to an array of @regionCount@ valid +-- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.ImageCopy2' +-- structures +-- +-- - #VUID-VkCopyImageToImageInfoEXT-regionCount-arraylength# +-- @regionCount@ /must/ be greater than @0@ +-- +-- - #VUID-VkCopyImageToImageInfoEXT-commonparent# Both of @dstImage@, +-- and @srcImage@ /must/ have been created, allocated, or retrieved +-- from the same 'Vulkan.Core10.Handles.Device' +-- +-- = See Also +-- +-- , +-- 'HostImageCopyFlagsEXT', 'Vulkan.Core10.Handles.Image', +-- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.ImageCopy2', +-- 'Vulkan.Core10.Enums.ImageLayout.ImageLayout', +-- 'Vulkan.Core10.Enums.StructureType.StructureType', 'copyImageToImageEXT' +data CopyImageToImageInfoEXT = CopyImageToImageInfoEXT + { -- | @flags@ is a bitmask of 'HostImageCopyFlagBitsEXT' values describing + -- additional copy parameters. + flags :: HostImageCopyFlagsEXT + , -- | @srcImage@ is the source image. + srcImage :: Image + , -- | @srcImageLayout@ is the layout of the source image subresources for the + -- copy. + srcImageLayout :: ImageLayout + , -- | @dstImage@ is the destination image. + dstImage :: Image + , -- | @dstImageLayout@ is the layout of the destination image subresources for + -- the copy. + dstImageLayout :: ImageLayout + , -- | @pRegions@ is a pointer to an array of + -- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.ImageCopy2' + -- structures specifying the regions to copy. + regions :: Vector ImageCopy2 + } + deriving (Typeable) +#if defined(GENERIC_INSTANCES) +deriving instance Generic (CopyImageToImageInfoEXT) +#endif +deriving instance Show CopyImageToImageInfoEXT + +instance ToCStruct CopyImageToImageInfoEXT where + withCStruct x f = allocaBytes 64 $ \p -> pokeCStruct p x (f p) + pokeCStruct p CopyImageToImageInfoEXT{..} f = evalContT $ do + lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_COPY_IMAGE_TO_IMAGE_INFO_EXT) + lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr) + lift $ poke ((p `plusPtr` 16 :: Ptr HostImageCopyFlagsEXT)) (flags) + lift $ poke ((p `plusPtr` 24 :: Ptr Image)) (srcImage) + lift $ poke ((p `plusPtr` 32 :: Ptr ImageLayout)) (srcImageLayout) + lift $ poke ((p `plusPtr` 40 :: Ptr Image)) (dstImage) + lift $ poke ((p `plusPtr` 48 :: Ptr ImageLayout)) (dstImageLayout) + lift $ poke ((p `plusPtr` 52 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (regions)) :: Word32)) + pPRegions' <- ContT $ allocaBytes @ImageCopy2 ((Data.Vector.length (regions)) * 88) + lift $ Data.Vector.imapM_ (\i e -> poke (pPRegions' `plusPtr` (88 * (i)) :: Ptr ImageCopy2) (e)) (regions) + lift $ poke ((p `plusPtr` 56 :: Ptr (Ptr ImageCopy2))) (pPRegions') + lift $ f + cStructSize = 64 + cStructAlignment = 8 + pokeZeroCStruct p f = do + poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_COPY_IMAGE_TO_IMAGE_INFO_EXT) + poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr) + poke ((p `plusPtr` 24 :: Ptr Image)) (zero) + poke ((p `plusPtr` 32 :: Ptr ImageLayout)) (zero) + poke ((p `plusPtr` 40 :: Ptr Image)) (zero) + poke ((p `plusPtr` 48 :: Ptr ImageLayout)) (zero) + f + +instance FromCStruct CopyImageToImageInfoEXT where + peekCStruct p = do + flags <- peek @HostImageCopyFlagsEXT ((p `plusPtr` 16 :: Ptr HostImageCopyFlagsEXT)) + srcImage <- peek @Image ((p `plusPtr` 24 :: Ptr Image)) + srcImageLayout <- peek @ImageLayout ((p `plusPtr` 32 :: Ptr ImageLayout)) + dstImage <- peek @Image ((p `plusPtr` 40 :: Ptr Image)) + dstImageLayout <- peek @ImageLayout ((p `plusPtr` 48 :: Ptr ImageLayout)) + regionCount <- peek @Word32 ((p `plusPtr` 52 :: Ptr Word32)) + pRegions <- peek @(Ptr ImageCopy2) ((p `plusPtr` 56 :: Ptr (Ptr ImageCopy2))) + pRegions' <- generateM (fromIntegral regionCount) (\i -> peekCStruct @ImageCopy2 ((pRegions `advancePtrBytes` (88 * (i)) :: Ptr ImageCopy2))) + pure $ CopyImageToImageInfoEXT + flags srcImage srcImageLayout dstImage dstImageLayout pRegions' + +instance Zero CopyImageToImageInfoEXT where + zero = CopyImageToImageInfoEXT + zero + zero + zero + zero + zero + mempty + + +-- | VkHostImageLayoutTransitionInfoEXT - Structure specifying the parameters +-- of a host-side image layout transition +-- +-- = Description +-- +-- 'transitionImageLayoutEXT' does not check whether the device memory +-- associated with an image is currently in use before performing the +-- layout transition. The application /must/ guarantee that any previously +-- submitted command that reads from or writes to this subresource has +-- completed before the host performs the layout transition. +-- +-- Note +-- +-- Image layout transitions performed on the host do not require queue +-- family ownership transfers as the physical layout of the image will not +-- vary between queue families for the layouts supported by this function. +-- +-- == Valid Usage +-- +-- - #VUID-VkHostImageLayoutTransitionInfoEXT-image-09055# @image@ /must/ +-- have been created with +-- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_HOST_TRANSFER_BIT_EXT' +-- +-- - #VUID-VkHostImageLayoutTransitionInfoEXT-subresourceRange-01486# +-- @subresourceRange.baseMipLevel@ /must/ be less than the @mipLevels@ +-- specified in 'Vulkan.Core10.Image.ImageCreateInfo' when @image@ was +-- created +-- +-- - #VUID-VkHostImageLayoutTransitionInfoEXT-subresourceRange-01724# If +-- @subresourceRange.levelCount@ is not +-- 'Vulkan.Core10.APIConstants.REMAINING_MIP_LEVELS', +-- @subresourceRange.baseMipLevel@ + @subresourceRange.levelCount@ +-- /must/ be less than or equal to the @mipLevels@ specified in +-- 'Vulkan.Core10.Image.ImageCreateInfo' when @image@ was created +-- +-- - #VUID-VkHostImageLayoutTransitionInfoEXT-subresourceRange-01488# +-- @subresourceRange.baseArrayLayer@ /must/ be less than the +-- @arrayLayers@ specified in 'Vulkan.Core10.Image.ImageCreateInfo' +-- when @image@ was created +-- +-- - #VUID-VkHostImageLayoutTransitionInfoEXT-subresourceRange-01725# If +-- @subresourceRange.layerCount@ is not +-- 'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS', +-- @subresourceRange.baseArrayLayer@ + @subresourceRange.layerCount@ +-- /must/ be less than or equal to the @arrayLayers@ specified in +-- 'Vulkan.Core10.Image.ImageCreateInfo' when @image@ was created +-- +-- - #VUID-VkHostImageLayoutTransitionInfoEXT-image-01932# If @image@ is +-- non-sparse then it /must/ be bound completely and contiguously to a +-- single 'Vulkan.Core10.Handles.DeviceMemory' object +-- +-- - #VUID-VkHostImageLayoutTransitionInfoEXT-image-09241# If @image@ has +-- a color format that is single-plane, then the @aspectMask@ member of +-- @subresourceRange@ /must/ be +-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT' +-- +-- - #VUID-VkHostImageLayoutTransitionInfoEXT-image-09242# If @image@ has +-- a color format and is not /disjoint/, then the @aspectMask@ member +-- of @subresourceRange@ /must/ be +-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT' +-- +-- - #VUID-VkHostImageLayoutTransitionInfoEXT-image-01672# If @image@ has +-- a multi-planar format and the image is /disjoint/, then the +-- @aspectMask@ member of @subresourceRange@ /must/ include at least +-- one +-- +-- bit or +-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT' +-- +-- - #VUID-VkHostImageLayoutTransitionInfoEXT-image-03319# If @image@ has +-- a depth\/stencil format with both depth and stencil and the +-- +-- feature is enabled, then the @aspectMask@ member of +-- @subresourceRange@ /must/ include either or both +-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_DEPTH_BIT' and +-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT' +-- +-- - #VUID-VkHostImageLayoutTransitionInfoEXT-image-03320# If @image@ has +-- a depth\/stencil format with both depth and stencil and the +-- +-- feature is not enabled, then the @aspectMask@ member of +-- @subresourceRange@ /must/ include both +-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_DEPTH_BIT' and +-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT' +-- +-- - #VUID-VkHostImageLayoutTransitionInfoEXT-aspectMask-08702# If the +-- @aspectMask@ member of @subresourceRange@ includes +-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_DEPTH_BIT', +-- @oldLayout@ and @newLayout@ /must/ not be one of +-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL' +-- or +-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL' +-- +-- - #VUID-VkHostImageLayoutTransitionInfoEXT-aspectMask-08703# If the +-- @aspectMask@ member of @subresourceRange@ includes +-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT', +-- @oldLayout@ and @newLayout@ /must/ not be one of +-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL' +-- or +-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL' +-- +-- - #VUID-VkHostImageLayoutTransitionInfoEXT-oldLayout-09229# +-- @oldLayout@ /must/ be either +-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_UNDEFINED' or the +-- current layout of the image subresources as specified in +-- @subresourceRange@ +-- +-- - #VUID-VkHostImageLayoutTransitionInfoEXT-oldLayout-09230# If +-- @oldLayout@ is not +-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_UNDEFINED' or +-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_PREINITIALIZED', it +-- /must/ be one of the layouts in +-- 'PhysicalDeviceHostImageCopyPropertiesEXT'::@pCopySrcLayouts@ +-- +-- - #VUID-VkHostImageLayoutTransitionInfoEXT-newLayout-09057# +-- @newLayout@ /must/ be one of the layouts in +-- 'PhysicalDeviceHostImageCopyPropertiesEXT'::@pCopyDstLayouts@ +-- +-- == Valid Usage (Implicit) +-- +-- - #VUID-VkHostImageLayoutTransitionInfoEXT-sType-sType# @sType@ /must/ +-- be +-- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_HOST_IMAGE_LAYOUT_TRANSITION_INFO_EXT' +-- +-- - #VUID-VkHostImageLayoutTransitionInfoEXT-pNext-pNext# @pNext@ /must/ +-- be @NULL@ +-- +-- - #VUID-VkHostImageLayoutTransitionInfoEXT-image-parameter# @image@ +-- /must/ be a valid 'Vulkan.Core10.Handles.Image' handle +-- +-- - #VUID-VkHostImageLayoutTransitionInfoEXT-oldLayout-parameter# +-- @oldLayout@ /must/ be a valid +-- 'Vulkan.Core10.Enums.ImageLayout.ImageLayout' value +-- +-- - #VUID-VkHostImageLayoutTransitionInfoEXT-newLayout-parameter# +-- @newLayout@ /must/ be a valid +-- 'Vulkan.Core10.Enums.ImageLayout.ImageLayout' value +-- +-- - #VUID-VkHostImageLayoutTransitionInfoEXT-subresourceRange-parameter# +-- @subresourceRange@ /must/ be a valid +-- 'Vulkan.Core10.ImageView.ImageSubresourceRange' structure +-- +-- = See Also +-- +-- , +-- 'Vulkan.Core10.Handles.Image', +-- 'Vulkan.Core10.Enums.ImageLayout.ImageLayout', +-- 'Vulkan.Core10.ImageView.ImageSubresourceRange', +-- 'Vulkan.Core10.Enums.StructureType.StructureType', +-- 'transitionImageLayoutEXT' +data HostImageLayoutTransitionInfoEXT = HostImageLayoutTransitionInfoEXT + { -- | @image@ is a handle to the image affected by this layout transition. + image :: Image + , -- | @oldLayout@ is the old layout in an + -- . + oldLayout :: ImageLayout + , -- | @newLayout@ is the new layout in an + -- . + newLayout :: ImageLayout + , -- | @subresourceRange@ describes the + -- + -- within @image@ that is affected by this layout transition. + subresourceRange :: ImageSubresourceRange + } + deriving (Typeable) +#if defined(GENERIC_INSTANCES) +deriving instance Generic (HostImageLayoutTransitionInfoEXT) +#endif +deriving instance Show HostImageLayoutTransitionInfoEXT + +instance ToCStruct HostImageLayoutTransitionInfoEXT where + withCStruct x f = allocaBytes 56 $ \p -> pokeCStruct p x (f p) + pokeCStruct p HostImageLayoutTransitionInfoEXT{..} f = do + poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_HOST_IMAGE_LAYOUT_TRANSITION_INFO_EXT) + poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr) + poke ((p `plusPtr` 16 :: Ptr Image)) (image) + poke ((p `plusPtr` 24 :: Ptr ImageLayout)) (oldLayout) + poke ((p `plusPtr` 28 :: Ptr ImageLayout)) (newLayout) + poke ((p `plusPtr` 32 :: Ptr ImageSubresourceRange)) (subresourceRange) + f + cStructSize = 56 + cStructAlignment = 8 + pokeZeroCStruct p f = do + poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_HOST_IMAGE_LAYOUT_TRANSITION_INFO_EXT) + poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr) + poke ((p `plusPtr` 16 :: Ptr Image)) (zero) + poke ((p `plusPtr` 24 :: Ptr ImageLayout)) (zero) + poke ((p `plusPtr` 28 :: Ptr ImageLayout)) (zero) + poke ((p `plusPtr` 32 :: Ptr ImageSubresourceRange)) (zero) + f + +instance FromCStruct HostImageLayoutTransitionInfoEXT where + peekCStruct p = do + image <- peek @Image ((p `plusPtr` 16 :: Ptr Image)) + oldLayout <- peek @ImageLayout ((p `plusPtr` 24 :: Ptr ImageLayout)) + newLayout <- peek @ImageLayout ((p `plusPtr` 28 :: Ptr ImageLayout)) + subresourceRange <- peekCStruct @ImageSubresourceRange ((p `plusPtr` 32 :: Ptr ImageSubresourceRange)) + pure $ HostImageLayoutTransitionInfoEXT + image oldLayout newLayout subresourceRange + +instance Storable HostImageLayoutTransitionInfoEXT where + sizeOf ~_ = 56 + alignment ~_ = 8 + peek = peekCStruct + poke ptr poked = pokeCStruct ptr poked (pure ()) + +instance Zero HostImageLayoutTransitionInfoEXT where + zero = HostImageLayoutTransitionInfoEXT + zero + zero + zero + zero + + +-- | VkSubresourceHostMemcpySizeEXT - Memory size needed to copy to or from +-- an image on the host with VK_HOST_IMAGE_COPY_MEMCPY_EXT +-- +-- == Valid Usage (Implicit) +-- +-- = See Also +-- +-- , +-- 'Vulkan.Core10.FundamentalTypes.DeviceSize', +-- 'Vulkan.Core10.Enums.StructureType.StructureType' +data SubresourceHostMemcpySizeEXT = SubresourceHostMemcpySizeEXT + { -- | @size@ is the size in bytes of the image subresource. + size :: DeviceSize } + deriving (Typeable, Eq) +#if defined(GENERIC_INSTANCES) +deriving instance Generic (SubresourceHostMemcpySizeEXT) +#endif +deriving instance Show SubresourceHostMemcpySizeEXT + +instance ToCStruct SubresourceHostMemcpySizeEXT where + withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p) + pokeCStruct p SubresourceHostMemcpySizeEXT{..} f = do + poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_SUBRESOURCE_HOST_MEMCPY_SIZE_EXT) + poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr) + poke ((p `plusPtr` 16 :: Ptr DeviceSize)) (size) + f + cStructSize = 24 + cStructAlignment = 8 + pokeZeroCStruct p f = do + poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_SUBRESOURCE_HOST_MEMCPY_SIZE_EXT) + poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr) + poke ((p `plusPtr` 16 :: Ptr DeviceSize)) (zero) + f + +instance FromCStruct SubresourceHostMemcpySizeEXT where + peekCStruct p = do + size <- peek @DeviceSize ((p `plusPtr` 16 :: Ptr DeviceSize)) + pure $ SubresourceHostMemcpySizeEXT + size + +instance Storable SubresourceHostMemcpySizeEXT where + sizeOf ~_ = 24 + alignment ~_ = 8 + peek = peekCStruct + poke ptr poked = pokeCStruct ptr poked (pure ()) + +instance Zero SubresourceHostMemcpySizeEXT where + zero = SubresourceHostMemcpySizeEXT + zero + + +-- | VkHostImageCopyDevicePerformanceQueryEXT - Struct containing information +-- about optimality of device access +-- +-- = Description +-- +-- The implementation /may/ return 'Vulkan.Core10.FundamentalTypes.FALSE' +-- in @optimalDeviceAccess@ if @identicalMemoryLayout@ is +-- 'Vulkan.Core10.FundamentalTypes.FALSE'. If @identicalMemoryLayout@ is +-- 'Vulkan.Core10.FundamentalTypes.TRUE', @optimalDeviceAccess@ /must/ be +-- 'Vulkan.Core10.FundamentalTypes.TRUE'. +-- +-- The implementation /may/ return 'Vulkan.Core10.FundamentalTypes.TRUE' in +-- @optimalDeviceAccess@ while @identicalMemoryLayout@ is +-- 'Vulkan.Core10.FundamentalTypes.FALSE'. In this situation, any device +-- performance impact /should/ not be measurable. +-- +-- If +-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceImageFormatInfo2'::@format@ +-- is a block-compressed format and +-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceImageFormatProperties2' +-- returns 'Vulkan.Core10.Enums.Result.SUCCESS', the implementation /must/ +-- return 'Vulkan.Core10.FundamentalTypes.TRUE' in @optimalDeviceAccess@. +-- +-- Note +-- +-- Applications can make use of @optimalDeviceAccess@ to determine their +-- resource copying strategy. If a resource is expected to be accessed more +-- on device than on the host, and the implementation considers the +-- resource sub-optimally accessed, it is likely better to use device +-- copies instead. +-- +-- Note +-- +-- Layout not being identical yet still considered optimal for device +-- access could happen if the implementation has different memory layout +-- patterns, some of which are easier to access on the host. +-- +-- Note +-- +-- The most practical reason for @optimalDeviceAccess@ to be +-- 'Vulkan.Core10.FundamentalTypes.FALSE' is that host image access may +-- disable framebuffer compression where it would otherwise have been +-- enabled. This represents far more efficient host image access since no +-- compression algorithm is required to read or write to the image, but it +-- would impact device access performance. Some implementations may only +-- set @optimalDeviceAccess@ to 'Vulkan.Core10.FundamentalTypes.FALSE' if +-- certain conditions are met, such as specific image usage flags or +-- creation flags. +-- +-- == Valid Usage (Implicit) +-- +-- = See Also +-- +-- , +-- 'Vulkan.Core10.FundamentalTypes.Bool32', +-- 'Vulkan.Core10.Enums.StructureType.StructureType' +data HostImageCopyDevicePerformanceQueryEXT = HostImageCopyDevicePerformanceQueryEXT + { -- | @optimalDeviceAccess@ returns 'Vulkan.Core10.FundamentalTypes.TRUE' if + -- use of host image copy has no adverse effect on device access + -- performance, compared to an image that is created with exact same + -- creation parameters, and bound to the same + -- 'Vulkan.Core10.Handles.DeviceMemory', except that + -- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_HOST_TRANSFER_BIT_EXT' + -- is replaced with + -- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_SRC_BIT' + -- and + -- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_DST_BIT'. + optimalDeviceAccess :: Bool + , -- | @identicalMemoryLayout@ returns 'Vulkan.Core10.FundamentalTypes.TRUE' if + -- use of host image copy has no impact on memory layout compared to an + -- image that is created with exact same creation parameters, and bound to + -- the same 'Vulkan.Core10.Handles.DeviceMemory', except that + -- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_HOST_TRANSFER_BIT_EXT' + -- is replaced with + -- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_SRC_BIT' + -- and + -- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_DST_BIT'. + identicalMemoryLayout :: Bool + } + deriving (Typeable, Eq) +#if defined(GENERIC_INSTANCES) +deriving instance Generic (HostImageCopyDevicePerformanceQueryEXT) +#endif +deriving instance Show HostImageCopyDevicePerformanceQueryEXT + +instance ToCStruct HostImageCopyDevicePerformanceQueryEXT where + withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p) + pokeCStruct p HostImageCopyDevicePerformanceQueryEXT{..} f = do + poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_HOST_IMAGE_COPY_DEVICE_PERFORMANCE_QUERY_EXT) + poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr) + poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (optimalDeviceAccess)) + poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (identicalMemoryLayout)) + f + cStructSize = 24 + cStructAlignment = 8 + pokeZeroCStruct p f = do + poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_HOST_IMAGE_COPY_DEVICE_PERFORMANCE_QUERY_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 HostImageCopyDevicePerformanceQueryEXT where + peekCStruct p = do + optimalDeviceAccess <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32)) + identicalMemoryLayout <- peek @Bool32 ((p `plusPtr` 20 :: Ptr Bool32)) + pure $ HostImageCopyDevicePerformanceQueryEXT + (bool32ToBool optimalDeviceAccess) + (bool32ToBool identicalMemoryLayout) + +instance Storable HostImageCopyDevicePerformanceQueryEXT where + sizeOf ~_ = 24 + alignment ~_ = 8 + peek = peekCStruct + poke ptr poked = pokeCStruct ptr poked (pure ()) + +instance Zero HostImageCopyDevicePerformanceQueryEXT where + zero = HostImageCopyDevicePerformanceQueryEXT + zero + zero + + +type HostImageCopyFlagsEXT = HostImageCopyFlagBitsEXT + +-- | VkHostImageCopyFlagBitsEXT - Bitmask specifying additional copy +-- parameters +-- +-- = See Also +-- +-- , +-- 'HostImageCopyFlagsEXT' +newtype HostImageCopyFlagBitsEXT = HostImageCopyFlagBitsEXT Flags + deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits) + +-- | 'HOST_IMAGE_COPY_MEMCPY_EXT' specifies that no memory layout swizzling +-- is to be applied during data copy. For copies between memory and images, +-- this flag indicates that image data in host memory is swizzled in +-- exactly the same way as the image data on the device. Using this flag +-- indicates that the implementations /may/ use a simple memory copy to +-- transfer the data between the host memory and the device memory. The +-- format of the swizzled data in host memory is platform dependent and is +-- not defined in this specification. +pattern HOST_IMAGE_COPY_MEMCPY_EXT = HostImageCopyFlagBitsEXT 0x00000001 + +conNameHostImageCopyFlagBitsEXT :: String +conNameHostImageCopyFlagBitsEXT = "HostImageCopyFlagBitsEXT" + +enumPrefixHostImageCopyFlagBitsEXT :: String +enumPrefixHostImageCopyFlagBitsEXT = "HOST_IMAGE_COPY_MEMCPY_EXT" + +showTableHostImageCopyFlagBitsEXT :: [(HostImageCopyFlagBitsEXT, String)] +showTableHostImageCopyFlagBitsEXT = [(HOST_IMAGE_COPY_MEMCPY_EXT, "")] + +instance Show HostImageCopyFlagBitsEXT where + showsPrec = + enumShowsPrec + enumPrefixHostImageCopyFlagBitsEXT + showTableHostImageCopyFlagBitsEXT + conNameHostImageCopyFlagBitsEXT + (\(HostImageCopyFlagBitsEXT x) -> x) + (\x -> showString "0x" . showHex x) + +instance Read HostImageCopyFlagBitsEXT where + readPrec = + enumReadPrec + enumPrefixHostImageCopyFlagBitsEXT + showTableHostImageCopyFlagBitsEXT + conNameHostImageCopyFlagBitsEXT + HostImageCopyFlagBitsEXT + +-- No documentation found for TopLevel "VkImageSubresource2EXT" +type ImageSubresource2EXT = ImageSubresource2KHR + + +-- No documentation found for TopLevel "VkSubresourceLayout2EXT" +type SubresourceLayout2EXT = SubresourceLayout2KHR + + +type EXT_HOST_IMAGE_COPY_SPEC_VERSION = 1 + +-- No documentation found for TopLevel "VK_EXT_HOST_IMAGE_COPY_SPEC_VERSION" +pattern EXT_HOST_IMAGE_COPY_SPEC_VERSION :: forall a . Integral a => a +pattern EXT_HOST_IMAGE_COPY_SPEC_VERSION = 1 + + +type EXT_HOST_IMAGE_COPY_EXTENSION_NAME = "VK_EXT_host_image_copy" + +-- No documentation found for TopLevel "VK_EXT_HOST_IMAGE_COPY_EXTENSION_NAME" +pattern EXT_HOST_IMAGE_COPY_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a +pattern EXT_HOST_IMAGE_COPY_EXTENSION_NAME = "VK_EXT_host_image_copy" + diff --git a/src/Vulkan/Extensions/VK_EXT_host_image_copy.hs-boot b/src/Vulkan/Extensions/VK_EXT_host_image_copy.hs-boot new file mode 100644 index 000000000..c9c537f9a --- /dev/null +++ b/src/Vulkan/Extensions/VK_EXT_host_image_copy.hs-boot @@ -0,0 +1,344 @@ +{-# language CPP #-} +-- | = Name +-- +-- VK_EXT_host_image_copy - device extension +-- +-- == VK_EXT_host_image_copy +-- +-- [__Name String__] +-- @VK_EXT_host_image_copy@ +-- +-- [__Extension Type__] +-- Device extension +-- +-- [__Registered Extension Number__] +-- 271 +-- +-- [__Revision__] +-- 1 +-- +-- [__Ratification Status__] +-- Ratified +-- +-- [__Extension and Version Dependencies__] +-- +-- and +-- +-- and +-- +-- +-- [__Contact__] +-- +-- - Shahbaz Youssefi +-- +-- +-- [__Extension Proposal__] +-- +-- +-- == Other Extension Metadata +-- +-- [__Last Modified Date__] +-- 2023-04-26 +-- +-- [__Contributors__] +-- +-- - Shahbaz Youssefi, Google +-- +-- - Faith Ekstrand, Collabora +-- +-- - Hans-Kristian Arntzen, Valve +-- +-- - Piers Daniell, NVIDIA +-- +-- - Jan-Harald Fredriksen, Arm +-- +-- - James Fitzpatrick, Imagination +-- +-- - Daniel Story, Nintendo +-- +-- == Description +-- +-- This extension allows applications to copy data between host memory and +-- images on the host processor, without staging the data through a +-- GPU-accessible buffer. This removes the need to allocate and manage the +-- buffer and its associated memory. On some architectures it may also +-- eliminate an extra copy operation. This extension additionally allows +-- applications to copy data between images on the host. +-- +-- To support initializing a new image in preparation for a host copy, it +-- is now possible to transition a new image to +-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL' or other +-- host-copyable layouts via 'transitionImageLayoutEXT'. Additionally, it +-- is possible to perform copies that preserve the swizzling layout of the +-- image by using the 'HOST_IMAGE_COPY_MEMCPY_EXT' flag. In that case, the +-- memory size needed for copies to or from a buffer can be retrieved by +-- chaining 'SubresourceHostMemcpySizeEXT' to @pLayout@ in +-- 'getImageSubresourceLayout2EXT'. +-- +-- == New Commands +-- +-- - 'copyImageToImageEXT' +-- +-- - 'copyImageToMemoryEXT' +-- +-- - 'copyMemoryToImageEXT' +-- +-- - 'getImageSubresourceLayout2EXT' +-- +-- - 'transitionImageLayoutEXT' +-- +-- == New Structures +-- +-- - 'CopyImageToImageInfoEXT' +-- +-- - 'CopyImageToMemoryInfoEXT' +-- +-- - 'CopyMemoryToImageInfoEXT' +-- +-- - 'HostImageLayoutTransitionInfoEXT' +-- +-- - 'ImageSubresource2EXT' +-- +-- - 'ImageToMemoryCopyEXT' +-- +-- - 'MemoryToImageCopyEXT' +-- +-- - 'SubresourceLayout2EXT' +-- +-- - Extending +-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.ImageFormatProperties2': +-- +-- - 'HostImageCopyDevicePerformanceQueryEXT' +-- +-- - Extending +-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2', +-- 'Vulkan.Core10.Device.DeviceCreateInfo': +-- +-- - 'PhysicalDeviceHostImageCopyFeaturesEXT' +-- +-- - Extending +-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2': +-- +-- - 'PhysicalDeviceHostImageCopyPropertiesEXT' +-- +-- - Extending +-- 'Vulkan.Extensions.VK_KHR_maintenance5.SubresourceLayout2KHR': +-- +-- - 'SubresourceHostMemcpySizeEXT' +-- +-- == New Enums +-- +-- - 'HostImageCopyFlagBitsEXT' +-- +-- == New Bitmasks +-- +-- - 'HostImageCopyFlagsEXT' +-- +-- == New Enum Constants +-- +-- - 'EXT_HOST_IMAGE_COPY_EXTENSION_NAME' +-- +-- - 'EXT_HOST_IMAGE_COPY_SPEC_VERSION' +-- +-- - Extending +-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FormatFeatureFlagBits2': +-- +-- - 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_HOST_IMAGE_TRANSFER_BIT_EXT' +-- +-- - Extending +-- 'Vulkan.Core10.Enums.ImageUsageFlagBits.ImageUsageFlagBits': +-- +-- - 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_HOST_TRANSFER_BIT_EXT' +-- +-- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType': +-- +-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_COPY_IMAGE_TO_IMAGE_INFO_EXT' +-- +-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_COPY_IMAGE_TO_MEMORY_INFO_EXT' +-- +-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_COPY_MEMORY_TO_IMAGE_INFO_EXT' +-- +-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_HOST_IMAGE_COPY_DEVICE_PERFORMANCE_QUERY_EXT' +-- +-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_HOST_IMAGE_LAYOUT_TRANSITION_INFO_EXT' +-- +-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_IMAGE_TO_MEMORY_COPY_EXT' +-- +-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_MEMORY_TO_IMAGE_COPY_EXT' +-- +-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_FEATURES_EXT' +-- +-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_PROPERTIES_EXT' +-- +-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_SUBRESOURCE_HOST_MEMCPY_SIZE_EXT' +-- +-- == Issues +-- +-- 1) When uploading data to an image, the data is usually loaded from +-- disk. Why not have the application load the data directly into a +-- 'Vulkan.Core10.Handles.DeviceMemory' bound to a buffer (instead of host +-- memory), and use +-- 'Vulkan.Core10.CommandBufferBuilding.cmdCopyBufferToImage'? The same +-- could be done when downloading data from an image. +-- +-- __RESOLVED__: This may not always be possible. Complicated Vulkan +-- applications such as game engines often have decoupled subsystems for +-- streaming data and rendering. It may be unreasonable to require the +-- streaming subsystem to coordinate with the rendering subsystem to +-- allocate memory on its behalf, especially as Vulkan may not be the only +-- API supported by the engine. In emulation layers, the image data is +-- necessarily provided by the application in host memory, so an +-- optimization as suggested is not possible. Most importantly, the device +-- memory may not be mappable by an application, but still accessible to +-- the driver. +-- +-- 2) Are @optimalBufferCopyOffsetAlignment@ and +-- @optimalBufferCopyRowPitchAlignment@ applicable to host memory as well +-- with the functions introduced by this extension? Or should there be new +-- limits? +-- +-- __RESOLVED__: No alignment requirements for the host memory pointer. +-- +-- 3) Should there be granularity requirements for image offsets and +-- extents? +-- +-- __RESOLVED__: No granularity requirements, i.e. a granularity of 1 pixel +-- (for non-compressed formats) and 1 texel block (for compressed formats) +-- is assumed. +-- +-- 4) How should the application deal with layout transitions before or +-- after copying to or from images? +-- +-- __RESOLVED__: An existing issue with linear images is that when +-- emulating other APIs, it is impossible to know when to transition them +-- as they are written to by the host and then used bindlessly. The copy +-- operations in this extension are affected by the same limitation. A new +-- command is thus introduced by this extension to address this problem by +-- allowing the host to perform an image layout transition between a +-- handful of layouts. +-- +-- == Version History +-- +-- - Revision 0, 2021-01-20 (Faith Ekstrand) +-- +-- - Initial idea and xml +-- +-- - Revision 1, 2023-04-26 (Shahbaz Youssefi) +-- +-- - Initial revision +-- +-- == See Also +-- +-- 'CopyImageToImageInfoEXT', 'CopyImageToMemoryInfoEXT', +-- 'CopyMemoryToImageInfoEXT', 'HostImageCopyDevicePerformanceQueryEXT', +-- 'HostImageCopyFlagBitsEXT', 'HostImageCopyFlagsEXT', +-- 'HostImageLayoutTransitionInfoEXT', 'ImageSubresource2EXT', +-- 'ImageToMemoryCopyEXT', 'MemoryToImageCopyEXT', +-- 'PhysicalDeviceHostImageCopyFeaturesEXT', +-- 'PhysicalDeviceHostImageCopyPropertiesEXT', +-- 'SubresourceHostMemcpySizeEXT', 'SubresourceLayout2EXT', +-- 'copyImageToImageEXT', 'copyImageToMemoryEXT', 'copyMemoryToImageEXT', +-- 'getImageSubresourceLayout2EXT', 'transitionImageLayoutEXT' +-- +-- == Document Notes +-- +-- For more information, see the +-- +-- +-- This page is a generated document. Fixes and changes should be made to +-- the generator scripts, not directly. +module Vulkan.Extensions.VK_EXT_host_image_copy ( CopyImageToImageInfoEXT + , CopyImageToMemoryInfoEXT + , CopyMemoryToImageInfoEXT + , HostImageCopyDevicePerformanceQueryEXT + , HostImageLayoutTransitionInfoEXT + , ImageToMemoryCopyEXT + , MemoryToImageCopyEXT + , PhysicalDeviceHostImageCopyFeaturesEXT + , PhysicalDeviceHostImageCopyPropertiesEXT + , SubresourceHostMemcpySizeEXT + ) where + +import Vulkan.CStruct (FromCStruct) +import Vulkan.CStruct (ToCStruct) +import Data.Kind (Type) + +data CopyImageToImageInfoEXT + +instance ToCStruct CopyImageToImageInfoEXT +instance Show CopyImageToImageInfoEXT + +instance FromCStruct CopyImageToImageInfoEXT + + +data CopyImageToMemoryInfoEXT + +instance ToCStruct CopyImageToMemoryInfoEXT +instance Show CopyImageToMemoryInfoEXT + +instance FromCStruct CopyImageToMemoryInfoEXT + + +data CopyMemoryToImageInfoEXT + +instance ToCStruct CopyMemoryToImageInfoEXT +instance Show CopyMemoryToImageInfoEXT + +instance FromCStruct CopyMemoryToImageInfoEXT + + +data HostImageCopyDevicePerformanceQueryEXT + +instance ToCStruct HostImageCopyDevicePerformanceQueryEXT +instance Show HostImageCopyDevicePerformanceQueryEXT + +instance FromCStruct HostImageCopyDevicePerformanceQueryEXT + + +data HostImageLayoutTransitionInfoEXT + +instance ToCStruct HostImageLayoutTransitionInfoEXT +instance Show HostImageLayoutTransitionInfoEXT + +instance FromCStruct HostImageLayoutTransitionInfoEXT + + +data ImageToMemoryCopyEXT + +instance ToCStruct ImageToMemoryCopyEXT +instance Show ImageToMemoryCopyEXT + +instance FromCStruct ImageToMemoryCopyEXT + + +data MemoryToImageCopyEXT + +instance ToCStruct MemoryToImageCopyEXT +instance Show MemoryToImageCopyEXT + +instance FromCStruct MemoryToImageCopyEXT + + +data PhysicalDeviceHostImageCopyFeaturesEXT + +instance ToCStruct PhysicalDeviceHostImageCopyFeaturesEXT +instance Show PhysicalDeviceHostImageCopyFeaturesEXT + +instance FromCStruct PhysicalDeviceHostImageCopyFeaturesEXT + + +data PhysicalDeviceHostImageCopyPropertiesEXT + +instance ToCStruct PhysicalDeviceHostImageCopyPropertiesEXT +instance Show PhysicalDeviceHostImageCopyPropertiesEXT + +instance FromCStruct PhysicalDeviceHostImageCopyPropertiesEXT + + +data SubresourceHostMemcpySizeEXT + +instance ToCStruct SubresourceHostMemcpySizeEXT +instance Show SubresourceHostMemcpySizeEXT + +instance FromCStruct SubresourceHostMemcpySizeEXT + diff --git a/src/Vulkan/Extensions/VK_EXT_host_query_reset.hs b/src/Vulkan/Extensions/VK_EXT_host_query_reset.hs index 442565c61..b7596cb88 100644 --- a/src/Vulkan/Extensions/VK_EXT_host_query_reset.hs +++ b/src/Vulkan/Extensions/VK_EXT_host_query_reset.hs @@ -17,10 +17,13 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- --- [__Deprecation state__] +-- [__Deprecation State__] -- -- - /Promoted/ to -- diff --git a/src/Vulkan/Extensions/VK_EXT_image_2d_view_of_3d.hs b/src/Vulkan/Extensions/VK_EXT_image_2d_view_of_3d.hs index bb48f4b2c..2e3dd1a9b 100644 --- a/src/Vulkan/Extensions/VK_EXT_image_2d_view_of_3d.hs +++ b/src/Vulkan/Extensions/VK_EXT_image_2d_view_of_3d.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- and diff --git a/src/Vulkan/Extensions/VK_EXT_image_2d_view_of_3d.hs-boot b/src/Vulkan/Extensions/VK_EXT_image_2d_view_of_3d.hs-boot index b8ccf5972..b928b0ca1 100644 --- a/src/Vulkan/Extensions/VK_EXT_image_2d_view_of_3d.hs-boot +++ b/src/Vulkan/Extensions/VK_EXT_image_2d_view_of_3d.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- and diff --git a/src/Vulkan/Extensions/VK_EXT_image_compression_control.hs b/src/Vulkan/Extensions/VK_EXT_image_compression_control.hs index b54638f06..fc78bc2de 100644 --- a/src/Vulkan/Extensions/VK_EXT_image_compression_control.hs +++ b/src/Vulkan/Extensions/VK_EXT_image_compression_control.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- @@ -64,13 +67,13 @@ -- -- == New Commands -- --- - 'getImageSubresourceLayout2EXT' +-- - 'Vulkan.Extensions.VK_EXT_host_image_copy.getImageSubresourceLayout2EXT' -- -- == New Structures -- --- - 'ImageSubresource2EXT' +-- - 'Vulkan.Extensions.VK_EXT_host_image_copy.ImageSubresource2EXT' -- --- - 'SubresourceLayout2EXT' +-- - 'Vulkan.Extensions.VK_EXT_host_image_copy.SubresourceLayout2EXT' -- -- - Extending 'Vulkan.Core10.Image.ImageCreateInfo', -- 'Vulkan.Extensions.VK_KHR_swapchain.SwapchainCreateInfoKHR', @@ -81,7 +84,7 @@ -- - Extending -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.ImageFormatProperties2', -- 'Vulkan.Extensions.VK_KHR_get_surface_capabilities2.SurfaceFormat2KHR', --- 'SubresourceLayout2EXT': +-- 'Vulkan.Extensions.VK_KHR_maintenance5.SubresourceLayout2KHR': -- -- - 'ImageCompressionPropertiesEXT' -- @@ -119,11 +122,11 @@ -- -- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT' -- --- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_EXT' +-- - 'STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_EXT' -- -- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT' -- --- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_EXT' +-- - 'STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_EXT' -- -- == Version History -- @@ -136,9 +139,10 @@ -- 'ImageCompressionControlEXT', 'ImageCompressionFixedRateFlagBitsEXT', -- 'ImageCompressionFixedRateFlagsEXT', 'ImageCompressionFlagBitsEXT', -- 'ImageCompressionFlagsEXT', 'ImageCompressionPropertiesEXT', --- 'ImageSubresource2EXT', +-- 'Vulkan.Extensions.VK_EXT_host_image_copy.ImageSubresource2EXT', -- 'PhysicalDeviceImageCompressionControlFeaturesEXT', --- 'SubresourceLayout2EXT', 'getImageSubresourceLayout2EXT' +-- 'Vulkan.Extensions.VK_EXT_host_image_copy.SubresourceLayout2EXT', +-- 'Vulkan.Extensions.VK_EXT_host_image_copy.getImageSubresourceLayout2EXT' -- -- == Document Notes -- @@ -147,12 +151,11 @@ -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly. -module Vulkan.Extensions.VK_EXT_image_compression_control ( getImageSubresourceLayout2EXT +module Vulkan.Extensions.VK_EXT_image_compression_control ( pattern STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_EXT + , pattern STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_EXT , ImageCompressionControlEXT(..) , PhysicalDeviceImageCompressionControlFeaturesEXT(..) , ImageCompressionPropertiesEXT(..) - , ImageSubresource2EXT(..) - , SubresourceLayout2EXT(..) , ImageCompressionFlagsEXT , ImageCompressionFlagBitsEXT( IMAGE_COMPRESSION_DEFAULT_EXT , IMAGE_COMPRESSION_FIXED_RATE_DEFAULT_EXT @@ -192,217 +195,63 @@ module Vulkan.Extensions.VK_EXT_image_compression_control ( getImageSubresource , pattern EXT_IMAGE_COMPRESSION_CONTROL_SPEC_VERSION , EXT_IMAGE_COMPRESSION_CONTROL_EXTENSION_NAME , pattern EXT_IMAGE_COMPRESSION_CONTROL_EXTENSION_NAME + , ImageSubresource2KHR(..) + , SubresourceLayout2KHR(..) + , getImageSubresourceLayout2KHR + , ImageSubresource2EXT + , SubresourceLayout2EXT + , getImageSubresourceLayout2EXT ) where import Data.Bits (Bits) import Data.Bits (FiniteBits) import Vulkan.Internal.Utils (enumReadPrec) import Vulkan.Internal.Utils (enumShowsPrec) -import Vulkan.Internal.Utils (traceAroundEvent) -import Control.Monad (unless) -import Control.Monad.IO.Class (liftIO) -import Data.Typeable (eqT) import Foreign.Marshal.Alloc (allocaBytes) -import GHC.IO (throwIO) -import GHC.Ptr (castPtr) -import GHC.Ptr (nullFunPtr) import Foreign.Ptr (nullPtr) import Foreign.Ptr (plusPtr) import GHC.Show (showString) import Numeric (showHex) -import Control.Monad.Trans.Class (lift) -import Control.Monad.Trans.Cont (evalContT) import Vulkan.CStruct (FromCStruct) import Vulkan.CStruct (FromCStruct(..)) import Vulkan.CStruct (ToCStruct) import Vulkan.CStruct (ToCStruct(..)) import Vulkan.Zero (Zero) import Vulkan.Zero (Zero(..)) -import Control.Monad.IO.Class (MonadIO) import Data.String (IsString) -import Data.Type.Equality ((:~:)(Refl)) import Data.Typeable (Typeable) import Foreign.Storable (Storable) import Foreign.Storable (Storable(peek)) import Foreign.Storable (Storable(poke)) import qualified Foreign.Storable (Storable(..)) import GHC.Generics (Generic) -import GHC.IO.Exception (IOErrorType(..)) -import GHC.IO.Exception (IOException(..)) -import Foreign.Ptr (FunPtr) import Foreign.Ptr (Ptr) import GHC.Read (Read(readPrec)) import GHC.Show (Show(showsPrec)) import Data.Word (Word32) import Data.Kind (Type) -import Control.Monad.Trans.Cont (ContT(..)) import Vulkan.Core10.FundamentalTypes (bool32ToBool) import Vulkan.Core10.FundamentalTypes (boolToBool32) -import Vulkan.CStruct.Extends (forgetExtensions) import Vulkan.Core10.FundamentalTypes (Bool32) -import Vulkan.CStruct.Extends (Chain) -import Vulkan.Core10.Handles (Device) -import Vulkan.Core10.Handles (Device(..)) -import Vulkan.Core10.Handles (Device(Device)) -import Vulkan.Dynamic (DeviceCmds(pVkGetImageSubresourceLayout2EXT)) -import Vulkan.Core10.Handles (Device_T) -import Vulkan.CStruct.Extends (Extends) -import Vulkan.CStruct.Extends (Extendss) -import Vulkan.CStruct.Extends (Extensible(..)) import Vulkan.Core10.FundamentalTypes (Flags) -import Vulkan.Core10.Handles (Image) -import Vulkan.Core10.Handles (Image(..)) -import Vulkan.Core10.SparseResourceMemoryManagement (ImageSubresource) -import Vulkan.CStruct.Extends (PeekChain) -import Vulkan.CStruct.Extends (PeekChain(..)) -import Vulkan.CStruct.Extends (PokeChain) -import Vulkan.CStruct.Extends (PokeChain(..)) -import Vulkan.CStruct.Extends (SomeStruct) import Vulkan.Core10.Enums.StructureType (StructureType) -import Vulkan.Core10.Image (SubresourceLayout) import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_IMAGE_COMPRESSION_CONTROL_EXT)) import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT)) -import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_EXT)) +import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_KHR)) import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT)) -import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_EXT)) -foreign import ccall -#if !defined(SAFE_FOREIGN_CALLS) - unsafe -#endif - "dynamic" mkVkGetImageSubresourceLayout2EXT - :: FunPtr (Ptr Device_T -> Image -> Ptr ImageSubresource2EXT -> Ptr (SomeStruct SubresourceLayout2EXT) -> IO ()) -> Ptr Device_T -> Image -> Ptr ImageSubresource2EXT -> Ptr (SomeStruct SubresourceLayout2EXT) -> IO () +import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_KHR)) +import Vulkan.Extensions.VK_EXT_host_image_copy (getImageSubresourceLayout2EXT) +import Vulkan.Extensions.VK_KHR_maintenance5 (getImageSubresourceLayout2KHR) +import Vulkan.Extensions.VK_EXT_host_image_copy (ImageSubresource2EXT) +import Vulkan.Extensions.VK_KHR_maintenance5 (ImageSubresource2KHR(..)) +import Vulkan.Extensions.VK_EXT_host_image_copy (SubresourceLayout2EXT) +import Vulkan.Extensions.VK_KHR_maintenance5 (SubresourceLayout2KHR(..)) +-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_EXT" +pattern STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_EXT = STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_KHR --- | vkGetImageSubresourceLayout2EXT - Retrieve information about an image --- subresource --- --- = Description --- --- 'getImageSubresourceLayout2EXT' behaves similarly to --- 'Vulkan.Core10.Image.getImageSubresourceLayout', with the ability to --- specify extended inputs via chained input structures, and to return --- extended information via chained output structures. --- --- It is legal to call 'getImageSubresourceLayout2EXT' with a @image@ --- created with @tiling@ equal to --- 'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_OPTIMAL', but the members --- of 'ImageSubresource2EXT'::@imageSubresource@ will have undefined values --- in this case. --- --- Note --- --- Structures chained from 'ImageSubresource2EXT'::@pNext@ will also be --- updated when @tiling@ is equal to --- 'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_OPTIMAL'. --- --- == Valid Usage --- --- - #VUID-vkGetImageSubresourceLayout2EXT-aspectMask-00997# The --- @aspectMask@ member of @pSubresource@ /must/ only have a single bit --- set --- --- - #VUID-vkGetImageSubresourceLayout2EXT-mipLevel-01716# The @mipLevel@ --- member of @pSubresource@ /must/ be less than the @mipLevels@ --- specified in 'Vulkan.Core10.Image.ImageCreateInfo' when @image@ was --- created --- --- - #VUID-vkGetImageSubresourceLayout2EXT-arrayLayer-01717# The --- @arrayLayer@ member of @pSubresource@ /must/ be less than the --- @arrayLayers@ specified in 'Vulkan.Core10.Image.ImageCreateInfo' --- when @image@ was created --- --- - #VUID-vkGetImageSubresourceLayout2EXT-format-04461# If @format@ is a --- color format, the @aspectMask@ member of @pSubresource@ /must/ be --- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT' --- --- - #VUID-vkGetImageSubresourceLayout2EXT-format-04462# If @format@ has --- a depth component, the @aspectMask@ member of @pSubresource@ /must/ --- contain --- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_DEPTH_BIT' --- --- - #VUID-vkGetImageSubresourceLayout2EXT-format-04463# If @format@ has --- a stencil component, the @aspectMask@ member of @pSubresource@ --- /must/ contain --- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT' --- --- - #VUID-vkGetImageSubresourceLayout2EXT-format-04464# If @format@ does --- not contain a stencil or depth component, the @aspectMask@ member of --- @pSubresource@ /must/ not contain --- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_DEPTH_BIT' or --- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT' --- --- - #VUID-vkGetImageSubresourceLayout2EXT-tiling-08717# If the @tiling@ --- of the @image@ is --- 'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_LINEAR' and has a --- , --- then the @aspectMask@ member of @pSubresource@ /must/ be a single --- valid --- --- --- - #VUID-vkGetImageSubresourceLayout2EXT-image-01895# If @image@ was --- created with the --- 'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID' --- external memory handle type, then @image@ /must/ be bound to memory --- --- - #VUID-vkGetImageSubresourceLayout2EXT-tiling-02271# If the @tiling@ --- of the @image@ is --- 'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT', --- then the @aspectMask@ member of @pSubresource@ /must/ be --- @VK_IMAGE_ASPECT_MEMORY_PLANE_i_BIT_EXT@ and the index /i/ /must/ be --- less than the --- 'Vulkan.Extensions.VK_EXT_image_drm_format_modifier.DrmFormatModifierPropertiesEXT'::@drmFormatModifierPlaneCount@ --- associated with the image’s @format@ and --- 'Vulkan.Extensions.VK_EXT_image_drm_format_modifier.ImageDrmFormatModifierPropertiesEXT'::@drmFormatModifier@ --- --- == Valid Usage (Implicit) --- --- - #VUID-vkGetImageSubresourceLayout2EXT-device-parameter# @device@ --- /must/ be a valid 'Vulkan.Core10.Handles.Device' handle --- --- - #VUID-vkGetImageSubresourceLayout2EXT-image-parameter# @image@ --- /must/ be a valid 'Vulkan.Core10.Handles.Image' handle --- --- - #VUID-vkGetImageSubresourceLayout2EXT-pSubresource-parameter# --- @pSubresource@ /must/ be a valid pointer to a valid --- 'ImageSubresource2EXT' structure --- --- - #VUID-vkGetImageSubresourceLayout2EXT-pLayout-parameter# @pLayout@ --- /must/ be a valid pointer to a 'SubresourceLayout2EXT' structure --- --- - #VUID-vkGetImageSubresourceLayout2EXT-image-parent# @image@ /must/ --- have been created, allocated, or retrieved from @device@ --- --- = See Also --- --- , --- 'Vulkan.Core10.Handles.Device', 'Vulkan.Core10.Handles.Image', --- 'ImageSubresource2EXT', 'SubresourceLayout2EXT' -getImageSubresourceLayout2EXT :: forall a io - . ( Extendss SubresourceLayout2EXT a - , PokeChain a - , PeekChain a - , MonadIO io ) - => -- | @device@ is the logical device that owns the image. - Device - -> -- | @image@ is the image whose layout is being queried. - Image - -> -- | @pSubresource@ is a pointer to a 'ImageSubresource2EXT' structure - -- selecting a specific image for the image subresource. - ImageSubresource2EXT - -> io (SubresourceLayout2EXT a) -getImageSubresourceLayout2EXT device image subresource = liftIO . evalContT $ do - let vkGetImageSubresourceLayout2EXTPtr = pVkGetImageSubresourceLayout2EXT (case device of Device{deviceCmds} -> deviceCmds) - lift $ unless (vkGetImageSubresourceLayout2EXTPtr /= nullFunPtr) $ - throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetImageSubresourceLayout2EXT is null" Nothing Nothing - let vkGetImageSubresourceLayout2EXT' = mkVkGetImageSubresourceLayout2EXT vkGetImageSubresourceLayout2EXTPtr - pSubresource <- ContT $ withCStruct (subresource) - pPLayout <- ContT (withZeroCStruct @(SubresourceLayout2EXT _)) - lift $ traceAroundEvent "vkGetImageSubresourceLayout2EXT" (vkGetImageSubresourceLayout2EXT' - (deviceHandle (device)) - (image) - pSubresource - (forgetExtensions (pPLayout))) - pLayout <- lift $ peekCStruct @(SubresourceLayout2EXT _) pPLayout - pure $ (pLayout) + +-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_EXT" +pattern STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_EXT = STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_KHR -- | VkImageCompressionControlEXT - Specify image compression properties @@ -636,137 +485,6 @@ instance Zero ImageCompressionPropertiesEXT where zero --- | VkImageSubresource2EXT - Structure specifying an image subresource --- --- == Valid Usage (Implicit) --- --- = See Also --- --- , --- 'Vulkan.Core10.SparseResourceMemoryManagement.ImageSubresource', --- 'Vulkan.Core10.Enums.StructureType.StructureType', --- 'getImageSubresourceLayout2EXT' -data ImageSubresource2EXT = ImageSubresource2EXT - { -- | @imageSubresource@ is a - -- 'Vulkan.Core10.SparseResourceMemoryManagement.ImageSubresource' - -- structure. - -- - -- #VUID-VkImageSubresource2EXT-imageSubresource-parameter# - -- @imageSubresource@ /must/ be a valid - -- 'Vulkan.Core10.SparseResourceMemoryManagement.ImageSubresource' - -- structure - imageSubresource :: ImageSubresource } - deriving (Typeable) -#if defined(GENERIC_INSTANCES) -deriving instance Generic (ImageSubresource2EXT) -#endif -deriving instance Show ImageSubresource2EXT - -instance ToCStruct ImageSubresource2EXT where - withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p) - pokeCStruct p ImageSubresource2EXT{..} f = do - poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_EXT) - poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr) - poke ((p `plusPtr` 16 :: Ptr ImageSubresource)) (imageSubresource) - f - cStructSize = 32 - cStructAlignment = 8 - pokeZeroCStruct p f = do - poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_EXT) - poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr) - poke ((p `plusPtr` 16 :: Ptr ImageSubresource)) (zero) - f - -instance FromCStruct ImageSubresource2EXT where - peekCStruct p = do - imageSubresource <- peekCStruct @ImageSubresource ((p `plusPtr` 16 :: Ptr ImageSubresource)) - pure $ ImageSubresource2EXT - imageSubresource - -instance Storable ImageSubresource2EXT where - sizeOf ~_ = 32 - alignment ~_ = 8 - peek = peekCStruct - poke ptr poked = pokeCStruct ptr poked (pure ()) - -instance Zero ImageSubresource2EXT where - zero = ImageSubresource2EXT - zero - - --- | VkSubresourceLayout2EXT - Structure specifying subresource layout --- --- == Valid Usage (Implicit) --- --- - #VUID-VkSubresourceLayout2EXT-sType-sType# @sType@ /must/ be --- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_EXT' --- --- - #VUID-VkSubresourceLayout2EXT-pNext-pNext# @pNext@ /must/ be @NULL@ --- or a pointer to a valid instance of 'ImageCompressionPropertiesEXT' --- --- - #VUID-VkSubresourceLayout2EXT-sType-unique# The @sType@ value of --- each struct in the @pNext@ chain /must/ be unique --- --- = See Also --- --- , --- 'Vulkan.Core10.Enums.StructureType.StructureType', --- 'Vulkan.Core10.Image.SubresourceLayout', 'getImageSubresourceLayout2EXT' -data SubresourceLayout2EXT (es :: [Type]) = SubresourceLayout2EXT - { -- | @pNext@ is @NULL@ or a pointer to a structure extending this structure. - next :: Chain es - , -- | @subresourceLayout@ is a 'Vulkan.Core10.Image.SubresourceLayout' - -- structure. - subresourceLayout :: SubresourceLayout - } - deriving (Typeable) -#if defined(GENERIC_INSTANCES) -deriving instance Generic (SubresourceLayout2EXT (es :: [Type])) -#endif -deriving instance Show (Chain es) => Show (SubresourceLayout2EXT es) - -instance Extensible SubresourceLayout2EXT where - extensibleTypeName = "SubresourceLayout2EXT" - setNext SubresourceLayout2EXT{..} next' = SubresourceLayout2EXT{next = next', ..} - getNext SubresourceLayout2EXT{..} = next - extends :: forall e b proxy. Typeable e => proxy e -> (Extends SubresourceLayout2EXT e => b) -> Maybe b - extends _ f - | Just Refl <- eqT @e @ImageCompressionPropertiesEXT = Just f - | otherwise = Nothing - -instance ( Extendss SubresourceLayout2EXT es - , PokeChain es ) => ToCStruct (SubresourceLayout2EXT es) where - withCStruct x f = allocaBytes 56 $ \p -> pokeCStruct p x (f p) - pokeCStruct p SubresourceLayout2EXT{..} f = evalContT $ do - lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_EXT) - pNext'' <- fmap castPtr . ContT $ withChain (next) - lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext'' - lift $ poke ((p `plusPtr` 16 :: Ptr SubresourceLayout)) (subresourceLayout) - lift $ f - cStructSize = 56 - cStructAlignment = 8 - pokeZeroCStruct p f = evalContT $ do - lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_EXT) - pNext' <- fmap castPtr . ContT $ withZeroChain @es - lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext' - lift $ poke ((p `plusPtr` 16 :: Ptr SubresourceLayout)) (zero) - lift $ f - -instance ( Extendss SubresourceLayout2EXT es - , PeekChain es ) => FromCStruct (SubresourceLayout2EXT es) where - peekCStruct p = do - pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ()))) - next <- peekChain (castPtr pNext) - subresourceLayout <- peekCStruct @SubresourceLayout ((p `plusPtr` 16 :: Ptr SubresourceLayout)) - pure $ SubresourceLayout2EXT - next subresourceLayout - -instance es ~ '[] => Zero (SubresourceLayout2EXT es) where - zero = SubresourceLayout2EXT - () - zero - - type ImageCompressionFlagsEXT = ImageCompressionFlagBitsEXT -- | VkImageCompressionFlagBitsEXT - Bitmask specifying image compression diff --git a/src/Vulkan/Extensions/VK_EXT_image_compression_control.hs-boot b/src/Vulkan/Extensions/VK_EXT_image_compression_control.hs-boot index a040aae0c..c72c37a43 100644 --- a/src/Vulkan/Extensions/VK_EXT_image_compression_control.hs-boot +++ b/src/Vulkan/Extensions/VK_EXT_image_compression_control.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- @@ -64,13 +67,13 @@ -- -- == New Commands -- --- - 'getImageSubresourceLayout2EXT' +-- - 'Vulkan.Extensions.VK_EXT_host_image_copy.getImageSubresourceLayout2EXT' -- -- == New Structures -- --- - 'ImageSubresource2EXT' +-- - 'Vulkan.Extensions.VK_EXT_host_image_copy.ImageSubresource2EXT' -- --- - 'SubresourceLayout2EXT' +-- - 'Vulkan.Extensions.VK_EXT_host_image_copy.SubresourceLayout2EXT' -- -- - Extending 'Vulkan.Core10.Image.ImageCreateInfo', -- 'Vulkan.Extensions.VK_KHR_swapchain.SwapchainCreateInfoKHR', @@ -81,7 +84,7 @@ -- - Extending -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.ImageFormatProperties2', -- 'Vulkan.Extensions.VK_KHR_get_surface_capabilities2.SurfaceFormat2KHR', --- 'SubresourceLayout2EXT': +-- 'Vulkan.Extensions.VK_KHR_maintenance5.SubresourceLayout2KHR': -- -- - 'ImageCompressionPropertiesEXT' -- @@ -119,11 +122,11 @@ -- -- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT' -- --- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_EXT' +-- - 'STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_EXT' -- -- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT' -- --- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_EXT' +-- - 'STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_EXT' -- -- == Version History -- @@ -136,9 +139,10 @@ -- 'ImageCompressionControlEXT', 'ImageCompressionFixedRateFlagBitsEXT', -- 'ImageCompressionFixedRateFlagsEXT', 'ImageCompressionFlagBitsEXT', -- 'ImageCompressionFlagsEXT', 'ImageCompressionPropertiesEXT', --- 'ImageSubresource2EXT', +-- 'Vulkan.Extensions.VK_EXT_host_image_copy.ImageSubresource2EXT', -- 'PhysicalDeviceImageCompressionControlFeaturesEXT', --- 'SubresourceLayout2EXT', 'getImageSubresourceLayout2EXT' +-- 'Vulkan.Extensions.VK_EXT_host_image_copy.SubresourceLayout2EXT', +-- 'Vulkan.Extensions.VK_EXT_host_image_copy.getImageSubresourceLayout2EXT' -- -- == Document Notes -- @@ -149,18 +153,13 @@ -- the generator scripts, not directly. module Vulkan.Extensions.VK_EXT_image_compression_control ( ImageCompressionControlEXT , ImageCompressionPropertiesEXT - , ImageSubresource2EXT , PhysicalDeviceImageCompressionControlFeaturesEXT - , SubresourceLayout2EXT ) where import Vulkan.CStruct (FromCStruct) import Vulkan.CStruct (ToCStruct) import Data.Kind (Type) -import {-# SOURCE #-} Vulkan.CStruct.Extends (Chain) -import {-# SOURCE #-} Vulkan.CStruct.Extends (Extendss) -import {-# SOURCE #-} Vulkan.CStruct.Extends (PeekChain) -import {-# SOURCE #-} Vulkan.CStruct.Extends (PokeChain) + data ImageCompressionControlEXT instance ToCStruct ImageCompressionControlEXT @@ -177,14 +176,6 @@ instance Show ImageCompressionPropertiesEXT instance FromCStruct ImageCompressionPropertiesEXT -data ImageSubresource2EXT - -instance ToCStruct ImageSubresource2EXT -instance Show ImageSubresource2EXT - -instance FromCStruct ImageSubresource2EXT - - data PhysicalDeviceImageCompressionControlFeaturesEXT instance ToCStruct PhysicalDeviceImageCompressionControlFeaturesEXT @@ -192,14 +183,3 @@ instance Show PhysicalDeviceImageCompressionControlFeaturesEXT instance FromCStruct PhysicalDeviceImageCompressionControlFeaturesEXT - -type role SubresourceLayout2EXT nominal -data SubresourceLayout2EXT (es :: [Type]) - -instance ( Extendss SubresourceLayout2EXT es - , PokeChain es ) => ToCStruct (SubresourceLayout2EXT es) -instance Show (Chain es) => Show (SubresourceLayout2EXT es) - -instance ( Extendss SubresourceLayout2EXT es - , PeekChain es ) => FromCStruct (SubresourceLayout2EXT es) - diff --git a/src/Vulkan/Extensions/VK_EXT_image_compression_control_swapchain.hs b/src/Vulkan/Extensions/VK_EXT_image_compression_control_swapchain.hs index ff9061835..90b216fae 100644 --- a/src/Vulkan/Extensions/VK_EXT_image_compression_control_swapchain.hs +++ b/src/Vulkan/Extensions/VK_EXT_image_compression_control_swapchain.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- diff --git a/src/Vulkan/Extensions/VK_EXT_image_compression_control_swapchain.hs-boot b/src/Vulkan/Extensions/VK_EXT_image_compression_control_swapchain.hs-boot index 26f63e87b..dd534da1c 100644 --- a/src/Vulkan/Extensions/VK_EXT_image_compression_control_swapchain.hs-boot +++ b/src/Vulkan/Extensions/VK_EXT_image_compression_control_swapchain.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- diff --git a/src/Vulkan/Extensions/VK_EXT_image_drm_format_modifier.hs b/src/Vulkan/Extensions/VK_EXT_image_drm_format_modifier.hs index 4741b2339..a5ba2b68e 100644 --- a/src/Vulkan/Extensions/VK_EXT_image_drm_format_modifier.hs +++ b/src/Vulkan/Extensions/VK_EXT_image_drm_format_modifier.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 2 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] --          -- @@ -150,7 +153,7 @@ -- 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. +-- color space. -- -- The mapping between 'Vulkan.Core10.Enums.Format.Format' and DRM format -- is also incomplete. For some DRM formats there exist no corresponding @@ -1140,10 +1143,13 @@ instance Zero ImageDrmFormatModifierListCreateInfoEXT where -- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT' -- -- - #VUID-VkImageDrmFormatModifierExplicitCreateInfoEXT-pPlaneLayouts-parameter# --- If @drmFormatModifierPlaneCount@ is not @0@, @pPlaneLayouts@ /must/ --- be a valid pointer to an array of @drmFormatModifierPlaneCount@ +-- @pPlaneLayouts@ /must/ be a valid pointer to an array of +-- @drmFormatModifierPlaneCount@ -- 'Vulkan.Core10.Image.SubresourceLayout' structures -- +-- - #VUID-VkImageDrmFormatModifierExplicitCreateInfoEXT-drmFormatModifierPlaneCount-arraylength# +-- @drmFormatModifierPlaneCount@ /must/ be greater than @0@ +-- -- = See Also -- -- , diff --git a/src/Vulkan/Extensions/VK_EXT_image_drm_format_modifier.hs-boot b/src/Vulkan/Extensions/VK_EXT_image_drm_format_modifier.hs-boot index 72d36449b..2cc77c0df 100644 --- a/src/Vulkan/Extensions/VK_EXT_image_drm_format_modifier.hs-boot +++ b/src/Vulkan/Extensions/VK_EXT_image_drm_format_modifier.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 2 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] --          -- @@ -150,7 +153,7 @@ -- 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. +-- color space. -- -- The mapping between 'Vulkan.Core10.Enums.Format.Format' and DRM format -- is also incomplete. For some DRM formats there exist no corresponding diff --git a/src/Vulkan/Extensions/VK_EXT_image_robustness.hs b/src/Vulkan/Extensions/VK_EXT_image_robustness.hs index 60bcd64b9..77d37cde2 100644 --- a/src/Vulkan/Extensions/VK_EXT_image_robustness.hs +++ b/src/Vulkan/Extensions/VK_EXT_image_robustness.hs @@ -17,12 +17,15 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- or -- -- --- [__Deprecation state__] +-- [__Deprecation State__] -- -- - /Promoted/ to -- diff --git a/src/Vulkan/Extensions/VK_EXT_image_sliced_view_of_3d.hs b/src/Vulkan/Extensions/VK_EXT_image_sliced_view_of_3d.hs index cffa79656..8624b1c4b 100644 --- a/src/Vulkan/Extensions/VK_EXT_image_sliced_view_of_3d.hs +++ b/src/Vulkan/Extensions/VK_EXT_image_sliced_view_of_3d.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- and @@ -162,7 +165,7 @@ import Vulkan.Core10.APIConstants (pattern REMAINING_3D_SLICES_EXT) -- The effective view depth is equal to @extent.depth@ used to create the -- @image@ for this view adjusted by @subresourceRange.baseMipLevel@ as -- specified in --- . +-- . -- -- Shader access to this image view is only affected by -- 'ImageViewSlicedCreateInfoEXT' if it uses a descriptor of type @@ -177,14 +180,14 @@ import Vulkan.Core10.APIConstants (pattern REMAINING_3D_SLICES_EXT) -- - #VUID-VkImageViewSlicedCreateInfoEXT-sliceOffset-07867# -- @sliceOffset@ /must/ be less than the effective view depth as -- specified in --- +-- -- -- - #VUID-VkImageViewSlicedCreateInfoEXT-sliceCount-07868# If -- @sliceCount@ is not -- 'Vulkan.Core10.APIConstants.REMAINING_3D_SLICES_EXT', it /must/ be -- be non-zero and @sliceOffset@ + @sliceCount@ /must/ be less than or -- equal to the effective view depth as specified in --- +-- -- -- - #VUID-VkImageViewSlicedCreateInfoEXT-image-07869# @image@ /must/ -- have been created with @imageType@ equal to diff --git a/src/Vulkan/Extensions/VK_EXT_image_sliced_view_of_3d.hs-boot b/src/Vulkan/Extensions/VK_EXT_image_sliced_view_of_3d.hs-boot index 98bc0a29c..c45dad68c 100644 --- a/src/Vulkan/Extensions/VK_EXT_image_sliced_view_of_3d.hs-boot +++ b/src/Vulkan/Extensions/VK_EXT_image_sliced_view_of_3d.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- and diff --git a/src/Vulkan/Extensions/VK_EXT_image_view_min_lod.hs b/src/Vulkan/Extensions/VK_EXT_image_view_min_lod.hs index e70cd9d29..375fe5923 100644 --- a/src/Vulkan/Extensions/VK_EXT_image_view_min_lod.hs +++ b/src/Vulkan/Extensions/VK_EXT_image_view_min_lod.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- @@ -140,7 +143,7 @@ import Vulkan.Core10.Enums.StructureType (StructureType) import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_IMAGE_VIEW_MIN_LOD_CREATE_INFO_EXT)) import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT)) -- | VkPhysicalDeviceImageViewMinLodFeaturesEXT - Structure describing --- whether clamping the min lod of a image view is supported by the +-- whether clamping the min LOD of a image view is supported by the -- implementation -- -- = Members @@ -214,7 +217,7 @@ instance Zero PhysicalDeviceImageViewMinLodFeaturesEXT where zero --- | VkImageViewMinLodCreateInfoEXT - Structure describing the minimum lod of +-- | VkImageViewMinLodCreateInfoEXT - Structure describing the minimum LOD of -- an image view -- -- = Description diff --git a/src/Vulkan/Extensions/VK_EXT_image_view_min_lod.hs-boot b/src/Vulkan/Extensions/VK_EXT_image_view_min_lod.hs-boot index 5f1fbcb1c..6829d35a6 100644 --- a/src/Vulkan/Extensions/VK_EXT_image_view_min_lod.hs-boot +++ b/src/Vulkan/Extensions/VK_EXT_image_view_min_lod.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- diff --git a/src/Vulkan/Extensions/VK_EXT_index_type_uint8.hs b/src/Vulkan/Extensions/VK_EXT_index_type_uint8.hs index 1fcf38e73..41128265e 100644 --- a/src/Vulkan/Extensions/VK_EXT_index_type_uint8.hs +++ b/src/Vulkan/Extensions/VK_EXT_index_type_uint8.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- or @@ -141,6 +144,7 @@ import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_ data PhysicalDeviceIndexTypeUint8FeaturesEXT = PhysicalDeviceIndexTypeUint8FeaturesEXT { -- | #features-indexTypeUint8# @indexTypeUint8@ indicates that -- 'Vulkan.Core10.Enums.IndexType.INDEX_TYPE_UINT8_EXT' can be used with + -- 'Vulkan.Extensions.VK_KHR_maintenance5.cmdBindIndexBuffer2KHR' and -- 'Vulkan.Core10.CommandBufferBuilding.cmdBindIndexBuffer'. indexTypeUint8 :: Bool } deriving (Typeable, Eq) diff --git a/src/Vulkan/Extensions/VK_EXT_index_type_uint8.hs-boot b/src/Vulkan/Extensions/VK_EXT_index_type_uint8.hs-boot index f62afe0b1..390bbbf4f 100644 --- a/src/Vulkan/Extensions/VK_EXT_index_type_uint8.hs-boot +++ b/src/Vulkan/Extensions/VK_EXT_index_type_uint8.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- or diff --git a/src/Vulkan/Extensions/VK_EXT_inline_uniform_block.hs b/src/Vulkan/Extensions/VK_EXT_inline_uniform_block.hs index 28ba8ae71..8ec018bbd 100644 --- a/src/Vulkan/Extensions/VK_EXT_inline_uniform_block.hs +++ b/src/Vulkan/Extensions/VK_EXT_inline_uniform_block.hs @@ -17,12 +17,15 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- and -- -- --- [__Deprecation state__] +-- [__Deprecation State__] -- -- - /Promoted/ to -- diff --git a/src/Vulkan/Extensions/VK_EXT_legacy_dithering.hs b/src/Vulkan/Extensions/VK_EXT_legacy_dithering.hs index 9c73ff455..906a0baa6 100644 --- a/src/Vulkan/Extensions/VK_EXT_legacy_dithering.hs +++ b/src/Vulkan/Extensions/VK_EXT_legacy_dithering.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- diff --git a/src/Vulkan/Extensions/VK_EXT_legacy_dithering.hs-boot b/src/Vulkan/Extensions/VK_EXT_legacy_dithering.hs-boot index 915ca2c00..bcdb2f79d 100644 --- a/src/Vulkan/Extensions/VK_EXT_legacy_dithering.hs-boot +++ b/src/Vulkan/Extensions/VK_EXT_legacy_dithering.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- diff --git a/src/Vulkan/Extensions/VK_EXT_line_rasterization.hs b/src/Vulkan/Extensions/VK_EXT_line_rasterization.hs index 746e69253..125eec56d 100644 --- a/src/Vulkan/Extensions/VK_EXT_line_rasterization.hs +++ b/src/Vulkan/Extensions/VK_EXT_line_rasterization.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- or @@ -101,14 +104,14 @@ -- -- == 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? +-- 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? -- --- > RESOLVED: Yes. --- > For simplicity, Bresenham line rasterization carries forward a few --- > restrictions from OpenGL, such as not supporting per-sample shading, alpha --- > to coverage, or alpha to one. +-- __RESOLVED__: Yes. For simplicity, Bresenham line rasterization carries +-- forward a few restrictions from OpenGL, such as not supporting +-- per-sample shading, alpha to coverage, or alpha to one. -- -- == Version History -- diff --git a/src/Vulkan/Extensions/VK_EXT_line_rasterization.hs-boot b/src/Vulkan/Extensions/VK_EXT_line_rasterization.hs-boot index c5b0cfa81..d98fbf9bd 100644 --- a/src/Vulkan/Extensions/VK_EXT_line_rasterization.hs-boot +++ b/src/Vulkan/Extensions/VK_EXT_line_rasterization.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- or @@ -101,14 +104,14 @@ -- -- == 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? +-- 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? -- --- > RESOLVED: Yes. --- > For simplicity, Bresenham line rasterization carries forward a few --- > restrictions from OpenGL, such as not supporting per-sample shading, alpha --- > to coverage, or alpha to one. +-- __RESOLVED__: Yes. For simplicity, Bresenham line rasterization carries +-- forward a few restrictions from OpenGL, such as not supporting +-- per-sample shading, alpha to coverage, or alpha to one. -- -- == Version History -- diff --git a/src/Vulkan/Extensions/VK_EXT_load_store_op_none.hs b/src/Vulkan/Extensions/VK_EXT_load_store_op_none.hs index 8adb0d59e..d9b864a33 100644 --- a/src/Vulkan/Extensions/VK_EXT_load_store_op_none.hs +++ b/src/Vulkan/Extensions/VK_EXT_load_store_op_none.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__; __Contact__] -- -- - Shahbaz Youssefi diff --git a/src/Vulkan/Extensions/VK_EXT_memory_budget.hs b/src/Vulkan/Extensions/VK_EXT_memory_budget.hs index ee3975e21..cf8607e77 100644 --- a/src/Vulkan/Extensions/VK_EXT_memory_budget.hs +++ b/src/Vulkan/Extensions/VK_EXT_memory_budget.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- or diff --git a/src/Vulkan/Extensions/VK_EXT_memory_budget.hs-boot b/src/Vulkan/Extensions/VK_EXT_memory_budget.hs-boot index 22421e4dd..11d012ed5 100644 --- a/src/Vulkan/Extensions/VK_EXT_memory_budget.hs-boot +++ b/src/Vulkan/Extensions/VK_EXT_memory_budget.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- or diff --git a/src/Vulkan/Extensions/VK_EXT_memory_priority.hs b/src/Vulkan/Extensions/VK_EXT_memory_priority.hs index 5cb1c788a..53c07b779 100644 --- a/src/Vulkan/Extensions/VK_EXT_memory_priority.hs +++ b/src/Vulkan/Extensions/VK_EXT_memory_priority.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- diff --git a/src/Vulkan/Extensions/VK_EXT_memory_priority.hs-boot b/src/Vulkan/Extensions/VK_EXT_memory_priority.hs-boot index c2db3a4ef..b2420ab22 100644 --- a/src/Vulkan/Extensions/VK_EXT_memory_priority.hs-boot +++ b/src/Vulkan/Extensions/VK_EXT_memory_priority.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- diff --git a/src/Vulkan/Extensions/VK_EXT_mesh_shader.hs b/src/Vulkan/Extensions/VK_EXT_mesh_shader.hs index 320f9757c..d75ee00f8 100644 --- a/src/Vulkan/Extensions/VK_EXT_mesh_shader.hs +++ b/src/Vulkan/Extensions/VK_EXT_mesh_shader.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- @@ -377,6 +380,16 @@ foreign import ccall -- /must/ contain -- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT' -- +-- - #VUID-vkCmdDrawMeshTasksEXT-None-02693# If the +-- +-- extension is not enabled and any 'Vulkan.Core10.Handles.ImageView' +-- is sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a +-- result of this command, it /must/ not have a +-- 'Vulkan.Core10.Enums.ImageViewType.ImageViewType' of +-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_3D', +-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE', or +-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE_ARRAY' +-- -- - #VUID-vkCmdDrawMeshTasksEXT-filterCubic-02694# Any -- 'Vulkan.Core10.Handles.ImageView' being sampled with -- 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a result of this @@ -402,6 +415,33 @@ foreign import ccall -- returned by -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceImageFormatProperties2' -- +-- - #VUID-vkCmdDrawMeshTasksEXT-cubicRangeClamp-09212# If the +-- +-- feature is not enabled, then any 'Vulkan.Core10.Handles.ImageView' +-- being sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as +-- a result of this command +-- +-- [/must/ not have a 'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo'] +-- @reductionMode@ equal to +-- 'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM' +-- +-- - #VUID-vkCmdDrawMeshTasksEXT-reductionMode-09213# Any +-- 'Vulkan.Core10.Handles.ImageView' being sampled with a +-- 'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo'::@reductionMode@ +-- equal to +-- 'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM' +-- as a result of this command /must/ sample with +-- 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' +-- +-- - #VUID-vkCmdDrawMeshTasksEXT-selectableCubicWeights-09214# If the +-- +-- feature is not enabled, then any 'Vulkan.Core10.Handles.ImageView' +-- being sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as +-- a result of this command /must/ have +-- 'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.SamplerCubicWeightsCreateInfoQCOM'::@cubicWeights@ +-- equal to +-- 'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM' +-- -- - #VUID-vkCmdDrawMeshTasksEXT-flags-02696# Any -- 'Vulkan.Core10.Handles.Image' created with a -- 'Vulkan.Core10.Image.ImageCreateInfo'::@flags@ containing @@ -443,11 +483,9 @@ foreign import ccall -- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT' -- -- - #VUID-vkCmdDrawMeshTasksEXT-None-08600# For each set /n/ that is --- statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to the --- pipeline bind point used by this command, or by any of the --- 'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages --- corresponding to the pipeline bind point used by this command, a --- descriptor set /must/ have been bound to /n/ at the same pipeline +-- statically used by +-- , +-- a descriptor set /must/ have been bound to /n/ at the same pipeline -- bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is -- compatible for set /n/, with the -- 'Vulkan.Core10.Handles.PipelineLayout' or @@ -457,12 +495,10 @@ foreign import ccall -- -- -- - #VUID-vkCmdDrawMeshTasksEXT-None-08601# For each push constant that --- is statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to --- the pipeline bind point used by this command, or by any of the --- 'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages --- corresponding to the pipeline bind point used by this command, a --- push constant value /must/ have been set for the same pipeline bind --- point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is +-- is statically used by +-- , +-- a push constant value /must/ have been set for the same pipeline +-- bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is -- compatible for push constants, with the -- 'Vulkan.Core10.Handles.PipelineLayout' or -- 'Vulkan.Core10.Handles.DescriptorSetLayout' and @@ -474,12 +510,10 @@ foreign import ccall -- - #VUID-vkCmdDrawMeshTasksEXT-maintenance4-08602# If the -- -- feature is not enabled, then for each push constant that is --- statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to the --- pipeline bind point used by this command, or by any of the --- 'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages --- corresponding to the pipeline bind point used by this command, a --- push constant value /must/ have been set for the same pipeline bind --- point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is +-- statically used by +-- , +-- a push constant value /must/ have been set for the same pipeline +-- bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is -- compatible for push constants, with the -- 'Vulkan.Core10.Handles.PipelineLayout' or -- 'Vulkan.Core10.Handles.DescriptorSetLayout' and @@ -642,34 +676,25 @@ foreign import ccall -- buffer as specified in the descriptor set bound to the same pipeline -- bind point -- --- - #VUID-vkCmdDrawMeshTasksEXT-commandBuffer-08614# If @commandBuffer@ +-- - #VUID-vkCmdDrawMeshTasksEXT-commandBuffer-02707# If @commandBuffer@ -- is an unprotected command buffer and -- --- is not supported, any resource accessed by the --- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind --- point used by this command or any --- 'Vulkan.Extensions.Handles.ShaderEXT' object bound to a stage --- corresponding to the pipeline bind point used by this command /must/ --- not be a protected resource --- --- - #VUID-vkCmdDrawMeshTasksEXT-None-08615# If the --- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind --- point used by this command or any --- 'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding --- to the pipeline bind point used by this command accesses a --- 'Vulkan.Core10.Handles.Sampler' or 'Vulkan.Core10.Handles.ImageView' --- object that enables +-- is not supported, any resource accessed by +-- +-- /must/ not be a protected resource +-- +-- - #VUID-vkCmdDrawMeshTasksEXT-None-06550# If +-- +-- accesses a 'Vulkan.Core10.Handles.Sampler' or +-- 'Vulkan.Core10.Handles.ImageView' object that enables -- , -- that object /must/ only be used with @OpImageSample*@ or -- @OpImageSparseSample*@ instructions -- --- - #VUID-vkCmdDrawMeshTasksEXT-ConstOffset-08616# If the --- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind --- point used by this command or any --- 'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding --- to the pipeline bind point used by this command accesses a --- 'Vulkan.Core10.Handles.Sampler' or 'Vulkan.Core10.Handles.ImageView' --- object that enables +-- - #VUID-vkCmdDrawMeshTasksEXT-ConstOffset-06551# If +-- +-- accesses a 'Vulkan.Core10.Handles.Sampler' or +-- 'Vulkan.Core10.Handles.ImageView' object that enables -- , -- that object /must/ not use the @ConstOffset@ and @Offset@ operands -- @@ -681,17 +706,23 @@ foreign import ccall -- -- - #VUID-vkCmdDrawMeshTasksEXT-format-07753# If a -- 'Vulkan.Core10.Handles.ImageView' is accessed as a result of this --- command, then the image view’s @format@ /must/ match the numeric --- format from the @Sampled@ @Type@ operand of the @OpTypeImage@ as --- described in the SPIR-V Sampled Type column of the --- --- table --- --- - #VUID-vkCmdDrawMeshTasksEXT-None-04115# If a --- 'Vulkan.Core10.Handles.ImageView' is accessed using @OpImageWrite@ --- as a result of this command, then the @Type@ of the @Texel@ operand --- of that instruction /must/ have at least as many components as the --- image view’s format +-- command, then the +-- +-- of the image view’s @format@ and the @Sampled@ @Type@ operand of the +-- @OpTypeImage@ /must/ match +-- +-- - #VUID-vkCmdDrawMeshTasksEXT-OpImageWrite-08795# If a +-- 'Vulkan.Core10.Handles.ImageView' created with a format other than +-- 'Vulkan.Core10.Enums.Format.FORMAT_A8_UNORM_KHR' is accessed using +-- @OpImageWrite@ as a result of this command, then the @Type@ of the +-- @Texel@ operand of that instruction /must/ have at least as many +-- components as the image view’s format +-- +-- - #VUID-vkCmdDrawMeshTasksEXT-OpImageWrite-08796# If a +-- 'Vulkan.Core10.Handles.ImageView' created with the format +-- 'Vulkan.Core10.Enums.Format.FORMAT_A8_UNORM_KHR' is accessed using +-- @OpImageWrite@ as a result of this command, then the @Type@ of the +-- @Texel@ operand of that instruction /must/ have four components -- -- - #VUID-vkCmdDrawMeshTasksEXT-OpImageWrite-04469# If a -- 'Vulkan.Core10.Handles.BufferView' is accessed using @OpImageWrite@ @@ -793,6 +824,8 @@ foreign import ccall -- -- - #VUID-vkCmdDrawMeshTasksEXT-OpImageWeightedSampleQCOM-06977# If -- @OpImageWeightedSampleQCOM@, @OpImageBoxFilterQCOM@, +-- @OpImageBlockMatchWindowSSDQCOM@, @OpImageBlockMatchWindowSADQCOM@, +-- @OpImageBlockMatchGatherSSDQCOM@, @OpImageBlockMatchGatherSADQCOM@, -- @OpImageBlockMatchSSDQCOM@, or @OpImageBlockMatchSADQCOM@ uses a -- 'Vulkan.Core10.Handles.Sampler' as a result of this command, then -- the sampler /must/ have been created with @@ -800,12 +833,35 @@ foreign import ccall -- -- - #VUID-vkCmdDrawMeshTasksEXT-OpImageWeightedSampleQCOM-06978# If any -- command other than @OpImageWeightedSampleQCOM@, --- @OpImageBoxFilterQCOM@, @OpImageBlockMatchSSDQCOM@, or +-- @OpImageBoxFilterQCOM@, @OpImageBlockMatchWindowSSDQCOM@, +-- @OpImageBlockMatchWindowSADQCOM@, @OpImageBlockMatchGatherSSDQCOM@, +-- @OpImageBlockMatchGatherSADQCOM@, @OpImageBlockMatchSSDQCOM@, or -- @OpImageBlockMatchSADQCOM@ uses a 'Vulkan.Core10.Handles.Sampler' as -- a result of this command, then the sampler /must/ not have been -- created with -- 'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM' -- +-- - #VUID-vkCmdDrawMeshTasksEXT-OpImageBlockMatchWindow-09215# If a +-- @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@ +-- instruction is used to read from an +-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then +-- the image view’s +-- +-- /must/ contain +-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM' +-- +-- - #VUID-vkCmdDrawMeshTasksEXT-OpImageBlockMatchWindow-09216# If a +-- @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@ +-- instruction is used to read from an +-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then +-- the image view’s format /must/ be a single-component format. +-- +-- - #VUID-vkCmdDrawMeshTasksEXT-OpImageBlockMatchWindow-09217# If a +-- @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@ +-- read from a reference image as result of this command, then the +-- specified reference coordinates /must/ not fail +-- +-- -- - #VUID-vkCmdDrawMeshTasksEXT-None-07288# Any shader invocation -- executed by this command /must/ -- @@ -850,15 +906,86 @@ foreign import ccall -- not be written in any way other than as an attachment by this -- command -- --- - #VUID-vkCmdDrawMeshTasksEXT-None-06538# If any recorded command in --- the current subpass will write to an image subresource as an --- attachment, this command /must/ not read from the memory backing --- that image subresource in any other way than as an attachment --- --- - #VUID-vkCmdDrawMeshTasksEXT-None-06539# If any recorded command in --- the current subpass will read from an image subresource used as an --- attachment in any way other than as an attachment, this command --- /must/ not write to that image subresource as an attachment +-- - #VUID-vkCmdDrawMeshTasksEXT-None-09000# If a color attachment is +-- written by any prior command in this subpass or by the load, store, +-- or resolve operations for this subpass, it is not in the +-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT' +-- image layout, and either: +-- +-- - the +-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT' +-- is set on the currently bound pipeline or +-- +-- - the last call to +-- 'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT' +-- included +-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT' +-- and +-- +-- - there is no currently bound graphics pipeline or +-- +-- - the currently bound graphics pipeline was created with +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT' +-- it /must/ not be accessed in any way other than as an +-- attachment by this command +-- +-- - #VUID-vkCmdDrawMeshTasksEXT-None-09001# If a depth attachment is +-- written by any prior command in this subpass or by the load, store, +-- or resolve operations for this subpass, it is not in the +-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT' +-- image layout, and either: +-- +-- - the +-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT' +-- is set on the currently bound pipeline or +-- +-- - the last call to +-- 'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT' +-- included +-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_DEPTH_BIT' +-- and +-- +-- - there is no currently bound graphics pipeline or +-- +-- - the currently bound graphics pipeline was created with +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT' +-- it /must/ not be accessed in any way other than as an +-- attachment by this command +-- +-- - #VUID-vkCmdDrawMeshTasksEXT-None-09002# If a stencil attachment is +-- written by any prior command in this subpass or by the load, store, +-- or resolve operations for this subpass, it is not in the +-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT' +-- image layout, and either: +-- +-- - the +-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT' +-- is set on the currently bound pipeline or +-- +-- - the last call to +-- 'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT' +-- included +-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT' +-- and +-- +-- - there is no currently bound graphics pipeline or +-- +-- - the currently bound graphics pipeline was created with +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT' +-- it /must/ not be accessed in any way other than as an +-- attachment by this command +-- +-- - #VUID-vkCmdDrawMeshTasksEXT-None-09003# If an attachment is written +-- by any prior command in this subpass or by the load, store, or +-- resolve operations for this subpass, it /must/ not be accessed in +-- any way other than as an attachment, storage image, or sampled image +-- by this command +-- +-- - #VUID-vkCmdDrawMeshTasksEXT-None-06539# If any previously recorded +-- command in the current subpass accessed an image subresource used as +-- an attachment in this subpass in any way other than as an +-- attachment, this command /must/ not write to that image subresource +-- as an attachment -- -- - #VUID-vkCmdDrawMeshTasksEXT-None-06886# If the current render pass -- instance uses a depth\/stencil attachment with a read-only layout @@ -928,18 +1055,23 @@ foreign import ccall -- pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS' dynamic -- state enabled then --- 'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBias' /must/ have --- been called in the current command buffer prior to this drawing --- command +-- 'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBias' or +-- 'Vulkan.Extensions.VK_EXT_depth_bias_control.cmdSetDepthBias2EXT' +-- /must/ have been called in the current command buffer prior to this +-- drawing command -- -- - #VUID-vkCmdDrawMeshTasksEXT-None-08620# If a shader object is bound -- to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnable' -- in the current command buffer set @depthBiasEnable@ to -- 'Vulkan.Core10.FundamentalTypes.TRUE', --- 'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBias' /must/ have --- been called in the current command buffer prior to this drawing --- command +-- 'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBias' or +-- 'Vulkan.Extensions.VK_EXT_depth_bias_control.cmdSetDepthBias2EXT' +-- /must/ have been called in the current command buffer prior to this +-- drawing command -- -- - #VUID-vkCmdDrawMeshTasksEXT-None-07835# If the bound graphics -- pipeline state was created with the @@ -962,7 +1094,7 @@ foreign import ccall -- the most recent call to -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT' -- in the current command buffer set the same element of --- @pColorBlendEquations@ to an +-- @pColorBlendEquations@ to a -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.ColorBlendEquationEXT' -- structure with any 'Vulkan.Core10.Enums.BlendFactor.BlendFactor' -- member with a value of @@ -977,16 +1109,20 @@ foreign import ccall -- - #VUID-vkCmdDrawMeshTasksEXT-None-07836# If the bound graphics -- pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS' --- dynamic state enabled then +-- dynamic state enabled, and if the current @depthBoundsTestEnable@ +-- state is 'Vulkan.Core10.FundamentalTypes.TRUE', then -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBounds' /must/ have -- been called in the current command buffer prior to this drawing -- command -- -- - #VUID-vkCmdDrawMeshTasksEXT-None-08622# If a shader object is bound -- to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable' -- in the current command buffer set @depthBoundsTestEnable@ to --- 'Vulkan.Core10.FundamentalTypes.TRUE', +-- 'Vulkan.Core10.FundamentalTypes.TRUE', then -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBounds' /must/ have -- been called in the current command buffer prior to this drawing -- command @@ -994,7 +1130,8 @@ foreign import ccall -- - #VUID-vkCmdDrawMeshTasksEXT-None-07837# If the bound graphics -- pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_COMPARE_MASK' --- dynamic state enabled then +-- dynamic state enabled, and if the current @stencilTestEnable@ state +-- is 'Vulkan.Core10.FundamentalTypes.TRUE', then -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilCompareMask' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -1011,7 +1148,8 @@ foreign import ccall -- - #VUID-vkCmdDrawMeshTasksEXT-None-07838# If the bound graphics -- pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_WRITE_MASK' --- dynamic state enabled then +-- dynamic state enabled, and if the current @stencilTestEnable@ state +-- is 'Vulkan.Core10.FundamentalTypes.TRUE', then -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilWriteMask' /must/ -- have been called in the current command buffer prior to this drawing -- command @@ -1028,7 +1166,8 @@ foreign import ccall -- - #VUID-vkCmdDrawMeshTasksEXT-None-07839# If the bound graphics -- pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_REFERENCE' --- dynamic state enabled then +-- dynamic state enabled, and if the current @stencilTestEnable@ state +-- is 'Vulkan.Core10.FundamentalTypes.TRUE', then -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilReference' /must/ -- have been called in the current command buffer prior to this drawing -- command @@ -1068,7 +1207,10 @@ foreign import ccall -- to any graphics stage, and the most recent call to -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT' -- in the current command buffer set @sampleLocationsEnable@ to --- 'Vulkan.Core10.FundamentalTypes.TRUE', +-- 'Vulkan.Core10.FundamentalTypes.TRUE', and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -1092,7 +1234,10 @@ foreign import ccall -- drawing command -- -- - #VUID-vkCmdDrawMeshTasksEXT-None-08627# If a shader object is bound --- to any graphics stage, +-- to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetCullMode' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -1106,7 +1251,10 @@ foreign import ccall -- drawing command -- -- - #VUID-vkCmdDrawMeshTasksEXT-None-08628# If a shader object is bound --- to any graphics stage, +-- to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetFrontFace' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -1120,7 +1268,10 @@ foreign import ccall -- drawing command -- -- - #VUID-vkCmdDrawMeshTasksEXT-None-08629# If a shader object is bound --- to any graphics stage, +-- to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -1134,7 +1285,10 @@ foreign import ccall -- drawing command -- -- - #VUID-vkCmdDrawMeshTasksEXT-None-08630# If a shader object is bound --- to any graphics stage, +-- to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -1149,9 +1303,12 @@ foreign import ccall -- -- - #VUID-vkCmdDrawMeshTasksEXT-None-08631# If a shader object is bound -- to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable' -- in the current command buffer set @depthTestEnable@ to --- 'Vulkan.Core10.FundamentalTypes.TRUE', +-- 'Vulkan.Core10.FundamentalTypes.TRUE', then -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthCompareOp' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -1167,7 +1324,10 @@ foreign import ccall -- - #VUID-vkCmdDrawMeshTasksEXT-None-08632# If a shader object is bound -- to any graphics stage, and the -- --- feature is enabled, the +-- feature is enabled, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then the -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -1287,6 +1447,13 @@ foreign import ccall -- the last call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- +-- - #VUID-vkCmdDrawMeshTasksEXT-None-09232# If a shader object is bound +-- to any graphics stage, and the @VK_NV_clip_space_w_scaling@ +-- extension is enabled on the device, then +-- 'Vulkan.Extensions.VK_NV_clip_space_w_scaling.cmdSetViewportWScalingNV' +-- must have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdDrawMeshTasksEXT-None-08636# If a shader object is bound -- to any graphics stage, and the @VK_NV_clip_space_w_scaling@ -- extension is enabled on the device, then the @viewportCount@ @@ -1320,6 +1487,30 @@ foreign import ccall -- the last call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- +-- - #VUID-vkCmdDrawMeshTasksEXT-shadingRateImage-09233# If the +-- +-- feature is enabled, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set rasterizerDiscardEnable to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then +-- 'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetCoarseSampleOrderNV' +-- must have been called in the current command buffer prior to this +-- drawing command +-- +-- - #VUID-vkCmdDrawMeshTasksEXT-shadingRateImage-09234# If a shader +-- object is bound to any graphics stage, and the +-- +-- feature is enabled on the device, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set rasterizerDiscardEnable to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetShadingRateImageEnableNV' +-- in the current command buffer set shadingRateImageEnable to +-- 'Vulkan.Core10.FundamentalTypes.TRUE', then +-- 'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetViewportShadingRatePaletteNV' +-- must have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdDrawMeshTasksEXT-None-08637# If a shader object is bound -- to any graphics stage, and the -- @@ -1372,6 +1563,14 @@ foreign import ccall -- /must/ have been called in the current command buffer prior to this -- drawing command -- +-- - #VUID-vkCmdDrawMeshTasksEXT-exclusiveScissor-09235# If a shader +-- object is bound to any graphics stage, and the +-- +-- feature is enabled, then +-- 'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorEnableNV' +-- must have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdDrawMeshTasksEXT-None-08638# If a shader object is bound -- to any graphics stage, and the most recent call to -- 'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorEnableNV' @@ -1423,7 +1622,9 @@ foreign import ccall -- 'Vulkan.Core10.Enums.LogicOp.LogicOp' value -- -- - #VUID-vkCmdDrawMeshTasksEXT-None-08641# If a shader object is bound --- to any graphics stage, and the +-- to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage, and the -- -- feature is enabled on the device, and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' @@ -1508,6 +1709,11 @@ foreign import ccall -- to be the same as the number of samples for the current render pass -- color and\/or depth\/stencil attachments -- +-- - #VUID-vkCmdDrawMeshTasksEXT-None-08876# If a shader object is bound +-- to any graphics stage, the current render pass instance /must/ have +-- been begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' +-- -- - #VUID-vkCmdDrawMeshTasksEXT-imageView-06172# If the current render -- pass instance was begun with -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', @@ -1580,8 +1786,11 @@ foreign import ccall -- equal to -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ -- --- - #VUID-vkCmdDrawMeshTasksEXT-colorAttachmentCount-06180# If the --- current render pass instance was begun with +-- - #VUID-vkCmdDrawMeshTasksEXT-dynamicRenderingUnusedAttachments-08910# +-- If the +-- +-- feature is not enabled, and the current render pass instance was +-- begun with -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' -- and -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ @@ -1594,8 +1803,32 @@ foreign import ccall -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@ -- used to create the currently bound graphics pipeline -- --- - #VUID-vkCmdDrawMeshTasksEXT-colorAttachmentCount-07616# If the --- current render pass instance was begun with +-- - #VUID-vkCmdDrawMeshTasksEXT-dynamicRenderingUnusedAttachments-08911# +-- If the +-- +-- feature is enabled, and the current render pass instance was begun +-- with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' +-- and +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ +-- greater than @0@, then each element of the +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@ +-- array with a @imageView@ not equal to +-- 'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created +-- with a 'Vulkan.Core10.Enums.Format.Format' equal to the +-- corresponding element of +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@ +-- used to create the currently bound graphics pipeline, or the +-- corresponding element of +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@, +-- if it exists, /must/ be +-- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' +-- +-- - #VUID-vkCmdDrawMeshTasksEXT-dynamicRenderingUnusedAttachments-08912# +-- If the +-- +-- feature is not enabled, and the current render pass instance was +-- begun with -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' -- and -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ @@ -1608,6 +1841,132 @@ foreign import ccall -- used to create the currently bound pipeline equal to -- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' -- +-- - #VUID-vkCmdDrawMeshTasksEXT-colorAttachmentCount-09362# If the +-- current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- with a +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ +-- equal to @1@, there is no shader object bound to any graphics stage, +-- and a color attachment with a resolve mode of +-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID', +-- each element of the +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@ +-- array with a @resolveImageView@ not equal to +-- 'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created +-- with an image created with a +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- value equal to the +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- value used to create the currently bound graphics pipeline +-- +-- - #VUID-vkCmdDrawMeshTasksEXT-None-09363# If there is no shader object +-- bound to any graphics stage, the current render pass instance was +-- begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' +-- and a +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ +-- equal to @1@, and a color attachment with a resolve mode of +-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID', +-- each element of the +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@ +-- array with a @imageView@ not equal to +-- 'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created +-- with an image created with a +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- value equal to the +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- value used to create the currently bound graphics pipeline +-- +-- - #VUID-vkCmdDrawMeshTasksEXT-None-09364# If the current render pass +-- instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- there is no shader object bound to any graphics stage, and the +-- currently bound graphics pipeline was created with a non-zero +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- value and with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT' +-- dynamic state enabled, then +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT' +-- /must/ have set the blend enable to +-- 'Vulkan.Core10.FundamentalTypes.FALSE' prior to this drawing command +-- +-- - #VUID-vkCmdDrawMeshTasksEXT-None-09365# If the current render pass +-- instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- there is no shader object bound to any graphics stage, and the +-- currently bound graphics pipeline was created with a non-zero +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- value and with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT' +-- dynamic state enabled, then +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT' +-- /must/ have set @rasterizationSamples@ to +-- 'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT' prior +-- to this drawing command +-- +-- - #VUID-vkCmdDrawMeshTasksEXT-None-09366# If there is a shader object +-- bound to any graphics stage, and the current render pass includes a +-- color attachment that uses the +-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID' +-- resolve mode, then +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT' +-- /must/ have set blend enable to +-- 'Vulkan.Core10.FundamentalTypes.FALSE' prior to this drawing command +-- +-- - #VUID-vkCmdDrawMeshTasksEXT-rasterizationSamples-09367# If there is +-- a shader object bound to any graphics stage, and the current render +-- pass includes a color attachment that uses the +-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID' +-- resolve mode, then +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT' +-- /must/ have set @rasterizationSamples@ to +-- 'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT' prior +-- to this drawing command +-- +-- - #VUID-vkCmdDrawMeshTasksEXT-None-09368# If the current render pass +-- instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- there is no shader object bound to any graphics stage, and the +-- currently bound graphics pipeline was created with a non-zero +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- value and with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR' +-- dynamic state enabled, then +-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR' +-- /must/ have set @pFragmentSize->width@ to @1@ prior to this drawing +-- command +-- +-- - #VUID-vkCmdDrawMeshTasksEXT-None-09369# If the current render pass +-- instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- there is no shader object bound to any graphics stage, and the +-- currently bound graphics pipeline was created with a non-zero +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- value and with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR' +-- dynamic state enabled, then +-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR' +-- /must/ have set @pFragmentSize->height@ to @1@ prior to this drawing +-- command +-- +-- - #VUID-vkCmdDrawMeshTasksEXT-pFragmentSize-09370# If there is a +-- shader object bound to any graphics stage, and the current render +-- pass includes a color attachment that uses the +-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID' +-- resolve mode, then +-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR' +-- /must/ have set @pFragmentSize->width@ to @1@ prior to this drawing +-- command +-- +-- - #VUID-vkCmdDrawMeshTasksEXT-pFragmentSize-09371# If there is a +-- shader object bound to any graphics stage, and the current render +-- pass includes a color attachment that uses the +-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID' +-- resolve mode, then +-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR' +-- /must/ have set @pFragmentSize->height@ to @1@ prior to this drawing +-- command +-- -- - #VUID-vkCmdDrawMeshTasksEXT-None-07749# If the bound graphics -- pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT' @@ -1619,7 +1978,9 @@ foreign import ccall -- - #VUID-vkCmdDrawMeshTasksEXT-None-08646# If the -- -- feature is enabled on the device, and a shader object is bound to --- the fragment stage, and the most recent call to +-- the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage, and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' -- in the current command buffer set @rasterizerDiscardEnable@ to -- 'Vulkan.Core10.FundamentalTypes.FALSE', then @@ -1639,7 +2000,9 @@ foreign import ccall -- - #VUID-vkCmdDrawMeshTasksEXT-None-08647# If the -- -- feature is enabled on the device, and a shader object is bound to --- the fragment stage, and the most recent call to +-- the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage, and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' -- in the current command buffer set @rasterizerDiscardEnable@ to -- 'Vulkan.Core10.FundamentalTypes.FALSE', then the @attachmentCount@ @@ -1665,6 +2028,16 @@ foreign import ccall -- /must/ have been called in the current command buffer prior to this -- drawing command -- +-- - #VUID-vkCmdDrawMeshTasksEXT-rasterizerDiscardEnable-09236# If the +-- @VK_EXT_discard_rectangles@ extension is enabled, and a shader +-- object is bound to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then +-- 'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEXT' +-- /must/ have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdDrawMeshTasksEXT-None-08648# If the -- @VK_EXT_discard_rectangles@ extension is enabled, and a shader -- object is bound to any graphics stage, and the most recent call to @@ -1696,10 +2069,24 @@ foreign import ccall -- /must/ have been called in the current command buffer prior to this -- drawing command -- --- - #VUID-vkCmdDrawMeshTasksEXT-pDepthAttachment-06181# If the current --- render pass instance was begun with --- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' --- and +-- - #VUID-vkCmdDrawMeshTasksEXT-dynamicRenderingUnusedAttachments-08913# +-- If the current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- the +-- +-- feature is not enabled, and +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@ +-- was 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@ +-- used to create the currently bound graphics pipeline /must/ be equal +-- to 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' +-- +-- - #VUID-vkCmdDrawMeshTasksEXT-dynamicRenderingUnusedAttachments-08914# +-- If current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- the +-- +-- feature is not enabled, and -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@ -- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@ @@ -1707,20 +2094,39 @@ foreign import ccall -- to the 'Vulkan.Core10.Enums.Format.Format' used to create -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@ -- --- - #VUID-vkCmdDrawMeshTasksEXT-pDepthAttachment-07617# If the current --- render pass instance was begun with --- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' --- and +-- - #VUID-vkCmdDrawMeshTasksEXT-dynamicRenderingUnusedAttachments-08915# +-- If the current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- the +-- +-- feature is enabled, -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@ --- was 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of +-- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the value of -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@ +-- used to create the currently bound graphics pipeline was not equal +-- to the 'Vulkan.Core10.Enums.Format.Format' used to create +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@, +-- the value of the format /must/ be +-- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' +-- +-- - #VUID-vkCmdDrawMeshTasksEXT-dynamicRenderingUnusedAttachments-08916# +-- If the current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- the +-- +-- feature is not enabled, and +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@ +-- was 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@ -- used to create the currently bound graphics pipeline /must/ be equal -- to 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' -- --- - #VUID-vkCmdDrawMeshTasksEXT-pStencilAttachment-06182# If the current --- render pass instance was begun with --- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' --- and +-- - #VUID-vkCmdDrawMeshTasksEXT-dynamicRenderingUnusedAttachments-08917# +-- If current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- the +-- +-- feature is not enabled, and -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@ -- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@ @@ -1728,15 +2134,20 @@ foreign import ccall -- to the 'Vulkan.Core10.Enums.Format.Format' used to create -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@ -- --- - #VUID-vkCmdDrawMeshTasksEXT-pStencilAttachment-07618# If the current --- render pass instance was begun with --- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' --- and +-- - #VUID-vkCmdDrawMeshTasksEXT-dynamicRenderingUnusedAttachments-08918# +-- If the current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- the +-- +-- feature is enabled, -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@ --- was 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of +-- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the value of -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@ --- used to create the currently bound graphics pipeline /must/ be equal --- to 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' +-- used to create the currently bound graphics pipeline was not equal +-- to the 'Vulkan.Core10.Enums.Format.Format' used to create +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@, +-- the value of the format /must/ be +-- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' -- -- - #VUID-vkCmdDrawMeshTasksEXT-imageView-06183# If the current render -- pass instance was begun with @@ -1883,17 +2294,51 @@ foreign import ccall -- 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@renderPass@ -- equal to 'Vulkan.Core10.APIConstants.NULL_HANDLE' -- --- - #VUID-vkCmdDrawMeshTasksEXT-primitivesGeneratedQueryWithRasterizerDiscard-06708# --- If the --- --- feature is not enabled and the --- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PRIMITIVES_GENERATED_EXT' --- query is active, --- --- /must/ not be enabled +-- - #VUID-vkCmdDrawMeshTasksEXT-pColorAttachments-08963# If the current +-- render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- there is a graphics pipeline bound with a fragment shader that +-- statically writes to a color attachment, the color write mask is not +-- zero, color writes are enabled, and the corresponding element of the +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments->imageView@ +-- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', then the +-- corresponding element of +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@ +-- used to create the pipeline /must/ not be +-- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' -- --- - #VUID-vkCmdDrawMeshTasksEXT-primitivesGeneratedQueryWithNonZeroStreams-06709# --- If the +-- - #VUID-vkCmdDrawMeshTasksEXT-pDepthAttachment-08964# If the current +-- render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- there is a graphics pipeline bound, depth test is enabled, depth +-- write is enabled, and the +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@ +-- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', then the +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@ +-- used to create the pipeline /must/ not be +-- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' +-- +-- - #VUID-vkCmdDrawMeshTasksEXT-pStencilAttachment-08965# If the current +-- render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- there is a graphics pipeline bound, stencil test is enabled and the +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@ +-- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', then the +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@ +-- used to create the pipeline /must/ not be +-- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' +-- +-- - #VUID-vkCmdDrawMeshTasksEXT-primitivesGeneratedQueryWithRasterizerDiscard-06708# +-- If the +-- +-- feature is not enabled and the +-- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PRIMITIVES_GENERATED_EXT' +-- query is active, +-- +-- /must/ not be enabled +-- +-- - #VUID-vkCmdDrawMeshTasksEXT-primitivesGeneratedQueryWithNonZeroStreams-06709# +-- If the -- -- feature is not enabled and the -- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PRIMITIVES_GENERATED_EXT' @@ -1909,6 +2354,22 @@ foreign import ccall -- /must/ have been called in the current command buffer prior to this -- drawing command -- +-- - #VUID-vkCmdDrawMeshTasksEXT-None-07620# If the bound graphics +-- pipeline state was created with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT' +-- dynamic state enabled then +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClampEnableEXT' +-- /must/ have been called in the current command buffer prior to this +-- drawing command +-- +-- - #VUID-vkCmdDrawMeshTasksEXT-None-09237# If a shader object is bound +-- to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT' +-- stage, then +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetTessellationDomainOriginEXT' +-- /must/ have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdDrawMeshTasksEXT-None-08650# If the -- -- feature is enabled, and a shader object is bound to any graphics @@ -1979,6 +2440,17 @@ foreign import ccall -- /must/ have been called in the current command buffer prior to this -- drawing command -- +-- - #VUID-vkCmdDrawMeshTasksEXT-alphaToCoverageEnable-08919# If the +-- bound graphics pipeline state was created with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT' +-- dynamic state enabled, and @alphaToCoverageEnable@ was +-- 'Vulkan.Core10.FundamentalTypes.TRUE' in the last call to +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT', +-- then the +-- +-- /must/ contain a variable for the alpha @Component@ word in +-- @Location@ 0 at @Index@ 0 +-- -- - #VUID-vkCmdDrawMeshTasksEXT-None-08654# If a shader object is bound -- to any graphics stage, and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' @@ -1988,6 +2460,15 @@ foreign import ccall -- /must/ have been called in the current command buffer prior to this -- drawing command -- +-- - #VUID-vkCmdDrawMeshTasksEXT-alphaToCoverageEnable-08920# If a shader +-- object is bound to any graphics stage, and the most recent call to +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT' +-- in the current command buffer set @alphaToCoverageEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.TRUE', then the +-- +-- /must/ contain a variable for the alpha @Component@ word in +-- @Location@ 0 at @Index@ 0 +-- -- - #VUID-vkCmdDrawMeshTasksEXT-None-07625# If the bound graphics -- pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT' @@ -2017,7 +2498,8 @@ foreign import ccall -- -- - #VUID-vkCmdDrawMeshTasksEXT-None-08656# If the -- --- feature is enabled, and a shader object is bound to any graphics +-- feature is enabled, and a shader object is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' -- stage, and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' -- in the current command buffer set @rasterizerDiscardEnable@ to @@ -2035,7 +2517,9 @@ foreign import ccall -- drawing command -- -- - #VUID-vkCmdDrawMeshTasksEXT-None-08657# If a shader object is bound --- to any graphics stage, and the most recent call to +-- to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage, and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' -- in the current command buffer set @rasterizerDiscardEnable@ to -- 'Vulkan.Core10.FundamentalTypes.FALSE', then @@ -2072,7 +2556,9 @@ foreign import ccall -- drawing command -- -- - #VUID-vkCmdDrawMeshTasksEXT-None-08659# If a shader object is bound --- to any graphics stage, and the most recent call to +-- to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage, and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' -- in the current command buffer set @rasterizerDiscardEnable@ to -- 'Vulkan.Core10.FundamentalTypes.FALSE', then @@ -2090,7 +2576,8 @@ foreign import ccall -- -- - #VUID-vkCmdDrawMeshTasksEXT-None-08660# If the -- --- feature is enabled, and a shader object is bound to the geometry +-- feature is enabled, and a shader object is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT' -- stage, then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationStreamEXT' -- /must/ have been called in the current command buffer prior to this @@ -2190,7 +2677,9 @@ foreign import ccall -- -- - #VUID-vkCmdDrawMeshTasksEXT-None-08665# If the -- @VK_EXT_provoking_vertex@ extension is enabled, and a shader object --- is bound to the vertex stage, then +-- is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT' +-- stage, then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetProvokingVertexModeEXT' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -2299,7 +2788,7 @@ foreign import ccall -- stage, then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClipNegativeOneToOneEXT' -- /must/ have been called in the current command buffer prior to this --- drawing command ifdef::VK_EXT_extended_dynamic_state3 +-- drawing command -- -- - #VUID-vkCmdDrawMeshTasksEXT-None-07640# If the bound graphics -- pipeline state was created with the @@ -2307,7 +2796,7 @@ foreign import ccall -- dynamic state enabled then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetViewportWScalingEnableNV' -- /must/ have been called in the current command buffer prior to this --- drawing command endif::VK_EXT_extended_dynamic_state3 +-- drawing command -- -- - #VUID-vkCmdDrawMeshTasksEXT-None-08674# If the -- @VK_NV_clip_space_w_scaling@ extension is enabled, and a shader @@ -2341,7 +2830,12 @@ foreign import ccall -- -- - #VUID-vkCmdDrawMeshTasksEXT-None-08676# If the -- @VK_NV_fragment_coverage_to_color@ extension is enabled, and a --- shader object is bound to any graphics stage, then +-- shader object is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -2356,8 +2850,9 @@ foreign import ccall -- -- - #VUID-vkCmdDrawMeshTasksEXT-None-08677# If the -- @VK_NV_fragment_coverage_to_color@ extension is enabled, and a --- shader object is bound to any graphics stage, and the most recent --- call to +-- shader object is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage, and the most recent call to -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV' -- in the current command buffer set @coverageToColorEnable@ to -- 'Vulkan.Core10.FundamentalTypes.TRUE', then @@ -2375,7 +2870,10 @@ foreign import ccall -- -- - #VUID-vkCmdDrawMeshTasksEXT-None-08678# If the -- @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader --- object is bound to any graphics stage, then +-- object is bound to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationModeNV' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -2390,7 +2888,15 @@ foreign import ccall -- -- - #VUID-vkCmdDrawMeshTasksEXT-None-08679# If the -- @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader --- object is bound to any graphics stage, then +-- object is bound to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationModeNV' +-- in the current command buffer set coverageModulationMode to any +-- value other than +-- 'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.COVERAGE_MODULATION_MODE_NONE_NV', +-- then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -2406,6 +2912,9 @@ foreign import ccall -- - #VUID-vkCmdDrawMeshTasksEXT-None-08680# If the -- @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader -- object is bound to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV' -- in the current command buffer set @coverageModulationTableEnable@ to -- 'Vulkan.Core10.FundamentalTypes.TRUE', then @@ -2421,10 +2930,26 @@ foreign import ccall -- /must/ have been called in the current command buffer prior to this -- drawing command -- +-- - #VUID-vkCmdDrawMeshTasksEXT-pipelineFragmentShadingRate-09238# If +-- the +-- +-- feature is enabled, and a shader object is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set rasterizerDiscardEnable to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then +-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR' +-- must have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdDrawMeshTasksEXT-None-08681# If the -- -- feature is enabled, and a shader object is bound to any graphics --- stage, then +-- stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetShadingRateImageEnableNV' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -2434,13 +2959,16 @@ foreign import ccall -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV' -- dynamic state enabled then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRepresentativeFragmentTestEnableNV' --- must have been called in the current command buffer prior to this +-- /must/ have been called in the current command buffer prior to this -- drawing command -- -- - #VUID-vkCmdDrawMeshTasksEXT-None-08682# If the -- -- feature is enabled, and a shader object is bound to any graphics --- stage, then +-- stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRepresentativeFragmentTestEnableNV' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -2456,7 +2984,10 @@ foreign import ccall -- - #VUID-vkCmdDrawMeshTasksEXT-None-08683# If the -- -- feature is enabled, and a shader object is bound to any graphics --- stage, then +-- stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageReductionModeNV' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -2505,18 +3036,29 @@ foreign import ccall -- in the last call to -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT' -- --- - #VUID-vkCmdDrawMeshTasksEXT-multisampledRenderToSingleSampled-07475# --- If the bound graphics pipeline state was created with the +-- - #VUID-vkCmdDrawMeshTasksEXT-rasterizationSamples-07474# If the bound +-- graphics pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT' --- state enabled, and none of the @VK_AMD_mixed_attachment_samples@ --- extension, @VK_NV_framebuffer_mixed_samples@ extension, or the --- --- feature is enabled, then the @rasterizationSamples@ in the last call --- to +-- state enabled, and neither the @VK_AMD_mixed_attachment_samples@ nor +-- the @VK_NV_framebuffer_mixed_samples@ extensions are enabled, then +-- the @rasterizationSamples@ in the last call to -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT' -- /must/ be the same as the current subpass color and\/or -- depth\/stencil attachments -- +-- - #VUID-vkCmdDrawMeshTasksEXT-None-09211# If the bound graphics +-- pipeline state was created with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT' +-- state enabled, or a shader object is bound to any graphics stage, +-- and the current render pass instance includes a +-- 'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT' +-- structure with @multisampledRenderToSingleSampledEnable@ equal to +-- 'Vulkan.Core10.FundamentalTypes.TRUE', then the +-- @rasterizationSamples@ in the last call to +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT' +-- /must/ be the same as the @rasterizationSamples@ member of that +-- structure +-- -- - #VUID-vkCmdDrawMeshTasksEXT-firstAttachment-07476# If the bound -- graphics pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT' @@ -2575,7 +3117,7 @@ foreign import ccall -- and -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendAdvancedEXT' -- have enabled advanced blending, then the number of active color --- attachments in the current subpass must not exceed +-- attachments in the current subpass /must/ not exceed -- -- -- - #VUID-vkCmdDrawMeshTasksEXT-primitivesGeneratedQueryWithNonZeroStreams-07481# @@ -2737,7 +3279,7 @@ foreign import ccall -- @VK_NV_framebuffer_mixed_samples@ extension is enabled, and if -- current subpass has a depth\/stencil attachment and depth test, -- stencil test, or depth bounds test are enabled in the currently --- bound pipeline state, then the current @rasterizationSamples@ must +-- bound pipeline state, then the current @rasterizationSamples@ /must/ -- be the same as the sample count of the depth\/stencil attachment -- -- - #VUID-vkCmdDrawMeshTasksEXT-coverageToColorEnable-07490# If the @@ -2768,7 +3310,7 @@ foreign import ccall -- states enabled, the current coverage reduction mode -- @coverageReductionMode@, then the current @rasterizationSamples@, -- and the sample counts for the color and depth\/stencil attachments --- (if the subpass has them) must be a valid combination returned by +-- (if the subpass has them) /must/ be a valid combination returned by -- 'Vulkan.Extensions.VK_NV_coverage_reduction_mode.getPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV' -- -- - #VUID-vkCmdDrawMeshTasksEXT-viewportCount-07492# If the bound @@ -2856,7 +3398,7 @@ foreign import ccall -- -- feature /must/ be enabled and -- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@strictLines@ --- must be VK_TRUE +-- /must/ be 'Vulkan.Core10.FundamentalTypes.TRUE' -- -- - #VUID-vkCmdDrawMeshTasksEXT-conservativePointAndLineRasterization-07499# -- If the bound graphics pipeline state was created with the @@ -2883,7 +3425,15 @@ foreign import ccall -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT', -- then -- --- must not be active +-- /must/ not be active +-- +-- - #VUID-vkCmdDrawMeshTasksEXT-None-08877# If the bound graphics +-- pipeline state was created with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT' +-- dynamic state +-- 'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT' +-- /must/ have been called in the current command buffer prior to this +-- drawing command -- -- - #VUID-vkCmdDrawMeshTasksEXT-None-07850# If dynamic state was -- inherited from @@ -2894,7 +3444,7 @@ foreign import ccall -- - #VUID-vkCmdDrawMeshTasksEXT-None-08684# If there is no bound -- graphics pipeline, -- 'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/ --- have been called on the current command buffer with @pStages@ with +-- have been called in the current command buffer with @pStages@ with -- an element of -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT' -- @@ -2903,7 +3453,7 @@ foreign import ccall -- -- feature is enabled, -- 'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/ --- have been called on the current command buffer with @pStages@ with +-- have been called in the current command buffer with @pStages@ with -- an element of -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT' -- @@ -2912,7 +3462,7 @@ foreign import ccall -- -- feature is enabled, -- 'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/ --- have been called on the current command buffer with @pStages@ with +-- have been called in the current command buffer with @pStages@ with -- an element of -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT' -- @@ -2921,14 +3471,14 @@ foreign import ccall -- -- feature is enabled, -- 'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/ --- have been called on the current command buffer with @pStages@ with +-- have been called in the current command buffer with @pStages@ with -- an element of -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT' -- -- - #VUID-vkCmdDrawMeshTasksEXT-None-08688# If there is no bound -- graphics pipeline, -- 'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/ --- have been called on the current command buffer with @pStages@ with +-- have been called in the current command buffer with @pStages@ with -- an element of -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' -- @@ -2937,7 +3487,7 @@ foreign import ccall -- -- feature is enabled, -- 'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/ --- have been called on the current command buffer with @pStages@ with +-- have been called in the current command buffer with @pStages@ with -- an element of -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT' -- @@ -2946,7 +3496,7 @@ foreign import ccall -- -- feature is enabled, -- 'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/ --- have been called on the current command buffer with @pStages@ with +-- have been called in the current command buffer with @pStages@ with -- an element of -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT' -- @@ -2958,8 +3508,8 @@ foreign import ccall -- features is enabled, one of the -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT' or -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT' --- stages must have a valid 'Vulkan.Extensions.Handles.ShaderEXT' --- bound, and the other must have no +-- stages /must/ have a valid 'Vulkan.Extensions.Handles.ShaderEXT' +-- bound, and the other /must/ have no -- 'Vulkan.Extensions.Handles.ShaderEXT' bound -- -- - #VUID-vkCmdDrawMeshTasksEXT-None-08694# If there is no bound @@ -3024,6 +3574,37 @@ foreign import ccall -- 'Vulkan.Extensions.VK_EXT_shader_object.createShadersEXT' call -- /must/ not have any 'Vulkan.Extensions.Handles.ShaderEXT' bound -- +-- - #VUID-vkCmdDrawMeshTasksEXT-None-08878# All bound graphics shader +-- objects /must/ have been created with identical or identically +-- defined push constant ranges +-- +-- - #VUID-vkCmdDrawMeshTasksEXT-None-08879# All bound graphics shader +-- objects /must/ have been created with identical or identically +-- defined arrays of descriptor set layouts +-- +-- - #VUID-vkCmdDrawMeshTasksEXT-colorAttachmentCount-09372# If the +-- current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' +-- and a +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ +-- equal to @1@, a color attachment with a resolve mode of +-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID', +-- and a fragment shader is bound, it /must/ not declare the +-- @DepthReplacing@ or @StencilRefReplacingEXT@ execution modes +-- +-- - #VUID-vkCmdDrawMeshTasksEXT-None-08880# If a shader object is bound +-- to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage and the +-- +-- feature is enabled on the device, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE' +-- 'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT' +-- /must/ have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdDrawMeshTasksEXT-pDynamicStates-08715# If the bound -- graphics pipeline state includes a fragment shader stage, was -- created with @@ -3048,6 +3629,32 @@ foreign import ccall -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilWriteMask' /must/ -- be @0@ -- +-- - #VUID-vkCmdDrawMeshTasksEXT-None-09116# If a shader object is bound +-- to any graphics stage or the currently bound graphics pipeline was +-- created with +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_MASK_EXT', +-- and the format of any color attachment is +-- 'Vulkan.Core10.Enums.Format.FORMAT_E5B9G9R9_UFLOAT_PACK32', the +-- corresponding element of the @pColorWriteMasks@ parameter of +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorWriteMaskEXT' +-- /must/ either include all of +-- 'Vulkan.Core10.Enums.ColorComponentFlagBits.COLOR_COMPONENT_R_BIT', +-- 'Vulkan.Core10.Enums.ColorComponentFlagBits.COLOR_COMPONENT_G_BIT', +-- and +-- 'Vulkan.Core10.Enums.ColorComponentFlagBits.COLOR_COMPONENT_B_BIT', +-- or none of them +-- +-- - #VUID-vkCmdDrawMeshTasksEXT-maxFragmentDualSrcAttachments-09239# If +-- +-- is enabled for any attachment where either the source or destination +-- blend factors for that attachment +-- , +-- the maximum value of @Location@ for any output attachment +-- +-- in the @Fragment@ @Execution@ @Model@ executed by this command +-- /must/ be less than +-- +-- -- - #VUID-vkCmdDrawMeshTasksEXT-stage-06480# The bound graphics pipeline -- /must/ not have been created with the -- 'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo'::@stage@ @@ -3292,6 +3899,16 @@ foreign import ccall -- /must/ contain -- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT' -- +-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-None-02693# If the +-- +-- extension is not enabled and any 'Vulkan.Core10.Handles.ImageView' +-- is sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a +-- result of this command, it /must/ not have a +-- 'Vulkan.Core10.Enums.ImageViewType.ImageViewType' of +-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_3D', +-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE', or +-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE_ARRAY' +-- -- - #VUID-vkCmdDrawMeshTasksIndirectEXT-filterCubic-02694# Any -- 'Vulkan.Core10.Handles.ImageView' being sampled with -- 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a result of this @@ -3317,6 +3934,34 @@ foreign import ccall -- returned by -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceImageFormatProperties2' -- +-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-cubicRangeClamp-09212# If the +-- +-- feature is not enabled, then any 'Vulkan.Core10.Handles.ImageView' +-- being sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as +-- a result of this command +-- +-- [/must/ not have a 'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo'] +-- @reductionMode@ equal to +-- 'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM' +-- +-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-reductionMode-09213# Any +-- 'Vulkan.Core10.Handles.ImageView' being sampled with a +-- 'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo'::@reductionMode@ +-- equal to +-- 'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM' +-- as a result of this command /must/ sample with +-- 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' +-- +-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-selectableCubicWeights-09214# If +-- the +-- +-- feature is not enabled, then any 'Vulkan.Core10.Handles.ImageView' +-- being sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as +-- a result of this command /must/ have +-- 'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.SamplerCubicWeightsCreateInfoQCOM'::@cubicWeights@ +-- equal to +-- 'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM' +-- -- - #VUID-vkCmdDrawMeshTasksIndirectEXT-flags-02696# Any -- 'Vulkan.Core10.Handles.Image' created with a -- 'Vulkan.Core10.Image.ImageCreateInfo'::@flags@ containing @@ -3358,11 +4003,9 @@ foreign import ccall -- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT' -- -- - #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08600# For each set /n/ --- that is statically used by the 'Vulkan.Core10.Handles.Pipeline' --- bound to the pipeline bind point used by this command, or by any of --- the 'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages --- corresponding to the pipeline bind point used by this command, a --- descriptor set /must/ have been bound to /n/ at the same pipeline +-- that is statically used by +-- , +-- a descriptor set /must/ have been bound to /n/ at the same pipeline -- bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is -- compatible for set /n/, with the -- 'Vulkan.Core10.Handles.PipelineLayout' or @@ -3372,13 +4015,10 @@ foreign import ccall -- -- -- - #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08601# For each push --- constant that is statically used by the --- 'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point --- used by this command, or by any of the --- 'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages --- corresponding to the pipeline bind point used by this command, a --- push constant value /must/ have been set for the same pipeline bind --- point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is +-- constant that is statically used by +-- , +-- a push constant value /must/ have been set for the same pipeline +-- bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is -- compatible for push constants, with the -- 'Vulkan.Core10.Handles.PipelineLayout' or -- 'Vulkan.Core10.Handles.DescriptorSetLayout' and @@ -3390,12 +4030,10 @@ foreign import ccall -- - #VUID-vkCmdDrawMeshTasksIndirectEXT-maintenance4-08602# If the -- -- feature is not enabled, then for each push constant that is --- statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to the --- pipeline bind point used by this command, or by any of the --- 'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages --- corresponding to the pipeline bind point used by this command, a --- push constant value /must/ have been set for the same pipeline bind --- point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is +-- statically used by +-- , +-- a push constant value /must/ have been set for the same pipeline +-- bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is -- compatible for push constants, with the -- 'Vulkan.Core10.Handles.PipelineLayout' or -- 'Vulkan.Core10.Handles.DescriptorSetLayout' and @@ -3558,34 +4196,25 @@ foreign import ccall -- buffer as specified in the descriptor set bound to the same pipeline -- bind point -- --- - #VUID-vkCmdDrawMeshTasksIndirectEXT-commandBuffer-08614# If +-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-commandBuffer-02707# If -- @commandBuffer@ is an unprotected command buffer and -- --- is not supported, any resource accessed by the --- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind --- point used by this command or any --- 'Vulkan.Extensions.Handles.ShaderEXT' object bound to a stage --- corresponding to the pipeline bind point used by this command /must/ --- not be a protected resource --- --- - #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08615# If the --- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind --- point used by this command or any --- 'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding --- to the pipeline bind point used by this command accesses a --- 'Vulkan.Core10.Handles.Sampler' or 'Vulkan.Core10.Handles.ImageView' --- object that enables +-- is not supported, any resource accessed by +-- +-- /must/ not be a protected resource +-- +-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-None-06550# If +-- +-- accesses a 'Vulkan.Core10.Handles.Sampler' or +-- 'Vulkan.Core10.Handles.ImageView' object that enables -- , -- that object /must/ only be used with @OpImageSample*@ or -- @OpImageSparseSample*@ instructions -- --- - #VUID-vkCmdDrawMeshTasksIndirectEXT-ConstOffset-08616# If the --- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind --- point used by this command or any --- 'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding --- to the pipeline bind point used by this command accesses a --- 'Vulkan.Core10.Handles.Sampler' or 'Vulkan.Core10.Handles.ImageView' --- object that enables +-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-ConstOffset-06551# If +-- +-- accesses a 'Vulkan.Core10.Handles.Sampler' or +-- 'Vulkan.Core10.Handles.ImageView' object that enables -- , -- that object /must/ not use the @ConstOffset@ and @Offset@ operands -- @@ -3597,17 +4226,23 @@ foreign import ccall -- -- - #VUID-vkCmdDrawMeshTasksIndirectEXT-format-07753# If a -- 'Vulkan.Core10.Handles.ImageView' is accessed as a result of this --- command, then the image view’s @format@ /must/ match the numeric --- format from the @Sampled@ @Type@ operand of the @OpTypeImage@ as --- described in the SPIR-V Sampled Type column of the --- --- table --- --- - #VUID-vkCmdDrawMeshTasksIndirectEXT-None-04115# If a --- 'Vulkan.Core10.Handles.ImageView' is accessed using @OpImageWrite@ --- as a result of this command, then the @Type@ of the @Texel@ operand --- of that instruction /must/ have at least as many components as the --- image view’s format +-- command, then the +-- +-- of the image view’s @format@ and the @Sampled@ @Type@ operand of the +-- @OpTypeImage@ /must/ match +-- +-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-OpImageWrite-08795# If a +-- 'Vulkan.Core10.Handles.ImageView' created with a format other than +-- 'Vulkan.Core10.Enums.Format.FORMAT_A8_UNORM_KHR' is accessed using +-- @OpImageWrite@ as a result of this command, then the @Type@ of the +-- @Texel@ operand of that instruction /must/ have at least as many +-- components as the image view’s format +-- +-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-OpImageWrite-08796# If a +-- 'Vulkan.Core10.Handles.ImageView' created with the format +-- 'Vulkan.Core10.Enums.Format.FORMAT_A8_UNORM_KHR' is accessed using +-- @OpImageWrite@ as a result of this command, then the @Type@ of the +-- @Texel@ operand of that instruction /must/ have four components -- -- - #VUID-vkCmdDrawMeshTasksIndirectEXT-OpImageWrite-04469# If a -- 'Vulkan.Core10.Handles.BufferView' is accessed using @OpImageWrite@ @@ -3711,6 +4346,8 @@ foreign import ccall -- -- - #VUID-vkCmdDrawMeshTasksIndirectEXT-OpImageWeightedSampleQCOM-06977# -- If @OpImageWeightedSampleQCOM@, @OpImageBoxFilterQCOM@, +-- @OpImageBlockMatchWindowSSDQCOM@, @OpImageBlockMatchWindowSADQCOM@, +-- @OpImageBlockMatchGatherSSDQCOM@, @OpImageBlockMatchGatherSADQCOM@, -- @OpImageBlockMatchSSDQCOM@, or @OpImageBlockMatchSADQCOM@ uses a -- 'Vulkan.Core10.Handles.Sampler' as a result of this command, then -- the sampler /must/ have been created with @@ -3718,12 +4355,36 @@ foreign import ccall -- -- - #VUID-vkCmdDrawMeshTasksIndirectEXT-OpImageWeightedSampleQCOM-06978# -- If any command other than @OpImageWeightedSampleQCOM@, --- @OpImageBoxFilterQCOM@, @OpImageBlockMatchSSDQCOM@, or +-- @OpImageBoxFilterQCOM@, @OpImageBlockMatchWindowSSDQCOM@, +-- @OpImageBlockMatchWindowSADQCOM@, @OpImageBlockMatchGatherSSDQCOM@, +-- @OpImageBlockMatchGatherSADQCOM@, @OpImageBlockMatchSSDQCOM@, or -- @OpImageBlockMatchSADQCOM@ uses a 'Vulkan.Core10.Handles.Sampler' as -- a result of this command, then the sampler /must/ not have been -- created with -- 'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM' -- +-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-OpImageBlockMatchWindow-09215# +-- If a @OpImageBlockMatchWindow*QCOM@ or +-- @OpImageBlockMatchGather*QCOM@ instruction is used to read from an +-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then +-- the image view’s +-- +-- /must/ contain +-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM' +-- +-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-OpImageBlockMatchWindow-09216# +-- If a @OpImageBlockMatchWindow*QCOM@ or +-- @OpImageBlockMatchGather*QCOM@ instruction is used to read from an +-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then +-- the image view’s format /must/ be a single-component format. +-- +-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-OpImageBlockMatchWindow-09217# +-- If a @OpImageBlockMatchWindow*QCOM@ or +-- @OpImageBlockMatchGather*QCOM@ read from a reference image as result +-- of this command, then the specified reference coordinates /must/ not +-- fail +-- +-- -- - #VUID-vkCmdDrawMeshTasksIndirectEXT-None-07288# Any shader -- invocation executed by this command /must/ -- @@ -3768,15 +4429,89 @@ foreign import ccall -- not be written in any way other than as an attachment by this -- command -- --- - #VUID-vkCmdDrawMeshTasksIndirectEXT-None-06538# If any recorded --- command in the current subpass will write to an image subresource as --- an attachment, this command /must/ not read from the memory backing --- that image subresource in any other way than as an attachment +-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-None-09000# If a color +-- attachment is written by any prior command in this subpass or by the +-- load, store, or resolve operations for this subpass, it is not in +-- the +-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT' +-- image layout, and either: +-- +-- - the +-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT' +-- is set on the currently bound pipeline or +-- +-- - the last call to +-- 'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT' +-- included +-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT' +-- and +-- +-- - there is no currently bound graphics pipeline or +-- +-- - the currently bound graphics pipeline was created with +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT' +-- it /must/ not be accessed in any way other than as an +-- attachment by this command +-- +-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-None-09001# If a depth +-- attachment is written by any prior command in this subpass or by the +-- load, store, or resolve operations for this subpass, it is not in +-- the +-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT' +-- image layout, and either: +-- +-- - the +-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT' +-- is set on the currently bound pipeline or +-- +-- - the last call to +-- 'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT' +-- included +-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_DEPTH_BIT' +-- and +-- +-- - there is no currently bound graphics pipeline or +-- +-- - the currently bound graphics pipeline was created with +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT' +-- it /must/ not be accessed in any way other than as an +-- attachment by this command -- --- - #VUID-vkCmdDrawMeshTasksIndirectEXT-None-06539# If any recorded --- command in the current subpass will read from an image subresource --- used as an attachment in any way other than as an attachment, this --- command /must/ not write to that image subresource as an attachment +-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-None-09002# If a stencil +-- attachment is written by any prior command in this subpass or by the +-- load, store, or resolve operations for this subpass, it is not in +-- the +-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT' +-- image layout, and either: +-- +-- - the +-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT' +-- is set on the currently bound pipeline or +-- +-- - the last call to +-- 'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT' +-- included +-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT' +-- and +-- +-- - there is no currently bound graphics pipeline or +-- +-- - the currently bound graphics pipeline was created with +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT' +-- it /must/ not be accessed in any way other than as an +-- attachment by this command +-- +-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-None-09003# If an attachment is +-- written by any prior command in this subpass or by the load, store, +-- or resolve operations for this subpass, it /must/ not be accessed in +-- any way other than as an attachment, storage image, or sampled image +-- by this command +-- +-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-None-06539# If any previously +-- recorded command in the current subpass accessed an image +-- subresource used as an attachment in this subpass in any way other +-- than as an attachment, this command /must/ not write to that image +-- subresource as an attachment -- -- - #VUID-vkCmdDrawMeshTasksIndirectEXT-None-06886# If the current -- render pass instance uses a depth\/stencil attachment with a @@ -3846,18 +4581,23 @@ foreign import ccall -- graphics pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS' dynamic -- state enabled then --- 'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBias' /must/ have --- been called in the current command buffer prior to this drawing --- command +-- 'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBias' or +-- 'Vulkan.Extensions.VK_EXT_depth_bias_control.cmdSetDepthBias2EXT' +-- /must/ have been called in the current command buffer prior to this +-- drawing command -- -- - #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08620# If a shader object -- is bound to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnable' -- in the current command buffer set @depthBiasEnable@ to -- 'Vulkan.Core10.FundamentalTypes.TRUE', --- 'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBias' /must/ have --- been called in the current command buffer prior to this drawing --- command +-- 'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBias' or +-- 'Vulkan.Extensions.VK_EXT_depth_bias_control.cmdSetDepthBias2EXT' +-- /must/ have been called in the current command buffer prior to this +-- drawing command -- -- - #VUID-vkCmdDrawMeshTasksIndirectEXT-None-07835# If the bound -- graphics pipeline state was created with the @@ -3880,7 +4620,7 @@ foreign import ccall -- the most recent call to -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT' -- in the current command buffer set the same element of --- @pColorBlendEquations@ to an +-- @pColorBlendEquations@ to a -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.ColorBlendEquationEXT' -- structure with any 'Vulkan.Core10.Enums.BlendFactor.BlendFactor' -- member with a value of @@ -3895,16 +4635,20 @@ foreign import ccall -- - #VUID-vkCmdDrawMeshTasksIndirectEXT-None-07836# If the bound -- graphics pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS' --- dynamic state enabled then +-- dynamic state enabled, and if the current @depthBoundsTestEnable@ +-- state is 'Vulkan.Core10.FundamentalTypes.TRUE', then -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBounds' /must/ have -- been called in the current command buffer prior to this drawing -- command -- -- - #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08622# If a shader object -- is bound to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable' -- in the current command buffer set @depthBoundsTestEnable@ to --- 'Vulkan.Core10.FundamentalTypes.TRUE', +-- 'Vulkan.Core10.FundamentalTypes.TRUE', then -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBounds' /must/ have -- been called in the current command buffer prior to this drawing -- command @@ -3912,7 +4656,8 @@ foreign import ccall -- - #VUID-vkCmdDrawMeshTasksIndirectEXT-None-07837# If the bound -- graphics pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_COMPARE_MASK' --- dynamic state enabled then +-- dynamic state enabled, and if the current @stencilTestEnable@ state +-- is 'Vulkan.Core10.FundamentalTypes.TRUE', then -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilCompareMask' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -3929,7 +4674,8 @@ foreign import ccall -- - #VUID-vkCmdDrawMeshTasksIndirectEXT-None-07838# If the bound -- graphics pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_WRITE_MASK' --- dynamic state enabled then +-- dynamic state enabled, and if the current @stencilTestEnable@ state +-- is 'Vulkan.Core10.FundamentalTypes.TRUE', then -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilWriteMask' /must/ -- have been called in the current command buffer prior to this drawing -- command @@ -3946,7 +4692,8 @@ foreign import ccall -- - #VUID-vkCmdDrawMeshTasksIndirectEXT-None-07839# If the bound -- graphics pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_REFERENCE' --- dynamic state enabled then +-- dynamic state enabled, and if the current @stencilTestEnable@ state +-- is 'Vulkan.Core10.FundamentalTypes.TRUE', then -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilReference' /must/ -- have been called in the current command buffer prior to this drawing -- command @@ -3986,7 +4733,10 @@ foreign import ccall -- is bound to any graphics stage, and the most recent call to -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT' -- in the current command buffer set @sampleLocationsEnable@ to --- 'Vulkan.Core10.FundamentalTypes.TRUE', +-- 'Vulkan.Core10.FundamentalTypes.TRUE', and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -4010,7 +4760,10 @@ foreign import ccall -- drawing command -- -- - #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08627# If a shader object --- is bound to any graphics stage, +-- is bound to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetCullMode' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -4024,7 +4777,10 @@ foreign import ccall -- drawing command -- -- - #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08628# If a shader object --- is bound to any graphics stage, +-- is bound to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetFrontFace' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -4038,7 +4794,10 @@ foreign import ccall -- drawing command -- -- - #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08629# If a shader object --- is bound to any graphics stage, +-- is bound to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -4052,7 +4811,10 @@ foreign import ccall -- drawing command -- -- - #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08630# If a shader object --- is bound to any graphics stage, +-- is bound to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -4067,9 +4829,12 @@ foreign import ccall -- -- - #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08631# If a shader object -- is bound to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable' -- in the current command buffer set @depthTestEnable@ to --- 'Vulkan.Core10.FundamentalTypes.TRUE', +-- 'Vulkan.Core10.FundamentalTypes.TRUE', then -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthCompareOp' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -4085,7 +4850,10 @@ foreign import ccall -- - #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08632# If a shader object -- is bound to any graphics stage, and the -- --- feature is enabled, the +-- feature is enabled, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then the -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -4205,6 +4973,13 @@ foreign import ccall -- the last call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- +-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-None-09232# If a shader object +-- is bound to any graphics stage, and the @VK_NV_clip_space_w_scaling@ +-- extension is enabled on the device, then +-- 'Vulkan.Extensions.VK_NV_clip_space_w_scaling.cmdSetViewportWScalingNV' +-- must have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08636# If a shader object -- is bound to any graphics stage, and the @VK_NV_clip_space_w_scaling@ -- extension is enabled on the device, then the @viewportCount@ @@ -4238,18 +5013,42 @@ foreign import ccall -- the last call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- --- - #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08637# If a shader object --- is bound to any graphics stage, and the +-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-shadingRateImage-09233# If the -- --- feature is enabled on the device, then the @viewportCount@ parameter --- in the last call to --- 'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetViewportShadingRatePaletteNV' --- /must/ be greater than or equal to the @viewportCount@ parameter in --- the last call to --- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' --- --- - #VUID-vkCmdDrawMeshTasksIndirectEXT-VkPipelineVieportCreateInfo-04141# --- If the bound graphics pipeline state was created with the +-- feature is enabled, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set rasterizerDiscardEnable to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then +-- 'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetCoarseSampleOrderNV' +-- must have been called in the current command buffer prior to this +-- drawing command +-- +-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-shadingRateImage-09234# If a +-- shader object is bound to any graphics stage, and the +-- +-- feature is enabled on the device, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set rasterizerDiscardEnable to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetShadingRateImageEnableNV' +-- in the current command buffer set shadingRateImageEnable to +-- 'Vulkan.Core10.FundamentalTypes.TRUE', then +-- 'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetViewportShadingRatePaletteNV' +-- must have been called in the current command buffer prior to this +-- drawing command +-- +-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08637# If a shader object +-- is bound to any graphics stage, and the +-- +-- feature is enabled on the device, then the @viewportCount@ parameter +-- in the last call to +-- 'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetViewportShadingRatePaletteNV' +-- /must/ be greater than or equal to the @viewportCount@ parameter in +-- the last call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' +-- +-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-VkPipelineVieportCreateInfo-04141# +-- If the bound graphics pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT' -- dynamic state enabled and a -- 'Vulkan.Extensions.VK_NV_viewport_swizzle.PipelineViewportSwizzleStateCreateInfoNV' @@ -4290,6 +5089,14 @@ foreign import ccall -- /must/ have been called in the current command buffer prior to this -- drawing command -- +-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-exclusiveScissor-09235# If a +-- shader object is bound to any graphics stage, and the +-- +-- feature is enabled, then +-- 'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorEnableNV' +-- must have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08638# If a shader object -- is bound to any graphics stage, and the most recent call to -- 'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorEnableNV' @@ -4341,7 +5148,9 @@ foreign import ccall -- 'Vulkan.Core10.Enums.LogicOp.LogicOp' value -- -- - #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08641# If a shader object --- is bound to any graphics stage, and the +-- is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage, and the -- -- feature is enabled on the device, and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' @@ -4427,6 +5236,11 @@ foreign import ccall -- to be the same as the number of samples for the current render pass -- color and\/or depth\/stencil attachments -- +-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08876# If a shader object +-- is bound to any graphics stage, the current render pass instance +-- /must/ have been begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' +-- -- - #VUID-vkCmdDrawMeshTasksIndirectEXT-imageView-06172# If the current -- render pass instance was begun with -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', @@ -4499,8 +5313,11 @@ foreign import ccall -- equal to -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ -- --- - #VUID-vkCmdDrawMeshTasksIndirectEXT-colorAttachmentCount-06180# If --- the current render pass instance was begun with +-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-dynamicRenderingUnusedAttachments-08910# +-- If the +-- +-- feature is not enabled, and the current render pass instance was +-- begun with -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' -- and -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ @@ -4513,8 +5330,32 @@ foreign import ccall -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@ -- used to create the currently bound graphics pipeline -- --- - #VUID-vkCmdDrawMeshTasksIndirectEXT-colorAttachmentCount-07616# If --- the current render pass instance was begun with +-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-dynamicRenderingUnusedAttachments-08911# +-- If the +-- +-- feature is enabled, and the current render pass instance was begun +-- with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' +-- and +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ +-- greater than @0@, then each element of the +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@ +-- array with a @imageView@ not equal to +-- 'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created +-- with a 'Vulkan.Core10.Enums.Format.Format' equal to the +-- corresponding element of +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@ +-- used to create the currently bound graphics pipeline, or the +-- corresponding element of +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@, +-- if it exists, /must/ be +-- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' +-- +-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-dynamicRenderingUnusedAttachments-08912# +-- If the +-- +-- feature is not enabled, and the current render pass instance was +-- begun with -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' -- and -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ @@ -4527,6 +5368,132 @@ foreign import ccall -- used to create the currently bound pipeline equal to -- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' -- +-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-colorAttachmentCount-09362# If +-- the current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- with a +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ +-- equal to @1@, there is no shader object bound to any graphics stage, +-- and a color attachment with a resolve mode of +-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID', +-- each element of the +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@ +-- array with a @resolveImageView@ not equal to +-- 'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created +-- with an image created with a +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- value equal to the +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- value used to create the currently bound graphics pipeline +-- +-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-None-09363# If there is no +-- shader object bound to any graphics stage, the current render pass +-- instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' +-- and a +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ +-- equal to @1@, and a color attachment with a resolve mode of +-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID', +-- each element of the +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@ +-- array with a @imageView@ not equal to +-- 'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created +-- with an image created with a +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- value equal to the +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- value used to create the currently bound graphics pipeline +-- +-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-None-09364# If the current +-- render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- there is no shader object bound to any graphics stage, and the +-- currently bound graphics pipeline was created with a non-zero +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- value and with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT' +-- dynamic state enabled, then +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT' +-- /must/ have set the blend enable to +-- 'Vulkan.Core10.FundamentalTypes.FALSE' prior to this drawing command +-- +-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-None-09365# If the current +-- render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- there is no shader object bound to any graphics stage, and the +-- currently bound graphics pipeline was created with a non-zero +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- value and with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT' +-- dynamic state enabled, then +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT' +-- /must/ have set @rasterizationSamples@ to +-- 'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT' prior +-- to this drawing command +-- +-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-None-09366# If there is a shader +-- object bound to any graphics stage, and the current render pass +-- includes a color attachment that uses the +-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID' +-- resolve mode, then +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT' +-- /must/ have set blend enable to +-- 'Vulkan.Core10.FundamentalTypes.FALSE' prior to this drawing command +-- +-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-rasterizationSamples-09367# If +-- there is a shader object bound to any graphics stage, and the +-- current render pass includes a color attachment that uses the +-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID' +-- resolve mode, then +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT' +-- /must/ have set @rasterizationSamples@ to +-- 'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT' prior +-- to this drawing command +-- +-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-None-09368# If the current +-- render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- there is no shader object bound to any graphics stage, and the +-- currently bound graphics pipeline was created with a non-zero +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- value and with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR' +-- dynamic state enabled, then +-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR' +-- /must/ have set @pFragmentSize->width@ to @1@ prior to this drawing +-- command +-- +-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-None-09369# If the current +-- render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- there is no shader object bound to any graphics stage, and the +-- currently bound graphics pipeline was created with a non-zero +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- value and with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR' +-- dynamic state enabled, then +-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR' +-- /must/ have set @pFragmentSize->height@ to @1@ prior to this drawing +-- command +-- +-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-pFragmentSize-09370# If there is +-- a shader object bound to any graphics stage, and the current render +-- pass includes a color attachment that uses the +-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID' +-- resolve mode, then +-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR' +-- /must/ have set @pFragmentSize->width@ to @1@ prior to this drawing +-- command +-- +-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-pFragmentSize-09371# If there is +-- a shader object bound to any graphics stage, and the current render +-- pass includes a color attachment that uses the +-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID' +-- resolve mode, then +-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR' +-- /must/ have set @pFragmentSize->height@ to @1@ prior to this drawing +-- command +-- -- - #VUID-vkCmdDrawMeshTasksIndirectEXT-None-07749# If the bound -- graphics pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT' @@ -4538,7 +5505,9 @@ foreign import ccall -- - #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08646# If the -- -- feature is enabled on the device, and a shader object is bound to --- the fragment stage, and the most recent call to +-- the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage, and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' -- in the current command buffer set @rasterizerDiscardEnable@ to -- 'Vulkan.Core10.FundamentalTypes.FALSE', then @@ -4558,7 +5527,9 @@ foreign import ccall -- - #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08647# If the -- -- feature is enabled on the device, and a shader object is bound to --- the fragment stage, and the most recent call to +-- the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage, and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' -- in the current command buffer set @rasterizerDiscardEnable@ to -- 'Vulkan.Core10.FundamentalTypes.FALSE', then the @attachmentCount@ @@ -4584,6 +5555,17 @@ foreign import ccall -- /must/ have been called in the current command buffer prior to this -- drawing command -- +-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-rasterizerDiscardEnable-09236# +-- If the @VK_EXT_discard_rectangles@ extension is enabled, and a +-- shader object is bound to any graphics stage, and the most recent +-- call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then +-- 'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEXT' +-- /must/ have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08648# If the -- @VK_EXT_discard_rectangles@ extension is enabled, and a shader -- object is bound to any graphics stage, and the most recent call to @@ -4615,10 +5597,24 @@ foreign import ccall -- /must/ have been called in the current command buffer prior to this -- drawing command -- --- - #VUID-vkCmdDrawMeshTasksIndirectEXT-pDepthAttachment-06181# If the --- current render pass instance was begun with --- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' --- and +-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-dynamicRenderingUnusedAttachments-08913# +-- If the current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- the +-- +-- feature is not enabled, and +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@ +-- was 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@ +-- used to create the currently bound graphics pipeline /must/ be equal +-- to 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' +-- +-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-dynamicRenderingUnusedAttachments-08914# +-- If current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- the +-- +-- feature is not enabled, and -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@ -- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@ @@ -4626,20 +5622,39 @@ foreign import ccall -- to the 'Vulkan.Core10.Enums.Format.Format' used to create -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@ -- --- - #VUID-vkCmdDrawMeshTasksIndirectEXT-pDepthAttachment-07617# If the --- current render pass instance was begun with --- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' --- and +-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-dynamicRenderingUnusedAttachments-08915# +-- If the current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- the +-- +-- feature is enabled, -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@ --- was 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of +-- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the value of -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@ +-- used to create the currently bound graphics pipeline was not equal +-- to the 'Vulkan.Core10.Enums.Format.Format' used to create +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@, +-- the value of the format /must/ be +-- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' +-- +-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-dynamicRenderingUnusedAttachments-08916# +-- If the current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- the +-- +-- feature is not enabled, and +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@ +-- was 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@ -- used to create the currently bound graphics pipeline /must/ be equal -- to 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' -- --- - #VUID-vkCmdDrawMeshTasksIndirectEXT-pStencilAttachment-06182# If the --- current render pass instance was begun with --- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' --- and +-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-dynamicRenderingUnusedAttachments-08917# +-- If current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- the +-- +-- feature is not enabled, and -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@ -- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@ @@ -4647,15 +5662,20 @@ foreign import ccall -- to the 'Vulkan.Core10.Enums.Format.Format' used to create -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@ -- --- - #VUID-vkCmdDrawMeshTasksIndirectEXT-pStencilAttachment-07618# If the --- current render pass instance was begun with --- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' --- and +-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-dynamicRenderingUnusedAttachments-08918# +-- If the current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- the +-- +-- feature is enabled, -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@ --- was 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of +-- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the value of -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@ --- used to create the currently bound graphics pipeline /must/ be equal --- to 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' +-- used to create the currently bound graphics pipeline was not equal +-- to the 'Vulkan.Core10.Enums.Format.Format' used to create +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@, +-- the value of the format /must/ be +-- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' -- -- - #VUID-vkCmdDrawMeshTasksIndirectEXT-imageView-06183# If the current -- render pass instance was begun with @@ -4802,6 +5822,40 @@ foreign import ccall -- 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@renderPass@ -- equal to 'Vulkan.Core10.APIConstants.NULL_HANDLE' -- +-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-pColorAttachments-08963# If the +-- current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- there is a graphics pipeline bound with a fragment shader that +-- statically writes to a color attachment, the color write mask is not +-- zero, color writes are enabled, and the corresponding element of the +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments->imageView@ +-- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', then the +-- corresponding element of +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@ +-- used to create the pipeline /must/ not be +-- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' +-- +-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-pDepthAttachment-08964# If the +-- current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- there is a graphics pipeline bound, depth test is enabled, depth +-- write is enabled, and the +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@ +-- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', then the +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@ +-- used to create the pipeline /must/ not be +-- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' +-- +-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-pStencilAttachment-08965# If the +-- current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- there is a graphics pipeline bound, stencil test is enabled and the +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@ +-- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', then the +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@ +-- used to create the pipeline /must/ not be +-- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' +-- -- - #VUID-vkCmdDrawMeshTasksIndirectEXT-primitivesGeneratedQueryWithRasterizerDiscard-06708# -- If the -- @@ -4828,6 +5882,22 @@ foreign import ccall -- /must/ have been called in the current command buffer prior to this -- drawing command -- +-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-None-07620# If the bound +-- graphics pipeline state was created with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT' +-- dynamic state enabled then +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClampEnableEXT' +-- /must/ have been called in the current command buffer prior to this +-- drawing command +-- +-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-None-09237# If a shader object +-- is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT' +-- stage, then +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetTessellationDomainOriginEXT' +-- /must/ have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08650# If the -- -- feature is enabled, and a shader object is bound to any graphics @@ -4898,6 +5968,17 @@ foreign import ccall -- /must/ have been called in the current command buffer prior to this -- drawing command -- +-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-alphaToCoverageEnable-08919# If +-- the bound graphics pipeline state was created with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT' +-- dynamic state enabled, and @alphaToCoverageEnable@ was +-- 'Vulkan.Core10.FundamentalTypes.TRUE' in the last call to +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT', +-- then the +-- +-- /must/ contain a variable for the alpha @Component@ word in +-- @Location@ 0 at @Index@ 0 +-- -- - #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08654# If a shader object -- is bound to any graphics stage, and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' @@ -4907,6 +5988,16 @@ foreign import ccall -- /must/ have been called in the current command buffer prior to this -- drawing command -- +-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-alphaToCoverageEnable-08920# If +-- a shader object is bound to any graphics stage, and the most recent +-- call to +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT' +-- in the current command buffer set @alphaToCoverageEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.TRUE', then the +-- +-- /must/ contain a variable for the alpha @Component@ word in +-- @Location@ 0 at @Index@ 0 +-- -- - #VUID-vkCmdDrawMeshTasksIndirectEXT-None-07625# If the bound -- graphics pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT' @@ -4936,7 +6027,8 @@ foreign import ccall -- -- - #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08656# If the -- --- feature is enabled, and a shader object is bound to any graphics +-- feature is enabled, and a shader object is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' -- stage, and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' -- in the current command buffer set @rasterizerDiscardEnable@ to @@ -4954,7 +6046,9 @@ foreign import ccall -- drawing command -- -- - #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08657# If a shader object --- is bound to any graphics stage, and the most recent call to +-- is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage, and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' -- in the current command buffer set @rasterizerDiscardEnable@ to -- 'Vulkan.Core10.FundamentalTypes.FALSE', then @@ -4991,7 +6085,9 @@ foreign import ccall -- drawing command -- -- - #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08659# If a shader object --- is bound to any graphics stage, and the most recent call to +-- is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage, and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' -- in the current command buffer set @rasterizerDiscardEnable@ to -- 'Vulkan.Core10.FundamentalTypes.FALSE', then @@ -5009,7 +6105,8 @@ foreign import ccall -- -- - #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08660# If the -- --- feature is enabled, and a shader object is bound to the geometry +-- feature is enabled, and a shader object is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT' -- stage, then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationStreamEXT' -- /must/ have been called in the current command buffer prior to this @@ -5109,7 +6206,9 @@ foreign import ccall -- -- - #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08665# If the -- @VK_EXT_provoking_vertex@ extension is enabled, and a shader object --- is bound to the vertex stage, then +-- is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT' +-- stage, then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetProvokingVertexModeEXT' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -5218,7 +6317,7 @@ foreign import ccall -- stage, then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClipNegativeOneToOneEXT' -- /must/ have been called in the current command buffer prior to this --- drawing command ifdef::VK_EXT_extended_dynamic_state3 +-- drawing command -- -- - #VUID-vkCmdDrawMeshTasksIndirectEXT-None-07640# If the bound -- graphics pipeline state was created with the @@ -5226,7 +6325,7 @@ foreign import ccall -- dynamic state enabled then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetViewportWScalingEnableNV' -- /must/ have been called in the current command buffer prior to this --- drawing command endif::VK_EXT_extended_dynamic_state3 +-- drawing command -- -- - #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08674# If the -- @VK_NV_clip_space_w_scaling@ extension is enabled, and a shader @@ -5260,7 +6359,12 @@ foreign import ccall -- -- - #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08676# If the -- @VK_NV_fragment_coverage_to_color@ extension is enabled, and a --- shader object is bound to any graphics stage, then +-- shader object is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -5275,8 +6379,9 @@ foreign import ccall -- -- - #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08677# If the -- @VK_NV_fragment_coverage_to_color@ extension is enabled, and a --- shader object is bound to any graphics stage, and the most recent --- call to +-- shader object is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage, and the most recent call to -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV' -- in the current command buffer set @coverageToColorEnable@ to -- 'Vulkan.Core10.FundamentalTypes.TRUE', then @@ -5294,7 +6399,10 @@ foreign import ccall -- -- - #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08678# If the -- @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader --- object is bound to any graphics stage, then +-- object is bound to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationModeNV' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -5309,7 +6417,15 @@ foreign import ccall -- -- - #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08679# If the -- @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader --- object is bound to any graphics stage, then +-- object is bound to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationModeNV' +-- in the current command buffer set coverageModulationMode to any +-- value other than +-- 'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.COVERAGE_MODULATION_MODE_NONE_NV', +-- then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -5325,6 +6441,9 @@ foreign import ccall -- - #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08680# If the -- @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader -- object is bound to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV' -- in the current command buffer set @coverageModulationTableEnable@ to -- 'Vulkan.Core10.FundamentalTypes.TRUE', then @@ -5340,10 +6459,26 @@ foreign import ccall -- /must/ have been called in the current command buffer prior to this -- drawing command -- +-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-pipelineFragmentShadingRate-09238# +-- If the +-- +-- feature is enabled, and a shader object is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set rasterizerDiscardEnable to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then +-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR' +-- must have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08681# If the -- -- feature is enabled, and a shader object is bound to any graphics --- stage, then +-- stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetShadingRateImageEnableNV' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -5353,13 +6488,16 @@ foreign import ccall -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV' -- dynamic state enabled then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRepresentativeFragmentTestEnableNV' --- must have been called in the current command buffer prior to this +-- /must/ have been called in the current command buffer prior to this -- drawing command -- -- - #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08682# If the -- -- feature is enabled, and a shader object is bound to any graphics --- stage, then +-- stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRepresentativeFragmentTestEnableNV' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -5375,7 +6513,10 @@ foreign import ccall -- - #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08683# If the -- -- feature is enabled, and a shader object is bound to any graphics --- stage, then +-- stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageReductionModeNV' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -5424,18 +6565,29 @@ foreign import ccall -- in the last call to -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT' -- --- - #VUID-vkCmdDrawMeshTasksIndirectEXT-multisampledRenderToSingleSampled-07475# --- If the bound graphics pipeline state was created with the +-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-rasterizationSamples-07474# If +-- the bound graphics pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT' --- state enabled, and none of the @VK_AMD_mixed_attachment_samples@ --- extension, @VK_NV_framebuffer_mixed_samples@ extension, or the --- --- feature is enabled, then the @rasterizationSamples@ in the last call --- to +-- state enabled, and neither the @VK_AMD_mixed_attachment_samples@ nor +-- the @VK_NV_framebuffer_mixed_samples@ extensions are enabled, then +-- the @rasterizationSamples@ in the last call to -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT' -- /must/ be the same as the current subpass color and\/or -- depth\/stencil attachments -- +-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-None-09211# If the bound +-- graphics pipeline state was created with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT' +-- state enabled, or a shader object is bound to any graphics stage, +-- and the current render pass instance includes a +-- 'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT' +-- structure with @multisampledRenderToSingleSampledEnable@ equal to +-- 'Vulkan.Core10.FundamentalTypes.TRUE', then the +-- @rasterizationSamples@ in the last call to +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT' +-- /must/ be the same as the @rasterizationSamples@ member of that +-- structure +-- -- - #VUID-vkCmdDrawMeshTasksIndirectEXT-firstAttachment-07476# If the -- bound graphics pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT' @@ -5494,7 +6646,7 @@ foreign import ccall -- and -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendAdvancedEXT' -- have enabled advanced blending, then the number of active color --- attachments in the current subpass must not exceed +-- attachments in the current subpass /must/ not exceed -- -- -- - #VUID-vkCmdDrawMeshTasksIndirectEXT-primitivesGeneratedQueryWithNonZeroStreams-07481# @@ -5656,7 +6808,7 @@ foreign import ccall -- the @VK_NV_framebuffer_mixed_samples@ extension is enabled, and if -- current subpass has a depth\/stencil attachment and depth test, -- stencil test, or depth bounds test are enabled in the currently --- bound pipeline state, then the current @rasterizationSamples@ must +-- bound pipeline state, then the current @rasterizationSamples@ /must/ -- be the same as the sample count of the depth\/stencil attachment -- -- - #VUID-vkCmdDrawMeshTasksIndirectEXT-coverageToColorEnable-07490# If @@ -5687,7 +6839,7 @@ foreign import ccall -- states enabled, the current coverage reduction mode -- @coverageReductionMode@, then the current @rasterizationSamples@, -- and the sample counts for the color and depth\/stencil attachments --- (if the subpass has them) must be a valid combination returned by +-- (if the subpass has them) /must/ be a valid combination returned by -- 'Vulkan.Extensions.VK_NV_coverage_reduction_mode.getPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV' -- -- - #VUID-vkCmdDrawMeshTasksIndirectEXT-viewportCount-07492# If the @@ -5775,7 +6927,7 @@ foreign import ccall -- -- feature /must/ be enabled and -- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@strictLines@ --- must be VK_TRUE +-- /must/ be 'Vulkan.Core10.FundamentalTypes.TRUE' -- -- - #VUID-vkCmdDrawMeshTasksIndirectEXT-conservativePointAndLineRasterization-07499# -- If the bound graphics pipeline state was created with the @@ -5802,7 +6954,15 @@ foreign import ccall -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT', -- then -- --- must not be active +-- /must/ not be active +-- +-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08877# If the bound +-- graphics pipeline state was created with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT' +-- dynamic state +-- 'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT' +-- /must/ have been called in the current command buffer prior to this +-- drawing command -- -- - #VUID-vkCmdDrawMeshTasksIndirectEXT-None-07850# If dynamic state was -- inherited from @@ -5813,7 +6973,7 @@ foreign import ccall -- - #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08684# If there is no bound -- graphics pipeline, -- 'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/ --- have been called on the current command buffer with @pStages@ with +-- have been called in the current command buffer with @pStages@ with -- an element of -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT' -- @@ -5822,7 +6982,7 @@ foreign import ccall -- -- feature is enabled, -- 'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/ --- have been called on the current command buffer with @pStages@ with +-- have been called in the current command buffer with @pStages@ with -- an element of -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT' -- @@ -5831,7 +6991,7 @@ foreign import ccall -- -- feature is enabled, -- 'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/ --- have been called on the current command buffer with @pStages@ with +-- have been called in the current command buffer with @pStages@ with -- an element of -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT' -- @@ -5840,14 +7000,14 @@ foreign import ccall -- -- feature is enabled, -- 'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/ --- have been called on the current command buffer with @pStages@ with +-- have been called in the current command buffer with @pStages@ with -- an element of -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT' -- -- - #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08688# If there is no bound -- graphics pipeline, -- 'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/ --- have been called on the current command buffer with @pStages@ with +-- have been called in the current command buffer with @pStages@ with -- an element of -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' -- @@ -5856,7 +7016,7 @@ foreign import ccall -- -- feature is enabled, -- 'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/ --- have been called on the current command buffer with @pStages@ with +-- have been called in the current command buffer with @pStages@ with -- an element of -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT' -- @@ -5865,7 +7025,7 @@ foreign import ccall -- -- feature is enabled, -- 'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/ --- have been called on the current command buffer with @pStages@ with +-- have been called in the current command buffer with @pStages@ with -- an element of -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT' -- @@ -5877,8 +7037,8 @@ foreign import ccall -- features is enabled, one of the -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT' or -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT' --- stages must have a valid 'Vulkan.Extensions.Handles.ShaderEXT' --- bound, and the other must have no +-- stages /must/ have a valid 'Vulkan.Extensions.Handles.ShaderEXT' +-- bound, and the other /must/ have no -- 'Vulkan.Extensions.Handles.ShaderEXT' bound -- -- - #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08694# If there is no bound @@ -5943,6 +7103,37 @@ foreign import ccall -- 'Vulkan.Extensions.VK_EXT_shader_object.createShadersEXT' call -- /must/ not have any 'Vulkan.Extensions.Handles.ShaderEXT' bound -- +-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08878# All bound graphics +-- shader objects /must/ have been created with identical or +-- identically defined push constant ranges +-- +-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08879# All bound graphics +-- shader objects /must/ have been created with identical or +-- identically defined arrays of descriptor set layouts +-- +-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-colorAttachmentCount-09372# If +-- the current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' +-- and a +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ +-- equal to @1@, a color attachment with a resolve mode of +-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID', +-- and a fragment shader is bound, it /must/ not declare the +-- @DepthReplacing@ or @StencilRefReplacingEXT@ execution modes +-- +-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08880# If a shader object +-- is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage and the +-- +-- feature is enabled on the device, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE' +-- 'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT' +-- /must/ have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdDrawMeshTasksIndirectEXT-pDynamicStates-08715# If the -- bound graphics pipeline state includes a fragment shader stage, was -- created with @@ -5967,6 +7158,33 @@ foreign import ccall -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilWriteMask' /must/ -- be @0@ -- +-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-None-09116# If a shader object +-- is bound to any graphics stage or the currently bound graphics +-- pipeline was created with +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_MASK_EXT', +-- and the format of any color attachment is +-- 'Vulkan.Core10.Enums.Format.FORMAT_E5B9G9R9_UFLOAT_PACK32', the +-- corresponding element of the @pColorWriteMasks@ parameter of +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorWriteMaskEXT' +-- /must/ either include all of +-- 'Vulkan.Core10.Enums.ColorComponentFlagBits.COLOR_COMPONENT_R_BIT', +-- 'Vulkan.Core10.Enums.ColorComponentFlagBits.COLOR_COMPONENT_G_BIT', +-- and +-- 'Vulkan.Core10.Enums.ColorComponentFlagBits.COLOR_COMPONENT_B_BIT', +-- or none of them +-- +-- - #VUID-vkCmdDrawMeshTasksIndirectEXT-maxFragmentDualSrcAttachments-09239# +-- If +-- +-- is enabled for any attachment where either the source or destination +-- blend factors for that attachment +-- , +-- the maximum value of @Location@ for any output attachment +-- +-- in the @Fragment@ @Execution@ @Model@ executed by this command +-- /must/ be less than +-- +-- -- - #VUID-vkCmdDrawMeshTasksIndirectEXT-stage-06480# The bound graphics -- pipeline /must/ not have been created with the -- 'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo'::@stage@ @@ -6199,6 +7417,16 @@ foreign import ccall -- /must/ contain -- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT' -- +-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-02693# If the +-- +-- extension is not enabled and any 'Vulkan.Core10.Handles.ImageView' +-- is sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a +-- result of this command, it /must/ not have a +-- 'Vulkan.Core10.Enums.ImageViewType.ImageViewType' of +-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_3D', +-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE', or +-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE_ARRAY' +-- -- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-filterCubic-02694# Any -- 'Vulkan.Core10.Handles.ImageView' being sampled with -- 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a result of this @@ -6224,6 +7452,35 @@ foreign import ccall -- returned by -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceImageFormatProperties2' -- +-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-cubicRangeClamp-09212# If +-- the +-- +-- feature is not enabled, then any 'Vulkan.Core10.Handles.ImageView' +-- being sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as +-- a result of this command +-- +-- [/must/ not have a 'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo'] +-- @reductionMode@ equal to +-- 'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM' +-- +-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-reductionMode-09213# Any +-- 'Vulkan.Core10.Handles.ImageView' being sampled with a +-- 'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo'::@reductionMode@ +-- equal to +-- 'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM' +-- as a result of this command /must/ sample with +-- 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' +-- +-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-selectableCubicWeights-09214# +-- If the +-- +-- feature is not enabled, then any 'Vulkan.Core10.Handles.ImageView' +-- being sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as +-- a result of this command /must/ have +-- 'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.SamplerCubicWeightsCreateInfoQCOM'::@cubicWeights@ +-- equal to +-- 'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM' +-- -- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-flags-02696# Any -- 'Vulkan.Core10.Handles.Image' created with a -- 'Vulkan.Core10.Image.ImageCreateInfo'::@flags@ containing @@ -6265,11 +7522,9 @@ foreign import ccall -- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT' -- -- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08600# For each set --- /n/ that is statically used by the 'Vulkan.Core10.Handles.Pipeline' --- bound to the pipeline bind point used by this command, or by any of --- the 'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages --- corresponding to the pipeline bind point used by this command, a --- descriptor set /must/ have been bound to /n/ at the same pipeline +-- /n/ that is statically used by +-- , +-- a descriptor set /must/ have been bound to /n/ at the same pipeline -- bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is -- compatible for set /n/, with the -- 'Vulkan.Core10.Handles.PipelineLayout' or @@ -6279,13 +7534,10 @@ foreign import ccall -- -- -- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08601# For each push --- constant that is statically used by the --- 'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point --- used by this command, or by any of the --- 'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages --- corresponding to the pipeline bind point used by this command, a --- push constant value /must/ have been set for the same pipeline bind --- point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is +-- constant that is statically used by +-- , +-- a push constant value /must/ have been set for the same pipeline +-- bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is -- compatible for push constants, with the -- 'Vulkan.Core10.Handles.PipelineLayout' or -- 'Vulkan.Core10.Handles.DescriptorSetLayout' and @@ -6297,12 +7549,10 @@ foreign import ccall -- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-maintenance4-08602# If the -- -- feature is not enabled, then for each push constant that is --- statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to the --- pipeline bind point used by this command, or by any of the --- 'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages --- corresponding to the pipeline bind point used by this command, a --- push constant value /must/ have been set for the same pipeline bind --- point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is +-- statically used by +-- , +-- a push constant value /must/ have been set for the same pipeline +-- bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is -- compatible for push constants, with the -- 'Vulkan.Core10.Handles.PipelineLayout' or -- 'Vulkan.Core10.Handles.DescriptorSetLayout' and @@ -6465,34 +7715,25 @@ foreign import ccall -- buffer as specified in the descriptor set bound to the same pipeline -- bind point -- --- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-commandBuffer-08614# If +-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-commandBuffer-02707# If -- @commandBuffer@ is an unprotected command buffer and -- --- is not supported, any resource accessed by the --- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind --- point used by this command or any --- 'Vulkan.Extensions.Handles.ShaderEXT' object bound to a stage --- corresponding to the pipeline bind point used by this command /must/ --- not be a protected resource --- --- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08615# If the --- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind --- point used by this command or any --- 'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding --- to the pipeline bind point used by this command accesses a --- 'Vulkan.Core10.Handles.Sampler' or 'Vulkan.Core10.Handles.ImageView' --- object that enables +-- is not supported, any resource accessed by +-- +-- /must/ not be a protected resource +-- +-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-06550# If +-- +-- accesses a 'Vulkan.Core10.Handles.Sampler' or +-- 'Vulkan.Core10.Handles.ImageView' object that enables -- , -- that object /must/ only be used with @OpImageSample*@ or -- @OpImageSparseSample*@ instructions -- --- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-ConstOffset-08616# If the --- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind --- point used by this command or any --- 'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding --- to the pipeline bind point used by this command accesses a --- 'Vulkan.Core10.Handles.Sampler' or 'Vulkan.Core10.Handles.ImageView' --- object that enables +-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-ConstOffset-06551# If +-- +-- accesses a 'Vulkan.Core10.Handles.Sampler' or +-- 'Vulkan.Core10.Handles.ImageView' object that enables -- , -- that object /must/ not use the @ConstOffset@ and @Offset@ operands -- @@ -6504,17 +7745,23 @@ foreign import ccall -- -- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-format-07753# If a -- 'Vulkan.Core10.Handles.ImageView' is accessed as a result of this --- command, then the image view’s @format@ /must/ match the numeric --- format from the @Sampled@ @Type@ operand of the @OpTypeImage@ as --- described in the SPIR-V Sampled Type column of the --- --- table --- --- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-04115# If a --- 'Vulkan.Core10.Handles.ImageView' is accessed using @OpImageWrite@ --- as a result of this command, then the @Type@ of the @Texel@ operand --- of that instruction /must/ have at least as many components as the --- image view’s format +-- command, then the +-- +-- of the image view’s @format@ and the @Sampled@ @Type@ operand of the +-- @OpTypeImage@ /must/ match +-- +-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-OpImageWrite-08795# If a +-- 'Vulkan.Core10.Handles.ImageView' created with a format other than +-- 'Vulkan.Core10.Enums.Format.FORMAT_A8_UNORM_KHR' is accessed using +-- @OpImageWrite@ as a result of this command, then the @Type@ of the +-- @Texel@ operand of that instruction /must/ have at least as many +-- components as the image view’s format +-- +-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-OpImageWrite-08796# If a +-- 'Vulkan.Core10.Handles.ImageView' created with the format +-- 'Vulkan.Core10.Enums.Format.FORMAT_A8_UNORM_KHR' is accessed using +-- @OpImageWrite@ as a result of this command, then the @Type@ of the +-- @Texel@ operand of that instruction /must/ have four components -- -- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-OpImageWrite-04469# If a -- 'Vulkan.Core10.Handles.BufferView' is accessed using @OpImageWrite@ @@ -6618,6 +7865,8 @@ foreign import ccall -- -- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-OpImageWeightedSampleQCOM-06977# -- If @OpImageWeightedSampleQCOM@, @OpImageBoxFilterQCOM@, +-- @OpImageBlockMatchWindowSSDQCOM@, @OpImageBlockMatchWindowSADQCOM@, +-- @OpImageBlockMatchGatherSSDQCOM@, @OpImageBlockMatchGatherSADQCOM@, -- @OpImageBlockMatchSSDQCOM@, or @OpImageBlockMatchSADQCOM@ uses a -- 'Vulkan.Core10.Handles.Sampler' as a result of this command, then -- the sampler /must/ have been created with @@ -6625,12 +7874,36 @@ foreign import ccall -- -- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-OpImageWeightedSampleQCOM-06978# -- If any command other than @OpImageWeightedSampleQCOM@, --- @OpImageBoxFilterQCOM@, @OpImageBlockMatchSSDQCOM@, or +-- @OpImageBoxFilterQCOM@, @OpImageBlockMatchWindowSSDQCOM@, +-- @OpImageBlockMatchWindowSADQCOM@, @OpImageBlockMatchGatherSSDQCOM@, +-- @OpImageBlockMatchGatherSADQCOM@, @OpImageBlockMatchSSDQCOM@, or -- @OpImageBlockMatchSADQCOM@ uses a 'Vulkan.Core10.Handles.Sampler' as -- a result of this command, then the sampler /must/ not have been -- created with -- 'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM' -- +-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-OpImageBlockMatchWindow-09215# +-- If a @OpImageBlockMatchWindow*QCOM@ or +-- @OpImageBlockMatchGather*QCOM@ instruction is used to read from an +-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then +-- the image view’s +-- +-- /must/ contain +-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM' +-- +-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-OpImageBlockMatchWindow-09216# +-- If a @OpImageBlockMatchWindow*QCOM@ or +-- @OpImageBlockMatchGather*QCOM@ instruction is used to read from an +-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then +-- the image view’s format /must/ be a single-component format. +-- +-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-OpImageBlockMatchWindow-09217# +-- If a @OpImageBlockMatchWindow*QCOM@ or +-- @OpImageBlockMatchGather*QCOM@ read from a reference image as result +-- of this command, then the specified reference coordinates /must/ not +-- fail +-- +-- -- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07288# Any shader -- invocation executed by this command /must/ -- @@ -6676,15 +7949,89 @@ foreign import ccall -- /must/ not be written in any way other than as an attachment by this -- command -- --- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-06538# If any recorded --- command in the current subpass will write to an image subresource as --- an attachment, this command /must/ not read from the memory backing --- that image subresource in any other way than as an attachment +-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-09000# If a color +-- attachment is written by any prior command in this subpass or by the +-- load, store, or resolve operations for this subpass, it is not in +-- the +-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT' +-- image layout, and either: +-- +-- - the +-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT' +-- is set on the currently bound pipeline or +-- +-- - the last call to +-- 'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT' +-- included +-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT' +-- and +-- +-- - there is no currently bound graphics pipeline or +-- +-- - the currently bound graphics pipeline was created with +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT' +-- it /must/ not be accessed in any way other than as an +-- attachment by this command +-- +-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-09001# If a depth +-- attachment is written by any prior command in this subpass or by the +-- load, store, or resolve operations for this subpass, it is not in +-- the +-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT' +-- image layout, and either: +-- +-- - the +-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT' +-- is set on the currently bound pipeline or +-- +-- - the last call to +-- 'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT' +-- included +-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_DEPTH_BIT' +-- and -- --- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-06539# If any recorded --- command in the current subpass will read from an image subresource --- used as an attachment in any way other than as an attachment, this --- command /must/ not write to that image subresource as an attachment +-- - there is no currently bound graphics pipeline or +-- +-- - the currently bound graphics pipeline was created with +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT' +-- it /must/ not be accessed in any way other than as an +-- attachment by this command +-- +-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-09002# If a stencil +-- attachment is written by any prior command in this subpass or by the +-- load, store, or resolve operations for this subpass, it is not in +-- the +-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT' +-- image layout, and either: +-- +-- - the +-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT' +-- is set on the currently bound pipeline or +-- +-- - the last call to +-- 'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT' +-- included +-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT' +-- and +-- +-- - there is no currently bound graphics pipeline or +-- +-- - the currently bound graphics pipeline was created with +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT' +-- it /must/ not be accessed in any way other than as an +-- attachment by this command +-- +-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-09003# If an +-- attachment is written by any prior command in this subpass or by the +-- load, store, or resolve operations for this subpass, it /must/ not +-- be accessed in any way other than as an attachment, storage image, +-- or sampled image by this command +-- +-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-06539# If any +-- previously recorded command in the current subpass accessed an image +-- subresource used as an attachment in this subpass in any way other +-- than as an attachment, this command /must/ not write to that image +-- subresource as an attachment -- -- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-06886# If the current -- render pass instance uses a depth\/stencil attachment with a @@ -6754,18 +8101,23 @@ foreign import ccall -- graphics pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS' dynamic -- state enabled then --- 'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBias' /must/ have --- been called in the current command buffer prior to this drawing --- command +-- 'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBias' or +-- 'Vulkan.Extensions.VK_EXT_depth_bias_control.cmdSetDepthBias2EXT' +-- /must/ have been called in the current command buffer prior to this +-- drawing command -- -- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08620# If a shader -- object is bound to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnable' -- in the current command buffer set @depthBiasEnable@ to -- 'Vulkan.Core10.FundamentalTypes.TRUE', --- 'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBias' /must/ have --- been called in the current command buffer prior to this drawing --- command +-- 'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBias' or +-- 'Vulkan.Extensions.VK_EXT_depth_bias_control.cmdSetDepthBias2EXT' +-- /must/ have been called in the current command buffer prior to this +-- drawing command -- -- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07835# If the bound -- graphics pipeline state was created with the @@ -6788,7 +8140,7 @@ foreign import ccall -- the most recent call to -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT' -- in the current command buffer set the same element of --- @pColorBlendEquations@ to an +-- @pColorBlendEquations@ to a -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.ColorBlendEquationEXT' -- structure with any 'Vulkan.Core10.Enums.BlendFactor.BlendFactor' -- member with a value of @@ -6803,16 +8155,20 @@ foreign import ccall -- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07836# If the bound -- graphics pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS' --- dynamic state enabled then +-- dynamic state enabled, and if the current @depthBoundsTestEnable@ +-- state is 'Vulkan.Core10.FundamentalTypes.TRUE', then -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBounds' /must/ have -- been called in the current command buffer prior to this drawing -- command -- -- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08622# If a shader -- object is bound to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable' -- in the current command buffer set @depthBoundsTestEnable@ to --- 'Vulkan.Core10.FundamentalTypes.TRUE', +-- 'Vulkan.Core10.FundamentalTypes.TRUE', then -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBounds' /must/ have -- been called in the current command buffer prior to this drawing -- command @@ -6820,7 +8176,8 @@ foreign import ccall -- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07837# If the bound -- graphics pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_COMPARE_MASK' --- dynamic state enabled then +-- dynamic state enabled, and if the current @stencilTestEnable@ state +-- is 'Vulkan.Core10.FundamentalTypes.TRUE', then -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilCompareMask' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -6837,7 +8194,8 @@ foreign import ccall -- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07838# If the bound -- graphics pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_WRITE_MASK' --- dynamic state enabled then +-- dynamic state enabled, and if the current @stencilTestEnable@ state +-- is 'Vulkan.Core10.FundamentalTypes.TRUE', then -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilWriteMask' /must/ -- have been called in the current command buffer prior to this drawing -- command @@ -6854,7 +8212,8 @@ foreign import ccall -- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07839# If the bound -- graphics pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_REFERENCE' --- dynamic state enabled then +-- dynamic state enabled, and if the current @stencilTestEnable@ state +-- is 'Vulkan.Core10.FundamentalTypes.TRUE', then -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilReference' /must/ -- have been called in the current command buffer prior to this drawing -- command @@ -6894,7 +8253,10 @@ foreign import ccall -- object is bound to any graphics stage, and the most recent call to -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT' -- in the current command buffer set @sampleLocationsEnable@ to --- 'Vulkan.Core10.FundamentalTypes.TRUE', +-- 'Vulkan.Core10.FundamentalTypes.TRUE', and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -6918,7 +8280,10 @@ foreign import ccall -- drawing command -- -- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08627# If a shader --- object is bound to any graphics stage, +-- object is bound to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetCullMode' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -6932,7 +8297,10 @@ foreign import ccall -- drawing command -- -- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08628# If a shader --- object is bound to any graphics stage, +-- object is bound to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetFrontFace' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -6946,7 +8314,10 @@ foreign import ccall -- drawing command -- -- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08629# If a shader --- object is bound to any graphics stage, +-- object is bound to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -6960,7 +8331,10 @@ foreign import ccall -- drawing command -- -- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08630# If a shader --- object is bound to any graphics stage, +-- object is bound to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -6975,9 +8349,12 @@ foreign import ccall -- -- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08631# If a shader -- object is bound to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable' -- in the current command buffer set @depthTestEnable@ to --- 'Vulkan.Core10.FundamentalTypes.TRUE', +-- 'Vulkan.Core10.FundamentalTypes.TRUE', then -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthCompareOp' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -6993,7 +8370,10 @@ foreign import ccall -- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08632# If a shader -- object is bound to any graphics stage, and the -- --- feature is enabled, the +-- feature is enabled, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then the -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -7113,6 +8493,14 @@ foreign import ccall -- the last call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- +-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-09232# If a shader +-- object is bound to any graphics stage, and the +-- @VK_NV_clip_space_w_scaling@ extension is enabled on the device, +-- then +-- 'Vulkan.Extensions.VK_NV_clip_space_w_scaling.cmdSetViewportWScalingNV' +-- must have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08636# If a shader -- object is bound to any graphics stage, and the -- @VK_NV_clip_space_w_scaling@ extension is enabled on the device, @@ -7146,6 +8534,31 @@ foreign import ccall -- the last call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- +-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-shadingRateImage-09233# If +-- the +-- +-- feature is enabled, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set rasterizerDiscardEnable to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then +-- 'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetCoarseSampleOrderNV' +-- must have been called in the current command buffer prior to this +-- drawing command +-- +-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-shadingRateImage-09234# If +-- a shader object is bound to any graphics stage, and the +-- +-- feature is enabled on the device, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set rasterizerDiscardEnable to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetShadingRateImageEnableNV' +-- in the current command buffer set shadingRateImageEnable to +-- 'Vulkan.Core10.FundamentalTypes.TRUE', then +-- 'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetViewportShadingRatePaletteNV' +-- must have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08637# If a shader -- object is bound to any graphics stage, and the -- @@ -7198,6 +8611,14 @@ foreign import ccall -- /must/ have been called in the current command buffer prior to this -- drawing command -- +-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-exclusiveScissor-09235# If +-- a shader object is bound to any graphics stage, and the +-- +-- feature is enabled, then +-- 'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorEnableNV' +-- must have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08638# If a shader -- object is bound to any graphics stage, and the most recent call to -- 'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorEnableNV' @@ -7249,7 +8670,9 @@ foreign import ccall -- 'Vulkan.Core10.Enums.LogicOp.LogicOp' value -- -- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08641# If a shader --- object is bound to any graphics stage, and the +-- object is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage, and the -- -- feature is enabled on the device, and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' @@ -7335,6 +8758,11 @@ foreign import ccall -- to be the same as the number of samples for the current render pass -- color and\/or depth\/stencil attachments -- +-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08876# If a shader +-- object is bound to any graphics stage, the current render pass +-- instance /must/ have been begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' +-- -- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-imageView-06172# If the -- current render pass instance was begun with -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', @@ -7407,8 +8835,28 @@ foreign import ccall -- equal to -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ -- --- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-colorAttachmentCount-06180# --- If the current render pass instance was begun with +-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-dynamicRenderingUnusedAttachments-08910# +-- If the +-- +-- feature is not enabled, and the current render pass instance was +-- begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' +-- and +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ +-- greater than @0@, then each element of the +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@ +-- array with a @imageView@ not equal to +-- 'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created +-- with a 'Vulkan.Core10.Enums.Format.Format' equal to the +-- corresponding element of +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@ +-- used to create the currently bound graphics pipeline +-- +-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-dynamicRenderingUnusedAttachments-08911# +-- If the +-- +-- feature is enabled, and the current render pass instance was begun +-- with -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' -- and -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ @@ -7419,10 +8867,17 @@ foreign import ccall -- with a 'Vulkan.Core10.Enums.Format.Format' equal to the -- corresponding element of -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@ --- used to create the currently bound graphics pipeline +-- used to create the currently bound graphics pipeline, or the +-- corresponding element of +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@, +-- if it exists, /must/ be +-- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' -- --- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-colorAttachmentCount-07616# --- If the current render pass instance was begun with +-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-dynamicRenderingUnusedAttachments-08912# +-- If the +-- +-- feature is not enabled, and the current render pass instance was +-- begun with -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' -- and -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ @@ -7435,6 +8890,132 @@ foreign import ccall -- used to create the currently bound pipeline equal to -- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' -- +-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-colorAttachmentCount-09362# +-- If the current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- with a +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ +-- equal to @1@, there is no shader object bound to any graphics stage, +-- and a color attachment with a resolve mode of +-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID', +-- each element of the +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@ +-- array with a @resolveImageView@ not equal to +-- 'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created +-- with an image created with a +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- value equal to the +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- value used to create the currently bound graphics pipeline +-- +-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-09363# If there is no +-- shader object bound to any graphics stage, the current render pass +-- instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' +-- and a +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ +-- equal to @1@, and a color attachment with a resolve mode of +-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID', +-- each element of the +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@ +-- array with a @imageView@ not equal to +-- 'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created +-- with an image created with a +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- value equal to the +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- value used to create the currently bound graphics pipeline +-- +-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-09364# If the current +-- render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- there is no shader object bound to any graphics stage, and the +-- currently bound graphics pipeline was created with a non-zero +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- value and with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT' +-- dynamic state enabled, then +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT' +-- /must/ have set the blend enable to +-- 'Vulkan.Core10.FundamentalTypes.FALSE' prior to this drawing command +-- +-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-09365# If the current +-- render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- there is no shader object bound to any graphics stage, and the +-- currently bound graphics pipeline was created with a non-zero +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- value and with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT' +-- dynamic state enabled, then +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT' +-- /must/ have set @rasterizationSamples@ to +-- 'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT' prior +-- to this drawing command +-- +-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-09366# If there is a +-- shader object bound to any graphics stage, and the current render +-- pass includes a color attachment that uses the +-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID' +-- resolve mode, then +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT' +-- /must/ have set blend enable to +-- 'Vulkan.Core10.FundamentalTypes.FALSE' prior to this drawing command +-- +-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-rasterizationSamples-09367# +-- If there is a shader object bound to any graphics stage, and the +-- current render pass includes a color attachment that uses the +-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID' +-- resolve mode, then +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT' +-- /must/ have set @rasterizationSamples@ to +-- 'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT' prior +-- to this drawing command +-- +-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-09368# If the current +-- render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- there is no shader object bound to any graphics stage, and the +-- currently bound graphics pipeline was created with a non-zero +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- value and with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR' +-- dynamic state enabled, then +-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR' +-- /must/ have set @pFragmentSize->width@ to @1@ prior to this drawing +-- command +-- +-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-09369# If the current +-- render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- there is no shader object bound to any graphics stage, and the +-- currently bound graphics pipeline was created with a non-zero +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- value and with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR' +-- dynamic state enabled, then +-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR' +-- /must/ have set @pFragmentSize->height@ to @1@ prior to this drawing +-- command +-- +-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-pFragmentSize-09370# If +-- there is a shader object bound to any graphics stage, and the +-- current render pass includes a color attachment that uses the +-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID' +-- resolve mode, then +-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR' +-- /must/ have set @pFragmentSize->width@ to @1@ prior to this drawing +-- command +-- +-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-pFragmentSize-09371# If +-- there is a shader object bound to any graphics stage, and the +-- current render pass includes a color attachment that uses the +-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID' +-- resolve mode, then +-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR' +-- /must/ have set @pFragmentSize->height@ to @1@ prior to this drawing +-- command +-- -- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07749# If the bound -- graphics pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT' @@ -7446,7 +9027,9 @@ foreign import ccall -- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08646# If the -- -- feature is enabled on the device, and a shader object is bound to --- the fragment stage, and the most recent call to +-- the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage, and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' -- in the current command buffer set @rasterizerDiscardEnable@ to -- 'Vulkan.Core10.FundamentalTypes.FALSE', then @@ -7466,7 +9049,9 @@ foreign import ccall -- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08647# If the -- -- feature is enabled on the device, and a shader object is bound to --- the fragment stage, and the most recent call to +-- the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage, and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' -- in the current command buffer set @rasterizerDiscardEnable@ to -- 'Vulkan.Core10.FundamentalTypes.FALSE', then the @attachmentCount@ @@ -7492,6 +9077,17 @@ foreign import ccall -- /must/ have been called in the current command buffer prior to this -- drawing command -- +-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-rasterizerDiscardEnable-09236# +-- If the @VK_EXT_discard_rectangles@ extension is enabled, and a +-- shader object is bound to any graphics stage, and the most recent +-- call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then +-- 'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEXT' +-- /must/ have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08648# If the -- @VK_EXT_discard_rectangles@ extension is enabled, and a shader -- object is bound to any graphics stage, and the most recent call to @@ -7523,10 +9119,24 @@ foreign import ccall -- /must/ have been called in the current command buffer prior to this -- drawing command -- --- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-pDepthAttachment-06181# If --- the current render pass instance was begun with --- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' --- and +-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-dynamicRenderingUnusedAttachments-08913# +-- If the current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- the +-- +-- feature is not enabled, and +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@ +-- was 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@ +-- used to create the currently bound graphics pipeline /must/ be equal +-- to 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' +-- +-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-dynamicRenderingUnusedAttachments-08914# +-- If current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- the +-- +-- feature is not enabled, and -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@ -- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@ @@ -7534,20 +9144,39 @@ foreign import ccall -- to the 'Vulkan.Core10.Enums.Format.Format' used to create -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@ -- --- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-pDepthAttachment-07617# If --- the current render pass instance was begun with --- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' --- and +-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-dynamicRenderingUnusedAttachments-08915# +-- If the current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- the +-- +-- feature is enabled, -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@ --- was 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of +-- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the value of -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@ +-- used to create the currently bound graphics pipeline was not equal +-- to the 'Vulkan.Core10.Enums.Format.Format' used to create +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@, +-- the value of the format /must/ be +-- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' +-- +-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-dynamicRenderingUnusedAttachments-08916# +-- If the current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- the +-- +-- feature is not enabled, and +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@ +-- was 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@ -- used to create the currently bound graphics pipeline /must/ be equal -- to 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' -- --- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-pStencilAttachment-06182# --- If the current render pass instance was begun with --- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' --- and +-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-dynamicRenderingUnusedAttachments-08917# +-- If current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- the +-- +-- feature is not enabled, and -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@ -- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@ @@ -7555,15 +9184,20 @@ foreign import ccall -- to the 'Vulkan.Core10.Enums.Format.Format' used to create -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@ -- --- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-pStencilAttachment-07618# +-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-dynamicRenderingUnusedAttachments-08918# -- If the current render pass instance was begun with --- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' --- and +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- the +-- +-- feature is enabled, -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@ --- was 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of +-- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the value of -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@ --- used to create the currently bound graphics pipeline /must/ be equal --- to 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' +-- used to create the currently bound graphics pipeline was not equal +-- to the 'Vulkan.Core10.Enums.Format.Format' used to create +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@, +-- the value of the format /must/ be +-- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' -- -- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-imageView-06183# If the -- current render pass instance was begun with @@ -7710,6 +9344,40 @@ foreign import ccall -- 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@renderPass@ -- equal to 'Vulkan.Core10.APIConstants.NULL_HANDLE' -- +-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-pColorAttachments-08963# If +-- the current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- there is a graphics pipeline bound with a fragment shader that +-- statically writes to a color attachment, the color write mask is not +-- zero, color writes are enabled, and the corresponding element of the +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments->imageView@ +-- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', then the +-- corresponding element of +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@ +-- used to create the pipeline /must/ not be +-- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' +-- +-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-pDepthAttachment-08964# If +-- the current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- there is a graphics pipeline bound, depth test is enabled, depth +-- write is enabled, and the +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@ +-- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', then the +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@ +-- used to create the pipeline /must/ not be +-- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' +-- +-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-pStencilAttachment-08965# +-- If the current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- there is a graphics pipeline bound, stencil test is enabled and the +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@ +-- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', then the +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@ +-- used to create the pipeline /must/ not be +-- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' +-- -- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-primitivesGeneratedQueryWithRasterizerDiscard-06708# -- If the -- @@ -7736,6 +9404,22 @@ foreign import ccall -- /must/ have been called in the current command buffer prior to this -- drawing command -- +-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07620# If the bound +-- graphics pipeline state was created with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT' +-- dynamic state enabled then +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClampEnableEXT' +-- /must/ have been called in the current command buffer prior to this +-- drawing command +-- +-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-09237# If a shader +-- object is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT' +-- stage, then +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetTessellationDomainOriginEXT' +-- /must/ have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08650# If the -- -- feature is enabled, and a shader object is bound to any graphics @@ -7806,6 +9490,17 @@ foreign import ccall -- /must/ have been called in the current command buffer prior to this -- drawing command -- +-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-alphaToCoverageEnable-08919# +-- If the bound graphics pipeline state was created with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT' +-- dynamic state enabled, and @alphaToCoverageEnable@ was +-- 'Vulkan.Core10.FundamentalTypes.TRUE' in the last call to +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT', +-- then the +-- +-- /must/ contain a variable for the alpha @Component@ word in +-- @Location@ 0 at @Index@ 0 +-- -- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08654# If a shader -- object is bound to any graphics stage, and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' @@ -7815,6 +9510,16 @@ foreign import ccall -- /must/ have been called in the current command buffer prior to this -- drawing command -- +-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-alphaToCoverageEnable-08920# +-- If a shader object is bound to any graphics stage, and the most +-- recent call to +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT' +-- in the current command buffer set @alphaToCoverageEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.TRUE', then the +-- +-- /must/ contain a variable for the alpha @Component@ word in +-- @Location@ 0 at @Index@ 0 +-- -- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07625# If the bound -- graphics pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT' @@ -7844,7 +9549,8 @@ foreign import ccall -- -- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08656# If the -- --- feature is enabled, and a shader object is bound to any graphics +-- feature is enabled, and a shader object is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' -- stage, and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' -- in the current command buffer set @rasterizerDiscardEnable@ to @@ -7862,7 +9568,9 @@ foreign import ccall -- drawing command -- -- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08657# If a shader --- object is bound to any graphics stage, and the most recent call to +-- object is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage, and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' -- in the current command buffer set @rasterizerDiscardEnable@ to -- 'Vulkan.Core10.FundamentalTypes.FALSE', then @@ -7899,7 +9607,9 @@ foreign import ccall -- drawing command -- -- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08659# If a shader --- object is bound to any graphics stage, and the most recent call to +-- object is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage, and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' -- in the current command buffer set @rasterizerDiscardEnable@ to -- 'Vulkan.Core10.FundamentalTypes.FALSE', then @@ -7917,7 +9627,8 @@ foreign import ccall -- -- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08660# If the -- --- feature is enabled, and a shader object is bound to the geometry +-- feature is enabled, and a shader object is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT' -- stage, then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationStreamEXT' -- /must/ have been called in the current command buffer prior to this @@ -8017,7 +9728,9 @@ foreign import ccall -- -- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08665# If the -- @VK_EXT_provoking_vertex@ extension is enabled, and a shader object --- is bound to the vertex stage, then +-- is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT' +-- stage, then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetProvokingVertexModeEXT' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -8126,7 +9839,7 @@ foreign import ccall -- stage, then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClipNegativeOneToOneEXT' -- /must/ have been called in the current command buffer prior to this --- drawing command ifdef::VK_EXT_extended_dynamic_state3 +-- drawing command -- -- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07640# If the bound -- graphics pipeline state was created with the @@ -8134,7 +9847,7 @@ foreign import ccall -- dynamic state enabled then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetViewportWScalingEnableNV' -- /must/ have been called in the current command buffer prior to this --- drawing command endif::VK_EXT_extended_dynamic_state3 +-- drawing command -- -- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08674# If the -- @VK_NV_clip_space_w_scaling@ extension is enabled, and a shader @@ -8168,7 +9881,12 @@ foreign import ccall -- -- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08676# If the -- @VK_NV_fragment_coverage_to_color@ extension is enabled, and a --- shader object is bound to any graphics stage, then +-- shader object is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -8183,8 +9901,9 @@ foreign import ccall -- -- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08677# If the -- @VK_NV_fragment_coverage_to_color@ extension is enabled, and a --- shader object is bound to any graphics stage, and the most recent --- call to +-- shader object is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage, and the most recent call to -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV' -- in the current command buffer set @coverageToColorEnable@ to -- 'Vulkan.Core10.FundamentalTypes.TRUE', then @@ -8202,7 +9921,10 @@ foreign import ccall -- -- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08678# If the -- @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader --- object is bound to any graphics stage, then +-- object is bound to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationModeNV' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -8217,7 +9939,15 @@ foreign import ccall -- -- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08679# If the -- @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader --- object is bound to any graphics stage, then +-- object is bound to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationModeNV' +-- in the current command buffer set coverageModulationMode to any +-- value other than +-- 'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.COVERAGE_MODULATION_MODE_NONE_NV', +-- then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -8233,6 +9963,9 @@ foreign import ccall -- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08680# If the -- @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader -- object is bound to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV' -- in the current command buffer set @coverageModulationTableEnable@ to -- 'Vulkan.Core10.FundamentalTypes.TRUE', then @@ -8248,10 +9981,26 @@ foreign import ccall -- /must/ have been called in the current command buffer prior to this -- drawing command -- +-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-pipelineFragmentShadingRate-09238# +-- If the +-- +-- feature is enabled, and a shader object is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set rasterizerDiscardEnable to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then +-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR' +-- must have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08681# If the -- -- feature is enabled, and a shader object is bound to any graphics --- stage, then +-- stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetShadingRateImageEnableNV' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -8261,13 +10010,16 @@ foreign import ccall -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV' -- dynamic state enabled then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRepresentativeFragmentTestEnableNV' --- must have been called in the current command buffer prior to this +-- /must/ have been called in the current command buffer prior to this -- drawing command -- -- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08682# If the -- -- feature is enabled, and a shader object is bound to any graphics --- stage, then +-- stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRepresentativeFragmentTestEnableNV' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -8283,7 +10035,10 @@ foreign import ccall -- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08683# If the -- -- feature is enabled, and a shader object is bound to any graphics --- stage, then +-- stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageReductionModeNV' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -8332,18 +10087,29 @@ foreign import ccall -- in the last call to -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT' -- --- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-multisampledRenderToSingleSampled-07475# +-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-rasterizationSamples-07474# -- If the bound graphics pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT' --- state enabled, and none of the @VK_AMD_mixed_attachment_samples@ --- extension, @VK_NV_framebuffer_mixed_samples@ extension, or the --- --- feature is enabled, then the @rasterizationSamples@ in the last call --- to +-- state enabled, and neither the @VK_AMD_mixed_attachment_samples@ nor +-- the @VK_NV_framebuffer_mixed_samples@ extensions are enabled, then +-- the @rasterizationSamples@ in the last call to -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT' -- /must/ be the same as the current subpass color and\/or -- depth\/stencil attachments -- +-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-09211# If the bound +-- graphics pipeline state was created with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT' +-- state enabled, or a shader object is bound to any graphics stage, +-- and the current render pass instance includes a +-- 'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT' +-- structure with @multisampledRenderToSingleSampledEnable@ equal to +-- 'Vulkan.Core10.FundamentalTypes.TRUE', then the +-- @rasterizationSamples@ in the last call to +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT' +-- /must/ be the same as the @rasterizationSamples@ member of that +-- structure +-- -- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-firstAttachment-07476# If -- the bound graphics pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT' @@ -8402,7 +10168,7 @@ foreign import ccall -- and -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendAdvancedEXT' -- have enabled advanced blending, then the number of active color --- attachments in the current subpass must not exceed +-- attachments in the current subpass /must/ not exceed -- -- -- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-primitivesGeneratedQueryWithNonZeroStreams-07481# @@ -8564,7 +10330,7 @@ foreign import ccall -- If the @VK_NV_framebuffer_mixed_samples@ extension is enabled, and -- if current subpass has a depth\/stencil attachment and depth test, -- stencil test, or depth bounds test are enabled in the currently --- bound pipeline state, then the current @rasterizationSamples@ must +-- bound pipeline state, then the current @rasterizationSamples@ /must/ -- be the same as the sample count of the depth\/stencil attachment -- -- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-coverageToColorEnable-07490# @@ -8595,7 +10361,7 @@ foreign import ccall -- states enabled, the current coverage reduction mode -- @coverageReductionMode@, then the current @rasterizationSamples@, -- and the sample counts for the color and depth\/stencil attachments --- (if the subpass has them) must be a valid combination returned by +-- (if the subpass has them) /must/ be a valid combination returned by -- 'Vulkan.Extensions.VK_NV_coverage_reduction_mode.getPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV' -- -- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-viewportCount-07492# If the @@ -8683,7 +10449,7 @@ foreign import ccall -- -- feature /must/ be enabled and -- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@strictLines@ --- must be VK_TRUE +-- /must/ be 'Vulkan.Core10.FundamentalTypes.TRUE' -- -- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-conservativePointAndLineRasterization-07499# -- If the bound graphics pipeline state was created with the @@ -8710,7 +10476,15 @@ foreign import ccall -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT', -- then -- --- must not be active +-- /must/ not be active +-- +-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08877# If the bound +-- graphics pipeline state was created with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT' +-- dynamic state +-- 'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT' +-- /must/ have been called in the current command buffer prior to this +-- drawing command -- -- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07850# If dynamic -- state was inherited from @@ -8721,7 +10495,7 @@ foreign import ccall -- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08684# If there is no -- bound graphics pipeline, -- 'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/ --- have been called on the current command buffer with @pStages@ with +-- have been called in the current command buffer with @pStages@ with -- an element of -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT' -- @@ -8730,7 +10504,7 @@ foreign import ccall -- -- feature is enabled, -- 'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/ --- have been called on the current command buffer with @pStages@ with +-- have been called in the current command buffer with @pStages@ with -- an element of -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT' -- @@ -8739,7 +10513,7 @@ foreign import ccall -- -- feature is enabled, -- 'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/ --- have been called on the current command buffer with @pStages@ with +-- have been called in the current command buffer with @pStages@ with -- an element of -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT' -- @@ -8748,14 +10522,14 @@ foreign import ccall -- -- feature is enabled, -- 'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/ --- have been called on the current command buffer with @pStages@ with +-- have been called in the current command buffer with @pStages@ with -- an element of -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT' -- -- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08688# If there is no -- bound graphics pipeline, -- 'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/ --- have been called on the current command buffer with @pStages@ with +-- have been called in the current command buffer with @pStages@ with -- an element of -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' -- @@ -8764,7 +10538,7 @@ foreign import ccall -- -- feature is enabled, -- 'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/ --- have been called on the current command buffer with @pStages@ with +-- have been called in the current command buffer with @pStages@ with -- an element of -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT' -- @@ -8773,7 +10547,7 @@ foreign import ccall -- -- feature is enabled, -- 'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/ --- have been called on the current command buffer with @pStages@ with +-- have been called in the current command buffer with @pStages@ with -- an element of -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT' -- @@ -8785,8 +10559,8 @@ foreign import ccall -- features is enabled, one of the -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT' or -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT' --- stages must have a valid 'Vulkan.Extensions.Handles.ShaderEXT' --- bound, and the other must have no +-- stages /must/ have a valid 'Vulkan.Extensions.Handles.ShaderEXT' +-- bound, and the other /must/ have no -- 'Vulkan.Extensions.Handles.ShaderEXT' bound -- -- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08694# If there is no @@ -8851,6 +10625,37 @@ foreign import ccall -- 'Vulkan.Extensions.VK_EXT_shader_object.createShadersEXT' call -- /must/ not have any 'Vulkan.Extensions.Handles.ShaderEXT' bound -- +-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08878# All bound +-- graphics shader objects /must/ have been created with identical or +-- identically defined push constant ranges +-- +-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08879# All bound +-- graphics shader objects /must/ have been created with identical or +-- identically defined arrays of descriptor set layouts +-- +-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-colorAttachmentCount-09372# +-- If the current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' +-- and a +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ +-- equal to @1@, a color attachment with a resolve mode of +-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID', +-- and a fragment shader is bound, it /must/ not declare the +-- @DepthReplacing@ or @StencilRefReplacingEXT@ execution modes +-- +-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08880# If a shader +-- object is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage and the +-- +-- feature is enabled on the device, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE' +-- 'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT' +-- /must/ have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-pDynamicStates-08715# If -- the bound graphics pipeline state includes a fragment shader stage, -- was created with @@ -8875,6 +10680,33 @@ foreign import ccall -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilWriteMask' /must/ -- be @0@ -- +-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-09116# If a shader +-- object is bound to any graphics stage or the currently bound +-- graphics pipeline was created with +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_MASK_EXT', +-- and the format of any color attachment is +-- 'Vulkan.Core10.Enums.Format.FORMAT_E5B9G9R9_UFLOAT_PACK32', the +-- corresponding element of the @pColorWriteMasks@ parameter of +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorWriteMaskEXT' +-- /must/ either include all of +-- 'Vulkan.Core10.Enums.ColorComponentFlagBits.COLOR_COMPONENT_R_BIT', +-- 'Vulkan.Core10.Enums.ColorComponentFlagBits.COLOR_COMPONENT_G_BIT', +-- and +-- 'Vulkan.Core10.Enums.ColorComponentFlagBits.COLOR_COMPONENT_B_BIT', +-- or none of them +-- +-- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-maxFragmentDualSrcAttachments-09239# +-- If +-- +-- is enabled for any attachment where either the source or destination +-- blend factors for that attachment +-- , +-- the maximum value of @Location@ for any output attachment +-- +-- in the @Fragment@ @Execution@ @Model@ executed by this command +-- /must/ be less than +-- +-- -- - #VUID-vkCmdDrawMeshTasksIndirectCountEXT-stage-06480# The bound -- graphics pipeline /must/ not have been created with the -- 'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo'::@stage@ @@ -9637,50 +11469,58 @@ instance Zero PhysicalDeviceMeshShaderPropertiesEXT where -- -- == Valid Usage -- --- - [[VUID-{refpage}-TaskEXT-07322]] If the current pipeline bound to +-- - #VUID-VkDrawMeshTasksIndirectCommandEXT-TaskEXT-07322# If the +-- current pipeline bound to -- 'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS' -- contains a shader using the @TaskEXT@ @Execution@ @Model@, -- @groupCountX@ /must/ be less than or equal to -- 'PhysicalDeviceMeshShaderPropertiesEXT'::@maxTaskWorkGroupCount@[0] -- --- - [[VUID-{refpage}-TaskEXT-07323]] If the current pipeline bound to +-- - #VUID-VkDrawMeshTasksIndirectCommandEXT-TaskEXT-07323# If the +-- current pipeline bound to -- 'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS' -- contains a shader using the @TaskEXT@ @Execution@ @Model@, -- @groupCountY@ /must/ be less than or equal to -- 'PhysicalDeviceMeshShaderPropertiesEXT'::@maxTaskWorkGroupCount@[1] -- --- - [[VUID-{refpage}-TaskEXT-07324]] If the current pipeline bound to +-- - #VUID-VkDrawMeshTasksIndirectCommandEXT-TaskEXT-07324# If the +-- current pipeline bound to -- 'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS' -- contains a shader using the @TaskEXT@ @Execution@ @Model@, -- @groupCountZ@ /must/ be less than or equal to -- 'PhysicalDeviceMeshShaderPropertiesEXT'::@maxTaskWorkGroupCount@[2] -- --- - [[VUID-{refpage}-TaskEXT-07325]] If the current pipeline bound to +-- - #VUID-VkDrawMeshTasksIndirectCommandEXT-TaskEXT-07325# If the +-- current pipeline bound to -- 'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS' -- contains a shader using the @TaskEXT@ @Execution@ @Model@, The -- product of @groupCountX@, @groupCountY@ and @groupCountZ@ /must/ be -- less than or equal to -- 'PhysicalDeviceMeshShaderPropertiesEXT'::@maxTaskWorkGroupTotalCount@ -- --- - [[VUID-{refpage}-TaskEXT-07326]] If the current pipeline bound to +-- - #VUID-VkDrawMeshTasksIndirectCommandEXT-TaskEXT-07326# If the +-- current pipeline bound to -- 'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS' -- does not contain a shader using the @TaskEXT@ @Execution@ @Model@, -- @groupCountX@ /must/ be less than or equal to -- 'PhysicalDeviceMeshShaderPropertiesEXT'::@maxMeshWorkGroupCount@[0] -- --- - [[VUID-{refpage}-TaskEXT-07327]] If the current pipeline bound to +-- - #VUID-VkDrawMeshTasksIndirectCommandEXT-TaskEXT-07327# If the +-- current pipeline bound to -- 'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS' -- does not contain a shader using the @TaskEXT@ @Execution@ @Model@, -- @groupCountY@ /must/ be less than or equal to -- 'PhysicalDeviceMeshShaderPropertiesEXT'::@maxMeshWorkGroupCount@[1] -- --- - [[VUID-{refpage}-TaskEXT-07328]] If the current pipeline bound to +-- - #VUID-VkDrawMeshTasksIndirectCommandEXT-TaskEXT-07328# If the +-- current pipeline bound to -- 'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS' -- does not contain a shader using the @TaskEXT@ @Execution@ @Model@, -- @groupCountZ@ /must/ be less than or equal to -- 'PhysicalDeviceMeshShaderPropertiesEXT'::@maxMeshWorkGroupCount@[2] -- --- - [[VUID-{refpage}-TaskEXT-07329]] If the current pipeline bound to +-- - #VUID-VkDrawMeshTasksIndirectCommandEXT-TaskEXT-07329# If the +-- current pipeline bound to -- 'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS' -- does not contain a shader using the @TaskEXT@ @Execution@ @Model@, -- The product of @groupCountX@, @groupCountY@ and @groupCountZ@ /must/ diff --git a/src/Vulkan/Extensions/VK_EXT_mesh_shader.hs-boot b/src/Vulkan/Extensions/VK_EXT_mesh_shader.hs-boot index 93f14edc4..4f02c915c 100644 --- a/src/Vulkan/Extensions/VK_EXT_mesh_shader.hs-boot +++ b/src/Vulkan/Extensions/VK_EXT_mesh_shader.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- diff --git a/src/Vulkan/Extensions/VK_EXT_metal_objects.hs b/src/Vulkan/Extensions/VK_EXT_metal_objects.hs index d3e97da3c..0a1b45be4 100644 --- a/src/Vulkan/Extensions/VK_EXT_metal_objects.hs +++ b/src/Vulkan/Extensions/VK_EXT_metal_objects.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__; __Contact__] -- -- - Bill Hollings diff --git a/src/Vulkan/Extensions/VK_EXT_metal_objects.hs-boot b/src/Vulkan/Extensions/VK_EXT_metal_objects.hs-boot index 57c6aa5cb..b41ae77db 100644 --- a/src/Vulkan/Extensions/VK_EXT_metal_objects.hs-boot +++ b/src/Vulkan/Extensions/VK_EXT_metal_objects.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__; __Contact__] -- -- - Bill Hollings diff --git a/src/Vulkan/Extensions/VK_EXT_metal_surface.hs b/src/Vulkan/Extensions/VK_EXT_metal_surface.hs index 3a6ccb828..546e072a0 100644 --- a/src/Vulkan/Extensions/VK_EXT_metal_surface.hs +++ b/src/Vulkan/Extensions/VK_EXT_metal_surface.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- diff --git a/src/Vulkan/Extensions/VK_EXT_metal_surface.hs-boot b/src/Vulkan/Extensions/VK_EXT_metal_surface.hs-boot index cd57e5c25..90df4f3d6 100644 --- a/src/Vulkan/Extensions/VK_EXT_metal_surface.hs-boot +++ b/src/Vulkan/Extensions/VK_EXT_metal_surface.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- diff --git a/src/Vulkan/Extensions/VK_EXT_multi_draw.hs b/src/Vulkan/Extensions/VK_EXT_multi_draw.hs index 1954549a1..66656461c 100644 --- a/src/Vulkan/Extensions/VK_EXT_multi_draw.hs +++ b/src/Vulkan/Extensions/VK_EXT_multi_draw.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- @@ -191,10 +194,12 @@ foreign import ccall -- -- = Description -- --- @drawCount@ draws are executed with parameters taken from @pVertexInfo@. --- The number of draw commands recorded is @drawCount@, with each command --- reading, sequentially, a @firstVertex@ and a @vertexCount@ from --- @pVertexInfo@. +-- The number of draws recorded is @drawCount@, with each draw reading, +-- sequentially, a @firstVertex@ and a @vertexCount@ from @pVertexInfo@. +-- For each recorded draw, primitives are assembled as for +-- 'Vulkan.Core10.CommandBufferBuilding.cmdDraw', and drawn @instanceCount@ +-- times with @instanceIndex@ starting with @firstInstance@ and +-- sequentially for each instance. -- -- == Valid Usage -- @@ -249,6 +254,16 @@ foreign import ccall -- /must/ contain -- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT' -- +-- - #VUID-vkCmdDrawMultiEXT-None-02693# If the +-- +-- extension is not enabled and any 'Vulkan.Core10.Handles.ImageView' +-- is sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a +-- result of this command, it /must/ not have a +-- 'Vulkan.Core10.Enums.ImageViewType.ImageViewType' of +-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_3D', +-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE', or +-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE_ARRAY' +-- -- - #VUID-vkCmdDrawMultiEXT-filterCubic-02694# Any -- 'Vulkan.Core10.Handles.ImageView' being sampled with -- 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a result of this @@ -274,6 +289,33 @@ foreign import ccall -- returned by -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceImageFormatProperties2' -- +-- - #VUID-vkCmdDrawMultiEXT-cubicRangeClamp-09212# If the +-- +-- feature is not enabled, then any 'Vulkan.Core10.Handles.ImageView' +-- being sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as +-- a result of this command +-- +-- [/must/ not have a 'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo'] +-- @reductionMode@ equal to +-- 'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM' +-- +-- - #VUID-vkCmdDrawMultiEXT-reductionMode-09213# Any +-- 'Vulkan.Core10.Handles.ImageView' being sampled with a +-- 'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo'::@reductionMode@ +-- equal to +-- 'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM' +-- as a result of this command /must/ sample with +-- 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' +-- +-- - #VUID-vkCmdDrawMultiEXT-selectableCubicWeights-09214# If the +-- +-- feature is not enabled, then any 'Vulkan.Core10.Handles.ImageView' +-- being sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as +-- a result of this command /must/ have +-- 'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.SamplerCubicWeightsCreateInfoQCOM'::@cubicWeights@ +-- equal to +-- 'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM' +-- -- - #VUID-vkCmdDrawMultiEXT-flags-02696# Any -- 'Vulkan.Core10.Handles.Image' created with a -- 'Vulkan.Core10.Image.ImageCreateInfo'::@flags@ containing @@ -315,11 +357,9 @@ foreign import ccall -- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT' -- -- - #VUID-vkCmdDrawMultiEXT-None-08600# For each set /n/ that is --- statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to the --- pipeline bind point used by this command, or by any of the --- 'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages --- corresponding to the pipeline bind point used by this command, a --- descriptor set /must/ have been bound to /n/ at the same pipeline +-- statically used by +-- , +-- a descriptor set /must/ have been bound to /n/ at the same pipeline -- bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is -- compatible for set /n/, with the -- 'Vulkan.Core10.Handles.PipelineLayout' or @@ -329,12 +369,10 @@ foreign import ccall -- -- -- - #VUID-vkCmdDrawMultiEXT-None-08601# For each push constant that is --- statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to the --- pipeline bind point used by this command, or by any of the --- 'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages --- corresponding to the pipeline bind point used by this command, a --- push constant value /must/ have been set for the same pipeline bind --- point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is +-- statically used by +-- , +-- a push constant value /must/ have been set for the same pipeline +-- bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is -- compatible for push constants, with the -- 'Vulkan.Core10.Handles.PipelineLayout' or -- 'Vulkan.Core10.Handles.DescriptorSetLayout' and @@ -346,12 +384,10 @@ foreign import ccall -- - #VUID-vkCmdDrawMultiEXT-maintenance4-08602# If the -- -- feature is not enabled, then for each push constant that is --- statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to the --- pipeline bind point used by this command, or by any of the --- 'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages --- corresponding to the pipeline bind point used by this command, a --- push constant value /must/ have been set for the same pipeline bind --- point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is +-- statically used by +-- , +-- a push constant value /must/ have been set for the same pipeline +-- bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is -- compatible for push constants, with the -- 'Vulkan.Core10.Handles.PipelineLayout' or -- 'Vulkan.Core10.Handles.DescriptorSetLayout' and @@ -512,34 +548,25 @@ foreign import ccall -- buffer as specified in the descriptor set bound to the same pipeline -- bind point -- --- - #VUID-vkCmdDrawMultiEXT-commandBuffer-08614# If @commandBuffer@ is +-- - #VUID-vkCmdDrawMultiEXT-commandBuffer-02707# If @commandBuffer@ is -- an unprotected command buffer and -- --- is not supported, any resource accessed by the --- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind --- point used by this command or any --- 'Vulkan.Extensions.Handles.ShaderEXT' object bound to a stage --- corresponding to the pipeline bind point used by this command /must/ --- not be a protected resource --- --- - #VUID-vkCmdDrawMultiEXT-None-08615# If the --- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind --- point used by this command or any --- 'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding --- to the pipeline bind point used by this command accesses a --- 'Vulkan.Core10.Handles.Sampler' or 'Vulkan.Core10.Handles.ImageView' --- object that enables +-- is not supported, any resource accessed by +-- +-- /must/ not be a protected resource +-- +-- - #VUID-vkCmdDrawMultiEXT-None-06550# If +-- +-- accesses a 'Vulkan.Core10.Handles.Sampler' or +-- 'Vulkan.Core10.Handles.ImageView' object that enables -- , -- that object /must/ only be used with @OpImageSample*@ or -- @OpImageSparseSample*@ instructions -- --- - #VUID-vkCmdDrawMultiEXT-ConstOffset-08616# If the --- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind --- point used by this command or any --- 'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding --- to the pipeline bind point used by this command accesses a --- 'Vulkan.Core10.Handles.Sampler' or 'Vulkan.Core10.Handles.ImageView' --- object that enables +-- - #VUID-vkCmdDrawMultiEXT-ConstOffset-06551# If +-- +-- accesses a 'Vulkan.Core10.Handles.Sampler' or +-- 'Vulkan.Core10.Handles.ImageView' object that enables -- , -- that object /must/ not use the @ConstOffset@ and @Offset@ operands -- @@ -551,17 +578,23 @@ foreign import ccall -- -- - #VUID-vkCmdDrawMultiEXT-format-07753# If a -- 'Vulkan.Core10.Handles.ImageView' is accessed as a result of this --- command, then the image view’s @format@ /must/ match the numeric --- format from the @Sampled@ @Type@ operand of the @OpTypeImage@ as --- described in the SPIR-V Sampled Type column of the --- --- table --- --- - #VUID-vkCmdDrawMultiEXT-None-04115# If a --- 'Vulkan.Core10.Handles.ImageView' is accessed using @OpImageWrite@ --- as a result of this command, then the @Type@ of the @Texel@ operand --- of that instruction /must/ have at least as many components as the --- image view’s format +-- command, then the +-- +-- of the image view’s @format@ and the @Sampled@ @Type@ operand of the +-- @OpTypeImage@ /must/ match +-- +-- - #VUID-vkCmdDrawMultiEXT-OpImageWrite-08795# If a +-- 'Vulkan.Core10.Handles.ImageView' created with a format other than +-- 'Vulkan.Core10.Enums.Format.FORMAT_A8_UNORM_KHR' is accessed using +-- @OpImageWrite@ as a result of this command, then the @Type@ of the +-- @Texel@ operand of that instruction /must/ have at least as many +-- components as the image view’s format +-- +-- - #VUID-vkCmdDrawMultiEXT-OpImageWrite-08796# If a +-- 'Vulkan.Core10.Handles.ImageView' created with the format +-- 'Vulkan.Core10.Enums.Format.FORMAT_A8_UNORM_KHR' is accessed using +-- @OpImageWrite@ as a result of this command, then the @Type@ of the +-- @Texel@ operand of that instruction /must/ have four components -- -- - #VUID-vkCmdDrawMultiEXT-OpImageWrite-04469# If a -- 'Vulkan.Core10.Handles.BufferView' is accessed using @OpImageWrite@ @@ -663,6 +696,8 @@ foreign import ccall -- -- - #VUID-vkCmdDrawMultiEXT-OpImageWeightedSampleQCOM-06977# If -- @OpImageWeightedSampleQCOM@, @OpImageBoxFilterQCOM@, +-- @OpImageBlockMatchWindowSSDQCOM@, @OpImageBlockMatchWindowSADQCOM@, +-- @OpImageBlockMatchGatherSSDQCOM@, @OpImageBlockMatchGatherSADQCOM@, -- @OpImageBlockMatchSSDQCOM@, or @OpImageBlockMatchSADQCOM@ uses a -- 'Vulkan.Core10.Handles.Sampler' as a result of this command, then -- the sampler /must/ have been created with @@ -670,12 +705,35 @@ foreign import ccall -- -- - #VUID-vkCmdDrawMultiEXT-OpImageWeightedSampleQCOM-06978# If any -- command other than @OpImageWeightedSampleQCOM@, --- @OpImageBoxFilterQCOM@, @OpImageBlockMatchSSDQCOM@, or +-- @OpImageBoxFilterQCOM@, @OpImageBlockMatchWindowSSDQCOM@, +-- @OpImageBlockMatchWindowSADQCOM@, @OpImageBlockMatchGatherSSDQCOM@, +-- @OpImageBlockMatchGatherSADQCOM@, @OpImageBlockMatchSSDQCOM@, or -- @OpImageBlockMatchSADQCOM@ uses a 'Vulkan.Core10.Handles.Sampler' as -- a result of this command, then the sampler /must/ not have been -- created with -- 'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM' -- +-- - #VUID-vkCmdDrawMultiEXT-OpImageBlockMatchWindow-09215# If a +-- @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@ +-- instruction is used to read from an +-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then +-- the image view’s +-- +-- /must/ contain +-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM' +-- +-- - #VUID-vkCmdDrawMultiEXT-OpImageBlockMatchWindow-09216# If a +-- @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@ +-- instruction is used to read from an +-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then +-- the image view’s format /must/ be a single-component format. +-- +-- - #VUID-vkCmdDrawMultiEXT-OpImageBlockMatchWindow-09217# If a +-- @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@ +-- read from a reference image as result of this command, then the +-- specified reference coordinates /must/ not fail +-- +-- -- - #VUID-vkCmdDrawMultiEXT-None-07288# Any shader invocation executed -- by this command /must/ -- @@ -720,15 +778,86 @@ foreign import ccall -- not be written in any way other than as an attachment by this -- command -- --- - #VUID-vkCmdDrawMultiEXT-None-06538# If any recorded command in the --- current subpass will write to an image subresource as an attachment, --- this command /must/ not read from the memory backing that image --- subresource in any other way than as an attachment +-- - #VUID-vkCmdDrawMultiEXT-None-09000# If a color attachment is written +-- by any prior command in this subpass or by the load, store, or +-- resolve operations for this subpass, it is not in the +-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT' +-- image layout, and either: +-- +-- - the +-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT' +-- is set on the currently bound pipeline or +-- +-- - the last call to +-- 'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT' +-- included +-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT' +-- and +-- +-- - there is no currently bound graphics pipeline or +-- +-- - the currently bound graphics pipeline was created with +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT' +-- it /must/ not be accessed in any way other than as an +-- attachment by this command +-- +-- - #VUID-vkCmdDrawMultiEXT-None-09001# If a depth attachment is written +-- by any prior command in this subpass or by the load, store, or +-- resolve operations for this subpass, it is not in the +-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT' +-- image layout, and either: +-- +-- - the +-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT' +-- is set on the currently bound pipeline or +-- +-- - the last call to +-- 'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT' +-- included +-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_DEPTH_BIT' +-- and +-- +-- - there is no currently bound graphics pipeline or +-- +-- - the currently bound graphics pipeline was created with +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT' +-- it /must/ not be accessed in any way other than as an +-- attachment by this command +-- +-- - #VUID-vkCmdDrawMultiEXT-None-09002# If a stencil attachment is +-- written by any prior command in this subpass or by the load, store, +-- or resolve operations for this subpass, it is not in the +-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT' +-- image layout, and either: +-- +-- - the +-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT' +-- is set on the currently bound pipeline or +-- +-- - the last call to +-- 'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT' +-- included +-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT' +-- and +-- +-- - there is no currently bound graphics pipeline or +-- +-- - the currently bound graphics pipeline was created with +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT' +-- it /must/ not be accessed in any way other than as an +-- attachment by this command +-- +-- - #VUID-vkCmdDrawMultiEXT-None-09003# If an attachment is written by +-- any prior command in this subpass or by the load, store, or resolve +-- operations for this subpass, it /must/ not be accessed in any way +-- other than as an attachment, storage image, or sampled image by this +-- command -- --- - #VUID-vkCmdDrawMultiEXT-None-06539# If any recorded command in the --- current subpass will read from an image subresource used as an --- attachment in any way other than as an attachment, this command --- /must/ not write to that image subresource as an attachment +-- - #VUID-vkCmdDrawMultiEXT-None-06539# If any previously recorded +-- command in the current subpass accessed an image subresource used as +-- an attachment in this subpass in any way other than as an +-- attachment, this command /must/ not write to that image subresource +-- as an attachment -- -- - #VUID-vkCmdDrawMultiEXT-None-06886# If the current render pass -- instance uses a depth\/stencil attachment with a read-only layout @@ -798,18 +927,23 @@ foreign import ccall -- state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS' dynamic -- state enabled then --- 'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBias' /must/ have --- been called in the current command buffer prior to this drawing --- command +-- 'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBias' or +-- 'Vulkan.Extensions.VK_EXT_depth_bias_control.cmdSetDepthBias2EXT' +-- /must/ have been called in the current command buffer prior to this +-- drawing command -- -- - #VUID-vkCmdDrawMultiEXT-None-08620# If a shader object is bound to -- any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnable' -- in the current command buffer set @depthBiasEnable@ to -- 'Vulkan.Core10.FundamentalTypes.TRUE', --- 'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBias' /must/ have --- been called in the current command buffer prior to this drawing --- command +-- 'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBias' or +-- 'Vulkan.Extensions.VK_EXT_depth_bias_control.cmdSetDepthBias2EXT' +-- /must/ have been called in the current command buffer prior to this +-- drawing command -- -- - #VUID-vkCmdDrawMultiEXT-None-07835# If the bound graphics pipeline -- state was created with the @@ -832,7 +966,7 @@ foreign import ccall -- the most recent call to -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT' -- in the current command buffer set the same element of --- @pColorBlendEquations@ to an +-- @pColorBlendEquations@ to a -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.ColorBlendEquationEXT' -- structure with any 'Vulkan.Core10.Enums.BlendFactor.BlendFactor' -- member with a value of @@ -847,16 +981,20 @@ foreign import ccall -- - #VUID-vkCmdDrawMultiEXT-None-07836# If the bound graphics pipeline -- state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS' --- dynamic state enabled then +-- dynamic state enabled, and if the current @depthBoundsTestEnable@ +-- state is 'Vulkan.Core10.FundamentalTypes.TRUE', then -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBounds' /must/ have -- been called in the current command buffer prior to this drawing -- command -- -- - #VUID-vkCmdDrawMultiEXT-None-08622# If a shader object is bound to -- any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable' -- in the current command buffer set @depthBoundsTestEnable@ to --- 'Vulkan.Core10.FundamentalTypes.TRUE', +-- 'Vulkan.Core10.FundamentalTypes.TRUE', then -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBounds' /must/ have -- been called in the current command buffer prior to this drawing -- command @@ -864,7 +1002,8 @@ foreign import ccall -- - #VUID-vkCmdDrawMultiEXT-None-07837# If the bound graphics pipeline -- state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_COMPARE_MASK' --- dynamic state enabled then +-- dynamic state enabled, and if the current @stencilTestEnable@ state +-- is 'Vulkan.Core10.FundamentalTypes.TRUE', then -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilCompareMask' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -881,7 +1020,8 @@ foreign import ccall -- - #VUID-vkCmdDrawMultiEXT-None-07838# If the bound graphics pipeline -- state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_WRITE_MASK' --- dynamic state enabled then +-- dynamic state enabled, and if the current @stencilTestEnable@ state +-- is 'Vulkan.Core10.FundamentalTypes.TRUE', then -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilWriteMask' /must/ -- have been called in the current command buffer prior to this drawing -- command @@ -898,7 +1038,8 @@ foreign import ccall -- - #VUID-vkCmdDrawMultiEXT-None-07839# If the bound graphics pipeline -- state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_REFERENCE' --- dynamic state enabled then +-- dynamic state enabled, and if the current @stencilTestEnable@ state +-- is 'Vulkan.Core10.FundamentalTypes.TRUE', then -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilReference' /must/ -- have been called in the current command buffer prior to this drawing -- command @@ -938,7 +1079,10 @@ foreign import ccall -- any graphics stage, and the most recent call to -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT' -- in the current command buffer set @sampleLocationsEnable@ to --- 'Vulkan.Core10.FundamentalTypes.TRUE', +-- 'Vulkan.Core10.FundamentalTypes.TRUE', and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -962,7 +1106,10 @@ foreign import ccall -- drawing command -- -- - #VUID-vkCmdDrawMultiEXT-None-08627# If a shader object is bound to --- any graphics stage, +-- any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetCullMode' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -976,7 +1123,10 @@ foreign import ccall -- drawing command -- -- - #VUID-vkCmdDrawMultiEXT-None-08628# If a shader object is bound to --- any graphics stage, +-- any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetFrontFace' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -990,7 +1140,10 @@ foreign import ccall -- drawing command -- -- - #VUID-vkCmdDrawMultiEXT-None-08629# If a shader object is bound to --- any graphics stage, +-- any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -1004,7 +1157,10 @@ foreign import ccall -- drawing command -- -- - #VUID-vkCmdDrawMultiEXT-None-08630# If a shader object is bound to --- any graphics stage, +-- any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -1019,9 +1175,12 @@ foreign import ccall -- -- - #VUID-vkCmdDrawMultiEXT-None-08631# If a shader object is bound to -- any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable' -- in the current command buffer set @depthTestEnable@ to --- 'Vulkan.Core10.FundamentalTypes.TRUE', +-- 'Vulkan.Core10.FundamentalTypes.TRUE', then -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthCompareOp' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -1037,7 +1196,10 @@ foreign import ccall -- - #VUID-vkCmdDrawMultiEXT-None-08632# If a shader object is bound to -- any graphics stage, and the -- --- feature is enabled, the +-- feature is enabled, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then the -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -1157,6 +1319,13 @@ foreign import ccall -- the last call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- +-- - #VUID-vkCmdDrawMultiEXT-None-09232# If a shader object is bound to +-- any graphics stage, and the @VK_NV_clip_space_w_scaling@ extension +-- is enabled on the device, then +-- 'Vulkan.Extensions.VK_NV_clip_space_w_scaling.cmdSetViewportWScalingNV' +-- must have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdDrawMultiEXT-None-08636# If a shader object is bound to -- any graphics stage, and the @VK_NV_clip_space_w_scaling@ extension -- is enabled on the device, then the @viewportCount@ parameter in the @@ -1190,6 +1359,30 @@ foreign import ccall -- the last call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- +-- - #VUID-vkCmdDrawMultiEXT-shadingRateImage-09233# If the +-- +-- feature is enabled, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set rasterizerDiscardEnable to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then +-- 'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetCoarseSampleOrderNV' +-- must have been called in the current command buffer prior to this +-- drawing command +-- +-- - #VUID-vkCmdDrawMultiEXT-shadingRateImage-09234# If a shader object +-- is bound to any graphics stage, and the +-- +-- feature is enabled on the device, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set rasterizerDiscardEnable to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetShadingRateImageEnableNV' +-- in the current command buffer set shadingRateImageEnable to +-- 'Vulkan.Core10.FundamentalTypes.TRUE', then +-- 'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetViewportShadingRatePaletteNV' +-- must have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdDrawMultiEXT-None-08637# If a shader object is bound to -- any graphics stage, and the -- @@ -1242,6 +1435,14 @@ foreign import ccall -- /must/ have been called in the current command buffer prior to this -- drawing command -- +-- - #VUID-vkCmdDrawMultiEXT-exclusiveScissor-09235# If a shader object +-- is bound to any graphics stage, and the +-- +-- feature is enabled, then +-- 'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorEnableNV' +-- must have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdDrawMultiEXT-None-08638# If a shader object is bound to -- any graphics stage, and the most recent call to -- 'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorEnableNV' @@ -1293,7 +1494,9 @@ foreign import ccall -- 'Vulkan.Core10.Enums.LogicOp.LogicOp' value -- -- - #VUID-vkCmdDrawMultiEXT-None-08641# If a shader object is bound to --- any graphics stage, and the +-- the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage, and the -- -- feature is enabled on the device, and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' @@ -1378,6 +1581,11 @@ foreign import ccall -- to be the same as the number of samples for the current render pass -- color and\/or depth\/stencil attachments -- +-- - #VUID-vkCmdDrawMultiEXT-None-08876# If a shader object is bound to +-- any graphics stage, the current render pass instance /must/ have +-- been begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' +-- -- - #VUID-vkCmdDrawMultiEXT-imageView-06172# If the current render pass -- instance was begun with -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', @@ -1450,8 +1658,11 @@ foreign import ccall -- equal to -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ -- --- - #VUID-vkCmdDrawMultiEXT-colorAttachmentCount-06180# If the current --- render pass instance was begun with +-- - #VUID-vkCmdDrawMultiEXT-dynamicRenderingUnusedAttachments-08910# If +-- the +-- +-- feature is not enabled, and the current render pass instance was +-- begun with -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' -- and -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ @@ -1464,8 +1675,32 @@ foreign import ccall -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@ -- used to create the currently bound graphics pipeline -- --- - #VUID-vkCmdDrawMultiEXT-colorAttachmentCount-07616# If the current --- render pass instance was begun with +-- - #VUID-vkCmdDrawMultiEXT-dynamicRenderingUnusedAttachments-08911# If +-- the +-- +-- feature is enabled, and the current render pass instance was begun +-- with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' +-- and +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ +-- greater than @0@, then each element of the +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@ +-- array with a @imageView@ not equal to +-- 'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created +-- with a 'Vulkan.Core10.Enums.Format.Format' equal to the +-- corresponding element of +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@ +-- used to create the currently bound graphics pipeline, or the +-- corresponding element of +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@, +-- if it exists, /must/ be +-- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' +-- +-- - #VUID-vkCmdDrawMultiEXT-dynamicRenderingUnusedAttachments-08912# If +-- the +-- +-- feature is not enabled, and the current render pass instance was +-- begun with -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' -- and -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ @@ -1478,6 +1713,132 @@ foreign import ccall -- used to create the currently bound pipeline equal to -- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' -- +-- - #VUID-vkCmdDrawMultiEXT-colorAttachmentCount-09362# If the current +-- render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- with a +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ +-- equal to @1@, there is no shader object bound to any graphics stage, +-- and a color attachment with a resolve mode of +-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID', +-- each element of the +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@ +-- array with a @resolveImageView@ not equal to +-- 'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created +-- with an image created with a +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- value equal to the +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- value used to create the currently bound graphics pipeline +-- +-- - #VUID-vkCmdDrawMultiEXT-None-09363# If there is no shader object +-- bound to any graphics stage, the current render pass instance was +-- begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' +-- and a +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ +-- equal to @1@, and a color attachment with a resolve mode of +-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID', +-- each element of the +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@ +-- array with a @imageView@ not equal to +-- 'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created +-- with an image created with a +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- value equal to the +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- value used to create the currently bound graphics pipeline +-- +-- - #VUID-vkCmdDrawMultiEXT-None-09364# If the current render pass +-- instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- there is no shader object bound to any graphics stage, and the +-- currently bound graphics pipeline was created with a non-zero +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- value and with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT' +-- dynamic state enabled, then +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT' +-- /must/ have set the blend enable to +-- 'Vulkan.Core10.FundamentalTypes.FALSE' prior to this drawing command +-- +-- - #VUID-vkCmdDrawMultiEXT-None-09365# If the current render pass +-- instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- there is no shader object bound to any graphics stage, and the +-- currently bound graphics pipeline was created with a non-zero +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- value and with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT' +-- dynamic state enabled, then +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT' +-- /must/ have set @rasterizationSamples@ to +-- 'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT' prior +-- to this drawing command +-- +-- - #VUID-vkCmdDrawMultiEXT-None-09366# If there is a shader object +-- bound to any graphics stage, and the current render pass includes a +-- color attachment that uses the +-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID' +-- resolve mode, then +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT' +-- /must/ have set blend enable to +-- 'Vulkan.Core10.FundamentalTypes.FALSE' prior to this drawing command +-- +-- - #VUID-vkCmdDrawMultiEXT-rasterizationSamples-09367# If there is a +-- shader object bound to any graphics stage, and the current render +-- pass includes a color attachment that uses the +-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID' +-- resolve mode, then +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT' +-- /must/ have set @rasterizationSamples@ to +-- 'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT' prior +-- to this drawing command +-- +-- - #VUID-vkCmdDrawMultiEXT-None-09368# If the current render pass +-- instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- there is no shader object bound to any graphics stage, and the +-- currently bound graphics pipeline was created with a non-zero +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- value and with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR' +-- dynamic state enabled, then +-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR' +-- /must/ have set @pFragmentSize->width@ to @1@ prior to this drawing +-- command +-- +-- - #VUID-vkCmdDrawMultiEXT-None-09369# If the current render pass +-- instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- there is no shader object bound to any graphics stage, and the +-- currently bound graphics pipeline was created with a non-zero +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- value and with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR' +-- dynamic state enabled, then +-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR' +-- /must/ have set @pFragmentSize->height@ to @1@ prior to this drawing +-- command +-- +-- - #VUID-vkCmdDrawMultiEXT-pFragmentSize-09370# If there is a shader +-- object bound to any graphics stage, and the current render pass +-- includes a color attachment that uses the +-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID' +-- resolve mode, then +-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR' +-- /must/ have set @pFragmentSize->width@ to @1@ prior to this drawing +-- command +-- +-- - #VUID-vkCmdDrawMultiEXT-pFragmentSize-09371# If there is a shader +-- object bound to any graphics stage, and the current render pass +-- includes a color attachment that uses the +-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID' +-- resolve mode, then +-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR' +-- /must/ have set @pFragmentSize->height@ to @1@ prior to this drawing +-- command +-- -- - #VUID-vkCmdDrawMultiEXT-None-07749# If the bound graphics pipeline -- state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT' @@ -1489,7 +1850,9 @@ foreign import ccall -- - #VUID-vkCmdDrawMultiEXT-None-08646# If the -- -- feature is enabled on the device, and a shader object is bound to --- the fragment stage, and the most recent call to +-- the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage, and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' -- in the current command buffer set @rasterizerDiscardEnable@ to -- 'Vulkan.Core10.FundamentalTypes.FALSE', then @@ -1509,7 +1872,9 @@ foreign import ccall -- - #VUID-vkCmdDrawMultiEXT-None-08647# If the -- -- feature is enabled on the device, and a shader object is bound to --- the fragment stage, and the most recent call to +-- the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage, and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' -- in the current command buffer set @rasterizerDiscardEnable@ to -- 'Vulkan.Core10.FundamentalTypes.FALSE', then the @attachmentCount@ @@ -1535,6 +1900,16 @@ foreign import ccall -- /must/ have been called in the current command buffer prior to this -- drawing command -- +-- - #VUID-vkCmdDrawMultiEXT-rasterizerDiscardEnable-09236# If the +-- @VK_EXT_discard_rectangles@ extension is enabled, and a shader +-- object is bound to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then +-- 'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEXT' +-- /must/ have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdDrawMultiEXT-None-08648# If the -- @VK_EXT_discard_rectangles@ extension is enabled, and a shader -- object is bound to any graphics stage, and the most recent call to @@ -1566,10 +1941,24 @@ foreign import ccall -- /must/ have been called in the current command buffer prior to this -- drawing command -- --- - #VUID-vkCmdDrawMultiEXT-pDepthAttachment-06181# If the current --- render pass instance was begun with --- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' --- and +-- - #VUID-vkCmdDrawMultiEXT-dynamicRenderingUnusedAttachments-08913# If +-- the current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- the +-- +-- feature is not enabled, and +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@ +-- was 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@ +-- used to create the currently bound graphics pipeline /must/ be equal +-- to 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' +-- +-- - #VUID-vkCmdDrawMultiEXT-dynamicRenderingUnusedAttachments-08914# If +-- current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- the +-- +-- feature is not enabled, and -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@ -- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@ @@ -1577,20 +1966,39 @@ foreign import ccall -- to the 'Vulkan.Core10.Enums.Format.Format' used to create -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@ -- --- - #VUID-vkCmdDrawMultiEXT-pDepthAttachment-07617# If the current --- render pass instance was begun with --- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' --- and +-- - #VUID-vkCmdDrawMultiEXT-dynamicRenderingUnusedAttachments-08915# If +-- the current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- the +-- +-- feature is enabled, -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@ --- was 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of +-- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the value of -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@ +-- used to create the currently bound graphics pipeline was not equal +-- to the 'Vulkan.Core10.Enums.Format.Format' used to create +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@, +-- the value of the format /must/ be +-- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' +-- +-- - #VUID-vkCmdDrawMultiEXT-dynamicRenderingUnusedAttachments-08916# If +-- the current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- the +-- +-- feature is not enabled, and +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@ +-- was 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@ -- used to create the currently bound graphics pipeline /must/ be equal -- to 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' -- --- - #VUID-vkCmdDrawMultiEXT-pStencilAttachment-06182# If the current --- render pass instance was begun with --- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' --- and +-- - #VUID-vkCmdDrawMultiEXT-dynamicRenderingUnusedAttachments-08917# If +-- current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- the +-- +-- feature is not enabled, and -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@ -- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@ @@ -1598,15 +2006,20 @@ foreign import ccall -- to the 'Vulkan.Core10.Enums.Format.Format' used to create -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@ -- --- - #VUID-vkCmdDrawMultiEXT-pStencilAttachment-07618# If the current --- render pass instance was begun with --- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' --- and +-- - #VUID-vkCmdDrawMultiEXT-dynamicRenderingUnusedAttachments-08918# If +-- the current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- the +-- +-- feature is enabled, -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@ --- was 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of +-- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the value of -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@ --- used to create the currently bound graphics pipeline /must/ be equal --- to 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' +-- used to create the currently bound graphics pipeline was not equal +-- to the 'Vulkan.Core10.Enums.Format.Format' used to create +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@, +-- the value of the format /must/ be +-- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' -- -- - #VUID-vkCmdDrawMultiEXT-imageView-06183# If the current render pass -- instance was begun with @@ -1753,16 +2166,50 @@ foreign import ccall -- 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@renderPass@ -- equal to 'Vulkan.Core10.APIConstants.NULL_HANDLE' -- --- - #VUID-vkCmdDrawMultiEXT-primitivesGeneratedQueryWithRasterizerDiscard-06708# --- If the --- --- feature is not enabled and the --- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PRIMITIVES_GENERATED_EXT' --- query is active, --- --- /must/ not be enabled --- --- - #VUID-vkCmdDrawMultiEXT-primitivesGeneratedQueryWithNonZeroStreams-06709# +-- - #VUID-vkCmdDrawMultiEXT-pColorAttachments-08963# If the current +-- render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- there is a graphics pipeline bound with a fragment shader that +-- statically writes to a color attachment, the color write mask is not +-- zero, color writes are enabled, and the corresponding element of the +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments->imageView@ +-- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', then the +-- corresponding element of +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@ +-- used to create the pipeline /must/ not be +-- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' +-- +-- - #VUID-vkCmdDrawMultiEXT-pDepthAttachment-08964# If the current +-- render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- there is a graphics pipeline bound, depth test is enabled, depth +-- write is enabled, and the +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@ +-- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', then the +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@ +-- used to create the pipeline /must/ not be +-- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' +-- +-- - #VUID-vkCmdDrawMultiEXT-pStencilAttachment-08965# If the current +-- render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- there is a graphics pipeline bound, stencil test is enabled and the +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@ +-- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', then the +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@ +-- used to create the pipeline /must/ not be +-- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' +-- +-- - #VUID-vkCmdDrawMultiEXT-primitivesGeneratedQueryWithRasterizerDiscard-06708# +-- If the +-- +-- feature is not enabled and the +-- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PRIMITIVES_GENERATED_EXT' +-- query is active, +-- +-- /must/ not be enabled +-- +-- - #VUID-vkCmdDrawMultiEXT-primitivesGeneratedQueryWithNonZeroStreams-06709# -- If the -- -- feature is not enabled and the @@ -1779,6 +2226,22 @@ foreign import ccall -- /must/ have been called in the current command buffer prior to this -- drawing command -- +-- - #VUID-vkCmdDrawMultiEXT-None-07620# If the bound graphics pipeline +-- state was created with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT' +-- dynamic state enabled then +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClampEnableEXT' +-- /must/ have been called in the current command buffer prior to this +-- drawing command +-- +-- - #VUID-vkCmdDrawMultiEXT-None-09237# If a shader object is bound to +-- the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT' +-- stage, then +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetTessellationDomainOriginEXT' +-- /must/ have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdDrawMultiEXT-None-08650# If the -- -- feature is enabled, and a shader object is bound to any graphics @@ -1849,6 +2312,17 @@ foreign import ccall -- /must/ have been called in the current command buffer prior to this -- drawing command -- +-- - #VUID-vkCmdDrawMultiEXT-alphaToCoverageEnable-08919# If the bound +-- graphics pipeline state was created with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT' +-- dynamic state enabled, and @alphaToCoverageEnable@ was +-- 'Vulkan.Core10.FundamentalTypes.TRUE' in the last call to +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT', +-- then the +-- +-- /must/ contain a variable for the alpha @Component@ word in +-- @Location@ 0 at @Index@ 0 +-- -- - #VUID-vkCmdDrawMultiEXT-None-08654# If a shader object is bound to -- any graphics stage, and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' @@ -1858,6 +2332,15 @@ foreign import ccall -- /must/ have been called in the current command buffer prior to this -- drawing command -- +-- - #VUID-vkCmdDrawMultiEXT-alphaToCoverageEnable-08920# If a shader +-- object is bound to any graphics stage, and the most recent call to +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT' +-- in the current command buffer set @alphaToCoverageEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.TRUE', then the +-- +-- /must/ contain a variable for the alpha @Component@ word in +-- @Location@ 0 at @Index@ 0 +-- -- - #VUID-vkCmdDrawMultiEXT-None-07625# If the bound graphics pipeline -- state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT' @@ -1887,7 +2370,8 @@ foreign import ccall -- -- - #VUID-vkCmdDrawMultiEXT-None-08656# If the -- --- feature is enabled, and a shader object is bound to any graphics +-- feature is enabled, and a shader object is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' -- stage, and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' -- in the current command buffer set @rasterizerDiscardEnable@ to @@ -1905,7 +2389,9 @@ foreign import ccall -- drawing command -- -- - #VUID-vkCmdDrawMultiEXT-None-08657# If a shader object is bound to --- any graphics stage, and the most recent call to +-- the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage, and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' -- in the current command buffer set @rasterizerDiscardEnable@ to -- 'Vulkan.Core10.FundamentalTypes.FALSE', then @@ -1942,7 +2428,9 @@ foreign import ccall -- drawing command -- -- - #VUID-vkCmdDrawMultiEXT-None-08659# If a shader object is bound to --- any graphics stage, and the most recent call to +-- the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage, and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' -- in the current command buffer set @rasterizerDiscardEnable@ to -- 'Vulkan.Core10.FundamentalTypes.FALSE', then @@ -1960,7 +2448,8 @@ foreign import ccall -- -- - #VUID-vkCmdDrawMultiEXT-None-08660# If the -- --- feature is enabled, and a shader object is bound to the geometry +-- feature is enabled, and a shader object is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT' -- stage, then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationStreamEXT' -- /must/ have been called in the current command buffer prior to this @@ -2059,7 +2548,8 @@ foreign import ccall -- drawing command -- -- - #VUID-vkCmdDrawMultiEXT-None-08665# If the @VK_EXT_provoking_vertex@ --- extension is enabled, and a shader object is bound to the vertex +-- extension is enabled, and a shader object is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT' -- stage, then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetProvokingVertexModeEXT' -- /must/ have been called in the current command buffer prior to this @@ -2169,7 +2659,7 @@ foreign import ccall -- stage, then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClipNegativeOneToOneEXT' -- /must/ have been called in the current command buffer prior to this --- drawing command ifdef::VK_EXT_extended_dynamic_state3 +-- drawing command -- -- - #VUID-vkCmdDrawMultiEXT-None-07640# If the bound graphics pipeline -- state was created with the @@ -2177,7 +2667,7 @@ foreign import ccall -- dynamic state enabled then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetViewportWScalingEnableNV' -- /must/ have been called in the current command buffer prior to this --- drawing command endif::VK_EXT_extended_dynamic_state3 +-- drawing command -- -- - #VUID-vkCmdDrawMultiEXT-None-08674# If the -- @VK_NV_clip_space_w_scaling@ extension is enabled, and a shader @@ -2211,7 +2701,12 @@ foreign import ccall -- -- - #VUID-vkCmdDrawMultiEXT-None-08676# If the -- @VK_NV_fragment_coverage_to_color@ extension is enabled, and a --- shader object is bound to any graphics stage, then +-- shader object is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -2226,8 +2721,9 @@ foreign import ccall -- -- - #VUID-vkCmdDrawMultiEXT-None-08677# If the -- @VK_NV_fragment_coverage_to_color@ extension is enabled, and a --- shader object is bound to any graphics stage, and the most recent --- call to +-- shader object is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage, and the most recent call to -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV' -- in the current command buffer set @coverageToColorEnable@ to -- 'Vulkan.Core10.FundamentalTypes.TRUE', then @@ -2245,7 +2741,10 @@ foreign import ccall -- -- - #VUID-vkCmdDrawMultiEXT-None-08678# If the -- @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader --- object is bound to any graphics stage, then +-- object is bound to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationModeNV' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -2260,7 +2759,15 @@ foreign import ccall -- -- - #VUID-vkCmdDrawMultiEXT-None-08679# If the -- @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader --- object is bound to any graphics stage, then +-- object is bound to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationModeNV' +-- in the current command buffer set coverageModulationMode to any +-- value other than +-- 'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.COVERAGE_MODULATION_MODE_NONE_NV', +-- then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -2276,6 +2783,9 @@ foreign import ccall -- - #VUID-vkCmdDrawMultiEXT-None-08680# If the -- @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader -- object is bound to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV' -- in the current command buffer set @coverageModulationTableEnable@ to -- 'Vulkan.Core10.FundamentalTypes.TRUE', then @@ -2291,10 +2801,25 @@ foreign import ccall -- /must/ have been called in the current command buffer prior to this -- drawing command -- +-- - #VUID-vkCmdDrawMultiEXT-pipelineFragmentShadingRate-09238# If the +-- +-- feature is enabled, and a shader object is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set rasterizerDiscardEnable to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then +-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR' +-- must have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdDrawMultiEXT-None-08681# If the -- -- feature is enabled, and a shader object is bound to any graphics --- stage, then +-- stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetShadingRateImageEnableNV' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -2304,13 +2829,16 @@ foreign import ccall -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV' -- dynamic state enabled then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRepresentativeFragmentTestEnableNV' --- must have been called in the current command buffer prior to this +-- /must/ have been called in the current command buffer prior to this -- drawing command -- -- - #VUID-vkCmdDrawMultiEXT-None-08682# If the -- -- feature is enabled, and a shader object is bound to any graphics --- stage, then +-- stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRepresentativeFragmentTestEnableNV' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -2326,7 +2854,10 @@ foreign import ccall -- - #VUID-vkCmdDrawMultiEXT-None-08683# If the -- -- feature is enabled, and a shader object is bound to any graphics --- stage, then +-- stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageReductionModeNV' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -2375,18 +2906,29 @@ foreign import ccall -- in the last call to -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT' -- --- - #VUID-vkCmdDrawMultiEXT-multisampledRenderToSingleSampled-07475# If --- the bound graphics pipeline state was created with the +-- - #VUID-vkCmdDrawMultiEXT-rasterizationSamples-07474# If the bound +-- graphics pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT' --- state enabled, and none of the @VK_AMD_mixed_attachment_samples@ --- extension, @VK_NV_framebuffer_mixed_samples@ extension, or the --- --- feature is enabled, then the @rasterizationSamples@ in the last call --- to +-- state enabled, and neither the @VK_AMD_mixed_attachment_samples@ nor +-- the @VK_NV_framebuffer_mixed_samples@ extensions are enabled, then +-- the @rasterizationSamples@ in the last call to -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT' -- /must/ be the same as the current subpass color and\/or -- depth\/stencil attachments -- +-- - #VUID-vkCmdDrawMultiEXT-None-09211# If the bound graphics pipeline +-- state was created with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT' +-- state enabled, or a shader object is bound to any graphics stage, +-- and the current render pass instance includes a +-- 'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT' +-- structure with @multisampledRenderToSingleSampledEnable@ equal to +-- 'Vulkan.Core10.FundamentalTypes.TRUE', then the +-- @rasterizationSamples@ in the last call to +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT' +-- /must/ be the same as the @rasterizationSamples@ member of that +-- structure +-- -- - #VUID-vkCmdDrawMultiEXT-firstAttachment-07476# If the bound graphics -- pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT' @@ -2445,7 +2987,7 @@ foreign import ccall -- and -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendAdvancedEXT' -- have enabled advanced blending, then the number of active color --- attachments in the current subpass must not exceed +-- attachments in the current subpass /must/ not exceed -- -- -- - #VUID-vkCmdDrawMultiEXT-primitivesGeneratedQueryWithNonZeroStreams-07481# @@ -2607,7 +3149,7 @@ foreign import ccall -- @VK_NV_framebuffer_mixed_samples@ extension is enabled, and if -- current subpass has a depth\/stencil attachment and depth test, -- stencil test, or depth bounds test are enabled in the currently --- bound pipeline state, then the current @rasterizationSamples@ must +-- bound pipeline state, then the current @rasterizationSamples@ /must/ -- be the same as the sample count of the depth\/stencil attachment -- -- - #VUID-vkCmdDrawMultiEXT-coverageToColorEnable-07490# If the bound @@ -2638,7 +3180,7 @@ foreign import ccall -- states enabled, the current coverage reduction mode -- @coverageReductionMode@, then the current @rasterizationSamples@, -- and the sample counts for the color and depth\/stencil attachments --- (if the subpass has them) must be a valid combination returned by +-- (if the subpass has them) /must/ be a valid combination returned by -- 'Vulkan.Extensions.VK_NV_coverage_reduction_mode.getPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV' -- -- - #VUID-vkCmdDrawMultiEXT-viewportCount-07492# If the bound graphics @@ -2726,7 +3268,7 @@ foreign import ccall -- -- feature /must/ be enabled and -- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@strictLines@ --- must be VK_TRUE +-- /must/ be 'Vulkan.Core10.FundamentalTypes.TRUE' -- -- - #VUID-vkCmdDrawMultiEXT-conservativePointAndLineRasterization-07499# -- If the bound graphics pipeline state was created with the @@ -2753,7 +3295,15 @@ foreign import ccall -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT', -- then -- --- must not be active +-- /must/ not be active +-- +-- - #VUID-vkCmdDrawMultiEXT-None-08877# If the bound graphics pipeline +-- state was created with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT' +-- dynamic state +-- 'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT' +-- /must/ have been called in the current command buffer prior to this +-- drawing command -- -- - #VUID-vkCmdDrawMultiEXT-None-07850# If dynamic state was inherited -- from @@ -2763,7 +3313,7 @@ foreign import ccall -- -- - #VUID-vkCmdDrawMultiEXT-None-08684# If there is no bound graphics -- pipeline, 'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' --- /must/ have been called on the current command buffer with @pStages@ +-- /must/ have been called in the current command buffer with @pStages@ -- with an element of -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT' -- @@ -2772,7 +3322,7 @@ foreign import ccall -- -- feature is enabled, -- 'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/ --- have been called on the current command buffer with @pStages@ with +-- have been called in the current command buffer with @pStages@ with -- an element of -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT' -- @@ -2781,7 +3331,7 @@ foreign import ccall -- -- feature is enabled, -- 'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/ --- have been called on the current command buffer with @pStages@ with +-- have been called in the current command buffer with @pStages@ with -- an element of -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT' -- @@ -2790,13 +3340,13 @@ foreign import ccall -- -- feature is enabled, -- 'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/ --- have been called on the current command buffer with @pStages@ with +-- have been called in the current command buffer with @pStages@ with -- an element of -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT' -- -- - #VUID-vkCmdDrawMultiEXT-None-08688# If there is no bound graphics -- pipeline, 'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' --- /must/ have been called on the current command buffer with @pStages@ +-- /must/ have been called in the current command buffer with @pStages@ -- with an element of -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' -- @@ -2805,7 +3355,7 @@ foreign import ccall -- -- feature is enabled, -- 'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/ --- have been called on the current command buffer with @pStages@ with +-- have been called in the current command buffer with @pStages@ with -- an element of -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT' -- @@ -2814,7 +3364,7 @@ foreign import ccall -- -- feature is enabled, -- 'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/ --- have been called on the current command buffer with @pStages@ with +-- have been called in the current command buffer with @pStages@ with -- an element of -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT' -- @@ -2826,8 +3376,8 @@ foreign import ccall -- features is enabled, one of the -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT' or -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT' --- stages must have a valid 'Vulkan.Extensions.Handles.ShaderEXT' --- bound, and the other must have no +-- stages /must/ have a valid 'Vulkan.Extensions.Handles.ShaderEXT' +-- bound, and the other /must/ have no -- 'Vulkan.Extensions.Handles.ShaderEXT' bound -- -- - #VUID-vkCmdDrawMultiEXT-None-08694# If there is no bound graphics @@ -2892,6 +3442,37 @@ foreign import ccall -- 'Vulkan.Extensions.VK_EXT_shader_object.createShadersEXT' call -- /must/ not have any 'Vulkan.Extensions.Handles.ShaderEXT' bound -- +-- - #VUID-vkCmdDrawMultiEXT-None-08878# All bound graphics shader +-- objects /must/ have been created with identical or identically +-- defined push constant ranges +-- +-- - #VUID-vkCmdDrawMultiEXT-None-08879# All bound graphics shader +-- objects /must/ have been created with identical or identically +-- defined arrays of descriptor set layouts +-- +-- - #VUID-vkCmdDrawMultiEXT-colorAttachmentCount-09372# If the current +-- render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' +-- and a +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ +-- equal to @1@, a color attachment with a resolve mode of +-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID', +-- and a fragment shader is bound, it /must/ not declare the +-- @DepthReplacing@ or @StencilRefReplacingEXT@ execution modes +-- +-- - #VUID-vkCmdDrawMultiEXT-None-08880# If a shader object is bound to +-- the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage and the +-- +-- feature is enabled on the device, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE' +-- 'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT' +-- /must/ have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdDrawMultiEXT-pDynamicStates-08715# If the bound graphics -- pipeline state includes a fragment shader stage, was created with -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_WRITE_ENABLE' @@ -2914,6 +3495,32 @@ foreign import ccall -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilWriteMask' /must/ -- be @0@ -- +-- - #VUID-vkCmdDrawMultiEXT-None-09116# If a shader object is bound to +-- any graphics stage or the currently bound graphics pipeline was +-- created with +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_MASK_EXT', +-- and the format of any color attachment is +-- 'Vulkan.Core10.Enums.Format.FORMAT_E5B9G9R9_UFLOAT_PACK32', the +-- corresponding element of the @pColorWriteMasks@ parameter of +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorWriteMaskEXT' +-- /must/ either include all of +-- 'Vulkan.Core10.Enums.ColorComponentFlagBits.COLOR_COMPONENT_R_BIT', +-- 'Vulkan.Core10.Enums.ColorComponentFlagBits.COLOR_COMPONENT_G_BIT', +-- and +-- 'Vulkan.Core10.Enums.ColorComponentFlagBits.COLOR_COMPONENT_B_BIT', +-- or none of them +-- +-- - #VUID-vkCmdDrawMultiEXT-maxFragmentDualSrcAttachments-09239# If +-- +-- is enabled for any attachment where either the source or destination +-- blend factors for that attachment +-- , +-- the maximum value of @Location@ for any output attachment +-- +-- in the @Fragment@ @Execution@ @Model@ executed by this command +-- /must/ be less than +-- +-- -- - #VUID-vkCmdDrawMultiEXT-commandBuffer-02712# If @commandBuffer@ is a -- protected command buffer and -- @@ -2996,6 +3603,14 @@ foreign import ccall -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT' -- /must/ not be @NULL@ -- +-- - #VUID-vkCmdDrawMultiEXT-None-08881# If a shader object is bound to +-- the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT' +-- stage, then +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology' +-- /must/ have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdDrawMultiEXT-None-04914# If the bound graphics pipeline -- state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT' @@ -3012,6 +3627,53 @@ foreign import ccall -- @OpEntryPoint@ /must/ contain a location in -- 'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@location@ -- +-- - #VUID-vkCmdDrawMultiEXT-Input-08734# If the bound graphics pipeline +-- state was created with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT' +-- dynamic state enabled, then the numeric type associated with all +-- @Input@ variables of the corresponding @Location@ in the @Vertex@ +-- @Execution@ @Model@ @OpEntryPoint@ /must/ be the same as +-- 'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@format@ +-- +-- - #VUID-vkCmdDrawMultiEXT-format-08936# If there is a shader object +-- bound to a graphics stage or the currently bound graphics pipeline +-- was created with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT' +-- dynamic state enabled, and +-- 'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@format@ +-- has a 64-bit component, then the scalar width associated with all +-- @Input@ variables of the corresponding @Location@ in the @Vertex@ +-- @Execution@ @Model@ @OpEntryPoint@ /must/ be 64-bit +-- +-- - #VUID-vkCmdDrawMultiEXT-format-08937# If there is a shader object +-- bound to a graphics stage or the currently bound graphics pipeline +-- was created with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT' +-- dynamic state enabled, and the scalar width associated with a +-- @Location@ decorated @Input@ variable in the @Vertex@ @Execution@ +-- @Model@ @OpEntryPoint@ is 64-bit, then the corresponding +-- 'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@format@ +-- /must/ have a 64-bit component +-- +-- - #VUID-vkCmdDrawMultiEXT-None-09203# If there is a shader object +-- bound to a graphics stage or the currently bound graphics pipeline +-- was created with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT' +-- dynamic state enabled, and +-- 'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@format@ +-- has a 64-bit component, then all @Input@ variables at the +-- corresponding @Location@ in the @Vertex@ @Execution@ @Model@ +-- @OpEntryPoint@ /must/ not use components that are not present in the +-- format +-- +-- - #VUID-vkCmdDrawMultiEXT-None-08882# If a shader object is bound to +-- the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT' +-- stage, then +-- 'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT' +-- /must/ have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdDrawMultiEXT-None-04875# If the bound graphics pipeline -- state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT' @@ -3020,6 +3682,14 @@ foreign import ccall -- /must/ have been called in the current command buffer prior to this -- drawing command -- +-- - #VUID-vkCmdDrawMultiEXT-None-08883# If a shader object is bound to +-- the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT' +-- stage, then +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetPatchControlPointsEXT' +-- /must/ have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdDrawMultiEXT-None-04879# If the bound graphics pipeline -- state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE' @@ -3028,6 +3698,15 @@ foreign import ccall -- /must/ have been called in the current command buffer prior to this -- drawing command -- +-- - #VUID-vkCmdDrawMultiEXT-rasterizerDiscardEnable-08884# If a shader +-- object is bound to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetPrimitiveRestartEnable' +-- /must/ have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdDrawMultiEXT-stage-06481# The bound graphics pipeline -- /must/ not have been created with the -- 'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo'::@stage@ @@ -3038,6 +3717,13 @@ foreign import ccall -- or -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT' -- +-- - #VUID-vkCmdDrawMultiEXT-None-08885# There /must/ be no shader object +-- bound to either of the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT' +-- or +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT' +-- stages +-- -- - #VUID-vkCmdDrawMultiEXT-None-04933# The -- -- feature /must/ be enabled @@ -3102,9 +3788,9 @@ cmdDrawMultiEXT :: forall io -> -- | @pVertexInfo@ is a pointer to an array of 'MultiDrawInfoEXT' with vertex -- information to be drawn. ("vertexInfo" ::: Vector MultiDrawInfoEXT) - -> -- | @instanceCount@ is the number of instances to draw. + -> -- | @instanceCount@ is the number of instances per draw. ("instanceCount" ::: Word32) - -> -- | @firstInstance@ is the instance ID of the first instance to draw. + -> -- | @firstInstance@ is the instance ID of the first instance in each draw. ("firstInstance" ::: Word32) -> -- | @stride@ is the byte stride between consecutive elements of -- @pVertexInfo@. @@ -3142,12 +3828,14 @@ foreign import ccall -- -- = Description -- --- @drawCount@ indexed draws are executed with parameters taken from --- @pIndexInfo@. The number of draw commands recorded is @drawCount@, with --- each command reading, sequentially, a @firstIndex@ and an @indexCount@ --- from @pIndexInfo@. If @pVertexOffset@ is @NULL@, a @vertexOffset@ is --- also read from @pIndexInfo@, otherwise the value from dereferencing --- @pVertexOffset@ is used. +-- The number of draws recorded is @drawCount@, with each draw reading, +-- sequentially, a @firstIndex@ and an @indexCount@ from @pIndexInfo@. For +-- each recorded draw, primitives are assembled as for +-- 'Vulkan.Core10.CommandBufferBuilding.cmdDrawIndexed', and drawn +-- @instanceCount@ times with @instanceIndex@ starting with @firstInstance@ +-- and sequentially for each instance. If @pVertexOffset@ is @NULL@, a +-- @vertexOffset@ is also read from @pIndexInfo@, otherwise the value from +-- dereferencing @pVertexOffset@ is used. -- -- == Valid Usage -- @@ -3202,6 +3890,16 @@ foreign import ccall -- /must/ contain -- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT' -- +-- - #VUID-vkCmdDrawMultiIndexedEXT-None-02693# If the +-- +-- extension is not enabled and any 'Vulkan.Core10.Handles.ImageView' +-- is sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a +-- result of this command, it /must/ not have a +-- 'Vulkan.Core10.Enums.ImageViewType.ImageViewType' of +-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_3D', +-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE', or +-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE_ARRAY' +-- -- - #VUID-vkCmdDrawMultiIndexedEXT-filterCubic-02694# Any -- 'Vulkan.Core10.Handles.ImageView' being sampled with -- 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a result of this @@ -3227,6 +3925,33 @@ foreign import ccall -- returned by -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceImageFormatProperties2' -- +-- - #VUID-vkCmdDrawMultiIndexedEXT-cubicRangeClamp-09212# If the +-- +-- feature is not enabled, then any 'Vulkan.Core10.Handles.ImageView' +-- being sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as +-- a result of this command +-- +-- [/must/ not have a 'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo'] +-- @reductionMode@ equal to +-- 'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM' +-- +-- - #VUID-vkCmdDrawMultiIndexedEXT-reductionMode-09213# Any +-- 'Vulkan.Core10.Handles.ImageView' being sampled with a +-- 'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo'::@reductionMode@ +-- equal to +-- 'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM' +-- as a result of this command /must/ sample with +-- 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' +-- +-- - #VUID-vkCmdDrawMultiIndexedEXT-selectableCubicWeights-09214# If the +-- +-- feature is not enabled, then any 'Vulkan.Core10.Handles.ImageView' +-- being sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as +-- a result of this command /must/ have +-- 'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.SamplerCubicWeightsCreateInfoQCOM'::@cubicWeights@ +-- equal to +-- 'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM' +-- -- - #VUID-vkCmdDrawMultiIndexedEXT-flags-02696# Any -- 'Vulkan.Core10.Handles.Image' created with a -- 'Vulkan.Core10.Image.ImageCreateInfo'::@flags@ containing @@ -3268,11 +3993,9 @@ foreign import ccall -- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT' -- -- - #VUID-vkCmdDrawMultiIndexedEXT-None-08600# For each set /n/ that is --- statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to the --- pipeline bind point used by this command, or by any of the --- 'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages --- corresponding to the pipeline bind point used by this command, a --- descriptor set /must/ have been bound to /n/ at the same pipeline +-- statically used by +-- , +-- a descriptor set /must/ have been bound to /n/ at the same pipeline -- bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is -- compatible for set /n/, with the -- 'Vulkan.Core10.Handles.PipelineLayout' or @@ -3282,12 +4005,10 @@ foreign import ccall -- -- -- - #VUID-vkCmdDrawMultiIndexedEXT-None-08601# For each push constant --- that is statically used by the 'Vulkan.Core10.Handles.Pipeline' --- bound to the pipeline bind point used by this command, or by any of --- the 'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages --- corresponding to the pipeline bind point used by this command, a --- push constant value /must/ have been set for the same pipeline bind --- point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is +-- that is statically used by +-- , +-- a push constant value /must/ have been set for the same pipeline +-- bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is -- compatible for push constants, with the -- 'Vulkan.Core10.Handles.PipelineLayout' or -- 'Vulkan.Core10.Handles.DescriptorSetLayout' and @@ -3299,12 +4020,10 @@ foreign import ccall -- - #VUID-vkCmdDrawMultiIndexedEXT-maintenance4-08602# If the -- -- feature is not enabled, then for each push constant that is --- statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to the --- pipeline bind point used by this command, or by any of the --- 'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages --- corresponding to the pipeline bind point used by this command, a --- push constant value /must/ have been set for the same pipeline bind --- point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is +-- statically used by +-- , +-- a push constant value /must/ have been set for the same pipeline +-- bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is -- compatible for push constants, with the -- 'Vulkan.Core10.Handles.PipelineLayout' or -- 'Vulkan.Core10.Handles.DescriptorSetLayout' and @@ -3467,34 +4186,25 @@ foreign import ccall -- buffer as specified in the descriptor set bound to the same pipeline -- bind point -- --- - #VUID-vkCmdDrawMultiIndexedEXT-commandBuffer-08614# If +-- - #VUID-vkCmdDrawMultiIndexedEXT-commandBuffer-02707# If -- @commandBuffer@ is an unprotected command buffer and -- --- is not supported, any resource accessed by the --- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind --- point used by this command or any --- 'Vulkan.Extensions.Handles.ShaderEXT' object bound to a stage --- corresponding to the pipeline bind point used by this command /must/ --- not be a protected resource --- --- - #VUID-vkCmdDrawMultiIndexedEXT-None-08615# If the --- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind --- point used by this command or any --- 'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding --- to the pipeline bind point used by this command accesses a --- 'Vulkan.Core10.Handles.Sampler' or 'Vulkan.Core10.Handles.ImageView' --- object that enables +-- is not supported, any resource accessed by +-- +-- /must/ not be a protected resource +-- +-- - #VUID-vkCmdDrawMultiIndexedEXT-None-06550# If +-- +-- accesses a 'Vulkan.Core10.Handles.Sampler' or +-- 'Vulkan.Core10.Handles.ImageView' object that enables -- , -- that object /must/ only be used with @OpImageSample*@ or -- @OpImageSparseSample*@ instructions -- --- - #VUID-vkCmdDrawMultiIndexedEXT-ConstOffset-08616# If the --- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind --- point used by this command or any --- 'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding --- to the pipeline bind point used by this command accesses a --- 'Vulkan.Core10.Handles.Sampler' or 'Vulkan.Core10.Handles.ImageView' --- object that enables +-- - #VUID-vkCmdDrawMultiIndexedEXT-ConstOffset-06551# If +-- +-- accesses a 'Vulkan.Core10.Handles.Sampler' or +-- 'Vulkan.Core10.Handles.ImageView' object that enables -- , -- that object /must/ not use the @ConstOffset@ and @Offset@ operands -- @@ -3506,17 +4216,23 @@ foreign import ccall -- -- - #VUID-vkCmdDrawMultiIndexedEXT-format-07753# If a -- 'Vulkan.Core10.Handles.ImageView' is accessed as a result of this --- command, then the image view’s @format@ /must/ match the numeric --- format from the @Sampled@ @Type@ operand of the @OpTypeImage@ as --- described in the SPIR-V Sampled Type column of the --- --- table --- --- - #VUID-vkCmdDrawMultiIndexedEXT-None-04115# If a --- 'Vulkan.Core10.Handles.ImageView' is accessed using @OpImageWrite@ --- as a result of this command, then the @Type@ of the @Texel@ operand --- of that instruction /must/ have at least as many components as the --- image view’s format +-- command, then the +-- +-- of the image view’s @format@ and the @Sampled@ @Type@ operand of the +-- @OpTypeImage@ /must/ match +-- +-- - #VUID-vkCmdDrawMultiIndexedEXT-OpImageWrite-08795# If a +-- 'Vulkan.Core10.Handles.ImageView' created with a format other than +-- 'Vulkan.Core10.Enums.Format.FORMAT_A8_UNORM_KHR' is accessed using +-- @OpImageWrite@ as a result of this command, then the @Type@ of the +-- @Texel@ operand of that instruction /must/ have at least as many +-- components as the image view’s format +-- +-- - #VUID-vkCmdDrawMultiIndexedEXT-OpImageWrite-08796# If a +-- 'Vulkan.Core10.Handles.ImageView' created with the format +-- 'Vulkan.Core10.Enums.Format.FORMAT_A8_UNORM_KHR' is accessed using +-- @OpImageWrite@ as a result of this command, then the @Type@ of the +-- @Texel@ operand of that instruction /must/ have four components -- -- - #VUID-vkCmdDrawMultiIndexedEXT-OpImageWrite-04469# If a -- 'Vulkan.Core10.Handles.BufferView' is accessed using @OpImageWrite@ @@ -3618,6 +4334,8 @@ foreign import ccall -- -- - #VUID-vkCmdDrawMultiIndexedEXT-OpImageWeightedSampleQCOM-06977# If -- @OpImageWeightedSampleQCOM@, @OpImageBoxFilterQCOM@, +-- @OpImageBlockMatchWindowSSDQCOM@, @OpImageBlockMatchWindowSADQCOM@, +-- @OpImageBlockMatchGatherSSDQCOM@, @OpImageBlockMatchGatherSADQCOM@, -- @OpImageBlockMatchSSDQCOM@, or @OpImageBlockMatchSADQCOM@ uses a -- 'Vulkan.Core10.Handles.Sampler' as a result of this command, then -- the sampler /must/ have been created with @@ -3625,12 +4343,35 @@ foreign import ccall -- -- - #VUID-vkCmdDrawMultiIndexedEXT-OpImageWeightedSampleQCOM-06978# If -- any command other than @OpImageWeightedSampleQCOM@, --- @OpImageBoxFilterQCOM@, @OpImageBlockMatchSSDQCOM@, or +-- @OpImageBoxFilterQCOM@, @OpImageBlockMatchWindowSSDQCOM@, +-- @OpImageBlockMatchWindowSADQCOM@, @OpImageBlockMatchGatherSSDQCOM@, +-- @OpImageBlockMatchGatherSADQCOM@, @OpImageBlockMatchSSDQCOM@, or -- @OpImageBlockMatchSADQCOM@ uses a 'Vulkan.Core10.Handles.Sampler' as -- a result of this command, then the sampler /must/ not have been -- created with -- 'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM' -- +-- - #VUID-vkCmdDrawMultiIndexedEXT-OpImageBlockMatchWindow-09215# If a +-- @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@ +-- instruction is used to read from an +-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then +-- the image view’s +-- +-- /must/ contain +-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM' +-- +-- - #VUID-vkCmdDrawMultiIndexedEXT-OpImageBlockMatchWindow-09216# If a +-- @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@ +-- instruction is used to read from an +-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then +-- the image view’s format /must/ be a single-component format. +-- +-- - #VUID-vkCmdDrawMultiIndexedEXT-OpImageBlockMatchWindow-09217# If a +-- @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@ +-- read from a reference image as result of this command, then the +-- specified reference coordinates /must/ not fail +-- +-- -- - #VUID-vkCmdDrawMultiIndexedEXT-None-07288# Any shader invocation -- executed by this command /must/ -- @@ -3675,15 +4416,86 @@ foreign import ccall -- not be written in any way other than as an attachment by this -- command -- --- - #VUID-vkCmdDrawMultiIndexedEXT-None-06538# If any recorded command --- in the current subpass will write to an image subresource as an --- attachment, this command /must/ not read from the memory backing --- that image subresource in any other way than as an attachment --- --- - #VUID-vkCmdDrawMultiIndexedEXT-None-06539# If any recorded command --- in the current subpass will read from an image subresource used as --- an attachment in any way other than as an attachment, this command --- /must/ not write to that image subresource as an attachment +-- - #VUID-vkCmdDrawMultiIndexedEXT-None-09000# If a color attachment is +-- written by any prior command in this subpass or by the load, store, +-- or resolve operations for this subpass, it is not in the +-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT' +-- image layout, and either: +-- +-- - the +-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT' +-- is set on the currently bound pipeline or +-- +-- - the last call to +-- 'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT' +-- included +-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT' +-- and +-- +-- - there is no currently bound graphics pipeline or +-- +-- - the currently bound graphics pipeline was created with +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT' +-- it /must/ not be accessed in any way other than as an +-- attachment by this command +-- +-- - #VUID-vkCmdDrawMultiIndexedEXT-None-09001# If a depth attachment is +-- written by any prior command in this subpass or by the load, store, +-- or resolve operations for this subpass, it is not in the +-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT' +-- image layout, and either: +-- +-- - the +-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT' +-- is set on the currently bound pipeline or +-- +-- - the last call to +-- 'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT' +-- included +-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_DEPTH_BIT' +-- and +-- +-- - there is no currently bound graphics pipeline or +-- +-- - the currently bound graphics pipeline was created with +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT' +-- it /must/ not be accessed in any way other than as an +-- attachment by this command +-- +-- - #VUID-vkCmdDrawMultiIndexedEXT-None-09002# If a stencil attachment +-- is written by any prior command in this subpass or by the load, +-- store, or resolve operations for this subpass, it is not in the +-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT' +-- image layout, and either: +-- +-- - the +-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT' +-- is set on the currently bound pipeline or +-- +-- - the last call to +-- 'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT' +-- included +-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT' +-- and +-- +-- - there is no currently bound graphics pipeline or +-- +-- - the currently bound graphics pipeline was created with +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT' +-- it /must/ not be accessed in any way other than as an +-- attachment by this command +-- +-- - #VUID-vkCmdDrawMultiIndexedEXT-None-09003# If an attachment is +-- written by any prior command in this subpass or by the load, store, +-- or resolve operations for this subpass, it /must/ not be accessed in +-- any way other than as an attachment, storage image, or sampled image +-- by this command +-- +-- - #VUID-vkCmdDrawMultiIndexedEXT-None-06539# If any previously +-- recorded command in the current subpass accessed an image +-- subresource used as an attachment in this subpass in any way other +-- than as an attachment, this command /must/ not write to that image +-- subresource as an attachment -- -- - #VUID-vkCmdDrawMultiIndexedEXT-None-06886# If the current render -- pass instance uses a depth\/stencil attachment with a read-only @@ -3753,18 +4565,23 @@ foreign import ccall -- pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS' dynamic -- state enabled then --- 'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBias' /must/ have --- been called in the current command buffer prior to this drawing --- command +-- 'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBias' or +-- 'Vulkan.Extensions.VK_EXT_depth_bias_control.cmdSetDepthBias2EXT' +-- /must/ have been called in the current command buffer prior to this +-- drawing command -- -- - #VUID-vkCmdDrawMultiIndexedEXT-None-08620# If a shader object is -- bound to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnable' -- in the current command buffer set @depthBiasEnable@ to -- 'Vulkan.Core10.FundamentalTypes.TRUE', --- 'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBias' /must/ have --- been called in the current command buffer prior to this drawing --- command +-- 'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBias' or +-- 'Vulkan.Extensions.VK_EXT_depth_bias_control.cmdSetDepthBias2EXT' +-- /must/ have been called in the current command buffer prior to this +-- drawing command -- -- - #VUID-vkCmdDrawMultiIndexedEXT-None-07835# If the bound graphics -- pipeline state was created with the @@ -3787,7 +4604,7 @@ foreign import ccall -- the most recent call to -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT' -- in the current command buffer set the same element of --- @pColorBlendEquations@ to an +-- @pColorBlendEquations@ to a -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.ColorBlendEquationEXT' -- structure with any 'Vulkan.Core10.Enums.BlendFactor.BlendFactor' -- member with a value of @@ -3802,16 +4619,20 @@ foreign import ccall -- - #VUID-vkCmdDrawMultiIndexedEXT-None-07836# If the bound graphics -- pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS' --- dynamic state enabled then +-- dynamic state enabled, and if the current @depthBoundsTestEnable@ +-- state is 'Vulkan.Core10.FundamentalTypes.TRUE', then -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBounds' /must/ have -- been called in the current command buffer prior to this drawing -- command -- -- - #VUID-vkCmdDrawMultiIndexedEXT-None-08622# If a shader object is -- bound to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable' -- in the current command buffer set @depthBoundsTestEnable@ to --- 'Vulkan.Core10.FundamentalTypes.TRUE', +-- 'Vulkan.Core10.FundamentalTypes.TRUE', then -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBounds' /must/ have -- been called in the current command buffer prior to this drawing -- command @@ -3819,7 +4640,8 @@ foreign import ccall -- - #VUID-vkCmdDrawMultiIndexedEXT-None-07837# If the bound graphics -- pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_COMPARE_MASK' --- dynamic state enabled then +-- dynamic state enabled, and if the current @stencilTestEnable@ state +-- is 'Vulkan.Core10.FundamentalTypes.TRUE', then -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilCompareMask' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -3836,7 +4658,8 @@ foreign import ccall -- - #VUID-vkCmdDrawMultiIndexedEXT-None-07838# If the bound graphics -- pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_WRITE_MASK' --- dynamic state enabled then +-- dynamic state enabled, and if the current @stencilTestEnable@ state +-- is 'Vulkan.Core10.FundamentalTypes.TRUE', then -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilWriteMask' /must/ -- have been called in the current command buffer prior to this drawing -- command @@ -3853,7 +4676,8 @@ foreign import ccall -- - #VUID-vkCmdDrawMultiIndexedEXT-None-07839# If the bound graphics -- pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_REFERENCE' --- dynamic state enabled then +-- dynamic state enabled, and if the current @stencilTestEnable@ state +-- is 'Vulkan.Core10.FundamentalTypes.TRUE', then -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilReference' /must/ -- have been called in the current command buffer prior to this drawing -- command @@ -3893,7 +4717,10 @@ foreign import ccall -- bound to any graphics stage, and the most recent call to -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT' -- in the current command buffer set @sampleLocationsEnable@ to --- 'Vulkan.Core10.FundamentalTypes.TRUE', +-- 'Vulkan.Core10.FundamentalTypes.TRUE', and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -3917,7 +4744,10 @@ foreign import ccall -- drawing command -- -- - #VUID-vkCmdDrawMultiIndexedEXT-None-08627# If a shader object is --- bound to any graphics stage, +-- bound to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetCullMode' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -3931,7 +4761,10 @@ foreign import ccall -- drawing command -- -- - #VUID-vkCmdDrawMultiIndexedEXT-None-08628# If a shader object is --- bound to any graphics stage, +-- bound to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetFrontFace' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -3945,8 +4778,11 @@ foreign import ccall -- drawing command -- -- - #VUID-vkCmdDrawMultiIndexedEXT-None-08629# If a shader object is --- bound to any graphics stage, --- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable' +-- bound to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable' -- /must/ have been called in the current command buffer prior to this -- drawing command -- @@ -3959,7 +4795,10 @@ foreign import ccall -- drawing command -- -- - #VUID-vkCmdDrawMultiIndexedEXT-None-08630# If a shader object is --- bound to any graphics stage, +-- bound to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -3974,9 +4813,12 @@ foreign import ccall -- -- - #VUID-vkCmdDrawMultiIndexedEXT-None-08631# If a shader object is -- bound to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable' -- in the current command buffer set @depthTestEnable@ to --- 'Vulkan.Core10.FundamentalTypes.TRUE', +-- 'Vulkan.Core10.FundamentalTypes.TRUE', then -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthCompareOp' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -3992,7 +4834,10 @@ foreign import ccall -- - #VUID-vkCmdDrawMultiIndexedEXT-None-08632# If a shader object is -- bound to any graphics stage, and the -- --- feature is enabled, the +-- feature is enabled, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then the -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -4112,6 +4957,13 @@ foreign import ccall -- the last call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- +-- - #VUID-vkCmdDrawMultiIndexedEXT-None-09232# If a shader object is +-- bound to any graphics stage, and the @VK_NV_clip_space_w_scaling@ +-- extension is enabled on the device, then +-- 'Vulkan.Extensions.VK_NV_clip_space_w_scaling.cmdSetViewportWScalingNV' +-- must have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdDrawMultiIndexedEXT-None-08636# If a shader object is -- bound to any graphics stage, and the @VK_NV_clip_space_w_scaling@ -- extension is enabled on the device, then the @viewportCount@ @@ -4145,6 +4997,30 @@ foreign import ccall -- the last call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- +-- - #VUID-vkCmdDrawMultiIndexedEXT-shadingRateImage-09233# If the +-- +-- feature is enabled, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set rasterizerDiscardEnable to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then +-- 'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetCoarseSampleOrderNV' +-- must have been called in the current command buffer prior to this +-- drawing command +-- +-- - #VUID-vkCmdDrawMultiIndexedEXT-shadingRateImage-09234# If a shader +-- object is bound to any graphics stage, and the +-- +-- feature is enabled on the device, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set rasterizerDiscardEnable to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetShadingRateImageEnableNV' +-- in the current command buffer set shadingRateImageEnable to +-- 'Vulkan.Core10.FundamentalTypes.TRUE', then +-- 'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetViewportShadingRatePaletteNV' +-- must have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdDrawMultiIndexedEXT-None-08637# If a shader object is -- bound to any graphics stage, and the -- @@ -4197,6 +5073,14 @@ foreign import ccall -- /must/ have been called in the current command buffer prior to this -- drawing command -- +-- - #VUID-vkCmdDrawMultiIndexedEXT-exclusiveScissor-09235# If a shader +-- object is bound to any graphics stage, and the +-- +-- feature is enabled, then +-- 'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorEnableNV' +-- must have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdDrawMultiIndexedEXT-None-08638# If a shader object is -- bound to any graphics stage, and the most recent call to -- 'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorEnableNV' @@ -4248,7 +5132,9 @@ foreign import ccall -- 'Vulkan.Core10.Enums.LogicOp.LogicOp' value -- -- - #VUID-vkCmdDrawMultiIndexedEXT-None-08641# If a shader object is --- bound to any graphics stage, and the +-- bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage, and the -- -- feature is enabled on the device, and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' @@ -4333,6 +5219,11 @@ foreign import ccall -- to be the same as the number of samples for the current render pass -- color and\/or depth\/stencil attachments -- +-- - #VUID-vkCmdDrawMultiIndexedEXT-None-08876# If a shader object is +-- bound to any graphics stage, the current render pass instance /must/ +-- have been begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' +-- -- - #VUID-vkCmdDrawMultiIndexedEXT-imageView-06172# If the current -- render pass instance was begun with -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', @@ -4405,8 +5296,11 @@ foreign import ccall -- equal to -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ -- --- - #VUID-vkCmdDrawMultiIndexedEXT-colorAttachmentCount-06180# If the --- current render pass instance was begun with +-- - #VUID-vkCmdDrawMultiIndexedEXT-dynamicRenderingUnusedAttachments-08910# +-- If the +-- +-- feature is not enabled, and the current render pass instance was +-- begun with -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' -- and -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ @@ -4419,8 +5313,32 @@ foreign import ccall -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@ -- used to create the currently bound graphics pipeline -- --- - #VUID-vkCmdDrawMultiIndexedEXT-colorAttachmentCount-07616# If the --- current render pass instance was begun with +-- - #VUID-vkCmdDrawMultiIndexedEXT-dynamicRenderingUnusedAttachments-08911# +-- If the +-- +-- feature is enabled, and the current render pass instance was begun +-- with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' +-- and +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ +-- greater than @0@, then each element of the +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@ +-- array with a @imageView@ not equal to +-- 'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created +-- with a 'Vulkan.Core10.Enums.Format.Format' equal to the +-- corresponding element of +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@ +-- used to create the currently bound graphics pipeline, or the +-- corresponding element of +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@, +-- if it exists, /must/ be +-- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' +-- +-- - #VUID-vkCmdDrawMultiIndexedEXT-dynamicRenderingUnusedAttachments-08912# +-- If the +-- +-- feature is not enabled, and the current render pass instance was +-- begun with -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' -- and -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ @@ -4433,6 +5351,132 @@ foreign import ccall -- used to create the currently bound pipeline equal to -- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' -- +-- - #VUID-vkCmdDrawMultiIndexedEXT-colorAttachmentCount-09362# If the +-- current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- with a +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ +-- equal to @1@, there is no shader object bound to any graphics stage, +-- and a color attachment with a resolve mode of +-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID', +-- each element of the +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@ +-- array with a @resolveImageView@ not equal to +-- 'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created +-- with an image created with a +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- value equal to the +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- value used to create the currently bound graphics pipeline +-- +-- - #VUID-vkCmdDrawMultiIndexedEXT-None-09363# If there is no shader +-- object bound to any graphics stage, the current render pass instance +-- was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' +-- and a +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ +-- equal to @1@, and a color attachment with a resolve mode of +-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID', +-- each element of the +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@ +-- array with a @imageView@ not equal to +-- 'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created +-- with an image created with a +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- value equal to the +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- value used to create the currently bound graphics pipeline +-- +-- - #VUID-vkCmdDrawMultiIndexedEXT-None-09364# If the current render +-- pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- there is no shader object bound to any graphics stage, and the +-- currently bound graphics pipeline was created with a non-zero +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- value and with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT' +-- dynamic state enabled, then +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT' +-- /must/ have set the blend enable to +-- 'Vulkan.Core10.FundamentalTypes.FALSE' prior to this drawing command +-- +-- - #VUID-vkCmdDrawMultiIndexedEXT-None-09365# If the current render +-- pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- there is no shader object bound to any graphics stage, and the +-- currently bound graphics pipeline was created with a non-zero +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- value and with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT' +-- dynamic state enabled, then +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT' +-- /must/ have set @rasterizationSamples@ to +-- 'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT' prior +-- to this drawing command +-- +-- - #VUID-vkCmdDrawMultiIndexedEXT-None-09366# If there is a shader +-- object bound to any graphics stage, and the current render pass +-- includes a color attachment that uses the +-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID' +-- resolve mode, then +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT' +-- /must/ have set blend enable to +-- 'Vulkan.Core10.FundamentalTypes.FALSE' prior to this drawing command +-- +-- - #VUID-vkCmdDrawMultiIndexedEXT-rasterizationSamples-09367# If there +-- is a shader object bound to any graphics stage, and the current +-- render pass includes a color attachment that uses the +-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID' +-- resolve mode, then +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT' +-- /must/ have set @rasterizationSamples@ to +-- 'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT' prior +-- to this drawing command +-- +-- - #VUID-vkCmdDrawMultiIndexedEXT-None-09368# If the current render +-- pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- there is no shader object bound to any graphics stage, and the +-- currently bound graphics pipeline was created with a non-zero +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- value and with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR' +-- dynamic state enabled, then +-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR' +-- /must/ have set @pFragmentSize->width@ to @1@ prior to this drawing +-- command +-- +-- - #VUID-vkCmdDrawMultiIndexedEXT-None-09369# If the current render +-- pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- there is no shader object bound to any graphics stage, and the +-- currently bound graphics pipeline was created with a non-zero +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- value and with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR' +-- dynamic state enabled, then +-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR' +-- /must/ have set @pFragmentSize->height@ to @1@ prior to this drawing +-- command +-- +-- - #VUID-vkCmdDrawMultiIndexedEXT-pFragmentSize-09370# If there is a +-- shader object bound to any graphics stage, and the current render +-- pass includes a color attachment that uses the +-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID' +-- resolve mode, then +-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR' +-- /must/ have set @pFragmentSize->width@ to @1@ prior to this drawing +-- command +-- +-- - #VUID-vkCmdDrawMultiIndexedEXT-pFragmentSize-09371# If there is a +-- shader object bound to any graphics stage, and the current render +-- pass includes a color attachment that uses the +-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID' +-- resolve mode, then +-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR' +-- /must/ have set @pFragmentSize->height@ to @1@ prior to this drawing +-- command +-- -- - #VUID-vkCmdDrawMultiIndexedEXT-None-07749# If the bound graphics -- pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT' @@ -4444,7 +5488,9 @@ foreign import ccall -- - #VUID-vkCmdDrawMultiIndexedEXT-None-08646# If the -- -- feature is enabled on the device, and a shader object is bound to --- the fragment stage, and the most recent call to +-- the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage, and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' -- in the current command buffer set @rasterizerDiscardEnable@ to -- 'Vulkan.Core10.FundamentalTypes.FALSE', then @@ -4464,7 +5510,9 @@ foreign import ccall -- - #VUID-vkCmdDrawMultiIndexedEXT-None-08647# If the -- -- feature is enabled on the device, and a shader object is bound to --- the fragment stage, and the most recent call to +-- the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage, and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' -- in the current command buffer set @rasterizerDiscardEnable@ to -- 'Vulkan.Core10.FundamentalTypes.FALSE', then the @attachmentCount@ @@ -4490,6 +5538,16 @@ foreign import ccall -- /must/ have been called in the current command buffer prior to this -- drawing command -- +-- - #VUID-vkCmdDrawMultiIndexedEXT-rasterizerDiscardEnable-09236# If the +-- @VK_EXT_discard_rectangles@ extension is enabled, and a shader +-- object is bound to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then +-- 'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEXT' +-- /must/ have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdDrawMultiIndexedEXT-None-08648# If the -- @VK_EXT_discard_rectangles@ extension is enabled, and a shader -- object is bound to any graphics stage, and the most recent call to @@ -4521,10 +5579,24 @@ foreign import ccall -- /must/ have been called in the current command buffer prior to this -- drawing command -- --- - #VUID-vkCmdDrawMultiIndexedEXT-pDepthAttachment-06181# If the --- current render pass instance was begun with --- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' --- and +-- - #VUID-vkCmdDrawMultiIndexedEXT-dynamicRenderingUnusedAttachments-08913# +-- If the current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- the +-- +-- feature is not enabled, and +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@ +-- was 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@ +-- used to create the currently bound graphics pipeline /must/ be equal +-- to 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' +-- +-- - #VUID-vkCmdDrawMultiIndexedEXT-dynamicRenderingUnusedAttachments-08914# +-- If current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- the +-- +-- feature is not enabled, and -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@ -- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@ @@ -4532,20 +5604,39 @@ foreign import ccall -- to the 'Vulkan.Core10.Enums.Format.Format' used to create -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@ -- --- - #VUID-vkCmdDrawMultiIndexedEXT-pDepthAttachment-07617# If the --- current render pass instance was begun with --- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' --- and +-- - #VUID-vkCmdDrawMultiIndexedEXT-dynamicRenderingUnusedAttachments-08915# +-- If the current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- the +-- +-- feature is enabled, -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@ --- was 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of +-- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the value of -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@ +-- used to create the currently bound graphics pipeline was not equal +-- to the 'Vulkan.Core10.Enums.Format.Format' used to create +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@, +-- the value of the format /must/ be +-- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' +-- +-- - #VUID-vkCmdDrawMultiIndexedEXT-dynamicRenderingUnusedAttachments-08916# +-- If the current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- the +-- +-- feature is not enabled, and +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@ +-- was 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@ -- used to create the currently bound graphics pipeline /must/ be equal -- to 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' -- --- - #VUID-vkCmdDrawMultiIndexedEXT-pStencilAttachment-06182# If the --- current render pass instance was begun with --- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' --- and +-- - #VUID-vkCmdDrawMultiIndexedEXT-dynamicRenderingUnusedAttachments-08917# +-- If current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- the +-- +-- feature is not enabled, and -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@ -- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@ @@ -4553,15 +5644,20 @@ foreign import ccall -- to the 'Vulkan.Core10.Enums.Format.Format' used to create -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@ -- --- - #VUID-vkCmdDrawMultiIndexedEXT-pStencilAttachment-07618# If the --- current render pass instance was begun with --- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' --- and +-- - #VUID-vkCmdDrawMultiIndexedEXT-dynamicRenderingUnusedAttachments-08918# +-- If the current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- the +-- +-- feature is enabled, -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@ --- was 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of +-- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the value of -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@ --- used to create the currently bound graphics pipeline /must/ be equal --- to 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' +-- used to create the currently bound graphics pipeline was not equal +-- to the 'Vulkan.Core10.Enums.Format.Format' used to create +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@, +-- the value of the format /must/ be +-- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' -- -- - #VUID-vkCmdDrawMultiIndexedEXT-imageView-06183# If the current -- render pass instance was begun with @@ -4708,6 +5804,40 @@ foreign import ccall -- 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@renderPass@ -- equal to 'Vulkan.Core10.APIConstants.NULL_HANDLE' -- +-- - #VUID-vkCmdDrawMultiIndexedEXT-pColorAttachments-08963# If the +-- current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- there is a graphics pipeline bound with a fragment shader that +-- statically writes to a color attachment, the color write mask is not +-- zero, color writes are enabled, and the corresponding element of the +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments->imageView@ +-- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', then the +-- corresponding element of +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@ +-- used to create the pipeline /must/ not be +-- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' +-- +-- - #VUID-vkCmdDrawMultiIndexedEXT-pDepthAttachment-08964# If the +-- current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- there is a graphics pipeline bound, depth test is enabled, depth +-- write is enabled, and the +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@ +-- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', then the +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@ +-- used to create the pipeline /must/ not be +-- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' +-- +-- - #VUID-vkCmdDrawMultiIndexedEXT-pStencilAttachment-08965# If the +-- current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- there is a graphics pipeline bound, stencil test is enabled and the +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@ +-- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', then the +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@ +-- used to create the pipeline /must/ not be +-- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' +-- -- - #VUID-vkCmdDrawMultiIndexedEXT-primitivesGeneratedQueryWithRasterizerDiscard-06708# -- If the -- @@ -4734,6 +5864,22 @@ foreign import ccall -- /must/ have been called in the current command buffer prior to this -- drawing command -- +-- - #VUID-vkCmdDrawMultiIndexedEXT-None-07620# If the bound graphics +-- pipeline state was created with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT' +-- dynamic state enabled then +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClampEnableEXT' +-- /must/ have been called in the current command buffer prior to this +-- drawing command +-- +-- - #VUID-vkCmdDrawMultiIndexedEXT-None-09237# If a shader object is +-- bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT' +-- stage, then +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetTessellationDomainOriginEXT' +-- /must/ have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdDrawMultiIndexedEXT-None-08650# If the -- -- feature is enabled, and a shader object is bound to any graphics @@ -4804,6 +5950,17 @@ foreign import ccall -- /must/ have been called in the current command buffer prior to this -- drawing command -- +-- - #VUID-vkCmdDrawMultiIndexedEXT-alphaToCoverageEnable-08919# If the +-- bound graphics pipeline state was created with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT' +-- dynamic state enabled, and @alphaToCoverageEnable@ was +-- 'Vulkan.Core10.FundamentalTypes.TRUE' in the last call to +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT', +-- then the +-- +-- /must/ contain a variable for the alpha @Component@ word in +-- @Location@ 0 at @Index@ 0 +-- -- - #VUID-vkCmdDrawMultiIndexedEXT-None-08654# If a shader object is -- bound to any graphics stage, and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' @@ -4813,6 +5970,16 @@ foreign import ccall -- /must/ have been called in the current command buffer prior to this -- drawing command -- +-- - #VUID-vkCmdDrawMultiIndexedEXT-alphaToCoverageEnable-08920# If a +-- shader object is bound to any graphics stage, and the most recent +-- call to +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT' +-- in the current command buffer set @alphaToCoverageEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.TRUE', then the +-- +-- /must/ contain a variable for the alpha @Component@ word in +-- @Location@ 0 at @Index@ 0 +-- -- - #VUID-vkCmdDrawMultiIndexedEXT-None-07625# If the bound graphics -- pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT' @@ -4842,7 +6009,8 @@ foreign import ccall -- -- - #VUID-vkCmdDrawMultiIndexedEXT-None-08656# If the -- --- feature is enabled, and a shader object is bound to any graphics +-- feature is enabled, and a shader object is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' -- stage, and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' -- in the current command buffer set @rasterizerDiscardEnable@ to @@ -4860,7 +6028,9 @@ foreign import ccall -- drawing command -- -- - #VUID-vkCmdDrawMultiIndexedEXT-None-08657# If a shader object is --- bound to any graphics stage, and the most recent call to +-- bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage, and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' -- in the current command buffer set @rasterizerDiscardEnable@ to -- 'Vulkan.Core10.FundamentalTypes.FALSE', then @@ -4897,7 +6067,9 @@ foreign import ccall -- drawing command -- -- - #VUID-vkCmdDrawMultiIndexedEXT-None-08659# If a shader object is --- bound to any graphics stage, and the most recent call to +-- bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage, and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' -- in the current command buffer set @rasterizerDiscardEnable@ to -- 'Vulkan.Core10.FundamentalTypes.FALSE', then @@ -4915,7 +6087,8 @@ foreign import ccall -- -- - #VUID-vkCmdDrawMultiIndexedEXT-None-08660# If the -- --- feature is enabled, and a shader object is bound to the geometry +-- feature is enabled, and a shader object is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT' -- stage, then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationStreamEXT' -- /must/ have been called in the current command buffer prior to this @@ -5015,7 +6188,9 @@ foreign import ccall -- -- - #VUID-vkCmdDrawMultiIndexedEXT-None-08665# If the -- @VK_EXT_provoking_vertex@ extension is enabled, and a shader object --- is bound to the vertex stage, then +-- is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT' +-- stage, then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetProvokingVertexModeEXT' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -5124,7 +6299,7 @@ foreign import ccall -- stage, then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClipNegativeOneToOneEXT' -- /must/ have been called in the current command buffer prior to this --- drawing command ifdef::VK_EXT_extended_dynamic_state3 +-- drawing command -- -- - #VUID-vkCmdDrawMultiIndexedEXT-None-07640# If the bound graphics -- pipeline state was created with the @@ -5132,7 +6307,7 @@ foreign import ccall -- dynamic state enabled then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetViewportWScalingEnableNV' -- /must/ have been called in the current command buffer prior to this --- drawing command endif::VK_EXT_extended_dynamic_state3 +-- drawing command -- -- - #VUID-vkCmdDrawMultiIndexedEXT-None-08674# If the -- @VK_NV_clip_space_w_scaling@ extension is enabled, and a shader @@ -5166,7 +6341,12 @@ foreign import ccall -- -- - #VUID-vkCmdDrawMultiIndexedEXT-None-08676# If the -- @VK_NV_fragment_coverage_to_color@ extension is enabled, and a --- shader object is bound to any graphics stage, then +-- shader object is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -5181,8 +6361,9 @@ foreign import ccall -- -- - #VUID-vkCmdDrawMultiIndexedEXT-None-08677# If the -- @VK_NV_fragment_coverage_to_color@ extension is enabled, and a --- shader object is bound to any graphics stage, and the most recent --- call to +-- shader object is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage, and the most recent call to -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV' -- in the current command buffer set @coverageToColorEnable@ to -- 'Vulkan.Core10.FundamentalTypes.TRUE', then @@ -5200,7 +6381,10 @@ foreign import ccall -- -- - #VUID-vkCmdDrawMultiIndexedEXT-None-08678# If the -- @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader --- object is bound to any graphics stage, then +-- object is bound to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationModeNV' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -5215,7 +6399,15 @@ foreign import ccall -- -- - #VUID-vkCmdDrawMultiIndexedEXT-None-08679# If the -- @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader --- object is bound to any graphics stage, then +-- object is bound to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationModeNV' +-- in the current command buffer set coverageModulationMode to any +-- value other than +-- 'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.COVERAGE_MODULATION_MODE_NONE_NV', +-- then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -5231,6 +6423,9 @@ foreign import ccall -- - #VUID-vkCmdDrawMultiIndexedEXT-None-08680# If the -- @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader -- object is bound to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV' -- in the current command buffer set @coverageModulationTableEnable@ to -- 'Vulkan.Core10.FundamentalTypes.TRUE', then @@ -5246,10 +6441,26 @@ foreign import ccall -- /must/ have been called in the current command buffer prior to this -- drawing command -- +-- - #VUID-vkCmdDrawMultiIndexedEXT-pipelineFragmentShadingRate-09238# If +-- the +-- +-- feature is enabled, and a shader object is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set rasterizerDiscardEnable to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then +-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR' +-- must have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdDrawMultiIndexedEXT-None-08681# If the -- -- feature is enabled, and a shader object is bound to any graphics --- stage, then +-- stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetShadingRateImageEnableNV' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -5259,13 +6470,16 @@ foreign import ccall -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV' -- dynamic state enabled then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRepresentativeFragmentTestEnableNV' --- must have been called in the current command buffer prior to this +-- /must/ have been called in the current command buffer prior to this -- drawing command -- -- - #VUID-vkCmdDrawMultiIndexedEXT-None-08682# If the -- -- feature is enabled, and a shader object is bound to any graphics --- stage, then +-- stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRepresentativeFragmentTestEnableNV' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -5281,7 +6495,10 @@ foreign import ccall -- - #VUID-vkCmdDrawMultiIndexedEXT-None-08683# If the -- -- feature is enabled, and a shader object is bound to any graphics --- stage, then +-- stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageReductionModeNV' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -5330,18 +6547,29 @@ foreign import ccall -- in the last call to -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT' -- --- - #VUID-vkCmdDrawMultiIndexedEXT-multisampledRenderToSingleSampled-07475# --- If the bound graphics pipeline state was created with the +-- - #VUID-vkCmdDrawMultiIndexedEXT-rasterizationSamples-07474# If the +-- bound graphics pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT' --- state enabled, and none of the @VK_AMD_mixed_attachment_samples@ --- extension, @VK_NV_framebuffer_mixed_samples@ extension, or the --- --- feature is enabled, then the @rasterizationSamples@ in the last call --- to +-- state enabled, and neither the @VK_AMD_mixed_attachment_samples@ nor +-- the @VK_NV_framebuffer_mixed_samples@ extensions are enabled, then +-- the @rasterizationSamples@ in the last call to -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT' -- /must/ be the same as the current subpass color and\/or -- depth\/stencil attachments -- +-- - #VUID-vkCmdDrawMultiIndexedEXT-None-09211# If the bound graphics +-- pipeline state was created with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT' +-- state enabled, or a shader object is bound to any graphics stage, +-- and the current render pass instance includes a +-- 'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT' +-- structure with @multisampledRenderToSingleSampledEnable@ equal to +-- 'Vulkan.Core10.FundamentalTypes.TRUE', then the +-- @rasterizationSamples@ in the last call to +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT' +-- /must/ be the same as the @rasterizationSamples@ member of that +-- structure +-- -- - #VUID-vkCmdDrawMultiIndexedEXT-firstAttachment-07476# If the bound -- graphics pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT' @@ -5400,7 +6628,7 @@ foreign import ccall -- and -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendAdvancedEXT' -- have enabled advanced blending, then the number of active color --- attachments in the current subpass must not exceed +-- attachments in the current subpass /must/ not exceed -- -- -- - #VUID-vkCmdDrawMultiIndexedEXT-primitivesGeneratedQueryWithNonZeroStreams-07481# @@ -5562,7 +6790,7 @@ foreign import ccall -- @VK_NV_framebuffer_mixed_samples@ extension is enabled, and if -- current subpass has a depth\/stencil attachment and depth test, -- stencil test, or depth bounds test are enabled in the currently --- bound pipeline state, then the current @rasterizationSamples@ must +-- bound pipeline state, then the current @rasterizationSamples@ /must/ -- be the same as the sample count of the depth\/stencil attachment -- -- - #VUID-vkCmdDrawMultiIndexedEXT-coverageToColorEnable-07490# If the @@ -5593,7 +6821,7 @@ foreign import ccall -- states enabled, the current coverage reduction mode -- @coverageReductionMode@, then the current @rasterizationSamples@, -- and the sample counts for the color and depth\/stencil attachments --- (if the subpass has them) must be a valid combination returned by +-- (if the subpass has them) /must/ be a valid combination returned by -- 'Vulkan.Extensions.VK_NV_coverage_reduction_mode.getPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV' -- -- - #VUID-vkCmdDrawMultiIndexedEXT-viewportCount-07492# If the bound @@ -5681,7 +6909,7 @@ foreign import ccall -- -- feature /must/ be enabled and -- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@strictLines@ --- must be VK_TRUE +-- /must/ be 'Vulkan.Core10.FundamentalTypes.TRUE' -- -- - #VUID-vkCmdDrawMultiIndexedEXT-conservativePointAndLineRasterization-07499# -- If the bound graphics pipeline state was created with the @@ -5708,7 +6936,15 @@ foreign import ccall -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT', -- then -- --- must not be active +-- /must/ not be active +-- +-- - #VUID-vkCmdDrawMultiIndexedEXT-None-08877# If the bound graphics +-- pipeline state was created with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT' +-- dynamic state +-- 'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT' +-- /must/ have been called in the current command buffer prior to this +-- drawing command -- -- - #VUID-vkCmdDrawMultiIndexedEXT-None-07850# If dynamic state was -- inherited from @@ -5719,7 +6955,7 @@ foreign import ccall -- - #VUID-vkCmdDrawMultiIndexedEXT-None-08684# If there is no bound -- graphics pipeline, -- 'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/ --- have been called on the current command buffer with @pStages@ with +-- have been called in the current command buffer with @pStages@ with -- an element of -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT' -- @@ -5728,7 +6964,7 @@ foreign import ccall -- -- feature is enabled, -- 'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/ --- have been called on the current command buffer with @pStages@ with +-- have been called in the current command buffer with @pStages@ with -- an element of -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT' -- @@ -5737,7 +6973,7 @@ foreign import ccall -- -- feature is enabled, -- 'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/ --- have been called on the current command buffer with @pStages@ with +-- have been called in the current command buffer with @pStages@ with -- an element of -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT' -- @@ -5746,14 +6982,14 @@ foreign import ccall -- -- feature is enabled, -- 'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/ --- have been called on the current command buffer with @pStages@ with +-- have been called in the current command buffer with @pStages@ with -- an element of -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT' -- -- - #VUID-vkCmdDrawMultiIndexedEXT-None-08688# If there is no bound -- graphics pipeline, -- 'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/ --- have been called on the current command buffer with @pStages@ with +-- have been called in the current command buffer with @pStages@ with -- an element of -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' -- @@ -5762,7 +6998,7 @@ foreign import ccall -- -- feature is enabled, -- 'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/ --- have been called on the current command buffer with @pStages@ with +-- have been called in the current command buffer with @pStages@ with -- an element of -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT' -- @@ -5771,7 +7007,7 @@ foreign import ccall -- -- feature is enabled, -- 'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/ --- have been called on the current command buffer with @pStages@ with +-- have been called in the current command buffer with @pStages@ with -- an element of -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT' -- @@ -5783,8 +7019,8 @@ foreign import ccall -- features is enabled, one of the -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT' or -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT' --- stages must have a valid 'Vulkan.Extensions.Handles.ShaderEXT' --- bound, and the other must have no +-- stages /must/ have a valid 'Vulkan.Extensions.Handles.ShaderEXT' +-- bound, and the other /must/ have no -- 'Vulkan.Extensions.Handles.ShaderEXT' bound -- -- - #VUID-vkCmdDrawMultiIndexedEXT-None-08694# If there is no bound @@ -5849,6 +7085,37 @@ foreign import ccall -- 'Vulkan.Extensions.VK_EXT_shader_object.createShadersEXT' call -- /must/ not have any 'Vulkan.Extensions.Handles.ShaderEXT' bound -- +-- - #VUID-vkCmdDrawMultiIndexedEXT-None-08878# All bound graphics shader +-- objects /must/ have been created with identical or identically +-- defined push constant ranges +-- +-- - #VUID-vkCmdDrawMultiIndexedEXT-None-08879# All bound graphics shader +-- objects /must/ have been created with identical or identically +-- defined arrays of descriptor set layouts +-- +-- - #VUID-vkCmdDrawMultiIndexedEXT-colorAttachmentCount-09372# If the +-- current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' +-- and a +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ +-- equal to @1@, a color attachment with a resolve mode of +-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID', +-- and a fragment shader is bound, it /must/ not declare the +-- @DepthReplacing@ or @StencilRefReplacingEXT@ execution modes +-- +-- - #VUID-vkCmdDrawMultiIndexedEXT-None-08880# If a shader object is +-- bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage and the +-- +-- feature is enabled on the device, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE' +-- 'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT' +-- /must/ have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdDrawMultiIndexedEXT-pDynamicStates-08715# If the bound -- graphics pipeline state includes a fragment shader stage, was -- created with @@ -5873,6 +7140,33 @@ foreign import ccall -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilWriteMask' /must/ -- be @0@ -- +-- - #VUID-vkCmdDrawMultiIndexedEXT-None-09116# If a shader object is +-- bound to any graphics stage or the currently bound graphics pipeline +-- was created with +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_MASK_EXT', +-- and the format of any color attachment is +-- 'Vulkan.Core10.Enums.Format.FORMAT_E5B9G9R9_UFLOAT_PACK32', the +-- corresponding element of the @pColorWriteMasks@ parameter of +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorWriteMaskEXT' +-- /must/ either include all of +-- 'Vulkan.Core10.Enums.ColorComponentFlagBits.COLOR_COMPONENT_R_BIT', +-- 'Vulkan.Core10.Enums.ColorComponentFlagBits.COLOR_COMPONENT_G_BIT', +-- and +-- 'Vulkan.Core10.Enums.ColorComponentFlagBits.COLOR_COMPONENT_B_BIT', +-- or none of them +-- +-- - #VUID-vkCmdDrawMultiIndexedEXT-maxFragmentDualSrcAttachments-09239# +-- If +-- +-- is enabled for any attachment where either the source or destination +-- blend factors for that attachment +-- , +-- the maximum value of @Location@ for any output attachment +-- +-- in the @Fragment@ @Execution@ @Model@ executed by this command +-- /must/ be less than +-- +-- -- - #VUID-vkCmdDrawMultiIndexedEXT-commandBuffer-02712# If -- @commandBuffer@ is a protected command buffer and -- @@ -5955,6 +7249,14 @@ foreign import ccall -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT' -- /must/ not be @NULL@ -- +-- - #VUID-vkCmdDrawMultiIndexedEXT-None-08881# If a shader object is +-- bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT' +-- stage, then +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology' +-- /must/ have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdDrawMultiIndexedEXT-None-04914# If the bound graphics -- pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT' @@ -5971,6 +7273,53 @@ foreign import ccall -- @OpEntryPoint@ /must/ contain a location in -- 'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@location@ -- +-- - #VUID-vkCmdDrawMultiIndexedEXT-Input-08734# If the bound graphics +-- pipeline state was created with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT' +-- dynamic state enabled, then the numeric type associated with all +-- @Input@ variables of the corresponding @Location@ in the @Vertex@ +-- @Execution@ @Model@ @OpEntryPoint@ /must/ be the same as +-- 'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@format@ +-- +-- - #VUID-vkCmdDrawMultiIndexedEXT-format-08936# If there is a shader +-- object bound to a graphics stage or the currently bound graphics +-- pipeline was created with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT' +-- dynamic state enabled, and +-- 'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@format@ +-- has a 64-bit component, then the scalar width associated with all +-- @Input@ variables of the corresponding @Location@ in the @Vertex@ +-- @Execution@ @Model@ @OpEntryPoint@ /must/ be 64-bit +-- +-- - #VUID-vkCmdDrawMultiIndexedEXT-format-08937# If there is a shader +-- object bound to a graphics stage or the currently bound graphics +-- pipeline was created with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT' +-- dynamic state enabled, and the scalar width associated with a +-- @Location@ decorated @Input@ variable in the @Vertex@ @Execution@ +-- @Model@ @OpEntryPoint@ is 64-bit, then the corresponding +-- 'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@format@ +-- /must/ have a 64-bit component +-- +-- - #VUID-vkCmdDrawMultiIndexedEXT-None-09203# If there is a shader +-- object bound to a graphics stage or the currently bound graphics +-- pipeline was created with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT' +-- dynamic state enabled, and +-- 'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@format@ +-- has a 64-bit component, then all @Input@ variables at the +-- corresponding @Location@ in the @Vertex@ @Execution@ @Model@ +-- @OpEntryPoint@ /must/ not use components that are not present in the +-- format +-- +-- - #VUID-vkCmdDrawMultiIndexedEXT-None-08882# If a shader object is +-- bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT' +-- stage, then +-- 'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT' +-- /must/ have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdDrawMultiIndexedEXT-None-04875# If the bound graphics -- pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT' @@ -5979,6 +7328,14 @@ foreign import ccall -- /must/ have been called in the current command buffer prior to this -- drawing command -- +-- - #VUID-vkCmdDrawMultiIndexedEXT-None-08883# If a shader object is +-- bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT' +-- stage, then +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetPatchControlPointsEXT' +-- /must/ have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdDrawMultiIndexedEXT-None-04879# If the bound graphics -- pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE' @@ -5987,6 +7344,16 @@ foreign import ccall -- /must/ have been called in the current command buffer prior to this -- drawing command -- +-- - #VUID-vkCmdDrawMultiIndexedEXT-rasterizerDiscardEnable-08884# If a +-- shader object is bound to any graphics stage, and the most recent +-- call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetPrimitiveRestartEnable' +-- /must/ have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdDrawMultiIndexedEXT-stage-06481# The bound graphics -- pipeline /must/ not have been created with the -- 'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo'::@stage@ @@ -5997,6 +7364,13 @@ foreign import ccall -- or -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT' -- +-- - #VUID-vkCmdDrawMultiIndexedEXT-None-08885# There /must/ be no shader +-- object bound to either of the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT' +-- or +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT' +-- stages +-- -- - #VUID-vkCmdDrawMultiIndexedEXT-None-07312# An index buffer /must/ be -- bound -- @@ -6009,6 +7383,19 @@ foreign import ccall -- specified via -- 'Vulkan.Core10.CommandBufferBuilding.cmdBindIndexBuffer' -- +-- - #VUID-vkCmdDrawMultiIndexedEXT-robustBufferAccess2-08798# If +-- +-- is not enabled, (@indexSize@ × (@firstIndex@ + @indexCount@) + +-- @offset@) /must/ be less than or equal to the size of the bound +-- index buffer, with @indexSize@ being based on the type specified by +-- @indexType@, where the index buffer, @indexType@, and @offset@ are +-- specified via +-- 'Vulkan.Core10.CommandBufferBuilding.cmdBindIndexBuffer' or +-- 'Vulkan.Extensions.VK_KHR_maintenance5.cmdBindIndexBuffer2KHR'. If +-- 'Vulkan.Extensions.VK_KHR_maintenance5.cmdBindIndexBuffer2KHR' is +-- used to bind the index buffer, the size of the bound index buffer is +-- 'Vulkan.Extensions.VK_KHR_maintenance5.cmdBindIndexBuffer2KHR'::@size@ +-- -- - #VUID-vkCmdDrawMultiIndexedEXT-None-04937# The -- -- feature /must/ be enabled @@ -6079,9 +7466,9 @@ cmdDrawMultiIndexedEXT :: forall io -> -- | @pIndexInfo@ is a pointer to an array of 'MultiDrawIndexedInfoEXT' with -- index information to be drawn. ("indexInfo" ::: Vector MultiDrawIndexedInfoEXT) - -> -- | @instanceCount@ is the number of instances to draw. + -> -- | @instanceCount@ is the number of instances per draw. ("instanceCount" ::: Word32) - -> -- | @firstInstance@ is the instance ID of the first instance to draw. + -> -- | @firstInstance@ is the instance ID of the first instance in each draw. ("firstInstance" ::: Word32) -> -- | @stride@ is the byte stride between consecutive elements of -- @pIndexInfo@. diff --git a/src/Vulkan/Extensions/VK_EXT_multi_draw.hs-boot b/src/Vulkan/Extensions/VK_EXT_multi_draw.hs-boot index 887419986..efb6c7251 100644 --- a/src/Vulkan/Extensions/VK_EXT_multi_draw.hs-boot +++ b/src/Vulkan/Extensions/VK_EXT_multi_draw.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- diff --git a/src/Vulkan/Extensions/VK_EXT_multisampled_render_to_single_sampled.hs b/src/Vulkan/Extensions/VK_EXT_multisampled_render_to_single_sampled.hs index 9e1a89b35..ca005880e 100644 --- a/src/Vulkan/Extensions/VK_EXT_multisampled_render_to_single_sampled.hs +++ b/src/Vulkan/Extensions/VK_EXT_multisampled_render_to_single_sampled.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- and @@ -382,8 +385,9 @@ data MultisampledRenderToSingleSampledInfoEXT = MultisampledRenderToSingleSample -- rendering to single-sampled attachments is performed as described -- . multisampledRenderToSingleSampledEnable :: Bool - , -- | @rasterizationSamples@ is a VkSampleCountFlagBits specifying the number - -- of samples used in rasterization. + , -- | @rasterizationSamples@ is a + -- 'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlagBits' specifying + -- the number of samples used in rasterization. rasterizationSamples :: SampleCountFlagBits } deriving (Typeable, Eq) diff --git a/src/Vulkan/Extensions/VK_EXT_multisampled_render_to_single_sampled.hs-boot b/src/Vulkan/Extensions/VK_EXT_multisampled_render_to_single_sampled.hs-boot index cc8f64535..83c1fb7cb 100644 --- a/src/Vulkan/Extensions/VK_EXT_multisampled_render_to_single_sampled.hs-boot +++ b/src/Vulkan/Extensions/VK_EXT_multisampled_render_to_single_sampled.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- and diff --git a/src/Vulkan/Extensions/VK_EXT_mutable_descriptor_type.hs b/src/Vulkan/Extensions/VK_EXT_mutable_descriptor_type.hs index d4638f986..0ae80478e 100644 --- a/src/Vulkan/Extensions/VK_EXT_mutable_descriptor_type.hs +++ b/src/Vulkan/Extensions/VK_EXT_mutable_descriptor_type.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- @@ -185,7 +188,8 @@ import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_ -- -- = Description -- --- - @sType@ is the type of this structure. +-- - @sType@ is a 'Vulkan.Core10.Enums.StructureType.StructureType' value +-- identifying this structure. -- -- - @pNext@ is @NULL@ or a pointer to a structure extending this -- structure. diff --git a/src/Vulkan/Extensions/VK_EXT_mutable_descriptor_type.hs-boot b/src/Vulkan/Extensions/VK_EXT_mutable_descriptor_type.hs-boot index 1d9e651aa..f77fe6e4c 100644 --- a/src/Vulkan/Extensions/VK_EXT_mutable_descriptor_type.hs-boot +++ b/src/Vulkan/Extensions/VK_EXT_mutable_descriptor_type.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- diff --git a/src/Vulkan/Extensions/VK_EXT_nested_command_buffer.hs b/src/Vulkan/Extensions/VK_EXT_nested_command_buffer.hs new file mode 100644 index 000000000..4eb414af2 --- /dev/null +++ b/src/Vulkan/Extensions/VK_EXT_nested_command_buffer.hs @@ -0,0 +1,331 @@ +{-# language CPP #-} +-- | = Name +-- +-- VK_EXT_nested_command_buffer - device extension +-- +-- == VK_EXT_nested_command_buffer +-- +-- [__Name String__] +-- @VK_EXT_nested_command_buffer@ +-- +-- [__Extension Type__] +-- Device extension +-- +-- [__Registered Extension Number__] +-- 452 +-- +-- [__Revision__] +-- 1 +-- +-- [__Ratification Status__] +-- Not ratified +-- +-- [__Extension and Version Dependencies__] +-- +-- +-- [__Contact__] +-- +-- - Piers Daniell +-- +-- +-- == Other Extension Metadata +-- +-- [__Last Modified Date__] +-- 2023-09-18 +-- +-- [__Contributors__] +-- +-- - Daniel Story, Nintendo +-- +-- - Peter Kohaut, NVIDIA +-- +-- - Shahbaz Youssefi, Google +-- +-- - Slawomir Grajewski, Intel +-- +-- - Stu Smith, AMD +-- +-- == Description +-- +-- With core Vulkan it is not legal to call +-- 'Vulkan.Core10.CommandBufferBuilding.cmdExecuteCommands' when recording +-- a secondary command buffer. This extension relaxes that restriction, +-- allowing secondary command buffers to execute other secondary command +-- buffers. +-- +-- == New Structures +-- +-- - Extending +-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2', +-- 'Vulkan.Core10.Device.DeviceCreateInfo': +-- +-- - 'PhysicalDeviceNestedCommandBufferFeaturesEXT' +-- +-- - Extending +-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2': +-- +-- - 'PhysicalDeviceNestedCommandBufferPropertiesEXT' +-- +-- == New Enum Constants +-- +-- - 'EXT_NESTED_COMMAND_BUFFER_EXTENSION_NAME' +-- +-- - 'EXT_NESTED_COMMAND_BUFFER_SPEC_VERSION' +-- +-- - Extending 'Vulkan.Core13.Enums.RenderingFlagBits.RenderingFlagBits': +-- +-- - 'Vulkan.Core13.Enums.RenderingFlagBits.RENDERING_CONTENTS_INLINE_BIT_EXT' +-- +-- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType': +-- +-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_FEATURES_EXT' +-- +-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_PROPERTIES_EXT' +-- +-- - Extending 'Vulkan.Core10.Enums.SubpassContents.SubpassContents': +-- +-- - 'Vulkan.Core10.Enums.SubpassContents.SUBPASS_CONTENTS_INLINE_AND_SECONDARY_COMMAND_BUFFERS_EXT' +-- +-- == Issues +-- +-- 1) The Command Buffer Levels property for the Vulkan commands comes from +-- the @cmdbufferlevel@ attribute in @vk.xml@ for the command, and it is +-- currently not possible to modify this attribute based on whether an +-- extension is enabled. For this extension we want the @cmdbufferlevel@ +-- attribute for vkCmdExecuteCommands to be @primary,secondary@ when this +-- extension is enabled and @primary@ otherwise. +-- +-- __RESOLVED__: The @cmdbufferlevel@ attribute for +-- 'Vulkan.Core10.CommandBufferBuilding.cmdExecuteCommands' has been +-- changed to @primary,secondary@ and a new VUID added to prohibit +-- recording this command in a secondary command buffer unless this +-- extension is enabled. +-- +-- == Version History +-- +-- - Revision 1, 2023-09-18 (Piers Daniell) +-- +-- - Internal revisions +-- +-- == See Also +-- +-- 'PhysicalDeviceNestedCommandBufferFeaturesEXT', +-- 'PhysicalDeviceNestedCommandBufferPropertiesEXT' +-- +-- == Document Notes +-- +-- For more information, see the +-- +-- +-- This page is a generated document. Fixes and changes should be made to +-- the generator scripts, not directly. +module Vulkan.Extensions.VK_EXT_nested_command_buffer ( PhysicalDeviceNestedCommandBufferFeaturesEXT(..) + , PhysicalDeviceNestedCommandBufferPropertiesEXT(..) + , EXT_NESTED_COMMAND_BUFFER_SPEC_VERSION + , pattern EXT_NESTED_COMMAND_BUFFER_SPEC_VERSION + , EXT_NESTED_COMMAND_BUFFER_EXTENSION_NAME + , pattern EXT_NESTED_COMMAND_BUFFER_EXTENSION_NAME + ) where + +import Foreign.Marshal.Alloc (allocaBytes) +import Foreign.Ptr (nullPtr) +import Foreign.Ptr (plusPtr) +import Vulkan.CStruct (FromCStruct) +import Vulkan.CStruct (FromCStruct(..)) +import Vulkan.CStruct (ToCStruct) +import Vulkan.CStruct (ToCStruct(..)) +import Vulkan.Zero (Zero(..)) +import Data.String (IsString) +import Data.Typeable (Typeable) +import Foreign.Storable (Storable) +import Foreign.Storable (Storable(peek)) +import Foreign.Storable (Storable(poke)) +import qualified Foreign.Storable (Storable(..)) +import GHC.Generics (Generic) +import Foreign.Ptr (Ptr) +import Data.Word (Word32) +import Data.Kind (Type) +import Vulkan.Core10.FundamentalTypes (bool32ToBool) +import Vulkan.Core10.FundamentalTypes (boolToBool32) +import Vulkan.Core10.FundamentalTypes (Bool32) +import Vulkan.Core10.Enums.StructureType (StructureType) +import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_FEATURES_EXT)) +import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_PROPERTIES_EXT)) +-- | VkPhysicalDeviceNestedCommandBufferFeaturesEXT - Structure describing +-- whether nested command buffers are supported by the implementation +-- +-- = Members +-- +-- This structure describes the following features: +-- +-- = Description +-- +-- If the 'PhysicalDeviceNestedCommandBufferFeaturesEXT' 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. 'PhysicalDeviceNestedCommandBufferFeaturesEXT' /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 PhysicalDeviceNestedCommandBufferFeaturesEXT = PhysicalDeviceNestedCommandBufferFeaturesEXT + { -- | #features-nestedCommandBuffer# @nestedCommandBuffer@ indicates the + -- implementation supports nested command buffers, which allows + -- + -- to execute other + -- . + nestedCommandBuffer :: Bool + , -- | #features-nestedCommandBufferRendering# @nestedCommandBufferRendering@ + -- indicates that it is valid to call + -- 'Vulkan.Core10.CommandBufferBuilding.cmdExecuteCommands' inside a + -- + -- recorded with + -- 'Vulkan.Core10.Enums.CommandBufferUsageFlagBits.COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT'. + nestedCommandBufferRendering :: Bool + , -- | #features-nestedCommandBufferSimultaneousUse# + -- @nestedCommandBufferSimultaneousUse@ indicates that the implementation + -- supports nested command buffers with command buffers that are recorded + -- with + -- 'Vulkan.Core10.Enums.CommandBufferUsageFlagBits.COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT'. + nestedCommandBufferSimultaneousUse :: Bool + } + deriving (Typeable, Eq) +#if defined(GENERIC_INSTANCES) +deriving instance Generic (PhysicalDeviceNestedCommandBufferFeaturesEXT) +#endif +deriving instance Show PhysicalDeviceNestedCommandBufferFeaturesEXT + +instance ToCStruct PhysicalDeviceNestedCommandBufferFeaturesEXT where + withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p) + pokeCStruct p PhysicalDeviceNestedCommandBufferFeaturesEXT{..} f = do + poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_FEATURES_EXT) + poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr) + poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (nestedCommandBuffer)) + poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (nestedCommandBufferRendering)) + poke ((p `plusPtr` 24 :: Ptr Bool32)) (boolToBool32 (nestedCommandBufferSimultaneousUse)) + f + cStructSize = 32 + cStructAlignment = 8 + pokeZeroCStruct p f = do + poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_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 PhysicalDeviceNestedCommandBufferFeaturesEXT where + peekCStruct p = do + nestedCommandBuffer <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32)) + nestedCommandBufferRendering <- peek @Bool32 ((p `plusPtr` 20 :: Ptr Bool32)) + nestedCommandBufferSimultaneousUse <- peek @Bool32 ((p `plusPtr` 24 :: Ptr Bool32)) + pure $ PhysicalDeviceNestedCommandBufferFeaturesEXT + (bool32ToBool nestedCommandBuffer) + (bool32ToBool nestedCommandBufferRendering) + (bool32ToBool nestedCommandBufferSimultaneousUse) + +instance Storable PhysicalDeviceNestedCommandBufferFeaturesEXT where + sizeOf ~_ = 32 + alignment ~_ = 8 + peek = peekCStruct + poke ptr poked = pokeCStruct ptr poked (pure ()) + +instance Zero PhysicalDeviceNestedCommandBufferFeaturesEXT where + zero = PhysicalDeviceNestedCommandBufferFeaturesEXT + zero + zero + zero + + +-- | VkPhysicalDeviceNestedCommandBufferPropertiesEXT - Structure describing +-- the nested command buffer limits of an implementation +-- +-- = Members +-- +-- The members of the 'PhysicalDeviceNestedCommandBufferPropertiesEXT' +-- structure describe the following features: +-- +-- = Description +-- +-- If the 'PhysicalDeviceNestedCommandBufferPropertiesEXT' 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.Enums.StructureType.StructureType' +data PhysicalDeviceNestedCommandBufferPropertiesEXT = PhysicalDeviceNestedCommandBufferPropertiesEXT + { -- | #limits-maxCommandBufferNestingLevel# @maxCommandBufferNestingLevel@ + -- indicates the maximum nesting level of calls to + -- 'Vulkan.Core10.CommandBufferBuilding.cmdExecuteCommands' from + -- . + -- A @maxCommandBufferNestingLevel@ of @UINT32_MAX@ means there is no limit + -- to the nesting level. + maxCommandBufferNestingLevel :: Word32 } + deriving (Typeable, Eq) +#if defined(GENERIC_INSTANCES) +deriving instance Generic (PhysicalDeviceNestedCommandBufferPropertiesEXT) +#endif +deriving instance Show PhysicalDeviceNestedCommandBufferPropertiesEXT + +instance ToCStruct PhysicalDeviceNestedCommandBufferPropertiesEXT where + withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p) + pokeCStruct p PhysicalDeviceNestedCommandBufferPropertiesEXT{..} f = do + poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_PROPERTIES_EXT) + poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr) + poke ((p `plusPtr` 16 :: Ptr Word32)) (maxCommandBufferNestingLevel) + f + cStructSize = 24 + cStructAlignment = 8 + pokeZeroCStruct p f = do + poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_PROPERTIES_EXT) + poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr) + poke ((p `plusPtr` 16 :: Ptr Word32)) (zero) + f + +instance FromCStruct PhysicalDeviceNestedCommandBufferPropertiesEXT where + peekCStruct p = do + maxCommandBufferNestingLevel <- peek @Word32 ((p `plusPtr` 16 :: Ptr Word32)) + pure $ PhysicalDeviceNestedCommandBufferPropertiesEXT + maxCommandBufferNestingLevel + +instance Storable PhysicalDeviceNestedCommandBufferPropertiesEXT where + sizeOf ~_ = 24 + alignment ~_ = 8 + peek = peekCStruct + poke ptr poked = pokeCStruct ptr poked (pure ()) + +instance Zero PhysicalDeviceNestedCommandBufferPropertiesEXT where + zero = PhysicalDeviceNestedCommandBufferPropertiesEXT + zero + + +type EXT_NESTED_COMMAND_BUFFER_SPEC_VERSION = 1 + +-- No documentation found for TopLevel "VK_EXT_NESTED_COMMAND_BUFFER_SPEC_VERSION" +pattern EXT_NESTED_COMMAND_BUFFER_SPEC_VERSION :: forall a . Integral a => a +pattern EXT_NESTED_COMMAND_BUFFER_SPEC_VERSION = 1 + + +type EXT_NESTED_COMMAND_BUFFER_EXTENSION_NAME = "VK_EXT_nested_command_buffer" + +-- No documentation found for TopLevel "VK_EXT_NESTED_COMMAND_BUFFER_EXTENSION_NAME" +pattern EXT_NESTED_COMMAND_BUFFER_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a +pattern EXT_NESTED_COMMAND_BUFFER_EXTENSION_NAME = "VK_EXT_nested_command_buffer" + diff --git a/src/Vulkan/Extensions/VK_EXT_nested_command_buffer.hs-boot b/src/Vulkan/Extensions/VK_EXT_nested_command_buffer.hs-boot new file mode 100644 index 000000000..d515baec0 --- /dev/null +++ b/src/Vulkan/Extensions/VK_EXT_nested_command_buffer.hs-boot @@ -0,0 +1,144 @@ +{-# language CPP #-} +-- | = Name +-- +-- VK_EXT_nested_command_buffer - device extension +-- +-- == VK_EXT_nested_command_buffer +-- +-- [__Name String__] +-- @VK_EXT_nested_command_buffer@ +-- +-- [__Extension Type__] +-- Device extension +-- +-- [__Registered Extension Number__] +-- 452 +-- +-- [__Revision__] +-- 1 +-- +-- [__Ratification Status__] +-- Not ratified +-- +-- [__Extension and Version Dependencies__] +-- +-- +-- [__Contact__] +-- +-- - Piers Daniell +-- +-- +-- == Other Extension Metadata +-- +-- [__Last Modified Date__] +-- 2023-09-18 +-- +-- [__Contributors__] +-- +-- - Daniel Story, Nintendo +-- +-- - Peter Kohaut, NVIDIA +-- +-- - Shahbaz Youssefi, Google +-- +-- - Slawomir Grajewski, Intel +-- +-- - Stu Smith, AMD +-- +-- == Description +-- +-- With core Vulkan it is not legal to call +-- 'Vulkan.Core10.CommandBufferBuilding.cmdExecuteCommands' when recording +-- a secondary command buffer. This extension relaxes that restriction, +-- allowing secondary command buffers to execute other secondary command +-- buffers. +-- +-- == New Structures +-- +-- - Extending +-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2', +-- 'Vulkan.Core10.Device.DeviceCreateInfo': +-- +-- - 'PhysicalDeviceNestedCommandBufferFeaturesEXT' +-- +-- - Extending +-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2': +-- +-- - 'PhysicalDeviceNestedCommandBufferPropertiesEXT' +-- +-- == New Enum Constants +-- +-- - 'EXT_NESTED_COMMAND_BUFFER_EXTENSION_NAME' +-- +-- - 'EXT_NESTED_COMMAND_BUFFER_SPEC_VERSION' +-- +-- - Extending 'Vulkan.Core13.Enums.RenderingFlagBits.RenderingFlagBits': +-- +-- - 'Vulkan.Core13.Enums.RenderingFlagBits.RENDERING_CONTENTS_INLINE_BIT_EXT' +-- +-- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType': +-- +-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_FEATURES_EXT' +-- +-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_PROPERTIES_EXT' +-- +-- - Extending 'Vulkan.Core10.Enums.SubpassContents.SubpassContents': +-- +-- - 'Vulkan.Core10.Enums.SubpassContents.SUBPASS_CONTENTS_INLINE_AND_SECONDARY_COMMAND_BUFFERS_EXT' +-- +-- == Issues +-- +-- 1) The Command Buffer Levels property for the Vulkan commands comes from +-- the @cmdbufferlevel@ attribute in @vk.xml@ for the command, and it is +-- currently not possible to modify this attribute based on whether an +-- extension is enabled. For this extension we want the @cmdbufferlevel@ +-- attribute for vkCmdExecuteCommands to be @primary,secondary@ when this +-- extension is enabled and @primary@ otherwise. +-- +-- __RESOLVED__: The @cmdbufferlevel@ attribute for +-- 'Vulkan.Core10.CommandBufferBuilding.cmdExecuteCommands' has been +-- changed to @primary,secondary@ and a new VUID added to prohibit +-- recording this command in a secondary command buffer unless this +-- extension is enabled. +-- +-- == Version History +-- +-- - Revision 1, 2023-09-18 (Piers Daniell) +-- +-- - Internal revisions +-- +-- == See Also +-- +-- 'PhysicalDeviceNestedCommandBufferFeaturesEXT', +-- 'PhysicalDeviceNestedCommandBufferPropertiesEXT' +-- +-- == Document Notes +-- +-- For more information, see the +-- +-- +-- This page is a generated document. Fixes and changes should be made to +-- the generator scripts, not directly. +module Vulkan.Extensions.VK_EXT_nested_command_buffer ( PhysicalDeviceNestedCommandBufferFeaturesEXT + , PhysicalDeviceNestedCommandBufferPropertiesEXT + ) where + +import Vulkan.CStruct (FromCStruct) +import Vulkan.CStruct (ToCStruct) +import Data.Kind (Type) + +data PhysicalDeviceNestedCommandBufferFeaturesEXT + +instance ToCStruct PhysicalDeviceNestedCommandBufferFeaturesEXT +instance Show PhysicalDeviceNestedCommandBufferFeaturesEXT + +instance FromCStruct PhysicalDeviceNestedCommandBufferFeaturesEXT + + +data PhysicalDeviceNestedCommandBufferPropertiesEXT + +instance ToCStruct PhysicalDeviceNestedCommandBufferPropertiesEXT +instance Show PhysicalDeviceNestedCommandBufferPropertiesEXT + +instance FromCStruct PhysicalDeviceNestedCommandBufferPropertiesEXT + diff --git a/src/Vulkan/Extensions/VK_EXT_non_seamless_cube_map.hs b/src/Vulkan/Extensions/VK_EXT_non_seamless_cube_map.hs index 90cb205f9..39b78a708 100644 --- a/src/Vulkan/Extensions/VK_EXT_non_seamless_cube_map.hs +++ b/src/Vulkan/Extensions/VK_EXT_non_seamless_cube_map.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- diff --git a/src/Vulkan/Extensions/VK_EXT_non_seamless_cube_map.hs-boot b/src/Vulkan/Extensions/VK_EXT_non_seamless_cube_map.hs-boot index 1f9d72b8a..5e2a3d5b4 100644 --- a/src/Vulkan/Extensions/VK_EXT_non_seamless_cube_map.hs-boot +++ b/src/Vulkan/Extensions/VK_EXT_non_seamless_cube_map.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- diff --git a/src/Vulkan/Extensions/VK_EXT_opacity_micromap.hs b/src/Vulkan/Extensions/VK_EXT_opacity_micromap.hs index b1ee1c015..371b363c9 100644 --- a/src/Vulkan/Extensions/VK_EXT_opacity_micromap.hs +++ b/src/Vulkan/Extensions/VK_EXT_opacity_micromap.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 2 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- and @@ -258,7 +261,7 @@ -- -- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_PROPERTIES_EXT' -- --- == Reference code +-- == Reference Code -- -- > uint32_t BarycentricsToSpaceFillingCurveIndex(float u, float v, uint32_t level) -- > { @@ -617,13 +620,25 @@ foreign import ccall -- that can be built into a micromap is determined by the parameters of -- 'MicromapCreateInfoEXT'. -- --- Populating the data in the object after allocating and binding memory is --- done with commands such as 'cmdBuildMicromapsEXT', 'buildMicromapsEXT', +-- The micromap data is stored in the object referred to by +-- 'MicromapCreateInfoEXT'::@buffer@. Once memory has been bound to that +-- buffer, it /must/ be populated by micromap build or micromap copy +-- commands such as 'cmdBuildMicromapsEXT', 'buildMicromapsEXT', -- 'cmdCopyMicromapEXT', and 'copyMicromapEXT'. -- +-- Note +-- +-- The expected usage for a trace capture\/replay tool is that it will +-- serialize and later deserialize the micromap data using micromap copy +-- commands. During capture the tool will use 'copyMicromapToMemoryEXT' or +-- 'cmdCopyMicromapToMemoryEXT' with a @mode@ of +-- 'COPY_MICROMAP_MODE_SERIALIZE_EXT', and 'copyMemoryToMicromapEXT' or +-- 'cmdCopyMemoryToMicromapEXT' with a @mode@ of +-- 'COPY_MICROMAP_MODE_DESERIALIZE_EXT' during replay. +-- -- The input buffers passed to micromap build commands will be referenced -- by the implementation for the duration of the command. Micromaps /must/ --- be fully self-contained. The application /may/ re-use or free any memory +-- be fully self-contained. The application /can/ reuse or free any memory -- which was used by the command as an input or as scratch without -- affecting the results of a subsequent acceleration structure build using -- the micromap or traversal of that acceleration structure. @@ -2252,6 +2267,10 @@ foreign import ccall -- -- == Valid Usage -- +-- - #VUID-vkGetMicromapBuildSizesEXT-dstMicromap-09180# +-- 'MicromapBuildInfoEXT'::@dstMicromap@ /must/ have been created from +-- @device@ +-- -- - #VUID-vkGetMicromapBuildSizesEXT-micromap-07439# The -- -- feature /must/ be enabled @@ -3465,6 +3484,7 @@ instance Zero PhysicalDeviceOpacityMicromapPropertiesEXT where -- @usageCountsCount@ valid pointers to 'MicromapUsageEXT' structures -- -- - #VUID-VkAccelerationStructureTrianglesOpacityMicromapEXT-micromap-parameter# +-- If @micromap@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', -- @micromap@ /must/ be a valid 'Vulkan.Extensions.Handles.MicromapEXT' -- handle -- @@ -3526,7 +3546,6 @@ instance ToCStruct AccelerationStructureTrianglesOpacityMicromapEXT where lift $ poke ((p `plusPtr` 32 :: Ptr DeviceSize)) (zero) lift $ poke ((p `plusPtr` 40 :: Ptr Word32)) (zero) lift $ poke ((p `plusPtr` 56 :: Ptr (Ptr (Ptr MicromapUsageEXT)))) (nullPtr) - lift $ poke ((p `plusPtr` 64 :: Ptr MicromapEXT)) (zero) lift $ f instance Zero AccelerationStructureTrianglesOpacityMicromapEXT where diff --git a/src/Vulkan/Extensions/VK_EXT_opacity_micromap.hs-boot b/src/Vulkan/Extensions/VK_EXT_opacity_micromap.hs-boot index d65a69cb7..d97bee069 100644 --- a/src/Vulkan/Extensions/VK_EXT_opacity_micromap.hs-boot +++ b/src/Vulkan/Extensions/VK_EXT_opacity_micromap.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 2 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- and @@ -258,7 +261,7 @@ -- -- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_PROPERTIES_EXT' -- --- == Reference code +-- == Reference Code -- -- > uint32_t BarycentricsToSpaceFillingCurveIndex(float u, float v, uint32_t level) -- > { diff --git a/src/Vulkan/Extensions/VK_EXT_pageable_device_local_memory.hs b/src/Vulkan/Extensions/VK_EXT_pageable_device_local_memory.hs index ae0cc69b9..a7329f0b7 100644 --- a/src/Vulkan/Extensions/VK_EXT_pageable_device_local_memory.hs +++ b/src/Vulkan/Extensions/VK_EXT_pageable_device_local_memory.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- diff --git a/src/Vulkan/Extensions/VK_EXT_pageable_device_local_memory.hs-boot b/src/Vulkan/Extensions/VK_EXT_pageable_device_local_memory.hs-boot index 6f2f16e19..094b67c85 100644 --- a/src/Vulkan/Extensions/VK_EXT_pageable_device_local_memory.hs-boot +++ b/src/Vulkan/Extensions/VK_EXT_pageable_device_local_memory.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- diff --git a/src/Vulkan/Extensions/VK_EXT_pci_bus_info.hs b/src/Vulkan/Extensions/VK_EXT_pci_bus_info.hs index 6af6bd582..52ba7f281 100644 --- a/src/Vulkan/Extensions/VK_EXT_pci_bus_info.hs +++ b/src/Vulkan/Extensions/VK_EXT_pci_bus_info.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 2 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- or diff --git a/src/Vulkan/Extensions/VK_EXT_pci_bus_info.hs-boot b/src/Vulkan/Extensions/VK_EXT_pci_bus_info.hs-boot index 24985d887..dba629cdf 100644 --- a/src/Vulkan/Extensions/VK_EXT_pci_bus_info.hs-boot +++ b/src/Vulkan/Extensions/VK_EXT_pci_bus_info.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 2 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- or diff --git a/src/Vulkan/Extensions/VK_EXT_physical_device_drm.hs b/src/Vulkan/Extensions/VK_EXT_physical_device_drm.hs index f814d2690..a6a60a7b7 100644 --- a/src/Vulkan/Extensions/VK_EXT_physical_device_drm.hs +++ b/src/Vulkan/Extensions/VK_EXT_physical_device_drm.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- diff --git a/src/Vulkan/Extensions/VK_EXT_physical_device_drm.hs-boot b/src/Vulkan/Extensions/VK_EXT_physical_device_drm.hs-boot index 4356d44cd..6b3265562 100644 --- a/src/Vulkan/Extensions/VK_EXT_physical_device_drm.hs-boot +++ b/src/Vulkan/Extensions/VK_EXT_physical_device_drm.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- diff --git a/src/Vulkan/Extensions/VK_EXT_pipeline_creation_cache_control.hs b/src/Vulkan/Extensions/VK_EXT_pipeline_creation_cache_control.hs index 1d951cce2..377f8f499 100644 --- a/src/Vulkan/Extensions/VK_EXT_pipeline_creation_cache_control.hs +++ b/src/Vulkan/Extensions/VK_EXT_pipeline_creation_cache_control.hs @@ -17,10 +17,13 @@ -- [__Revision__] -- 3 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- --- [__Deprecation state__] +-- [__Deprecation State__] -- -- - /Promoted/ to -- diff --git a/src/Vulkan/Extensions/VK_EXT_pipeline_creation_feedback.hs b/src/Vulkan/Extensions/VK_EXT_pipeline_creation_feedback.hs index dd3994f78..5be5e41f5 100644 --- a/src/Vulkan/Extensions/VK_EXT_pipeline_creation_feedback.hs +++ b/src/Vulkan/Extensions/VK_EXT_pipeline_creation_feedback.hs @@ -17,7 +17,10 @@ -- [__Revision__] -- 1 -- --- [__Extension and Version Dependencies__; __Deprecation state__] +-- [__Ratification Status__] +-- Not ratified +-- +-- [__Extension and Version Dependencies__; __Deprecation State__] -- -- - /Promoted/ to -- @@ -79,7 +82,8 @@ -- - Extending 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo', -- 'Vulkan.Core10.Pipeline.ComputePipelineCreateInfo', -- 'Vulkan.Extensions.VK_NV_ray_tracing.RayTracingPipelineCreateInfoNV', --- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.RayTracingPipelineCreateInfoKHR': +-- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.RayTracingPipelineCreateInfoKHR', +-- 'Vulkan.Extensions.VK_AMDX_shader_enqueue.ExecutionGraphPipelineCreateInfoAMDX': -- -- - 'PipelineCreationFeedbackCreateInfoEXT' -- diff --git a/src/Vulkan/Extensions/VK_EXT_pipeline_library_group_handles.hs b/src/Vulkan/Extensions/VK_EXT_pipeline_library_group_handles.hs index d0d30f68d..4be6f9d3b 100644 --- a/src/Vulkan/Extensions/VK_EXT_pipeline_library_group_handles.hs +++ b/src/Vulkan/Extensions/VK_EXT_pipeline_library_group_handles.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- and diff --git a/src/Vulkan/Extensions/VK_EXT_pipeline_library_group_handles.hs-boot b/src/Vulkan/Extensions/VK_EXT_pipeline_library_group_handles.hs-boot index db05c4b58..88c1f1b94 100644 --- a/src/Vulkan/Extensions/VK_EXT_pipeline_library_group_handles.hs-boot +++ b/src/Vulkan/Extensions/VK_EXT_pipeline_library_group_handles.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- and diff --git a/src/Vulkan/Extensions/VK_EXT_pipeline_properties.hs b/src/Vulkan/Extensions/VK_EXT_pipeline_properties.hs index ac1d7182c..259397be6 100644 --- a/src/Vulkan/Extensions/VK_EXT_pipeline_properties.hs +++ b/src/Vulkan/Extensions/VK_EXT_pipeline_properties.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- diff --git a/src/Vulkan/Extensions/VK_EXT_pipeline_properties.hs-boot b/src/Vulkan/Extensions/VK_EXT_pipeline_properties.hs-boot index b140f7954..f30ef7fe9 100644 --- a/src/Vulkan/Extensions/VK_EXT_pipeline_properties.hs-boot +++ b/src/Vulkan/Extensions/VK_EXT_pipeline_properties.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- diff --git a/src/Vulkan/Extensions/VK_EXT_pipeline_protected_access.hs b/src/Vulkan/Extensions/VK_EXT_pipeline_protected_access.hs index b0552c95a..f6189c8c6 100644 --- a/src/Vulkan/Extensions/VK_EXT_pipeline_protected_access.hs +++ b/src/Vulkan/Extensions/VK_EXT_pipeline_protected_access.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- diff --git a/src/Vulkan/Extensions/VK_EXT_pipeline_protected_access.hs-boot b/src/Vulkan/Extensions/VK_EXT_pipeline_protected_access.hs-boot index 16998ce66..2c66684f3 100644 --- a/src/Vulkan/Extensions/VK_EXT_pipeline_protected_access.hs-boot +++ b/src/Vulkan/Extensions/VK_EXT_pipeline_protected_access.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- diff --git a/src/Vulkan/Extensions/VK_EXT_pipeline_robustness.hs b/src/Vulkan/Extensions/VK_EXT_pipeline_robustness.hs index 89d55c7a4..19cc51388 100644 --- a/src/Vulkan/Extensions/VK_EXT_pipeline_robustness.hs +++ b/src/Vulkan/Extensions/VK_EXT_pipeline_robustness.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- diff --git a/src/Vulkan/Extensions/VK_EXT_pipeline_robustness.hs-boot b/src/Vulkan/Extensions/VK_EXT_pipeline_robustness.hs-boot index 5cdaf9a67..bac1a4196 100644 --- a/src/Vulkan/Extensions/VK_EXT_pipeline_robustness.hs-boot +++ b/src/Vulkan/Extensions/VK_EXT_pipeline_robustness.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- diff --git a/src/Vulkan/Extensions/VK_EXT_post_depth_coverage.hs b/src/Vulkan/Extensions/VK_EXT_post_depth_coverage.hs index 4794066f2..34173744b 100644 --- a/src/Vulkan/Extensions/VK_EXT_post_depth_coverage.hs +++ b/src/Vulkan/Extensions/VK_EXT_post_depth_coverage.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__; __Contact__] -- -- - Daniel Koch diff --git a/src/Vulkan/Extensions/VK_EXT_primitive_topology_list_restart.hs b/src/Vulkan/Extensions/VK_EXT_primitive_topology_list_restart.hs index a3d2d9252..e388906b9 100644 --- a/src/Vulkan/Extensions/VK_EXT_primitive_topology_list_restart.hs +++ b/src/Vulkan/Extensions/VK_EXT_primitive_topology_list_restart.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- diff --git a/src/Vulkan/Extensions/VK_EXT_primitive_topology_list_restart.hs-boot b/src/Vulkan/Extensions/VK_EXT_primitive_topology_list_restart.hs-boot index f061bc7c7..265e5c334 100644 --- a/src/Vulkan/Extensions/VK_EXT_primitive_topology_list_restart.hs-boot +++ b/src/Vulkan/Extensions/VK_EXT_primitive_topology_list_restart.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- diff --git a/src/Vulkan/Extensions/VK_EXT_primitives_generated_query.hs b/src/Vulkan/Extensions/VK_EXT_primitives_generated_query.hs index 37aae6da9..ab60b704d 100644 --- a/src/Vulkan/Extensions/VK_EXT_primitives_generated_query.hs +++ b/src/Vulkan/Extensions/VK_EXT_primitives_generated_query.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- diff --git a/src/Vulkan/Extensions/VK_EXT_primitives_generated_query.hs-boot b/src/Vulkan/Extensions/VK_EXT_primitives_generated_query.hs-boot index 02ae3e192..ed3180204 100644 --- a/src/Vulkan/Extensions/VK_EXT_primitives_generated_query.hs-boot +++ b/src/Vulkan/Extensions/VK_EXT_primitives_generated_query.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- diff --git a/src/Vulkan/Extensions/VK_EXT_private_data.hs b/src/Vulkan/Extensions/VK_EXT_private_data.hs index 40a4e82dd..8e5718f5b 100644 --- a/src/Vulkan/Extensions/VK_EXT_private_data.hs +++ b/src/Vulkan/Extensions/VK_EXT_private_data.hs @@ -17,10 +17,13 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- --- [__Deprecation state__] +-- [__Deprecation State__] -- -- - /Promoted/ to -- diff --git a/src/Vulkan/Extensions/VK_EXT_provoking_vertex.hs b/src/Vulkan/Extensions/VK_EXT_provoking_vertex.hs index 22a2bed92..495622811 100644 --- a/src/Vulkan/Extensions/VK_EXT_provoking_vertex.hs +++ b/src/Vulkan/Extensions/VK_EXT_provoking_vertex.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- diff --git a/src/Vulkan/Extensions/VK_EXT_provoking_vertex.hs-boot b/src/Vulkan/Extensions/VK_EXT_provoking_vertex.hs-boot index 963cc9029..7648d21b1 100644 --- a/src/Vulkan/Extensions/VK_EXT_provoking_vertex.hs-boot +++ b/src/Vulkan/Extensions/VK_EXT_provoking_vertex.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- diff --git a/src/Vulkan/Extensions/VK_EXT_queue_family_foreign.hs b/src/Vulkan/Extensions/VK_EXT_queue_family_foreign.hs index cdc21d1fa..6e5460256 100644 --- a/src/Vulkan/Extensions/VK_EXT_queue_family_foreign.hs +++ b/src/Vulkan/Extensions/VK_EXT_queue_family_foreign.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- or diff --git a/src/Vulkan/Extensions/VK_EXT_rasterization_order_attachment_access.hs b/src/Vulkan/Extensions/VK_EXT_rasterization_order_attachment_access.hs index 78a66a0c8..f1cdbf031 100644 --- a/src/Vulkan/Extensions/VK_EXT_rasterization_order_attachment_access.hs +++ b/src/Vulkan/Extensions/VK_EXT_rasterization_order_attachment_access.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- diff --git a/src/Vulkan/Extensions/VK_EXT_rasterization_order_attachment_access.hs-boot b/src/Vulkan/Extensions/VK_EXT_rasterization_order_attachment_access.hs-boot index 6a842b4c8..74b4b27ad 100644 --- a/src/Vulkan/Extensions/VK_EXT_rasterization_order_attachment_access.hs-boot +++ b/src/Vulkan/Extensions/VK_EXT_rasterization_order_attachment_access.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- diff --git a/src/Vulkan/Extensions/VK_EXT_rgba10x6_formats.hs b/src/Vulkan/Extensions/VK_EXT_rgba10x6_formats.hs index 115a66724..c69f122f7 100644 --- a/src/Vulkan/Extensions/VK_EXT_rgba10x6_formats.hs +++ b/src/Vulkan/Extensions/VK_EXT_rgba10x6_formats.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- diff --git a/src/Vulkan/Extensions/VK_EXT_rgba10x6_formats.hs-boot b/src/Vulkan/Extensions/VK_EXT_rgba10x6_formats.hs-boot index cc4a649de..fe30e18e1 100644 --- a/src/Vulkan/Extensions/VK_EXT_rgba10x6_formats.hs-boot +++ b/src/Vulkan/Extensions/VK_EXT_rgba10x6_formats.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- diff --git a/src/Vulkan/Extensions/VK_EXT_robustness2.hs b/src/Vulkan/Extensions/VK_EXT_robustness2.hs index 32d5d4222..6222d4a6b 100644 --- a/src/Vulkan/Extensions/VK_EXT_robustness2.hs +++ b/src/Vulkan/Extensions/VK_EXT_robustness2.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- or @@ -166,7 +169,8 @@ import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_ -- -- = Description -- --- - @sType@ is the type of this structure. +-- - @sType@ is a 'Vulkan.Core10.Enums.StructureType.StructureType' value +-- identifying this structure. -- -- - @pNext@ is @NULL@ or a pointer to a structure extending this -- structure. diff --git a/src/Vulkan/Extensions/VK_EXT_robustness2.hs-boot b/src/Vulkan/Extensions/VK_EXT_robustness2.hs-boot index bba9bc82e..1a38fe3f5 100644 --- a/src/Vulkan/Extensions/VK_EXT_robustness2.hs-boot +++ b/src/Vulkan/Extensions/VK_EXT_robustness2.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- or diff --git a/src/Vulkan/Extensions/VK_EXT_sample_locations.hs b/src/Vulkan/Extensions/VK_EXT_sample_locations.hs index 5ef40c6ea..0c710ca33 100644 --- a/src/Vulkan/Extensions/VK_EXT_sample_locations.hs +++ b/src/Vulkan/Extensions/VK_EXT_sample_locations.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- or diff --git a/src/Vulkan/Extensions/VK_EXT_sample_locations.hs-boot b/src/Vulkan/Extensions/VK_EXT_sample_locations.hs-boot index eb5462ea1..fee64b01a 100644 --- a/src/Vulkan/Extensions/VK_EXT_sample_locations.hs-boot +++ b/src/Vulkan/Extensions/VK_EXT_sample_locations.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- or diff --git a/src/Vulkan/Extensions/VK_EXT_sampler_filter_minmax.hs b/src/Vulkan/Extensions/VK_EXT_sampler_filter_minmax.hs index 6f483a0a6..25110e663 100644 --- a/src/Vulkan/Extensions/VK_EXT_sampler_filter_minmax.hs +++ b/src/Vulkan/Extensions/VK_EXT_sampler_filter_minmax.hs @@ -17,10 +17,13 @@ -- [__Revision__] -- 2 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- --- [__Deprecation state__] +-- [__Deprecation State__] -- -- - /Promoted/ to -- diff --git a/src/Vulkan/Extensions/VK_EXT_scalar_block_layout.hs b/src/Vulkan/Extensions/VK_EXT_scalar_block_layout.hs index f2f83d4db..763bff718 100644 --- a/src/Vulkan/Extensions/VK_EXT_scalar_block_layout.hs +++ b/src/Vulkan/Extensions/VK_EXT_scalar_block_layout.hs @@ -17,10 +17,13 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- --- [__Deprecation state__] +-- [__Deprecation State__] -- -- - /Promoted/ to -- diff --git a/src/Vulkan/Extensions/VK_EXT_separate_stencil_usage.hs b/src/Vulkan/Extensions/VK_EXT_separate_stencil_usage.hs index f7b21f412..efbc3f0c1 100644 --- a/src/Vulkan/Extensions/VK_EXT_separate_stencil_usage.hs +++ b/src/Vulkan/Extensions/VK_EXT_separate_stencil_usage.hs @@ -17,7 +17,10 @@ -- [__Revision__] -- 1 -- --- [__Extension and Version Dependencies__; __Deprecation state__] +-- [__Ratification Status__] +-- Not ratified +-- +-- [__Extension and Version Dependencies__; __Deprecation State__] -- -- - /Promoted/ to -- diff --git a/src/Vulkan/Extensions/VK_EXT_shader_atomic_float.hs b/src/Vulkan/Extensions/VK_EXT_shader_atomic_float.hs index c0810cedb..0d3ecd682 100644 --- a/src/Vulkan/Extensions/VK_EXT_shader_atomic_float.hs +++ b/src/Vulkan/Extensions/VK_EXT_shader_atomic_float.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- or diff --git a/src/Vulkan/Extensions/VK_EXT_shader_atomic_float.hs-boot b/src/Vulkan/Extensions/VK_EXT_shader_atomic_float.hs-boot index 168b0555f..1682f4c58 100644 --- a/src/Vulkan/Extensions/VK_EXT_shader_atomic_float.hs-boot +++ b/src/Vulkan/Extensions/VK_EXT_shader_atomic_float.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- or diff --git a/src/Vulkan/Extensions/VK_EXT_shader_atomic_float2.hs b/src/Vulkan/Extensions/VK_EXT_shader_atomic_float2.hs index 0522e6da8..3407633ca 100644 --- a/src/Vulkan/Extensions/VK_EXT_shader_atomic_float2.hs +++ b/src/Vulkan/Extensions/VK_EXT_shader_atomic_float2.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- diff --git a/src/Vulkan/Extensions/VK_EXT_shader_atomic_float2.hs-boot b/src/Vulkan/Extensions/VK_EXT_shader_atomic_float2.hs-boot index 20efcc39e..6cc47ef67 100644 --- a/src/Vulkan/Extensions/VK_EXT_shader_atomic_float2.hs-boot +++ b/src/Vulkan/Extensions/VK_EXT_shader_atomic_float2.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- diff --git a/src/Vulkan/Extensions/VK_EXT_shader_demote_to_helper_invocation.hs b/src/Vulkan/Extensions/VK_EXT_shader_demote_to_helper_invocation.hs index 9b3977f37..dbbe4898e 100644 --- a/src/Vulkan/Extensions/VK_EXT_shader_demote_to_helper_invocation.hs +++ b/src/Vulkan/Extensions/VK_EXT_shader_demote_to_helper_invocation.hs @@ -17,12 +17,15 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- or -- -- --- [__Deprecation state__] +-- [__Deprecation State__] -- -- - /Promoted/ to -- diff --git a/src/Vulkan/Extensions/VK_EXT_shader_image_atomic_int64.hs b/src/Vulkan/Extensions/VK_EXT_shader_image_atomic_int64.hs index fbea0380f..954f1f573 100644 --- a/src/Vulkan/Extensions/VK_EXT_shader_image_atomic_int64.hs +++ b/src/Vulkan/Extensions/VK_EXT_shader_image_atomic_int64.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- or diff --git a/src/Vulkan/Extensions/VK_EXT_shader_image_atomic_int64.hs-boot b/src/Vulkan/Extensions/VK_EXT_shader_image_atomic_int64.hs-boot index 0fa5df73a..caf4d9b88 100644 --- a/src/Vulkan/Extensions/VK_EXT_shader_image_atomic_int64.hs-boot +++ b/src/Vulkan/Extensions/VK_EXT_shader_image_atomic_int64.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- or diff --git a/src/Vulkan/Extensions/VK_EXT_shader_module_identifier.hs b/src/Vulkan/Extensions/VK_EXT_shader_module_identifier.hs index 93f913d3b..4293d52e0 100644 --- a/src/Vulkan/Extensions/VK_EXT_shader_module_identifier.hs +++ b/src/Vulkan/Extensions/VK_EXT_shader_module_identifier.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- and @@ -586,7 +589,7 @@ instance Zero PhysicalDeviceShaderModuleIdentifierPropertiesEXT where -- , -- 'Vulkan.Core10.Enums.StructureType.StructureType' data PipelineShaderStageModuleIdentifierCreateInfoEXT = PipelineShaderStageModuleIdentifierCreateInfoEXT - { -- | @pIdentifier@ points to a buffer of opaque data specifying an + { -- | @pIdentifier@ is a pointer to a buffer of opaque data specifying an -- identifier. identifier :: Vector Word8 } deriving (Typeable) diff --git a/src/Vulkan/Extensions/VK_EXT_shader_module_identifier.hs-boot b/src/Vulkan/Extensions/VK_EXT_shader_module_identifier.hs-boot index 74dfd2327..8bbd6af77 100644 --- a/src/Vulkan/Extensions/VK_EXT_shader_module_identifier.hs-boot +++ b/src/Vulkan/Extensions/VK_EXT_shader_module_identifier.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- and diff --git a/src/Vulkan/Extensions/VK_EXT_shader_object.hs b/src/Vulkan/Extensions/VK_EXT_shader_object.hs index 3d4be1139..e9fba7962 100644 --- a/src/Vulkan/Extensions/VK_EXT_shader_object.hs +++ b/src/Vulkan/Extensions/VK_EXT_shader_object.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Ratified +-- -- [__Extension and Version Dependencies__] --      -- @@ -112,8 +115,9 @@ -- -- This extension introduces a new 'Vulkan.Extensions.Handles.ShaderEXT' -- object type which represents a single compiled shader stage. Shader --- objects can be used as a more flexible but comparably performant --- alternative to 'Vulkan.Core10.Handles.Pipeline' objects. +-- objects provide a more flexible alternative to +-- 'Vulkan.Core10.Handles.Pipeline' objects, which may be helpful in +-- certain use cases. -- -- == New Object Types -- @@ -139,18 +143,6 @@ -- -- - 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetConservativeRasterizationModeEXT' -- --- - 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationModeNV' --- --- - 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV' --- --- - 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableNV' --- --- - 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageReductionModeNV' --- --- - 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV' --- --- - 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorLocationNV' --- -- - 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetCullModeEXT' -- -- - 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnableEXT' @@ -197,16 +189,12 @@ -- -- - 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnableEXT' -- --- - 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRepresentativeFragmentTestEnableNV' --- -- - 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT' -- -- - 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleMaskEXT' -- -- - 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT' -- --- - 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetShadingRateImageEnableNV' --- -- - 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetStencilOpEXT' -- -- - 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetStencilTestEnableEXT' @@ -215,10 +203,6 @@ -- -- - 'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT' -- --- - 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetViewportSwizzleNV' --- --- - 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetViewportWScalingEnableNV' --- -- - 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT' -- -- - 'createShadersEXT' @@ -227,6 +211,54 @@ -- -- - 'getShaderBinaryDataEXT' -- +-- If +-- +-- is supported: +-- +-- - 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetViewportWScalingEnableNV' +-- +-- If +-- +-- is supported: +-- +-- - 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageReductionModeNV' +-- +-- If +-- +-- is supported: +-- +-- - 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV' +-- +-- - 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorLocationNV' +-- +-- If +-- +-- is supported: +-- +-- - 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationModeNV' +-- +-- - 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV' +-- +-- - 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableNV' +-- +-- If +-- +-- is supported: +-- +-- - 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRepresentativeFragmentTestEnableNV' +-- +-- If +-- +-- is supported: +-- +-- - 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetShadingRateImageEnableNV' +-- +-- If +-- +-- is supported: +-- +-- - 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetViewportSwizzleNV' +-- -- == New Structures -- -- - 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.ColorBlendAdvancedEXT' @@ -293,6 +325,54 @@ -- -- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT' -- +-- If +-- +-- is supported: +-- +-- - Extending 'ShaderCreateFlagBitsEXT': +-- +-- - 'SHADER_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT' +-- +-- If +-- +-- or +-- +-- is supported: +-- +-- - Extending 'ShaderCreateFlagBitsEXT': +-- +-- - 'SHADER_CREATE_NO_TASK_SHADER_BIT_EXT' +-- +-- If +-- +-- or +-- +-- is supported: +-- +-- - Extending 'ShaderCreateFlagBitsEXT': +-- +-- - 'SHADER_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT' +-- +-- - 'SHADER_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT' +-- +-- If +-- +-- or +-- +-- is supported: +-- +-- - Extending 'ShaderCreateFlagBitsEXT': +-- +-- - 'SHADER_CREATE_DISPATCH_BASE_BIT_EXT' +-- +-- If +-- +-- is supported: +-- +-- - Extending 'ShaderCreateFlagBitsEXT': +-- +-- - 'SHADER_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_EXT' +-- -- == Examples -- -- __Example 1__ @@ -352,7 +432,7 @@ -- > VkResult result; -- > VkShaderEXT shaders[2]; -- > --- > result = vkCmdCreateShadersEXT(device, 2, &shaderCreateInfos, NULL, shaders); +-- > result = vkCreateShadersEXT(device, 2, &shaderCreateInfos, NULL, shaders); -- > if (result != VK_SUCCESS) -- > { -- > // Handle error @@ -381,8 +461,8 @@ -- > -- > // Equivalent to the previous line. Linked shaders can be bound one at a time, -- > // in any order: --- > vkCmdBindShadersEXT(commandBuffer, 1, &stages[1], &shaders[1]); --- > vkCmdBindShadersEXT(commandBuffer, 1, &stages[0], &shaders[0]); +-- > // vkCmdBindShadersEXT(commandBuffer, 1, &stages[1], &shaders[1]); +-- > // vkCmdBindShadersEXT(commandBuffer, 1, &stages[0], &shaders[0]); -- > -- > // The above is sufficient to draw if the device was created with the -- > // tessellationShader and geometryShader features disabled. Otherwise, since @@ -401,6 +481,9 @@ -- > // shaders are unbound -- > vkCmdBindShadersEXT(commandBuffer, 3, unusedStages, NULL); -- > +-- > // Graphics shader objects may only be used to draw inside dynamic render pass +-- > // instances begun with vkCmdBeginRendering(), assume one has already been begun +-- > -- > // Draw a triangle -- > vkCmdDraw(commandBuffer, 3, 1, 0, 0); -- @@ -516,7 +599,7 @@ -- > VkResult result; -- > VkShaderEXT shaders[5]; -- > --- > result = vkCmdCreateShadersEXT(device, 5, &shaderCreateInfos, NULL, shaders); +-- > result = vkCreateShadersEXT(device, 5, &shaderCreateInfos, NULL, shaders); -- > if (result != VK_SUCCESS) -- > { -- > // Handle error @@ -534,33 +617,43 @@ -- > // Assume vertex buffers, descriptor sets, etc. have been bound, and existing -- > // state setting commands have been called to set all required state -- > --- > const VkShaderStageFlagBits vertexStage = VK_SHADER_STAGE_VERTEX_BIT; --- > const VkShaderStageFlagBits geometryStage = VK_SHADER_STAGE_VERTEX_BIT; --- > const VkShaderStageFlagBits fragmentStage = VK_SHADER_STAGE_VERTEX_BIT; --- > --- > // Bind unlinked vertex shader --- > vkCmdBindShadersEXT(commandBuffer, 1, &vertexStage, &shaders[0]); +-- > const VkShaderStageFlagBits stages[3] = +-- > { +-- > // Any order is allowed +-- > VK_SHADER_STAGE_FRAGMENT_BIT, +-- > VK_SHADER_STAGE_VERTEX_BIT, +-- > VK_SHADER_STAGE_GEOMETRY_BIT, +-- > }; -- > --- > // Bind unlinked fragment shader --- > vkCmdBindShadersEXT(commandBuffer, 1, &fragmentStage, &shaders[3]); +-- > VkShaderEXT bindShaders[3] = +-- > { +-- > shaders[2], // FS +-- > shaders[1], // VS +-- > shaders[0] // GS +-- > }; -- > --- > // Bind unlinked geometry shader --- > vkCmdBindShadersEXT(commandBuffer, 1, &geometryStage, &shaders[2]); +-- > // Bind unlinked shaders +-- > vkCmdBindShadersEXT(commandBuffer, 3, stages, bindShaders); -- > -- > // Assume the tessellationShader feature is disabled, so vkCmdBindShadersEXT() -- > // need not have been called with either tessellation stage -- > +-- > // Graphics shader objects may only be used to draw inside dynamic render pass +-- > // instances begun with vkCmdBeginRendering(), assume one has already been begun +-- > -- > // Draw a triangle -- > vkCmdDraw(commandBuffer, 3, 1, 0, 0); -- > -- > // Bind a different unlinked fragment shader --- > vkCmdBindShadersEXT(commandBuffer, 1, &fragmentStage, &shaders[4]); +-- > const VkShaderStageFlagBits fragmentStage = VK_SHADER_STAGE_FRAGMENT_BIT; +-- > vkCmdBindShadersEXT(commandBuffer, 1, &fragmentStage, &shaders[3]); -- > -- > // Draw another triangle -- > vkCmdDraw(commandBuffer, 3, 1, 0, 0); -- > -- > // Bind a different unlinked vertex shader --- > vkCmdBindShadersEXT(commandBuffer, 1, &vertexStage, &shaders[1]); +-- > const VkShaderStageFlagBits vertexStage = VK_SHADER_STAGE_VERTEX_BIT; +-- > vkCmdBindShadersEXT(commandBuffer, 1, &vertexStage, &shaders[4]); -- > -- > // Draw another triangle -- > vkCmdDraw(commandBuffer, 3, 1, 0, 0); @@ -591,12 +684,6 @@ -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT', -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorWriteMaskEXT', -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetConservativeRasterizationModeEXT', --- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationModeNV', --- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV', --- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableNV', --- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageReductionModeNV', --- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV', --- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorLocationNV', -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetCullModeEXT', -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnableEXT', -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnableEXT', @@ -620,17 +707,13 @@ -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT', -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationStreamEXT', -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnableEXT', --- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRepresentativeFragmentTestEnableNV', -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT', -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleMaskEXT', -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT', --- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetShadingRateImageEnableNV', -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetStencilOpEXT', -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetStencilTestEnableEXT', -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetTessellationDomainOriginEXT', -- 'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT', --- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetViewportSwizzleNV', --- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetViewportWScalingEnableNV', -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT', -- 'createShadersEXT', 'destroyShaderEXT', 'getShaderBinaryDataEXT' -- @@ -652,12 +735,12 @@ module Vulkan.Extensions.VK_EXT_shader_object ( createShadersEXT , ShaderCreateInfoEXT(..) , ShaderCreateFlagsEXT , ShaderCreateFlagBitsEXT( SHADER_CREATE_LINK_STAGE_BIT_EXT - , SHADER_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT - , SHADER_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT - , SHADER_CREATE_NO_TASK_SHADER_BIT_EXT - , SHADER_CREATE_DISPATCH_BASE_BIT_EXT - , SHADER_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_EXT , SHADER_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT + , SHADER_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_EXT + , SHADER_CREATE_DISPATCH_BASE_BIT_EXT + , SHADER_CREATE_NO_TASK_SHADER_BIT_EXT + , SHADER_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT + , SHADER_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT , .. ) , ShaderCodeTypeEXT( SHADER_CODE_TYPE_BINARY_EXT @@ -934,9 +1017,9 @@ foreign import ccall -- This means that whenever shader creation fails, the application /can/ -- determine which shader the returned error pertains to by locating the -- first 'Vulkan.Core10.APIConstants.NULL_HANDLE' element in @pShaders@. It --- also means that an application /can/ always clean up from a failed call --- by iterating over the @pShaders@ array and destroying every element that --- is not 'Vulkan.Core10.APIConstants.NULL_HANDLE'. +-- also means that an application /can/ reliably clean up from a failed +-- call by iterating over the @pShaders@ array and destroying every element +-- that is not 'Vulkan.Core10.APIConstants.NULL_HANDLE'. -- -- == Valid Usage -- @@ -1007,6 +1090,76 @@ foreign import ccall -- of all elements of @pCreateInfos@ whose @flags@ member includes -- 'SHADER_CREATE_LINK_STAGE_BIT_EXT' /must/ be the same -- +-- - #VUID-vkCreateShadersEXT-pCreateInfos-08867# If @pCreateInfos@ +-- contains elements with both +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT' +-- and +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT', +-- both elements\' @flags@ include 'SHADER_CREATE_LINK_STAGE_BIT_EXT', +-- both elements\' @codeType@ is 'SHADER_CODE_TYPE_SPIRV_EXT', and the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT' +-- stage’s @pCode@ contains an @OpExecutionMode@ instruction specifying +-- the type of subdivision, it /must/ match the subdivision type +-- specified in the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT' +-- stage +-- +-- - #VUID-vkCreateShadersEXT-pCreateInfos-08868# If @pCreateInfos@ +-- contains elements with both +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT' +-- and +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT', +-- both elements\' @flags@ include 'SHADER_CREATE_LINK_STAGE_BIT_EXT', +-- both elements\' @codeType@ is 'SHADER_CODE_TYPE_SPIRV_EXT', and the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT' +-- stage’s @pCode@ contains an @OpExecutionMode@ instruction specifying +-- the orientation of triangles, it /must/ match the triangle +-- orientation specified in the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT' +-- stage +-- +-- - #VUID-vkCreateShadersEXT-pCreateInfos-08869# If @pCreateInfos@ +-- contains elements with both +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT' +-- and +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT', +-- both elements\' @flags@ include 'SHADER_CREATE_LINK_STAGE_BIT_EXT', +-- both elements\' @codeType@ is 'SHADER_CODE_TYPE_SPIRV_EXT', and the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT' +-- stage’s @pCode@ contains an @OpExecutionMode@ instruction specifying +-- @PointMode@, the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT' +-- stage /must/ also contain an @OpExecutionMode@ instruction +-- specifying @PointMode@ +-- +-- - #VUID-vkCreateShadersEXT-pCreateInfos-08870# If @pCreateInfos@ +-- contains elements with both +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT' +-- and +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT', +-- both elements\' @flags@ include 'SHADER_CREATE_LINK_STAGE_BIT_EXT', +-- both elements\' @codeType@ is 'SHADER_CODE_TYPE_SPIRV_EXT', and the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT' +-- stage’s @pCode@ contains an @OpExecutionMode@ instruction specifying +-- the spacing of segments on the edges of tessellated primitives, it +-- /must/ match the segment spacing specified in the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT' +-- stage +-- +-- - #VUID-vkCreateShadersEXT-pCreateInfos-08871# If @pCreateInfos@ +-- contains elements with both +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT' +-- and +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT', +-- both elements\' @flags@ include 'SHADER_CREATE_LINK_STAGE_BIT_EXT', +-- both elements\' @codeType@ is 'SHADER_CODE_TYPE_SPIRV_EXT', and the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT' +-- stage’s @pCode@ contains an @OpExecutionMode@ instruction specifying +-- the output patch size, it /must/ match the output patch size +-- specified in the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT' +-- stage +-- -- == Valid Usage (Implicit) -- -- - #VUID-vkCreateShadersEXT-device-parameter# @device@ /must/ be a @@ -1226,6 +1379,9 @@ foreign import ccall -- -- feature /must/ be enabled -- +-- - #VUID-vkGetShaderBinaryDataEXT-None-08499# If @pData@ is not @NULL@, +-- it /must/ be aligned to @16@ bytes +-- -- == Valid Usage (Implicit) -- -- - #VUID-vkGetShaderBinaryDataEXT-device-parameter# @device@ /must/ be @@ -1396,6 +1552,20 @@ foreign import ccall -- and @pShaders@ is not @NULL@, the same index in @pShaders@ /must/ be -- 'Vulkan.Core10.APIConstants.NULL_HANDLE' -- +-- - #VUID-vkCmdBindShadersEXT-pShaders-08490# If the +-- +-- feature is not enabled, and @pStages@ contains +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT', +-- and @pShaders@ is not @NULL@, the same index in @pShaders@ /must/ be +-- 'Vulkan.Core10.APIConstants.NULL_HANDLE' +-- +-- - #VUID-vkCmdBindShadersEXT-pShaders-08491# If the +-- +-- feature is not enabled, and @pStages@ contains +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT', +-- and @pShaders@ is not @NULL@, the same index in @pShaders@ /must/ be +-- 'Vulkan.Core10.APIConstants.NULL_HANDLE' +-- -- - #VUID-vkCmdBindShadersEXT-pShaders-08476# If @pStages@ contains -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_COMPUTE_BIT', -- the 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was @@ -1480,14 +1650,15 @@ cmdBindShadersEXT :: forall io => -- | @commandBuffer@ is the command buffer that the shader object will be -- bound to. CommandBuffer - -> -- | @pStages@ is an array of + -> -- | @pStages@ is a pointer to an array of -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.ShaderStageFlagBits' values -- specifying one stage per array index that is affected by the -- corresponding value in the @pShaders@ array. ("stages" ::: Vector ShaderStageFlagBits) - -> -- | @pShaders@ is an array of 'Vulkan.Extensions.Handles.ShaderEXT' handles - -- and\/or 'Vulkan.Core10.APIConstants.NULL_HANDLE' values describing the - -- shader binding operations to be performed on each stage in @pStages@. + -> -- | @pShaders@ is a pointer to an array of + -- 'Vulkan.Extensions.Handles.ShaderEXT' handles and\/or + -- 'Vulkan.Core10.APIConstants.NULL_HANDLE' values describing the shader + -- binding operations to be performed on each stage in @pStages@. ("shaders" ::: Vector ShaderEXT) -> io () cmdBindShadersEXT commandBuffer stages shaders = liftIO . evalContT $ do @@ -1669,6 +1840,54 @@ instance Zero PhysicalDeviceShaderObjectPropertiesEXT where -- -- == Valid Usage -- +-- - #VUID-VkShaderCreateInfoEXT-codeSize-08735# If @codeType@ is +-- 'SHADER_CODE_TYPE_SPIRV_EXT', @codeSize@ /must/ be a multiple of 4 +-- +-- - #VUID-VkShaderCreateInfoEXT-pCode-08736# If @codeType@ is +-- 'SHADER_CODE_TYPE_SPIRV_EXT', @pCode@ /must/ point to valid SPIR-V +-- code, formatted and packed as described by the +-- +-- +-- - #VUID-VkShaderCreateInfoEXT-pCode-08737# If @codeType@ is +-- 'SHADER_CODE_TYPE_SPIRV_EXT', @pCode@ /must/ adhere to the +-- validation rules described by the +-- +-- section of the +-- +-- appendix +-- +-- - #VUID-VkShaderCreateInfoEXT-pCode-08738# If @codeType@ is +-- 'SHADER_CODE_TYPE_SPIRV_EXT', @pCode@ /must/ declare the @Shader@ +-- capability for SPIR-V code +-- +-- - #VUID-VkShaderCreateInfoEXT-pCode-08739# If @codeType@ is +-- 'SHADER_CODE_TYPE_SPIRV_EXT', @pCode@ /must/ not declare any +-- capability that is not supported by the API, as described by the +-- +-- section of the +-- +-- appendix +-- +-- - #VUID-VkShaderCreateInfoEXT-pCode-08740# If @codeType@ is +-- 'SHADER_CODE_TYPE_SPIRV_EXT', and @pCode@ declares any of the +-- capabilities listed in the +-- +-- appendix, one of the corresponding requirements /must/ be satisfied +-- +-- - #VUID-VkShaderCreateInfoEXT-pCode-08741# If @codeType@ is +-- 'SHADER_CODE_TYPE_SPIRV_EXT', @pCode@ /must/ not declare any SPIR-V +-- extension that is not supported by the API, as described by the +-- +-- section of the +-- +-- appendix +-- +-- - #VUID-VkShaderCreateInfoEXT-pCode-08742# If @codeType@ is +-- 'SHADER_CODE_TYPE_SPIRV_EXT', and @pCode@ declares any of the SPIR-V +-- extensions listed in the +-- +-- appendix, one of the corresponding requirements /must/ be satisfied +-- -- - #VUID-VkShaderCreateInfoEXT-flags-08412# If @stage@ is not -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT', -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT', @@ -1693,18 +1912,20 @@ instance Zero PhysicalDeviceShaderObjectPropertiesEXT where -- - #VUID-VkShaderCreateInfoEXT-flags-08488# If @stage@ is not -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT', -- @flags@ /must/ not include --- VK_SHADER_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT +-- 'SHADER_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT' -- -- - #VUID-VkShaderCreateInfoEXT-flags-08489# If the -- -- feature is not enabled, @flags@ /must/ not include -- 'SHADER_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT' -- --- - #VUID-VkShaderCreateInfoEXT-flags-08413# If @stage@ is not --- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_COMPUTE_BIT', --- @flags@ /must/ not include --- 'SHADER_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT' or --- 'SHADER_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT' +-- - #VUID-VkShaderCreateInfoEXT-flags-08992# If @flags@ includes +-- 'SHADER_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT', @stage@ /must/ be +-- one of +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT', +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT', +-- or +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_COMPUTE_BIT' -- -- - #VUID-VkShaderCreateInfoEXT-flags-08485# If @stage@ is not -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_COMPUTE_BIT', @@ -1768,16 +1989,14 @@ instance Zero PhysicalDeviceShaderObjectPropertiesEXT where -- and -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' -- --- - #VUID-VkShaderCreateInfoEXT-nextStage-08428# If @stage@ is --- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT' --- and the +-- - #VUID-VkShaderCreateInfoEXT-nextStage-08428# If the -- -- feature is not enabled, @nextStage@ /must/ not include -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT' +-- or +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT' -- --- - #VUID-VkShaderCreateInfoEXT-nextStage-08429# If @stage@ is --- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT' --- and the +-- - #VUID-VkShaderCreateInfoEXT-nextStage-08429# If the -- -- feature is not enabled, @nextStage@ /must/ not include -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT' @@ -1794,13 +2013,6 @@ instance Zero PhysicalDeviceShaderObjectPropertiesEXT where -- and -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' -- --- - #VUID-VkShaderCreateInfoEXT-nextStage-08432# If @stage@ is --- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT' --- and the --- --- feature is not enabled, @nextStage@ /must/ not include --- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT' --- -- - #VUID-VkShaderCreateInfoEXT-nextStage-08433# If @stage@ is -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT', -- @nextStage@ /must/ not include any bits other than @@ -1822,58 +2034,17 @@ instance Zero PhysicalDeviceShaderObjectPropertiesEXT where -- @nextStage@ /must/ not include any bits other than -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' -- --- - #VUID-VkShaderCreateInfoEXT-codeSize-08439# If @codeType@ is --- 'SHADER_CODE_TYPE_SPIRV_EXT', @codeSize@ /must/ be a multiple of 4 --- -- - #VUID-VkShaderCreateInfoEXT-pName-08440# If @codeType@ is -- 'SHADER_CODE_TYPE_SPIRV_EXT', @pName@ /must/ be the name of an -- @OpEntryPoint@ in @pCode@ with an execution model that matches -- @stage@ -- --- - #VUID-VkShaderCreateInfoEXT-pCode-08441# If @codeType@ is --- 'SHADER_CODE_TYPE_SPIRV_EXT', @pCode@ /must/ point to valid SPIR-V --- code, formatted and packed as described by the --- --- --- - #VUID-VkShaderCreateInfoEXT-pCode-08442# If @codeType@ is --- 'SHADER_CODE_TYPE_SPIRV_EXT', @pCode@ /must/ adhere to the --- validation rules described by the --- --- section of the --- --- appendix --- --- - #VUID-VkShaderCreateInfoEXT-pCode-08443# If @codeType@ is --- 'SHADER_CODE_TYPE_SPIRV_EXT', @pCode@ /must/ declare the @Shader@ --- capability for SPIR-V code --- --- - #VUID-VkShaderCreateInfoEXT-pCode-08444# If @codeType@ is --- 'SHADER_CODE_TYPE_SPIRV_EXT', @pCode@ /must/ not declare any --- capability that is not supported by the API, as described by the --- --- section of the --- --- appendix --- --- - #VUID-VkShaderCreateInfoEXT-pCode-08445# If @codeType@ is --- 'SHADER_CODE_TYPE_SPIRV_EXT', and @pCode@ declares any of the --- capabilities listed in the --- --- appendix, one of the corresponding requirements /must/ be satisfied --- --- - #VUID-VkShaderCreateInfoEXT-pCode-08446# If @codeType@ is --- 'SHADER_CODE_TYPE_SPIRV_EXT', @pCode@ /must/ not declare any SPIR-V --- extension that is not supported by the API, as described by the --- --- section of the --- --- appendix +-- - #VUID-VkShaderCreateInfoEXT-pCode-08492# If @codeType@ is +-- 'SHADER_CODE_TYPE_BINARY_EXT', @pCode@ /must/ be aligned to @16@ +-- bytes -- --- - #VUID-VkShaderCreateInfoEXT-pCode-08447# If @codeType@ is --- 'SHADER_CODE_TYPE_SPIRV_EXT', and @pCode@ declares any of the SPIR-V --- extensions listed in the --- --- appendix, one of the corresponding requirements /must/ be satisfied +-- - #VUID-VkShaderCreateInfoEXT-pCode-08493# If @codeType@ is +-- 'SHADER_CODE_TYPE_SPIRV_EXT', @pCode@ /must/ be aligned to @4@ bytes -- -- - #VUID-VkShaderCreateInfoEXT-pCode-08448# If @codeType@ is -- 'SHADER_CODE_TYPE_SPIRV_EXT', and the identified entry point @@ -1971,6 +2142,30 @@ instance Zero PhysicalDeviceShaderObjectPropertiesEXT where -- @pSpecializationInfo@, if any, and then converting all -- specialization constants into fixed constants -- +-- - #VUID-VkShaderCreateInfoEXT-codeType-08872# If @codeType@ is +-- 'SHADER_CODE_TYPE_SPIRV_EXT', and @stage@ is +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT', +-- @pCode@ /must/ contain an @OpExecutionMode@ instruction specifying +-- the type of subdivision +-- +-- - #VUID-VkShaderCreateInfoEXT-codeType-08873# If @codeType@ is +-- 'SHADER_CODE_TYPE_SPIRV_EXT', and @stage@ is +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT', +-- @pCode@ /must/ contain an @OpExecutionMode@ instruction specifying +-- the orientation of triangles generated by the tessellator +-- +-- - #VUID-VkShaderCreateInfoEXT-codeType-08874# If @codeType@ is +-- 'SHADER_CODE_TYPE_SPIRV_EXT', and @stage@ is +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT', +-- @pCode@ /must/ contain an @OpExecutionMode@ instruction specifying +-- the spacing of segments on the edges of tessellated primitives +-- +-- - #VUID-VkShaderCreateInfoEXT-codeType-08875# If @codeType@ is +-- 'SHADER_CODE_TYPE_SPIRV_EXT', and @stage@ is +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT', +-- @pCode@ /must/ contain an @OpExecutionMode@ instruction specifying +-- the output patch size +-- -- == Valid Usage (Implicit) -- -- - #VUID-VkShaderCreateInfoEXT-sType-sType# @sType@ /must/ be @@ -2036,7 +2231,7 @@ instance Zero PhysicalDeviceShaderObjectPropertiesEXT where data ShaderCreateInfoEXT (es :: [Type]) = ShaderCreateInfoEXT { -- | @pNext@ is @NULL@ or a pointer to a structure extending this structure. next :: Chain es - , -- | @flags@ is a bitmask of 'ShaderCreateFlagsEXT' describing additional + , -- | @flags@ is a bitmask of 'ShaderCreateFlagBitsEXT' describing additional -- parameters of the shader. flags :: ShaderCreateFlagsEXT , -- | @stage@ is a @@ -2044,9 +2239,9 @@ data ShaderCreateInfoEXT (es :: [Type]) = ShaderCreateInfoEXT -- specifying a single shader stage. stage :: ShaderStageFlagBits , -- | @nextStage@ is a bitmask of - -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.ShaderStageFlags' specifying - -- zero or more logically later stages which /may/ be used as a logically - -- next bound stage when drawing with the shader bound. + -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.ShaderStageFlagBits' specifying + -- zero or stages which /may/ be used as a logically next bound stage when + -- drawing with the shader bound. nextStage :: ShaderStageFlags , -- | @codeType@ is a 'ShaderCodeTypeEXT' value specifying the type of the -- shader code pointed to be @pCode@. @@ -2225,26 +2420,19 @@ type ShaderCreateFlagsEXT = ShaderCreateFlagBitsEXT newtype ShaderCreateFlagBitsEXT = ShaderCreateFlagBitsEXT Flags deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits) --- | 'SHADER_CREATE_LINK_STAGE_BIT_EXT' specifies that this stage is linked --- to all other stages being created in the same 'createShadersEXT' call --- whose 'ShaderCreateInfoEXT' structures have the --- 'SHADER_CREATE_LINK_STAGE_BIT_EXT' flag set in @flags@. +-- | 'SHADER_CREATE_LINK_STAGE_BIT_EXT' specifies that a shader is linked to +-- all other shaders created in the same 'createShadersEXT' call whose +-- 'ShaderCreateInfoEXT' structures\' @flags@ include +-- 'SHADER_CREATE_LINK_STAGE_BIT_EXT'. pattern SHADER_CREATE_LINK_STAGE_BIT_EXT = ShaderCreateFlagBitsEXT 0x00000001 --- | 'SHADER_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT' specifies that the --- --- /may/ vary in the shader stage. -pattern SHADER_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT = ShaderCreateFlagBitsEXT 0x00000002 - --- | 'SHADER_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT' specifies that the --- subgroup sizes /must/ be launched with all invocations active in the --- compute stage. -pattern SHADER_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT = ShaderCreateFlagBitsEXT 0x00000004 +-- | 'SHADER_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT' specifies that a +-- fragment shader /can/ be used with a fragment density map attachment. +pattern SHADER_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT = ShaderCreateFlagBitsEXT 0x00000040 --- | 'SHADER_CREATE_NO_TASK_SHADER_BIT_EXT' specifies that the mesh shader --- being created /must/ only be used without a task shader. Otherwise, the --- mesh shader being created /must/ only be used with a task shader. -pattern SHADER_CREATE_NO_TASK_SHADER_BIT_EXT = ShaderCreateFlagBitsEXT 0x00000008 +-- | 'SHADER_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_EXT' specifies that +-- a fragment shader /can/ be used with a fragment shading rate attachment. +pattern SHADER_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_EXT = ShaderCreateFlagBitsEXT 0x00000020 -- | 'SHADER_CREATE_DISPATCH_BASE_BIT_EXT' specifies that a compute shader -- /can/ be used with @@ -2252,15 +2440,20 @@ pattern SHADER_CREATE_NO_TASK_SHADER_BIT_EXT = ShaderCreateFlagBitsEXT 0x0000000 -- non-zero base workgroup. pattern SHADER_CREATE_DISPATCH_BASE_BIT_EXT = ShaderCreateFlagBitsEXT 0x00000010 --- | 'SHADER_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_EXT' specifies that --- the fragment shader /can/ be used with a fragment shading rate --- attachment. -pattern SHADER_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_EXT = ShaderCreateFlagBitsEXT 0x00000020 +-- | 'SHADER_CREATE_NO_TASK_SHADER_BIT_EXT' specifies that a mesh shader +-- /must/ only be used without a task shader. Otherwise, the mesh shader +-- /must/ only be used with a task shader. +pattern SHADER_CREATE_NO_TASK_SHADER_BIT_EXT = ShaderCreateFlagBitsEXT 0x00000008 --- | 'SHADER_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT' specifies that --- the fragment shader /can/ be used with a fragment density map --- attachment. -pattern SHADER_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT = ShaderCreateFlagBitsEXT 0x00000040 +-- | 'SHADER_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT' specifies that the +-- subgroup sizes /must/ be launched with all invocations active in a task, +-- mesh, or compute shader. +pattern SHADER_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT = ShaderCreateFlagBitsEXT 0x00000004 + +-- | 'SHADER_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT' specifies that the +-- +-- /may/ vary in a task, mesh, or compute shader. +pattern SHADER_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT = ShaderCreateFlagBitsEXT 0x00000002 conNameShaderCreateFlagBitsEXT :: String conNameShaderCreateFlagBitsEXT = "ShaderCreateFlagBitsEXT" @@ -2275,28 +2468,28 @@ showTableShaderCreateFlagBitsEXT = , "LINK_STAGE_BIT_EXT" ) , - ( SHADER_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT - , "ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT" - ) - , - ( SHADER_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT - , "REQUIRE_FULL_SUBGROUPS_BIT_EXT" + ( SHADER_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT + , "FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT" ) , - ( SHADER_CREATE_NO_TASK_SHADER_BIT_EXT - , "NO_TASK_SHADER_BIT_EXT" + ( SHADER_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_EXT + , "FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_EXT" ) , ( SHADER_CREATE_DISPATCH_BASE_BIT_EXT , "DISPATCH_BASE_BIT_EXT" ) , - ( SHADER_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_EXT - , "FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_EXT" + ( SHADER_CREATE_NO_TASK_SHADER_BIT_EXT + , "NO_TASK_SHADER_BIT_EXT" ) , - ( SHADER_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT - , "FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT" + ( SHADER_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT + , "REQUIRE_FULL_SUBGROUPS_BIT_EXT" + ) + , + ( SHADER_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT + , "ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT" ) ] diff --git a/src/Vulkan/Extensions/VK_EXT_shader_object.hs-boot b/src/Vulkan/Extensions/VK_EXT_shader_object.hs-boot index cc1ba456b..7629c3f05 100644 --- a/src/Vulkan/Extensions/VK_EXT_shader_object.hs-boot +++ b/src/Vulkan/Extensions/VK_EXT_shader_object.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Ratified +-- -- [__Extension and Version Dependencies__] --      -- @@ -112,8 +115,9 @@ -- -- This extension introduces a new 'Vulkan.Extensions.Handles.ShaderEXT' -- object type which represents a single compiled shader stage. Shader --- objects can be used as a more flexible but comparably performant --- alternative to 'Vulkan.Core10.Handles.Pipeline' objects. +-- objects provide a more flexible alternative to +-- 'Vulkan.Core10.Handles.Pipeline' objects, which may be helpful in +-- certain use cases. -- -- == New Object Types -- @@ -139,18 +143,6 @@ -- -- - 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetConservativeRasterizationModeEXT' -- --- - 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationModeNV' --- --- - 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV' --- --- - 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableNV' --- --- - 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageReductionModeNV' --- --- - 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV' --- --- - 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorLocationNV' --- -- - 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetCullModeEXT' -- -- - 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnableEXT' @@ -197,16 +189,12 @@ -- -- - 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnableEXT' -- --- - 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRepresentativeFragmentTestEnableNV' --- -- - 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT' -- -- - 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleMaskEXT' -- -- - 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT' -- --- - 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetShadingRateImageEnableNV' --- -- - 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetStencilOpEXT' -- -- - 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetStencilTestEnableEXT' @@ -215,10 +203,6 @@ -- -- - 'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT' -- --- - 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetViewportSwizzleNV' --- --- - 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetViewportWScalingEnableNV' --- -- - 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT' -- -- - 'createShadersEXT' @@ -227,6 +211,54 @@ -- -- - 'getShaderBinaryDataEXT' -- +-- If +-- +-- is supported: +-- +-- - 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetViewportWScalingEnableNV' +-- +-- If +-- +-- is supported: +-- +-- - 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageReductionModeNV' +-- +-- If +-- +-- is supported: +-- +-- - 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV' +-- +-- - 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorLocationNV' +-- +-- If +-- +-- is supported: +-- +-- - 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationModeNV' +-- +-- - 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV' +-- +-- - 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableNV' +-- +-- If +-- +-- is supported: +-- +-- - 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRepresentativeFragmentTestEnableNV' +-- +-- If +-- +-- is supported: +-- +-- - 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetShadingRateImageEnableNV' +-- +-- If +-- +-- is supported: +-- +-- - 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetViewportSwizzleNV' +-- -- == New Structures -- -- - 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.ColorBlendAdvancedEXT' @@ -293,6 +325,54 @@ -- -- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT' -- +-- If +-- +-- is supported: +-- +-- - Extending 'ShaderCreateFlagBitsEXT': +-- +-- - 'SHADER_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT' +-- +-- If +-- +-- or +-- +-- is supported: +-- +-- - Extending 'ShaderCreateFlagBitsEXT': +-- +-- - 'SHADER_CREATE_NO_TASK_SHADER_BIT_EXT' +-- +-- If +-- +-- or +-- +-- is supported: +-- +-- - Extending 'ShaderCreateFlagBitsEXT': +-- +-- - 'SHADER_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT' +-- +-- - 'SHADER_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT' +-- +-- If +-- +-- or +-- +-- is supported: +-- +-- - Extending 'ShaderCreateFlagBitsEXT': +-- +-- - 'SHADER_CREATE_DISPATCH_BASE_BIT_EXT' +-- +-- If +-- +-- is supported: +-- +-- - Extending 'ShaderCreateFlagBitsEXT': +-- +-- - 'SHADER_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_EXT' +-- -- == Examples -- -- __Example 1__ @@ -352,7 +432,7 @@ -- > VkResult result; -- > VkShaderEXT shaders[2]; -- > --- > result = vkCmdCreateShadersEXT(device, 2, &shaderCreateInfos, NULL, shaders); +-- > result = vkCreateShadersEXT(device, 2, &shaderCreateInfos, NULL, shaders); -- > if (result != VK_SUCCESS) -- > { -- > // Handle error @@ -381,8 +461,8 @@ -- > -- > // Equivalent to the previous line. Linked shaders can be bound one at a time, -- > // in any order: --- > vkCmdBindShadersEXT(commandBuffer, 1, &stages[1], &shaders[1]); --- > vkCmdBindShadersEXT(commandBuffer, 1, &stages[0], &shaders[0]); +-- > // vkCmdBindShadersEXT(commandBuffer, 1, &stages[1], &shaders[1]); +-- > // vkCmdBindShadersEXT(commandBuffer, 1, &stages[0], &shaders[0]); -- > -- > // The above is sufficient to draw if the device was created with the -- > // tessellationShader and geometryShader features disabled. Otherwise, since @@ -401,6 +481,9 @@ -- > // shaders are unbound -- > vkCmdBindShadersEXT(commandBuffer, 3, unusedStages, NULL); -- > +-- > // Graphics shader objects may only be used to draw inside dynamic render pass +-- > // instances begun with vkCmdBeginRendering(), assume one has already been begun +-- > -- > // Draw a triangle -- > vkCmdDraw(commandBuffer, 3, 1, 0, 0); -- @@ -516,7 +599,7 @@ -- > VkResult result; -- > VkShaderEXT shaders[5]; -- > --- > result = vkCmdCreateShadersEXT(device, 5, &shaderCreateInfos, NULL, shaders); +-- > result = vkCreateShadersEXT(device, 5, &shaderCreateInfos, NULL, shaders); -- > if (result != VK_SUCCESS) -- > { -- > // Handle error @@ -534,33 +617,43 @@ -- > // Assume vertex buffers, descriptor sets, etc. have been bound, and existing -- > // state setting commands have been called to set all required state -- > --- > const VkShaderStageFlagBits vertexStage = VK_SHADER_STAGE_VERTEX_BIT; --- > const VkShaderStageFlagBits geometryStage = VK_SHADER_STAGE_VERTEX_BIT; --- > const VkShaderStageFlagBits fragmentStage = VK_SHADER_STAGE_VERTEX_BIT; --- > --- > // Bind unlinked vertex shader --- > vkCmdBindShadersEXT(commandBuffer, 1, &vertexStage, &shaders[0]); +-- > const VkShaderStageFlagBits stages[3] = +-- > { +-- > // Any order is allowed +-- > VK_SHADER_STAGE_FRAGMENT_BIT, +-- > VK_SHADER_STAGE_VERTEX_BIT, +-- > VK_SHADER_STAGE_GEOMETRY_BIT, +-- > }; -- > --- > // Bind unlinked fragment shader --- > vkCmdBindShadersEXT(commandBuffer, 1, &fragmentStage, &shaders[3]); +-- > VkShaderEXT bindShaders[3] = +-- > { +-- > shaders[2], // FS +-- > shaders[1], // VS +-- > shaders[0] // GS +-- > }; -- > --- > // Bind unlinked geometry shader --- > vkCmdBindShadersEXT(commandBuffer, 1, &geometryStage, &shaders[2]); +-- > // Bind unlinked shaders +-- > vkCmdBindShadersEXT(commandBuffer, 3, stages, bindShaders); -- > -- > // Assume the tessellationShader feature is disabled, so vkCmdBindShadersEXT() -- > // need not have been called with either tessellation stage -- > +-- > // Graphics shader objects may only be used to draw inside dynamic render pass +-- > // instances begun with vkCmdBeginRendering(), assume one has already been begun +-- > -- > // Draw a triangle -- > vkCmdDraw(commandBuffer, 3, 1, 0, 0); -- > -- > // Bind a different unlinked fragment shader --- > vkCmdBindShadersEXT(commandBuffer, 1, &fragmentStage, &shaders[4]); +-- > const VkShaderStageFlagBits fragmentStage = VK_SHADER_STAGE_FRAGMENT_BIT; +-- > vkCmdBindShadersEXT(commandBuffer, 1, &fragmentStage, &shaders[3]); -- > -- > // Draw another triangle -- > vkCmdDraw(commandBuffer, 3, 1, 0, 0); -- > -- > // Bind a different unlinked vertex shader --- > vkCmdBindShadersEXT(commandBuffer, 1, &vertexStage, &shaders[1]); +-- > const VkShaderStageFlagBits vertexStage = VK_SHADER_STAGE_VERTEX_BIT; +-- > vkCmdBindShadersEXT(commandBuffer, 1, &vertexStage, &shaders[4]); -- > -- > // Draw another triangle -- > vkCmdDraw(commandBuffer, 3, 1, 0, 0); @@ -591,12 +684,6 @@ -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT', -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorWriteMaskEXT', -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetConservativeRasterizationModeEXT', --- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationModeNV', --- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV', --- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableNV', --- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageReductionModeNV', --- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV', --- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorLocationNV', -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetCullModeEXT', -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnableEXT', -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnableEXT', @@ -620,17 +707,13 @@ -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT', -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationStreamEXT', -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnableEXT', --- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRepresentativeFragmentTestEnableNV', -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT', -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleMaskEXT', -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT', --- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetShadingRateImageEnableNV', -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetStencilOpEXT', -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetStencilTestEnableEXT', -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetTessellationDomainOriginEXT', -- 'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT', --- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetViewportSwizzleNV', --- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetViewportWScalingEnableNV', -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT', -- 'createShadersEXT', 'destroyShaderEXT', 'getShaderBinaryDataEXT' -- diff --git a/src/Vulkan/Extensions/VK_EXT_shader_stencil_export.hs b/src/Vulkan/Extensions/VK_EXT_shader_stencil_export.hs index f96039d1e..a2c13e869 100644 --- a/src/Vulkan/Extensions/VK_EXT_shader_stencil_export.hs +++ b/src/Vulkan/Extensions/VK_EXT_shader_stencil_export.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__; __Contact__] -- -- - Dominik Witczak diff --git a/src/Vulkan/Extensions/VK_EXT_shader_subgroup_ballot.hs b/src/Vulkan/Extensions/VK_EXT_shader_subgroup_ballot.hs index 581cd1932..b73978cab 100644 --- a/src/Vulkan/Extensions/VK_EXT_shader_subgroup_ballot.hs +++ b/src/Vulkan/Extensions/VK_EXT_shader_subgroup_ballot.hs @@ -17,7 +17,10 @@ -- [__Revision__] -- 1 -- --- [__Extension and Version Dependencies__; __Deprecation state__] +-- [__Ratification Status__] +-- Not ratified +-- +-- [__Extension and Version Dependencies__; __Deprecation State__] -- -- - /Deprecated/ by -- diff --git a/src/Vulkan/Extensions/VK_EXT_shader_subgroup_vote.hs b/src/Vulkan/Extensions/VK_EXT_shader_subgroup_vote.hs index dd5fd67c0..e0618527c 100644 --- a/src/Vulkan/Extensions/VK_EXT_shader_subgroup_vote.hs +++ b/src/Vulkan/Extensions/VK_EXT_shader_subgroup_vote.hs @@ -17,7 +17,10 @@ -- [__Revision__] -- 1 -- --- [__Extension and Version Dependencies__; __Deprecation state__] +-- [__Ratification Status__] +-- Not ratified +-- +-- [__Extension and Version Dependencies__; __Deprecation State__] -- -- - /Deprecated/ by -- diff --git a/src/Vulkan/Extensions/VK_EXT_shader_tile_image.hs b/src/Vulkan/Extensions/VK_EXT_shader_tile_image.hs index da78f608e..abeb15164 100644 --- a/src/Vulkan/Extensions/VK_EXT_shader_tile_image.hs +++ b/src/Vulkan/Extensions/VK_EXT_shader_tile_image.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Ratified +-- -- [__Extension and Version Dependencies__] -- -- @@ -42,7 +45,7 @@ -- -- -- - This extension provides API support for --- +-- -- -- [__Contributors__] -- @@ -303,7 +306,7 @@ data PhysicalDeviceShaderTileImagePropertiesEXT = PhysicalDeviceShaderTileImageP , -- | @shaderTileImageReadSampleFromPixelRateInvocation@ is a boolean that -- will be 'Vulkan.Core10.FundamentalTypes.TRUE' if reading from samples -- from a pixel rate fragment invocation is supported when - -- 'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::rasterizationSamples + -- 'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@ -- > 1. shaderTileImageReadSampleFromPixelRateInvocation :: Bool , -- | @shaderTileImageReadFromHelperInvocation@ is a boolean that will be diff --git a/src/Vulkan/Extensions/VK_EXT_shader_tile_image.hs-boot b/src/Vulkan/Extensions/VK_EXT_shader_tile_image.hs-boot index 17076b2f3..daf55ac8c 100644 --- a/src/Vulkan/Extensions/VK_EXT_shader_tile_image.hs-boot +++ b/src/Vulkan/Extensions/VK_EXT_shader_tile_image.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Ratified +-- -- [__Extension and Version Dependencies__] -- -- @@ -42,7 +45,7 @@ -- -- -- - This extension provides API support for --- +-- -- -- [__Contributors__] -- diff --git a/src/Vulkan/Extensions/VK_EXT_shader_viewport_index_layer.hs b/src/Vulkan/Extensions/VK_EXT_shader_viewport_index_layer.hs index a264d5607..21a7ad5ba 100644 --- a/src/Vulkan/Extensions/VK_EXT_shader_viewport_index_layer.hs +++ b/src/Vulkan/Extensions/VK_EXT_shader_viewport_index_layer.hs @@ -17,7 +17,10 @@ -- [__Revision__] -- 1 -- --- [__Extension and Version Dependencies__; __Deprecation state__] +-- [__Ratification Status__] +-- Not ratified +-- +-- [__Extension and Version Dependencies__; __Deprecation State__] -- -- - /Promoted/ to -- diff --git a/src/Vulkan/Extensions/VK_EXT_subgroup_size_control.hs b/src/Vulkan/Extensions/VK_EXT_subgroup_size_control.hs index 9959f9ac8..131ba66ba 100644 --- a/src/Vulkan/Extensions/VK_EXT_subgroup_size_control.hs +++ b/src/Vulkan/Extensions/VK_EXT_subgroup_size_control.hs @@ -17,10 +17,13 @@ -- [__Revision__] -- 2 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- --- [__Deprecation state__] +-- [__Deprecation State__] -- -- - /Promoted/ to -- diff --git a/src/Vulkan/Extensions/VK_EXT_subpass_merge_feedback.hs b/src/Vulkan/Extensions/VK_EXT_subpass_merge_feedback.hs index 8de7965df..4d4d88226 100644 --- a/src/Vulkan/Extensions/VK_EXT_subpass_merge_feedback.hs +++ b/src/Vulkan/Extensions/VK_EXT_subpass_merge_feedback.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 2 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- diff --git a/src/Vulkan/Extensions/VK_EXT_subpass_merge_feedback.hs-boot b/src/Vulkan/Extensions/VK_EXT_subpass_merge_feedback.hs-boot index fefee9458..4d6896e34 100644 --- a/src/Vulkan/Extensions/VK_EXT_subpass_merge_feedback.hs-boot +++ b/src/Vulkan/Extensions/VK_EXT_subpass_merge_feedback.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 2 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- diff --git a/src/Vulkan/Extensions/VK_EXT_surface_maintenance1.hs b/src/Vulkan/Extensions/VK_EXT_surface_maintenance1.hs index 716c2d1d4..0d804c3c8 100644 --- a/src/Vulkan/Extensions/VK_EXT_surface_maintenance1.hs +++ b/src/Vulkan/Extensions/VK_EXT_surface_maintenance1.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- and diff --git a/src/Vulkan/Extensions/VK_EXT_surface_maintenance1.hs-boot b/src/Vulkan/Extensions/VK_EXT_surface_maintenance1.hs-boot index 7e3d61b2a..ecb4e4843 100644 --- a/src/Vulkan/Extensions/VK_EXT_surface_maintenance1.hs-boot +++ b/src/Vulkan/Extensions/VK_EXT_surface_maintenance1.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- and diff --git a/src/Vulkan/Extensions/VK_EXT_swapchain_colorspace.hs b/src/Vulkan/Extensions/VK_EXT_swapchain_colorspace.hs index 87f2a23c6..e094feb5e 100644 --- a/src/Vulkan/Extensions/VK_EXT_swapchain_colorspace.hs +++ b/src/Vulkan/Extensions/VK_EXT_swapchain_colorspace.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 4 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- @@ -39,7 +42,13 @@ -- -- == Description -- --- To be done. +-- This extension expands 'Vulkan.Extensions.VK_KHR_surface.ColorSpaceKHR' +-- to add support for most standard color spaces beyond +-- 'Vulkan.Extensions.VK_KHR_surface.COLOR_SPACE_SRGB_NONLINEAR_KHR'. This +-- extension also adds support for +-- 'Vulkan.Extensions.VK_KHR_surface.COLOR_SPACE_PASS_THROUGH_EXT' which +-- allows applications to use color spaces not explicitly enumerated in +-- 'Vulkan.Extensions.VK_KHR_surface.ColorSpaceKHR'. -- -- == New Enum Constants -- @@ -87,12 +96,12 @@ -- __RESOLVED__: Pixel format is independent of color space (though some -- color spaces really want \/ need floating point color components to be -- useful). Therefore, do not plan on documenting what formats support --- which colorspaces. An application /can/ call +-- which color spaces. An application /can/ call -- 'Vulkan.Extensions.VK_KHR_surface.getPhysicalDeviceSurfaceFormatsKHR' to -- query what a particular implementation supports. -- -- 2) How does application determine if HW supports appropriate transfer --- function for a colorspace? +-- function for a color space? -- -- __RESOLVED__: Extension indicates that implementation /must/ not do the -- OETF encoding if it is not sRGB. That responsibility falls to the @@ -117,7 +126,7 @@ -- -- - Revision 4, 2019-04-26 (Graeme Leese) -- --- - Clarify colorspace transfer function usage. +-- - Clarify color space transfer function usage. -- -- - Refer to normative definitions in the Data Format Specification. -- diff --git a/src/Vulkan/Extensions/VK_EXT_swapchain_maintenance1.hs b/src/Vulkan/Extensions/VK_EXT_swapchain_maintenance1.hs index 4ee97337a..752f8f612 100644 --- a/src/Vulkan/Extensions/VK_EXT_swapchain_maintenance1.hs +++ b/src/Vulkan/Extensions/VK_EXT_swapchain_maintenance1.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- and @@ -447,9 +450,10 @@ instance Zero PhysicalDeviceSwapchainMaintenance1FeaturesEXT where -- reset by the presentation engine. -- -- The application /can/ destroy the wait semaphores associated with a --- given presentation operation when the associated fence is signaled, and --- /can/ destroy the swapchain when the fences associated with all past --- presentation requests have signaled. +-- given presentation operation when at least one of the associated fences +-- is signaled, and /can/ destroy the swapchain when the fences associated +-- with all past presentation requests referring to that swapchain have +-- signaled. -- -- Fences associated with presentations to the same swapchain on the same -- 'Vulkan.Core10.Handles.Queue' /must/ be signaled in the same order as @@ -700,7 +704,7 @@ instance Zero SwapchainPresentModesCreateInfoEXT where -- -- - #VUID-VkSwapchainPresentModeInfoEXT-pPresentModes-07761# Each entry -- in @pPresentModes@ must be a presentation mode specified in --- 'SwapchainPresentModesCreateInfoEXT'::pPresentModes when creating +-- 'SwapchainPresentModesCreateInfoEXT'::@pPresentModes@ when creating -- the entry’s corresponding swapchain -- -- == Valid Usage (Implicit) diff --git a/src/Vulkan/Extensions/VK_EXT_swapchain_maintenance1.hs-boot b/src/Vulkan/Extensions/VK_EXT_swapchain_maintenance1.hs-boot index e9e86da05..dc0572b35 100644 --- a/src/Vulkan/Extensions/VK_EXT_swapchain_maintenance1.hs-boot +++ b/src/Vulkan/Extensions/VK_EXT_swapchain_maintenance1.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- and diff --git a/src/Vulkan/Extensions/VK_EXT_texel_buffer_alignment.hs b/src/Vulkan/Extensions/VK_EXT_texel_buffer_alignment.hs index 051bf26b5..291b3f9a8 100644 --- a/src/Vulkan/Extensions/VK_EXT_texel_buffer_alignment.hs +++ b/src/Vulkan/Extensions/VK_EXT_texel_buffer_alignment.hs @@ -17,12 +17,15 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- or -- -- --- [__Deprecation state__] +-- [__Deprecation State__] -- -- - /Promoted/ to -- diff --git a/src/Vulkan/Extensions/VK_EXT_texel_buffer_alignment.hs-boot b/src/Vulkan/Extensions/VK_EXT_texel_buffer_alignment.hs-boot index 22cb4aee1..d436365f4 100644 --- a/src/Vulkan/Extensions/VK_EXT_texel_buffer_alignment.hs-boot +++ b/src/Vulkan/Extensions/VK_EXT_texel_buffer_alignment.hs-boot @@ -17,12 +17,15 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- or -- -- --- [__Deprecation state__] +-- [__Deprecation State__] -- -- - /Promoted/ to -- diff --git a/src/Vulkan/Extensions/VK_EXT_texture_compression_astc_hdr.hs b/src/Vulkan/Extensions/VK_EXT_texture_compression_astc_hdr.hs index 2e6e49fa1..6db4b769c 100644 --- a/src/Vulkan/Extensions/VK_EXT_texture_compression_astc_hdr.hs +++ b/src/Vulkan/Extensions/VK_EXT_texture_compression_astc_hdr.hs @@ -17,12 +17,15 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- or -- -- --- [__Deprecation state__] +-- [__Deprecation State__] -- -- - /Promoted/ to -- diff --git a/src/Vulkan/Extensions/VK_EXT_tooling_info.hs b/src/Vulkan/Extensions/VK_EXT_tooling_info.hs index 88948cfa0..bea70bd77 100644 --- a/src/Vulkan/Extensions/VK_EXT_tooling_info.hs +++ b/src/Vulkan/Extensions/VK_EXT_tooling_info.hs @@ -17,7 +17,10 @@ -- [__Revision__] -- 1 -- --- [__Extension and Version Dependencies__; __Deprecation state__] +-- [__Ratification Status__] +-- Not ratified +-- +-- [__Extension and Version Dependencies__; __Deprecation State__] -- -- - /Promoted/ to -- diff --git a/src/Vulkan/Extensions/VK_EXT_transform_feedback.hs b/src/Vulkan/Extensions/VK_EXT_transform_feedback.hs index 342455a74..122343513 100644 --- a/src/Vulkan/Extensions/VK_EXT_transform_feedback.hs +++ b/src/Vulkan/Extensions/VK_EXT_transform_feedback.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- @@ -901,7 +904,7 @@ foreign import ccall -- == Valid Usage -- -- - #VUID-vkCmdBeginQueryIndexedEXT-None-00807# All queries used by the --- command /must/ be unavailable +-- command /must/ be /unavailable/ -- -- - #VUID-vkCmdBeginQueryIndexedEXT-queryType-02804# The @queryType@ -- used to create @queryPool@ /must/ not be @@ -1312,13 +1315,13 @@ foreign import ccall -- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PRIMITIVES_GENERATED_EXT', -- @index@ /must/ equal the @index@ used to begin the query -- --- - [[VUID-{refpage}-None-07007]] If called within a subpass of a render --- pass instance, the corresponding +-- - #VUID-vkCmdEndQueryIndexedEXT-None-07007# If called within a subpass +-- of a render pass instance, the corresponding -- 'Vulkan.Core10.CommandBufferBuilding.cmdBeginQuery'* command /must/ -- have been called previously within the same subpass -- --- - [[VUID-{refpage}-None-07008]] If called outside of a render pass --- instance, the corresponding +-- - #VUID-vkCmdEndQueryIndexedEXT-None-07008# If called outside of a +-- render pass instance, the corresponding -- 'Vulkan.Core10.CommandBufferBuilding.cmdBeginQuery'* command /must/ -- have been called outside of a render pass instance -- @@ -1480,6 +1483,16 @@ foreign import ccall -- /must/ contain -- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT' -- +-- - #VUID-vkCmdDrawIndirectByteCountEXT-None-02693# If the +-- +-- extension is not enabled and any 'Vulkan.Core10.Handles.ImageView' +-- is sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a +-- result of this command, it /must/ not have a +-- 'Vulkan.Core10.Enums.ImageViewType.ImageViewType' of +-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_3D', +-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE', or +-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE_ARRAY' +-- -- - #VUID-vkCmdDrawIndirectByteCountEXT-filterCubic-02694# Any -- 'Vulkan.Core10.Handles.ImageView' being sampled with -- 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a result of this @@ -1505,6 +1518,34 @@ foreign import ccall -- returned by -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceImageFormatProperties2' -- +-- - #VUID-vkCmdDrawIndirectByteCountEXT-cubicRangeClamp-09212# If the +-- +-- feature is not enabled, then any 'Vulkan.Core10.Handles.ImageView' +-- being sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as +-- a result of this command +-- +-- [/must/ not have a 'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo'] +-- @reductionMode@ equal to +-- 'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM' +-- +-- - #VUID-vkCmdDrawIndirectByteCountEXT-reductionMode-09213# Any +-- 'Vulkan.Core10.Handles.ImageView' being sampled with a +-- 'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo'::@reductionMode@ +-- equal to +-- 'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM' +-- as a result of this command /must/ sample with +-- 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' +-- +-- - #VUID-vkCmdDrawIndirectByteCountEXT-selectableCubicWeights-09214# If +-- the +-- +-- feature is not enabled, then any 'Vulkan.Core10.Handles.ImageView' +-- being sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as +-- a result of this command /must/ have +-- 'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.SamplerCubicWeightsCreateInfoQCOM'::@cubicWeights@ +-- equal to +-- 'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM' +-- -- - #VUID-vkCmdDrawIndirectByteCountEXT-flags-02696# Any -- 'Vulkan.Core10.Handles.Image' created with a -- 'Vulkan.Core10.Image.ImageCreateInfo'::@flags@ containing @@ -1546,11 +1587,9 @@ foreign import ccall -- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT' -- -- - #VUID-vkCmdDrawIndirectByteCountEXT-None-08600# For each set /n/ --- that is statically used by the 'Vulkan.Core10.Handles.Pipeline' --- bound to the pipeline bind point used by this command, or by any of --- the 'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages --- corresponding to the pipeline bind point used by this command, a --- descriptor set /must/ have been bound to /n/ at the same pipeline +-- that is statically used by +-- , +-- a descriptor set /must/ have been bound to /n/ at the same pipeline -- bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is -- compatible for set /n/, with the -- 'Vulkan.Core10.Handles.PipelineLayout' or @@ -1560,13 +1599,10 @@ foreign import ccall -- -- -- - #VUID-vkCmdDrawIndirectByteCountEXT-None-08601# For each push --- constant that is statically used by the --- 'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point --- used by this command, or by any of the --- 'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages --- corresponding to the pipeline bind point used by this command, a --- push constant value /must/ have been set for the same pipeline bind --- point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is +-- constant that is statically used by +-- , +-- a push constant value /must/ have been set for the same pipeline +-- bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is -- compatible for push constants, with the -- 'Vulkan.Core10.Handles.PipelineLayout' or -- 'Vulkan.Core10.Handles.DescriptorSetLayout' and @@ -1578,12 +1614,10 @@ foreign import ccall -- - #VUID-vkCmdDrawIndirectByteCountEXT-maintenance4-08602# If the -- -- feature is not enabled, then for each push constant that is --- statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to the --- pipeline bind point used by this command, or by any of the --- 'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages --- corresponding to the pipeline bind point used by this command, a --- push constant value /must/ have been set for the same pipeline bind --- point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is +-- statically used by +-- , +-- a push constant value /must/ have been set for the same pipeline +-- bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is -- compatible for push constants, with the -- 'Vulkan.Core10.Handles.PipelineLayout' or -- 'Vulkan.Core10.Handles.DescriptorSetLayout' and @@ -1746,34 +1780,25 @@ foreign import ccall -- buffer as specified in the descriptor set bound to the same pipeline -- bind point -- --- - #VUID-vkCmdDrawIndirectByteCountEXT-commandBuffer-08614# If +-- - #VUID-vkCmdDrawIndirectByteCountEXT-commandBuffer-02707# If -- @commandBuffer@ is an unprotected command buffer and -- --- is not supported, any resource accessed by the --- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind --- point used by this command or any --- 'Vulkan.Extensions.Handles.ShaderEXT' object bound to a stage --- corresponding to the pipeline bind point used by this command /must/ --- not be a protected resource --- --- - #VUID-vkCmdDrawIndirectByteCountEXT-None-08615# If the --- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind --- point used by this command or any --- 'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding --- to the pipeline bind point used by this command accesses a --- 'Vulkan.Core10.Handles.Sampler' or 'Vulkan.Core10.Handles.ImageView' --- object that enables +-- is not supported, any resource accessed by +-- +-- /must/ not be a protected resource +-- +-- - #VUID-vkCmdDrawIndirectByteCountEXT-None-06550# If +-- +-- accesses a 'Vulkan.Core10.Handles.Sampler' or +-- 'Vulkan.Core10.Handles.ImageView' object that enables -- , -- that object /must/ only be used with @OpImageSample*@ or -- @OpImageSparseSample*@ instructions -- --- - #VUID-vkCmdDrawIndirectByteCountEXT-ConstOffset-08616# If the --- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind --- point used by this command or any --- 'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding --- to the pipeline bind point used by this command accesses a --- 'Vulkan.Core10.Handles.Sampler' or 'Vulkan.Core10.Handles.ImageView' --- object that enables +-- - #VUID-vkCmdDrawIndirectByteCountEXT-ConstOffset-06551# If +-- +-- accesses a 'Vulkan.Core10.Handles.Sampler' or +-- 'Vulkan.Core10.Handles.ImageView' object that enables -- , -- that object /must/ not use the @ConstOffset@ and @Offset@ operands -- @@ -1785,17 +1810,23 @@ foreign import ccall -- -- - #VUID-vkCmdDrawIndirectByteCountEXT-format-07753# If a -- 'Vulkan.Core10.Handles.ImageView' is accessed as a result of this --- command, then the image view’s @format@ /must/ match the numeric --- format from the @Sampled@ @Type@ operand of the @OpTypeImage@ as --- described in the SPIR-V Sampled Type column of the --- --- table --- --- - #VUID-vkCmdDrawIndirectByteCountEXT-None-04115# If a --- 'Vulkan.Core10.Handles.ImageView' is accessed using @OpImageWrite@ --- as a result of this command, then the @Type@ of the @Texel@ operand --- of that instruction /must/ have at least as many components as the --- image view’s format +-- command, then the +-- +-- of the image view’s @format@ and the @Sampled@ @Type@ operand of the +-- @OpTypeImage@ /must/ match +-- +-- - #VUID-vkCmdDrawIndirectByteCountEXT-OpImageWrite-08795# If a +-- 'Vulkan.Core10.Handles.ImageView' created with a format other than +-- 'Vulkan.Core10.Enums.Format.FORMAT_A8_UNORM_KHR' is accessed using +-- @OpImageWrite@ as a result of this command, then the @Type@ of the +-- @Texel@ operand of that instruction /must/ have at least as many +-- components as the image view’s format +-- +-- - #VUID-vkCmdDrawIndirectByteCountEXT-OpImageWrite-08796# If a +-- 'Vulkan.Core10.Handles.ImageView' created with the format +-- 'Vulkan.Core10.Enums.Format.FORMAT_A8_UNORM_KHR' is accessed using +-- @OpImageWrite@ as a result of this command, then the @Type@ of the +-- @Texel@ operand of that instruction /must/ have four components -- -- - #VUID-vkCmdDrawIndirectByteCountEXT-OpImageWrite-04469# If a -- 'Vulkan.Core10.Handles.BufferView' is accessed using @OpImageWrite@ @@ -1899,6 +1930,8 @@ foreign import ccall -- -- - #VUID-vkCmdDrawIndirectByteCountEXT-OpImageWeightedSampleQCOM-06977# -- If @OpImageWeightedSampleQCOM@, @OpImageBoxFilterQCOM@, +-- @OpImageBlockMatchWindowSSDQCOM@, @OpImageBlockMatchWindowSADQCOM@, +-- @OpImageBlockMatchGatherSSDQCOM@, @OpImageBlockMatchGatherSADQCOM@, -- @OpImageBlockMatchSSDQCOM@, or @OpImageBlockMatchSADQCOM@ uses a -- 'Vulkan.Core10.Handles.Sampler' as a result of this command, then -- the sampler /must/ have been created with @@ -1906,12 +1939,36 @@ foreign import ccall -- -- - #VUID-vkCmdDrawIndirectByteCountEXT-OpImageWeightedSampleQCOM-06978# -- If any command other than @OpImageWeightedSampleQCOM@, --- @OpImageBoxFilterQCOM@, @OpImageBlockMatchSSDQCOM@, or +-- @OpImageBoxFilterQCOM@, @OpImageBlockMatchWindowSSDQCOM@, +-- @OpImageBlockMatchWindowSADQCOM@, @OpImageBlockMatchGatherSSDQCOM@, +-- @OpImageBlockMatchGatherSADQCOM@, @OpImageBlockMatchSSDQCOM@, or -- @OpImageBlockMatchSADQCOM@ uses a 'Vulkan.Core10.Handles.Sampler' as -- a result of this command, then the sampler /must/ not have been -- created with -- 'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM' -- +-- - #VUID-vkCmdDrawIndirectByteCountEXT-OpImageBlockMatchWindow-09215# +-- If a @OpImageBlockMatchWindow*QCOM@ or +-- @OpImageBlockMatchGather*QCOM@ instruction is used to read from an +-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then +-- the image view’s +-- +-- /must/ contain +-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM' +-- +-- - #VUID-vkCmdDrawIndirectByteCountEXT-OpImageBlockMatchWindow-09216# +-- If a @OpImageBlockMatchWindow*QCOM@ or +-- @OpImageBlockMatchGather*QCOM@ instruction is used to read from an +-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then +-- the image view’s format /must/ be a single-component format. +-- +-- - #VUID-vkCmdDrawIndirectByteCountEXT-OpImageBlockMatchWindow-09217# +-- If a @OpImageBlockMatchWindow*QCOM@ or +-- @OpImageBlockMatchGather*QCOM@ read from a reference image as result +-- of this command, then the specified reference coordinates /must/ not +-- fail +-- +-- -- - #VUID-vkCmdDrawIndirectByteCountEXT-None-07288# Any shader -- invocation executed by this command /must/ -- @@ -1956,15 +2013,89 @@ foreign import ccall -- not be written in any way other than as an attachment by this -- command -- --- - #VUID-vkCmdDrawIndirectByteCountEXT-None-06538# If any recorded --- command in the current subpass will write to an image subresource as --- an attachment, this command /must/ not read from the memory backing --- that image subresource in any other way than as an attachment +-- - #VUID-vkCmdDrawIndirectByteCountEXT-None-09000# If a color +-- attachment is written by any prior command in this subpass or by the +-- load, store, or resolve operations for this subpass, it is not in +-- the +-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT' +-- image layout, and either: +-- +-- - the +-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT' +-- is set on the currently bound pipeline or +-- +-- - the last call to +-- 'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT' +-- included +-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT' +-- and -- --- - #VUID-vkCmdDrawIndirectByteCountEXT-None-06539# If any recorded --- command in the current subpass will read from an image subresource --- used as an attachment in any way other than as an attachment, this --- command /must/ not write to that image subresource as an attachment +-- - there is no currently bound graphics pipeline or +-- +-- - the currently bound graphics pipeline was created with +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT' +-- it /must/ not be accessed in any way other than as an +-- attachment by this command +-- +-- - #VUID-vkCmdDrawIndirectByteCountEXT-None-09001# If a depth +-- attachment is written by any prior command in this subpass or by the +-- load, store, or resolve operations for this subpass, it is not in +-- the +-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT' +-- image layout, and either: +-- +-- - the +-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT' +-- is set on the currently bound pipeline or +-- +-- - the last call to +-- 'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT' +-- included +-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_DEPTH_BIT' +-- and +-- +-- - there is no currently bound graphics pipeline or +-- +-- - the currently bound graphics pipeline was created with +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT' +-- it /must/ not be accessed in any way other than as an +-- attachment by this command +-- +-- - #VUID-vkCmdDrawIndirectByteCountEXT-None-09002# If a stencil +-- attachment is written by any prior command in this subpass or by the +-- load, store, or resolve operations for this subpass, it is not in +-- the +-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT' +-- image layout, and either: +-- +-- - the +-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT' +-- is set on the currently bound pipeline or +-- +-- - the last call to +-- 'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT' +-- included +-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT' +-- and +-- +-- - there is no currently bound graphics pipeline or +-- +-- - the currently bound graphics pipeline was created with +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT' +-- it /must/ not be accessed in any way other than as an +-- attachment by this command +-- +-- - #VUID-vkCmdDrawIndirectByteCountEXT-None-09003# If an attachment is +-- written by any prior command in this subpass or by the load, store, +-- or resolve operations for this subpass, it /must/ not be accessed in +-- any way other than as an attachment, storage image, or sampled image +-- by this command +-- +-- - #VUID-vkCmdDrawIndirectByteCountEXT-None-06539# If any previously +-- recorded command in the current subpass accessed an image +-- subresource used as an attachment in this subpass in any way other +-- than as an attachment, this command /must/ not write to that image +-- subresource as an attachment -- -- - #VUID-vkCmdDrawIndirectByteCountEXT-None-06886# If the current -- render pass instance uses a depth\/stencil attachment with a @@ -2034,18 +2165,23 @@ foreign import ccall -- graphics pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS' dynamic -- state enabled then --- 'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBias' /must/ have --- been called in the current command buffer prior to this drawing --- command +-- 'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBias' or +-- 'Vulkan.Extensions.VK_EXT_depth_bias_control.cmdSetDepthBias2EXT' +-- /must/ have been called in the current command buffer prior to this +-- drawing command -- -- - #VUID-vkCmdDrawIndirectByteCountEXT-None-08620# If a shader object -- is bound to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnable' -- in the current command buffer set @depthBiasEnable@ to -- 'Vulkan.Core10.FundamentalTypes.TRUE', --- 'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBias' /must/ have --- been called in the current command buffer prior to this drawing --- command +-- 'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBias' or +-- 'Vulkan.Extensions.VK_EXT_depth_bias_control.cmdSetDepthBias2EXT' +-- /must/ have been called in the current command buffer prior to this +-- drawing command -- -- - #VUID-vkCmdDrawIndirectByteCountEXT-None-07835# If the bound -- graphics pipeline state was created with the @@ -2068,7 +2204,7 @@ foreign import ccall -- the most recent call to -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT' -- in the current command buffer set the same element of --- @pColorBlendEquations@ to an +-- @pColorBlendEquations@ to a -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.ColorBlendEquationEXT' -- structure with any 'Vulkan.Core10.Enums.BlendFactor.BlendFactor' -- member with a value of @@ -2083,16 +2219,20 @@ foreign import ccall -- - #VUID-vkCmdDrawIndirectByteCountEXT-None-07836# If the bound -- graphics pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS' --- dynamic state enabled then +-- dynamic state enabled, and if the current @depthBoundsTestEnable@ +-- state is 'Vulkan.Core10.FundamentalTypes.TRUE', then -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBounds' /must/ have -- been called in the current command buffer prior to this drawing -- command -- -- - #VUID-vkCmdDrawIndirectByteCountEXT-None-08622# If a shader object -- is bound to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable' -- in the current command buffer set @depthBoundsTestEnable@ to --- 'Vulkan.Core10.FundamentalTypes.TRUE', +-- 'Vulkan.Core10.FundamentalTypes.TRUE', then -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBounds' /must/ have -- been called in the current command buffer prior to this drawing -- command @@ -2100,7 +2240,8 @@ foreign import ccall -- - #VUID-vkCmdDrawIndirectByteCountEXT-None-07837# If the bound -- graphics pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_COMPARE_MASK' --- dynamic state enabled then +-- dynamic state enabled, and if the current @stencilTestEnable@ state +-- is 'Vulkan.Core10.FundamentalTypes.TRUE', then -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilCompareMask' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -2117,7 +2258,8 @@ foreign import ccall -- - #VUID-vkCmdDrawIndirectByteCountEXT-None-07838# If the bound -- graphics pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_WRITE_MASK' --- dynamic state enabled then +-- dynamic state enabled, and if the current @stencilTestEnable@ state +-- is 'Vulkan.Core10.FundamentalTypes.TRUE', then -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilWriteMask' /must/ -- have been called in the current command buffer prior to this drawing -- command @@ -2134,7 +2276,8 @@ foreign import ccall -- - #VUID-vkCmdDrawIndirectByteCountEXT-None-07839# If the bound -- graphics pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_REFERENCE' --- dynamic state enabled then +-- dynamic state enabled, and if the current @stencilTestEnable@ state +-- is 'Vulkan.Core10.FundamentalTypes.TRUE', then -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilReference' /must/ -- have been called in the current command buffer prior to this drawing -- command @@ -2174,7 +2317,10 @@ foreign import ccall -- is bound to any graphics stage, and the most recent call to -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT' -- in the current command buffer set @sampleLocationsEnable@ to --- 'Vulkan.Core10.FundamentalTypes.TRUE', +-- 'Vulkan.Core10.FundamentalTypes.TRUE', and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -2198,7 +2344,10 @@ foreign import ccall -- drawing command -- -- - #VUID-vkCmdDrawIndirectByteCountEXT-None-08627# If a shader object --- is bound to any graphics stage, +-- is bound to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetCullMode' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -2212,7 +2361,10 @@ foreign import ccall -- drawing command -- -- - #VUID-vkCmdDrawIndirectByteCountEXT-None-08628# If a shader object --- is bound to any graphics stage, +-- is bound to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetFrontFace' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -2226,7 +2378,10 @@ foreign import ccall -- drawing command -- -- - #VUID-vkCmdDrawIndirectByteCountEXT-None-08629# If a shader object --- is bound to any graphics stage, +-- is bound to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -2240,7 +2395,10 @@ foreign import ccall -- drawing command -- -- - #VUID-vkCmdDrawIndirectByteCountEXT-None-08630# If a shader object --- is bound to any graphics stage, +-- is bound to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -2255,9 +2413,12 @@ foreign import ccall -- -- - #VUID-vkCmdDrawIndirectByteCountEXT-None-08631# If a shader object -- is bound to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable' -- in the current command buffer set @depthTestEnable@ to --- 'Vulkan.Core10.FundamentalTypes.TRUE', +-- 'Vulkan.Core10.FundamentalTypes.TRUE', then -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthCompareOp' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -2273,7 +2434,10 @@ foreign import ccall -- - #VUID-vkCmdDrawIndirectByteCountEXT-None-08632# If a shader object -- is bound to any graphics stage, and the -- --- feature is enabled, the +-- feature is enabled, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then the -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -2393,6 +2557,13 @@ foreign import ccall -- the last call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- +-- - #VUID-vkCmdDrawIndirectByteCountEXT-None-09232# If a shader object +-- is bound to any graphics stage, and the @VK_NV_clip_space_w_scaling@ +-- extension is enabled on the device, then +-- 'Vulkan.Extensions.VK_NV_clip_space_w_scaling.cmdSetViewportWScalingNV' +-- must have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdDrawIndirectByteCountEXT-None-08636# If a shader object -- is bound to any graphics stage, and the @VK_NV_clip_space_w_scaling@ -- extension is enabled on the device, then the @viewportCount@ @@ -2426,6 +2597,30 @@ foreign import ccall -- the last call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- +-- - #VUID-vkCmdDrawIndirectByteCountEXT-shadingRateImage-09233# If the +-- +-- feature is enabled, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set rasterizerDiscardEnable to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then +-- 'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetCoarseSampleOrderNV' +-- must have been called in the current command buffer prior to this +-- drawing command +-- +-- - #VUID-vkCmdDrawIndirectByteCountEXT-shadingRateImage-09234# If a +-- shader object is bound to any graphics stage, and the +-- +-- feature is enabled on the device, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set rasterizerDiscardEnable to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetShadingRateImageEnableNV' +-- in the current command buffer set shadingRateImageEnable to +-- 'Vulkan.Core10.FundamentalTypes.TRUE', then +-- 'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetViewportShadingRatePaletteNV' +-- must have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdDrawIndirectByteCountEXT-None-08637# If a shader object -- is bound to any graphics stage, and the -- @@ -2478,6 +2673,14 @@ foreign import ccall -- /must/ have been called in the current command buffer prior to this -- drawing command -- +-- - #VUID-vkCmdDrawIndirectByteCountEXT-exclusiveScissor-09235# If a +-- shader object is bound to any graphics stage, and the +-- +-- feature is enabled, then +-- 'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorEnableNV' +-- must have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdDrawIndirectByteCountEXT-None-08638# If a shader object -- is bound to any graphics stage, and the most recent call to -- 'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorEnableNV' @@ -2529,7 +2732,9 @@ foreign import ccall -- 'Vulkan.Core10.Enums.LogicOp.LogicOp' value -- -- - #VUID-vkCmdDrawIndirectByteCountEXT-None-08641# If a shader object --- is bound to any graphics stage, and the +-- is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage, and the -- -- feature is enabled on the device, and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' @@ -2615,6 +2820,11 @@ foreign import ccall -- to be the same as the number of samples for the current render pass -- color and\/or depth\/stencil attachments -- +-- - #VUID-vkCmdDrawIndirectByteCountEXT-None-08876# If a shader object +-- is bound to any graphics stage, the current render pass instance +-- /must/ have been begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' +-- -- - #VUID-vkCmdDrawIndirectByteCountEXT-imageView-06172# If the current -- render pass instance was begun with -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', @@ -2687,8 +2897,11 @@ foreign import ccall -- equal to -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ -- --- - #VUID-vkCmdDrawIndirectByteCountEXT-colorAttachmentCount-06180# If --- the current render pass instance was begun with +-- - #VUID-vkCmdDrawIndirectByteCountEXT-dynamicRenderingUnusedAttachments-08910# +-- If the +-- +-- feature is not enabled, and the current render pass instance was +-- begun with -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' -- and -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ @@ -2701,8 +2914,32 @@ foreign import ccall -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@ -- used to create the currently bound graphics pipeline -- --- - #VUID-vkCmdDrawIndirectByteCountEXT-colorAttachmentCount-07616# If --- the current render pass instance was begun with +-- - #VUID-vkCmdDrawIndirectByteCountEXT-dynamicRenderingUnusedAttachments-08911# +-- If the +-- +-- feature is enabled, and the current render pass instance was begun +-- with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' +-- and +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ +-- greater than @0@, then each element of the +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@ +-- array with a @imageView@ not equal to +-- 'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created +-- with a 'Vulkan.Core10.Enums.Format.Format' equal to the +-- corresponding element of +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@ +-- used to create the currently bound graphics pipeline, or the +-- corresponding element of +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@, +-- if it exists, /must/ be +-- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' +-- +-- - #VUID-vkCmdDrawIndirectByteCountEXT-dynamicRenderingUnusedAttachments-08912# +-- If the +-- +-- feature is not enabled, and the current render pass instance was +-- begun with -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' -- and -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ @@ -2715,6 +2952,132 @@ foreign import ccall -- used to create the currently bound pipeline equal to -- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' -- +-- - #VUID-vkCmdDrawIndirectByteCountEXT-colorAttachmentCount-09362# If +-- the current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- with a +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ +-- equal to @1@, there is no shader object bound to any graphics stage, +-- and a color attachment with a resolve mode of +-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID', +-- each element of the +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@ +-- array with a @resolveImageView@ not equal to +-- 'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created +-- with an image created with a +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- value equal to the +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- value used to create the currently bound graphics pipeline +-- +-- - #VUID-vkCmdDrawIndirectByteCountEXT-None-09363# If there is no +-- shader object bound to any graphics stage, the current render pass +-- instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' +-- and a +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ +-- equal to @1@, and a color attachment with a resolve mode of +-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID', +-- each element of the +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@ +-- array with a @imageView@ not equal to +-- 'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created +-- with an image created with a +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- value equal to the +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- value used to create the currently bound graphics pipeline +-- +-- - #VUID-vkCmdDrawIndirectByteCountEXT-None-09364# If the current +-- render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- there is no shader object bound to any graphics stage, and the +-- currently bound graphics pipeline was created with a non-zero +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- value and with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT' +-- dynamic state enabled, then +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT' +-- /must/ have set the blend enable to +-- 'Vulkan.Core10.FundamentalTypes.FALSE' prior to this drawing command +-- +-- - #VUID-vkCmdDrawIndirectByteCountEXT-None-09365# If the current +-- render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- there is no shader object bound to any graphics stage, and the +-- currently bound graphics pipeline was created with a non-zero +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- value and with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT' +-- dynamic state enabled, then +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT' +-- /must/ have set @rasterizationSamples@ to +-- 'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT' prior +-- to this drawing command +-- +-- - #VUID-vkCmdDrawIndirectByteCountEXT-None-09366# If there is a shader +-- object bound to any graphics stage, and the current render pass +-- includes a color attachment that uses the +-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID' +-- resolve mode, then +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT' +-- /must/ have set blend enable to +-- 'Vulkan.Core10.FundamentalTypes.FALSE' prior to this drawing command +-- +-- - #VUID-vkCmdDrawIndirectByteCountEXT-rasterizationSamples-09367# If +-- there is a shader object bound to any graphics stage, and the +-- current render pass includes a color attachment that uses the +-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID' +-- resolve mode, then +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT' +-- /must/ have set @rasterizationSamples@ to +-- 'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT' prior +-- to this drawing command +-- +-- - #VUID-vkCmdDrawIndirectByteCountEXT-None-09368# If the current +-- render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- there is no shader object bound to any graphics stage, and the +-- currently bound graphics pipeline was created with a non-zero +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- value and with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR' +-- dynamic state enabled, then +-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR' +-- /must/ have set @pFragmentSize->width@ to @1@ prior to this drawing +-- command +-- +-- - #VUID-vkCmdDrawIndirectByteCountEXT-None-09369# If the current +-- render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- there is no shader object bound to any graphics stage, and the +-- currently bound graphics pipeline was created with a non-zero +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- value and with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR' +-- dynamic state enabled, then +-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR' +-- /must/ have set @pFragmentSize->height@ to @1@ prior to this drawing +-- command +-- +-- - #VUID-vkCmdDrawIndirectByteCountEXT-pFragmentSize-09370# If there is +-- a shader object bound to any graphics stage, and the current render +-- pass includes a color attachment that uses the +-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID' +-- resolve mode, then +-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR' +-- /must/ have set @pFragmentSize->width@ to @1@ prior to this drawing +-- command +-- +-- - #VUID-vkCmdDrawIndirectByteCountEXT-pFragmentSize-09371# If there is +-- a shader object bound to any graphics stage, and the current render +-- pass includes a color attachment that uses the +-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID' +-- resolve mode, then +-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR' +-- /must/ have set @pFragmentSize->height@ to @1@ prior to this drawing +-- command +-- -- - #VUID-vkCmdDrawIndirectByteCountEXT-None-07749# If the bound -- graphics pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT' @@ -2726,7 +3089,9 @@ foreign import ccall -- - #VUID-vkCmdDrawIndirectByteCountEXT-None-08646# If the -- -- feature is enabled on the device, and a shader object is bound to --- the fragment stage, and the most recent call to +-- the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage, and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' -- in the current command buffer set @rasterizerDiscardEnable@ to -- 'Vulkan.Core10.FundamentalTypes.FALSE', then @@ -2746,7 +3111,9 @@ foreign import ccall -- - #VUID-vkCmdDrawIndirectByteCountEXT-None-08647# If the -- -- feature is enabled on the device, and a shader object is bound to --- the fragment stage, and the most recent call to +-- the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage, and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' -- in the current command buffer set @rasterizerDiscardEnable@ to -- 'Vulkan.Core10.FundamentalTypes.FALSE', then the @attachmentCount@ @@ -2772,6 +3139,17 @@ foreign import ccall -- /must/ have been called in the current command buffer prior to this -- drawing command -- +-- - #VUID-vkCmdDrawIndirectByteCountEXT-rasterizerDiscardEnable-09236# +-- If the @VK_EXT_discard_rectangles@ extension is enabled, and a +-- shader object is bound to any graphics stage, and the most recent +-- call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then +-- 'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEXT' +-- /must/ have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdDrawIndirectByteCountEXT-None-08648# If the -- @VK_EXT_discard_rectangles@ extension is enabled, and a shader -- object is bound to any graphics stage, and the most recent call to @@ -2803,10 +3181,24 @@ foreign import ccall -- /must/ have been called in the current command buffer prior to this -- drawing command -- --- - #VUID-vkCmdDrawIndirectByteCountEXT-pDepthAttachment-06181# If the --- current render pass instance was begun with --- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' --- and +-- - #VUID-vkCmdDrawIndirectByteCountEXT-dynamicRenderingUnusedAttachments-08913# +-- If the current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- the +-- +-- feature is not enabled, and +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@ +-- was 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@ +-- used to create the currently bound graphics pipeline /must/ be equal +-- to 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' +-- +-- - #VUID-vkCmdDrawIndirectByteCountEXT-dynamicRenderingUnusedAttachments-08914# +-- If current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- the +-- +-- feature is not enabled, and -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@ -- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@ @@ -2814,20 +3206,39 @@ foreign import ccall -- to the 'Vulkan.Core10.Enums.Format.Format' used to create -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@ -- --- - #VUID-vkCmdDrawIndirectByteCountEXT-pDepthAttachment-07617# If the --- current render pass instance was begun with --- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' --- and +-- - #VUID-vkCmdDrawIndirectByteCountEXT-dynamicRenderingUnusedAttachments-08915# +-- If the current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- the +-- +-- feature is enabled, -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@ --- was 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of +-- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the value of -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@ +-- used to create the currently bound graphics pipeline was not equal +-- to the 'Vulkan.Core10.Enums.Format.Format' used to create +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@, +-- the value of the format /must/ be +-- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' +-- +-- - #VUID-vkCmdDrawIndirectByteCountEXT-dynamicRenderingUnusedAttachments-08916# +-- If the current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- the +-- +-- feature is not enabled, and +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@ +-- was 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@ -- used to create the currently bound graphics pipeline /must/ be equal -- to 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' -- --- - #VUID-vkCmdDrawIndirectByteCountEXT-pStencilAttachment-06182# If the --- current render pass instance was begun with --- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' --- and +-- - #VUID-vkCmdDrawIndirectByteCountEXT-dynamicRenderingUnusedAttachments-08917# +-- If current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- the +-- +-- feature is not enabled, and -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@ -- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@ @@ -2835,15 +3246,20 @@ foreign import ccall -- to the 'Vulkan.Core10.Enums.Format.Format' used to create -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@ -- --- - #VUID-vkCmdDrawIndirectByteCountEXT-pStencilAttachment-07618# If the --- current render pass instance was begun with --- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' --- and +-- - #VUID-vkCmdDrawIndirectByteCountEXT-dynamicRenderingUnusedAttachments-08918# +-- If the current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- the +-- +-- feature is enabled, -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@ --- was 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of +-- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the value of -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@ --- used to create the currently bound graphics pipeline /must/ be equal --- to 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' +-- used to create the currently bound graphics pipeline was not equal +-- to the 'Vulkan.Core10.Enums.Format.Format' used to create +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@, +-- the value of the format /must/ be +-- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' -- -- - #VUID-vkCmdDrawIndirectByteCountEXT-imageView-06183# If the current -- render pass instance was begun with @@ -2990,6 +3406,40 @@ foreign import ccall -- 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@renderPass@ -- equal to 'Vulkan.Core10.APIConstants.NULL_HANDLE' -- +-- - #VUID-vkCmdDrawIndirectByteCountEXT-pColorAttachments-08963# If the +-- current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- there is a graphics pipeline bound with a fragment shader that +-- statically writes to a color attachment, the color write mask is not +-- zero, color writes are enabled, and the corresponding element of the +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments->imageView@ +-- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', then the +-- corresponding element of +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@ +-- used to create the pipeline /must/ not be +-- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' +-- +-- - #VUID-vkCmdDrawIndirectByteCountEXT-pDepthAttachment-08964# If the +-- current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- there is a graphics pipeline bound, depth test is enabled, depth +-- write is enabled, and the +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@ +-- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', then the +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@ +-- used to create the pipeline /must/ not be +-- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' +-- +-- - #VUID-vkCmdDrawIndirectByteCountEXT-pStencilAttachment-08965# If the +-- current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- there is a graphics pipeline bound, stencil test is enabled and the +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@ +-- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', then the +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@ +-- used to create the pipeline /must/ not be +-- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' +-- -- - #VUID-vkCmdDrawIndirectByteCountEXT-primitivesGeneratedQueryWithRasterizerDiscard-06708# -- If the -- @@ -3016,6 +3466,22 @@ foreign import ccall -- /must/ have been called in the current command buffer prior to this -- drawing command -- +-- - #VUID-vkCmdDrawIndirectByteCountEXT-None-07620# If the bound +-- graphics pipeline state was created with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT' +-- dynamic state enabled then +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClampEnableEXT' +-- /must/ have been called in the current command buffer prior to this +-- drawing command +-- +-- - #VUID-vkCmdDrawIndirectByteCountEXT-None-09237# If a shader object +-- is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT' +-- stage, then +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetTessellationDomainOriginEXT' +-- /must/ have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdDrawIndirectByteCountEXT-None-08650# If the -- -- feature is enabled, and a shader object is bound to any graphics @@ -3086,6 +3552,17 @@ foreign import ccall -- /must/ have been called in the current command buffer prior to this -- drawing command -- +-- - #VUID-vkCmdDrawIndirectByteCountEXT-alphaToCoverageEnable-08919# If +-- the bound graphics pipeline state was created with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT' +-- dynamic state enabled, and @alphaToCoverageEnable@ was +-- 'Vulkan.Core10.FundamentalTypes.TRUE' in the last call to +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT', +-- then the +-- +-- /must/ contain a variable for the alpha @Component@ word in +-- @Location@ 0 at @Index@ 0 +-- -- - #VUID-vkCmdDrawIndirectByteCountEXT-None-08654# If a shader object -- is bound to any graphics stage, and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' @@ -3095,6 +3572,16 @@ foreign import ccall -- /must/ have been called in the current command buffer prior to this -- drawing command -- +-- - #VUID-vkCmdDrawIndirectByteCountEXT-alphaToCoverageEnable-08920# If +-- a shader object is bound to any graphics stage, and the most recent +-- call to +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT' +-- in the current command buffer set @alphaToCoverageEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.TRUE', then the +-- +-- /must/ contain a variable for the alpha @Component@ word in +-- @Location@ 0 at @Index@ 0 +-- -- - #VUID-vkCmdDrawIndirectByteCountEXT-None-07625# If the bound -- graphics pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT' @@ -3124,7 +3611,8 @@ foreign import ccall -- -- - #VUID-vkCmdDrawIndirectByteCountEXT-None-08656# If the -- --- feature is enabled, and a shader object is bound to any graphics +-- feature is enabled, and a shader object is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' -- stage, and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' -- in the current command buffer set @rasterizerDiscardEnable@ to @@ -3142,7 +3630,9 @@ foreign import ccall -- drawing command -- -- - #VUID-vkCmdDrawIndirectByteCountEXT-None-08657# If a shader object --- is bound to any graphics stage, and the most recent call to +-- is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage, and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' -- in the current command buffer set @rasterizerDiscardEnable@ to -- 'Vulkan.Core10.FundamentalTypes.FALSE', then @@ -3179,7 +3669,9 @@ foreign import ccall -- drawing command -- -- - #VUID-vkCmdDrawIndirectByteCountEXT-None-08659# If a shader object --- is bound to any graphics stage, and the most recent call to +-- is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage, and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' -- in the current command buffer set @rasterizerDiscardEnable@ to -- 'Vulkan.Core10.FundamentalTypes.FALSE', then @@ -3197,7 +3689,8 @@ foreign import ccall -- -- - #VUID-vkCmdDrawIndirectByteCountEXT-None-08660# If the -- --- feature is enabled, and a shader object is bound to the geometry +-- feature is enabled, and a shader object is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT' -- stage, then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationStreamEXT' -- /must/ have been called in the current command buffer prior to this @@ -3297,7 +3790,9 @@ foreign import ccall -- -- - #VUID-vkCmdDrawIndirectByteCountEXT-None-08665# If the -- @VK_EXT_provoking_vertex@ extension is enabled, and a shader object --- is bound to the vertex stage, then +-- is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT' +-- stage, then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetProvokingVertexModeEXT' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -3406,7 +3901,7 @@ foreign import ccall -- stage, then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClipNegativeOneToOneEXT' -- /must/ have been called in the current command buffer prior to this --- drawing command ifdef::VK_EXT_extended_dynamic_state3 +-- drawing command -- -- - #VUID-vkCmdDrawIndirectByteCountEXT-None-07640# If the bound -- graphics pipeline state was created with the @@ -3414,7 +3909,7 @@ foreign import ccall -- dynamic state enabled then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetViewportWScalingEnableNV' -- /must/ have been called in the current command buffer prior to this --- drawing command endif::VK_EXT_extended_dynamic_state3 +-- drawing command -- -- - #VUID-vkCmdDrawIndirectByteCountEXT-None-08674# If the -- @VK_NV_clip_space_w_scaling@ extension is enabled, and a shader @@ -3448,7 +3943,12 @@ foreign import ccall -- -- - #VUID-vkCmdDrawIndirectByteCountEXT-None-08676# If the -- @VK_NV_fragment_coverage_to_color@ extension is enabled, and a --- shader object is bound to any graphics stage, then +-- shader object is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -3463,8 +3963,9 @@ foreign import ccall -- -- - #VUID-vkCmdDrawIndirectByteCountEXT-None-08677# If the -- @VK_NV_fragment_coverage_to_color@ extension is enabled, and a --- shader object is bound to any graphics stage, and the most recent --- call to +-- shader object is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage, and the most recent call to -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV' -- in the current command buffer set @coverageToColorEnable@ to -- 'Vulkan.Core10.FundamentalTypes.TRUE', then @@ -3482,7 +3983,10 @@ foreign import ccall -- -- - #VUID-vkCmdDrawIndirectByteCountEXT-None-08678# If the -- @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader --- object is bound to any graphics stage, then +-- object is bound to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationModeNV' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -3497,7 +4001,15 @@ foreign import ccall -- -- - #VUID-vkCmdDrawIndirectByteCountEXT-None-08679# If the -- @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader --- object is bound to any graphics stage, then +-- object is bound to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationModeNV' +-- in the current command buffer set coverageModulationMode to any +-- value other than +-- 'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.COVERAGE_MODULATION_MODE_NONE_NV', +-- then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -3513,6 +4025,9 @@ foreign import ccall -- - #VUID-vkCmdDrawIndirectByteCountEXT-None-08680# If the -- @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader -- object is bound to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV' -- in the current command buffer set @coverageModulationTableEnable@ to -- 'Vulkan.Core10.FundamentalTypes.TRUE', then @@ -3528,10 +4043,26 @@ foreign import ccall -- /must/ have been called in the current command buffer prior to this -- drawing command -- +-- - #VUID-vkCmdDrawIndirectByteCountEXT-pipelineFragmentShadingRate-09238# +-- If the +-- +-- feature is enabled, and a shader object is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set rasterizerDiscardEnable to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then +-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR' +-- must have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdDrawIndirectByteCountEXT-None-08681# If the -- -- feature is enabled, and a shader object is bound to any graphics --- stage, then +-- stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetShadingRateImageEnableNV' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -3541,13 +4072,16 @@ foreign import ccall -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV' -- dynamic state enabled then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRepresentativeFragmentTestEnableNV' --- must have been called in the current command buffer prior to this +-- /must/ have been called in the current command buffer prior to this -- drawing command -- -- - #VUID-vkCmdDrawIndirectByteCountEXT-None-08682# If the -- -- feature is enabled, and a shader object is bound to any graphics --- stage, then +-- stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRepresentativeFragmentTestEnableNV' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -3563,7 +4097,10 @@ foreign import ccall -- - #VUID-vkCmdDrawIndirectByteCountEXT-None-08683# If the -- -- feature is enabled, and a shader object is bound to any graphics --- stage, then +-- stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageReductionModeNV' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -3612,18 +4149,29 @@ foreign import ccall -- in the last call to -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT' -- --- - #VUID-vkCmdDrawIndirectByteCountEXT-multisampledRenderToSingleSampled-07475# --- If the bound graphics pipeline state was created with the +-- - #VUID-vkCmdDrawIndirectByteCountEXT-rasterizationSamples-07474# If +-- the bound graphics pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT' --- state enabled, and none of the @VK_AMD_mixed_attachment_samples@ --- extension, @VK_NV_framebuffer_mixed_samples@ extension, or the --- --- feature is enabled, then the @rasterizationSamples@ in the last call --- to +-- state enabled, and neither the @VK_AMD_mixed_attachment_samples@ nor +-- the @VK_NV_framebuffer_mixed_samples@ extensions are enabled, then +-- the @rasterizationSamples@ in the last call to -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT' -- /must/ be the same as the current subpass color and\/or -- depth\/stencil attachments -- +-- - #VUID-vkCmdDrawIndirectByteCountEXT-None-09211# If the bound +-- graphics pipeline state was created with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT' +-- state enabled, or a shader object is bound to any graphics stage, +-- and the current render pass instance includes a +-- 'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT' +-- structure with @multisampledRenderToSingleSampledEnable@ equal to +-- 'Vulkan.Core10.FundamentalTypes.TRUE', then the +-- @rasterizationSamples@ in the last call to +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT' +-- /must/ be the same as the @rasterizationSamples@ member of that +-- structure +-- -- - #VUID-vkCmdDrawIndirectByteCountEXT-firstAttachment-07476# If the -- bound graphics pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT' @@ -3682,7 +4230,7 @@ foreign import ccall -- and -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendAdvancedEXT' -- have enabled advanced blending, then the number of active color --- attachments in the current subpass must not exceed +-- attachments in the current subpass /must/ not exceed -- -- -- - #VUID-vkCmdDrawIndirectByteCountEXT-primitivesGeneratedQueryWithNonZeroStreams-07481# @@ -3844,7 +4392,7 @@ foreign import ccall -- the @VK_NV_framebuffer_mixed_samples@ extension is enabled, and if -- current subpass has a depth\/stencil attachment and depth test, -- stencil test, or depth bounds test are enabled in the currently --- bound pipeline state, then the current @rasterizationSamples@ must +-- bound pipeline state, then the current @rasterizationSamples@ /must/ -- be the same as the sample count of the depth\/stencil attachment -- -- - #VUID-vkCmdDrawIndirectByteCountEXT-coverageToColorEnable-07490# If @@ -3875,7 +4423,7 @@ foreign import ccall -- states enabled, the current coverage reduction mode -- @coverageReductionMode@, then the current @rasterizationSamples@, -- and the sample counts for the color and depth\/stencil attachments --- (if the subpass has them) must be a valid combination returned by +-- (if the subpass has them) /must/ be a valid combination returned by -- 'Vulkan.Extensions.VK_NV_coverage_reduction_mode.getPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV' -- -- - #VUID-vkCmdDrawIndirectByteCountEXT-viewportCount-07492# If the @@ -3963,7 +4511,7 @@ foreign import ccall -- -- feature /must/ be enabled and -- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@strictLines@ --- must be VK_TRUE +-- /must/ be 'Vulkan.Core10.FundamentalTypes.TRUE' -- -- - #VUID-vkCmdDrawIndirectByteCountEXT-conservativePointAndLineRasterization-07499# -- If the bound graphics pipeline state was created with the @@ -3990,7 +4538,15 @@ foreign import ccall -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT', -- then -- --- must not be active +-- /must/ not be active +-- +-- - #VUID-vkCmdDrawIndirectByteCountEXT-None-08877# If the bound +-- graphics pipeline state was created with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT' +-- dynamic state +-- 'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT' +-- /must/ have been called in the current command buffer prior to this +-- drawing command -- -- - #VUID-vkCmdDrawIndirectByteCountEXT-None-07850# If dynamic state was -- inherited from @@ -4001,7 +4557,7 @@ foreign import ccall -- - #VUID-vkCmdDrawIndirectByteCountEXT-None-08684# If there is no bound -- graphics pipeline, -- 'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/ --- have been called on the current command buffer with @pStages@ with +-- have been called in the current command buffer with @pStages@ with -- an element of -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT' -- @@ -4010,7 +4566,7 @@ foreign import ccall -- -- feature is enabled, -- 'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/ --- have been called on the current command buffer with @pStages@ with +-- have been called in the current command buffer with @pStages@ with -- an element of -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT' -- @@ -4019,7 +4575,7 @@ foreign import ccall -- -- feature is enabled, -- 'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/ --- have been called on the current command buffer with @pStages@ with +-- have been called in the current command buffer with @pStages@ with -- an element of -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT' -- @@ -4028,14 +4584,14 @@ foreign import ccall -- -- feature is enabled, -- 'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/ --- have been called on the current command buffer with @pStages@ with +-- have been called in the current command buffer with @pStages@ with -- an element of -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT' -- -- - #VUID-vkCmdDrawIndirectByteCountEXT-None-08688# If there is no bound -- graphics pipeline, -- 'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/ --- have been called on the current command buffer with @pStages@ with +-- have been called in the current command buffer with @pStages@ with -- an element of -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' -- @@ -4044,7 +4600,7 @@ foreign import ccall -- -- feature is enabled, -- 'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/ --- have been called on the current command buffer with @pStages@ with +-- have been called in the current command buffer with @pStages@ with -- an element of -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT' -- @@ -4053,7 +4609,7 @@ foreign import ccall -- -- feature is enabled, -- 'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/ --- have been called on the current command buffer with @pStages@ with +-- have been called in the current command buffer with @pStages@ with -- an element of -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT' -- @@ -4065,8 +4621,8 @@ foreign import ccall -- features is enabled, one of the -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT' or -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT' --- stages must have a valid 'Vulkan.Extensions.Handles.ShaderEXT' --- bound, and the other must have no +-- stages /must/ have a valid 'Vulkan.Extensions.Handles.ShaderEXT' +-- bound, and the other /must/ have no -- 'Vulkan.Extensions.Handles.ShaderEXT' bound -- -- - #VUID-vkCmdDrawIndirectByteCountEXT-None-08694# If there is no bound @@ -4131,6 +4687,37 @@ foreign import ccall -- 'Vulkan.Extensions.VK_EXT_shader_object.createShadersEXT' call -- /must/ not have any 'Vulkan.Extensions.Handles.ShaderEXT' bound -- +-- - #VUID-vkCmdDrawIndirectByteCountEXT-None-08878# All bound graphics +-- shader objects /must/ have been created with identical or +-- identically defined push constant ranges +-- +-- - #VUID-vkCmdDrawIndirectByteCountEXT-None-08879# All bound graphics +-- shader objects /must/ have been created with identical or +-- identically defined arrays of descriptor set layouts +-- +-- - #VUID-vkCmdDrawIndirectByteCountEXT-colorAttachmentCount-09372# If +-- the current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' +-- and a +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ +-- equal to @1@, a color attachment with a resolve mode of +-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID', +-- and a fragment shader is bound, it /must/ not declare the +-- @DepthReplacing@ or @StencilRefReplacingEXT@ execution modes +-- +-- - #VUID-vkCmdDrawIndirectByteCountEXT-None-08880# If a shader object +-- is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage and the +-- +-- feature is enabled on the device, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE' +-- 'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT' +-- /must/ have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdDrawIndirectByteCountEXT-pDynamicStates-08715# If the -- bound graphics pipeline state includes a fragment shader stage, was -- created with @@ -4155,6 +4742,33 @@ foreign import ccall -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilWriteMask' /must/ -- be @0@ -- +-- - #VUID-vkCmdDrawIndirectByteCountEXT-None-09116# If a shader object +-- is bound to any graphics stage or the currently bound graphics +-- pipeline was created with +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_MASK_EXT', +-- and the format of any color attachment is +-- 'Vulkan.Core10.Enums.Format.FORMAT_E5B9G9R9_UFLOAT_PACK32', the +-- corresponding element of the @pColorWriteMasks@ parameter of +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorWriteMaskEXT' +-- /must/ either include all of +-- 'Vulkan.Core10.Enums.ColorComponentFlagBits.COLOR_COMPONENT_R_BIT', +-- 'Vulkan.Core10.Enums.ColorComponentFlagBits.COLOR_COMPONENT_G_BIT', +-- and +-- 'Vulkan.Core10.Enums.ColorComponentFlagBits.COLOR_COMPONENT_B_BIT', +-- or none of them +-- +-- - #VUID-vkCmdDrawIndirectByteCountEXT-maxFragmentDualSrcAttachments-09239# +-- If +-- +-- is enabled for any attachment where either the source or destination +-- blend factors for that attachment +-- , +-- the maximum value of @Location@ for any output attachment +-- +-- in the @Fragment@ @Execution@ @Model@ executed by this command +-- /must/ be less than +-- +-- -- - #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 @@ -4216,6 +4830,14 @@ foreign import ccall -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT' -- /must/ not be @NULL@ -- +-- - #VUID-vkCmdDrawIndirectByteCountEXT-None-08881# If a shader object +-- is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT' +-- stage, then +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology' +-- /must/ have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdDrawIndirectByteCountEXT-None-04914# If the bound -- graphics pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT' @@ -4232,6 +4854,53 @@ foreign import ccall -- @OpEntryPoint@ /must/ contain a location in -- 'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@location@ -- +-- - #VUID-vkCmdDrawIndirectByteCountEXT-Input-08734# If the bound +-- graphics pipeline state was created with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT' +-- dynamic state enabled, then the numeric type associated with all +-- @Input@ variables of the corresponding @Location@ in the @Vertex@ +-- @Execution@ @Model@ @OpEntryPoint@ /must/ be the same as +-- 'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@format@ +-- +-- - #VUID-vkCmdDrawIndirectByteCountEXT-format-08936# If there is a +-- shader object bound to a graphics stage or the currently bound +-- graphics pipeline was created with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT' +-- dynamic state enabled, and +-- 'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@format@ +-- has a 64-bit component, then the scalar width associated with all +-- @Input@ variables of the corresponding @Location@ in the @Vertex@ +-- @Execution@ @Model@ @OpEntryPoint@ /must/ be 64-bit +-- +-- - #VUID-vkCmdDrawIndirectByteCountEXT-format-08937# If there is a +-- shader object bound to a graphics stage or the currently bound +-- graphics pipeline was created with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT' +-- dynamic state enabled, and the scalar width associated with a +-- @Location@ decorated @Input@ variable in the @Vertex@ @Execution@ +-- @Model@ @OpEntryPoint@ is 64-bit, then the corresponding +-- 'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@format@ +-- /must/ have a 64-bit component +-- +-- - #VUID-vkCmdDrawIndirectByteCountEXT-None-09203# If there is a shader +-- object bound to a graphics stage or the currently bound graphics +-- pipeline was created with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT' +-- dynamic state enabled, and +-- 'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@format@ +-- has a 64-bit component, then all @Input@ variables at the +-- corresponding @Location@ in the @Vertex@ @Execution@ @Model@ +-- @OpEntryPoint@ /must/ not use components that are not present in the +-- format +-- +-- - #VUID-vkCmdDrawIndirectByteCountEXT-None-08882# If a shader object +-- is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT' +-- stage, then +-- 'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT' +-- /must/ have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdDrawIndirectByteCountEXT-None-04875# If the bound -- graphics pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT' @@ -4240,6 +4909,14 @@ foreign import ccall -- /must/ have been called in the current command buffer prior to this -- drawing command -- +-- - #VUID-vkCmdDrawIndirectByteCountEXT-None-08883# If a shader object +-- is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT' +-- stage, 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-04879# If the bound -- graphics pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE' @@ -4248,6 +4925,16 @@ foreign import ccall -- /must/ have been called in the current command buffer prior to this -- drawing command -- +-- - #VUID-vkCmdDrawIndirectByteCountEXT-rasterizerDiscardEnable-08884# +-- If a shader object is bound to any graphics stage, and the most +-- recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetPrimitiveRestartEnable' +-- /must/ have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdDrawIndirectByteCountEXT-stage-06481# The bound graphics -- pipeline /must/ not have been created with the -- 'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo'::@stage@ @@ -4258,6 +4945,13 @@ foreign import ccall -- or -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT' -- +-- - #VUID-vkCmdDrawIndirectByteCountEXT-None-08885# There /must/ be no +-- shader object bound to either of the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT' +-- or +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT' +-- stages +-- -- - #VUID-vkCmdDrawIndirectByteCountEXT-transformFeedback-02287# -- 'PhysicalDeviceTransformFeedbackFeaturesEXT'::@transformFeedback@ -- /must/ be enabled diff --git a/src/Vulkan/Extensions/VK_EXT_transform_feedback.hs-boot b/src/Vulkan/Extensions/VK_EXT_transform_feedback.hs-boot index ef5433e1e..a45d75e34 100644 --- a/src/Vulkan/Extensions/VK_EXT_transform_feedback.hs-boot +++ b/src/Vulkan/Extensions/VK_EXT_transform_feedback.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- diff --git a/src/Vulkan/Extensions/VK_EXT_validation_cache.hs b/src/Vulkan/Extensions/VK_EXT_validation_cache.hs index b7fe6347a..724f8f581 100644 --- a/src/Vulkan/Extensions/VK_EXT_validation_cache.hs +++ b/src/Vulkan/Extensions/VK_EXT_validation_cache.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__; __Contact__] -- -- - Cort Stratton diff --git a/src/Vulkan/Extensions/VK_EXT_validation_cache.hs-boot b/src/Vulkan/Extensions/VK_EXT_validation_cache.hs-boot index 7d3ade175..5d0b3c68f 100644 --- a/src/Vulkan/Extensions/VK_EXT_validation_cache.hs-boot +++ b/src/Vulkan/Extensions/VK_EXT_validation_cache.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__; __Contact__] -- -- - Cort Stratton diff --git a/src/Vulkan/Extensions/VK_EXT_validation_features.hs b/src/Vulkan/Extensions/VK_EXT_validation_features.hs index 7f0f2ff0b..28e3a953f 100644 --- a/src/Vulkan/Extensions/VK_EXT_validation_features.hs +++ b/src/Vulkan/Extensions/VK_EXT_validation_features.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 5 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__; __Special Use__] -- -- - diff --git a/src/Vulkan/Extensions/VK_EXT_validation_features.hs-boot b/src/Vulkan/Extensions/VK_EXT_validation_features.hs-boot index 452fff0d1..bf3e78156 100644 --- a/src/Vulkan/Extensions/VK_EXT_validation_features.hs-boot +++ b/src/Vulkan/Extensions/VK_EXT_validation_features.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 5 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__; __Special Use__] -- -- - diff --git a/src/Vulkan/Extensions/VK_EXT_validation_flags.hs b/src/Vulkan/Extensions/VK_EXT_validation_flags.hs index 90aa3c551..50ddbb6b8 100644 --- a/src/Vulkan/Extensions/VK_EXT_validation_flags.hs +++ b/src/Vulkan/Extensions/VK_EXT_validation_flags.hs @@ -17,7 +17,10 @@ -- [__Revision__] -- 2 -- --- [__Extension and Version Dependencies__; __Deprecation state__] +-- [__Ratification Status__] +-- Not ratified +-- +-- [__Extension and Version Dependencies__; __Deprecation State__] -- -- - /Deprecated/ by @VK_EXT_validation_features@ extension -- diff --git a/src/Vulkan/Extensions/VK_EXT_validation_flags.hs-boot b/src/Vulkan/Extensions/VK_EXT_validation_flags.hs-boot index ffae6f53f..ce92914ef 100644 --- a/src/Vulkan/Extensions/VK_EXT_validation_flags.hs-boot +++ b/src/Vulkan/Extensions/VK_EXT_validation_flags.hs-boot @@ -17,7 +17,10 @@ -- [__Revision__] -- 2 -- --- [__Extension and Version Dependencies__; __Deprecation state__] +-- [__Ratification Status__] +-- Not ratified +-- +-- [__Extension and Version Dependencies__; __Deprecation State__] -- -- - /Deprecated/ by @VK_EXT_validation_features@ extension -- diff --git a/src/Vulkan/Extensions/VK_EXT_vertex_attribute_divisor.hs b/src/Vulkan/Extensions/VK_EXT_vertex_attribute_divisor.hs index ebc73f29e..2f25e3a94 100644 --- a/src/Vulkan/Extensions/VK_EXT_vertex_attribute_divisor.hs +++ b/src/Vulkan/Extensions/VK_EXT_vertex_attribute_divisor.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 3 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- or @@ -102,29 +105,29 @@ -- -- > const VkVertexInputBindingDivisorDescriptionEXT divisorDesc = -- > { --- > 0, --- > 4 +-- > .binding = 0, +-- > .divisor = 4 -- > }; -- > -- > const VkPipelineVertexInputDivisorStateCreateInfoEXT divisorInfo = -- > { --- > VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT, // sType --- > NULL, // pNext --- > 1, // vertexBindingDivisorCount --- > &divisorDesc // pVertexBindingDivisors +-- > .sType = VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT, +-- > .pNext = NULL, +-- > .vertexBindingDivisorCount = 1, +-- > .pVertexBindingDivisors = &divisorDesc -- > } -- > -- > const VkVertexInputBindingDescription binding = -- > { --- > 0, // binding --- > sizeof(Vertex), // stride --- > VK_VERTEX_INPUT_RATE_INSTANCE // inputRate +-- > .binding = 0, +-- > .stride = sizeof(Vertex), +-- > .inputRate = VK_VERTEX_INPUT_RATE_INSTANCE -- > }; -- > -- > const VkPipelineVertexInputStateCreateInfo viInfo = -- > { --- > VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_CREATE_INFO, // sType --- > &divisorInfo, // pNext +-- > .sType = VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_CREATE_INFO, +-- > .pNext = &divisorInfo, -- > ... -- > }; -- > //... diff --git a/src/Vulkan/Extensions/VK_EXT_vertex_attribute_divisor.hs-boot b/src/Vulkan/Extensions/VK_EXT_vertex_attribute_divisor.hs-boot index 7d14b148a..2b5fe8270 100644 --- a/src/Vulkan/Extensions/VK_EXT_vertex_attribute_divisor.hs-boot +++ b/src/Vulkan/Extensions/VK_EXT_vertex_attribute_divisor.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 3 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- or @@ -102,29 +105,29 @@ -- -- > const VkVertexInputBindingDivisorDescriptionEXT divisorDesc = -- > { --- > 0, --- > 4 +-- > .binding = 0, +-- > .divisor = 4 -- > }; -- > -- > const VkPipelineVertexInputDivisorStateCreateInfoEXT divisorInfo = -- > { --- > VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT, // sType --- > NULL, // pNext --- > 1, // vertexBindingDivisorCount --- > &divisorDesc // pVertexBindingDivisors +-- > .sType = VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT, +-- > .pNext = NULL, +-- > .vertexBindingDivisorCount = 1, +-- > .pVertexBindingDivisors = &divisorDesc -- > } -- > -- > const VkVertexInputBindingDescription binding = -- > { --- > 0, // binding --- > sizeof(Vertex), // stride --- > VK_VERTEX_INPUT_RATE_INSTANCE // inputRate +-- > .binding = 0, +-- > .stride = sizeof(Vertex), +-- > .inputRate = VK_VERTEX_INPUT_RATE_INSTANCE -- > }; -- > -- > const VkPipelineVertexInputStateCreateInfo viInfo = -- > { --- > VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_CREATE_INFO, // sType --- > &divisorInfo, // pNext +-- > .sType = VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_CREATE_INFO, +-- > .pNext = &divisorInfo, -- > ... -- > }; -- > //... diff --git a/src/Vulkan/Extensions/VK_EXT_vertex_input_dynamic_state.hs b/src/Vulkan/Extensions/VK_EXT_vertex_input_dynamic_state.hs index 5517ef7b9..48b0fa1ef 100644 --- a/src/Vulkan/Extensions/VK_EXT_vertex_input_dynamic_state.hs +++ b/src/Vulkan/Extensions/VK_EXT_vertex_input_dynamic_state.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 2 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- or diff --git a/src/Vulkan/Extensions/VK_EXT_vertex_input_dynamic_state.hs-boot b/src/Vulkan/Extensions/VK_EXT_vertex_input_dynamic_state.hs-boot index d6ecd5649..024ae230f 100644 --- a/src/Vulkan/Extensions/VK_EXT_vertex_input_dynamic_state.hs-boot +++ b/src/Vulkan/Extensions/VK_EXT_vertex_input_dynamic_state.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 2 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- or diff --git a/src/Vulkan/Extensions/VK_EXT_ycbcr_2plane_444_formats.hs b/src/Vulkan/Extensions/VK_EXT_ycbcr_2plane_444_formats.hs index e736833be..3b56aa17f 100644 --- a/src/Vulkan/Extensions/VK_EXT_ycbcr_2plane_444_formats.hs +++ b/src/Vulkan/Extensions/VK_EXT_ycbcr_2plane_444_formats.hs @@ -17,12 +17,15 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- or -- -- --- [__Deprecation state__] +-- [__Deprecation State__] -- -- - /Promoted/ to -- diff --git a/src/Vulkan/Extensions/VK_EXT_ycbcr_2plane_444_formats.hs-boot b/src/Vulkan/Extensions/VK_EXT_ycbcr_2plane_444_formats.hs-boot index 0d4fb0a36..835ce520f 100644 --- a/src/Vulkan/Extensions/VK_EXT_ycbcr_2plane_444_formats.hs-boot +++ b/src/Vulkan/Extensions/VK_EXT_ycbcr_2plane_444_formats.hs-boot @@ -17,12 +17,15 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- or -- -- --- [__Deprecation state__] +-- [__Deprecation State__] -- -- - /Promoted/ to -- diff --git a/src/Vulkan/Extensions/VK_EXT_ycbcr_image_arrays.hs b/src/Vulkan/Extensions/VK_EXT_ycbcr_image_arrays.hs index cb238ca60..1cd8f48bc 100644 --- a/src/Vulkan/Extensions/VK_EXT_ycbcr_image_arrays.hs +++ b/src/Vulkan/Extensions/VK_EXT_ycbcr_image_arrays.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- or diff --git a/src/Vulkan/Extensions/VK_EXT_ycbcr_image_arrays.hs-boot b/src/Vulkan/Extensions/VK_EXT_ycbcr_image_arrays.hs-boot index 95503ac88..bca6ee762 100644 --- a/src/Vulkan/Extensions/VK_EXT_ycbcr_image_arrays.hs-boot +++ b/src/Vulkan/Extensions/VK_EXT_ycbcr_image_arrays.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- or diff --git a/src/Vulkan/Extensions/VK_FUCHSIA_buffer_collection.hs b/src/Vulkan/Extensions/VK_FUCHSIA_buffer_collection.hs index 05538acbd..f36a2f56c 100644 --- a/src/Vulkan/Extensions/VK_FUCHSIA_buffer_collection.hs +++ b/src/Vulkan/Extensions/VK_FUCHSIA_buffer_collection.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 2 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- and @@ -123,11 +126,6 @@ -- -- - 'FUCHSIA_BUFFER_COLLECTION_SPEC_VERSION' -- --- - Extending --- 'Vulkan.Extensions.VK_EXT_debug_report.DebugReportObjectTypeEXT': --- --- - 'Vulkan.Extensions.VK_EXT_debug_report.DEBUG_REPORT_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA_EXT' --- -- - Extending 'Vulkan.Core10.Enums.ObjectType.ObjectType': -- -- - 'Vulkan.Core10.Enums.ObjectType.OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA' @@ -154,6 +152,15 @@ -- -- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_SYSMEM_COLOR_SPACE_FUCHSIA' -- +-- If +-- +-- is supported: +-- +-- - Extending +-- 'Vulkan.Extensions.VK_EXT_debug_report.DebugReportObjectTypeEXT': +-- +-- - 'Vulkan.Extensions.VK_EXT_debug_report.DEBUG_REPORT_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA_EXT' +-- -- == Issues -- -- 1) When configuring a 'ImageConstraintsInfoFUCHSIA' structure for diff --git a/src/Vulkan/Extensions/VK_FUCHSIA_buffer_collection.hs-boot b/src/Vulkan/Extensions/VK_FUCHSIA_buffer_collection.hs-boot index 53b2d48b7..1b949281e 100644 --- a/src/Vulkan/Extensions/VK_FUCHSIA_buffer_collection.hs-boot +++ b/src/Vulkan/Extensions/VK_FUCHSIA_buffer_collection.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 2 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- and @@ -123,11 +126,6 @@ -- -- - 'FUCHSIA_BUFFER_COLLECTION_SPEC_VERSION' -- --- - Extending --- 'Vulkan.Extensions.VK_EXT_debug_report.DebugReportObjectTypeEXT': --- --- - 'Vulkan.Extensions.VK_EXT_debug_report.DEBUG_REPORT_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA_EXT' --- -- - Extending 'Vulkan.Core10.Enums.ObjectType.ObjectType': -- -- - 'Vulkan.Core10.Enums.ObjectType.OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA' @@ -154,6 +152,15 @@ -- -- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_SYSMEM_COLOR_SPACE_FUCHSIA' -- +-- If +-- +-- is supported: +-- +-- - Extending +-- 'Vulkan.Extensions.VK_EXT_debug_report.DebugReportObjectTypeEXT': +-- +-- - 'Vulkan.Extensions.VK_EXT_debug_report.DEBUG_REPORT_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA_EXT' +-- -- == Issues -- -- 1) When configuring a 'ImageConstraintsInfoFUCHSIA' structure for diff --git a/src/Vulkan/Extensions/VK_FUCHSIA_external_memory.hs b/src/Vulkan/Extensions/VK_FUCHSIA_external_memory.hs index 6458a4292..4bbcad856 100644 --- a/src/Vulkan/Extensions/VK_FUCHSIA_external_memory.hs +++ b/src/Vulkan/Extensions/VK_FUCHSIA_external_memory.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- and diff --git a/src/Vulkan/Extensions/VK_FUCHSIA_external_memory.hs-boot b/src/Vulkan/Extensions/VK_FUCHSIA_external_memory.hs-boot index 63edca324..b38710635 100644 --- a/src/Vulkan/Extensions/VK_FUCHSIA_external_memory.hs-boot +++ b/src/Vulkan/Extensions/VK_FUCHSIA_external_memory.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- and diff --git a/src/Vulkan/Extensions/VK_FUCHSIA_external_semaphore.hs b/src/Vulkan/Extensions/VK_FUCHSIA_external_semaphore.hs index 576a6bdb6..5a0b7c98f 100644 --- a/src/Vulkan/Extensions/VK_FUCHSIA_external_semaphore.hs +++ b/src/Vulkan/Extensions/VK_FUCHSIA_external_semaphore.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- and diff --git a/src/Vulkan/Extensions/VK_FUCHSIA_external_semaphore.hs-boot b/src/Vulkan/Extensions/VK_FUCHSIA_external_semaphore.hs-boot index 0a2bb2804..47abd50a9 100644 --- a/src/Vulkan/Extensions/VK_FUCHSIA_external_semaphore.hs-boot +++ b/src/Vulkan/Extensions/VK_FUCHSIA_external_semaphore.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- and diff --git a/src/Vulkan/Extensions/VK_FUCHSIA_imagepipe_surface.hs b/src/Vulkan/Extensions/VK_FUCHSIA_imagepipe_surface.hs index ba380f034..b7e69dd68 100644 --- a/src/Vulkan/Extensions/VK_FUCHSIA_imagepipe_surface.hs +++ b/src/Vulkan/Extensions/VK_FUCHSIA_imagepipe_surface.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- diff --git a/src/Vulkan/Extensions/VK_FUCHSIA_imagepipe_surface.hs-boot b/src/Vulkan/Extensions/VK_FUCHSIA_imagepipe_surface.hs-boot index 65af2cfa7..145c1cba9 100644 --- a/src/Vulkan/Extensions/VK_FUCHSIA_imagepipe_surface.hs-boot +++ b/src/Vulkan/Extensions/VK_FUCHSIA_imagepipe_surface.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- diff --git a/src/Vulkan/Extensions/VK_GGP_frame_token.hs b/src/Vulkan/Extensions/VK_GGP_frame_token.hs index 9565e4767..e1898ac67 100644 --- a/src/Vulkan/Extensions/VK_GGP_frame_token.hs +++ b/src/Vulkan/Extensions/VK_GGP_frame_token.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- and diff --git a/src/Vulkan/Extensions/VK_GGP_frame_token.hs-boot b/src/Vulkan/Extensions/VK_GGP_frame_token.hs-boot index 7f7d6953a..4feeb42ce 100644 --- a/src/Vulkan/Extensions/VK_GGP_frame_token.hs-boot +++ b/src/Vulkan/Extensions/VK_GGP_frame_token.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- and diff --git a/src/Vulkan/Extensions/VK_GGP_stream_descriptor_surface.hs b/src/Vulkan/Extensions/VK_GGP_stream_descriptor_surface.hs index c1ce68e86..89de63b2c 100644 --- a/src/Vulkan/Extensions/VK_GGP_stream_descriptor_surface.hs +++ b/src/Vulkan/Extensions/VK_GGP_stream_descriptor_surface.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- diff --git a/src/Vulkan/Extensions/VK_GGP_stream_descriptor_surface.hs-boot b/src/Vulkan/Extensions/VK_GGP_stream_descriptor_surface.hs-boot index 0a0f3e76b..34cdb70ee 100644 --- a/src/Vulkan/Extensions/VK_GGP_stream_descriptor_surface.hs-boot +++ b/src/Vulkan/Extensions/VK_GGP_stream_descriptor_surface.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- diff --git a/src/Vulkan/Extensions/VK_GOOGLE_decorate_string.hs b/src/Vulkan/Extensions/VK_GOOGLE_decorate_string.hs index 3145d2fdc..9b248aa1f 100644 --- a/src/Vulkan/Extensions/VK_GOOGLE_decorate_string.hs +++ b/src/Vulkan/Extensions/VK_GOOGLE_decorate_string.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__; __Contact__] -- -- - Hai Nguyen diff --git a/src/Vulkan/Extensions/VK_GOOGLE_display_timing.hs b/src/Vulkan/Extensions/VK_GOOGLE_display_timing.hs index 8dc4b917a..64e827ab6 100644 --- a/src/Vulkan/Extensions/VK_GOOGLE_display_timing.hs +++ b/src/Vulkan/Extensions/VK_GOOGLE_display_timing.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- diff --git a/src/Vulkan/Extensions/VK_GOOGLE_display_timing.hs-boot b/src/Vulkan/Extensions/VK_GOOGLE_display_timing.hs-boot index 53a9a7ec7..f614bf8d3 100644 --- a/src/Vulkan/Extensions/VK_GOOGLE_display_timing.hs-boot +++ b/src/Vulkan/Extensions/VK_GOOGLE_display_timing.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- diff --git a/src/Vulkan/Extensions/VK_GOOGLE_hlsl_functionality1.hs b/src/Vulkan/Extensions/VK_GOOGLE_hlsl_functionality1.hs index 1ae155c95..1db255e73 100644 --- a/src/Vulkan/Extensions/VK_GOOGLE_hlsl_functionality1.hs +++ b/src/Vulkan/Extensions/VK_GOOGLE_hlsl_functionality1.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__; __Contact__] -- -- - Hai Nguyen diff --git a/src/Vulkan/Extensions/VK_GOOGLE_surfaceless_query.hs b/src/Vulkan/Extensions/VK_GOOGLE_surfaceless_query.hs index 8be5c242e..6108a7768 100644 --- a/src/Vulkan/Extensions/VK_GOOGLE_surfaceless_query.hs +++ b/src/Vulkan/Extensions/VK_GOOGLE_surfaceless_query.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 2 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- @@ -55,8 +58,9 @@ -- and -- 'Vulkan.Extensions.VK_KHR_surface.getPhysicalDeviceSurfacePresentModesKHR' -- functions to accept 'Vulkan.Core10.APIConstants.NULL_HANDLE' as their --- @surface@ parameter, allowing potential surface formats, colorspaces and --- present modes to be queried without providing a surface. Identically, +-- @surface@ parameter, allowing potential surface formats, color spaces +-- and present modes to be queried without providing a surface. +-- Identically, -- 'Vulkan.Extensions.VK_KHR_get_surface_capabilities2.getPhysicalDeviceSurfaceFormats2KHR', -- 'Vulkan.Extensions.VK_EXT_full_screen_exclusive.getPhysicalDeviceSurfacePresentModes2EXT', -- and diff --git a/src/Vulkan/Extensions/VK_GOOGLE_user_type.hs b/src/Vulkan/Extensions/VK_GOOGLE_user_type.hs index 399ec0243..3870325d0 100644 --- a/src/Vulkan/Extensions/VK_GOOGLE_user_type.hs +++ b/src/Vulkan/Extensions/VK_GOOGLE_user_type.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__; __Contact__] -- -- - Kaye Mason diff --git a/src/Vulkan/Extensions/VK_HUAWEI_cluster_culling_shader.hs b/src/Vulkan/Extensions/VK_HUAWEI_cluster_culling_shader.hs index 40cc6c534..e7b40862b 100644 --- a/src/Vulkan/Extensions/VK_HUAWEI_cluster_culling_shader.hs +++ b/src/Vulkan/Extensions/VK_HUAWEI_cluster_culling_shader.hs @@ -15,7 +15,10 @@ -- 405 -- -- [__Revision__] --- 1 +-- 2 +-- +-- [__Ratification Status__] +-- Not ratified -- -- [__Extension and Version Dependencies__] -- @@ -63,29 +66,29 @@ -- -- == Description -- --- Cluster Culling Shader(CCS) is similar to the existing compute shader; --- its main purpose is to provide an execution environment in order to --- perform coarse-level geometry culling and level-of-detail selection more --- efficiently on GPU. --- --- The traditional 2-pass GPU culling solution using compute shader needs a --- pipeline barrier between compute pipeline and graphics pipeline, --- sometimes, in order to optimize performance, an additional compaction --- process may also be required. this extension improve the above mentioned --- shortcomings which can allow compute shader directly emit visible --- clusters to following graphics pipeline. --- --- A set of new built-in output variables are used to express visible --- cluster, in addition, a new built-in function is used to emit these --- variables from CCS to IA stage, then IA can use these variables to --- fetches vertices of visible cluster and drive vertex shader to shading --- these vertices. Note that ccs do not work at the same time with geometry --- shader or tessellation shader. --- --- As stated above, both IA and vertex shader are preserved, vertex shader --- still used for vertices position shading, instead of directly outputting --- a set of transformed vertices from compute shader, this makes CCS more --- suitable for mobile GPUs. +-- Cluster Culling Shaders (CCS) are similar to the existing compute +-- shaders. Their main purpose is to provide an execution environment in +-- order to perform coarse-level geometry culling and LOD selection more +-- efficiently on the GPU. +-- +-- The traditional 2-pass GPU culling solution using a compute shader +-- sometimes needs a pipeline barrier between compute and graphics pipeline +-- to optimize performance. An additional compaction process may also be +-- required. This extension addresses these shortcomings, allowing compute +-- shaders to directly emit visible clusters to the following graphics +-- pipeline. +-- +-- A set of new built-in output variables are used to express a visible +-- cluster. In addition, a new built-in function is used to emit these +-- variables from CCS to the IA stage. The IA stage can use these variables +-- to fetches vertices of a visible cluster and drive vertex shaders to +-- shading these vertices. +-- +-- Note that CCS do not work with geometry or tessellation shaders, but +-- both IA and vertex shaders are preserved. Vertex shaders are still used +-- for vertex position shading, instead of directly outputting transformed +-- vertices from the compute shader. This makes CCS more suitable for +-- mobile GPUs. -- -- == New Commands -- @@ -155,7 +158,7 @@ -- -- - -- --- == Sample code +-- == Sample Code -- -- Example of cluster culling in a GLSL shader -- @@ -349,6 +352,10 @@ -- -- - Internal revisions -- +-- - Revision 2, 2023-04-02 (Jon Leech) +-- +-- - Grammar edits. +-- -- == See Also -- -- 'PhysicalDeviceClusterCullingShaderFeaturesHUAWEI', @@ -431,8 +438,9 @@ foreign import ccall -- -- When the command is executed,a global workgroup consisting of -- groupCountX*groupCountY*groupCountZ local workgroup is assembled. Note --- the cluster culling shader pipeline only accepts 'cmdDrawClusterHUAWEI' --- and 'cmdDrawClusterIndirectHUAWEI' as drawing commands. +-- that the cluster culling shader pipeline only accepts +-- 'cmdDrawClusterHUAWEI' and 'cmdDrawClusterIndirectHUAWEI' as drawing +-- commands. -- -- == Valid Usage -- @@ -487,6 +495,16 @@ foreign import ccall -- /must/ contain -- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT' -- +-- - #VUID-vkCmdDrawClusterHUAWEI-None-02693# If the +-- +-- extension is not enabled and any 'Vulkan.Core10.Handles.ImageView' +-- is sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a +-- result of this command, it /must/ not have a +-- 'Vulkan.Core10.Enums.ImageViewType.ImageViewType' of +-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_3D', +-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE', or +-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE_ARRAY' +-- -- - #VUID-vkCmdDrawClusterHUAWEI-filterCubic-02694# Any -- 'Vulkan.Core10.Handles.ImageView' being sampled with -- 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a result of this @@ -512,6 +530,33 @@ foreign import ccall -- returned by -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceImageFormatProperties2' -- +-- - #VUID-vkCmdDrawClusterHUAWEI-cubicRangeClamp-09212# If the +-- +-- feature is not enabled, then any 'Vulkan.Core10.Handles.ImageView' +-- being sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as +-- a result of this command +-- +-- [/must/ not have a 'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo'] +-- @reductionMode@ equal to +-- 'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM' +-- +-- - #VUID-vkCmdDrawClusterHUAWEI-reductionMode-09213# Any +-- 'Vulkan.Core10.Handles.ImageView' being sampled with a +-- 'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo'::@reductionMode@ +-- equal to +-- 'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM' +-- as a result of this command /must/ sample with +-- 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' +-- +-- - #VUID-vkCmdDrawClusterHUAWEI-selectableCubicWeights-09214# If the +-- +-- feature is not enabled, then any 'Vulkan.Core10.Handles.ImageView' +-- being sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as +-- a result of this command /must/ have +-- 'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.SamplerCubicWeightsCreateInfoQCOM'::@cubicWeights@ +-- equal to +-- 'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM' +-- -- - #VUID-vkCmdDrawClusterHUAWEI-flags-02696# Any -- 'Vulkan.Core10.Handles.Image' created with a -- 'Vulkan.Core10.Image.ImageCreateInfo'::@flags@ containing @@ -553,11 +598,9 @@ foreign import ccall -- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT' -- -- - #VUID-vkCmdDrawClusterHUAWEI-None-08600# For each set /n/ that is --- statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to the --- pipeline bind point used by this command, or by any of the --- 'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages --- corresponding to the pipeline bind point used by this command, a --- descriptor set /must/ have been bound to /n/ at the same pipeline +-- statically used by +-- , +-- a descriptor set /must/ have been bound to /n/ at the same pipeline -- bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is -- compatible for set /n/, with the -- 'Vulkan.Core10.Handles.PipelineLayout' or @@ -567,12 +610,10 @@ foreign import ccall -- -- -- - #VUID-vkCmdDrawClusterHUAWEI-None-08601# For each push constant that --- is statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to --- the pipeline bind point used by this command, or by any of the --- 'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages --- corresponding to the pipeline bind point used by this command, a --- push constant value /must/ have been set for the same pipeline bind --- point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is +-- is statically used by +-- , +-- a push constant value /must/ have been set for the same pipeline +-- bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is -- compatible for push constants, with the -- 'Vulkan.Core10.Handles.PipelineLayout' or -- 'Vulkan.Core10.Handles.DescriptorSetLayout' and @@ -584,12 +625,10 @@ foreign import ccall -- - #VUID-vkCmdDrawClusterHUAWEI-maintenance4-08602# If the -- -- feature is not enabled, then for each push constant that is --- statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to the --- pipeline bind point used by this command, or by any of the --- 'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages --- corresponding to the pipeline bind point used by this command, a --- push constant value /must/ have been set for the same pipeline bind --- point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is +-- statically used by +-- , +-- a push constant value /must/ have been set for the same pipeline +-- bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is -- compatible for push constants, with the -- 'Vulkan.Core10.Handles.PipelineLayout' or -- 'Vulkan.Core10.Handles.DescriptorSetLayout' and @@ -752,34 +791,25 @@ foreign import ccall -- buffer as specified in the descriptor set bound to the same pipeline -- bind point -- --- - #VUID-vkCmdDrawClusterHUAWEI-commandBuffer-08614# If @commandBuffer@ +-- - #VUID-vkCmdDrawClusterHUAWEI-commandBuffer-02707# If @commandBuffer@ -- is an unprotected command buffer and -- --- is not supported, any resource accessed by the --- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind --- point used by this command or any --- 'Vulkan.Extensions.Handles.ShaderEXT' object bound to a stage --- corresponding to the pipeline bind point used by this command /must/ --- not be a protected resource --- --- - #VUID-vkCmdDrawClusterHUAWEI-None-08615# If the --- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind --- point used by this command or any --- 'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding --- to the pipeline bind point used by this command accesses a --- 'Vulkan.Core10.Handles.Sampler' or 'Vulkan.Core10.Handles.ImageView' --- object that enables +-- is not supported, any resource accessed by +-- +-- /must/ not be a protected resource +-- +-- - #VUID-vkCmdDrawClusterHUAWEI-None-06550# If +-- +-- accesses a 'Vulkan.Core10.Handles.Sampler' or +-- 'Vulkan.Core10.Handles.ImageView' object that enables -- , -- that object /must/ only be used with @OpImageSample*@ or -- @OpImageSparseSample*@ instructions -- --- - #VUID-vkCmdDrawClusterHUAWEI-ConstOffset-08616# If the --- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind --- point used by this command or any --- 'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding --- to the pipeline bind point used by this command accesses a --- 'Vulkan.Core10.Handles.Sampler' or 'Vulkan.Core10.Handles.ImageView' --- object that enables +-- - #VUID-vkCmdDrawClusterHUAWEI-ConstOffset-06551# If +-- +-- accesses a 'Vulkan.Core10.Handles.Sampler' or +-- 'Vulkan.Core10.Handles.ImageView' object that enables -- , -- that object /must/ not use the @ConstOffset@ and @Offset@ operands -- @@ -791,17 +821,23 @@ foreign import ccall -- -- - #VUID-vkCmdDrawClusterHUAWEI-format-07753# If a -- 'Vulkan.Core10.Handles.ImageView' is accessed as a result of this --- command, then the image view’s @format@ /must/ match the numeric --- format from the @Sampled@ @Type@ operand of the @OpTypeImage@ as --- described in the SPIR-V Sampled Type column of the --- --- table --- --- - #VUID-vkCmdDrawClusterHUAWEI-None-04115# If a --- 'Vulkan.Core10.Handles.ImageView' is accessed using @OpImageWrite@ --- as a result of this command, then the @Type@ of the @Texel@ operand --- of that instruction /must/ have at least as many components as the --- image view’s format +-- command, then the +-- +-- of the image view’s @format@ and the @Sampled@ @Type@ operand of the +-- @OpTypeImage@ /must/ match +-- +-- - #VUID-vkCmdDrawClusterHUAWEI-OpImageWrite-08795# If a +-- 'Vulkan.Core10.Handles.ImageView' created with a format other than +-- 'Vulkan.Core10.Enums.Format.FORMAT_A8_UNORM_KHR' is accessed using +-- @OpImageWrite@ as a result of this command, then the @Type@ of the +-- @Texel@ operand of that instruction /must/ have at least as many +-- components as the image view’s format +-- +-- - #VUID-vkCmdDrawClusterHUAWEI-OpImageWrite-08796# If a +-- 'Vulkan.Core10.Handles.ImageView' created with the format +-- 'Vulkan.Core10.Enums.Format.FORMAT_A8_UNORM_KHR' is accessed using +-- @OpImageWrite@ as a result of this command, then the @Type@ of the +-- @Texel@ operand of that instruction /must/ have four components -- -- - #VUID-vkCmdDrawClusterHUAWEI-OpImageWrite-04469# If a -- 'Vulkan.Core10.Handles.BufferView' is accessed using @OpImageWrite@ @@ -903,6 +939,8 @@ foreign import ccall -- -- - #VUID-vkCmdDrawClusterHUAWEI-OpImageWeightedSampleQCOM-06977# If -- @OpImageWeightedSampleQCOM@, @OpImageBoxFilterQCOM@, +-- @OpImageBlockMatchWindowSSDQCOM@, @OpImageBlockMatchWindowSADQCOM@, +-- @OpImageBlockMatchGatherSSDQCOM@, @OpImageBlockMatchGatherSADQCOM@, -- @OpImageBlockMatchSSDQCOM@, or @OpImageBlockMatchSADQCOM@ uses a -- 'Vulkan.Core10.Handles.Sampler' as a result of this command, then -- the sampler /must/ have been created with @@ -910,12 +948,35 @@ foreign import ccall -- -- - #VUID-vkCmdDrawClusterHUAWEI-OpImageWeightedSampleQCOM-06978# If any -- command other than @OpImageWeightedSampleQCOM@, --- @OpImageBoxFilterQCOM@, @OpImageBlockMatchSSDQCOM@, or +-- @OpImageBoxFilterQCOM@, @OpImageBlockMatchWindowSSDQCOM@, +-- @OpImageBlockMatchWindowSADQCOM@, @OpImageBlockMatchGatherSSDQCOM@, +-- @OpImageBlockMatchGatherSADQCOM@, @OpImageBlockMatchSSDQCOM@, or -- @OpImageBlockMatchSADQCOM@ uses a 'Vulkan.Core10.Handles.Sampler' as -- a result of this command, then the sampler /must/ not have been -- created with -- 'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM' -- +-- - #VUID-vkCmdDrawClusterHUAWEI-OpImageBlockMatchWindow-09215# If a +-- @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@ +-- instruction is used to read from an +-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then +-- the image view’s +-- +-- /must/ contain +-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM' +-- +-- - #VUID-vkCmdDrawClusterHUAWEI-OpImageBlockMatchWindow-09216# If a +-- @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@ +-- instruction is used to read from an +-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then +-- the image view’s format /must/ be a single-component format. +-- +-- - #VUID-vkCmdDrawClusterHUAWEI-OpImageBlockMatchWindow-09217# If a +-- @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@ +-- read from a reference image as result of this command, then the +-- specified reference coordinates /must/ not fail +-- +-- -- - #VUID-vkCmdDrawClusterHUAWEI-None-07288# Any shader invocation -- executed by this command /must/ -- @@ -960,15 +1021,86 @@ foreign import ccall -- not be written in any way other than as an attachment by this -- command -- --- - #VUID-vkCmdDrawClusterHUAWEI-None-06538# If any recorded command in --- the current subpass will write to an image subresource as an --- attachment, this command /must/ not read from the memory backing --- that image subresource in any other way than as an attachment --- --- - #VUID-vkCmdDrawClusterHUAWEI-None-06539# If any recorded command in --- the current subpass will read from an image subresource used as an --- attachment in any way other than as an attachment, this command --- /must/ not write to that image subresource as an attachment +-- - #VUID-vkCmdDrawClusterHUAWEI-None-09000# If a color attachment is +-- written by any prior command in this subpass or by the load, store, +-- or resolve operations for this subpass, it is not in the +-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT' +-- image layout, and either: +-- +-- - the +-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT' +-- is set on the currently bound pipeline or +-- +-- - the last call to +-- 'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT' +-- included +-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT' +-- and +-- +-- - there is no currently bound graphics pipeline or +-- +-- - the currently bound graphics pipeline was created with +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT' +-- it /must/ not be accessed in any way other than as an +-- attachment by this command +-- +-- - #VUID-vkCmdDrawClusterHUAWEI-None-09001# If a depth attachment is +-- written by any prior command in this subpass or by the load, store, +-- or resolve operations for this subpass, it is not in the +-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT' +-- image layout, and either: +-- +-- - the +-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT' +-- is set on the currently bound pipeline or +-- +-- - the last call to +-- 'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT' +-- included +-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_DEPTH_BIT' +-- and +-- +-- - there is no currently bound graphics pipeline or +-- +-- - the currently bound graphics pipeline was created with +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT' +-- it /must/ not be accessed in any way other than as an +-- attachment by this command +-- +-- - #VUID-vkCmdDrawClusterHUAWEI-None-09002# If a stencil attachment is +-- written by any prior command in this subpass or by the load, store, +-- or resolve operations for this subpass, it is not in the +-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT' +-- image layout, and either: +-- +-- - the +-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT' +-- is set on the currently bound pipeline or +-- +-- - the last call to +-- 'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT' +-- included +-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT' +-- and +-- +-- - there is no currently bound graphics pipeline or +-- +-- - the currently bound graphics pipeline was created with +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT' +-- it /must/ not be accessed in any way other than as an +-- attachment by this command +-- +-- - #VUID-vkCmdDrawClusterHUAWEI-None-09003# If an attachment is written +-- by any prior command in this subpass or by the load, store, or +-- resolve operations for this subpass, it /must/ not be accessed in +-- any way other than as an attachment, storage image, or sampled image +-- by this command +-- +-- - #VUID-vkCmdDrawClusterHUAWEI-None-06539# If any previously recorded +-- command in the current subpass accessed an image subresource used as +-- an attachment in this subpass in any way other than as an +-- attachment, this command /must/ not write to that image subresource +-- as an attachment -- -- - #VUID-vkCmdDrawClusterHUAWEI-None-06886# If the current render pass -- instance uses a depth\/stencil attachment with a read-only layout @@ -1038,18 +1170,23 @@ foreign import ccall -- pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS' dynamic -- state enabled then --- 'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBias' /must/ have --- been called in the current command buffer prior to this drawing --- command +-- 'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBias' or +-- 'Vulkan.Extensions.VK_EXT_depth_bias_control.cmdSetDepthBias2EXT' +-- /must/ have been called in the current command buffer prior to this +-- drawing command -- -- - #VUID-vkCmdDrawClusterHUAWEI-None-08620# If a shader object is bound -- to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnable' -- in the current command buffer set @depthBiasEnable@ to -- 'Vulkan.Core10.FundamentalTypes.TRUE', --- 'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBias' /must/ have --- been called in the current command buffer prior to this drawing --- command +-- 'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBias' or +-- 'Vulkan.Extensions.VK_EXT_depth_bias_control.cmdSetDepthBias2EXT' +-- /must/ have been called in the current command buffer prior to this +-- drawing command -- -- - #VUID-vkCmdDrawClusterHUAWEI-None-07835# If the bound graphics -- pipeline state was created with the @@ -1072,7 +1209,7 @@ foreign import ccall -- the most recent call to -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT' -- in the current command buffer set the same element of --- @pColorBlendEquations@ to an +-- @pColorBlendEquations@ to a -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.ColorBlendEquationEXT' -- structure with any 'Vulkan.Core10.Enums.BlendFactor.BlendFactor' -- member with a value of @@ -1087,16 +1224,20 @@ foreign import ccall -- - #VUID-vkCmdDrawClusterHUAWEI-None-07836# If the bound graphics -- pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS' --- dynamic state enabled then +-- dynamic state enabled, and if the current @depthBoundsTestEnable@ +-- state is 'Vulkan.Core10.FundamentalTypes.TRUE', then -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBounds' /must/ have -- been called in the current command buffer prior to this drawing -- command -- -- - #VUID-vkCmdDrawClusterHUAWEI-None-08622# If a shader object is bound -- to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable' -- in the current command buffer set @depthBoundsTestEnable@ to --- 'Vulkan.Core10.FundamentalTypes.TRUE', +-- 'Vulkan.Core10.FundamentalTypes.TRUE', then -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBounds' /must/ have -- been called in the current command buffer prior to this drawing -- command @@ -1104,7 +1245,8 @@ foreign import ccall -- - #VUID-vkCmdDrawClusterHUAWEI-None-07837# If the bound graphics -- pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_COMPARE_MASK' --- dynamic state enabled then +-- dynamic state enabled, and if the current @stencilTestEnable@ state +-- is 'Vulkan.Core10.FundamentalTypes.TRUE', then -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilCompareMask' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -1121,7 +1263,8 @@ foreign import ccall -- - #VUID-vkCmdDrawClusterHUAWEI-None-07838# If the bound graphics -- pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_WRITE_MASK' --- dynamic state enabled then +-- dynamic state enabled, and if the current @stencilTestEnable@ state +-- is 'Vulkan.Core10.FundamentalTypes.TRUE', then -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilWriteMask' /must/ -- have been called in the current command buffer prior to this drawing -- command @@ -1138,7 +1281,8 @@ foreign import ccall -- - #VUID-vkCmdDrawClusterHUAWEI-None-07839# If the bound graphics -- pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_REFERENCE' --- dynamic state enabled then +-- dynamic state enabled, and if the current @stencilTestEnable@ state +-- is 'Vulkan.Core10.FundamentalTypes.TRUE', then -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilReference' /must/ -- have been called in the current command buffer prior to this drawing -- command @@ -1178,7 +1322,10 @@ foreign import ccall -- to any graphics stage, and the most recent call to -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT' -- in the current command buffer set @sampleLocationsEnable@ to --- 'Vulkan.Core10.FundamentalTypes.TRUE', +-- 'Vulkan.Core10.FundamentalTypes.TRUE', and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -1202,7 +1349,10 @@ foreign import ccall -- drawing command -- -- - #VUID-vkCmdDrawClusterHUAWEI-None-08627# If a shader object is bound --- to any graphics stage, +-- to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetCullMode' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -1216,7 +1366,10 @@ foreign import ccall -- drawing command -- -- - #VUID-vkCmdDrawClusterHUAWEI-None-08628# If a shader object is bound --- to any graphics stage, +-- to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetFrontFace' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -1230,7 +1383,10 @@ foreign import ccall -- drawing command -- -- - #VUID-vkCmdDrawClusterHUAWEI-None-08629# If a shader object is bound --- to any graphics stage, +-- to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -1244,7 +1400,10 @@ foreign import ccall -- drawing command -- -- - #VUID-vkCmdDrawClusterHUAWEI-None-08630# If a shader object is bound --- to any graphics stage, +-- to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -1259,9 +1418,12 @@ foreign import ccall -- -- - #VUID-vkCmdDrawClusterHUAWEI-None-08631# If a shader object is bound -- to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable' -- in the current command buffer set @depthTestEnable@ to --- 'Vulkan.Core10.FundamentalTypes.TRUE', +-- 'Vulkan.Core10.FundamentalTypes.TRUE', then -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthCompareOp' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -1277,7 +1439,10 @@ foreign import ccall -- - #VUID-vkCmdDrawClusterHUAWEI-None-08632# If a shader object is bound -- to any graphics stage, and the -- --- feature is enabled, the +-- feature is enabled, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then the -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -1397,6 +1562,13 @@ foreign import ccall -- the last call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- +-- - #VUID-vkCmdDrawClusterHUAWEI-None-09232# If a shader object is bound +-- to any graphics stage, and the @VK_NV_clip_space_w_scaling@ +-- extension is enabled on the device, then +-- 'Vulkan.Extensions.VK_NV_clip_space_w_scaling.cmdSetViewportWScalingNV' +-- must have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdDrawClusterHUAWEI-None-08636# If a shader object is bound -- to any graphics stage, and the @VK_NV_clip_space_w_scaling@ -- extension is enabled on the device, then the @viewportCount@ @@ -1430,6 +1602,30 @@ foreign import ccall -- the last call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- +-- - #VUID-vkCmdDrawClusterHUAWEI-shadingRateImage-09233# If the +-- +-- feature is enabled, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set rasterizerDiscardEnable to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then +-- 'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetCoarseSampleOrderNV' +-- must have been called in the current command buffer prior to this +-- drawing command +-- +-- - #VUID-vkCmdDrawClusterHUAWEI-shadingRateImage-09234# If a shader +-- object is bound to any graphics stage, and the +-- +-- feature is enabled on the device, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set rasterizerDiscardEnable to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetShadingRateImageEnableNV' +-- in the current command buffer set shadingRateImageEnable to +-- 'Vulkan.Core10.FundamentalTypes.TRUE', then +-- 'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetViewportShadingRatePaletteNV' +-- must have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdDrawClusterHUAWEI-None-08637# If a shader object is bound -- to any graphics stage, and the -- @@ -1482,6 +1678,14 @@ foreign import ccall -- /must/ have been called in the current command buffer prior to this -- drawing command -- +-- - #VUID-vkCmdDrawClusterHUAWEI-exclusiveScissor-09235# If a shader +-- object is bound to any graphics stage, and the +-- +-- feature is enabled, then +-- 'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorEnableNV' +-- must have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdDrawClusterHUAWEI-None-08638# If a shader object is bound -- to any graphics stage, and the most recent call to -- 'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorEnableNV' @@ -1533,7 +1737,9 @@ foreign import ccall -- 'Vulkan.Core10.Enums.LogicOp.LogicOp' value -- -- - #VUID-vkCmdDrawClusterHUAWEI-None-08641# If a shader object is bound --- to any graphics stage, and the +-- to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage, and the -- -- feature is enabled on the device, and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' @@ -1618,6 +1824,11 @@ foreign import ccall -- to be the same as the number of samples for the current render pass -- color and\/or depth\/stencil attachments -- +-- - #VUID-vkCmdDrawClusterHUAWEI-None-08876# If a shader object is bound +-- to any graphics stage, the current render pass instance /must/ have +-- been begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' +-- -- - #VUID-vkCmdDrawClusterHUAWEI-imageView-06172# If the current render -- pass instance was begun with -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', @@ -1690,8 +1901,11 @@ foreign import ccall -- equal to -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ -- --- - #VUID-vkCmdDrawClusterHUAWEI-colorAttachmentCount-06180# If the --- current render pass instance was begun with +-- - #VUID-vkCmdDrawClusterHUAWEI-dynamicRenderingUnusedAttachments-08910# +-- If the +-- +-- feature is not enabled, and the current render pass instance was +-- begun with -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' -- and -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ @@ -1704,8 +1918,32 @@ foreign import ccall -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@ -- used to create the currently bound graphics pipeline -- --- - #VUID-vkCmdDrawClusterHUAWEI-colorAttachmentCount-07616# If the --- current render pass instance was begun with +-- - #VUID-vkCmdDrawClusterHUAWEI-dynamicRenderingUnusedAttachments-08911# +-- If the +-- +-- feature is enabled, and the current render pass instance was begun +-- with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' +-- and +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ +-- greater than @0@, then each element of the +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@ +-- array with a @imageView@ not equal to +-- 'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created +-- with a 'Vulkan.Core10.Enums.Format.Format' equal to the +-- corresponding element of +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@ +-- used to create the currently bound graphics pipeline, or the +-- corresponding element of +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@, +-- if it exists, /must/ be +-- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' +-- +-- - #VUID-vkCmdDrawClusterHUAWEI-dynamicRenderingUnusedAttachments-08912# +-- If the +-- +-- feature is not enabled, and the current render pass instance was +-- begun with -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' -- and -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ @@ -1718,6 +1956,132 @@ foreign import ccall -- used to create the currently bound pipeline equal to -- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' -- +-- - #VUID-vkCmdDrawClusterHUAWEI-colorAttachmentCount-09362# If the +-- current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- with a +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ +-- equal to @1@, there is no shader object bound to any graphics stage, +-- and a color attachment with a resolve mode of +-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID', +-- each element of the +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@ +-- array with a @resolveImageView@ not equal to +-- 'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created +-- with an image created with a +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- value equal to the +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- value used to create the currently bound graphics pipeline +-- +-- - #VUID-vkCmdDrawClusterHUAWEI-None-09363# If there is no shader +-- object bound to any graphics stage, the current render pass instance +-- was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' +-- and a +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ +-- equal to @1@, and a color attachment with a resolve mode of +-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID', +-- each element of the +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@ +-- array with a @imageView@ not equal to +-- 'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created +-- with an image created with a +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- value equal to the +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- value used to create the currently bound graphics pipeline +-- +-- - #VUID-vkCmdDrawClusterHUAWEI-None-09364# If the current render pass +-- instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- there is no shader object bound to any graphics stage, and the +-- currently bound graphics pipeline was created with a non-zero +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- value and with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT' +-- dynamic state enabled, then +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT' +-- /must/ have set the blend enable to +-- 'Vulkan.Core10.FundamentalTypes.FALSE' prior to this drawing command +-- +-- - #VUID-vkCmdDrawClusterHUAWEI-None-09365# If the current render pass +-- instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- there is no shader object bound to any graphics stage, and the +-- currently bound graphics pipeline was created with a non-zero +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- value and with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT' +-- dynamic state enabled, then +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT' +-- /must/ have set @rasterizationSamples@ to +-- 'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT' prior +-- to this drawing command +-- +-- - #VUID-vkCmdDrawClusterHUAWEI-None-09366# If there is a shader object +-- bound to any graphics stage, and the current render pass includes a +-- color attachment that uses the +-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID' +-- resolve mode, then +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT' +-- /must/ have set blend enable to +-- 'Vulkan.Core10.FundamentalTypes.FALSE' prior to this drawing command +-- +-- - #VUID-vkCmdDrawClusterHUAWEI-rasterizationSamples-09367# If there is +-- a shader object bound to any graphics stage, and the current render +-- pass includes a color attachment that uses the +-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID' +-- resolve mode, then +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT' +-- /must/ have set @rasterizationSamples@ to +-- 'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT' prior +-- to this drawing command +-- +-- - #VUID-vkCmdDrawClusterHUAWEI-None-09368# If the current render pass +-- instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- there is no shader object bound to any graphics stage, and the +-- currently bound graphics pipeline was created with a non-zero +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- value and with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR' +-- dynamic state enabled, then +-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR' +-- /must/ have set @pFragmentSize->width@ to @1@ prior to this drawing +-- command +-- +-- - #VUID-vkCmdDrawClusterHUAWEI-None-09369# If the current render pass +-- instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- there is no shader object bound to any graphics stage, and the +-- currently bound graphics pipeline was created with a non-zero +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- value and with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR' +-- dynamic state enabled, then +-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR' +-- /must/ have set @pFragmentSize->height@ to @1@ prior to this drawing +-- command +-- +-- - #VUID-vkCmdDrawClusterHUAWEI-pFragmentSize-09370# If there is a +-- shader object bound to any graphics stage, and the current render +-- pass includes a color attachment that uses the +-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID' +-- resolve mode, then +-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR' +-- /must/ have set @pFragmentSize->width@ to @1@ prior to this drawing +-- command +-- +-- - #VUID-vkCmdDrawClusterHUAWEI-pFragmentSize-09371# If there is a +-- shader object bound to any graphics stage, and the current render +-- pass includes a color attachment that uses the +-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID' +-- resolve mode, then +-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR' +-- /must/ have set @pFragmentSize->height@ to @1@ prior to this drawing +-- command +-- -- - #VUID-vkCmdDrawClusterHUAWEI-None-07749# If the bound graphics -- pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT' @@ -1729,7 +2093,9 @@ foreign import ccall -- - #VUID-vkCmdDrawClusterHUAWEI-None-08646# If the -- -- feature is enabled on the device, and a shader object is bound to --- the fragment stage, and the most recent call to +-- the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage, and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' -- in the current command buffer set @rasterizerDiscardEnable@ to -- 'Vulkan.Core10.FundamentalTypes.FALSE', then @@ -1749,7 +2115,9 @@ foreign import ccall -- - #VUID-vkCmdDrawClusterHUAWEI-None-08647# If the -- -- feature is enabled on the device, and a shader object is bound to --- the fragment stage, and the most recent call to +-- the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage, and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' -- in the current command buffer set @rasterizerDiscardEnable@ to -- 'Vulkan.Core10.FundamentalTypes.FALSE', then the @attachmentCount@ @@ -1775,6 +2143,16 @@ foreign import ccall -- /must/ have been called in the current command buffer prior to this -- drawing command -- +-- - #VUID-vkCmdDrawClusterHUAWEI-rasterizerDiscardEnable-09236# If the +-- @VK_EXT_discard_rectangles@ extension is enabled, and a shader +-- object is bound to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then +-- 'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEXT' +-- /must/ have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdDrawClusterHUAWEI-None-08648# If the -- @VK_EXT_discard_rectangles@ extension is enabled, and a shader -- object is bound to any graphics stage, and the most recent call to @@ -1806,10 +2184,24 @@ foreign import ccall -- /must/ have been called in the current command buffer prior to this -- drawing command -- --- - #VUID-vkCmdDrawClusterHUAWEI-pDepthAttachment-06181# If the current --- render pass instance was begun with --- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' --- and +-- - #VUID-vkCmdDrawClusterHUAWEI-dynamicRenderingUnusedAttachments-08913# +-- If the current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- the +-- +-- feature is not enabled, and +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@ +-- was 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@ +-- used to create the currently bound graphics pipeline /must/ be equal +-- to 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' +-- +-- - #VUID-vkCmdDrawClusterHUAWEI-dynamicRenderingUnusedAttachments-08914# +-- If current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- the +-- +-- feature is not enabled, and -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@ -- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@ @@ -1817,20 +2209,39 @@ foreign import ccall -- to the 'Vulkan.Core10.Enums.Format.Format' used to create -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@ -- --- - #VUID-vkCmdDrawClusterHUAWEI-pDepthAttachment-07617# If the current --- render pass instance was begun with --- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' --- and +-- - #VUID-vkCmdDrawClusterHUAWEI-dynamicRenderingUnusedAttachments-08915# +-- If the current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- the +-- +-- feature is enabled, -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@ --- was 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of +-- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the value of -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@ +-- used to create the currently bound graphics pipeline was not equal +-- to the 'Vulkan.Core10.Enums.Format.Format' used to create +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@, +-- the value of the format /must/ be +-- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' +-- +-- - #VUID-vkCmdDrawClusterHUAWEI-dynamicRenderingUnusedAttachments-08916# +-- If the current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- the +-- +-- feature is not enabled, and +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@ +-- was 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@ -- used to create the currently bound graphics pipeline /must/ be equal -- to 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' -- --- - #VUID-vkCmdDrawClusterHUAWEI-pStencilAttachment-06182# If the --- current render pass instance was begun with --- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' --- and +-- - #VUID-vkCmdDrawClusterHUAWEI-dynamicRenderingUnusedAttachments-08917# +-- If current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- the +-- +-- feature is not enabled, and -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@ -- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@ @@ -1838,15 +2249,20 @@ foreign import ccall -- to the 'Vulkan.Core10.Enums.Format.Format' used to create -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@ -- --- - #VUID-vkCmdDrawClusterHUAWEI-pStencilAttachment-07618# If the --- current render pass instance was begun with --- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' --- and +-- - #VUID-vkCmdDrawClusterHUAWEI-dynamicRenderingUnusedAttachments-08918# +-- If the current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- the +-- +-- feature is enabled, -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@ --- was 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of +-- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the value of -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@ --- used to create the currently bound graphics pipeline /must/ be equal --- to 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' +-- used to create the currently bound graphics pipeline was not equal +-- to the 'Vulkan.Core10.Enums.Format.Format' used to create +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@, +-- the value of the format /must/ be +-- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' -- -- - #VUID-vkCmdDrawClusterHUAWEI-imageView-06183# If the current render -- pass instance was begun with @@ -1993,18 +2409,52 @@ foreign import ccall -- 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@renderPass@ -- equal to 'Vulkan.Core10.APIConstants.NULL_HANDLE' -- --- - #VUID-vkCmdDrawClusterHUAWEI-primitivesGeneratedQueryWithRasterizerDiscard-06708# --- If the --- --- feature is not enabled and the --- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PRIMITIVES_GENERATED_EXT' --- query is active, --- --- /must/ not be enabled +-- - #VUID-vkCmdDrawClusterHUAWEI-pColorAttachments-08963# If the current +-- render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- there is a graphics pipeline bound with a fragment shader that +-- statically writes to a color attachment, the color write mask is not +-- zero, color writes are enabled, and the corresponding element of the +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments->imageView@ +-- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', then the +-- corresponding element of +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@ +-- used to create the pipeline /must/ not be +-- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' -- --- - #VUID-vkCmdDrawClusterHUAWEI-primitivesGeneratedQueryWithNonZeroStreams-06709# --- If the --- +-- - #VUID-vkCmdDrawClusterHUAWEI-pDepthAttachment-08964# If the current +-- render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- there is a graphics pipeline bound, depth test is enabled, depth +-- write is enabled, and the +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@ +-- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', then the +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@ +-- used to create the pipeline /must/ not be +-- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' +-- +-- - #VUID-vkCmdDrawClusterHUAWEI-pStencilAttachment-08965# If the +-- current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- there is a graphics pipeline bound, stencil test is enabled and the +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@ +-- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', then the +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@ +-- used to create the pipeline /must/ not be +-- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' +-- +-- - #VUID-vkCmdDrawClusterHUAWEI-primitivesGeneratedQueryWithRasterizerDiscard-06708# +-- If the +-- +-- feature is not enabled and the +-- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PRIMITIVES_GENERATED_EXT' +-- query is active, +-- +-- /must/ not be enabled +-- +-- - #VUID-vkCmdDrawClusterHUAWEI-primitivesGeneratedQueryWithNonZeroStreams-06709# +-- If the +-- -- feature is not enabled and the -- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PRIMITIVES_GENERATED_EXT' -- query is active, the bound graphics pipeline /must/ not have been @@ -2019,6 +2469,22 @@ foreign import ccall -- /must/ have been called in the current command buffer prior to this -- drawing command -- +-- - #VUID-vkCmdDrawClusterHUAWEI-None-07620# If the bound graphics +-- pipeline state was created with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT' +-- dynamic state enabled then +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClampEnableEXT' +-- /must/ have been called in the current command buffer prior to this +-- drawing command +-- +-- - #VUID-vkCmdDrawClusterHUAWEI-None-09237# If a shader object is bound +-- to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT' +-- stage, then +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetTessellationDomainOriginEXT' +-- /must/ have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdDrawClusterHUAWEI-None-08650# If the -- -- feature is enabled, and a shader object is bound to any graphics @@ -2089,6 +2555,17 @@ foreign import ccall -- /must/ have been called in the current command buffer prior to this -- drawing command -- +-- - #VUID-vkCmdDrawClusterHUAWEI-alphaToCoverageEnable-08919# If the +-- bound graphics pipeline state was created with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT' +-- dynamic state enabled, and @alphaToCoverageEnable@ was +-- 'Vulkan.Core10.FundamentalTypes.TRUE' in the last call to +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT', +-- then the +-- +-- /must/ contain a variable for the alpha @Component@ word in +-- @Location@ 0 at @Index@ 0 +-- -- - #VUID-vkCmdDrawClusterHUAWEI-None-08654# If a shader object is bound -- to any graphics stage, and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' @@ -2098,6 +2575,16 @@ foreign import ccall -- /must/ have been called in the current command buffer prior to this -- drawing command -- +-- - #VUID-vkCmdDrawClusterHUAWEI-alphaToCoverageEnable-08920# If a +-- shader object is bound to any graphics stage, and the most recent +-- call to +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT' +-- in the current command buffer set @alphaToCoverageEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.TRUE', then the +-- +-- /must/ contain a variable for the alpha @Component@ word in +-- @Location@ 0 at @Index@ 0 +-- -- - #VUID-vkCmdDrawClusterHUAWEI-None-07625# If the bound graphics -- pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT' @@ -2127,7 +2614,8 @@ foreign import ccall -- -- - #VUID-vkCmdDrawClusterHUAWEI-None-08656# If the -- --- feature is enabled, and a shader object is bound to any graphics +-- feature is enabled, and a shader object is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' -- stage, and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' -- in the current command buffer set @rasterizerDiscardEnable@ to @@ -2145,7 +2633,9 @@ foreign import ccall -- drawing command -- -- - #VUID-vkCmdDrawClusterHUAWEI-None-08657# If a shader object is bound --- to any graphics stage, and the most recent call to +-- to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage, and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' -- in the current command buffer set @rasterizerDiscardEnable@ to -- 'Vulkan.Core10.FundamentalTypes.FALSE', then @@ -2182,7 +2672,9 @@ foreign import ccall -- drawing command -- -- - #VUID-vkCmdDrawClusterHUAWEI-None-08659# If a shader object is bound --- to any graphics stage, and the most recent call to +-- to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage, and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' -- in the current command buffer set @rasterizerDiscardEnable@ to -- 'Vulkan.Core10.FundamentalTypes.FALSE', then @@ -2200,7 +2692,8 @@ foreign import ccall -- -- - #VUID-vkCmdDrawClusterHUAWEI-None-08660# If the -- --- feature is enabled, and a shader object is bound to the geometry +-- feature is enabled, and a shader object is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT' -- stage, then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationStreamEXT' -- /must/ have been called in the current command buffer prior to this @@ -2300,7 +2793,9 @@ foreign import ccall -- -- - #VUID-vkCmdDrawClusterHUAWEI-None-08665# If the -- @VK_EXT_provoking_vertex@ extension is enabled, and a shader object --- is bound to the vertex stage, then +-- is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT' +-- stage, then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetProvokingVertexModeEXT' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -2409,7 +2904,7 @@ foreign import ccall -- stage, then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClipNegativeOneToOneEXT' -- /must/ have been called in the current command buffer prior to this --- drawing command ifdef::VK_EXT_extended_dynamic_state3 +-- drawing command -- -- - #VUID-vkCmdDrawClusterHUAWEI-None-07640# If the bound graphics -- pipeline state was created with the @@ -2417,7 +2912,7 @@ foreign import ccall -- dynamic state enabled then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetViewportWScalingEnableNV' -- /must/ have been called in the current command buffer prior to this --- drawing command endif::VK_EXT_extended_dynamic_state3 +-- drawing command -- -- - #VUID-vkCmdDrawClusterHUAWEI-None-08674# If the -- @VK_NV_clip_space_w_scaling@ extension is enabled, and a shader @@ -2451,7 +2946,12 @@ foreign import ccall -- -- - #VUID-vkCmdDrawClusterHUAWEI-None-08676# If the -- @VK_NV_fragment_coverage_to_color@ extension is enabled, and a --- shader object is bound to any graphics stage, then +-- shader object is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -2466,8 +2966,9 @@ foreign import ccall -- -- - #VUID-vkCmdDrawClusterHUAWEI-None-08677# If the -- @VK_NV_fragment_coverage_to_color@ extension is enabled, and a --- shader object is bound to any graphics stage, and the most recent --- call to +-- shader object is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage, and the most recent call to -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV' -- in the current command buffer set @coverageToColorEnable@ to -- 'Vulkan.Core10.FundamentalTypes.TRUE', then @@ -2485,7 +2986,10 @@ foreign import ccall -- -- - #VUID-vkCmdDrawClusterHUAWEI-None-08678# If the -- @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader --- object is bound to any graphics stage, then +-- object is bound to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationModeNV' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -2500,7 +3004,15 @@ foreign import ccall -- -- - #VUID-vkCmdDrawClusterHUAWEI-None-08679# If the -- @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader --- object is bound to any graphics stage, then +-- object is bound to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationModeNV' +-- in the current command buffer set coverageModulationMode to any +-- value other than +-- 'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.COVERAGE_MODULATION_MODE_NONE_NV', +-- then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -2516,6 +3028,9 @@ foreign import ccall -- - #VUID-vkCmdDrawClusterHUAWEI-None-08680# If the -- @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader -- object is bound to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV' -- in the current command buffer set @coverageModulationTableEnable@ to -- 'Vulkan.Core10.FundamentalTypes.TRUE', then @@ -2531,10 +3046,26 @@ foreign import ccall -- /must/ have been called in the current command buffer prior to this -- drawing command -- +-- - #VUID-vkCmdDrawClusterHUAWEI-pipelineFragmentShadingRate-09238# If +-- the +-- +-- feature is enabled, and a shader object is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set rasterizerDiscardEnable to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then +-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR' +-- must have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdDrawClusterHUAWEI-None-08681# If the -- -- feature is enabled, and a shader object is bound to any graphics --- stage, then +-- stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetShadingRateImageEnableNV' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -2544,13 +3075,16 @@ foreign import ccall -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV' -- dynamic state enabled then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRepresentativeFragmentTestEnableNV' --- must have been called in the current command buffer prior to this +-- /must/ have been called in the current command buffer prior to this -- drawing command -- -- - #VUID-vkCmdDrawClusterHUAWEI-None-08682# If the -- -- feature is enabled, and a shader object is bound to any graphics --- stage, then +-- stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRepresentativeFragmentTestEnableNV' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -2566,7 +3100,10 @@ foreign import ccall -- - #VUID-vkCmdDrawClusterHUAWEI-None-08683# If the -- -- feature is enabled, and a shader object is bound to any graphics --- stage, then +-- stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageReductionModeNV' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -2615,18 +3152,29 @@ foreign import ccall -- in the last call to -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT' -- --- - #VUID-vkCmdDrawClusterHUAWEI-multisampledRenderToSingleSampled-07475# --- If the bound graphics pipeline state was created with the +-- - #VUID-vkCmdDrawClusterHUAWEI-rasterizationSamples-07474# If the +-- bound graphics pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT' --- state enabled, and none of the @VK_AMD_mixed_attachment_samples@ --- extension, @VK_NV_framebuffer_mixed_samples@ extension, or the --- --- feature is enabled, then the @rasterizationSamples@ in the last call --- to +-- state enabled, and neither the @VK_AMD_mixed_attachment_samples@ nor +-- the @VK_NV_framebuffer_mixed_samples@ extensions are enabled, then +-- the @rasterizationSamples@ in the last call to -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT' -- /must/ be the same as the current subpass color and\/or -- depth\/stencil attachments -- +-- - #VUID-vkCmdDrawClusterHUAWEI-None-09211# If the bound graphics +-- pipeline state was created with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT' +-- state enabled, or a shader object is bound to any graphics stage, +-- and the current render pass instance includes a +-- 'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT' +-- structure with @multisampledRenderToSingleSampledEnable@ equal to +-- 'Vulkan.Core10.FundamentalTypes.TRUE', then the +-- @rasterizationSamples@ in the last call to +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT' +-- /must/ be the same as the @rasterizationSamples@ member of that +-- structure +-- -- - #VUID-vkCmdDrawClusterHUAWEI-firstAttachment-07476# If the bound -- graphics pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT' @@ -2685,7 +3233,7 @@ foreign import ccall -- and -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendAdvancedEXT' -- have enabled advanced blending, then the number of active color --- attachments in the current subpass must not exceed +-- attachments in the current subpass /must/ not exceed -- -- -- - #VUID-vkCmdDrawClusterHUAWEI-primitivesGeneratedQueryWithNonZeroStreams-07481# @@ -2847,7 +3395,7 @@ foreign import ccall -- @VK_NV_framebuffer_mixed_samples@ extension is enabled, and if -- current subpass has a depth\/stencil attachment and depth test, -- stencil test, or depth bounds test are enabled in the currently --- bound pipeline state, then the current @rasterizationSamples@ must +-- bound pipeline state, then the current @rasterizationSamples@ /must/ -- be the same as the sample count of the depth\/stencil attachment -- -- - #VUID-vkCmdDrawClusterHUAWEI-coverageToColorEnable-07490# If the @@ -2878,7 +3426,7 @@ foreign import ccall -- states enabled, the current coverage reduction mode -- @coverageReductionMode@, then the current @rasterizationSamples@, -- and the sample counts for the color and depth\/stencil attachments --- (if the subpass has them) must be a valid combination returned by +-- (if the subpass has them) /must/ be a valid combination returned by -- 'Vulkan.Extensions.VK_NV_coverage_reduction_mode.getPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV' -- -- - #VUID-vkCmdDrawClusterHUAWEI-viewportCount-07492# If the bound @@ -2966,7 +3514,7 @@ foreign import ccall -- -- feature /must/ be enabled and -- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@strictLines@ --- must be VK_TRUE +-- /must/ be 'Vulkan.Core10.FundamentalTypes.TRUE' -- -- - #VUID-vkCmdDrawClusterHUAWEI-conservativePointAndLineRasterization-07499# -- If the bound graphics pipeline state was created with the @@ -2993,7 +3541,15 @@ foreign import ccall -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT', -- then -- --- must not be active +-- /must/ not be active +-- +-- - #VUID-vkCmdDrawClusterHUAWEI-None-08877# If the bound graphics +-- pipeline state was created with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT' +-- dynamic state +-- 'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT' +-- /must/ have been called in the current command buffer prior to this +-- drawing command -- -- - #VUID-vkCmdDrawClusterHUAWEI-None-07850# If dynamic state was -- inherited from @@ -3004,7 +3560,7 @@ foreign import ccall -- - #VUID-vkCmdDrawClusterHUAWEI-None-08684# If there is no bound -- graphics pipeline, -- 'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/ --- have been called on the current command buffer with @pStages@ with +-- have been called in the current command buffer with @pStages@ with -- an element of -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT' -- @@ -3013,7 +3569,7 @@ foreign import ccall -- -- feature is enabled, -- 'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/ --- have been called on the current command buffer with @pStages@ with +-- have been called in the current command buffer with @pStages@ with -- an element of -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT' -- @@ -3022,7 +3578,7 @@ foreign import ccall -- -- feature is enabled, -- 'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/ --- have been called on the current command buffer with @pStages@ with +-- have been called in the current command buffer with @pStages@ with -- an element of -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT' -- @@ -3031,14 +3587,14 @@ foreign import ccall -- -- feature is enabled, -- 'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/ --- have been called on the current command buffer with @pStages@ with +-- have been called in the current command buffer with @pStages@ with -- an element of -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT' -- -- - #VUID-vkCmdDrawClusterHUAWEI-None-08688# If there is no bound -- graphics pipeline, -- 'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/ --- have been called on the current command buffer with @pStages@ with +-- have been called in the current command buffer with @pStages@ with -- an element of -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' -- @@ -3047,7 +3603,7 @@ foreign import ccall -- -- feature is enabled, -- 'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/ --- have been called on the current command buffer with @pStages@ with +-- have been called in the current command buffer with @pStages@ with -- an element of -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT' -- @@ -3056,7 +3612,7 @@ foreign import ccall -- -- feature is enabled, -- 'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/ --- have been called on the current command buffer with @pStages@ with +-- have been called in the current command buffer with @pStages@ with -- an element of -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT' -- @@ -3068,8 +3624,8 @@ foreign import ccall -- features is enabled, one of the -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT' or -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT' --- stages must have a valid 'Vulkan.Extensions.Handles.ShaderEXT' --- bound, and the other must have no +-- stages /must/ have a valid 'Vulkan.Extensions.Handles.ShaderEXT' +-- bound, and the other /must/ have no -- 'Vulkan.Extensions.Handles.ShaderEXT' bound -- -- - #VUID-vkCmdDrawClusterHUAWEI-None-08694# If there is no bound @@ -3134,6 +3690,37 @@ foreign import ccall -- 'Vulkan.Extensions.VK_EXT_shader_object.createShadersEXT' call -- /must/ not have any 'Vulkan.Extensions.Handles.ShaderEXT' bound -- +-- - #VUID-vkCmdDrawClusterHUAWEI-None-08878# All bound graphics shader +-- objects /must/ have been created with identical or identically +-- defined push constant ranges +-- +-- - #VUID-vkCmdDrawClusterHUAWEI-None-08879# All bound graphics shader +-- objects /must/ have been created with identical or identically +-- defined arrays of descriptor set layouts +-- +-- - #VUID-vkCmdDrawClusterHUAWEI-colorAttachmentCount-09372# If the +-- current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' +-- and a +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ +-- equal to @1@, a color attachment with a resolve mode of +-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID', +-- and a fragment shader is bound, it /must/ not declare the +-- @DepthReplacing@ or @StencilRefReplacingEXT@ execution modes +-- +-- - #VUID-vkCmdDrawClusterHUAWEI-None-08880# If a shader object is bound +-- to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage and the +-- +-- feature is enabled on the device, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE' +-- 'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT' +-- /must/ have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdDrawClusterHUAWEI-pDynamicStates-08715# If the bound -- graphics pipeline state includes a fragment shader stage, was -- created with @@ -3158,6 +3745,32 @@ foreign import ccall -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilWriteMask' /must/ -- be @0@ -- +-- - #VUID-vkCmdDrawClusterHUAWEI-None-09116# If a shader object is bound +-- to any graphics stage or the currently bound graphics pipeline was +-- created with +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_MASK_EXT', +-- and the format of any color attachment is +-- 'Vulkan.Core10.Enums.Format.FORMAT_E5B9G9R9_UFLOAT_PACK32', the +-- corresponding element of the @pColorWriteMasks@ parameter of +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorWriteMaskEXT' +-- /must/ either include all of +-- 'Vulkan.Core10.Enums.ColorComponentFlagBits.COLOR_COMPONENT_R_BIT', +-- 'Vulkan.Core10.Enums.ColorComponentFlagBits.COLOR_COMPONENT_G_BIT', +-- and +-- 'Vulkan.Core10.Enums.ColorComponentFlagBits.COLOR_COMPONENT_B_BIT', +-- or none of them +-- +-- - #VUID-vkCmdDrawClusterHUAWEI-maxFragmentDualSrcAttachments-09239# If +-- +-- is enabled for any attachment where either the source or destination +-- blend factors for that attachment +-- , +-- the maximum value of @Location@ for any output attachment +-- +-- in the @Fragment@ @Execution@ @Model@ executed by this command +-- /must/ be less than +-- +-- -- - #VUID-vkCmdDrawClusterHUAWEI-stage-06480# The bound graphics -- pipeline /must/ not have been created with the -- 'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo'::@stage@ @@ -3193,11 +3806,13 @@ foreign import ccall -- or -- 'Vulkan.Core10.Enums.QueryPipelineStatisticFlagBits.QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT' -- --- - #VUID-vkCmdDrawClusterHUAWEI-None-07819# The pipelineStatistics --- member used to create any active Pipeline Statistics Query must also --- not contain --- VK_QUERY_PIPELINE_STATISTIC_TASK_SHADER_INVOCATIONS_BIT_EXT, --- VK_QUERY_PIPELINE_STATISTIC_MESH_SHADER_INVOCATIONS_BIT_EXT +-- - #VUID-vkCmdDrawClusterHUAWEI-None-07819# The @pipelineStatistics@ +-- member used to create any active +-- +-- /must/ not contain +-- 'Vulkan.Core10.Enums.QueryPipelineStatisticFlagBits.QUERY_PIPELINE_STATISTIC_TASK_SHADER_INVOCATIONS_BIT_EXT', +-- or +-- 'Vulkan.Core10.Enums.QueryPipelineStatisticFlagBits.QUERY_PIPELINE_STATISTIC_MESH_SHADER_INVOCATIONS_BIT_EXT' -- -- - #VUID-vkCmdDrawClusterHUAWEI-groupCountX-07820# @groupCountX@ /must/ -- be less than or equal to @@ -3363,6 +3978,16 @@ foreign import ccall -- /must/ contain -- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT' -- +-- - #VUID-vkCmdDrawClusterIndirectHUAWEI-None-02693# If the +-- +-- extension is not enabled and any 'Vulkan.Core10.Handles.ImageView' +-- is sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a +-- result of this command, it /must/ not have a +-- 'Vulkan.Core10.Enums.ImageViewType.ImageViewType' of +-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_3D', +-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE', or +-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE_ARRAY' +-- -- - #VUID-vkCmdDrawClusterIndirectHUAWEI-filterCubic-02694# Any -- 'Vulkan.Core10.Handles.ImageView' being sampled with -- 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a result of this @@ -3388,6 +4013,34 @@ foreign import ccall -- returned by -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceImageFormatProperties2' -- +-- - #VUID-vkCmdDrawClusterIndirectHUAWEI-cubicRangeClamp-09212# If the +-- +-- feature is not enabled, then any 'Vulkan.Core10.Handles.ImageView' +-- being sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as +-- a result of this command +-- +-- [/must/ not have a 'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo'] +-- @reductionMode@ equal to +-- 'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM' +-- +-- - #VUID-vkCmdDrawClusterIndirectHUAWEI-reductionMode-09213# Any +-- 'Vulkan.Core10.Handles.ImageView' being sampled with a +-- 'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo'::@reductionMode@ +-- equal to +-- 'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM' +-- as a result of this command /must/ sample with +-- 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' +-- +-- - #VUID-vkCmdDrawClusterIndirectHUAWEI-selectableCubicWeights-09214# +-- If the +-- +-- feature is not enabled, then any 'Vulkan.Core10.Handles.ImageView' +-- being sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as +-- a result of this command /must/ have +-- 'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.SamplerCubicWeightsCreateInfoQCOM'::@cubicWeights@ +-- equal to +-- 'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM' +-- -- - #VUID-vkCmdDrawClusterIndirectHUAWEI-flags-02696# Any -- 'Vulkan.Core10.Handles.Image' created with a -- 'Vulkan.Core10.Image.ImageCreateInfo'::@flags@ containing @@ -3429,11 +4082,9 @@ foreign import ccall -- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT' -- -- - #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08600# For each set /n/ --- that is statically used by the 'Vulkan.Core10.Handles.Pipeline' --- bound to the pipeline bind point used by this command, or by any of --- the 'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages --- corresponding to the pipeline bind point used by this command, a --- descriptor set /must/ have been bound to /n/ at the same pipeline +-- that is statically used by +-- , +-- a descriptor set /must/ have been bound to /n/ at the same pipeline -- bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is -- compatible for set /n/, with the -- 'Vulkan.Core10.Handles.PipelineLayout' or @@ -3443,13 +4094,10 @@ foreign import ccall -- -- -- - #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08601# For each push --- constant that is statically used by the --- 'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point --- used by this command, or by any of the --- 'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages --- corresponding to the pipeline bind point used by this command, a --- push constant value /must/ have been set for the same pipeline bind --- point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is +-- constant that is statically used by +-- , +-- a push constant value /must/ have been set for the same pipeline +-- bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is -- compatible for push constants, with the -- 'Vulkan.Core10.Handles.PipelineLayout' or -- 'Vulkan.Core10.Handles.DescriptorSetLayout' and @@ -3461,12 +4109,10 @@ foreign import ccall -- - #VUID-vkCmdDrawClusterIndirectHUAWEI-maintenance4-08602# If the -- -- feature is not enabled, then for each push constant that is --- statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to the --- pipeline bind point used by this command, or by any of the --- 'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages --- corresponding to the pipeline bind point used by this command, a --- push constant value /must/ have been set for the same pipeline bind --- point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is +-- statically used by +-- , +-- a push constant value /must/ have been set for the same pipeline +-- bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is -- compatible for push constants, with the -- 'Vulkan.Core10.Handles.PipelineLayout' or -- 'Vulkan.Core10.Handles.DescriptorSetLayout' and @@ -3629,34 +4275,25 @@ foreign import ccall -- buffer as specified in the descriptor set bound to the same pipeline -- bind point -- --- - #VUID-vkCmdDrawClusterIndirectHUAWEI-commandBuffer-08614# If +-- - #VUID-vkCmdDrawClusterIndirectHUAWEI-commandBuffer-02707# If -- @commandBuffer@ is an unprotected command buffer and -- --- is not supported, any resource accessed by the --- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind --- point used by this command or any --- 'Vulkan.Extensions.Handles.ShaderEXT' object bound to a stage --- corresponding to the pipeline bind point used by this command /must/ --- not be a protected resource --- --- - #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08615# If the --- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind --- point used by this command or any --- 'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding --- to the pipeline bind point used by this command accesses a --- 'Vulkan.Core10.Handles.Sampler' or 'Vulkan.Core10.Handles.ImageView' --- object that enables +-- is not supported, any resource accessed by +-- +-- /must/ not be a protected resource +-- +-- - #VUID-vkCmdDrawClusterIndirectHUAWEI-None-06550# If +-- +-- accesses a 'Vulkan.Core10.Handles.Sampler' or +-- 'Vulkan.Core10.Handles.ImageView' object that enables -- , -- that object /must/ only be used with @OpImageSample*@ or -- @OpImageSparseSample*@ instructions -- --- - #VUID-vkCmdDrawClusterIndirectHUAWEI-ConstOffset-08616# If the --- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind --- point used by this command or any --- 'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding --- to the pipeline bind point used by this command accesses a --- 'Vulkan.Core10.Handles.Sampler' or 'Vulkan.Core10.Handles.ImageView' --- object that enables +-- - #VUID-vkCmdDrawClusterIndirectHUAWEI-ConstOffset-06551# If +-- +-- accesses a 'Vulkan.Core10.Handles.Sampler' or +-- 'Vulkan.Core10.Handles.ImageView' object that enables -- , -- that object /must/ not use the @ConstOffset@ and @Offset@ operands -- @@ -3668,17 +4305,23 @@ foreign import ccall -- -- - #VUID-vkCmdDrawClusterIndirectHUAWEI-format-07753# If a -- 'Vulkan.Core10.Handles.ImageView' is accessed as a result of this --- command, then the image view’s @format@ /must/ match the numeric --- format from the @Sampled@ @Type@ operand of the @OpTypeImage@ as --- described in the SPIR-V Sampled Type column of the --- --- table --- --- - #VUID-vkCmdDrawClusterIndirectHUAWEI-None-04115# If a --- 'Vulkan.Core10.Handles.ImageView' is accessed using @OpImageWrite@ --- as a result of this command, then the @Type@ of the @Texel@ operand --- of that instruction /must/ have at least as many components as the --- image view’s format +-- command, then the +-- +-- of the image view’s @format@ and the @Sampled@ @Type@ operand of the +-- @OpTypeImage@ /must/ match +-- +-- - #VUID-vkCmdDrawClusterIndirectHUAWEI-OpImageWrite-08795# If a +-- 'Vulkan.Core10.Handles.ImageView' created with a format other than +-- 'Vulkan.Core10.Enums.Format.FORMAT_A8_UNORM_KHR' is accessed using +-- @OpImageWrite@ as a result of this command, then the @Type@ of the +-- @Texel@ operand of that instruction /must/ have at least as many +-- components as the image view’s format +-- +-- - #VUID-vkCmdDrawClusterIndirectHUAWEI-OpImageWrite-08796# If a +-- 'Vulkan.Core10.Handles.ImageView' created with the format +-- 'Vulkan.Core10.Enums.Format.FORMAT_A8_UNORM_KHR' is accessed using +-- @OpImageWrite@ as a result of this command, then the @Type@ of the +-- @Texel@ operand of that instruction /must/ have four components -- -- - #VUID-vkCmdDrawClusterIndirectHUAWEI-OpImageWrite-04469# If a -- 'Vulkan.Core10.Handles.BufferView' is accessed using @OpImageWrite@ @@ -3782,6 +4425,8 @@ foreign import ccall -- -- - #VUID-vkCmdDrawClusterIndirectHUAWEI-OpImageWeightedSampleQCOM-06977# -- If @OpImageWeightedSampleQCOM@, @OpImageBoxFilterQCOM@, +-- @OpImageBlockMatchWindowSSDQCOM@, @OpImageBlockMatchWindowSADQCOM@, +-- @OpImageBlockMatchGatherSSDQCOM@, @OpImageBlockMatchGatherSADQCOM@, -- @OpImageBlockMatchSSDQCOM@, or @OpImageBlockMatchSADQCOM@ uses a -- 'Vulkan.Core10.Handles.Sampler' as a result of this command, then -- the sampler /must/ have been created with @@ -3789,12 +4434,36 @@ foreign import ccall -- -- - #VUID-vkCmdDrawClusterIndirectHUAWEI-OpImageWeightedSampleQCOM-06978# -- If any command other than @OpImageWeightedSampleQCOM@, --- @OpImageBoxFilterQCOM@, @OpImageBlockMatchSSDQCOM@, or +-- @OpImageBoxFilterQCOM@, @OpImageBlockMatchWindowSSDQCOM@, +-- @OpImageBlockMatchWindowSADQCOM@, @OpImageBlockMatchGatherSSDQCOM@, +-- @OpImageBlockMatchGatherSADQCOM@, @OpImageBlockMatchSSDQCOM@, or -- @OpImageBlockMatchSADQCOM@ uses a 'Vulkan.Core10.Handles.Sampler' as -- a result of this command, then the sampler /must/ not have been -- created with -- 'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM' -- +-- - #VUID-vkCmdDrawClusterIndirectHUAWEI-OpImageBlockMatchWindow-09215# +-- If a @OpImageBlockMatchWindow*QCOM@ or +-- @OpImageBlockMatchGather*QCOM@ instruction is used to read from an +-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then +-- the image view’s +-- +-- /must/ contain +-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM' +-- +-- - #VUID-vkCmdDrawClusterIndirectHUAWEI-OpImageBlockMatchWindow-09216# +-- If a @OpImageBlockMatchWindow*QCOM@ or +-- @OpImageBlockMatchGather*QCOM@ instruction is used to read from an +-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then +-- the image view’s format /must/ be a single-component format. +-- +-- - #VUID-vkCmdDrawClusterIndirectHUAWEI-OpImageBlockMatchWindow-09217# +-- If a @OpImageBlockMatchWindow*QCOM@ or +-- @OpImageBlockMatchGather*QCOM@ read from a reference image as result +-- of this command, then the specified reference coordinates /must/ not +-- fail +-- +-- -- - #VUID-vkCmdDrawClusterIndirectHUAWEI-None-07288# Any shader -- invocation executed by this command /must/ -- @@ -3839,15 +4508,89 @@ foreign import ccall -- /must/ not be written in any way other than as an attachment by this -- command -- --- - #VUID-vkCmdDrawClusterIndirectHUAWEI-None-06538# If any recorded --- command in the current subpass will write to an image subresource as --- an attachment, this command /must/ not read from the memory backing --- that image subresource in any other way than as an attachment +-- - #VUID-vkCmdDrawClusterIndirectHUAWEI-None-09000# If a color +-- attachment is written by any prior command in this subpass or by the +-- load, store, or resolve operations for this subpass, it is not in +-- the +-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT' +-- image layout, and either: +-- +-- - the +-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT' +-- is set on the currently bound pipeline or +-- +-- - the last call to +-- 'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT' +-- included +-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT' +-- and +-- +-- - there is no currently bound graphics pipeline or +-- +-- - the currently bound graphics pipeline was created with +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT' +-- it /must/ not be accessed in any way other than as an +-- attachment by this command +-- +-- - #VUID-vkCmdDrawClusterIndirectHUAWEI-None-09001# If a depth +-- attachment is written by any prior command in this subpass or by the +-- load, store, or resolve operations for this subpass, it is not in +-- the +-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT' +-- image layout, and either: +-- +-- - the +-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT' +-- is set on the currently bound pipeline or +-- +-- - the last call to +-- 'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT' +-- included +-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_DEPTH_BIT' +-- and +-- +-- - there is no currently bound graphics pipeline or +-- +-- - the currently bound graphics pipeline was created with +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT' +-- it /must/ not be accessed in any way other than as an +-- attachment by this command -- --- - #VUID-vkCmdDrawClusterIndirectHUAWEI-None-06539# If any recorded --- command in the current subpass will read from an image subresource --- used as an attachment in any way other than as an attachment, this --- command /must/ not write to that image subresource as an attachment +-- - #VUID-vkCmdDrawClusterIndirectHUAWEI-None-09002# If a stencil +-- attachment is written by any prior command in this subpass or by the +-- load, store, or resolve operations for this subpass, it is not in +-- the +-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT' +-- image layout, and either: +-- +-- - the +-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT' +-- is set on the currently bound pipeline or +-- +-- - the last call to +-- 'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT' +-- included +-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT' +-- and +-- +-- - there is no currently bound graphics pipeline or +-- +-- - the currently bound graphics pipeline was created with +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT' +-- it /must/ not be accessed in any way other than as an +-- attachment by this command +-- +-- - #VUID-vkCmdDrawClusterIndirectHUAWEI-None-09003# If an attachment is +-- written by any prior command in this subpass or by the load, store, +-- or resolve operations for this subpass, it /must/ not be accessed in +-- any way other than as an attachment, storage image, or sampled image +-- by this command +-- +-- - #VUID-vkCmdDrawClusterIndirectHUAWEI-None-06539# If any previously +-- recorded command in the current subpass accessed an image +-- subresource used as an attachment in this subpass in any way other +-- than as an attachment, this command /must/ not write to that image +-- subresource as an attachment -- -- - #VUID-vkCmdDrawClusterIndirectHUAWEI-None-06886# If the current -- render pass instance uses a depth\/stencil attachment with a @@ -3917,18 +4660,23 @@ foreign import ccall -- graphics pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS' dynamic -- state enabled then --- 'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBias' /must/ have --- been called in the current command buffer prior to this drawing --- command +-- 'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBias' or +-- 'Vulkan.Extensions.VK_EXT_depth_bias_control.cmdSetDepthBias2EXT' +-- /must/ have been called in the current command buffer prior to this +-- drawing command -- -- - #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08620# If a shader object -- is bound to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnable' -- in the current command buffer set @depthBiasEnable@ to -- 'Vulkan.Core10.FundamentalTypes.TRUE', --- 'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBias' /must/ have --- been called in the current command buffer prior to this drawing --- command +-- 'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBias' or +-- 'Vulkan.Extensions.VK_EXT_depth_bias_control.cmdSetDepthBias2EXT' +-- /must/ have been called in the current command buffer prior to this +-- drawing command -- -- - #VUID-vkCmdDrawClusterIndirectHUAWEI-None-07835# If the bound -- graphics pipeline state was created with the @@ -3951,7 +4699,7 @@ foreign import ccall -- the most recent call to -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT' -- in the current command buffer set the same element of --- @pColorBlendEquations@ to an +-- @pColorBlendEquations@ to a -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.ColorBlendEquationEXT' -- structure with any 'Vulkan.Core10.Enums.BlendFactor.BlendFactor' -- member with a value of @@ -3966,16 +4714,20 @@ foreign import ccall -- - #VUID-vkCmdDrawClusterIndirectHUAWEI-None-07836# If the bound -- graphics pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS' --- dynamic state enabled then +-- dynamic state enabled, and if the current @depthBoundsTestEnable@ +-- state is 'Vulkan.Core10.FundamentalTypes.TRUE', then -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBounds' /must/ have -- been called in the current command buffer prior to this drawing -- command -- -- - #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08622# If a shader object -- is bound to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable' -- in the current command buffer set @depthBoundsTestEnable@ to --- 'Vulkan.Core10.FundamentalTypes.TRUE', +-- 'Vulkan.Core10.FundamentalTypes.TRUE', then -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBounds' /must/ have -- been called in the current command buffer prior to this drawing -- command @@ -3983,7 +4735,8 @@ foreign import ccall -- - #VUID-vkCmdDrawClusterIndirectHUAWEI-None-07837# If the bound -- graphics pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_COMPARE_MASK' --- dynamic state enabled then +-- dynamic state enabled, and if the current @stencilTestEnable@ state +-- is 'Vulkan.Core10.FundamentalTypes.TRUE', then -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilCompareMask' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -4000,7 +4753,8 @@ foreign import ccall -- - #VUID-vkCmdDrawClusterIndirectHUAWEI-None-07838# If the bound -- graphics pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_WRITE_MASK' --- dynamic state enabled then +-- dynamic state enabled, and if the current @stencilTestEnable@ state +-- is 'Vulkan.Core10.FundamentalTypes.TRUE', then -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilWriteMask' /must/ -- have been called in the current command buffer prior to this drawing -- command @@ -4017,7 +4771,8 @@ foreign import ccall -- - #VUID-vkCmdDrawClusterIndirectHUAWEI-None-07839# If the bound -- graphics pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_REFERENCE' --- dynamic state enabled then +-- dynamic state enabled, and if the current @stencilTestEnable@ state +-- is 'Vulkan.Core10.FundamentalTypes.TRUE', then -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilReference' /must/ -- have been called in the current command buffer prior to this drawing -- command @@ -4057,7 +4812,10 @@ foreign import ccall -- is bound to any graphics stage, and the most recent call to -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT' -- in the current command buffer set @sampleLocationsEnable@ to --- 'Vulkan.Core10.FundamentalTypes.TRUE', +-- 'Vulkan.Core10.FundamentalTypes.TRUE', and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -4081,7 +4839,10 @@ foreign import ccall -- drawing command -- -- - #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08627# If a shader object --- is bound to any graphics stage, +-- is bound to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetCullMode' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -4095,7 +4856,10 @@ foreign import ccall -- drawing command -- -- - #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08628# If a shader object --- is bound to any graphics stage, +-- is bound to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetFrontFace' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -4109,7 +4873,10 @@ foreign import ccall -- drawing command -- -- - #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08629# If a shader object --- is bound to any graphics stage, +-- is bound to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -4123,7 +4890,10 @@ foreign import ccall -- drawing command -- -- - #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08630# If a shader object --- is bound to any graphics stage, +-- is bound to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -4138,9 +4908,12 @@ foreign import ccall -- -- - #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08631# If a shader object -- is bound to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable' -- in the current command buffer set @depthTestEnable@ to --- 'Vulkan.Core10.FundamentalTypes.TRUE', +-- 'Vulkan.Core10.FundamentalTypes.TRUE', then -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthCompareOp' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -4156,7 +4929,10 @@ foreign import ccall -- - #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08632# If a shader object -- is bound to any graphics stage, and the -- --- feature is enabled, the +-- feature is enabled, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then the -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -4276,6 +5052,13 @@ foreign import ccall -- the last call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- +-- - #VUID-vkCmdDrawClusterIndirectHUAWEI-None-09232# If a shader object +-- is bound to any graphics stage, and the @VK_NV_clip_space_w_scaling@ +-- extension is enabled on the device, then +-- 'Vulkan.Extensions.VK_NV_clip_space_w_scaling.cmdSetViewportWScalingNV' +-- must have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08636# If a shader object -- is bound to any graphics stage, and the @VK_NV_clip_space_w_scaling@ -- extension is enabled on the device, then the @viewportCount@ @@ -4309,14 +5092,38 @@ foreign import ccall -- the last call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- --- - #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08637# If a shader object --- is bound to any graphics stage, and the +-- - #VUID-vkCmdDrawClusterIndirectHUAWEI-shadingRateImage-09233# If the -- --- feature is enabled on the device, then the @viewportCount@ parameter --- in the last call to --- 'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetViewportShadingRatePaletteNV' --- /must/ be greater than or equal to the @viewportCount@ parameter in --- the last call to +-- feature is enabled, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set rasterizerDiscardEnable to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then +-- 'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetCoarseSampleOrderNV' +-- must have been called in the current command buffer prior to this +-- drawing command +-- +-- - #VUID-vkCmdDrawClusterIndirectHUAWEI-shadingRateImage-09234# If a +-- shader object is bound to any graphics stage, and the +-- +-- feature is enabled on the device, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set rasterizerDiscardEnable to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetShadingRateImageEnableNV' +-- in the current command buffer set shadingRateImageEnable to +-- 'Vulkan.Core10.FundamentalTypes.TRUE', then +-- 'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetViewportShadingRatePaletteNV' +-- must have been called in the current command buffer prior to this +-- drawing command +-- +-- - #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08637# If a shader object +-- is bound to any graphics stage, and the +-- +-- feature is enabled on the device, then the @viewportCount@ parameter +-- in the last call to +-- 'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetViewportShadingRatePaletteNV' +-- /must/ be greater than or equal to the @viewportCount@ parameter in +-- the last call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- -- - #VUID-vkCmdDrawClusterIndirectHUAWEI-VkPipelineVieportCreateInfo-04141# @@ -4361,6 +5168,14 @@ foreign import ccall -- /must/ have been called in the current command buffer prior to this -- drawing command -- +-- - #VUID-vkCmdDrawClusterIndirectHUAWEI-exclusiveScissor-09235# If a +-- shader object is bound to any graphics stage, and the +-- +-- feature is enabled, then +-- 'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorEnableNV' +-- must have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08638# If a shader object -- is bound to any graphics stage, and the most recent call to -- 'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorEnableNV' @@ -4412,7 +5227,9 @@ foreign import ccall -- 'Vulkan.Core10.Enums.LogicOp.LogicOp' value -- -- - #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08641# If a shader object --- is bound to any graphics stage, and the +-- is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage, and the -- -- feature is enabled on the device, and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' @@ -4498,6 +5315,11 @@ foreign import ccall -- to be the same as the number of samples for the current render pass -- color and\/or depth\/stencil attachments -- +-- - #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08876# If a shader object +-- is bound to any graphics stage, the current render pass instance +-- /must/ have been begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' +-- -- - #VUID-vkCmdDrawClusterIndirectHUAWEI-imageView-06172# If the current -- render pass instance was begun with -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', @@ -4570,8 +5392,11 @@ foreign import ccall -- equal to -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ -- --- - #VUID-vkCmdDrawClusterIndirectHUAWEI-colorAttachmentCount-06180# If --- the current render pass instance was begun with +-- - #VUID-vkCmdDrawClusterIndirectHUAWEI-dynamicRenderingUnusedAttachments-08910# +-- If the +-- +-- feature is not enabled, and the current render pass instance was +-- begun with -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' -- and -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ @@ -4584,8 +5409,32 @@ foreign import ccall -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@ -- used to create the currently bound graphics pipeline -- --- - #VUID-vkCmdDrawClusterIndirectHUAWEI-colorAttachmentCount-07616# If --- the current render pass instance was begun with +-- - #VUID-vkCmdDrawClusterIndirectHUAWEI-dynamicRenderingUnusedAttachments-08911# +-- If the +-- +-- feature is enabled, and the current render pass instance was begun +-- with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' +-- and +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ +-- greater than @0@, then each element of the +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@ +-- array with a @imageView@ not equal to +-- 'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created +-- with a 'Vulkan.Core10.Enums.Format.Format' equal to the +-- corresponding element of +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@ +-- used to create the currently bound graphics pipeline, or the +-- corresponding element of +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@, +-- if it exists, /must/ be +-- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' +-- +-- - #VUID-vkCmdDrawClusterIndirectHUAWEI-dynamicRenderingUnusedAttachments-08912# +-- If the +-- +-- feature is not enabled, and the current render pass instance was +-- begun with -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' -- and -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ @@ -4598,6 +5447,132 @@ foreign import ccall -- used to create the currently bound pipeline equal to -- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' -- +-- - #VUID-vkCmdDrawClusterIndirectHUAWEI-colorAttachmentCount-09362# If +-- the current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- with a +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ +-- equal to @1@, there is no shader object bound to any graphics stage, +-- and a color attachment with a resolve mode of +-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID', +-- each element of the +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@ +-- array with a @resolveImageView@ not equal to +-- 'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created +-- with an image created with a +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- value equal to the +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- value used to create the currently bound graphics pipeline +-- +-- - #VUID-vkCmdDrawClusterIndirectHUAWEI-None-09363# If there is no +-- shader object bound to any graphics stage, the current render pass +-- instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' +-- and a +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ +-- equal to @1@, and a color attachment with a resolve mode of +-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID', +-- each element of the +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@ +-- array with a @imageView@ not equal to +-- 'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created +-- with an image created with a +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- value equal to the +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- value used to create the currently bound graphics pipeline +-- +-- - #VUID-vkCmdDrawClusterIndirectHUAWEI-None-09364# If the current +-- render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- there is no shader object bound to any graphics stage, and the +-- currently bound graphics pipeline was created with a non-zero +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- value and with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT' +-- dynamic state enabled, then +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT' +-- /must/ have set the blend enable to +-- 'Vulkan.Core10.FundamentalTypes.FALSE' prior to this drawing command +-- +-- - #VUID-vkCmdDrawClusterIndirectHUAWEI-None-09365# If the current +-- render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- there is no shader object bound to any graphics stage, and the +-- currently bound graphics pipeline was created with a non-zero +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- value and with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT' +-- dynamic state enabled, then +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT' +-- /must/ have set @rasterizationSamples@ to +-- 'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT' prior +-- to this drawing command +-- +-- - #VUID-vkCmdDrawClusterIndirectHUAWEI-None-09366# If there is a +-- shader object bound to any graphics stage, and the current render +-- pass includes a color attachment that uses the +-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID' +-- resolve mode, then +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT' +-- /must/ have set blend enable to +-- 'Vulkan.Core10.FundamentalTypes.FALSE' prior to this drawing command +-- +-- - #VUID-vkCmdDrawClusterIndirectHUAWEI-rasterizationSamples-09367# If +-- there is a shader object bound to any graphics stage, and the +-- current render pass includes a color attachment that uses the +-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID' +-- resolve mode, then +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT' +-- /must/ have set @rasterizationSamples@ to +-- 'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT' prior +-- to this drawing command +-- +-- - #VUID-vkCmdDrawClusterIndirectHUAWEI-None-09368# If the current +-- render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- there is no shader object bound to any graphics stage, and the +-- currently bound graphics pipeline was created with a non-zero +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- value and with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR' +-- dynamic state enabled, then +-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR' +-- /must/ have set @pFragmentSize->width@ to @1@ prior to this drawing +-- command +-- +-- - #VUID-vkCmdDrawClusterIndirectHUAWEI-None-09369# If the current +-- render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- there is no shader object bound to any graphics stage, and the +-- currently bound graphics pipeline was created with a non-zero +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- value and with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR' +-- dynamic state enabled, then +-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR' +-- /must/ have set @pFragmentSize->height@ to @1@ prior to this drawing +-- command +-- +-- - #VUID-vkCmdDrawClusterIndirectHUAWEI-pFragmentSize-09370# If there +-- is a shader object bound to any graphics stage, and the current +-- render pass includes a color attachment that uses the +-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID' +-- resolve mode, then +-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR' +-- /must/ have set @pFragmentSize->width@ to @1@ prior to this drawing +-- command +-- +-- - #VUID-vkCmdDrawClusterIndirectHUAWEI-pFragmentSize-09371# If there +-- is a shader object bound to any graphics stage, and the current +-- render pass includes a color attachment that uses the +-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID' +-- resolve mode, then +-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR' +-- /must/ have set @pFragmentSize->height@ to @1@ prior to this drawing +-- command +-- -- - #VUID-vkCmdDrawClusterIndirectHUAWEI-None-07749# If the bound -- graphics pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT' @@ -4609,7 +5584,9 @@ foreign import ccall -- - #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08646# If the -- -- feature is enabled on the device, and a shader object is bound to --- the fragment stage, and the most recent call to +-- the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage, and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' -- in the current command buffer set @rasterizerDiscardEnable@ to -- 'Vulkan.Core10.FundamentalTypes.FALSE', then @@ -4629,7 +5606,9 @@ foreign import ccall -- - #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08647# If the -- -- feature is enabled on the device, and a shader object is bound to --- the fragment stage, and the most recent call to +-- the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage, and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' -- in the current command buffer set @rasterizerDiscardEnable@ to -- 'Vulkan.Core10.FundamentalTypes.FALSE', then the @attachmentCount@ @@ -4655,6 +5634,17 @@ foreign import ccall -- /must/ have been called in the current command buffer prior to this -- drawing command -- +-- - #VUID-vkCmdDrawClusterIndirectHUAWEI-rasterizerDiscardEnable-09236# +-- If the @VK_EXT_discard_rectangles@ extension is enabled, and a +-- shader object is bound to any graphics stage, and the most recent +-- call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then +-- 'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEXT' +-- /must/ have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08648# If the -- @VK_EXT_discard_rectangles@ extension is enabled, and a shader -- object is bound to any graphics stage, and the most recent call to @@ -4686,10 +5676,24 @@ foreign import ccall -- /must/ have been called in the current command buffer prior to this -- drawing command -- --- - #VUID-vkCmdDrawClusterIndirectHUAWEI-pDepthAttachment-06181# If the --- current render pass instance was begun with --- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' --- and +-- - #VUID-vkCmdDrawClusterIndirectHUAWEI-dynamicRenderingUnusedAttachments-08913# +-- If the current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- the +-- +-- feature is not enabled, and +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@ +-- was 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@ +-- used to create the currently bound graphics pipeline /must/ be equal +-- to 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' +-- +-- - #VUID-vkCmdDrawClusterIndirectHUAWEI-dynamicRenderingUnusedAttachments-08914# +-- If current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- the +-- +-- feature is not enabled, and -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@ -- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@ @@ -4697,20 +5701,39 @@ foreign import ccall -- to the 'Vulkan.Core10.Enums.Format.Format' used to create -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@ -- --- - #VUID-vkCmdDrawClusterIndirectHUAWEI-pDepthAttachment-07617# If the --- current render pass instance was begun with --- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' --- and +-- - #VUID-vkCmdDrawClusterIndirectHUAWEI-dynamicRenderingUnusedAttachments-08915# +-- If the current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- the +-- +-- feature is enabled, -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@ --- was 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of +-- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the value of -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@ +-- used to create the currently bound graphics pipeline was not equal +-- to the 'Vulkan.Core10.Enums.Format.Format' used to create +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@, +-- the value of the format /must/ be +-- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' +-- +-- - #VUID-vkCmdDrawClusterIndirectHUAWEI-dynamicRenderingUnusedAttachments-08916# +-- If the current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- the +-- +-- feature is not enabled, and +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@ +-- was 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@ -- used to create the currently bound graphics pipeline /must/ be equal -- to 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' -- --- - #VUID-vkCmdDrawClusterIndirectHUAWEI-pStencilAttachment-06182# If --- the current render pass instance was begun with --- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' --- and +-- - #VUID-vkCmdDrawClusterIndirectHUAWEI-dynamicRenderingUnusedAttachments-08917# +-- If current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- the +-- +-- feature is not enabled, and -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@ -- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@ @@ -4718,15 +5741,20 @@ foreign import ccall -- to the 'Vulkan.Core10.Enums.Format.Format' used to create -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@ -- --- - #VUID-vkCmdDrawClusterIndirectHUAWEI-pStencilAttachment-07618# If --- the current render pass instance was begun with --- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' --- and +-- - #VUID-vkCmdDrawClusterIndirectHUAWEI-dynamicRenderingUnusedAttachments-08918# +-- If the current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- the +-- +-- feature is enabled, -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@ --- was 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of +-- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the value of -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@ --- used to create the currently bound graphics pipeline /must/ be equal --- to 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' +-- used to create the currently bound graphics pipeline was not equal +-- to the 'Vulkan.Core10.Enums.Format.Format' used to create +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@, +-- the value of the format /must/ be +-- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' -- -- - #VUID-vkCmdDrawClusterIndirectHUAWEI-imageView-06183# If the current -- render pass instance was begun with @@ -4873,6 +5901,40 @@ foreign import ccall -- 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@renderPass@ -- equal to 'Vulkan.Core10.APIConstants.NULL_HANDLE' -- +-- - #VUID-vkCmdDrawClusterIndirectHUAWEI-pColorAttachments-08963# If the +-- current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- there is a graphics pipeline bound with a fragment shader that +-- statically writes to a color attachment, the color write mask is not +-- zero, color writes are enabled, and the corresponding element of the +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments->imageView@ +-- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', then the +-- corresponding element of +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@ +-- used to create the pipeline /must/ not be +-- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' +-- +-- - #VUID-vkCmdDrawClusterIndirectHUAWEI-pDepthAttachment-08964# If the +-- current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- there is a graphics pipeline bound, depth test is enabled, depth +-- write is enabled, and the +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@ +-- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', then the +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@ +-- used to create the pipeline /must/ not be +-- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' +-- +-- - #VUID-vkCmdDrawClusterIndirectHUAWEI-pStencilAttachment-08965# If +-- the current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- there is a graphics pipeline bound, stencil test is enabled and the +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@ +-- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', then the +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@ +-- used to create the pipeline /must/ not be +-- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' +-- -- - #VUID-vkCmdDrawClusterIndirectHUAWEI-primitivesGeneratedQueryWithRasterizerDiscard-06708# -- If the -- @@ -4899,6 +5961,22 @@ foreign import ccall -- /must/ have been called in the current command buffer prior to this -- drawing command -- +-- - #VUID-vkCmdDrawClusterIndirectHUAWEI-None-07620# If the bound +-- graphics pipeline state was created with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT' +-- dynamic state enabled then +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClampEnableEXT' +-- /must/ have been called in the current command buffer prior to this +-- drawing command +-- +-- - #VUID-vkCmdDrawClusterIndirectHUAWEI-None-09237# If a shader object +-- is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT' +-- stage, then +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetTessellationDomainOriginEXT' +-- /must/ have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08650# If the -- -- feature is enabled, and a shader object is bound to any graphics @@ -4969,6 +6047,17 @@ foreign import ccall -- /must/ have been called in the current command buffer prior to this -- drawing command -- +-- - #VUID-vkCmdDrawClusterIndirectHUAWEI-alphaToCoverageEnable-08919# If +-- the bound graphics pipeline state was created with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT' +-- dynamic state enabled, and @alphaToCoverageEnable@ was +-- 'Vulkan.Core10.FundamentalTypes.TRUE' in the last call to +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT', +-- then the +-- +-- /must/ contain a variable for the alpha @Component@ word in +-- @Location@ 0 at @Index@ 0 +-- -- - #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08654# If a shader object -- is bound to any graphics stage, and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' @@ -4978,6 +6067,16 @@ foreign import ccall -- /must/ have been called in the current command buffer prior to this -- drawing command -- +-- - #VUID-vkCmdDrawClusterIndirectHUAWEI-alphaToCoverageEnable-08920# If +-- a shader object is bound to any graphics stage, and the most recent +-- call to +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT' +-- in the current command buffer set @alphaToCoverageEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.TRUE', then the +-- +-- /must/ contain a variable for the alpha @Component@ word in +-- @Location@ 0 at @Index@ 0 +-- -- - #VUID-vkCmdDrawClusterIndirectHUAWEI-None-07625# If the bound -- graphics pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT' @@ -5007,7 +6106,8 @@ foreign import ccall -- -- - #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08656# If the -- --- feature is enabled, and a shader object is bound to any graphics +-- feature is enabled, and a shader object is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' -- stage, and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' -- in the current command buffer set @rasterizerDiscardEnable@ to @@ -5025,7 +6125,9 @@ foreign import ccall -- drawing command -- -- - #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08657# If a shader object --- is bound to any graphics stage, and the most recent call to +-- is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage, and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' -- in the current command buffer set @rasterizerDiscardEnable@ to -- 'Vulkan.Core10.FundamentalTypes.FALSE', then @@ -5062,7 +6164,9 @@ foreign import ccall -- drawing command -- -- - #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08659# If a shader object --- is bound to any graphics stage, and the most recent call to +-- is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage, and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' -- in the current command buffer set @rasterizerDiscardEnable@ to -- 'Vulkan.Core10.FundamentalTypes.FALSE', then @@ -5080,7 +6184,8 @@ foreign import ccall -- -- - #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08660# If the -- --- feature is enabled, and a shader object is bound to the geometry +-- feature is enabled, and a shader object is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT' -- stage, then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationStreamEXT' -- /must/ have been called in the current command buffer prior to this @@ -5180,7 +6285,9 @@ foreign import ccall -- -- - #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08665# If the -- @VK_EXT_provoking_vertex@ extension is enabled, and a shader object --- is bound to the vertex stage, then +-- is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT' +-- stage, then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetProvokingVertexModeEXT' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -5289,7 +6396,7 @@ foreign import ccall -- stage, then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClipNegativeOneToOneEXT' -- /must/ have been called in the current command buffer prior to this --- drawing command ifdef::VK_EXT_extended_dynamic_state3 +-- drawing command -- -- - #VUID-vkCmdDrawClusterIndirectHUAWEI-None-07640# If the bound -- graphics pipeline state was created with the @@ -5297,7 +6404,7 @@ foreign import ccall -- dynamic state enabled then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetViewportWScalingEnableNV' -- /must/ have been called in the current command buffer prior to this --- drawing command endif::VK_EXT_extended_dynamic_state3 +-- drawing command -- -- - #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08674# If the -- @VK_NV_clip_space_w_scaling@ extension is enabled, and a shader @@ -5331,7 +6438,12 @@ foreign import ccall -- -- - #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08676# If the -- @VK_NV_fragment_coverage_to_color@ extension is enabled, and a --- shader object is bound to any graphics stage, then +-- shader object is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -5346,8 +6458,9 @@ foreign import ccall -- -- - #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08677# If the -- @VK_NV_fragment_coverage_to_color@ extension is enabled, and a --- shader object is bound to any graphics stage, and the most recent --- call to +-- shader object is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage, and the most recent call to -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV' -- in the current command buffer set @coverageToColorEnable@ to -- 'Vulkan.Core10.FundamentalTypes.TRUE', then @@ -5365,7 +6478,10 @@ foreign import ccall -- -- - #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08678# If the -- @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader --- object is bound to any graphics stage, then +-- object is bound to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationModeNV' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -5380,7 +6496,15 @@ foreign import ccall -- -- - #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08679# If the -- @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader --- object is bound to any graphics stage, then +-- object is bound to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationModeNV' +-- in the current command buffer set coverageModulationMode to any +-- value other than +-- 'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.COVERAGE_MODULATION_MODE_NONE_NV', +-- then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -5396,6 +6520,9 @@ foreign import ccall -- - #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08680# If the -- @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader -- object is bound to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV' -- in the current command buffer set @coverageModulationTableEnable@ to -- 'Vulkan.Core10.FundamentalTypes.TRUE', then @@ -5411,10 +6538,26 @@ foreign import ccall -- /must/ have been called in the current command buffer prior to this -- drawing command -- +-- - #VUID-vkCmdDrawClusterIndirectHUAWEI-pipelineFragmentShadingRate-09238# +-- If the +-- +-- feature is enabled, and a shader object is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set rasterizerDiscardEnable to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then +-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR' +-- must have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08681# If the -- -- feature is enabled, and a shader object is bound to any graphics --- stage, then +-- stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetShadingRateImageEnableNV' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -5424,13 +6567,16 @@ foreign import ccall -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV' -- dynamic state enabled then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRepresentativeFragmentTestEnableNV' --- must have been called in the current command buffer prior to this +-- /must/ have been called in the current command buffer prior to this -- drawing command -- -- - #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08682# If the -- -- feature is enabled, and a shader object is bound to any graphics --- stage, then +-- stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRepresentativeFragmentTestEnableNV' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -5446,7 +6592,10 @@ foreign import ccall -- - #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08683# If the -- -- feature is enabled, and a shader object is bound to any graphics --- stage, then +-- stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageReductionModeNV' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -5495,18 +6644,29 @@ foreign import ccall -- in the last call to -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT' -- --- - #VUID-vkCmdDrawClusterIndirectHUAWEI-multisampledRenderToSingleSampled-07475# --- If the bound graphics pipeline state was created with the +-- - #VUID-vkCmdDrawClusterIndirectHUAWEI-rasterizationSamples-07474# If +-- the bound graphics pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT' --- state enabled, and none of the @VK_AMD_mixed_attachment_samples@ --- extension, @VK_NV_framebuffer_mixed_samples@ extension, or the --- --- feature is enabled, then the @rasterizationSamples@ in the last call --- to +-- state enabled, and neither the @VK_AMD_mixed_attachment_samples@ nor +-- the @VK_NV_framebuffer_mixed_samples@ extensions are enabled, then +-- the @rasterizationSamples@ in the last call to -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT' -- /must/ be the same as the current subpass color and\/or -- depth\/stencil attachments -- +-- - #VUID-vkCmdDrawClusterIndirectHUAWEI-None-09211# If the bound +-- graphics pipeline state was created with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT' +-- state enabled, or a shader object is bound to any graphics stage, +-- and the current render pass instance includes a +-- 'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT' +-- structure with @multisampledRenderToSingleSampledEnable@ equal to +-- 'Vulkan.Core10.FundamentalTypes.TRUE', then the +-- @rasterizationSamples@ in the last call to +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT' +-- /must/ be the same as the @rasterizationSamples@ member of that +-- structure +-- -- - #VUID-vkCmdDrawClusterIndirectHUAWEI-firstAttachment-07476# If the -- bound graphics pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT' @@ -5565,7 +6725,7 @@ foreign import ccall -- and -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendAdvancedEXT' -- have enabled advanced blending, then the number of active color --- attachments in the current subpass must not exceed +-- attachments in the current subpass /must/ not exceed -- -- -- - #VUID-vkCmdDrawClusterIndirectHUAWEI-primitivesGeneratedQueryWithNonZeroStreams-07481# @@ -5727,7 +6887,7 @@ foreign import ccall -- the @VK_NV_framebuffer_mixed_samples@ extension is enabled, and if -- current subpass has a depth\/stencil attachment and depth test, -- stencil test, or depth bounds test are enabled in the currently --- bound pipeline state, then the current @rasterizationSamples@ must +-- bound pipeline state, then the current @rasterizationSamples@ /must/ -- be the same as the sample count of the depth\/stencil attachment -- -- - #VUID-vkCmdDrawClusterIndirectHUAWEI-coverageToColorEnable-07490# If @@ -5758,7 +6918,7 @@ foreign import ccall -- states enabled, the current coverage reduction mode -- @coverageReductionMode@, then the current @rasterizationSamples@, -- and the sample counts for the color and depth\/stencil attachments --- (if the subpass has them) must be a valid combination returned by +-- (if the subpass has them) /must/ be a valid combination returned by -- 'Vulkan.Extensions.VK_NV_coverage_reduction_mode.getPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV' -- -- - #VUID-vkCmdDrawClusterIndirectHUAWEI-viewportCount-07492# If the @@ -5846,7 +7006,7 @@ foreign import ccall -- -- feature /must/ be enabled and -- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@strictLines@ --- must be VK_TRUE +-- /must/ be 'Vulkan.Core10.FundamentalTypes.TRUE' -- -- - #VUID-vkCmdDrawClusterIndirectHUAWEI-conservativePointAndLineRasterization-07499# -- If the bound graphics pipeline state was created with the @@ -5873,7 +7033,15 @@ foreign import ccall -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT', -- then -- --- must not be active +-- /must/ not be active +-- +-- - #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08877# If the bound +-- graphics pipeline state was created with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT' +-- dynamic state +-- 'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT' +-- /must/ have been called in the current command buffer prior to this +-- drawing command -- -- - #VUID-vkCmdDrawClusterIndirectHUAWEI-None-07850# If dynamic state -- was inherited from @@ -5884,7 +7052,7 @@ foreign import ccall -- - #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08684# If there is no -- bound graphics pipeline, -- 'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/ --- have been called on the current command buffer with @pStages@ with +-- have been called in the current command buffer with @pStages@ with -- an element of -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT' -- @@ -5893,7 +7061,7 @@ foreign import ccall -- -- feature is enabled, -- 'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/ --- have been called on the current command buffer with @pStages@ with +-- have been called in the current command buffer with @pStages@ with -- an element of -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT' -- @@ -5902,7 +7070,7 @@ foreign import ccall -- -- feature is enabled, -- 'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/ --- have been called on the current command buffer with @pStages@ with +-- have been called in the current command buffer with @pStages@ with -- an element of -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT' -- @@ -5911,14 +7079,14 @@ foreign import ccall -- -- feature is enabled, -- 'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/ --- have been called on the current command buffer with @pStages@ with +-- have been called in the current command buffer with @pStages@ with -- an element of -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT' -- -- - #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08688# If there is no -- bound graphics pipeline, -- 'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/ --- have been called on the current command buffer with @pStages@ with +-- have been called in the current command buffer with @pStages@ with -- an element of -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' -- @@ -5927,7 +7095,7 @@ foreign import ccall -- -- feature is enabled, -- 'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/ --- have been called on the current command buffer with @pStages@ with +-- have been called in the current command buffer with @pStages@ with -- an element of -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT' -- @@ -5936,7 +7104,7 @@ foreign import ccall -- -- feature is enabled, -- 'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/ --- have been called on the current command buffer with @pStages@ with +-- have been called in the current command buffer with @pStages@ with -- an element of -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT' -- @@ -5948,8 +7116,8 @@ foreign import ccall -- features is enabled, one of the -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT' or -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT' --- stages must have a valid 'Vulkan.Extensions.Handles.ShaderEXT' --- bound, and the other must have no +-- stages /must/ have a valid 'Vulkan.Extensions.Handles.ShaderEXT' +-- bound, and the other /must/ have no -- 'Vulkan.Extensions.Handles.ShaderEXT' bound -- -- - #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08694# If there is no @@ -6014,6 +7182,37 @@ foreign import ccall -- 'Vulkan.Extensions.VK_EXT_shader_object.createShadersEXT' call -- /must/ not have any 'Vulkan.Extensions.Handles.ShaderEXT' bound -- +-- - #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08878# All bound graphics +-- shader objects /must/ have been created with identical or +-- identically defined push constant ranges +-- +-- - #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08879# All bound graphics +-- shader objects /must/ have been created with identical or +-- identically defined arrays of descriptor set layouts +-- +-- - #VUID-vkCmdDrawClusterIndirectHUAWEI-colorAttachmentCount-09372# If +-- the current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' +-- and a +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ +-- equal to @1@, a color attachment with a resolve mode of +-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID', +-- and a fragment shader is bound, it /must/ not declare the +-- @DepthReplacing@ or @StencilRefReplacingEXT@ execution modes +-- +-- - #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08880# If a shader object +-- is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage and the +-- +-- feature is enabled on the device, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE' +-- 'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT' +-- /must/ have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdDrawClusterIndirectHUAWEI-pDynamicStates-08715# If the -- bound graphics pipeline state includes a fragment shader stage, was -- created with @@ -6038,6 +7237,33 @@ foreign import ccall -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilWriteMask' /must/ -- be @0@ -- +-- - #VUID-vkCmdDrawClusterIndirectHUAWEI-None-09116# If a shader object +-- is bound to any graphics stage or the currently bound graphics +-- pipeline was created with +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_MASK_EXT', +-- and the format of any color attachment is +-- 'Vulkan.Core10.Enums.Format.FORMAT_E5B9G9R9_UFLOAT_PACK32', the +-- corresponding element of the @pColorWriteMasks@ parameter of +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorWriteMaskEXT' +-- /must/ either include all of +-- 'Vulkan.Core10.Enums.ColorComponentFlagBits.COLOR_COMPONENT_R_BIT', +-- 'Vulkan.Core10.Enums.ColorComponentFlagBits.COLOR_COMPONENT_G_BIT', +-- and +-- 'Vulkan.Core10.Enums.ColorComponentFlagBits.COLOR_COMPONENT_B_BIT', +-- or none of them +-- +-- - #VUID-vkCmdDrawClusterIndirectHUAWEI-maxFragmentDualSrcAttachments-09239# +-- If +-- +-- is enabled for any attachment where either the source or destination +-- blend factors for that attachment +-- , +-- the maximum value of @Location@ for any output attachment +-- +-- in the @Fragment@ @Execution@ @Model@ executed by this command +-- /must/ be less than +-- +-- -- - #VUID-vkCmdDrawClusterIndirectHUAWEI-stage-06480# The bound graphics -- pipeline /must/ not have been created with the -- 'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo'::@stage@ @@ -6360,11 +7586,11 @@ instance Zero PhysicalDeviceClusterCullingShaderFeaturesHUAWEI where zero -type HUAWEI_CLUSTER_CULLING_SHADER_SPEC_VERSION = 1 +type HUAWEI_CLUSTER_CULLING_SHADER_SPEC_VERSION = 2 -- No documentation found for TopLevel "VK_HUAWEI_CLUSTER_CULLING_SHADER_SPEC_VERSION" pattern HUAWEI_CLUSTER_CULLING_SHADER_SPEC_VERSION :: forall a . Integral a => a -pattern HUAWEI_CLUSTER_CULLING_SHADER_SPEC_VERSION = 1 +pattern HUAWEI_CLUSTER_CULLING_SHADER_SPEC_VERSION = 2 type HUAWEI_CLUSTER_CULLING_SHADER_EXTENSION_NAME = "VK_HUAWEI_cluster_culling_shader" diff --git a/src/Vulkan/Extensions/VK_HUAWEI_cluster_culling_shader.hs-boot b/src/Vulkan/Extensions/VK_HUAWEI_cluster_culling_shader.hs-boot index 14b668b97..d6e676fa2 100644 --- a/src/Vulkan/Extensions/VK_HUAWEI_cluster_culling_shader.hs-boot +++ b/src/Vulkan/Extensions/VK_HUAWEI_cluster_culling_shader.hs-boot @@ -15,7 +15,10 @@ -- 405 -- -- [__Revision__] --- 1 +-- 2 +-- +-- [__Ratification Status__] +-- Not ratified -- -- [__Extension and Version Dependencies__] -- @@ -63,29 +66,29 @@ -- -- == Description -- --- Cluster Culling Shader(CCS) is similar to the existing compute shader; --- its main purpose is to provide an execution environment in order to --- perform coarse-level geometry culling and level-of-detail selection more --- efficiently on GPU. --- --- The traditional 2-pass GPU culling solution using compute shader needs a --- pipeline barrier between compute pipeline and graphics pipeline, --- sometimes, in order to optimize performance, an additional compaction --- process may also be required. this extension improve the above mentioned --- shortcomings which can allow compute shader directly emit visible --- clusters to following graphics pipeline. --- --- A set of new built-in output variables are used to express visible --- cluster, in addition, a new built-in function is used to emit these --- variables from CCS to IA stage, then IA can use these variables to --- fetches vertices of visible cluster and drive vertex shader to shading --- these vertices. Note that ccs do not work at the same time with geometry --- shader or tessellation shader. --- --- As stated above, both IA and vertex shader are preserved, vertex shader --- still used for vertices position shading, instead of directly outputting --- a set of transformed vertices from compute shader, this makes CCS more --- suitable for mobile GPUs. +-- Cluster Culling Shaders (CCS) are similar to the existing compute +-- shaders. Their main purpose is to provide an execution environment in +-- order to perform coarse-level geometry culling and LOD selection more +-- efficiently on the GPU. +-- +-- The traditional 2-pass GPU culling solution using a compute shader +-- sometimes needs a pipeline barrier between compute and graphics pipeline +-- to optimize performance. An additional compaction process may also be +-- required. This extension addresses these shortcomings, allowing compute +-- shaders to directly emit visible clusters to the following graphics +-- pipeline. +-- +-- A set of new built-in output variables are used to express a visible +-- cluster. In addition, a new built-in function is used to emit these +-- variables from CCS to the IA stage. The IA stage can use these variables +-- to fetches vertices of a visible cluster and drive vertex shaders to +-- shading these vertices. +-- +-- Note that CCS do not work with geometry or tessellation shaders, but +-- both IA and vertex shaders are preserved. Vertex shaders are still used +-- for vertex position shading, instead of directly outputting transformed +-- vertices from the compute shader. This makes CCS more suitable for +-- mobile GPUs. -- -- == New Commands -- @@ -155,7 +158,7 @@ -- -- - -- --- == Sample code +-- == Sample Code -- -- Example of cluster culling in a GLSL shader -- @@ -349,6 +352,10 @@ -- -- - Internal revisions -- +-- - Revision 2, 2023-04-02 (Jon Leech) +-- +-- - Grammar edits. +-- -- == See Also -- -- 'PhysicalDeviceClusterCullingShaderFeaturesHUAWEI', diff --git a/src/Vulkan/Extensions/VK_HUAWEI_invocation_mask.hs b/src/Vulkan/Extensions/VK_HUAWEI_invocation_mask.hs index b8a7fbde5..ea2ee008d 100644 --- a/src/Vulkan/Extensions/VK_HUAWEI_invocation_mask.hs +++ b/src/Vulkan/Extensions/VK_HUAWEI_invocation_mask.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- and @@ -240,9 +243,9 @@ foreign import ccall -- invocation mask image /must/ have the value @0@ or @1@. The value 1 -- means the invocation is active -- --- - #VUID-vkCmdBindInvocationMaskHUAWEI-width-04983# @width@ in +-- - #VUID-vkCmdBindInvocationMaskHUAWEI-depth-04983# @depth@ in -- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.cmdTraceRaysKHR' --- should be 1 +-- /must/ be 1 -- -- == Valid Usage (Implicit) -- diff --git a/src/Vulkan/Extensions/VK_HUAWEI_invocation_mask.hs-boot b/src/Vulkan/Extensions/VK_HUAWEI_invocation_mask.hs-boot index 579427bda..a02e795ae 100644 --- a/src/Vulkan/Extensions/VK_HUAWEI_invocation_mask.hs-boot +++ b/src/Vulkan/Extensions/VK_HUAWEI_invocation_mask.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- and diff --git a/src/Vulkan/Extensions/VK_HUAWEI_subpass_shading.hs b/src/Vulkan/Extensions/VK_HUAWEI_subpass_shading.hs index 0cefe6045..da5f216e7 100644 --- a/src/Vulkan/Extensions/VK_HUAWEI_subpass_shading.hs +++ b/src/Vulkan/Extensions/VK_HUAWEI_subpass_shading.hs @@ -15,7 +15,10 @@ -- 370 -- -- [__Revision__] --- 2 +-- 3 +-- +-- [__Ratification Status__] +-- Not ratified -- -- [__Extension and Version Dependencies__] -- @@ -113,7 +116,9 @@ -- - Extending -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlagBits2': -- --- - 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI' +-- - 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI' +-- +-- - 'PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI' -- -- - Extending -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.ShaderStageFlagBits': @@ -245,12 +250,12 @@ -- > VkMemoryBarrier2KHR fragmentToSubpassShading = { -- > VK_STRUCTURE_TYPE_MEMORY_BARRIER_2_KHR, NULL, -- > VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT_KHR, VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT|VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT, --- > VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI, VK_ACCESS_INPUT_ATTACHMENT_READ_BIT +-- > VK_PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI, VK_ACCESS_INPUT_ATTACHMENT_READ_BIT -- > }; -- > -- > VkMemoryBarrier2KHR subpassShadingToFragment = { -- > VK_STRUCTURE_TYPE_MEMORY_BARRIER_2_KHR, NULL, --- > VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI, VK_ACCESS_SHADER_WRITE_BIT, +-- > VK_PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI, VK_ACCESS_SHADER_WRITE_BIT, -- > VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT_KHR, VK_ACCESS_SHADER_READ_BIT -- > }; -- > @@ -318,6 +323,12 @@ -- -- == Version History -- +-- - Revision 3, 2023-06-19 (Pan Gao) +-- +-- - Rename 'PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI' to +-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI' +-- to better aligned with naming of other pipeline stages +-- -- - Revision 2, 2021-06-28 (Hueilong Wang) -- -- - Change vkGetSubpassShadingMaxWorkgroupSizeHUAWEI to @@ -344,6 +355,7 @@ -- the generator scripts, not directly. module Vulkan.Extensions.VK_HUAWEI_subpass_shading ( getDeviceSubpassShadingMaxWorkgroupSizeHUAWEI , cmdSubpassShadingHUAWEI + , pattern PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI , SubpassShadingPipelineCreateInfoHUAWEI(..) , PhysicalDeviceSubpassShadingPropertiesHUAWEI(..) , PhysicalDeviceSubpassShadingFeaturesHUAWEI(..) @@ -405,6 +417,8 @@ import Vulkan.Core10.Enums.Result (Result) import Vulkan.Core10.Enums.Result (Result(..)) import Vulkan.Core10.Enums.StructureType (StructureType) import Vulkan.Exception (VulkanException(..)) +import Vulkan.Core13.Enums.PipelineStageFlags2 (PipelineStageFlags2) +import Vulkan.Core13.Enums.PipelineStageFlags2 (PipelineStageFlagBits2(PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI)) import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI)) import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI)) import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI)) @@ -541,6 +555,16 @@ foreign import ccall -- /must/ contain -- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT' -- +-- - #VUID-vkCmdSubpassShadingHUAWEI-None-02693# If the +-- +-- extension is not enabled and any 'Vulkan.Core10.Handles.ImageView' +-- is sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a +-- result of this command, it /must/ not have a +-- 'Vulkan.Core10.Enums.ImageViewType.ImageViewType' of +-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_3D', +-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE', or +-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE_ARRAY' +-- -- - #VUID-vkCmdSubpassShadingHUAWEI-filterCubic-02694# Any -- 'Vulkan.Core10.Handles.ImageView' being sampled with -- 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a result of this @@ -566,6 +590,33 @@ foreign import ccall -- returned by -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceImageFormatProperties2' -- +-- - #VUID-vkCmdSubpassShadingHUAWEI-cubicRangeClamp-09212# If the +-- +-- feature is not enabled, then any 'Vulkan.Core10.Handles.ImageView' +-- being sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as +-- a result of this command +-- +-- [/must/ not have a 'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo'] +-- @reductionMode@ equal to +-- 'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM' +-- +-- - #VUID-vkCmdSubpassShadingHUAWEI-reductionMode-09213# Any +-- 'Vulkan.Core10.Handles.ImageView' being sampled with a +-- 'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo'::@reductionMode@ +-- equal to +-- 'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM' +-- as a result of this command /must/ sample with +-- 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' +-- +-- - #VUID-vkCmdSubpassShadingHUAWEI-selectableCubicWeights-09214# If the +-- +-- feature is not enabled, then any 'Vulkan.Core10.Handles.ImageView' +-- being sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as +-- a result of this command /must/ have +-- 'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.SamplerCubicWeightsCreateInfoQCOM'::@cubicWeights@ +-- equal to +-- 'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM' +-- -- - #VUID-vkCmdSubpassShadingHUAWEI-flags-02696# Any -- 'Vulkan.Core10.Handles.Image' created with a -- 'Vulkan.Core10.Image.ImageCreateInfo'::@flags@ containing @@ -607,11 +658,9 @@ foreign import ccall -- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT' -- -- - #VUID-vkCmdSubpassShadingHUAWEI-None-08600# For each set /n/ that is --- statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to the --- pipeline bind point used by this command, or by any of the --- 'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages --- corresponding to the pipeline bind point used by this command, a --- descriptor set /must/ have been bound to /n/ at the same pipeline +-- statically used by +-- , +-- a descriptor set /must/ have been bound to /n/ at the same pipeline -- bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is -- compatible for set /n/, with the -- 'Vulkan.Core10.Handles.PipelineLayout' or @@ -621,12 +670,10 @@ foreign import ccall -- -- -- - #VUID-vkCmdSubpassShadingHUAWEI-None-08601# For each push constant --- that is statically used by the 'Vulkan.Core10.Handles.Pipeline' --- bound to the pipeline bind point used by this command, or by any of --- the 'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages --- corresponding to the pipeline bind point used by this command, a --- push constant value /must/ have been set for the same pipeline bind --- point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is +-- that is statically used by +-- , +-- a push constant value /must/ have been set for the same pipeline +-- bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is -- compatible for push constants, with the -- 'Vulkan.Core10.Handles.PipelineLayout' or -- 'Vulkan.Core10.Handles.DescriptorSetLayout' and @@ -638,12 +685,10 @@ foreign import ccall -- - #VUID-vkCmdSubpassShadingHUAWEI-maintenance4-08602# If the -- -- feature is not enabled, then for each push constant that is --- statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to the --- pipeline bind point used by this command, or by any of the --- 'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages --- corresponding to the pipeline bind point used by this command, a --- push constant value /must/ have been set for the same pipeline bind --- point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is +-- statically used by +-- , +-- a push constant value /must/ have been set for the same pipeline +-- bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is -- compatible for push constants, with the -- 'Vulkan.Core10.Handles.PipelineLayout' or -- 'Vulkan.Core10.Handles.DescriptorSetLayout' and @@ -806,34 +851,25 @@ foreign import ccall -- buffer as specified in the descriptor set bound to the same pipeline -- bind point -- --- - #VUID-vkCmdSubpassShadingHUAWEI-commandBuffer-08614# If +-- - #VUID-vkCmdSubpassShadingHUAWEI-commandBuffer-02707# If -- @commandBuffer@ is an unprotected command buffer and -- --- is not supported, any resource accessed by the --- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind --- point used by this command or any --- 'Vulkan.Extensions.Handles.ShaderEXT' object bound to a stage --- corresponding to the pipeline bind point used by this command /must/ --- not be a protected resource --- --- - #VUID-vkCmdSubpassShadingHUAWEI-None-08615# If the --- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind --- point used by this command or any --- 'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding --- to the pipeline bind point used by this command accesses a --- 'Vulkan.Core10.Handles.Sampler' or 'Vulkan.Core10.Handles.ImageView' --- object that enables +-- is not supported, any resource accessed by +-- +-- /must/ not be a protected resource +-- +-- - #VUID-vkCmdSubpassShadingHUAWEI-None-06550# If +-- +-- accesses a 'Vulkan.Core10.Handles.Sampler' or +-- 'Vulkan.Core10.Handles.ImageView' object that enables -- , -- that object /must/ only be used with @OpImageSample*@ or -- @OpImageSparseSample*@ instructions -- --- - #VUID-vkCmdSubpassShadingHUAWEI-ConstOffset-08616# If the --- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind --- point used by this command or any --- 'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding --- to the pipeline bind point used by this command accesses a --- 'Vulkan.Core10.Handles.Sampler' or 'Vulkan.Core10.Handles.ImageView' --- object that enables +-- - #VUID-vkCmdSubpassShadingHUAWEI-ConstOffset-06551# If +-- +-- accesses a 'Vulkan.Core10.Handles.Sampler' or +-- 'Vulkan.Core10.Handles.ImageView' object that enables -- , -- that object /must/ not use the @ConstOffset@ and @Offset@ operands -- @@ -845,17 +881,23 @@ foreign import ccall -- -- - #VUID-vkCmdSubpassShadingHUAWEI-format-07753# If a -- 'Vulkan.Core10.Handles.ImageView' is accessed as a result of this --- command, then the image view’s @format@ /must/ match the numeric --- format from the @Sampled@ @Type@ operand of the @OpTypeImage@ as --- described in the SPIR-V Sampled Type column of the --- --- table --- --- - #VUID-vkCmdSubpassShadingHUAWEI-None-04115# If a --- 'Vulkan.Core10.Handles.ImageView' is accessed using @OpImageWrite@ --- as a result of this command, then the @Type@ of the @Texel@ operand --- of that instruction /must/ have at least as many components as the --- image view’s format +-- command, then the +-- +-- of the image view’s @format@ and the @Sampled@ @Type@ operand of the +-- @OpTypeImage@ /must/ match +-- +-- - #VUID-vkCmdSubpassShadingHUAWEI-OpImageWrite-08795# If a +-- 'Vulkan.Core10.Handles.ImageView' created with a format other than +-- 'Vulkan.Core10.Enums.Format.FORMAT_A8_UNORM_KHR' is accessed using +-- @OpImageWrite@ as a result of this command, then the @Type@ of the +-- @Texel@ operand of that instruction /must/ have at least as many +-- components as the image view’s format +-- +-- - #VUID-vkCmdSubpassShadingHUAWEI-OpImageWrite-08796# If a +-- 'Vulkan.Core10.Handles.ImageView' created with the format +-- 'Vulkan.Core10.Enums.Format.FORMAT_A8_UNORM_KHR' is accessed using +-- @OpImageWrite@ as a result of this command, then the @Type@ of the +-- @Texel@ operand of that instruction /must/ have four components -- -- - #VUID-vkCmdSubpassShadingHUAWEI-OpImageWrite-04469# If a -- 'Vulkan.Core10.Handles.BufferView' is accessed using @OpImageWrite@ @@ -959,6 +1001,8 @@ foreign import ccall -- -- - #VUID-vkCmdSubpassShadingHUAWEI-OpImageWeightedSampleQCOM-06977# If -- @OpImageWeightedSampleQCOM@, @OpImageBoxFilterQCOM@, +-- @OpImageBlockMatchWindowSSDQCOM@, @OpImageBlockMatchWindowSADQCOM@, +-- @OpImageBlockMatchGatherSSDQCOM@, @OpImageBlockMatchGatherSADQCOM@, -- @OpImageBlockMatchSSDQCOM@, or @OpImageBlockMatchSADQCOM@ uses a -- 'Vulkan.Core10.Handles.Sampler' as a result of this command, then -- the sampler /must/ have been created with @@ -966,12 +1010,35 @@ foreign import ccall -- -- - #VUID-vkCmdSubpassShadingHUAWEI-OpImageWeightedSampleQCOM-06978# If -- any command other than @OpImageWeightedSampleQCOM@, --- @OpImageBoxFilterQCOM@, @OpImageBlockMatchSSDQCOM@, or +-- @OpImageBoxFilterQCOM@, @OpImageBlockMatchWindowSSDQCOM@, +-- @OpImageBlockMatchWindowSADQCOM@, @OpImageBlockMatchGatherSSDQCOM@, +-- @OpImageBlockMatchGatherSADQCOM@, @OpImageBlockMatchSSDQCOM@, or -- @OpImageBlockMatchSADQCOM@ uses a 'Vulkan.Core10.Handles.Sampler' as -- a result of this command, then the sampler /must/ not have been -- created with -- 'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM' -- +-- - #VUID-vkCmdSubpassShadingHUAWEI-OpImageBlockMatchWindow-09215# If a +-- @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@ +-- instruction is used to read from an +-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then +-- the image view’s +-- +-- /must/ contain +-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM' +-- +-- - #VUID-vkCmdSubpassShadingHUAWEI-OpImageBlockMatchWindow-09216# If a +-- @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@ +-- instruction is used to read from an +-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then +-- the image view’s format /must/ be a single-component format. +-- +-- - #VUID-vkCmdSubpassShadingHUAWEI-OpImageBlockMatchWindow-09217# If a +-- @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@ +-- read from a reference image as result of this command, then the +-- specified reference coordinates /must/ not fail +-- +-- -- - #VUID-vkCmdSubpassShadingHUAWEI-None-07288# Any shader invocation -- executed by this command /must/ -- @@ -1040,6 +1107,10 @@ cmdSubpassShadingHUAWEI commandBuffer = liftIO $ do pure $ () +-- No documentation found for TopLevel "VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI" +pattern PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI = PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI + + -- | VkSubpassShadingPipelineCreateInfoHUAWEI - Structure specifying -- parameters of a newly created subpass shading pipeline -- @@ -1243,11 +1314,11 @@ instance Zero PhysicalDeviceSubpassShadingFeaturesHUAWEI where zero -type HUAWEI_SUBPASS_SHADING_SPEC_VERSION = 2 +type HUAWEI_SUBPASS_SHADING_SPEC_VERSION = 3 -- No documentation found for TopLevel "VK_HUAWEI_SUBPASS_SHADING_SPEC_VERSION" pattern HUAWEI_SUBPASS_SHADING_SPEC_VERSION :: forall a . Integral a => a -pattern HUAWEI_SUBPASS_SHADING_SPEC_VERSION = 2 +pattern HUAWEI_SUBPASS_SHADING_SPEC_VERSION = 3 type HUAWEI_SUBPASS_SHADING_EXTENSION_NAME = "VK_HUAWEI_subpass_shading" diff --git a/src/Vulkan/Extensions/VK_HUAWEI_subpass_shading.hs-boot b/src/Vulkan/Extensions/VK_HUAWEI_subpass_shading.hs-boot index 6f24e0f8e..faf2e44e0 100644 --- a/src/Vulkan/Extensions/VK_HUAWEI_subpass_shading.hs-boot +++ b/src/Vulkan/Extensions/VK_HUAWEI_subpass_shading.hs-boot @@ -15,7 +15,10 @@ -- 370 -- -- [__Revision__] --- 2 +-- 3 +-- +-- [__Ratification Status__] +-- Not ratified -- -- [__Extension and Version Dependencies__] -- @@ -113,7 +116,9 @@ -- - Extending -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlagBits2': -- --- - 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI' +-- - 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI' +-- +-- - 'PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI' -- -- - Extending -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.ShaderStageFlagBits': @@ -245,12 +250,12 @@ -- > VkMemoryBarrier2KHR fragmentToSubpassShading = { -- > VK_STRUCTURE_TYPE_MEMORY_BARRIER_2_KHR, NULL, -- > VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT_KHR, VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT|VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT, --- > VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI, VK_ACCESS_INPUT_ATTACHMENT_READ_BIT +-- > VK_PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI, VK_ACCESS_INPUT_ATTACHMENT_READ_BIT -- > }; -- > -- > VkMemoryBarrier2KHR subpassShadingToFragment = { -- > VK_STRUCTURE_TYPE_MEMORY_BARRIER_2_KHR, NULL, --- > VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI, VK_ACCESS_SHADER_WRITE_BIT, +-- > VK_PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI, VK_ACCESS_SHADER_WRITE_BIT, -- > VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT_KHR, VK_ACCESS_SHADER_READ_BIT -- > }; -- > @@ -318,6 +323,12 @@ -- -- == Version History -- +-- - Revision 3, 2023-06-19 (Pan Gao) +-- +-- - Rename 'PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI' to +-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI' +-- to better aligned with naming of other pipeline stages +-- -- - Revision 2, 2021-06-28 (Hueilong Wang) -- -- - Change vkGetSubpassShadingMaxWorkgroupSizeHUAWEI to diff --git a/src/Vulkan/Extensions/VK_IMG_filter_cubic.hs b/src/Vulkan/Extensions/VK_IMG_filter_cubic.hs index c41b33aed..e3074c51b 100644 --- a/src/Vulkan/Extensions/VK_IMG_filter_cubic.hs +++ b/src/Vulkan/Extensions/VK_IMG_filter_cubic.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__; __Contact__] -- -- - Tobias Hector @@ -62,7 +65,7 @@ -- -- > VkSamplerCreateInfo createInfo = -- > { --- > VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO // sType +-- > .sType = VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO, -- > // Other members set to application-desired values -- > }; -- > diff --git a/src/Vulkan/Extensions/VK_IMG_format_pvrtc.hs b/src/Vulkan/Extensions/VK_IMG_format_pvrtc.hs index a2ed127ba..4f1c249fe 100644 --- a/src/Vulkan/Extensions/VK_IMG_format_pvrtc.hs +++ b/src/Vulkan/Extensions/VK_IMG_format_pvrtc.hs @@ -17,7 +17,10 @@ -- [__Revision__] -- 1 -- --- [__Extension and Version Dependencies__; __Deprecation state__] +-- [__Ratification Status__] +-- Not ratified +-- +-- [__Extension and Version Dependencies__; __Deprecation State__] -- -- - /Deprecated/ without replacement -- diff --git a/src/Vulkan/Extensions/VK_INTEL_performance_query.hs b/src/Vulkan/Extensions/VK_INTEL_performance_query.hs index 1a55ce860..a46d5dff4 100644 --- a/src/Vulkan/Extensions/VK_INTEL_performance_query.hs +++ b/src/Vulkan/Extensions/VK_INTEL_performance_query.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 2 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__; __Special Use__] -- -- - @@ -972,6 +975,7 @@ foreign import ccall -- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ -- | | | | | | -- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================+ +-- | - | - | - | Any | - | -- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ -- -- == Return Codes diff --git a/src/Vulkan/Extensions/VK_INTEL_performance_query.hs-boot b/src/Vulkan/Extensions/VK_INTEL_performance_query.hs-boot index c675d6970..ddb8c8920 100644 --- a/src/Vulkan/Extensions/VK_INTEL_performance_query.hs-boot +++ b/src/Vulkan/Extensions/VK_INTEL_performance_query.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 2 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__; __Special Use__] -- -- - diff --git a/src/Vulkan/Extensions/VK_INTEL_shader_integer_functions2.hs b/src/Vulkan/Extensions/VK_INTEL_shader_integer_functions2.hs index 9b542b271..5d08ca68a 100644 --- a/src/Vulkan/Extensions/VK_INTEL_shader_integer_functions2.hs +++ b/src/Vulkan/Extensions/VK_INTEL_shader_integer_functions2.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- diff --git a/src/Vulkan/Extensions/VK_INTEL_shader_integer_functions2.hs-boot b/src/Vulkan/Extensions/VK_INTEL_shader_integer_functions2.hs-boot index 90a56ee08..c5fc51d90 100644 --- a/src/Vulkan/Extensions/VK_INTEL_shader_integer_functions2.hs-boot +++ b/src/Vulkan/Extensions/VK_INTEL_shader_integer_functions2.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- diff --git a/src/Vulkan/Extensions/VK_KHR_16bit_storage.hs b/src/Vulkan/Extensions/VK_KHR_16bit_storage.hs index f01403285..99f2964b3 100644 --- a/src/Vulkan/Extensions/VK_KHR_16bit_storage.hs +++ b/src/Vulkan/Extensions/VK_KHR_16bit_storage.hs @@ -17,12 +17,15 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Ratified +-- -- [__Extension and Version Dependencies__] -- -- and -- -- --- [__Deprecation state__] +-- [__Deprecation State__] -- -- - /Promoted/ to -- diff --git a/src/Vulkan/Extensions/VK_KHR_8bit_storage.hs b/src/Vulkan/Extensions/VK_KHR_8bit_storage.hs index d7441563b..877c5d538 100644 --- a/src/Vulkan/Extensions/VK_KHR_8bit_storage.hs +++ b/src/Vulkan/Extensions/VK_KHR_8bit_storage.hs @@ -17,12 +17,15 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Ratified +-- -- [__Extension and Version Dependencies__] -- -- and -- -- --- [__Deprecation state__] +-- [__Deprecation State__] -- -- - /Promoted/ to -- diff --git a/src/Vulkan/Extensions/VK_KHR_acceleration_structure.hs b/src/Vulkan/Extensions/VK_KHR_acceleration_structure.hs index da047476d..3d274b9e4 100644 --- a/src/Vulkan/Extensions/VK_KHR_acceleration_structure.hs +++ b/src/Vulkan/Extensions/VK_KHR_acceleration_structure.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 13 -- +-- [__Ratification Status__] +-- Ratified +-- -- [__Extension and Version Dependencies__] -- -- and @@ -285,11 +288,6 @@ -- -- - 'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR' -- --- - Extending --- 'Vulkan.Extensions.VK_EXT_debug_report.DebugReportObjectTypeEXT': --- --- - 'Vulkan.Extensions.VK_EXT_debug_report.DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT' --- -- - Extending 'Vulkan.Core10.Enums.DescriptorType.DescriptorType': -- -- - 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR' @@ -351,6 +349,15 @@ -- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR' -- -- If +-- +-- is supported: +-- +-- - Extending +-- 'Vulkan.Extensions.VK_EXT_debug_report.DebugReportObjectTypeEXT': +-- +-- - 'Vulkan.Extensions.VK_EXT_debug_report.DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT' +-- +-- If -- -- is supported: -- @@ -1211,6 +1218,7 @@ module Vulkan.Extensions.VK_KHR_acceleration_structure ( destroyAccelerationStr , BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR , BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR , BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR + , BUILD_ACCELERATION_STRUCTURE_ALLOW_DATA_ACCESS_KHR , BUILD_ACCELERATION_STRUCTURE_ALLOW_DISPLACEMENT_MICROMAP_UPDATE_NV , BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_DATA_UPDATE_EXT , BUILD_ACCELERATION_STRUCTURE_ALLOW_DISABLE_OPACITY_MICROMAPS_EXT @@ -1433,6 +1441,11 @@ foreign import ccall -- -- == Valid Usage -- +-- - #VUID-vkDestroyAccelerationStructureKHR-accelerationStructure-08934# +-- The +-- +-- feature /must/ be enabled +-- -- - #VUID-vkDestroyAccelerationStructureKHR-accelerationStructure-02442# -- All submitted commands that refer to @accelerationStructure@ /must/ -- have completed execution @@ -1539,6 +1552,11 @@ foreign import ccall -- -- == Valid Usage -- +-- - #VUID-vkCmdCopyAccelerationStructureKHR-accelerationStructure-08925# +-- The +-- +-- feature /must/ be enabled +-- -- - #VUID-vkCmdCopyAccelerationStructureKHR-buffer-03737# The @buffer@ -- used to create @pInfo->src@ /must/ be bound to device memory -- @@ -1630,6 +1648,10 @@ foreign import ccall -- -- == Valid Usage -- +-- - #VUID-vkCopyAccelerationStructureKHR-accelerationStructureHostCommands-03582# +-- The +-- +-- -- - #VUID-vkCopyAccelerationStructureKHR-deferredOperation-03677# If -- @deferredOperation@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', -- it /must/ be a valid @@ -1644,10 +1666,6 @@ foreign import ccall -- -- - #VUID-vkCopyAccelerationStructureKHR-buffer-03728# The @buffer@ used -- to create @pInfo->dst@ /must/ be bound to host-visible device memory --- --- - #VUID-vkCopyAccelerationStructureKHR-accelerationStructureHostCommands-03582# --- The --- -- feature /must/ be enabled -- -- - #VUID-vkCopyAccelerationStructureKHR-buffer-03780# The @buffer@ used @@ -1804,6 +1822,11 @@ foreign import ccall -- -- == Valid Usage -- +-- - #VUID-vkCmdCopyAccelerationStructureToMemoryKHR-accelerationStructure-08926# +-- The +-- +-- feature /must/ be enabled +-- -- - #VUID-vkCmdCopyAccelerationStructureToMemoryKHR-pInfo-03739# -- @pInfo->dst.deviceAddress@ /must/ be a valid device address for a -- buffer bound to device memory @@ -1914,6 +1937,11 @@ foreign import ccall -- -- == Valid Usage -- +-- - #VUID-vkCopyAccelerationStructureToMemoryKHR-accelerationStructureHostCommands-03584# +-- The +-- +-- feature /must/ be enabled +-- -- - #VUID-vkCopyAccelerationStructureToMemoryKHR-deferredOperation-03677# -- If @deferredOperation@ is not -- 'Vulkan.Core10.APIConstants.NULL_HANDLE', it /must/ be a valid @@ -1933,11 +1961,6 @@ foreign import ccall -- - #VUID-vkCopyAccelerationStructureToMemoryKHR-pInfo-03751# -- @pInfo->dst.hostAddress@ /must/ be aligned to 16 bytes -- --- - #VUID-vkCopyAccelerationStructureToMemoryKHR-accelerationStructureHostCommands-03584# --- The --- --- 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 @@ -2057,6 +2080,11 @@ foreign import ccall -- -- == Valid Usage -- +-- - #VUID-vkCmdCopyMemoryToAccelerationStructureKHR-accelerationStructure-08927# +-- The +-- +-- feature /must/ be enabled +-- -- - #VUID-vkCmdCopyMemoryToAccelerationStructureKHR-pInfo-03742# -- @pInfo->src.deviceAddress@ /must/ be a valid device address for a -- buffer bound to device memory @@ -2163,6 +2191,11 @@ foreign import ccall -- -- == Valid Usage -- +-- - #VUID-vkCopyMemoryToAccelerationStructureKHR-accelerationStructureHostCommands-03583# +-- The +-- +-- feature /must/ be enabled +-- -- - #VUID-vkCopyMemoryToAccelerationStructureKHR-deferredOperation-03677# -- If @deferredOperation@ is not -- 'Vulkan.Core10.APIConstants.NULL_HANDLE', it /must/ be a valid @@ -2182,11 +2215,6 @@ foreign import ccall -- @buffer@ used to create @pInfo->dst@ /must/ be bound to host-visible -- device memory -- --- - #VUID-vkCopyMemoryToAccelerationStructureKHR-accelerationStructureHostCommands-03583# --- The --- --- 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 @@ -2298,6 +2326,11 @@ foreign import ccall -- -- == Valid Usage -- +-- - #VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-accelerationStructure-08924# +-- The +-- +-- feature /must/ be enabled +-- -- - #VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-queryPool-02493# -- @queryPool@ /must/ have been created with a @queryType@ matching -- @queryType@ @@ -2455,6 +2488,11 @@ foreign import ccall -- -- == Valid Usage -- +-- - #VUID-vkWriteAccelerationStructuresPropertiesKHR-accelerationStructureHostCommands-03585# +-- The +-- +-- feature /must/ be enabled +-- -- - #VUID-vkWriteAccelerationStructuresPropertiesKHR-pAccelerationStructures-04964# -- All acceleration structures in @pAccelerationStructures@ /must/ have -- been built prior to the execution of this command @@ -2531,11 +2569,6 @@ foreign import ccall -- @pAccelerationStructures@ /must/ be bound to host-visible device -- memory -- --- - #VUID-vkWriteAccelerationStructuresPropertiesKHR-accelerationStructureHostCommands-03585# --- The --- --- feature /must/ be enabled --- -- - #VUID-vkWriteAccelerationStructuresPropertiesKHR-buffer-03784# The -- @buffer@ used to create each acceleration structure in -- @pAccelerationStructures@ /must/ be bound to memory that was not @@ -2641,11 +2674,9 @@ foreign import ccall -- -- == Valid Usage -- --- - #VUID-vkGetDeviceAccelerationStructureCompatibilityKHR-rayTracingPipeline-03661# +-- - #VUID-vkGetDeviceAccelerationStructureCompatibilityKHR-accelerationStructure-08928# -- The --- --- or --- +-- -- feature /must/ be enabled -- -- == Valid Usage (Implicit) @@ -2707,17 +2738,31 @@ foreign import ccall -- of geometry that can be built into an acceleration structure is -- determined by the parameters of 'AccelerationStructureCreateInfoKHR'. -- --- Populating the data in the object after allocating and binding memory is --- done with commands such as 'cmdBuildAccelerationStructuresKHR', --- 'buildAccelerationStructuresKHR', 'cmdCopyAccelerationStructureKHR', and --- 'copyAccelerationStructureKHR'. +-- The acceleration structure data is stored in the object referred to by +-- 'AccelerationStructureCreateInfoKHR'::@buffer@. Once memory has been +-- bound to that buffer, it /must/ be populated by acceleration structure +-- build or acceleration structure copy commands such as +-- 'cmdBuildAccelerationStructuresKHR', 'buildAccelerationStructuresKHR', +-- 'cmdCopyAccelerationStructureKHR', and 'copyAccelerationStructureKHR'. +-- +-- Note +-- +-- The expected usage for a trace capture\/replay tool is that it will +-- serialize and later deserialize the acceleration structure data using +-- acceleration structure copy commands. During capture the tool will use +-- 'copyAccelerationStructureToMemoryKHR' or +-- 'cmdCopyAccelerationStructureToMemoryKHR' with a @mode@ of +-- 'COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR', and +-- 'copyMemoryToAccelerationStructureKHR' or +-- 'cmdCopyMemoryToAccelerationStructureKHR' with a @mode@ of +-- 'COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR' during replay. -- -- The input buffers passed to acceleration structure build commands will -- be referenced by the implementation for the duration of the command. -- After the command completes, the acceleration structure /may/ hold a -- reference to any acceleration structure specified by an active instance -- contained therein. Apart from this referencing, acceleration structures --- /must/ be fully self-contained. The application /may/ re-use or free any +-- /must/ be fully self-contained. The application /can/ reuse or free any -- memory which was used by the command as an input or as scratch without -- affecting the results of ray traversal. -- @@ -2725,7 +2770,7 @@ foreign import ccall -- -- - #VUID-vkCreateAccelerationStructureKHR-accelerationStructure-03611# -- The --- +-- -- feature /must/ be enabled -- -- - #VUID-vkCreateAccelerationStructureKHR-deviceAddress-03488# If @@ -2899,6 +2944,11 @@ foreign import ccall -- -- == Valid Usage -- +-- - #VUID-vkCmdBuildAccelerationStructuresKHR-accelerationStructure-08923# +-- The +-- +-- feature /must/ be enabled +-- -- - #VUID-vkCmdBuildAccelerationStructuresKHR-mode-04628# The @mode@ -- member of each element of @pInfos@ /must/ be a valid -- 'BuildAccelerationStructureModeKHR' value @@ -3475,6 +3525,11 @@ foreign import ccall -- -- == Valid Usage -- +-- - #VUID-vkCmdBuildAccelerationStructuresIndirectKHR-accelerationStructureIndirectBuild-03650# +-- The +-- +-- feature /must/ be enabled +-- -- - #VUID-vkCmdBuildAccelerationStructuresIndirectKHR-mode-04628# The -- @mode@ member of each element of @pInfos@ /must/ be a valid -- 'BuildAccelerationStructureModeKHR' value @@ -3956,11 +4011,6 @@ foreign import ccall -- - #VUID-vkCmdBuildAccelerationStructuresIndirectKHR-commandBuffer-03649# -- @commandBuffer@ /must/ not be a protected command buffer -- --- - #VUID-vkCmdBuildAccelerationStructuresIndirectKHR-accelerationStructureIndirectBuild-03650# --- The --- --- feature /must/ be enabled --- -- - #VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pIndirectDeviceAddresses-03651# -- Each 'AccelerationStructureBuildRangeInfoKHR' structure referenced -- by any element of @pIndirectDeviceAddresses@ /must/ be a valid @@ -4135,6 +4185,11 @@ foreign import ccall -- -- == Valid Usage -- +-- - #VUID-vkBuildAccelerationStructuresKHR-accelerationStructureHostCommands-03581# +-- The +-- +-- feature /must/ be enabled +-- -- - #VUID-vkBuildAccelerationStructuresKHR-mode-04628# The @mode@ member -- of each element of @pInfos@ /must/ be a valid -- 'BuildAccelerationStructureModeKHR' value @@ -4412,11 +4467,6 @@ foreign import ccall -- 'GEOMETRY_TYPE_INSTANCES_KHR' /must/ be bound to host-visible device -- memory -- --- - #VUID-vkBuildAccelerationStructuresKHR-accelerationStructureHostCommands-03581# --- The --- --- feature /must/ be enabled --- -- - #VUID-vkBuildAccelerationStructuresKHR-pInfos-03725# If -- @pInfos@[i].@mode@ is 'BUILD_ACCELERATION_STRUCTURE_MODE_BUILD_KHR', -- all addresses between @pInfos@[i].@scratchData.hostAddress@ and @@ -4640,6 +4690,11 @@ foreign import ccall -- -- == Valid Usage -- +-- - #VUID-vkGetAccelerationStructureDeviceAddressKHR-accelerationStructure-08935# +-- The +-- +-- feature /must/ be enabled +-- -- - #VUID-vkGetAccelerationStructureDeviceAddressKHR-device-03504# If -- @device@ was created with multiple physical devices, then the -- @@ -4694,9 +4749,9 @@ foreign import ccall -- = Description -- -- The @srcAccelerationStructure@, @dstAccelerationStructure@, and @mode@ --- members of @pBuildInfo@ are ignored. Any 'DeviceOrHostAddressKHR' --- members of @pBuildInfo@ are ignored by this command, except that the --- @hostAddress@ member of +-- members of @pBuildInfo@ are ignored. Any 'DeviceOrHostAddressKHR' or +-- 'DeviceOrHostAddressConstKHR' members of @pBuildInfo@ are ignored by +-- this command, except that the @hostAddress@ member of -- 'AccelerationStructureGeometryTrianglesDataKHR'::@transformData@ will be -- examined to check if it is @NULL@. -- @@ -4780,11 +4835,9 @@ foreign import ccall -- -- == Valid Usage -- --- - #VUID-vkGetAccelerationStructureBuildSizesKHR-rayTracingPipeline-03617# +-- - #VUID-vkGetAccelerationStructureBuildSizesKHR-accelerationStructure-08933# -- The --- --- or --- +-- -- feature /must/ be enabled -- -- - #VUID-vkGetAccelerationStructureBuildSizesKHR-device-03618# If @@ -5611,8 +5664,8 @@ instance Zero AccelerationStructureGeometryKHR where -- 'Vulkan.Core10.FundamentalTypes.FALSE'. -- -- If 'AccelerationStructureGeometryInstancesDataKHR'::@arrayOfPointers@ is --- 'Vulkan.Core10.FundamentalTypes.TRUE', the pointer for any given element --- of the array of instance pointers consists of 4 bits of +-- 'Vulkan.Core10.FundamentalTypes.TRUE', the pointer for each element of +-- the array of instance pointers consists of 4 bits of -- 'Vulkan.Extensions.VK_NV_ray_tracing_motion_blur.AccelerationStructureMotionInstanceTypeNV' -- in the low 4 bits of the pointer identifying the type of structure at -- the pointer. The device address accessed is the value in the array with @@ -6040,7 +6093,8 @@ instance Zero AccelerationStructureBuildRangeInfoKHR where -- -- If the acceleration structure will be the target of a build operation -- with 'BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV' it /must/ include --- 'ACCELERATION_STRUCTURE_CREATE_MOTION_BIT_NV' in @flags@ and include +-- 'ACCELERATION_STRUCTURE_CREATE_MOTION_BIT_NV' in @createFlags@ and +-- include -- 'Vulkan.Extensions.VK_NV_ray_tracing_motion_blur.AccelerationStructureMotionInfoNV' -- as an extension structure in @pNext@ with the number of instances as -- metadata for the object. @@ -6071,16 +6125,17 @@ instance Zero AccelerationStructureBuildRangeInfoKHR where -- - #VUID-VkAccelerationStructureCreateInfoKHR-offset-03734# @offset@ -- /must/ be a multiple of @256@ bytes -- --- - #VUID-VkAccelerationStructureCreateInfoKHR-flags-04954# If --- 'ACCELERATION_STRUCTURE_CREATE_MOTION_BIT_NV' is set in @flags@ and --- @type@ is 'ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR', one member of --- the @pNext@ chain /must/ be a pointer to a valid instance of +-- - #VUID-VkAccelerationStructureCreateInfoKHR-createFlags-04954# If +-- 'ACCELERATION_STRUCTURE_CREATE_MOTION_BIT_NV' is set in +-- @createFlags@ and @type@ is +-- 'ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR', one member of the +-- @pNext@ chain /must/ be a pointer to a valid instance of -- 'Vulkan.Extensions.VK_NV_ray_tracing_motion_blur.AccelerationStructureMotionInfoNV' -- --- - #VUID-VkAccelerationStructureCreateInfoKHR-flags-04955# If any +-- - #VUID-VkAccelerationStructureCreateInfoKHR-createFlags-04955# If any -- geometry includes -- 'Vulkan.Extensions.VK_NV_ray_tracing_motion_blur.AccelerationStructureGeometryMotionTrianglesDataNV' --- then @flags@ /must/ contain +-- then @createFlags@ /must/ contain -- 'ACCELERATION_STRUCTURE_CREATE_MOTION_BIT_NV' -- -- - #VUID-VkAccelerationStructureCreateInfoKHR-createFlags-08108# If @@ -7299,6 +7354,11 @@ pattern BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR = BuildAccelerati -- of build time or trace performance. pattern BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR = BuildAccelerationStructureFlagBitsKHR 0x00000010 +-- | 'BUILD_ACCELERATION_STRUCTURE_ALLOW_DATA_ACCESS_KHR' indicates that the +-- specified acceleration structure /can/ be used when fetching the vertex +-- positions of a hit triangle. +pattern BUILD_ACCELERATION_STRUCTURE_ALLOW_DATA_ACCESS_KHR = BuildAccelerationStructureFlagBitsKHR 0x00000800 + -- | 'BUILD_ACCELERATION_STRUCTURE_ALLOW_DISPLACEMENT_MICROMAP_UPDATE_NV' -- indicates that the displacement micromaps associated with the specified -- acceleration structure /may/ change with an acceleration structure @@ -7354,6 +7414,10 @@ showTableBuildAccelerationStructureFlagBitsKHR = ( BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR , "LOW_MEMORY_BIT_KHR" ) + , + ( BUILD_ACCELERATION_STRUCTURE_ALLOW_DATA_ACCESS_KHR + , "ALLOW_DATA_ACCESS_KHR" + ) , ( BUILD_ACCELERATION_STRUCTURE_ALLOW_DISPLACEMENT_MICROMAP_UPDATE_NV , "ALLOW_DISPLACEMENT_MICROMAP_UPDATE_NV" diff --git a/src/Vulkan/Extensions/VK_KHR_acceleration_structure.hs-boot b/src/Vulkan/Extensions/VK_KHR_acceleration_structure.hs-boot index bc8e05b5a..6b9b7ef50 100644 --- a/src/Vulkan/Extensions/VK_KHR_acceleration_structure.hs-boot +++ b/src/Vulkan/Extensions/VK_KHR_acceleration_structure.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 13 -- +-- [__Ratification Status__] +-- Ratified +-- -- [__Extension and Version Dependencies__] -- -- and @@ -285,11 +288,6 @@ -- -- - 'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR' -- --- - Extending --- 'Vulkan.Extensions.VK_EXT_debug_report.DebugReportObjectTypeEXT': --- --- - 'Vulkan.Extensions.VK_EXT_debug_report.DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT' --- -- - Extending 'Vulkan.Core10.Enums.DescriptorType.DescriptorType': -- -- - 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR' @@ -351,6 +349,15 @@ -- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR' -- -- If +-- +-- is supported: +-- +-- - Extending +-- 'Vulkan.Extensions.VK_EXT_debug_report.DebugReportObjectTypeEXT': +-- +-- - 'Vulkan.Extensions.VK_EXT_debug_report.DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT' +-- +-- If -- -- is supported: -- diff --git a/src/Vulkan/Extensions/VK_KHR_android_surface.hs b/src/Vulkan/Extensions/VK_KHR_android_surface.hs index 2e3df9b50..dc57ca50d 100644 --- a/src/Vulkan/Extensions/VK_KHR_android_surface.hs +++ b/src/Vulkan/Extensions/VK_KHR_android_surface.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 6 -- +-- [__Ratification Status__] +-- Ratified +-- -- [__Extension and Version Dependencies__] -- -- diff --git a/src/Vulkan/Extensions/VK_KHR_android_surface.hs-boot b/src/Vulkan/Extensions/VK_KHR_android_surface.hs-boot index 67b199bc5..97a89a485 100644 --- a/src/Vulkan/Extensions/VK_KHR_android_surface.hs-boot +++ b/src/Vulkan/Extensions/VK_KHR_android_surface.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 6 -- +-- [__Ratification Status__] +-- Ratified +-- -- [__Extension and Version Dependencies__] -- -- diff --git a/src/Vulkan/Extensions/VK_KHR_bind_memory2.hs b/src/Vulkan/Extensions/VK_KHR_bind_memory2.hs index d311a6157..3028d6388 100644 --- a/src/Vulkan/Extensions/VK_KHR_bind_memory2.hs +++ b/src/Vulkan/Extensions/VK_KHR_bind_memory2.hs @@ -17,7 +17,10 @@ -- [__Revision__] -- 1 -- --- [__Extension and Version Dependencies__; __Deprecation state__] +-- [__Ratification Status__] +-- Ratified +-- +-- [__Extension and Version Dependencies__; __Deprecation State__] -- -- - /Promoted/ to -- diff --git a/src/Vulkan/Extensions/VK_KHR_buffer_device_address.hs b/src/Vulkan/Extensions/VK_KHR_buffer_device_address.hs index 67fbcedcc..0380050ee 100644 --- a/src/Vulkan/Extensions/VK_KHR_buffer_device_address.hs +++ b/src/Vulkan/Extensions/VK_KHR_buffer_device_address.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Ratified +-- -- [__Extension and Version Dependencies__] --      -- @@ -26,7 +29,7 @@ -- or -- -- --- [__Deprecation state__] +-- [__Deprecation State__] -- -- - /Promoted/ to -- diff --git a/src/Vulkan/Extensions/VK_KHR_cooperative_matrix.hs b/src/Vulkan/Extensions/VK_KHR_cooperative_matrix.hs new file mode 100644 index 000000000..f6e2e93a8 --- /dev/null +++ b/src/Vulkan/Extensions/VK_KHR_cooperative_matrix.hs @@ -0,0 +1,776 @@ +{-# language CPP #-} +-- | = Name +-- +-- VK_KHR_cooperative_matrix - device extension +-- +-- == VK_KHR_cooperative_matrix +-- +-- [__Name String__] +-- @VK_KHR_cooperative_matrix@ +-- +-- [__Extension Type__] +-- Device extension +-- +-- [__Registered Extension Number__] +-- 507 +-- +-- [__Revision__] +-- 2 +-- +-- [__Ratification Status__] +-- Ratified +-- +-- [__Extension and Version Dependencies__] +-- +-- +-- [__Contact__] +-- +-- - Kevin Petit +-- +-- +-- == Other Extension Metadata +-- +-- [__Last Modified Date__] +-- 2023-05-03 +-- +-- [__Interactions and External Dependencies__] +-- +-- - This extension requires +-- +-- +-- - This extension provides API support for +-- +-- +-- [__Contributors__] +-- +-- - Jeff Bolz, NVIDIA +-- +-- - Markus Tavenrath, NVIDIA +-- +-- - Daniel Koch, NVIDIA +-- +-- - Kevin Petit, Arm Ltd. +-- +-- - Boris Zanin, AMD +-- +-- == Description +-- +-- This extension adds support for using cooperative matrix types in +-- SPIR-V. Cooperative matrix types are medium-sized matrices that are +-- primarily supported in compute shaders, where the storage for the matrix +-- is spread across all invocations in some scope (usually a subgroup) and +-- those invocations cooperate to efficiently perform matrix multiplies. +-- +-- Cooperative matrix types are defined by the +-- +-- SPIR-V extension and can be used with the +-- +-- GLSL extension. +-- +-- This extension includes support for enumerating the matrix types and +-- dimensions that are supported by the implementation. +-- +-- == New Commands +-- +-- - 'getPhysicalDeviceCooperativeMatrixPropertiesKHR' +-- +-- == New Structures +-- +-- - 'CooperativeMatrixPropertiesKHR' +-- +-- - Extending +-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2', +-- 'Vulkan.Core10.Device.DeviceCreateInfo': +-- +-- - 'PhysicalDeviceCooperativeMatrixFeaturesKHR' +-- +-- - Extending +-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2': +-- +-- - 'PhysicalDeviceCooperativeMatrixPropertiesKHR' +-- +-- == New Enums +-- +-- - 'ComponentTypeKHR' +-- +-- - 'ScopeKHR' +-- +-- == New Enum Constants +-- +-- - 'KHR_COOPERATIVE_MATRIX_EXTENSION_NAME' +-- +-- - 'KHR_COOPERATIVE_MATRIX_SPEC_VERSION' +-- +-- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType': +-- +-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_KHR' +-- +-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_KHR' +-- +-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_KHR' +-- +-- == New SPIR-V Capabilities +-- +-- - +-- +-- == Version History +-- +-- - Revision 2, 2023-05-03 (Kevin Petit) +-- +-- - First KHR revision +-- +-- - Revision 1, 2019-02-05 (Jeff Bolz) +-- +-- - NVIDIA vendor extension +-- +-- == See Also +-- +-- 'ComponentTypeKHR', 'CooperativeMatrixPropertiesKHR', +-- 'PhysicalDeviceCooperativeMatrixFeaturesKHR', +-- 'PhysicalDeviceCooperativeMatrixPropertiesKHR', 'ScopeKHR', +-- 'getPhysicalDeviceCooperativeMatrixPropertiesKHR' +-- +-- == Document Notes +-- +-- For more information, see the +-- +-- +-- This page is a generated document. Fixes and changes should be made to +-- the generator scripts, not directly. +module Vulkan.Extensions.VK_KHR_cooperative_matrix ( getPhysicalDeviceCooperativeMatrixPropertiesKHR + , PhysicalDeviceCooperativeMatrixFeaturesKHR(..) + , CooperativeMatrixPropertiesKHR(..) + , PhysicalDeviceCooperativeMatrixPropertiesKHR(..) + , ScopeKHR( SCOPE_DEVICE_KHR + , SCOPE_WORKGROUP_KHR + , SCOPE_SUBGROUP_KHR + , SCOPE_QUEUE_FAMILY_KHR + , .. + ) + , ComponentTypeKHR( COMPONENT_TYPE_FLOAT16_KHR + , COMPONENT_TYPE_FLOAT32_KHR + , COMPONENT_TYPE_FLOAT64_KHR + , COMPONENT_TYPE_SINT8_KHR + , COMPONENT_TYPE_SINT16_KHR + , COMPONENT_TYPE_SINT32_KHR + , COMPONENT_TYPE_SINT64_KHR + , COMPONENT_TYPE_UINT8_KHR + , COMPONENT_TYPE_UINT16_KHR + , COMPONENT_TYPE_UINT32_KHR + , COMPONENT_TYPE_UINT64_KHR + , .. + ) + , KHR_COOPERATIVE_MATRIX_SPEC_VERSION + , pattern KHR_COOPERATIVE_MATRIX_SPEC_VERSION + , KHR_COOPERATIVE_MATRIX_EXTENSION_NAME + , pattern KHR_COOPERATIVE_MATRIX_EXTENSION_NAME + ) where + +import Vulkan.Internal.Utils (enumReadPrec) +import Vulkan.Internal.Utils (enumShowsPrec) +import Vulkan.Internal.Utils (traceAroundEvent) +import Control.Exception.Base (bracket) +import Control.Monad (unless) +import Control.Monad.IO.Class (liftIO) +import Foreign.Marshal.Alloc (allocaBytes) +import Foreign.Marshal.Alloc (callocBytes) +import Foreign.Marshal.Alloc (free) +import GHC.Base (when) +import GHC.IO (throwIO) +import GHC.Ptr (nullFunPtr) +import Foreign.Ptr (nullPtr) +import Foreign.Ptr (plusPtr) +import GHC.Show (showsPrec) +import Control.Monad.Trans.Class (lift) +import Control.Monad.Trans.Cont (evalContT) +import Data.Vector (generateM) +import Vulkan.CStruct (FromCStruct) +import Vulkan.CStruct (FromCStruct(..)) +import Vulkan.CStruct (ToCStruct) +import Vulkan.CStruct (ToCStruct(..)) +import Vulkan.Zero (Zero) +import Vulkan.Zero (Zero(..)) +import Control.Monad.IO.Class (MonadIO) +import Data.String (IsString) +import Data.Typeable (Typeable) +import Foreign.Storable (Storable) +import Foreign.Storable (Storable(peek)) +import Foreign.Storable (Storable(poke)) +import qualified Foreign.Storable (Storable(..)) +import GHC.Generics (Generic) +import GHC.IO.Exception (IOErrorType(..)) +import GHC.IO.Exception (IOException(..)) +import Data.Int (Int32) +import Foreign.Ptr (FunPtr) +import Foreign.Ptr (Ptr) +import GHC.Read (Read(readPrec)) +import GHC.Show (Show(showsPrec)) +import Data.Word (Word32) +import Data.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.Dynamic (InstanceCmds(pVkGetPhysicalDeviceCooperativeMatrixPropertiesKHR)) +import Vulkan.Core10.Handles (PhysicalDevice) +import Vulkan.Core10.Handles (PhysicalDevice(..)) +import Vulkan.Core10.Handles (PhysicalDevice(PhysicalDevice)) +import Vulkan.Core10.Handles (PhysicalDevice_T) +import Vulkan.Core10.Enums.Result (Result) +import Vulkan.Core10.Enums.Result (Result(..)) +import Vulkan.Core10.Enums.ShaderStageFlagBits (ShaderStageFlags) +import Vulkan.Core10.Enums.StructureType (StructureType) +import Vulkan.Exception (VulkanException(..)) +import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_KHR)) +import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_KHR)) +import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_KHR)) +import Vulkan.Core10.Enums.Result (Result(SUCCESS)) +foreign import ccall +#if !defined(SAFE_FOREIGN_CALLS) + unsafe +#endif + "dynamic" mkVkGetPhysicalDeviceCooperativeMatrixPropertiesKHR + :: FunPtr (Ptr PhysicalDevice_T -> Ptr Word32 -> Ptr CooperativeMatrixPropertiesKHR -> IO Result) -> Ptr PhysicalDevice_T -> Ptr Word32 -> Ptr CooperativeMatrixPropertiesKHR -> IO Result + +-- | vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR - Returns properties +-- describing what cooperative matrix types are supported +-- +-- = Description +-- +-- If @pProperties@ is @NULL@, then the number of cooperative matrix +-- properties available is returned in @pPropertyCount@. Otherwise, +-- @pPropertyCount@ /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 @pPropertyCount@ is less than the number of +-- cooperative matrix properties 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 cooperative matrix properties were +-- returned. +-- +-- == Valid Usage (Implicit) +-- +-- - #VUID-vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR-physicalDevice-parameter# +-- @physicalDevice@ /must/ be a valid +-- 'Vulkan.Core10.Handles.PhysicalDevice' handle +-- +-- - #VUID-vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR-pPropertyCount-parameter# +-- @pPropertyCount@ /must/ be a valid pointer to a @uint32_t@ value +-- +-- - #VUID-vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR-pProperties-parameter# +-- If the value referenced by @pPropertyCount@ is not @0@, and +-- @pProperties@ is not @NULL@, @pProperties@ /must/ be a valid pointer +-- to an array of @pPropertyCount@ 'CooperativeMatrixPropertiesKHR' +-- structures +-- +-- == Return Codes +-- +-- [] +-- +-- - 'Vulkan.Core10.Enums.Result.SUCCESS' +-- +-- - 'Vulkan.Core10.Enums.Result.INCOMPLETE' +-- +-- [] +-- +-- - 'Vulkan.Core10.Enums.Result.ERROR_OUT_OF_HOST_MEMORY' +-- +-- - 'Vulkan.Core10.Enums.Result.ERROR_OUT_OF_DEVICE_MEMORY' +-- +-- = See Also +-- +-- , +-- 'CooperativeMatrixPropertiesKHR', 'Vulkan.Core10.Handles.PhysicalDevice' +getPhysicalDeviceCooperativeMatrixPropertiesKHR :: forall io + . (MonadIO io) + => -- | @physicalDevice@ is the physical device. + PhysicalDevice + -> io (Result, ("properties" ::: Vector CooperativeMatrixPropertiesKHR)) +getPhysicalDeviceCooperativeMatrixPropertiesKHR physicalDevice = liftIO . evalContT $ do + let vkGetPhysicalDeviceCooperativeMatrixPropertiesKHRPtr = pVkGetPhysicalDeviceCooperativeMatrixPropertiesKHR (case physicalDevice of PhysicalDevice{instanceCmds} -> instanceCmds) + lift $ unless (vkGetPhysicalDeviceCooperativeMatrixPropertiesKHRPtr /= nullFunPtr) $ + throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR is null" Nothing Nothing + let vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR' = mkVkGetPhysicalDeviceCooperativeMatrixPropertiesKHR vkGetPhysicalDeviceCooperativeMatrixPropertiesKHRPtr + let physicalDevice' = physicalDeviceHandle (physicalDevice) + pPPropertyCount <- ContT $ bracket (callocBytes @Word32 4) free + r <- lift $ traceAroundEvent "vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR" (vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR' + physicalDevice' + (pPPropertyCount) + (nullPtr)) + lift $ when (r < SUCCESS) (throwIO (VulkanException r)) + pPropertyCount <- lift $ peek @Word32 pPPropertyCount + pPProperties <- ContT $ bracket (callocBytes @CooperativeMatrixPropertiesKHR ((fromIntegral (pPropertyCount)) * 56)) free + _ <- traverse (\i -> ContT $ pokeZeroCStruct (pPProperties `advancePtrBytes` (i * 56) :: Ptr CooperativeMatrixPropertiesKHR) . ($ ())) [0..(fromIntegral (pPropertyCount)) - 1] + r' <- lift $ traceAroundEvent "vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR" (vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR' + physicalDevice' + (pPPropertyCount) + ((pPProperties))) + lift $ when (r' < SUCCESS) (throwIO (VulkanException r')) + pPropertyCount' <- lift $ peek @Word32 pPPropertyCount + pProperties' <- lift $ generateM (fromIntegral (pPropertyCount')) (\i -> peekCStruct @CooperativeMatrixPropertiesKHR (((pPProperties) `advancePtrBytes` (56 * (i)) :: Ptr CooperativeMatrixPropertiesKHR))) + pure $ ((r'), pProperties') + + +-- | VkPhysicalDeviceCooperativeMatrixFeaturesKHR - Structure describing +-- cooperative matrix features that can be supported by an implementation +-- +-- = Members +-- +-- This structure describes the following features: +-- +-- = Description +-- +-- If the 'PhysicalDeviceCooperativeMatrixFeaturesKHR' 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. 'PhysicalDeviceCooperativeMatrixFeaturesKHR' /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 PhysicalDeviceCooperativeMatrixFeaturesKHR = PhysicalDeviceCooperativeMatrixFeaturesKHR + { -- | #features-cooperativeMatrix# @cooperativeMatrix@ indicates that the + -- implementation supports the @CooperativeMatrixKHR@ SPIR-V capability. + cooperativeMatrix :: Bool + , -- | #features-cooperativeMatrixRobustBufferAccess# + -- @cooperativeMatrixRobustBufferAccess@ indicates that the implementation + -- supports robust buffer access for SPIR-V @OpCooperativeMatrixLoadKHR@ + -- and @OpCooperativeMatrixStoreKHR@ instructions. + cooperativeMatrixRobustBufferAccess :: Bool + } + deriving (Typeable, Eq) +#if defined(GENERIC_INSTANCES) +deriving instance Generic (PhysicalDeviceCooperativeMatrixFeaturesKHR) +#endif +deriving instance Show PhysicalDeviceCooperativeMatrixFeaturesKHR + +instance ToCStruct PhysicalDeviceCooperativeMatrixFeaturesKHR where + withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p) + pokeCStruct p PhysicalDeviceCooperativeMatrixFeaturesKHR{..} f = do + poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_KHR) + poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr) + poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (cooperativeMatrix)) + poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (cooperativeMatrixRobustBufferAccess)) + f + cStructSize = 24 + cStructAlignment = 8 + pokeZeroCStruct p f = do + poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_KHR) + poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr) + poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero)) + poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (zero)) + f + +instance FromCStruct PhysicalDeviceCooperativeMatrixFeaturesKHR where + peekCStruct p = do + cooperativeMatrix <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32)) + cooperativeMatrixRobustBufferAccess <- peek @Bool32 ((p `plusPtr` 20 :: Ptr Bool32)) + pure $ PhysicalDeviceCooperativeMatrixFeaturesKHR + (bool32ToBool cooperativeMatrix) + (bool32ToBool cooperativeMatrixRobustBufferAccess) + +instance Storable PhysicalDeviceCooperativeMatrixFeaturesKHR where + sizeOf ~_ = 24 + alignment ~_ = 8 + peek = peekCStruct + poke ptr poked = pokeCStruct ptr poked (pure ()) + +instance Zero PhysicalDeviceCooperativeMatrixFeaturesKHR where + zero = PhysicalDeviceCooperativeMatrixFeaturesKHR + zero + zero + + +-- | VkCooperativeMatrixPropertiesKHR - Structure specifying cooperative +-- matrix properties +-- +-- = Description +-- +-- If some types are preferred over other types (e.g. for performance), +-- they /should/ appear earlier in the list enumerated by +-- 'getPhysicalDeviceCooperativeMatrixPropertiesKHR'. +-- +-- At least one entry in the list /must/ have power of two values for all +-- of @MSize@, @KSize@, and @NSize@. +-- +-- == Valid Usage (Implicit) +-- +-- = See Also +-- +-- , +-- 'Vulkan.Core10.FundamentalTypes.Bool32', 'ComponentTypeKHR', 'ScopeKHR', +-- 'Vulkan.Core10.Enums.StructureType.StructureType', +-- 'getPhysicalDeviceCooperativeMatrixPropertiesKHR' +data CooperativeMatrixPropertiesKHR = CooperativeMatrixPropertiesKHR + { -- | @MSize@ is the number of rows in matrices @A@, @C@, and + -- 'Vulkan.Core10.Enums.Result.Result'. + mSize :: Word32 + , -- | @NSize@ is the number of columns in matrices @B@, @C@, + -- 'Vulkan.Core10.Enums.Result.Result'. + nSize :: Word32 + , -- | @KSize@ is the number of columns in matrix @A@ and rows in matrix @B@. + kSize :: Word32 + , -- | @AType@ is the component type of matrix @A@, of type 'ComponentTypeKHR'. + -- + -- #VUID-VkCooperativeMatrixPropertiesKHR-AType-parameter# @AType@ /must/ + -- be a valid 'ComponentTypeKHR' value + aType :: ComponentTypeKHR + , -- | @BType@ is the component type of matrix @B@, of type 'ComponentTypeKHR'. + -- + -- #VUID-VkCooperativeMatrixPropertiesKHR-BType-parameter# @BType@ /must/ + -- be a valid 'ComponentTypeKHR' value + bType :: ComponentTypeKHR + , -- | @CType@ is the component type of matrix @C@, of type 'ComponentTypeKHR'. + -- + -- #VUID-VkCooperativeMatrixPropertiesKHR-CType-parameter# @CType@ /must/ + -- be a valid 'ComponentTypeKHR' value + cType :: ComponentTypeKHR + , -- | @ResultType@ is the component type of matrix + -- 'Vulkan.Core10.Enums.Result.Result', of type 'ComponentTypeKHR'. + -- + -- #VUID-VkCooperativeMatrixPropertiesKHR-ResultType-parameter# + -- @ResultType@ /must/ be a valid 'ComponentTypeKHR' value + resultType :: ComponentTypeKHR + , -- | @saturatingAccumulation@ indicates whether the @SaturatingAccumulation@ + -- operand to @OpCooperativeMatrixMulAddKHR@ /must/ be present. + saturatingAccumulation :: Bool + , -- | @scope@ is the scope of all the matrix types, of type 'ScopeKHR'. + -- + -- #VUID-VkCooperativeMatrixPropertiesKHR-scope-parameter# @scope@ /must/ + -- be a valid 'ScopeKHR' value + scope :: ScopeKHR + } + deriving (Typeable, Eq) +#if defined(GENERIC_INSTANCES) +deriving instance Generic (CooperativeMatrixPropertiesKHR) +#endif +deriving instance Show CooperativeMatrixPropertiesKHR + +instance ToCStruct CooperativeMatrixPropertiesKHR where + withCStruct x f = allocaBytes 56 $ \p -> pokeCStruct p x (f p) + pokeCStruct p CooperativeMatrixPropertiesKHR{..} f = do + poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_KHR) + poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr) + poke ((p `plusPtr` 16 :: Ptr Word32)) (mSize) + poke ((p `plusPtr` 20 :: Ptr Word32)) (nSize) + poke ((p `plusPtr` 24 :: Ptr Word32)) (kSize) + poke ((p `plusPtr` 28 :: Ptr ComponentTypeKHR)) (aType) + poke ((p `plusPtr` 32 :: Ptr ComponentTypeKHR)) (bType) + poke ((p `plusPtr` 36 :: Ptr ComponentTypeKHR)) (cType) + poke ((p `plusPtr` 40 :: Ptr ComponentTypeKHR)) (resultType) + poke ((p `plusPtr` 44 :: Ptr Bool32)) (boolToBool32 (saturatingAccumulation)) + poke ((p `plusPtr` 48 :: Ptr ScopeKHR)) (scope) + f + cStructSize = 56 + cStructAlignment = 8 + pokeZeroCStruct p f = do + poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_KHR) + poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr) + poke ((p `plusPtr` 16 :: Ptr Word32)) (zero) + poke ((p `plusPtr` 20 :: Ptr Word32)) (zero) + poke ((p `plusPtr` 24 :: Ptr Word32)) (zero) + poke ((p `plusPtr` 28 :: Ptr ComponentTypeKHR)) (zero) + poke ((p `plusPtr` 32 :: Ptr ComponentTypeKHR)) (zero) + poke ((p `plusPtr` 36 :: Ptr ComponentTypeKHR)) (zero) + poke ((p `plusPtr` 40 :: Ptr ComponentTypeKHR)) (zero) + poke ((p `plusPtr` 44 :: Ptr Bool32)) (boolToBool32 (zero)) + poke ((p `plusPtr` 48 :: Ptr ScopeKHR)) (zero) + f + +instance FromCStruct CooperativeMatrixPropertiesKHR where + peekCStruct p = do + mSize <- peek @Word32 ((p `plusPtr` 16 :: Ptr Word32)) + nSize <- peek @Word32 ((p `plusPtr` 20 :: Ptr Word32)) + kSize <- peek @Word32 ((p `plusPtr` 24 :: Ptr Word32)) + aType <- peek @ComponentTypeKHR ((p `plusPtr` 28 :: Ptr ComponentTypeKHR)) + bType <- peek @ComponentTypeKHR ((p `plusPtr` 32 :: Ptr ComponentTypeKHR)) + cType <- peek @ComponentTypeKHR ((p `plusPtr` 36 :: Ptr ComponentTypeKHR)) + resultType <- peek @ComponentTypeKHR ((p `plusPtr` 40 :: Ptr ComponentTypeKHR)) + saturatingAccumulation <- peek @Bool32 ((p `plusPtr` 44 :: Ptr Bool32)) + scope <- peek @ScopeKHR ((p `plusPtr` 48 :: Ptr ScopeKHR)) + pure $ CooperativeMatrixPropertiesKHR + mSize + nSize + kSize + aType + bType + cType + resultType + (bool32ToBool saturatingAccumulation) + scope + +instance Storable CooperativeMatrixPropertiesKHR where + sizeOf ~_ = 56 + alignment ~_ = 8 + peek = peekCStruct + poke ptr poked = pokeCStruct ptr poked (pure ()) + +instance Zero CooperativeMatrixPropertiesKHR where + zero = CooperativeMatrixPropertiesKHR + zero + zero + zero + zero + zero + zero + zero + zero + zero + + +-- | VkPhysicalDeviceCooperativeMatrixPropertiesKHR - Structure describing +-- cooperative matrix properties supported by an implementation +-- +-- = Description +-- +-- If the 'PhysicalDeviceCooperativeMatrixPropertiesKHR' 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.Enums.ShaderStageFlagBits.ShaderStageFlags', +-- 'Vulkan.Core10.Enums.StructureType.StructureType' +data PhysicalDeviceCooperativeMatrixPropertiesKHR = PhysicalDeviceCooperativeMatrixPropertiesKHR + { -- | #limits-cooperativeMatrixSupportedStages# + -- @cooperativeMatrixSupportedStages@ is a bitfield of + -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.ShaderStageFlagBits' describing + -- the shader stages that cooperative matrix instructions are supported in. + -- @cooperativeMatrixSupportedStages@ will have the + -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_COMPUTE_BIT' bit + -- set if any of the physical device’s queues support + -- 'Vulkan.Core10.Enums.QueueFlagBits.QUEUE_COMPUTE_BIT'. + cooperativeMatrixSupportedStages :: ShaderStageFlags } + deriving (Typeable, Eq) +#if defined(GENERIC_INSTANCES) +deriving instance Generic (PhysicalDeviceCooperativeMatrixPropertiesKHR) +#endif +deriving instance Show PhysicalDeviceCooperativeMatrixPropertiesKHR + +instance ToCStruct PhysicalDeviceCooperativeMatrixPropertiesKHR where + withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p) + pokeCStruct p PhysicalDeviceCooperativeMatrixPropertiesKHR{..} f = do + poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_KHR) + poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr) + poke ((p `plusPtr` 16 :: Ptr ShaderStageFlags)) (cooperativeMatrixSupportedStages) + f + cStructSize = 24 + cStructAlignment = 8 + pokeZeroCStruct p f = do + poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_KHR) + poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr) + poke ((p `plusPtr` 16 :: Ptr ShaderStageFlags)) (zero) + f + +instance FromCStruct PhysicalDeviceCooperativeMatrixPropertiesKHR where + peekCStruct p = do + cooperativeMatrixSupportedStages <- peek @ShaderStageFlags ((p `plusPtr` 16 :: Ptr ShaderStageFlags)) + pure $ PhysicalDeviceCooperativeMatrixPropertiesKHR + cooperativeMatrixSupportedStages + +instance Storable PhysicalDeviceCooperativeMatrixPropertiesKHR where + sizeOf ~_ = 24 + alignment ~_ = 8 + peek = peekCStruct + poke ptr poked = pokeCStruct ptr poked (pure ()) + +instance Zero PhysicalDeviceCooperativeMatrixPropertiesKHR where + zero = PhysicalDeviceCooperativeMatrixPropertiesKHR + zero + + +-- | VkScopeKHR - Specify SPIR-V scope +-- +-- = Description +-- +-- All enum values match the corresponding SPIR-V value. +-- +-- = See Also +-- +-- , +-- 'CooperativeMatrixPropertiesKHR' +newtype ScopeKHR = ScopeKHR Int32 + deriving newtype (Eq, Ord, Storable, Zero) + +-- Note that the zero instance does not produce a valid value, passing 'zero' to Vulkan will result in an error + +-- | 'SCOPE_DEVICE_KHR' corresponds to SPIR-V 'Vulkan.Core10.Handles.Device' +-- scope. +pattern SCOPE_DEVICE_KHR = ScopeKHR 1 + +-- | 'SCOPE_WORKGROUP_KHR' corresponds to SPIR-V @Workgroup@ scope. +pattern SCOPE_WORKGROUP_KHR = ScopeKHR 2 + +-- | 'SCOPE_SUBGROUP_KHR' corresponds to SPIR-V @Subgroup@ scope. +pattern SCOPE_SUBGROUP_KHR = ScopeKHR 3 + +-- | 'SCOPE_QUEUE_FAMILY_KHR' corresponds to SPIR-V @QueueFamily@ scope. +pattern SCOPE_QUEUE_FAMILY_KHR = ScopeKHR 5 + +{-# COMPLETE + SCOPE_DEVICE_KHR + , SCOPE_WORKGROUP_KHR + , SCOPE_SUBGROUP_KHR + , SCOPE_QUEUE_FAMILY_KHR :: + ScopeKHR + #-} + +conNameScopeKHR :: String +conNameScopeKHR = "ScopeKHR" + +enumPrefixScopeKHR :: String +enumPrefixScopeKHR = "SCOPE_" + +showTableScopeKHR :: [(ScopeKHR, String)] +showTableScopeKHR = + [ (SCOPE_DEVICE_KHR, "DEVICE_KHR") + , (SCOPE_WORKGROUP_KHR, "WORKGROUP_KHR") + , (SCOPE_SUBGROUP_KHR, "SUBGROUP_KHR") + , (SCOPE_QUEUE_FAMILY_KHR, "QUEUE_FAMILY_KHR") + ] + +instance Show ScopeKHR where + showsPrec = + enumShowsPrec + enumPrefixScopeKHR + showTableScopeKHR + conNameScopeKHR + (\(ScopeKHR x) -> x) + (showsPrec 11) + +instance Read ScopeKHR where + readPrec = + enumReadPrec + enumPrefixScopeKHR + showTableScopeKHR + conNameScopeKHR + ScopeKHR + +-- | VkComponentTypeKHR - Specify SPIR-V cooperative matrix component type +-- +-- = See Also +-- +-- , +-- 'CooperativeMatrixPropertiesKHR' +newtype ComponentTypeKHR = ComponentTypeKHR Int32 + deriving newtype (Eq, Ord, Storable, Zero) + +-- | 'COMPONENT_TYPE_FLOAT16_KHR' corresponds to SPIR-V @OpTypeFloat@ 16. +pattern COMPONENT_TYPE_FLOAT16_KHR = ComponentTypeKHR 0 + +-- | 'COMPONENT_TYPE_FLOAT32_KHR' corresponds to SPIR-V @OpTypeFloat@ 32. +pattern COMPONENT_TYPE_FLOAT32_KHR = ComponentTypeKHR 1 + +-- | 'COMPONENT_TYPE_FLOAT64_KHR' corresponds to SPIR-V @OpTypeFloat@ 64. +pattern COMPONENT_TYPE_FLOAT64_KHR = ComponentTypeKHR 2 + +-- | 'COMPONENT_TYPE_SINT8_KHR' corresponds to SPIR-V @OpTypeInt@ 8 1. +pattern COMPONENT_TYPE_SINT8_KHR = ComponentTypeKHR 3 + +-- | 'COMPONENT_TYPE_SINT16_KHR' corresponds to SPIR-V @OpTypeInt@ 16 1. +pattern COMPONENT_TYPE_SINT16_KHR = ComponentTypeKHR 4 + +-- | 'COMPONENT_TYPE_SINT32_KHR' corresponds to SPIR-V @OpTypeInt@ 32 1. +pattern COMPONENT_TYPE_SINT32_KHR = ComponentTypeKHR 5 + +-- | 'COMPONENT_TYPE_SINT64_KHR' corresponds to SPIR-V @OpTypeInt@ 64 1. +pattern COMPONENT_TYPE_SINT64_KHR = ComponentTypeKHR 6 + +-- | 'COMPONENT_TYPE_UINT8_KHR' corresponds to SPIR-V @OpTypeInt@ 8 0. +pattern COMPONENT_TYPE_UINT8_KHR = ComponentTypeKHR 7 + +-- | 'COMPONENT_TYPE_UINT16_KHR' corresponds to SPIR-V @OpTypeInt@ 16 0. +pattern COMPONENT_TYPE_UINT16_KHR = ComponentTypeKHR 8 + +-- | 'COMPONENT_TYPE_UINT32_KHR' corresponds to SPIR-V @OpTypeInt@ 32 0. +pattern COMPONENT_TYPE_UINT32_KHR = ComponentTypeKHR 9 + +-- | 'COMPONENT_TYPE_UINT64_KHR' corresponds to SPIR-V @OpTypeInt@ 64 0. +pattern COMPONENT_TYPE_UINT64_KHR = ComponentTypeKHR 10 + +{-# COMPLETE + COMPONENT_TYPE_FLOAT16_KHR + , COMPONENT_TYPE_FLOAT32_KHR + , COMPONENT_TYPE_FLOAT64_KHR + , COMPONENT_TYPE_SINT8_KHR + , COMPONENT_TYPE_SINT16_KHR + , COMPONENT_TYPE_SINT32_KHR + , COMPONENT_TYPE_SINT64_KHR + , COMPONENT_TYPE_UINT8_KHR + , COMPONENT_TYPE_UINT16_KHR + , COMPONENT_TYPE_UINT32_KHR + , COMPONENT_TYPE_UINT64_KHR :: + ComponentTypeKHR + #-} + +conNameComponentTypeKHR :: String +conNameComponentTypeKHR = "ComponentTypeKHR" + +enumPrefixComponentTypeKHR :: String +enumPrefixComponentTypeKHR = "COMPONENT_TYPE_" + +showTableComponentTypeKHR :: [(ComponentTypeKHR, String)] +showTableComponentTypeKHR = + [ (COMPONENT_TYPE_FLOAT16_KHR, "FLOAT16_KHR") + , (COMPONENT_TYPE_FLOAT32_KHR, "FLOAT32_KHR") + , (COMPONENT_TYPE_FLOAT64_KHR, "FLOAT64_KHR") + , (COMPONENT_TYPE_SINT8_KHR, "SINT8_KHR") + , (COMPONENT_TYPE_SINT16_KHR, "SINT16_KHR") + , (COMPONENT_TYPE_SINT32_KHR, "SINT32_KHR") + , (COMPONENT_TYPE_SINT64_KHR, "SINT64_KHR") + , (COMPONENT_TYPE_UINT8_KHR, "UINT8_KHR") + , (COMPONENT_TYPE_UINT16_KHR, "UINT16_KHR") + , (COMPONENT_TYPE_UINT32_KHR, "UINT32_KHR") + , (COMPONENT_TYPE_UINT64_KHR, "UINT64_KHR") + ] + +instance Show ComponentTypeKHR where + showsPrec = + enumShowsPrec + enumPrefixComponentTypeKHR + showTableComponentTypeKHR + conNameComponentTypeKHR + (\(ComponentTypeKHR x) -> x) + (showsPrec 11) + +instance Read ComponentTypeKHR where + readPrec = + enumReadPrec + enumPrefixComponentTypeKHR + showTableComponentTypeKHR + conNameComponentTypeKHR + ComponentTypeKHR + +type KHR_COOPERATIVE_MATRIX_SPEC_VERSION = 2 + +-- No documentation found for TopLevel "VK_KHR_COOPERATIVE_MATRIX_SPEC_VERSION" +pattern KHR_COOPERATIVE_MATRIX_SPEC_VERSION :: forall a . Integral a => a +pattern KHR_COOPERATIVE_MATRIX_SPEC_VERSION = 2 + + +type KHR_COOPERATIVE_MATRIX_EXTENSION_NAME = "VK_KHR_cooperative_matrix" + +-- No documentation found for TopLevel "VK_KHR_COOPERATIVE_MATRIX_EXTENSION_NAME" +pattern KHR_COOPERATIVE_MATRIX_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a +pattern KHR_COOPERATIVE_MATRIX_EXTENSION_NAME = "VK_KHR_cooperative_matrix" + diff --git a/src/Vulkan/Extensions/VK_KHR_cooperative_matrix.hs-boot b/src/Vulkan/Extensions/VK_KHR_cooperative_matrix.hs-boot new file mode 100644 index 000000000..7795955ce --- /dev/null +++ b/src/Vulkan/Extensions/VK_KHR_cooperative_matrix.hs-boot @@ -0,0 +1,179 @@ +{-# language CPP #-} +-- | = Name +-- +-- VK_KHR_cooperative_matrix - device extension +-- +-- == VK_KHR_cooperative_matrix +-- +-- [__Name String__] +-- @VK_KHR_cooperative_matrix@ +-- +-- [__Extension Type__] +-- Device extension +-- +-- [__Registered Extension Number__] +-- 507 +-- +-- [__Revision__] +-- 2 +-- +-- [__Ratification Status__] +-- Ratified +-- +-- [__Extension and Version Dependencies__] +-- +-- +-- [__Contact__] +-- +-- - Kevin Petit +-- +-- +-- == Other Extension Metadata +-- +-- [__Last Modified Date__] +-- 2023-05-03 +-- +-- [__Interactions and External Dependencies__] +-- +-- - This extension requires +-- +-- +-- - This extension provides API support for +-- +-- +-- [__Contributors__] +-- +-- - Jeff Bolz, NVIDIA +-- +-- - Markus Tavenrath, NVIDIA +-- +-- - Daniel Koch, NVIDIA +-- +-- - Kevin Petit, Arm Ltd. +-- +-- - Boris Zanin, AMD +-- +-- == Description +-- +-- This extension adds support for using cooperative matrix types in +-- SPIR-V. Cooperative matrix types are medium-sized matrices that are +-- primarily supported in compute shaders, where the storage for the matrix +-- is spread across all invocations in some scope (usually a subgroup) and +-- those invocations cooperate to efficiently perform matrix multiplies. +-- +-- Cooperative matrix types are defined by the +-- +-- SPIR-V extension and can be used with the +-- +-- GLSL extension. +-- +-- This extension includes support for enumerating the matrix types and +-- dimensions that are supported by the implementation. +-- +-- == New Commands +-- +-- - 'getPhysicalDeviceCooperativeMatrixPropertiesKHR' +-- +-- == New Structures +-- +-- - 'CooperativeMatrixPropertiesKHR' +-- +-- - Extending +-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2', +-- 'Vulkan.Core10.Device.DeviceCreateInfo': +-- +-- - 'PhysicalDeviceCooperativeMatrixFeaturesKHR' +-- +-- - Extending +-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2': +-- +-- - 'PhysicalDeviceCooperativeMatrixPropertiesKHR' +-- +-- == New Enums +-- +-- - 'ComponentTypeKHR' +-- +-- - 'ScopeKHR' +-- +-- == New Enum Constants +-- +-- - 'KHR_COOPERATIVE_MATRIX_EXTENSION_NAME' +-- +-- - 'KHR_COOPERATIVE_MATRIX_SPEC_VERSION' +-- +-- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType': +-- +-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_KHR' +-- +-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_KHR' +-- +-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_KHR' +-- +-- == New SPIR-V Capabilities +-- +-- - +-- +-- == Version History +-- +-- - Revision 2, 2023-05-03 (Kevin Petit) +-- +-- - First KHR revision +-- +-- - Revision 1, 2019-02-05 (Jeff Bolz) +-- +-- - NVIDIA vendor extension +-- +-- == See Also +-- +-- 'ComponentTypeKHR', 'CooperativeMatrixPropertiesKHR', +-- 'PhysicalDeviceCooperativeMatrixFeaturesKHR', +-- 'PhysicalDeviceCooperativeMatrixPropertiesKHR', 'ScopeKHR', +-- 'getPhysicalDeviceCooperativeMatrixPropertiesKHR' +-- +-- == Document Notes +-- +-- For more information, see the +-- +-- +-- This page is a generated document. Fixes and changes should be made to +-- the generator scripts, not directly. +module Vulkan.Extensions.VK_KHR_cooperative_matrix ( CooperativeMatrixPropertiesKHR + , PhysicalDeviceCooperativeMatrixFeaturesKHR + , PhysicalDeviceCooperativeMatrixPropertiesKHR + , ScopeKHR + , ComponentTypeKHR + ) where + +import Vulkan.CStruct (FromCStruct) +import Vulkan.CStruct (ToCStruct) +import Data.Kind (Type) + +data CooperativeMatrixPropertiesKHR + +instance ToCStruct CooperativeMatrixPropertiesKHR +instance Show CooperativeMatrixPropertiesKHR + +instance FromCStruct CooperativeMatrixPropertiesKHR + + +data PhysicalDeviceCooperativeMatrixFeaturesKHR + +instance ToCStruct PhysicalDeviceCooperativeMatrixFeaturesKHR +instance Show PhysicalDeviceCooperativeMatrixFeaturesKHR + +instance FromCStruct PhysicalDeviceCooperativeMatrixFeaturesKHR + + +data PhysicalDeviceCooperativeMatrixPropertiesKHR + +instance ToCStruct PhysicalDeviceCooperativeMatrixPropertiesKHR +instance Show PhysicalDeviceCooperativeMatrixPropertiesKHR + +instance FromCStruct PhysicalDeviceCooperativeMatrixPropertiesKHR + + +data ScopeKHR + + +data ComponentTypeKHR + diff --git a/src/Vulkan/Extensions/VK_KHR_copy_commands2.hs b/src/Vulkan/Extensions/VK_KHR_copy_commands2.hs index 442c7cddd..2906e7306 100644 --- a/src/Vulkan/Extensions/VK_KHR_copy_commands2.hs +++ b/src/Vulkan/Extensions/VK_KHR_copy_commands2.hs @@ -17,12 +17,15 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Ratified +-- -- [__Extension and Version Dependencies__] -- -- or -- -- --- [__Deprecation state__] +-- [__Deprecation State__] -- -- - /Promoted/ to -- diff --git a/src/Vulkan/Extensions/VK_KHR_create_renderpass2.hs b/src/Vulkan/Extensions/VK_KHR_create_renderpass2.hs index b2f0919ee..9afb0af99 100644 --- a/src/Vulkan/Extensions/VK_KHR_create_renderpass2.hs +++ b/src/Vulkan/Extensions/VK_KHR_create_renderpass2.hs @@ -17,12 +17,15 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Ratified +-- -- [__Extension and Version Dependencies__] -- -- and -- -- --- [__Deprecation state__] +-- [__Deprecation State__] -- -- - /Promoted/ to -- diff --git a/src/Vulkan/Extensions/VK_KHR_dedicated_allocation.hs b/src/Vulkan/Extensions/VK_KHR_dedicated_allocation.hs index 6bcdf4657..4105c9297 100644 --- a/src/Vulkan/Extensions/VK_KHR_dedicated_allocation.hs +++ b/src/Vulkan/Extensions/VK_KHR_dedicated_allocation.hs @@ -17,10 +17,13 @@ -- [__Revision__] -- 3 -- +-- [__Ratification Status__] +-- Ratified +-- -- [__Extension and Version Dependencies__] -- -- --- [__Deprecation state__] +-- [__Deprecation State__] -- -- - /Promoted/ to -- @@ -117,26 +120,26 @@ -- > VkResult result = vkCreateImage( -- > device, -- > &imageCreateInfo, --- > NULL, // pAllocator +-- > NULL, // pAllocator -- > &image); -- > -- > VkMemoryDedicatedRequirementsKHR dedicatedRequirements = -- > { --- > VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS_KHR, --- > NULL, // pNext +-- > .sType = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS_KHR, +-- > .pNext = NULL, -- > }; -- > -- > VkMemoryRequirements2 memoryRequirements = -- > { --- > VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2, --- > &dedicatedRequirements, // pNext +-- > .sType = VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2, +-- > .pNext = &dedicatedRequirements, -- > }; -- > -- > const VkImageMemoryRequirementsInfo2 imageRequirementsInfo = -- > { --- > VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2, --- > NULL, // pNext --- > image +-- > .sType = VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2, +-- > .pNext = NULL, +-- > .image = image -- > }; -- > -- > vkGetImageMemoryRequirements2( @@ -150,25 +153,25 @@ -- > -- > VkMemoryDedicatedAllocateInfoKHR dedicatedInfo = -- > { --- > VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO_KHR, // sType --- > NULL, // pNext --- > image, // image --- > VK_NULL_HANDLE, // buffer +-- > .sType = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO_KHR, +-- > .pNext = NULL, +-- > .image = image, +-- > .buffer = VK_NULL_HANDLE, -- > }; -- > -- > VkMemoryAllocateInfo memoryAllocateInfo = -- > { --- > VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO, // sType --- > &dedicatedInfo, // pNext --- > memoryRequirements.size, // allocationSize --- > FindMemoryTypeIndex(memoryRequirements.memoryTypeBits), // memoryTypeIndex +-- > .sType = VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO, +-- > .pNext = &dedicatedInfo, +-- > .allocationSize = memoryRequirements.size, +-- > .memoryTypeIndex = FindMemoryTypeIndex(memoryRequirements.memoryTypeBits), -- > }; -- > -- > VkDeviceMemory memory; -- > vkAllocateMemory( -- > device, -- > &memoryAllocateInfo, --- > NULL, // pAllocator +-- > NULL, // pAllocator -- > &memory); -- > -- > // Bind the image to the memory diff --git a/src/Vulkan/Extensions/VK_KHR_deferred_host_operations.hs b/src/Vulkan/Extensions/VK_KHR_deferred_host_operations.hs index 2a9747b8e..8ed6c4980 100644 --- a/src/Vulkan/Extensions/VK_KHR_deferred_host_operations.hs +++ b/src/Vulkan/Extensions/VK_KHR_deferred_host_operations.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 4 -- +-- [__Ratification Status__] +-- Ratified +-- -- [__Extension and Version Dependencies__; __Contact__] -- -- - Josh Barczak diff --git a/src/Vulkan/Extensions/VK_KHR_depth_stencil_resolve.hs b/src/Vulkan/Extensions/VK_KHR_depth_stencil_resolve.hs index 87f9793b9..cb04a1b59 100644 --- a/src/Vulkan/Extensions/VK_KHR_depth_stencil_resolve.hs +++ b/src/Vulkan/Extensions/VK_KHR_depth_stencil_resolve.hs @@ -17,10 +17,13 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Ratified +-- -- [__Extension and Version Dependencies__] -- -- --- [__Deprecation state__] +-- [__Deprecation State__] -- -- - /Promoted/ to -- diff --git a/src/Vulkan/Extensions/VK_KHR_descriptor_update_template.hs b/src/Vulkan/Extensions/VK_KHR_descriptor_update_template.hs index d5119710b..9a668a07d 100644 --- a/src/Vulkan/Extensions/VK_KHR_descriptor_update_template.hs +++ b/src/Vulkan/Extensions/VK_KHR_descriptor_update_template.hs @@ -17,7 +17,10 @@ -- [__Revision__] -- 1 -- --- [__Extension and Version Dependencies__; __Deprecation state__] +-- [__Ratification Status__] +-- Ratified +-- +-- [__Extension and Version Dependencies__; __Deprecation State__] -- -- - /Promoted/ to -- diff --git a/src/Vulkan/Extensions/VK_KHR_device_group.hs b/src/Vulkan/Extensions/VK_KHR_device_group.hs index d1cb511dd..e5eb98240 100644 --- a/src/Vulkan/Extensions/VK_KHR_device_group.hs +++ b/src/Vulkan/Extensions/VK_KHR_device_group.hs @@ -17,10 +17,13 @@ -- [__Revision__] -- 4 -- +-- [__Ratification Status__] +-- Ratified +-- -- [__Extension and Version Dependencies__] -- -- --- [__Deprecation state__] +-- [__Deprecation State__] -- -- - /Promoted/ to -- diff --git a/src/Vulkan/Extensions/VK_KHR_device_group_creation.hs b/src/Vulkan/Extensions/VK_KHR_device_group_creation.hs index 87b0b3f4a..9e25b97f0 100644 --- a/src/Vulkan/Extensions/VK_KHR_device_group_creation.hs +++ b/src/Vulkan/Extensions/VK_KHR_device_group_creation.hs @@ -17,7 +17,10 @@ -- [__Revision__] -- 1 -- --- [__Extension and Version Dependencies__; __Deprecation state__] +-- [__Ratification Status__] +-- Ratified +-- +-- [__Extension and Version Dependencies__; __Deprecation State__] -- -- - /Promoted/ to -- diff --git a/src/Vulkan/Extensions/VK_KHR_display.hs b/src/Vulkan/Extensions/VK_KHR_display.hs index 57097c7c1..df4e902cd 100644 --- a/src/Vulkan/Extensions/VK_KHR_display.hs +++ b/src/Vulkan/Extensions/VK_KHR_display.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 23 -- +-- [__Ratification Status__] +-- Ratified +-- -- [__Extension and Version Dependencies__] -- -- @@ -397,7 +400,7 @@ -- -- - Added an “extension type” section to the specification header. -- --- - Re-used the VK_EXT_KHR_surface surface transform enumerations +-- - Reused the VK_EXT_KHR_surface surface transform enumerations -- rather than redefining them here. -- -- - Updated the example code to use the new semantics. @@ -1123,6 +1126,9 @@ foreign import ccall -- @pCapabilities@ /must/ be a valid pointer to a -- 'DisplayPlaneCapabilitiesKHR' structure -- +-- - #VUID-vkGetDisplayPlaneCapabilitiesKHR-mode-parent# @mode@ /must/ +-- have been created, allocated, or retrieved from @physicalDevice@ +-- -- == Host Synchronization -- -- - Host access to @mode@ /must/ be externally synchronized diff --git a/src/Vulkan/Extensions/VK_KHR_display.hs-boot b/src/Vulkan/Extensions/VK_KHR_display.hs-boot index f56262b4c..73e569ce7 100644 --- a/src/Vulkan/Extensions/VK_KHR_display.hs-boot +++ b/src/Vulkan/Extensions/VK_KHR_display.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 23 -- +-- [__Ratification Status__] +-- Ratified +-- -- [__Extension and Version Dependencies__] -- -- @@ -397,7 +400,7 @@ -- -- - Added an “extension type” section to the specification header. -- --- - Re-used the VK_EXT_KHR_surface surface transform enumerations +-- - Reused the VK_EXT_KHR_surface surface transform enumerations -- rather than redefining them here. -- -- - Updated the example code to use the new semantics. diff --git a/src/Vulkan/Extensions/VK_KHR_display_swapchain.hs b/src/Vulkan/Extensions/VK_KHR_display_swapchain.hs index f64a3feaf..fa8a175ab 100644 --- a/src/Vulkan/Extensions/VK_KHR_display_swapchain.hs +++ b/src/Vulkan/Extensions/VK_KHR_display_swapchain.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 10 -- +-- [__Ratification Status__] +-- Ratified +-- -- [__Extension and Version Dependencies__] -- -- and @@ -155,7 +158,7 @@ -- -- - Revision 4, 2015-09-08 (James Jones) -- --- - Allow creating multiple swap chains that share the same images +-- - Allow creating multiple swapchains that share the same images -- using a single call to vkCreateSwapchainKHR(). -- -- - Revision 5, 2015-09-10 (Alon Or-bach) diff --git a/src/Vulkan/Extensions/VK_KHR_display_swapchain.hs-boot b/src/Vulkan/Extensions/VK_KHR_display_swapchain.hs-boot index f164d1f16..6fbdc14f0 100644 --- a/src/Vulkan/Extensions/VK_KHR_display_swapchain.hs-boot +++ b/src/Vulkan/Extensions/VK_KHR_display_swapchain.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 10 -- +-- [__Ratification Status__] +-- Ratified +-- -- [__Extension and Version Dependencies__] -- -- and @@ -155,7 +158,7 @@ -- -- - Revision 4, 2015-09-08 (James Jones) -- --- - Allow creating multiple swap chains that share the same images +-- - Allow creating multiple swapchains that share the same images -- using a single call to vkCreateSwapchainKHR(). -- -- - Revision 5, 2015-09-10 (Alon Or-bach) diff --git a/src/Vulkan/Extensions/VK_KHR_draw_indirect_count.hs b/src/Vulkan/Extensions/VK_KHR_draw_indirect_count.hs index 7875ca262..4ba045d54 100644 --- a/src/Vulkan/Extensions/VK_KHR_draw_indirect_count.hs +++ b/src/Vulkan/Extensions/VK_KHR_draw_indirect_count.hs @@ -17,7 +17,10 @@ -- [__Revision__] -- 1 -- --- [__Extension and Version Dependencies__; __Deprecation state__] +-- [__Ratification Status__] +-- Ratified +-- +-- [__Extension and Version Dependencies__; __Deprecation State__] -- -- - /Promoted/ to -- diff --git a/src/Vulkan/Extensions/VK_KHR_driver_properties.hs b/src/Vulkan/Extensions/VK_KHR_driver_properties.hs index 352731f89..111987f04 100644 --- a/src/Vulkan/Extensions/VK_KHR_driver_properties.hs +++ b/src/Vulkan/Extensions/VK_KHR_driver_properties.hs @@ -17,10 +17,13 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Ratified +-- -- [__Extension and Version Dependencies__] -- -- --- [__Deprecation state__] +-- [__Deprecation State__] -- -- - /Promoted/ to -- diff --git a/src/Vulkan/Extensions/VK_KHR_dynamic_rendering.hs b/src/Vulkan/Extensions/VK_KHR_dynamic_rendering.hs index 26f6ab453..5135fa9ea 100644 --- a/src/Vulkan/Extensions/VK_KHR_dynamic_rendering.hs +++ b/src/Vulkan/Extensions/VK_KHR_dynamic_rendering.hs @@ -17,12 +17,15 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Ratified +-- -- [__Extension and Version Dependencies__] -- -- and -- -- --- [__Deprecation state__] +-- [__Deprecation State__] -- -- - /Promoted/ to -- @@ -692,7 +695,7 @@ instance Zero RenderingFragmentDensityMapAttachmentInfoEXT where -- 'AttachmentSampleCountInfoAMD' /can/ also be included in the @pNext@ -- chain of 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'. When a -- graphics pipeline is created without a --- 'Vulkan.Core10.Handles.RenderPass', if this structure is present in the +-- 'Vulkan.Core10.Handles.RenderPass', if this structure is included in the -- @pNext@ chain of 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo', it -- specifies the sample count of attachments used for rendering. If this -- structure is not specified, and the pipeline does not include a diff --git a/src/Vulkan/Extensions/VK_KHR_dynamic_rendering.hs-boot b/src/Vulkan/Extensions/VK_KHR_dynamic_rendering.hs-boot index f7d318c82..f5f0468b5 100644 --- a/src/Vulkan/Extensions/VK_KHR_dynamic_rendering.hs-boot +++ b/src/Vulkan/Extensions/VK_KHR_dynamic_rendering.hs-boot @@ -17,12 +17,15 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Ratified +-- -- [__Extension and Version Dependencies__] -- -- and -- -- --- [__Deprecation state__] +-- [__Deprecation State__] -- -- - /Promoted/ to -- diff --git a/src/Vulkan/Extensions/VK_KHR_external_fence.hs b/src/Vulkan/Extensions/VK_KHR_external_fence.hs index 40b819515..05498b257 100644 --- a/src/Vulkan/Extensions/VK_KHR_external_fence.hs +++ b/src/Vulkan/Extensions/VK_KHR_external_fence.hs @@ -17,10 +17,13 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Ratified +-- -- [__Extension and Version Dependencies__] -- -- --- [__Deprecation state__] +-- [__Deprecation State__] -- -- - /Promoted/ to -- diff --git a/src/Vulkan/Extensions/VK_KHR_external_fence_capabilities.hs b/src/Vulkan/Extensions/VK_KHR_external_fence_capabilities.hs index df8bda5be..5a284514e 100644 --- a/src/Vulkan/Extensions/VK_KHR_external_fence_capabilities.hs +++ b/src/Vulkan/Extensions/VK_KHR_external_fence_capabilities.hs @@ -17,10 +17,13 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Ratified +-- -- [__Extension and Version Dependencies__] -- -- --- [__Deprecation state__] +-- [__Deprecation State__] -- -- - /Promoted/ to -- diff --git a/src/Vulkan/Extensions/VK_KHR_external_fence_fd.hs b/src/Vulkan/Extensions/VK_KHR_external_fence_fd.hs index 16423d12b..f7964a24d 100644 --- a/src/Vulkan/Extensions/VK_KHR_external_fence_fd.hs +++ b/src/Vulkan/Extensions/VK_KHR_external_fence_fd.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Ratified +-- -- [__Extension and Version Dependencies__] -- -- or diff --git a/src/Vulkan/Extensions/VK_KHR_external_fence_fd.hs-boot b/src/Vulkan/Extensions/VK_KHR_external_fence_fd.hs-boot index 179bef13d..d1dce9b23 100644 --- a/src/Vulkan/Extensions/VK_KHR_external_fence_fd.hs-boot +++ b/src/Vulkan/Extensions/VK_KHR_external_fence_fd.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Ratified +-- -- [__Extension and Version Dependencies__] -- -- or diff --git a/src/Vulkan/Extensions/VK_KHR_external_fence_win32.hs b/src/Vulkan/Extensions/VK_KHR_external_fence_win32.hs index 3edf204ff..10dafe775 100644 --- a/src/Vulkan/Extensions/VK_KHR_external_fence_win32.hs +++ b/src/Vulkan/Extensions/VK_KHR_external_fence_win32.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Ratified +-- -- [__Extension and Version Dependencies__] -- -- @@ -483,9 +486,9 @@ instance Zero ImportFenceWin32HandleInfoKHR where -- is included in the @pNext@ chain of -- 'Vulkan.Core10.Fence.FenceCreateInfo' with a Windows @handleType@, but -- either 'ExportFenceWin32HandleInfoKHR' is not included in the @pNext@ --- chain, or if it is but @pAttributes@ is set to @NULL@, default security --- descriptor values will be used, and child processes created by the --- application will not inherit the handle, as described in the MSDN +-- chain, or it is included but @pAttributes@ is set to @NULL@, default +-- security descriptor values will be used, and child processes created by +-- the application will not inherit the handle, as described in the MSDN -- documentation for “Synchronization Object Security and Access Rights”1. -- Further, if the structure is not present, the access rights will be -- diff --git a/src/Vulkan/Extensions/VK_KHR_external_fence_win32.hs-boot b/src/Vulkan/Extensions/VK_KHR_external_fence_win32.hs-boot index 5102f639b..ea8c51396 100644 --- a/src/Vulkan/Extensions/VK_KHR_external_fence_win32.hs-boot +++ b/src/Vulkan/Extensions/VK_KHR_external_fence_win32.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Ratified +-- -- [__Extension and Version Dependencies__] -- -- diff --git a/src/Vulkan/Extensions/VK_KHR_external_memory.hs b/src/Vulkan/Extensions/VK_KHR_external_memory.hs index 8c89dd0b2..5c53437f0 100644 --- a/src/Vulkan/Extensions/VK_KHR_external_memory.hs +++ b/src/Vulkan/Extensions/VK_KHR_external_memory.hs @@ -17,10 +17,13 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Ratified +-- -- [__Extension and Version Dependencies__] -- -- --- [__Deprecation state__] +-- [__Deprecation State__] -- -- - /Promoted/ to -- diff --git a/src/Vulkan/Extensions/VK_KHR_external_memory_capabilities.hs b/src/Vulkan/Extensions/VK_KHR_external_memory_capabilities.hs index 597e24fc4..83a1294da 100644 --- a/src/Vulkan/Extensions/VK_KHR_external_memory_capabilities.hs +++ b/src/Vulkan/Extensions/VK_KHR_external_memory_capabilities.hs @@ -17,10 +17,13 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Ratified +-- -- [__Extension and Version Dependencies__] -- -- --- [__Deprecation state__] +-- [__Deprecation State__] -- -- - /Promoted/ to -- diff --git a/src/Vulkan/Extensions/VK_KHR_external_memory_fd.hs b/src/Vulkan/Extensions/VK_KHR_external_memory_fd.hs index cdaf5776a..671ac0f17 100644 --- a/src/Vulkan/Extensions/VK_KHR_external_memory_fd.hs +++ b/src/Vulkan/Extensions/VK_KHR_external_memory_fd.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Ratified +-- -- [__Extension and Version Dependencies__] -- -- or @@ -309,8 +312,8 @@ getMemoryFdPropertiesKHR :: forall io ExternalMemoryHandleTypeFlagBits -> -- | @fd@ is the handle which will be imported. -- - -- #VUID-vkGetMemoryFdPropertiesKHR-fd-00673# @fd@ /must/ be an external - -- memory handle created outside of the Vulkan API + -- #VUID-vkGetMemoryFdPropertiesKHR-fd-00673# @fd@ /must/ point to a valid + -- POSIX file descriptor memory handle ("fd" ::: Int32) -> io (MemoryFdPropertiesKHR) getMemoryFdPropertiesKHR device handleType fd = liftIO . evalContT $ do diff --git a/src/Vulkan/Extensions/VK_KHR_external_memory_fd.hs-boot b/src/Vulkan/Extensions/VK_KHR_external_memory_fd.hs-boot index f85afcab7..64b1f13c7 100644 --- a/src/Vulkan/Extensions/VK_KHR_external_memory_fd.hs-boot +++ b/src/Vulkan/Extensions/VK_KHR_external_memory_fd.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Ratified +-- -- [__Extension and Version Dependencies__] -- -- or diff --git a/src/Vulkan/Extensions/VK_KHR_external_memory_win32.hs b/src/Vulkan/Extensions/VK_KHR_external_memory_win32.hs index dfb3f36c9..e77db7e76 100644 --- a/src/Vulkan/Extensions/VK_KHR_external_memory_win32.hs +++ b/src/Vulkan/Extensions/VK_KHR_external_memory_win32.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Ratified +-- -- [__Extension and Version Dependencies__] -- -- @@ -328,7 +331,7 @@ getMemoryWin32HandlePropertiesKHR :: forall io -> -- | @handle@ is the handle which will be imported. -- -- #VUID-vkGetMemoryWin32HandlePropertiesKHR-handle-00665# @handle@ /must/ - -- be an external memory handle created outside of the Vulkan API + -- point to a valid Windows memory handle HANDLE -> io (MemoryWin32HandlePropertiesKHR) getMemoryWin32HandlePropertiesKHR device @@ -503,12 +506,12 @@ instance Zero ImportMemoryWin32HandleInfoKHR where -- is included in the @pNext@ chain of -- 'Vulkan.Core10.Memory.MemoryAllocateInfo' with a Windows @handleType@, -- but either 'ExportMemoryWin32HandleInfoKHR' is not included in the --- @pNext@ chain, or if it is but @pAttributes@ is set to @NULL@, default --- security descriptor values will be used, and child processes created by --- the application will not inherit the handle, as described in the MSDN --- documentation for “Synchronization Object Security and Access Rights”1. --- Further, if the structure is not present, the access rights used depend --- on the handle type. +-- @pNext@ chain, or it is included but @pAttributes@ is set to @NULL@, +-- default security descriptor values will be used, and child processes +-- created by the application will not inherit the handle, as described in +-- the MSDN documentation for “Synchronization Object Security and Access +-- Rights”1. Further, if the structure is not present, the access rights +-- used depend on the handle type. -- -- For handles of the following types: -- diff --git a/src/Vulkan/Extensions/VK_KHR_external_memory_win32.hs-boot b/src/Vulkan/Extensions/VK_KHR_external_memory_win32.hs-boot index 7c28e26d1..bdeea00a3 100644 --- a/src/Vulkan/Extensions/VK_KHR_external_memory_win32.hs-boot +++ b/src/Vulkan/Extensions/VK_KHR_external_memory_win32.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Ratified +-- -- [__Extension and Version Dependencies__] -- -- diff --git a/src/Vulkan/Extensions/VK_KHR_external_semaphore.hs b/src/Vulkan/Extensions/VK_KHR_external_semaphore.hs index bc4c10243..3e2922d14 100644 --- a/src/Vulkan/Extensions/VK_KHR_external_semaphore.hs +++ b/src/Vulkan/Extensions/VK_KHR_external_semaphore.hs @@ -17,10 +17,13 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Ratified +-- -- [__Extension and Version Dependencies__] -- -- --- [__Deprecation state__] +-- [__Deprecation State__] -- -- - /Promoted/ to -- diff --git a/src/Vulkan/Extensions/VK_KHR_external_semaphore_capabilities.hs b/src/Vulkan/Extensions/VK_KHR_external_semaphore_capabilities.hs index 14fed6e59..599231835 100644 --- a/src/Vulkan/Extensions/VK_KHR_external_semaphore_capabilities.hs +++ b/src/Vulkan/Extensions/VK_KHR_external_semaphore_capabilities.hs @@ -17,10 +17,13 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Ratified +-- -- [__Extension and Version Dependencies__] -- -- --- [__Deprecation state__] +-- [__Deprecation State__] -- -- - /Promoted/ to -- diff --git a/src/Vulkan/Extensions/VK_KHR_external_semaphore_fd.hs b/src/Vulkan/Extensions/VK_KHR_external_semaphore_fd.hs index 66d288459..1392526b8 100644 --- a/src/Vulkan/Extensions/VK_KHR_external_semaphore_fd.hs +++ b/src/Vulkan/Extensions/VK_KHR_external_semaphore_fd.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Ratified +-- -- [__Extension and Version Dependencies__] -- -- or diff --git a/src/Vulkan/Extensions/VK_KHR_external_semaphore_fd.hs-boot b/src/Vulkan/Extensions/VK_KHR_external_semaphore_fd.hs-boot index 42b277ca7..4c5984d20 100644 --- a/src/Vulkan/Extensions/VK_KHR_external_semaphore_fd.hs-boot +++ b/src/Vulkan/Extensions/VK_KHR_external_semaphore_fd.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Ratified +-- -- [__Extension and Version Dependencies__] -- -- or diff --git a/src/Vulkan/Extensions/VK_KHR_external_semaphore_win32.hs b/src/Vulkan/Extensions/VK_KHR_external_semaphore_win32.hs index fed294354..b2bbcd160 100644 --- a/src/Vulkan/Extensions/VK_KHR_external_semaphore_win32.hs +++ b/src/Vulkan/Extensions/VK_KHR_external_semaphore_win32.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Ratified +-- -- [__Extension and Version Dependencies__] -- -- @@ -557,12 +560,12 @@ instance Zero ImportSemaphoreWin32HandleInfoKHR where -- is included in the @pNext@ chain of -- 'Vulkan.Core10.QueueSemaphore.SemaphoreCreateInfo' with a Windows -- @handleType@, but either 'ExportSemaphoreWin32HandleInfoKHR' is not --- included in the @pNext@ chain, or if it is but @pAttributes@ is set to --- @NULL@, default security descriptor values will be used, and child --- processes created by the application will not inherit the handle, as --- described in the MSDN documentation for “Synchronization Object Security --- and Access Rights”1. Further, if the structure is not present, the --- access rights used depend on the handle type. +-- included in the @pNext@ chain, or it is included but @pAttributes@ is +-- set to @NULL@, default security descriptor values will be used, and +-- child processes created by the application will not inherit the handle, +-- as described in the MSDN documentation for “Synchronization Object +-- Security and Access Rights”1. Further, if the structure is not present, +-- the access rights used depend on the handle type. -- -- For handles of the following types: -- diff --git a/src/Vulkan/Extensions/VK_KHR_external_semaphore_win32.hs-boot b/src/Vulkan/Extensions/VK_KHR_external_semaphore_win32.hs-boot index 68fc3432c..201758b1f 100644 --- a/src/Vulkan/Extensions/VK_KHR_external_semaphore_win32.hs-boot +++ b/src/Vulkan/Extensions/VK_KHR_external_semaphore_win32.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Ratified +-- -- [__Extension and Version Dependencies__] -- -- diff --git a/src/Vulkan/Extensions/VK_KHR_format_feature_flags2.hs b/src/Vulkan/Extensions/VK_KHR_format_feature_flags2.hs index 82d8c07b4..d9cd7ee0d 100644 --- a/src/Vulkan/Extensions/VK_KHR_format_feature_flags2.hs +++ b/src/Vulkan/Extensions/VK_KHR_format_feature_flags2.hs @@ -17,10 +17,13 @@ -- [__Revision__] -- 2 -- +-- [__Ratification Status__] +-- Ratified +-- -- [__Extension and Version Dependencies__] -- -- --- [__Deprecation state__] +-- [__Deprecation State__] -- -- - /Promoted/ to -- diff --git a/src/Vulkan/Extensions/VK_KHR_fragment_shader_barycentric.hs b/src/Vulkan/Extensions/VK_KHR_fragment_shader_barycentric.hs index a7c5be26f..6e034e9c0 100644 --- a/src/Vulkan/Extensions/VK_KHR_fragment_shader_barycentric.hs +++ b/src/Vulkan/Extensions/VK_KHR_fragment_shader_barycentric.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Ratified +-- -- [__Extension and Version Dependencies__] -- -- @@ -279,6 +282,21 @@ instance Zero PhysicalDeviceFragmentShaderBarycentricFeaturesKHR where -- | VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR - Structure -- describing fragment shader barycentric limits of an implementation -- +-- = Members +-- +-- - #limits-triStripVertexOrderIndependentOfProvokingVertex# When the +-- +-- is +-- 'Vulkan.Extensions.VK_EXT_provoking_vertex.PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT', +-- and the primitive order is odd in a triangle strip, the ordering of +-- vertices is defined in +-- . +-- @triStripVertexOrderIndependentOfProvokingVertex@ equal to +-- 'Vulkan.Core10.FundamentalTypes.TRUE' indicates that the +-- implementation ignores this and uses the vertex order defined by +-- 'Vulkan.Extensions.VK_EXT_provoking_vertex.PROVOKING_VERTEX_MODE_FIRST_VERTEX_EXT' +-- instead. +-- -- = Description -- -- If the 'PhysicalDeviceFragmentShaderBarycentricPropertiesKHR' structure @@ -297,15 +315,7 @@ instance Zero PhysicalDeviceFragmentShaderBarycentricFeaturesKHR where -- 'Vulkan.Core10.FundamentalTypes.Bool32', -- 'Vulkan.Core10.Enums.StructureType.StructureType' data PhysicalDeviceFragmentShaderBarycentricPropertiesKHR = PhysicalDeviceFragmentShaderBarycentricPropertiesKHR - { -- | #limits-triStripVertexOrderIndependentOfProvokingVertex# - -- @triStripVertexOrderIndependentOfProvokingVertex@ indicates that the - -- implementation does not change its vertex numbering for triangle strip - -- primitives when the - -- - -- is - -- 'Vulkan.Extensions.VK_EXT_provoking_vertex.PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT', - -- as shown in the - -- . + { -- No documentation found for Nested "VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR" "triStripVertexOrderIndependentOfProvokingVertex" triStripVertexOrderIndependentOfProvokingVertex :: Bool } deriving (Typeable, Eq) #if defined(GENERIC_INSTANCES) diff --git a/src/Vulkan/Extensions/VK_KHR_fragment_shader_barycentric.hs-boot b/src/Vulkan/Extensions/VK_KHR_fragment_shader_barycentric.hs-boot index 393b167da..9e82519e0 100644 --- a/src/Vulkan/Extensions/VK_KHR_fragment_shader_barycentric.hs-boot +++ b/src/Vulkan/Extensions/VK_KHR_fragment_shader_barycentric.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Ratified +-- -- [__Extension and Version Dependencies__] -- -- diff --git a/src/Vulkan/Extensions/VK_KHR_fragment_shading_rate.hs b/src/Vulkan/Extensions/VK_KHR_fragment_shading_rate.hs index baf98a5e0..d7cbdc0df 100644 --- a/src/Vulkan/Extensions/VK_KHR_fragment_shading_rate.hs +++ b/src/Vulkan/Extensions/VK_KHR_fragment_shading_rate.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 2 -- +-- [__Ratification Status__] +-- Ratified +-- -- [__Extension and Version Dependencies__] --      -- @@ -415,8 +418,8 @@ foreign import ccall -- @pFragmentSize@ /must/ be a valid pointer to a valid -- 'Vulkan.Core10.FundamentalTypes.Extent2D' structure -- --- - #VUID-vkCmdSetFragmentShadingRateKHR-combinerOps-parameter# Any --- given element of @combinerOps@ /must/ be a valid +-- - #VUID-vkCmdSetFragmentShadingRateKHR-combinerOps-parameter# Each +-- element of @combinerOps@ /must/ be a valid -- 'FragmentShadingRateCombinerOpKHR' value -- -- - #VUID-vkCmdSetFragmentShadingRateKHR-commandBuffer-recording# diff --git a/src/Vulkan/Extensions/VK_KHR_fragment_shading_rate.hs-boot b/src/Vulkan/Extensions/VK_KHR_fragment_shading_rate.hs-boot index 404b2b046..da835e42e 100644 --- a/src/Vulkan/Extensions/VK_KHR_fragment_shading_rate.hs-boot +++ b/src/Vulkan/Extensions/VK_KHR_fragment_shading_rate.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 2 -- +-- [__Ratification Status__] +-- Ratified +-- -- [__Extension and Version Dependencies__] --      -- diff --git a/src/Vulkan/Extensions/VK_KHR_get_display_properties2.hs b/src/Vulkan/Extensions/VK_KHR_get_display_properties2.hs index 93df627d4..dd00e005b 100644 --- a/src/Vulkan/Extensions/VK_KHR_get_display_properties2.hs +++ b/src/Vulkan/Extensions/VK_KHR_get_display_properties2.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Ratified +-- -- [__Extension and Version Dependencies__] -- -- @@ -41,10 +44,10 @@ -- -- == Description -- --- This extension provides new entry points to query device display --- properties and capabilities in a way that can be easily extended by --- other extensions, without introducing any further entry points. This --- extension can be considered the @VK_KHR_display@ equivalent of the +-- This extension provides new queries for device display properties and +-- capabilities that can be easily extended by other extensions, without +-- introducing any further queries. This extension can be considered the +-- @VK_KHR_display@ equivalent of the -- @VK_KHR_get_physical_device_properties2@ extension. -- -- == New Commands diff --git a/src/Vulkan/Extensions/VK_KHR_get_display_properties2.hs-boot b/src/Vulkan/Extensions/VK_KHR_get_display_properties2.hs-boot index b30750f03..ea40a3062 100644 --- a/src/Vulkan/Extensions/VK_KHR_get_display_properties2.hs-boot +++ b/src/Vulkan/Extensions/VK_KHR_get_display_properties2.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Ratified +-- -- [__Extension and Version Dependencies__] -- -- @@ -41,10 +44,10 @@ -- -- == Description -- --- This extension provides new entry points to query device display --- properties and capabilities in a way that can be easily extended by --- other extensions, without introducing any further entry points. This --- extension can be considered the @VK_KHR_display@ equivalent of the +-- This extension provides new queries for device display properties and +-- capabilities that can be easily extended by other extensions, without +-- introducing any further queries. This extension can be considered the +-- @VK_KHR_display@ equivalent of the -- @VK_KHR_get_physical_device_properties2@ extension. -- -- == New Commands diff --git a/src/Vulkan/Extensions/VK_KHR_get_memory_requirements2.hs b/src/Vulkan/Extensions/VK_KHR_get_memory_requirements2.hs index ea869e396..fecc4bdf5 100644 --- a/src/Vulkan/Extensions/VK_KHR_get_memory_requirements2.hs +++ b/src/Vulkan/Extensions/VK_KHR_get_memory_requirements2.hs @@ -17,7 +17,10 @@ -- [__Revision__] -- 1 -- --- [__Extension and Version Dependencies__; __Deprecation state__] +-- [__Ratification Status__] +-- Ratified +-- +-- [__Extension and Version Dependencies__; __Deprecation State__] -- -- - /Promoted/ to -- @@ -49,9 +52,9 @@ -- -- == Description -- --- This extension provides new entry points to query memory requirements of --- images and buffers in a way that can be easily extended by other --- extensions, without introducing any further entry points. The Vulkan 1.0 +-- This extension provides new queries for memory requirements of images +-- and buffers that can be easily extended by other extensions, without +-- introducing any further entry points. The Vulkan 1.0 -- 'Vulkan.Core10.MemoryManagement.MemoryRequirements' and -- 'Vulkan.Core10.SparseResourceMemoryManagement.SparseImageMemoryRequirements' -- structures do not include @sType@ and @pNext@ members. This extension diff --git a/src/Vulkan/Extensions/VK_KHR_get_memory_requirements2.hs-boot b/src/Vulkan/Extensions/VK_KHR_get_memory_requirements2.hs-boot index 18177883d..8953c4a8f 100644 --- a/src/Vulkan/Extensions/VK_KHR_get_memory_requirements2.hs-boot +++ b/src/Vulkan/Extensions/VK_KHR_get_memory_requirements2.hs-boot @@ -17,7 +17,10 @@ -- [__Revision__] -- 1 -- --- [__Extension and Version Dependencies__; __Deprecation state__] +-- [__Ratification Status__] +-- Ratified +-- +-- [__Extension and Version Dependencies__; __Deprecation State__] -- -- - /Promoted/ to -- @@ -49,9 +52,9 @@ -- -- == Description -- --- This extension provides new entry points to query memory requirements of --- images and buffers in a way that can be easily extended by other --- extensions, without introducing any further entry points. The Vulkan 1.0 +-- This extension provides new queries for memory requirements of images +-- and buffers that can be easily extended by other extensions, without +-- introducing any further entry points. The Vulkan 1.0 -- 'Vulkan.Core10.MemoryManagement.MemoryRequirements' and -- 'Vulkan.Core10.SparseResourceMemoryManagement.SparseImageMemoryRequirements' -- structures do not include @sType@ and @pNext@ members. This extension diff --git a/src/Vulkan/Extensions/VK_KHR_get_physical_device_properties2.hs b/src/Vulkan/Extensions/VK_KHR_get_physical_device_properties2.hs index ebd545f40..94a38a454 100644 --- a/src/Vulkan/Extensions/VK_KHR_get_physical_device_properties2.hs +++ b/src/Vulkan/Extensions/VK_KHR_get_physical_device_properties2.hs @@ -17,7 +17,10 @@ -- [__Revision__] -- 2 -- --- [__Extension and Version Dependencies__; __Deprecation state__] +-- [__Ratification Status__] +-- Ratified +-- +-- [__Extension and Version Dependencies__; __Deprecation State__] -- -- - /Promoted/ to -- @@ -47,17 +50,17 @@ -- -- == Description -- --- This extension provides new entry points to query device features, --- device properties, and format properties in a way that can be easily --- extended by other extensions, without introducing any further entry --- points. The Vulkan 1.0 feature\/limit\/formatproperty structures do not --- include @sType@\/@pNext@ members. This extension wraps them in new --- structures with @sType@\/@pNext@ members, so an application can query a --- chain of feature\/limit\/formatproperty structures by constructing the --- chain and letting the implementation fill them in. A new command is --- added for each @vkGetPhysicalDevice*@ command in core Vulkan 1.0. The --- new feature structure (and a @pNext@ chain of extending structures) can --- also be passed in to device creation to enable features. +-- This extension provides new queries for device features, device +-- properties, and format properties that can be easily extended by other +-- extensions, without introducing any further queries. The Vulkan 1.0 +-- feature\/limit\/formatproperty structures do not include +-- @sType@\/@pNext@ members. This extension wraps them in new structures +-- with @sType@\/@pNext@ members, so an application can query a chain of +-- feature\/limit\/formatproperty structures by constructing the chain and +-- letting the implementation fill them in. A new command is added for each +-- @vkGetPhysicalDevice*@ command in core Vulkan 1.0. The new feature +-- structure (and a @pNext@ chain of extending structures) can also be +-- passed in to device creation to enable features. -- -- This extension also allows applications to use the physical-device -- components of device extensions before @@ -138,14 +141,14 @@ -- > // Get features with a hypothetical future extension. -- > VkHypotheticalExtensionFeaturesKHR hypotheticalFeatures = -- > { --- > VK_STRUCTURE_TYPE_HYPOTHETICAL_FEATURES_KHR, // sType --- > NULL, // pNext +-- > .sType = VK_STRUCTURE_TYPE_HYPOTHETICAL_FEATURES_KHR, +-- > .pNext = NULL, -- > }; -- > -- > VkPhysicalDeviceFeatures2KHR features = -- > { --- > VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2_KHR, // sType --- > &hypotheticalFeatures, // pNext +-- > .sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2_KHR, +-- > .pNext = &hypotheticalFeatures, -- > }; -- > -- > // After this call, features and hypotheticalFeatures have been filled out. @@ -156,14 +159,14 @@ -- > // Enable some features: -- > VkHypotheticalExtensionFeaturesKHR enabledHypotheticalFeatures = -- > { --- > VK_STRUCTURE_TYPE_HYPOTHETICAL_FEATURES_KHR, // sType --- > NULL, // pNext +-- > .sType = VK_STRUCTURE_TYPE_HYPOTHETICAL_FEATURES_KHR, +-- > .pNext = NULL, -- > }; -- > -- > VkPhysicalDeviceFeatures2KHR enabledFeatures = -- > { --- > VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2_KHR, // sType --- > &enabledHypotheticalFeatures, // pNext +-- > .sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2_KHR, +-- > .pNext = &enabledHypotheticalFeatures, -- > }; -- > -- > enabledFeatures.features.xyz = VK_TRUE; @@ -171,10 +174,10 @@ -- > -- > VkDeviceCreateInfo deviceCreateInfo = -- > { --- > VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO, // sType --- > &enabledFeatures, // pNext +-- > .sType = VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO, +-- > .pNext = &enabledFeatures, -- > ... --- > NULL, // pEnabledFeatures +-- > .pEnabledFeatures = NULL, -- > }; -- > -- > VkDevice device; diff --git a/src/Vulkan/Extensions/VK_KHR_get_surface_capabilities2.hs b/src/Vulkan/Extensions/VK_KHR_get_surface_capabilities2.hs index 4a796751f..b0a2aaa02 100644 --- a/src/Vulkan/Extensions/VK_KHR_get_surface_capabilities2.hs +++ b/src/Vulkan/Extensions/VK_KHR_get_surface_capabilities2.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Ratified +-- -- [__Extension and Version Dependencies__] -- -- @@ -43,11 +46,10 @@ -- -- == Description -- --- This extension provides new entry points to query device surface --- capabilities in a way that can be easily extended by other extensions, --- without introducing any further entry points. This extension can be --- considered the @VK_KHR_surface@ equivalent of the --- @VK_KHR_get_physical_device_properties2@ extension. +-- This extension provides new queries for device surface capabilities that +-- can be easily extended by other extensions, without introducing any +-- further queries. This extension can be considered the @VK_KHR_surface@ +-- equivalent of the @VK_KHR_get_physical_device_properties2@ extension. -- -- == New Commands -- @@ -205,6 +207,7 @@ import Vulkan.CStruct.Extends (Extensible(..)) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_image_compression_control (ImageCompressionPropertiesEXT) import Vulkan.Dynamic (InstanceCmds(pVkGetPhysicalDeviceSurfaceCapabilities2KHR)) import Vulkan.Dynamic (InstanceCmds(pVkGetPhysicalDeviceSurfaceFormats2KHR)) +import {-# SOURCE #-} Vulkan.Extensions.VK_NV_low_latency2 (LatencySurfaceCapabilitiesNV) import Vulkan.CStruct.Extends (PeekChain) import Vulkan.CStruct.Extends (PeekChain(..)) import Vulkan.Core10.Handles (PhysicalDevice) @@ -655,6 +658,7 @@ instance es ~ '[] => Zero (PhysicalDeviceSurfaceInfo2KHR es) where -- any structure (including this one) in the @pNext@ chain /must/ be -- either @NULL@ or a pointer to a valid instance of -- 'Vulkan.Extensions.VK_AMD_display_native_hdr.DisplayNativeHdrSurfaceCapabilitiesAMD', +-- 'Vulkan.Extensions.VK_NV_low_latency2.LatencySurfaceCapabilitiesNV', -- 'Vulkan.Extensions.VK_KHR_shared_presentable_image.SharedPresentSurfaceCapabilitiesKHR', -- 'Vulkan.Extensions.VK_EXT_full_screen_exclusive.SurfaceCapabilitiesFullScreenExclusiveEXT', -- 'Vulkan.Extensions.VK_NV_present_barrier.SurfaceCapabilitiesPresentBarrierNV', @@ -692,6 +696,7 @@ instance Extensible SurfaceCapabilities2KHR where getNext SurfaceCapabilities2KHR{..} = next extends :: forall e b proxy. Typeable e => proxy e -> (Extends SurfaceCapabilities2KHR e => b) -> Maybe b extends _ f + | Just Refl <- eqT @e @LatencySurfaceCapabilitiesNV = Just f | Just Refl <- eqT @e @SurfacePresentModeCompatibilityEXT = Just f | Just Refl <- eqT @e @SurfacePresentScalingCapabilitiesEXT = Just f | Just Refl <- eqT @e @SurfaceCapabilitiesPresentBarrierNV = Just f diff --git a/src/Vulkan/Extensions/VK_KHR_get_surface_capabilities2.hs-boot b/src/Vulkan/Extensions/VK_KHR_get_surface_capabilities2.hs-boot index 68a8f684f..e1822ecd9 100644 --- a/src/Vulkan/Extensions/VK_KHR_get_surface_capabilities2.hs-boot +++ b/src/Vulkan/Extensions/VK_KHR_get_surface_capabilities2.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Ratified +-- -- [__Extension and Version Dependencies__] -- -- @@ -43,11 +46,10 @@ -- -- == Description -- --- This extension provides new entry points to query device surface --- capabilities in a way that can be easily extended by other extensions, --- without introducing any further entry points. This extension can be --- considered the @VK_KHR_surface@ equivalent of the --- @VK_KHR_get_physical_device_properties2@ extension. +-- This extension provides new queries for device surface capabilities that +-- can be easily extended by other extensions, without introducing any +-- further queries. This extension can be considered the @VK_KHR_surface@ +-- equivalent of the @VK_KHR_get_physical_device_properties2@ extension. -- -- == New Commands -- diff --git a/src/Vulkan/Extensions/VK_KHR_global_priority.hs b/src/Vulkan/Extensions/VK_KHR_global_priority.hs index 962e3f501..7bbf8b5a4 100644 --- a/src/Vulkan/Extensions/VK_KHR_global_priority.hs +++ b/src/Vulkan/Extensions/VK_KHR_global_priority.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Ratified +-- -- [__Extension and Version Dependencies__] -- -- @@ -404,7 +407,7 @@ instance Zero PhysicalDeviceGlobalPriorityQueryFeaturesKHR where -- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR' -- -- - #VUID-VkQueueFamilyGlobalPriorityPropertiesKHR-priorities-parameter# --- Any given element of @priorities@ /must/ be a valid +-- Each element of @priorities@ /must/ be a valid -- 'QueueGlobalPriorityKHR' value -- -- = See Also diff --git a/src/Vulkan/Extensions/VK_KHR_global_priority.hs-boot b/src/Vulkan/Extensions/VK_KHR_global_priority.hs-boot index ab6121342..4f29fb76b 100644 --- a/src/Vulkan/Extensions/VK_KHR_global_priority.hs-boot +++ b/src/Vulkan/Extensions/VK_KHR_global_priority.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Ratified +-- -- [__Extension and Version Dependencies__] -- -- diff --git a/src/Vulkan/Extensions/VK_KHR_image_format_list.hs b/src/Vulkan/Extensions/VK_KHR_image_format_list.hs index b06d5a1f5..031989fdc 100644 --- a/src/Vulkan/Extensions/VK_KHR_image_format_list.hs +++ b/src/Vulkan/Extensions/VK_KHR_image_format_list.hs @@ -17,7 +17,10 @@ -- [__Revision__] -- 1 -- --- [__Extension and Version Dependencies__; __Deprecation state__] +-- [__Ratification Status__] +-- Ratified +-- +-- [__Extension and Version Dependencies__; __Deprecation State__] -- -- - /Promoted/ to -- diff --git a/src/Vulkan/Extensions/VK_KHR_imageless_framebuffer.hs b/src/Vulkan/Extensions/VK_KHR_imageless_framebuffer.hs index baf6b81f2..18ba804b3 100644 --- a/src/Vulkan/Extensions/VK_KHR_imageless_framebuffer.hs +++ b/src/Vulkan/Extensions/VK_KHR_imageless_framebuffer.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Ratified +-- -- [__Extension and Version Dependencies__] -- -- and @@ -24,7 +27,7 @@ -- and -- -- --- [__Deprecation state__] +-- [__Deprecation State__] -- -- - /Promoted/ to -- diff --git a/src/Vulkan/Extensions/VK_KHR_incremental_present.hs b/src/Vulkan/Extensions/VK_KHR_incremental_present.hs index ec2111436..1c391be98 100644 --- a/src/Vulkan/Extensions/VK_KHR_incremental_present.hs +++ b/src/Vulkan/Extensions/VK_KHR_incremental_present.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 2 -- +-- [__Ratification Status__] +-- Ratified +-- -- [__Extension and Version Dependencies__] -- -- diff --git a/src/Vulkan/Extensions/VK_KHR_incremental_present.hs-boot b/src/Vulkan/Extensions/VK_KHR_incremental_present.hs-boot index 43c0beb77..0f7fe375c 100644 --- a/src/Vulkan/Extensions/VK_KHR_incremental_present.hs-boot +++ b/src/Vulkan/Extensions/VK_KHR_incremental_present.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 2 -- +-- [__Ratification Status__] +-- Ratified +-- -- [__Extension and Version Dependencies__] -- -- diff --git a/src/Vulkan/Extensions/VK_KHR_maintenance1.hs b/src/Vulkan/Extensions/VK_KHR_maintenance1.hs index 1dcc662b9..5e8f9e712 100644 --- a/src/Vulkan/Extensions/VK_KHR_maintenance1.hs +++ b/src/Vulkan/Extensions/VK_KHR_maintenance1.hs @@ -17,7 +17,10 @@ -- [__Revision__] -- 2 -- --- [__Extension and Version Dependencies__; __Deprecation state__] +-- [__Ratification Status__] +-- Ratified +-- +-- [__Extension and Version Dependencies__; __Deprecation State__] -- -- - /Promoted/ to -- diff --git a/src/Vulkan/Extensions/VK_KHR_maintenance2.hs b/src/Vulkan/Extensions/VK_KHR_maintenance2.hs index f61714c24..5664e88de 100644 --- a/src/Vulkan/Extensions/VK_KHR_maintenance2.hs +++ b/src/Vulkan/Extensions/VK_KHR_maintenance2.hs @@ -17,7 +17,10 @@ -- [__Revision__] -- 1 -- --- [__Extension and Version Dependencies__; __Deprecation state__] +-- [__Ratification Status__] +-- Ratified +-- +-- [__Extension and Version Dependencies__; __Deprecation State__] -- -- - /Promoted/ to -- diff --git a/src/Vulkan/Extensions/VK_KHR_maintenance3.hs b/src/Vulkan/Extensions/VK_KHR_maintenance3.hs index b7b907c53..d414b5f87 100644 --- a/src/Vulkan/Extensions/VK_KHR_maintenance3.hs +++ b/src/Vulkan/Extensions/VK_KHR_maintenance3.hs @@ -17,10 +17,13 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Ratified +-- -- [__Extension and Version Dependencies__] -- -- --- [__Deprecation state__] +-- [__Deprecation State__] -- -- - /Promoted/ to -- diff --git a/src/Vulkan/Extensions/VK_KHR_maintenance4.hs b/src/Vulkan/Extensions/VK_KHR_maintenance4.hs index dcfdf2cca..858d8b09e 100644 --- a/src/Vulkan/Extensions/VK_KHR_maintenance4.hs +++ b/src/Vulkan/Extensions/VK_KHR_maintenance4.hs @@ -17,10 +17,13 @@ -- [__Revision__] -- 2 -- +-- [__Ratification Status__] +-- Ratified +-- -- [__Extension and Version Dependencies__] -- -- --- [__Deprecation state__] +-- [__Deprecation State__] -- -- - /Promoted/ to -- diff --git a/src/Vulkan/Extensions/VK_KHR_maintenance5.hs b/src/Vulkan/Extensions/VK_KHR_maintenance5.hs new file mode 100644 index 000000000..570d231fa --- /dev/null +++ b/src/Vulkan/Extensions/VK_KHR_maintenance5.hs @@ -0,0 +1,2295 @@ +{-# language CPP #-} +-- | = Name +-- +-- VK_KHR_maintenance5 - device extension +-- +-- == VK_KHR_maintenance5 +-- +-- [__Name String__] +-- @VK_KHR_maintenance5@ +-- +-- [__Extension Type__] +-- Device extension +-- +-- [__Registered Extension Number__] +-- 471 +-- +-- [__Revision__] +-- 1 +-- +-- [__Ratification Status__] +-- Ratified +-- +-- [__Extension and Version Dependencies__] +-- +-- and +-- +-- +-- [__Contact__] +-- +-- - Stu Smith +-- +-- +-- [__Extension Proposal__] +-- +-- +-- == Other Extension Metadata +-- +-- [__Last Modified Date__] +-- 2023-05-02 +-- +-- [__Interactions and External Dependencies__; __Contributors__] +-- +-- - Stu Smith, AMD +-- +-- - Tobias Hector, AMD +-- +-- - Shahbaz Youssefi, Google +-- +-- - Slawomir Cygan, Intel +-- +-- - Lionel Landwerlin, Intel +-- +-- - James Fitzpatrick, Imagination Technologies +-- +-- - Andrew Garrard, Imagination Technologies +-- +-- - Ralph Potter, Samsung +-- +-- - Pan Gao, Huawei +-- +-- - Jan-Harald Fredriksen, ARM +-- +-- - Jon Leech, Khronos +-- +-- - Mike Blumenkrantz, Valve +-- +-- == Description +-- +-- @VK_KHR_maintenance5@ adds a collection of minor features, none of which +-- would warrant an entire extension of their own. +-- +-- The new features are as follows: +-- +-- - A new 'Vulkan.Core10.Enums.Format.FORMAT_A1B5G5R5_UNORM_PACK16_KHR' +-- format +-- +-- - A new 'Vulkan.Core10.Enums.Format.FORMAT_A8_UNORM_KHR' format +-- +-- - A property to indicate that multisample coverage operations are +-- performed after sample counting in EarlyFragmentTests mode +-- +-- - Relax VkBufferView creation requirements by allowing subsets of the +-- associated VkBuffer usage using 'BufferUsageFlags2CreateInfoKHR' +-- +-- - A new entry point 'cmdBindIndexBuffer2KHR', allowing a range of +-- memory to be bound as an index buffer +-- +-- - 'Vulkan.Core10.DeviceInitialization.getDeviceProcAddr' must return +-- @NULL@ for supported core functions beyond the version requested by +-- the application. +-- +-- - A property to indicate that the sample mask test is performed after +-- sample counting in EarlyFragmentTests mode +-- +-- - 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2' +-- now supports using 'Vulkan.Core10.APIConstants.WHOLE_SIZE' in the +-- @pSizes@ parameter. +-- +-- - A default size of 1.0 is used if @PointSize@ is not written +-- +-- - Shader modules are deprecated - applications can now pass +-- 'Vulkan.Core10.Shader.ShaderModuleCreateInfo' as a chained struct to +-- pipeline creation via +-- 'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo' +-- +-- - A function 'getRenderingAreaGranularityKHR' to query the optimal +-- render area for a dynamic rendering instance. +-- +-- - A property to indicate that depth\/stencil texturing operations with +-- 'Vulkan.Core10.Enums.ComponentSwizzle.COMPONENT_SWIZZLE_ONE' have +-- defined behavior +-- +-- - Add 'getImageSubresourceLayout2KHR' and a new function +-- 'getDeviceImageSubresourceLayoutKHR' to allow the application to +-- query the image memory layout without having to create an image +-- object and query it. +-- +-- - Allow 'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS' as the +-- @layerCount@ member of +-- 'Vulkan.Core10.CommandBufferBuilding.ImageSubresourceLayers' +-- +-- - Adds stronger guarantees for propagation of +-- 'Vulkan.Core10.Enums.Result.ERROR_DEVICE_LOST' return values +-- +-- - A property to indicate whether @PointSize@ controls the final +-- rasterization of polygons if +-- +-- is 'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_POINT' +-- +-- - Two properties to indicate the non-strict line rasterization +-- algorithm used +-- +-- - Two new flags words 'PipelineCreateFlagBits2KHR' and +-- 'Vulkan.Extensions.VK_AMDX_shader_enqueue.BufferUsageFlagBits2KHR' +-- +-- - Physical-device-level functions can now be called with any value in +-- the valid range for a type beyond the defined enumerants, such that +-- applications can avoid checking individual features, extensions, or +-- versions before querying supported properties of a particular +-- enumerant. +-- +-- - Clarification that copies between images of any type are allowed, +-- treating 1D images as 2D images with a height of 1. +-- +-- == New Commands +-- +-- - 'cmdBindIndexBuffer2KHR' +-- +-- - 'getDeviceImageSubresourceLayoutKHR' +-- +-- - 'getImageSubresourceLayout2KHR' +-- +-- - 'getRenderingAreaGranularityKHR' +-- +-- == New Structures +-- +-- - 'DeviceImageSubresourceInfoKHR' +-- +-- - 'ImageSubresource2KHR' +-- +-- - 'RenderingAreaInfoKHR' +-- +-- - 'SubresourceLayout2KHR' +-- +-- - Extending 'Vulkan.Core10.BufferView.BufferViewCreateInfo', +-- 'Vulkan.Core10.Buffer.BufferCreateInfo', +-- 'Vulkan.Core11.Promoted_From_VK_KHR_external_memory_capabilities.PhysicalDeviceExternalBufferInfo', +-- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.DescriptorBufferBindingInfoEXT': +-- +-- - 'BufferUsageFlags2CreateInfoKHR' +-- +-- - Extending 'Vulkan.Core10.Pipeline.ComputePipelineCreateInfo', +-- 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo', +-- 'Vulkan.Extensions.VK_NV_ray_tracing.RayTracingPipelineCreateInfoNV', +-- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.RayTracingPipelineCreateInfoKHR': +-- +-- - 'PipelineCreateFlags2CreateInfoKHR' +-- +-- - Extending +-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2', +-- 'Vulkan.Core10.Device.DeviceCreateInfo': +-- +-- - 'PhysicalDeviceMaintenance5FeaturesKHR' +-- +-- - Extending +-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2': +-- +-- - 'PhysicalDeviceMaintenance5PropertiesKHR' +-- +-- == New Enums +-- +-- - 'Vulkan.Extensions.VK_AMDX_shader_enqueue.BufferUsageFlagBits2KHR' +-- +-- - 'PipelineCreateFlagBits2KHR' +-- +-- == New Bitmasks +-- +-- - 'Vulkan.Extensions.VK_AMDX_shader_enqueue.BufferUsageFlags2KHR' +-- +-- - 'PipelineCreateFlags2KHR' +-- +-- == New Enum Constants +-- +-- - 'KHR_MAINTENANCE_5_EXTENSION_NAME' +-- +-- - 'KHR_MAINTENANCE_5_SPEC_VERSION' +-- +-- - Extending 'Vulkan.Core10.Enums.Format.Format': +-- +-- - 'Vulkan.Core10.Enums.Format.FORMAT_A1B5G5R5_UNORM_PACK16_KHR' +-- +-- - 'Vulkan.Core10.Enums.Format.FORMAT_A8_UNORM_KHR' +-- +-- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType': +-- +-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_BUFFER_USAGE_FLAGS_2_CREATE_INFO_KHR' +-- +-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_DEVICE_IMAGE_SUBRESOURCE_INFO_KHR' +-- +-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_KHR' +-- +-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_FEATURES_KHR' +-- +-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_PROPERTIES_KHR' +-- +-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PIPELINE_CREATE_FLAGS_2_CREATE_INFO_KHR' +-- +-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_RENDERING_AREA_INFO_KHR' +-- +-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_KHR' +-- +-- If +-- +-- is supported: +-- +-- - Extending 'PipelineCreateFlagBits2KHR': +-- +-- - 'PIPELINE_CREATE_2_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT' +-- +-- - 'PIPELINE_CREATE_2_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT' +-- +-- If +-- +-- is supported: +-- +-- - Extending +-- 'Vulkan.Extensions.VK_AMDX_shader_enqueue.BufferUsageFlagBits2KHR': +-- +-- - 'Vulkan.Extensions.VK_AMDX_shader_enqueue.BUFFER_USAGE_2_CONDITIONAL_RENDERING_BIT_EXT' +-- +-- If +-- +-- is supported: +-- +-- - Extending +-- 'Vulkan.Extensions.VK_AMDX_shader_enqueue.BufferUsageFlagBits2KHR': +-- +-- - 'Vulkan.Extensions.VK_AMDX_shader_enqueue.BUFFER_USAGE_2_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT' +-- +-- - 'Vulkan.Extensions.VK_AMDX_shader_enqueue.BUFFER_USAGE_2_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT' +-- +-- - 'Vulkan.Extensions.VK_AMDX_shader_enqueue.BUFFER_USAGE_2_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT' +-- +-- - Extending 'PipelineCreateFlagBits2KHR': +-- +-- - 'PIPELINE_CREATE_2_DESCRIPTOR_BUFFER_BIT_EXT' +-- +-- If +-- +-- is supported: +-- +-- - Extending 'PipelineCreateFlagBits2KHR': +-- +-- - 'PIPELINE_CREATE_2_LINK_TIME_OPTIMIZATION_BIT_EXT' +-- +-- - 'PIPELINE_CREATE_2_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT' +-- +-- If +-- +-- is supported: +-- +-- - Extending +-- 'Vulkan.Extensions.VK_AMDX_shader_enqueue.BufferUsageFlagBits2KHR': +-- +-- - 'Vulkan.Extensions.VK_AMDX_shader_enqueue.BUFFER_USAGE_2_MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT' +-- +-- - 'Vulkan.Extensions.VK_AMDX_shader_enqueue.BUFFER_USAGE_2_MICROMAP_STORAGE_BIT_EXT' +-- +-- - Extending 'PipelineCreateFlagBits2KHR': +-- +-- - 'PIPELINE_CREATE_2_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT' +-- +-- If +-- +-- is supported: +-- +-- - Extending 'PipelineCreateFlagBits2KHR': +-- +-- - 'PIPELINE_CREATE_2_NO_PROTECTED_ACCESS_BIT_EXT' +-- +-- - 'PIPELINE_CREATE_2_PROTECTED_ACCESS_ONLY_BIT_EXT' +-- +-- If +-- +-- is supported: +-- +-- - Extending +-- 'Vulkan.Extensions.VK_AMDX_shader_enqueue.BufferUsageFlagBits2KHR': +-- +-- - 'Vulkan.Extensions.VK_AMDX_shader_enqueue.BUFFER_USAGE_2_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT' +-- +-- - 'Vulkan.Extensions.VK_AMDX_shader_enqueue.BUFFER_USAGE_2_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT' +-- +-- If +-- +-- is supported: +-- +-- - Extending +-- 'Vulkan.Extensions.VK_AMDX_shader_enqueue.BufferUsageFlagBits2KHR': +-- +-- - 'Vulkan.Extensions.VK_AMDX_shader_enqueue.BUFFER_USAGE_2_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR' +-- +-- - 'Vulkan.Extensions.VK_AMDX_shader_enqueue.BUFFER_USAGE_2_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR' +-- +-- If +-- +-- and +-- +-- is supported: +-- +-- - Extending 'PipelineCreateFlagBits2KHR': +-- +-- - 'PIPELINE_CREATE_2_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT' +-- +-- If +-- +-- and +-- +-- is supported: +-- +-- - Extending 'PipelineCreateFlagBits2KHR': +-- +-- - 'PIPELINE_CREATE_2_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR' +-- +-- If +-- +-- is supported: +-- +-- - Extending 'PipelineCreateFlagBits2KHR': +-- +-- - 'PIPELINE_CREATE_2_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR' +-- +-- - 'PIPELINE_CREATE_2_CAPTURE_STATISTICS_BIT_KHR' +-- +-- If +-- +-- is supported: +-- +-- - Extending 'PipelineCreateFlagBits2KHR': +-- +-- - 'PIPELINE_CREATE_2_LIBRARY_BIT_KHR' +-- +-- If +-- +-- is supported: +-- +-- - Extending +-- 'Vulkan.Extensions.VK_AMDX_shader_enqueue.BufferUsageFlagBits2KHR': +-- +-- - 'Vulkan.Extensions.VK_AMDX_shader_enqueue.BUFFER_USAGE_2_SHADER_BINDING_TABLE_BIT_KHR' +-- +-- - Extending 'PipelineCreateFlagBits2KHR': +-- +-- - 'PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR' +-- +-- - 'PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR' +-- +-- - 'PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR' +-- +-- - 'PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR' +-- +-- - 'PIPELINE_CREATE_2_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR' +-- +-- - 'PIPELINE_CREATE_2_RAY_TRACING_SKIP_AABBS_BIT_KHR' +-- +-- - 'PIPELINE_CREATE_2_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR' +-- +-- If +-- +-- is supported: +-- +-- - Extending +-- 'Vulkan.Extensions.VK_AMDX_shader_enqueue.BufferUsageFlagBits2KHR': +-- +-- - 'Vulkan.Extensions.VK_AMDX_shader_enqueue.BUFFER_USAGE_2_VIDEO_DECODE_DST_BIT_KHR' +-- +-- - 'Vulkan.Extensions.VK_AMDX_shader_enqueue.BUFFER_USAGE_2_VIDEO_DECODE_SRC_BIT_KHR' +-- +-- If +-- +-- is supported: +-- +-- - Extending +-- 'Vulkan.Extensions.VK_AMDX_shader_enqueue.BufferUsageFlagBits2KHR': +-- +-- - 'Vulkan.Extensions.VK_AMDX_shader_enqueue.BUFFER_USAGE_2_VIDEO_ENCODE_DST_BIT_KHR' +-- +-- - 'Vulkan.Extensions.VK_AMDX_shader_enqueue.BUFFER_USAGE_2_VIDEO_ENCODE_SRC_BIT_KHR' +-- +-- If +-- +-- is supported: +-- +-- - Extending 'PipelineCreateFlagBits2KHR': +-- +-- - 'PIPELINE_CREATE_2_INDIRECT_BINDABLE_BIT_NV' +-- +-- If +-- +-- is supported: +-- +-- - Extending 'PipelineCreateFlagBits2KHR': +-- +-- - 'PIPELINE_CREATE_2_RAY_TRACING_DISPLACEMENT_MICROMAP_BIT_NV' +-- +-- If +-- +-- is supported: +-- +-- - Extending +-- 'Vulkan.Extensions.VK_AMDX_shader_enqueue.BufferUsageFlagBits2KHR': +-- +-- - 'BUFFER_USAGE_2_RAY_TRACING_BIT_NV' +-- +-- - Extending 'PipelineCreateFlagBits2KHR': +-- +-- - 'PIPELINE_CREATE_2_DEFER_COMPILE_BIT_NV' +-- +-- If +-- +-- is supported: +-- +-- - Extending 'PipelineCreateFlagBits2KHR': +-- +-- - 'PIPELINE_CREATE_2_RAY_TRACING_ALLOW_MOTION_BIT_NV' +-- +-- If +-- +-- or +-- +-- is supported: +-- +-- - Extending 'PipelineCreateFlagBits2KHR': +-- +-- - 'PIPELINE_CREATE_2_DISPATCH_BASE_BIT_KHR' +-- +-- - 'PIPELINE_CREATE_2_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR' +-- +-- If +-- +-- or +-- +-- or +-- +-- is supported: +-- +-- - Extending +-- 'Vulkan.Extensions.VK_AMDX_shader_enqueue.BufferUsageFlagBits2KHR': +-- +-- - 'Vulkan.Extensions.VK_AMDX_shader_enqueue.BUFFER_USAGE_2_SHADER_DEVICE_ADDRESS_BIT_KHR' +-- +-- If +-- +-- or +-- +-- is supported: +-- +-- - Extending 'PipelineCreateFlagBits2KHR': +-- +-- - 'PIPELINE_CREATE_2_EARLY_RETURN_ON_FAILURE_BIT_KHR' +-- +-- - 'PIPELINE_CREATE_2_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_KHR' +-- +-- == Issues +-- +-- None. +-- +-- == Version History +-- +-- - Revision 1, 2022-12-12 (Stu Smith) +-- +-- - Initial revision +-- +-- == See Also +-- +-- 'DeviceImageSubresourceInfoKHR', 'ImageSubresource2KHR', +-- 'PhysicalDeviceMaintenance5FeaturesKHR', +-- 'PhysicalDeviceMaintenance5PropertiesKHR', 'RenderingAreaInfoKHR', +-- 'SubresourceLayout2KHR', 'cmdBindIndexBuffer2KHR', +-- 'getDeviceImageSubresourceLayoutKHR', 'getImageSubresourceLayout2KHR', +-- 'getRenderingAreaGranularityKHR' +-- +-- == Document Notes +-- +-- For more information, see the +-- +-- +-- This page is a generated document. Fixes and changes should be made to +-- the generator scripts, not directly. +module Vulkan.Extensions.VK_KHR_maintenance5 ( getRenderingAreaGranularityKHR + , cmdBindIndexBuffer2KHR + , getImageSubresourceLayout2KHR + , getDeviceImageSubresourceLayoutKHR + , pattern BUFFER_USAGE_2_RAY_TRACING_BIT_NV + , BufferUsageFlags2CreateInfoKHR(..) + , PipelineCreateFlags2CreateInfoKHR(..) + , PhysicalDeviceMaintenance5FeaturesKHR(..) + , PhysicalDeviceMaintenance5PropertiesKHR(..) + , RenderingAreaInfoKHR(..) + , ImageSubresource2KHR(..) + , SubresourceLayout2KHR(..) + , DeviceImageSubresourceInfoKHR(..) + , PipelineCreateFlags2KHR + , PipelineCreateFlagBits2KHR( PIPELINE_CREATE_2_DISABLE_OPTIMIZATION_BIT_KHR + , PIPELINE_CREATE_2_ALLOW_DERIVATIVES_BIT_KHR + , PIPELINE_CREATE_2_DERIVATIVE_BIT_KHR + , PIPELINE_CREATE_2_DESCRIPTOR_BUFFER_BIT_EXT + , PIPELINE_CREATE_2_RAY_TRACING_DISPLACEMENT_MICROMAP_BIT_NV + , PIPELINE_CREATE_2_PROTECTED_ACCESS_ONLY_BIT_EXT + , PIPELINE_CREATE_2_NO_PROTECTED_ACCESS_BIT_EXT + , PIPELINE_CREATE_2_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT + , PIPELINE_CREATE_2_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT + , PIPELINE_CREATE_2_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT + , PIPELINE_CREATE_2_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT + , PIPELINE_CREATE_2_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR + , PIPELINE_CREATE_2_RAY_TRACING_ALLOW_MOTION_BIT_NV + , PIPELINE_CREATE_2_INDIRECT_BINDABLE_BIT_NV + , PIPELINE_CREATE_2_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR + , PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR + , PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR + , PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR + , PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR + , PIPELINE_CREATE_2_RAY_TRACING_SKIP_AABBS_BIT_KHR + , PIPELINE_CREATE_2_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR + , PIPELINE_CREATE_2_LIBRARY_BIT_KHR + , PIPELINE_CREATE_2_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT + , PIPELINE_CREATE_2_LINK_TIME_OPTIMIZATION_BIT_EXT + , PIPELINE_CREATE_2_EARLY_RETURN_ON_FAILURE_BIT_KHR + , PIPELINE_CREATE_2_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_KHR + , PIPELINE_CREATE_2_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR + , PIPELINE_CREATE_2_CAPTURE_STATISTICS_BIT_KHR + , PIPELINE_CREATE_2_DEFER_COMPILE_BIT_NV + , PIPELINE_CREATE_2_DISPATCH_BASE_BIT_KHR + , PIPELINE_CREATE_2_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR + , .. + ) + , KHR_MAINTENANCE_5_SPEC_VERSION + , pattern KHR_MAINTENANCE_5_SPEC_VERSION + , KHR_MAINTENANCE_5_EXTENSION_NAME + , pattern KHR_MAINTENANCE_5_EXTENSION_NAME + , BufferUsageFlagBits2KHR(..) + , BufferUsageFlags2KHR + ) where + +import Data.Bits (Bits) +import Data.Bits (FiniteBits) +import Vulkan.Internal.Utils (enumReadPrec) +import Vulkan.Internal.Utils (enumShowsPrec) +import Vulkan.Internal.Utils (traceAroundEvent) +import Control.Monad (unless) +import Control.Monad.IO.Class (liftIO) +import Data.Typeable (eqT) +import Foreign.Marshal.Alloc (allocaBytes) +import GHC.IO (throwIO) +import GHC.Ptr (castPtr) +import GHC.Ptr (nullFunPtr) +import Foreign.Ptr (nullPtr) +import Foreign.Ptr (plusPtr) +import GHC.Show (showString) +import Numeric (showHex) +import Control.Monad.Trans.Class (lift) +import Control.Monad.Trans.Cont (evalContT) +import Data.Vector (generateM) +import qualified Data.Vector (imapM_) +import qualified Data.Vector (length) +import Vulkan.CStruct (FromCStruct) +import Vulkan.CStruct (FromCStruct(..)) +import Vulkan.CStruct (ToCStruct) +import Vulkan.CStruct (ToCStruct(..)) +import Vulkan.Zero (Zero) +import Vulkan.Zero (Zero(..)) +import Control.Monad.IO.Class (MonadIO) +import Data.String (IsString) +import Data.Type.Equality ((:~:)(Refl)) +import Data.Typeable (Typeable) +import Foreign.Storable (Storable) +import Foreign.Storable (Storable(peek)) +import Foreign.Storable (Storable(poke)) +import qualified Foreign.Storable (Storable(..)) +import GHC.Generics (Generic) +import GHC.IO.Exception (IOErrorType(..)) +import GHC.IO.Exception (IOException(..)) +import Foreign.Ptr (FunPtr) +import Foreign.Ptr (Ptr) +import GHC.Read (Read(readPrec)) +import GHC.Show (Show(showsPrec)) +import Data.Word (Word32) +import Data.Kind (Type) +import Control.Monad.Trans.Cont (ContT(..)) +import Data.Vector (Vector) +import Vulkan.CStruct.Utils (advancePtrBytes) +import Vulkan.Core10.FundamentalTypes (bool32ToBool) +import Vulkan.Core10.FundamentalTypes (boolToBool32) +import Vulkan.CStruct.Extends (forgetExtensions) +import Vulkan.CStruct.Extends (peekSomeCStruct) +import Vulkan.CStruct.Extends (withSomeCStruct) +import Vulkan.NamedType ((:::)) +import Vulkan.Core10.FundamentalTypes (Bool32) +import Vulkan.Core10.Handles (Buffer) +import Vulkan.Core10.Handles (Buffer(..)) +import Vulkan.Extensions.VK_AMDX_shader_enqueue (BufferUsageFlags2KHR) +import Vulkan.CStruct.Extends (Chain) +import Vulkan.Core10.Handles (CommandBuffer) +import Vulkan.Core10.Handles (CommandBuffer(..)) +import Vulkan.Core10.Handles (CommandBuffer(CommandBuffer)) +import Vulkan.Core10.Handles (CommandBuffer_T) +import Vulkan.Core10.Handles (Device) +import Vulkan.Core10.Handles (Device(..)) +import Vulkan.Core10.Handles (Device(Device)) +import Vulkan.Dynamic (DeviceCmds(pVkCmdBindIndexBuffer2KHR)) +import Vulkan.Dynamic (DeviceCmds(pVkGetDeviceImageSubresourceLayoutKHR)) +import Vulkan.Dynamic (DeviceCmds(pVkGetImageSubresourceLayout2KHR)) +import Vulkan.Dynamic (DeviceCmds(pVkGetRenderingAreaGranularityKHR)) +import Vulkan.Core10.FundamentalTypes (DeviceSize) +import Vulkan.Core10.Handles (Device_T) +import Vulkan.CStruct.Extends (Extends) +import Vulkan.CStruct.Extends (Extendss) +import Vulkan.CStruct.Extends (Extensible(..)) +import Vulkan.Core10.FundamentalTypes (Extent2D) +import Vulkan.Core10.FundamentalTypes (Flags64) +import Vulkan.Core10.Enums.Format (Format) +import Vulkan.Core10.Handles (Image) +import Vulkan.Core10.Handles (Image(..)) +import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_image_compression_control (ImageCompressionPropertiesEXT) +import Vulkan.Core10.Image (ImageCreateInfo) +import Vulkan.Core10.SparseResourceMemoryManagement (ImageSubresource) +import Vulkan.Core10.Enums.IndexType (IndexType) +import Vulkan.Core10.Enums.IndexType (IndexType(..)) +import Vulkan.CStruct.Extends (PeekChain) +import Vulkan.CStruct.Extends (PeekChain(..)) +import Vulkan.CStruct.Extends (PokeChain) +import Vulkan.CStruct.Extends (PokeChain(..)) +import Vulkan.CStruct.Extends (SomeStruct) +import Vulkan.CStruct.Extends (SomeStruct(..)) +import Vulkan.Core10.Enums.StructureType (StructureType) +import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_host_image_copy (SubresourceHostMemcpySizeEXT) +import Vulkan.Core10.Image (SubresourceLayout) +import Vulkan.Extensions.VK_AMDX_shader_enqueue (BufferUsageFlags2KHR) +import Vulkan.Extensions.VK_AMDX_shader_enqueue (BufferUsageFlagBits2KHR(BUFFER_USAGE_2_SHADER_BINDING_TABLE_BIT_KHR)) +import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_BUFFER_USAGE_FLAGS_2_CREATE_INFO_KHR)) +import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_DEVICE_IMAGE_SUBRESOURCE_INFO_KHR)) +import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_KHR)) +import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_FEATURES_KHR)) +import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_PROPERTIES_KHR)) +import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PIPELINE_CREATE_FLAGS_2_CREATE_INFO_KHR)) +import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_RENDERING_AREA_INFO_KHR)) +import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_KHR)) +import Vulkan.Extensions.VK_AMDX_shader_enqueue (BufferUsageFlagBits2KHR(..)) +import Vulkan.Extensions.VK_AMDX_shader_enqueue (BufferUsageFlags2KHR) +foreign import ccall +#if !defined(SAFE_FOREIGN_CALLS) + unsafe +#endif + "dynamic" mkVkGetRenderingAreaGranularityKHR + :: FunPtr (Ptr Device_T -> Ptr RenderingAreaInfoKHR -> Ptr Extent2D -> IO ()) -> Ptr Device_T -> Ptr RenderingAreaInfoKHR -> Ptr Extent2D -> IO () + +-- | vkGetRenderingAreaGranularityKHR - Returns the granularity for dynamic +-- rendering optimal render area +-- +-- = Description +-- +-- The conditions leading to an optimal @renderArea@ are: +-- +-- - the @offset.x@ member in @renderArea@ is a multiple of the @width@ +-- member of the returned 'Vulkan.Core10.FundamentalTypes.Extent2D' +-- (the horizontal granularity). +-- +-- - the @offset.y@ member in @renderArea@ is a multiple of the @height@ +-- member of the returned 'Vulkan.Core10.FundamentalTypes.Extent2D' +-- (the vertical granularity). +-- +-- - either the @extent.width@ member in @renderArea@ is a multiple of +-- the horizontal granularity or @offset.x@+@extent.width@ is equal to +-- the @width@ of the @framebuffer@ in the +-- 'Vulkan.Core10.CommandBufferBuilding.RenderPassBeginInfo'. +-- +-- - either the @extent.height@ member in @renderArea@ is a multiple of +-- the vertical granularity or @offset.y@+@extent.height@ is equal to +-- the @height@ of the @framebuffer@ in the +-- 'Vulkan.Core10.CommandBufferBuilding.RenderPassBeginInfo'. +-- +-- == Valid Usage (Implicit) +-- +-- - #VUID-vkGetRenderingAreaGranularityKHR-device-parameter# @device@ +-- /must/ be a valid 'Vulkan.Core10.Handles.Device' handle +-- +-- - #VUID-vkGetRenderingAreaGranularityKHR-pRenderingAreaInfo-parameter# +-- @pRenderingAreaInfo@ /must/ be a valid pointer to a valid +-- 'RenderingAreaInfoKHR' structure +-- +-- - #VUID-vkGetRenderingAreaGranularityKHR-pGranularity-parameter# +-- @pGranularity@ /must/ be a valid pointer to a +-- 'Vulkan.Core10.FundamentalTypes.Extent2D' structure +-- +-- = See Also +-- +-- , +-- 'Vulkan.Core10.Handles.Device', +-- 'Vulkan.Core10.FundamentalTypes.Extent2D', 'RenderingAreaInfoKHR' +getRenderingAreaGranularityKHR :: forall io + . (MonadIO io) + => -- | @device@ is the logical device that owns the render pass instance. + Device + -> -- | @pRenderingAreaInfo@ is a pointer to a 'RenderingAreaInfoKHR' structure + -- specifying details of the render pass instance to query the render area + -- granularity for. + RenderingAreaInfoKHR + -> io (("granularity" ::: Extent2D)) +getRenderingAreaGranularityKHR device + renderingAreaInfo = liftIO . evalContT $ do + let vkGetRenderingAreaGranularityKHRPtr = pVkGetRenderingAreaGranularityKHR (case device of Device{deviceCmds} -> deviceCmds) + lift $ unless (vkGetRenderingAreaGranularityKHRPtr /= nullFunPtr) $ + throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetRenderingAreaGranularityKHR is null" Nothing Nothing + let vkGetRenderingAreaGranularityKHR' = mkVkGetRenderingAreaGranularityKHR vkGetRenderingAreaGranularityKHRPtr + pRenderingAreaInfo <- ContT $ withCStruct (renderingAreaInfo) + pPGranularity <- ContT (withZeroCStruct @Extent2D) + lift $ traceAroundEvent "vkGetRenderingAreaGranularityKHR" (vkGetRenderingAreaGranularityKHR' + (deviceHandle (device)) + pRenderingAreaInfo + (pPGranularity)) + pGranularity <- lift $ peekCStruct @Extent2D pPGranularity + pure $ (pGranularity) + + +foreign import ccall +#if !defined(SAFE_FOREIGN_CALLS) + unsafe +#endif + "dynamic" mkVkCmdBindIndexBuffer2KHR + :: FunPtr (Ptr CommandBuffer_T -> Buffer -> DeviceSize -> DeviceSize -> IndexType -> IO ()) -> Ptr CommandBuffer_T -> Buffer -> DeviceSize -> DeviceSize -> IndexType -> IO () + +-- | vkCmdBindIndexBuffer2KHR - Bind an index buffer to a command buffer +-- +-- = Description +-- +-- @size@ specifies the bound size of the index buffer starting from +-- @offset@. If @size@ is 'Vulkan.Core10.APIConstants.WHOLE_SIZE' then the +-- bound size is from @offset@ to the end of the @buffer@. +-- +-- == Valid Usage +-- +-- - #VUID-vkCmdBindIndexBuffer2KHR-offset-08782# @offset@ /must/ be less +-- than the size of @buffer@ +-- +-- - #VUID-vkCmdBindIndexBuffer2KHR-offset-08783# The sum of @offset@ and +-- the base address of the range of +-- 'Vulkan.Core10.Handles.DeviceMemory' object that is backing +-- @buffer@, /must/ be a multiple of the size of the type indicated by +-- @indexType@ +-- +-- - #VUID-vkCmdBindIndexBuffer2KHR-buffer-08784# @buffer@ /must/ have +-- been created with the +-- 'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_INDEX_BUFFER_BIT' +-- flag +-- +-- - #VUID-vkCmdBindIndexBuffer2KHR-buffer-08785# If @buffer@ is +-- non-sparse then it /must/ be bound completely and contiguously to a +-- single 'Vulkan.Core10.Handles.DeviceMemory' object +-- +-- - #VUID-vkCmdBindIndexBuffer2KHR-indexType-08786# @indexType@ /must/ +-- not be 'Vulkan.Core10.Enums.IndexType.INDEX_TYPE_NONE_KHR' +-- +-- - #VUID-vkCmdBindIndexBuffer2KHR-indexType-08787# If @indexType@ is +-- 'Vulkan.Core10.Enums.IndexType.INDEX_TYPE_UINT8_EXT', the +-- +-- feature /must/ be enabled +-- +-- - #VUID-vkCmdBindIndexBuffer2KHR-size-08767# If @size@ is not +-- 'Vulkan.Core10.APIConstants.WHOLE_SIZE', @size@ /must/ be a multiple +-- of the size of the type indicated by @indexType@ +-- +-- - #VUID-vkCmdBindIndexBuffer2KHR-size-08768# If @size@ is not +-- 'Vulkan.Core10.APIConstants.WHOLE_SIZE', the sum of @offset@ and +-- @size@ /must/ be less than or equal to the size of @buffer@ +-- +-- == Valid Usage (Implicit) +-- +-- - #VUID-vkCmdBindIndexBuffer2KHR-commandBuffer-parameter# +-- @commandBuffer@ /must/ be a valid +-- 'Vulkan.Core10.Handles.CommandBuffer' handle +-- +-- - #VUID-vkCmdBindIndexBuffer2KHR-buffer-parameter# @buffer@ /must/ be +-- a valid 'Vulkan.Core10.Handles.Buffer' handle +-- +-- - #VUID-vkCmdBindIndexBuffer2KHR-indexType-parameter# @indexType@ +-- /must/ be a valid 'Vulkan.Core10.Enums.IndexType.IndexType' value +-- +-- - #VUID-vkCmdBindIndexBuffer2KHR-commandBuffer-recording# +-- @commandBuffer@ /must/ be in the +-- +-- +-- - #VUID-vkCmdBindIndexBuffer2KHR-commandBuffer-cmdpool# The +-- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was +-- allocated from /must/ support graphics operations +-- +-- - #VUID-vkCmdBindIndexBuffer2KHR-videocoding# This command /must/ only +-- be called outside of a video coding scope +-- +-- - #VUID-vkCmdBindIndexBuffer2KHR-commonparent# Both of @buffer@, and +-- @commandBuffer@ /must/ have been created, allocated, or retrieved +-- from the same 'Vulkan.Core10.Handles.Device' +-- +-- == Host Synchronization +-- +-- - Host access to @commandBuffer@ /must/ be externally synchronized +-- +-- - Host access to the 'Vulkan.Core10.Handles.CommandPool' that +-- @commandBuffer@ was allocated from /must/ be externally synchronized +-- +-- == Command Properties +-- +-- \' +-- +-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ +-- | | | | | | +-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================+ +-- | Primary | Both | Outside | Graphics | State | +-- | Secondary | | | | | +-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ +-- +-- = See Also +-- +-- , +-- 'Vulkan.Core10.Handles.Buffer', 'Vulkan.Core10.Handles.CommandBuffer', +-- 'Vulkan.Core10.FundamentalTypes.DeviceSize', +-- 'Vulkan.Core10.Enums.IndexType.IndexType' +cmdBindIndexBuffer2KHR :: forall io + . (MonadIO io) + => -- | @commandBuffer@ is the command buffer into which the command is + -- recorded. + CommandBuffer + -> -- | @buffer@ is the buffer being bound. + Buffer + -> -- | @offset@ is the starting offset in bytes within @buffer@ used in index + -- buffer address calculations. + ("offset" ::: DeviceSize) + -> -- | @size@ is the size in bytes of index data bound from @buffer@. + DeviceSize + -> -- | @indexType@ is a 'Vulkan.Core10.Enums.IndexType.IndexType' value + -- specifying the size of the indices. + IndexType + -> io () +cmdBindIndexBuffer2KHR commandBuffer buffer offset size indexType = liftIO $ do + let vkCmdBindIndexBuffer2KHRPtr = pVkCmdBindIndexBuffer2KHR (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds) + unless (vkCmdBindIndexBuffer2KHRPtr /= nullFunPtr) $ + throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdBindIndexBuffer2KHR is null" Nothing Nothing + let vkCmdBindIndexBuffer2KHR' = mkVkCmdBindIndexBuffer2KHR vkCmdBindIndexBuffer2KHRPtr + traceAroundEvent "vkCmdBindIndexBuffer2KHR" (vkCmdBindIndexBuffer2KHR' + (commandBufferHandle (commandBuffer)) + (buffer) + (offset) + (size) + (indexType)) + pure $ () + + +foreign import ccall +#if !defined(SAFE_FOREIGN_CALLS) + unsafe +#endif + "dynamic" mkVkGetImageSubresourceLayout2KHR + :: FunPtr (Ptr Device_T -> Image -> Ptr ImageSubresource2KHR -> Ptr (SomeStruct SubresourceLayout2KHR) -> IO ()) -> Ptr Device_T -> Image -> Ptr ImageSubresource2KHR -> Ptr (SomeStruct SubresourceLayout2KHR) -> IO () + +-- | vkGetImageSubresourceLayout2KHR - Retrieve information about an image +-- subresource +-- +-- = Description +-- +-- 'getImageSubresourceLayout2KHR' behaves similarly to +-- 'Vulkan.Core10.Image.getImageSubresourceLayout', with the ability to +-- specify extended inputs via chained input structures, and to return +-- extended information via chained output structures. +-- +-- It is legal to call 'getImageSubresourceLayout2KHR' with a @image@ +-- created with @tiling@ equal to +-- 'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_OPTIMAL', but the members +-- of 'SubresourceLayout2KHR'::@subresourceLayout@ will have undefined +-- values in this case. +-- +-- Note +-- +-- Structures chained from 'ImageSubresource2KHR'::@pNext@ will also be +-- updated when @tiling@ is equal to +-- 'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_OPTIMAL'. +-- +-- == Valid Usage +-- +-- - #VUID-vkGetImageSubresourceLayout2KHR-aspectMask-00997# The +-- @aspectMask@ member of @pSubresource@ /must/ only have a single bit +-- set +-- +-- - #VUID-vkGetImageSubresourceLayout2KHR-mipLevel-01716# The @mipLevel@ +-- member of @pSubresource@ /must/ be less than the @mipLevels@ +-- specified in 'Vulkan.Core10.Image.ImageCreateInfo' when @image@ was +-- created +-- +-- - #VUID-vkGetImageSubresourceLayout2KHR-arrayLayer-01717# The +-- @arrayLayer@ member of @pSubresource@ /must/ be less than the +-- @arrayLayers@ specified in 'Vulkan.Core10.Image.ImageCreateInfo' +-- when @image@ was created +-- +-- - #VUID-vkGetImageSubresourceLayout2KHR-format-08886# If @format@ of +-- the @image@ is a color format, @tiling@ of the @image@ is +-- 'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_LINEAR' or +-- 'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_OPTIMAL', and does not +-- have a +-- , +-- the @aspectMask@ member of @pSubresource@ /must/ be +-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT' +-- +-- - #VUID-vkGetImageSubresourceLayout2KHR-format-04462# If @format@ of +-- the @image@ has a depth component, the @aspectMask@ member of +-- @pSubresource@ /must/ contain +-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_DEPTH_BIT' +-- +-- - #VUID-vkGetImageSubresourceLayout2KHR-format-04463# If @format@ of +-- the @image@ has a stencil component, the @aspectMask@ member of +-- @pSubresource@ /must/ contain +-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT' +-- +-- - #VUID-vkGetImageSubresourceLayout2KHR-format-04464# If @format@ of +-- the @image@ does not contain a stencil or depth component, the +-- @aspectMask@ member of @pSubresource@ /must/ not contain +-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_DEPTH_BIT' or +-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT' +-- +-- - #VUID-vkGetImageSubresourceLayout2KHR-tiling-08717# If the @tiling@ +-- of the @image@ is +-- 'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_LINEAR' and has a +-- , +-- then the @aspectMask@ member of @pSubresource@ /must/ be a single +-- valid +-- +-- bit +-- +-- - #VUID-vkGetImageSubresourceLayout2KHR-image-01895# If @image@ was +-- created with the +-- 'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID' +-- external memory handle type, then @image@ /must/ be bound to memory +-- +-- - #VUID-vkGetImageSubresourceLayout2KHR-tiling-02271# If the @tiling@ +-- of the @image@ is +-- 'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT', +-- then the @aspectMask@ member of @pSubresource@ /must/ be +-- @VK_IMAGE_ASPECT_MEMORY_PLANE_i_BIT_EXT@ and the index /i/ /must/ be +-- less than the +-- 'Vulkan.Extensions.VK_EXT_image_drm_format_modifier.DrmFormatModifierPropertiesEXT'::@drmFormatModifierPlaneCount@ +-- associated with the image’s @format@ and +-- 'Vulkan.Extensions.VK_EXT_image_drm_format_modifier.ImageDrmFormatModifierPropertiesEXT'::@drmFormatModifier@ +-- +-- == Valid Usage (Implicit) +-- +-- - #VUID-vkGetImageSubresourceLayout2KHR-device-parameter# @device@ +-- /must/ be a valid 'Vulkan.Core10.Handles.Device' handle +-- +-- - #VUID-vkGetImageSubresourceLayout2KHR-image-parameter# @image@ +-- /must/ be a valid 'Vulkan.Core10.Handles.Image' handle +-- +-- - #VUID-vkGetImageSubresourceLayout2KHR-pSubresource-parameter# +-- @pSubresource@ /must/ be a valid pointer to a valid +-- 'ImageSubresource2KHR' structure +-- +-- - #VUID-vkGetImageSubresourceLayout2KHR-pLayout-parameter# @pLayout@ +-- /must/ be a valid pointer to a 'SubresourceLayout2KHR' structure +-- +-- - #VUID-vkGetImageSubresourceLayout2KHR-image-parent# @image@ /must/ +-- have been created, allocated, or retrieved from @device@ +-- +-- = See Also +-- +-- , +-- 'Vulkan.Core10.Handles.Device', 'Vulkan.Core10.Handles.Image', +-- 'ImageSubresource2KHR', 'SubresourceLayout2KHR' +getImageSubresourceLayout2KHR :: forall a io + . ( Extendss SubresourceLayout2KHR a + , PokeChain a + , PeekChain a + , MonadIO io ) + => -- | @device@ is the logical device that owns the image. + Device + -> -- | @image@ is the image whose layout is being queried. + Image + -> -- | @pSubresource@ is a pointer to a 'ImageSubresource2KHR' structure + -- selecting a specific image for the image subresource. + ImageSubresource2KHR + -> io (SubresourceLayout2KHR a) +getImageSubresourceLayout2KHR device image subresource = liftIO . evalContT $ do + let vkGetImageSubresourceLayout2KHRPtr = pVkGetImageSubresourceLayout2KHR (case device of Device{deviceCmds} -> deviceCmds) + lift $ unless (vkGetImageSubresourceLayout2KHRPtr /= nullFunPtr) $ + throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetImageSubresourceLayout2KHR is null" Nothing Nothing + let vkGetImageSubresourceLayout2KHR' = mkVkGetImageSubresourceLayout2KHR vkGetImageSubresourceLayout2KHRPtr + pSubresource <- ContT $ withCStruct (subresource) + pPLayout <- ContT (withZeroCStruct @(SubresourceLayout2KHR _)) + lift $ traceAroundEvent "vkGetImageSubresourceLayout2KHR" (vkGetImageSubresourceLayout2KHR' + (deviceHandle (device)) + (image) + pSubresource + (forgetExtensions (pPLayout))) + pLayout <- lift $ peekCStruct @(SubresourceLayout2KHR _) pPLayout + pure $ (pLayout) + + +foreign import ccall +#if !defined(SAFE_FOREIGN_CALLS) + unsafe +#endif + "dynamic" mkVkGetDeviceImageSubresourceLayoutKHR + :: FunPtr (Ptr Device_T -> Ptr DeviceImageSubresourceInfoKHR -> Ptr (SomeStruct SubresourceLayout2KHR) -> IO ()) -> Ptr Device_T -> Ptr DeviceImageSubresourceInfoKHR -> Ptr (SomeStruct SubresourceLayout2KHR) -> IO () + +-- | vkGetDeviceImageSubresourceLayoutKHR - Retrieve information about an +-- image subresource without an image object +-- +-- = Description +-- +-- 'getDeviceImageSubresourceLayoutKHR' behaves similarly to +-- 'getImageSubresourceLayout2KHR', but uses a +-- 'Vulkan.Core10.Image.ImageCreateInfo' structure to specify the image +-- rather than a 'Vulkan.Core10.Handles.Image' object. +-- +-- == Valid Usage (Implicit) +-- +-- = See Also +-- +-- , +-- 'Vulkan.Core10.Handles.Device', 'DeviceImageSubresourceInfoKHR', +-- 'SubresourceLayout2KHR' +getDeviceImageSubresourceLayoutKHR :: forall a io + . ( Extendss SubresourceLayout2KHR a + , PokeChain a + , PeekChain a + , MonadIO io ) + => -- | @device@ is the logical device that owns the image. + -- + -- #VUID-vkGetDeviceImageSubresourceLayoutKHR-device-parameter# @device@ + -- /must/ be a valid 'Vulkan.Core10.Handles.Device' handle + Device + -> -- | @pInfo@ is a pointer to a 'DeviceImageSubresourceInfoKHR' structure + -- containing parameters required for the subresource layout query. + -- + -- #VUID-vkGetDeviceImageSubresourceLayoutKHR-pInfo-parameter# @pInfo@ + -- /must/ be a valid pointer to a valid 'DeviceImageSubresourceInfoKHR' + -- structure + DeviceImageSubresourceInfoKHR + -> io (SubresourceLayout2KHR a) +getDeviceImageSubresourceLayoutKHR device info = liftIO . evalContT $ do + let vkGetDeviceImageSubresourceLayoutKHRPtr = pVkGetDeviceImageSubresourceLayoutKHR (case device of Device{deviceCmds} -> deviceCmds) + lift $ unless (vkGetDeviceImageSubresourceLayoutKHRPtr /= nullFunPtr) $ + throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetDeviceImageSubresourceLayoutKHR is null" Nothing Nothing + let vkGetDeviceImageSubresourceLayoutKHR' = mkVkGetDeviceImageSubresourceLayoutKHR vkGetDeviceImageSubresourceLayoutKHRPtr + pInfo <- ContT $ withCStruct (info) + pPLayout <- ContT (withZeroCStruct @(SubresourceLayout2KHR _)) + lift $ traceAroundEvent "vkGetDeviceImageSubresourceLayoutKHR" (vkGetDeviceImageSubresourceLayoutKHR' + (deviceHandle (device)) + pInfo + (forgetExtensions (pPLayout))) + pLayout <- lift $ peekCStruct @(SubresourceLayout2KHR _) pPLayout + pure $ (pLayout) + + +-- No documentation found for TopLevel "VK_BUFFER_USAGE_2_RAY_TRACING_BIT_NV" +pattern BUFFER_USAGE_2_RAY_TRACING_BIT_NV = BUFFER_USAGE_2_SHADER_BINDING_TABLE_BIT_KHR + + +-- | VkBufferUsageFlags2CreateInfoKHR - Extended buffer usage flags +-- +-- = Description +-- +-- If this structure is included in the @pNext@ chain of a buffer creation +-- structure, @usage@ is used instead of the corresponding @usage@ value +-- passed in that creation structure, allowing additional usage flags to be +-- specified. If this structure is included in the @pNext@ chain of a +-- buffer query structure, the usage flags of the buffer are returned in +-- @usage@ of this structure, and the usage flags representable in @usage@ +-- of the buffer query structure are also returned in that field. +-- +-- == Valid Usage (Implicit) +-- +-- = See Also +-- +-- , +-- 'Vulkan.Extensions.VK_AMDX_shader_enqueue.BufferUsageFlags2KHR', +-- 'Vulkan.Core10.Enums.StructureType.StructureType' +data BufferUsageFlags2CreateInfoKHR = BufferUsageFlags2CreateInfoKHR + { -- | @usage@ is a bitmask of + -- 'Vulkan.Extensions.VK_AMDX_shader_enqueue.BufferUsageFlagBits2KHR' + -- specifying allowed usages of the buffer. + -- + -- #VUID-VkBufferUsageFlags2CreateInfoKHR-usage-parameter# @usage@ /must/ + -- be a valid combination of + -- 'Vulkan.Extensions.VK_AMDX_shader_enqueue.BufferUsageFlagBits2KHR' + -- values + -- + -- #VUID-VkBufferUsageFlags2CreateInfoKHR-usage-requiredbitmask# @usage@ + -- /must/ not be @0@ + usage :: BufferUsageFlags2KHR } + deriving (Typeable, Eq) +#if defined(GENERIC_INSTANCES) +deriving instance Generic (BufferUsageFlags2CreateInfoKHR) +#endif +deriving instance Show BufferUsageFlags2CreateInfoKHR + +instance ToCStruct BufferUsageFlags2CreateInfoKHR where + withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p) + pokeCStruct p BufferUsageFlags2CreateInfoKHR{..} f = do + poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_BUFFER_USAGE_FLAGS_2_CREATE_INFO_KHR) + poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr) + poke ((p `plusPtr` 16 :: Ptr BufferUsageFlags2KHR)) (usage) + f + cStructSize = 24 + cStructAlignment = 8 + pokeZeroCStruct p f = do + poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_BUFFER_USAGE_FLAGS_2_CREATE_INFO_KHR) + poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr) + poke ((p `plusPtr` 16 :: Ptr BufferUsageFlags2KHR)) (zero) + f + +instance FromCStruct BufferUsageFlags2CreateInfoKHR where + peekCStruct p = do + usage <- peek @BufferUsageFlags2KHR ((p `plusPtr` 16 :: Ptr BufferUsageFlags2KHR)) + pure $ BufferUsageFlags2CreateInfoKHR + usage + +instance Storable BufferUsageFlags2CreateInfoKHR where + sizeOf ~_ = 24 + alignment ~_ = 8 + peek = peekCStruct + poke ptr poked = pokeCStruct ptr poked (pure ()) + +instance Zero BufferUsageFlags2CreateInfoKHR where + zero = BufferUsageFlags2CreateInfoKHR + zero + + +-- | VkPipelineCreateFlags2CreateInfoKHR - Extended pipeline create flags +-- +-- = Description +-- +-- If this structure is included in the @pNext@ chain of a pipeline +-- creation structure, @flags@ is used instead of the corresponding @flags@ +-- value passed in that creation structure, allowing additional creation +-- flags to be specified. +-- +-- == Valid Usage (Implicit) +-- +-- = See Also +-- +-- , +-- 'PipelineCreateFlags2KHR', +-- 'Vulkan.Core10.Enums.StructureType.StructureType' +data PipelineCreateFlags2CreateInfoKHR = PipelineCreateFlags2CreateInfoKHR + { -- | @flags@ is a bitmask of 'PipelineCreateFlagBits2KHR' specifying how a + -- pipeline will be generated. + -- + -- #VUID-VkPipelineCreateFlags2CreateInfoKHR-flags-parameter# @flags@ + -- /must/ be a valid combination of 'PipelineCreateFlagBits2KHR' values + -- + -- #VUID-VkPipelineCreateFlags2CreateInfoKHR-flags-requiredbitmask# @flags@ + -- /must/ not be @0@ + flags :: PipelineCreateFlags2KHR } + deriving (Typeable, Eq) +#if defined(GENERIC_INSTANCES) +deriving instance Generic (PipelineCreateFlags2CreateInfoKHR) +#endif +deriving instance Show PipelineCreateFlags2CreateInfoKHR + +instance ToCStruct PipelineCreateFlags2CreateInfoKHR where + withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p) + pokeCStruct p PipelineCreateFlags2CreateInfoKHR{..} f = do + poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_CREATE_FLAGS_2_CREATE_INFO_KHR) + poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr) + poke ((p `plusPtr` 16 :: Ptr PipelineCreateFlags2KHR)) (flags) + f + cStructSize = 24 + cStructAlignment = 8 + pokeZeroCStruct p f = do + poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_CREATE_FLAGS_2_CREATE_INFO_KHR) + poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr) + poke ((p `plusPtr` 16 :: Ptr PipelineCreateFlags2KHR)) (zero) + f + +instance FromCStruct PipelineCreateFlags2CreateInfoKHR where + peekCStruct p = do + flags <- peek @PipelineCreateFlags2KHR ((p `plusPtr` 16 :: Ptr PipelineCreateFlags2KHR)) + pure $ PipelineCreateFlags2CreateInfoKHR + flags + +instance Storable PipelineCreateFlags2CreateInfoKHR where + sizeOf ~_ = 24 + alignment ~_ = 8 + peek = peekCStruct + poke ptr poked = pokeCStruct ptr poked (pure ()) + +instance Zero PipelineCreateFlags2CreateInfoKHR where + zero = PipelineCreateFlags2CreateInfoKHR + zero + + +-- | VkPhysicalDeviceMaintenance5FeaturesKHR - Structure describing whether +-- the implementation supports maintenance5 functionality +-- +-- = Members +-- +-- This structure describes the following feature: +-- +-- = Description +-- +-- If the 'PhysicalDeviceMaintenance5FeaturesKHR' 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. 'PhysicalDeviceMaintenance5FeaturesKHR' /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 PhysicalDeviceMaintenance5FeaturesKHR = PhysicalDeviceMaintenance5FeaturesKHR + { -- | #features-maintenance5# @maintenance5@ indicates that the implementation + -- supports the following: + -- + -- - The ability to expose support for the optional format + -- 'Vulkan.Core10.Enums.Format.FORMAT_A1B5G5R5_UNORM_PACK16_KHR'. + -- + -- - The ability to expose support for the optional format + -- 'Vulkan.Core10.Enums.Format.FORMAT_A8_UNORM_KHR'. + -- + -- - A property to indicate that multisample coverage operations are + -- performed after sample counting in EarlyFragmentTests mode. + -- + -- - Creating a 'Vulkan.Core10.Handles.BufferView' with a subset of the + -- associated 'Vulkan.Core10.Handles.Buffer' usage using + -- 'BufferUsageFlags2CreateInfoKHR'. + -- + -- - A new function 'cmdBindIndexBuffer2KHR', allowing a range of memory + -- to be bound as an index buffer. + -- + -- - 'Vulkan.Core10.DeviceInitialization.getDeviceProcAddr' will return + -- @NULL@ for function pointers of core functions for versions higher + -- than the version requested by the application. + -- + -- - 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2' + -- supports using 'Vulkan.Core10.APIConstants.WHOLE_SIZE' in the + -- @pSizes@ parameter. + -- + -- - If @PointSize@ is not written, a default value of @1.0@ is used for + -- the size of points. + -- + -- - 'Vulkan.Core10.Shader.ShaderModuleCreateInfo' /can/ be added as a + -- chained structure to pipeline creation via + -- 'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo', rather than + -- having to create a shader module. + -- + -- - A function 'getRenderingAreaGranularityKHR' to query the optimal + -- render area for a dynamic rendering instance. + -- + -- - A property to indicate that depth\/stencil texturing operations with + -- 'Vulkan.Core10.Enums.ComponentSwizzle.COMPONENT_SWIZZLE_ONE' have + -- defined behavior. + -- + -- - 'getDeviceImageSubresourceLayoutKHR' allows an application to + -- perform a 'Vulkan.Core10.Image.getImageSubresourceLayout' query + -- without having to create an image. + -- + -- - 'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS' as the + -- @layerCount@ member of + -- 'Vulkan.Core10.CommandBufferBuilding.ImageSubresourceLayers'. + -- + -- - A property to indicate whether @PointSize@ controls the final + -- rasterization of polygons if + -- + -- is 'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_POINT'. + -- + -- - Two properties to indicate the non-strict line rasterization + -- algorithm used. + -- + -- - Two new flags words 'PipelineCreateFlagBits2KHR' and + -- 'Vulkan.Extensions.VK_AMDX_shader_enqueue.BufferUsageFlagBits2KHR'. + -- + -- - Physical-device-level functions /can/ now be called with any value + -- in the valid range for a type beyond the defined enumerants, such + -- that applications can avoid checking individual features, + -- extensions, or versions before querying supported properties of a + -- particular enumerant. + -- + -- - Copies between images of any type are allowed, with 1D images + -- treated as 2D images with a height of @1@. + maintenance5 :: Bool } + deriving (Typeable, Eq) +#if defined(GENERIC_INSTANCES) +deriving instance Generic (PhysicalDeviceMaintenance5FeaturesKHR) +#endif +deriving instance Show PhysicalDeviceMaintenance5FeaturesKHR + +instance ToCStruct PhysicalDeviceMaintenance5FeaturesKHR where + withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p) + pokeCStruct p PhysicalDeviceMaintenance5FeaturesKHR{..} f = do + poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_FEATURES_KHR) + poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr) + poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (maintenance5)) + f + cStructSize = 24 + cStructAlignment = 8 + pokeZeroCStruct p f = do + poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_FEATURES_KHR) + poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr) + poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero)) + f + +instance FromCStruct PhysicalDeviceMaintenance5FeaturesKHR where + peekCStruct p = do + maintenance5 <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32)) + pure $ PhysicalDeviceMaintenance5FeaturesKHR + (bool32ToBool maintenance5) + +instance Storable PhysicalDeviceMaintenance5FeaturesKHR where + sizeOf ~_ = 24 + alignment ~_ = 8 + peek = peekCStruct + poke ptr poked = pokeCStruct ptr poked (pure ()) + +instance Zero PhysicalDeviceMaintenance5FeaturesKHR where + zero = PhysicalDeviceMaintenance5FeaturesKHR + zero + + +-- | VkPhysicalDeviceMaintenance5PropertiesKHR - Structure describing various +-- implementation-defined properties introduced with VK_KHR_maintenance5 +-- +-- = Description +-- +-- If the 'PhysicalDeviceMaintenance5PropertiesKHR' 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 PhysicalDeviceMaintenance5PropertiesKHR = PhysicalDeviceMaintenance5PropertiesKHR + { -- | @earlyFragmentMultisampleCoverageAfterSampleCounting@ is a boolean value + -- indicating whether the + -- + -- and + -- + -- operations are performed after + -- + -- for + -- + -- with @EarlyFragmentTests@ execution mode. + earlyFragmentMultisampleCoverageAfterSampleCounting :: Bool + , -- | @earlyFragmentSampleMaskTestBeforeSampleCounting@ is a boolean value + -- indicating whether the + -- + -- operation is performed before + -- + -- for + -- + -- using the @EarlyFragmentTests@ execution mode. + earlyFragmentSampleMaskTestBeforeSampleCounting :: Bool + , -- | @depthStencilSwizzleOneSupport@ is a boolean indicating that + -- depth\/stencil texturing operations with + -- 'Vulkan.Core10.Enums.ComponentSwizzle.COMPONENT_SWIZZLE_ONE' have + -- defined behavior. + depthStencilSwizzleOneSupport :: Bool + , -- | @polygonModePointSize@ is a boolean value indicating whether the point + -- size of the final rasterization of polygons with + -- 'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_POINT' is controlled by + -- @PointSize@. + polygonModePointSize :: Bool + , -- | @nonStrictSinglePixelWideLinesUseParallelogram@ is a boolean value + -- indicating whether non-strict lines with a width of 1.0 are rasterized + -- as parallelograms or using Bresenham’s algorithm. + nonStrictSinglePixelWideLinesUseParallelogram :: Bool + , -- | @nonStrictWideLinesUseParallelogram@ is a boolean value indicating + -- whether non-strict lines with a width greater than 1.0 are rasterized as + -- parallelograms or using Bresenham’s algorithm. + nonStrictWideLinesUseParallelogram :: Bool + } + deriving (Typeable, Eq) +#if defined(GENERIC_INSTANCES) +deriving instance Generic (PhysicalDeviceMaintenance5PropertiesKHR) +#endif +deriving instance Show PhysicalDeviceMaintenance5PropertiesKHR + +instance ToCStruct PhysicalDeviceMaintenance5PropertiesKHR where + withCStruct x f = allocaBytes 40 $ \p -> pokeCStruct p x (f p) + pokeCStruct p PhysicalDeviceMaintenance5PropertiesKHR{..} f = do + poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_PROPERTIES_KHR) + poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr) + poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (earlyFragmentMultisampleCoverageAfterSampleCounting)) + poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (earlyFragmentSampleMaskTestBeforeSampleCounting)) + poke ((p `plusPtr` 24 :: Ptr Bool32)) (boolToBool32 (depthStencilSwizzleOneSupport)) + poke ((p `plusPtr` 28 :: Ptr Bool32)) (boolToBool32 (polygonModePointSize)) + poke ((p `plusPtr` 32 :: Ptr Bool32)) (boolToBool32 (nonStrictSinglePixelWideLinesUseParallelogram)) + poke ((p `plusPtr` 36 :: Ptr Bool32)) (boolToBool32 (nonStrictWideLinesUseParallelogram)) + f + cStructSize = 40 + cStructAlignment = 8 + pokeZeroCStruct p f = do + poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_PROPERTIES_KHR) + poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr) + poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero)) + poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (zero)) + poke ((p `plusPtr` 24 :: Ptr Bool32)) (boolToBool32 (zero)) + poke ((p `plusPtr` 28 :: Ptr Bool32)) (boolToBool32 (zero)) + poke ((p `plusPtr` 32 :: Ptr Bool32)) (boolToBool32 (zero)) + poke ((p `plusPtr` 36 :: Ptr Bool32)) (boolToBool32 (zero)) + f + +instance FromCStruct PhysicalDeviceMaintenance5PropertiesKHR where + peekCStruct p = do + earlyFragmentMultisampleCoverageAfterSampleCounting <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32)) + earlyFragmentSampleMaskTestBeforeSampleCounting <- peek @Bool32 ((p `plusPtr` 20 :: Ptr Bool32)) + depthStencilSwizzleOneSupport <- peek @Bool32 ((p `plusPtr` 24 :: Ptr Bool32)) + polygonModePointSize <- peek @Bool32 ((p `plusPtr` 28 :: Ptr Bool32)) + nonStrictSinglePixelWideLinesUseParallelogram <- peek @Bool32 ((p `plusPtr` 32 :: Ptr Bool32)) + nonStrictWideLinesUseParallelogram <- peek @Bool32 ((p `plusPtr` 36 :: Ptr Bool32)) + pure $ PhysicalDeviceMaintenance5PropertiesKHR + (bool32ToBool earlyFragmentMultisampleCoverageAfterSampleCounting) + (bool32ToBool earlyFragmentSampleMaskTestBeforeSampleCounting) + (bool32ToBool depthStencilSwizzleOneSupport) + (bool32ToBool polygonModePointSize) + (bool32ToBool nonStrictSinglePixelWideLinesUseParallelogram) + (bool32ToBool nonStrictWideLinesUseParallelogram) + +instance Storable PhysicalDeviceMaintenance5PropertiesKHR where + sizeOf ~_ = 40 + alignment ~_ = 8 + peek = peekCStruct + poke ptr poked = pokeCStruct ptr poked (pure ()) + +instance Zero PhysicalDeviceMaintenance5PropertiesKHR where + zero = PhysicalDeviceMaintenance5PropertiesKHR + zero + zero + zero + zero + zero + zero + + +-- | VkRenderingAreaInfoKHR - Structure describing rendering area granularity +-- query info +-- +-- == Valid Usage (Implicit) +-- +-- = See Also +-- +-- , +-- 'Vulkan.Core10.Enums.Format.Format', +-- 'Vulkan.Core10.Enums.StructureType.StructureType', +-- 'getRenderingAreaGranularityKHR' +data RenderingAreaInfoKHR = RenderingAreaInfoKHR + { -- | @viewMask@ is the viewMask used for rendering. + viewMask :: Word32 + , -- | @pColorAttachmentFormats@ is a pointer to an array of + -- 'Vulkan.Core10.Enums.Format.Format' values defining the format of color + -- attachments used in the render pass instance. + colorAttachmentFormats :: Vector Format + , -- | @depthAttachmentFormat@ is a 'Vulkan.Core10.Enums.Format.Format' value + -- defining the format of the depth attachment used in the render pass + -- instance. + depthAttachmentFormat :: Format + , -- | @stencilAttachmentFormat@ is a 'Vulkan.Core10.Enums.Format.Format' value + -- defining the format of the stencil attachment used in the render pass + -- instance. + stencilAttachmentFormat :: Format + } + deriving (Typeable) +#if defined(GENERIC_INSTANCES) +deriving instance Generic (RenderingAreaInfoKHR) +#endif +deriving instance Show RenderingAreaInfoKHR + +instance ToCStruct RenderingAreaInfoKHR where + withCStruct x f = allocaBytes 40 $ \p -> pokeCStruct p x (f p) + pokeCStruct p RenderingAreaInfoKHR{..} f = evalContT $ do + lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_RENDERING_AREA_INFO_KHR) + lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr) + lift $ poke ((p `plusPtr` 16 :: Ptr Word32)) (viewMask) + lift $ poke ((p `plusPtr` 20 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (colorAttachmentFormats)) :: Word32)) + pPColorAttachmentFormats' <- ContT $ allocaBytes @Format ((Data.Vector.length (colorAttachmentFormats)) * 4) + lift $ Data.Vector.imapM_ (\i e -> poke (pPColorAttachmentFormats' `plusPtr` (4 * (i)) :: Ptr Format) (e)) (colorAttachmentFormats) + lift $ poke ((p `plusPtr` 24 :: Ptr (Ptr Format))) (pPColorAttachmentFormats') + lift $ poke ((p `plusPtr` 32 :: Ptr Format)) (depthAttachmentFormat) + lift $ poke ((p `plusPtr` 36 :: Ptr Format)) (stencilAttachmentFormat) + lift $ f + cStructSize = 40 + cStructAlignment = 8 + pokeZeroCStruct p f = do + poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_RENDERING_AREA_INFO_KHR) + poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr) + poke ((p `plusPtr` 16 :: Ptr Word32)) (zero) + poke ((p `plusPtr` 32 :: Ptr Format)) (zero) + poke ((p `plusPtr` 36 :: Ptr Format)) (zero) + f + +instance FromCStruct RenderingAreaInfoKHR where + peekCStruct p = do + viewMask <- peek @Word32 ((p `plusPtr` 16 :: Ptr Word32)) + colorAttachmentCount <- peek @Word32 ((p `plusPtr` 20 :: Ptr Word32)) + pColorAttachmentFormats <- peek @(Ptr Format) ((p `plusPtr` 24 :: Ptr (Ptr Format))) + pColorAttachmentFormats' <- generateM (fromIntegral colorAttachmentCount) (\i -> peek @Format ((pColorAttachmentFormats `advancePtrBytes` (4 * (i)) :: Ptr Format))) + depthAttachmentFormat <- peek @Format ((p `plusPtr` 32 :: Ptr Format)) + stencilAttachmentFormat <- peek @Format ((p `plusPtr` 36 :: Ptr Format)) + pure $ RenderingAreaInfoKHR + viewMask + pColorAttachmentFormats' + depthAttachmentFormat + stencilAttachmentFormat + +instance Zero RenderingAreaInfoKHR where + zero = RenderingAreaInfoKHR + zero + mempty + zero + zero + + +-- | VkImageSubresource2KHR - Structure specifying an image subresource +-- +-- == Valid Usage (Implicit) +-- +-- = See Also +-- +-- , +-- , +-- , +-- 'DeviceImageSubresourceInfoKHR', +-- 'Vulkan.Core10.SparseResourceMemoryManagement.ImageSubresource', +-- 'Vulkan.Core10.Enums.StructureType.StructureType', +-- 'Vulkan.Extensions.VK_EXT_host_image_copy.getImageSubresourceLayout2EXT', +-- 'getImageSubresourceLayout2KHR' +data ImageSubresource2KHR = ImageSubresource2KHR + { -- | @imageSubresource@ is a + -- 'Vulkan.Core10.SparseResourceMemoryManagement.ImageSubresource' + -- structure. + -- + -- #VUID-VkImageSubresource2KHR-imageSubresource-parameter# + -- @imageSubresource@ /must/ be a valid + -- 'Vulkan.Core10.SparseResourceMemoryManagement.ImageSubresource' + -- structure + imageSubresource :: ImageSubresource } + deriving (Typeable) +#if defined(GENERIC_INSTANCES) +deriving instance Generic (ImageSubresource2KHR) +#endif +deriving instance Show ImageSubresource2KHR + +instance ToCStruct ImageSubresource2KHR where + withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p) + pokeCStruct p ImageSubresource2KHR{..} f = do + poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_KHR) + poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr) + poke ((p `plusPtr` 16 :: Ptr ImageSubresource)) (imageSubresource) + f + cStructSize = 32 + cStructAlignment = 8 + pokeZeroCStruct p f = do + poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_KHR) + poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr) + poke ((p `plusPtr` 16 :: Ptr ImageSubresource)) (zero) + f + +instance FromCStruct ImageSubresource2KHR where + peekCStruct p = do + imageSubresource <- peekCStruct @ImageSubresource ((p `plusPtr` 16 :: Ptr ImageSubresource)) + pure $ ImageSubresource2KHR + imageSubresource + +instance Storable ImageSubresource2KHR where + sizeOf ~_ = 32 + alignment ~_ = 8 + peek = peekCStruct + poke ptr poked = pokeCStruct ptr poked (pure ()) + +instance Zero ImageSubresource2KHR where + zero = ImageSubresource2KHR + zero + + +-- | VkSubresourceLayout2KHR - Structure specifying subresource layout +-- +-- == Valid Usage (Implicit) +-- +-- - #VUID-VkSubresourceLayout2KHR-sType-sType# @sType@ /must/ be +-- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_KHR' +-- +-- - #VUID-VkSubresourceLayout2KHR-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_compression_control.ImageCompressionPropertiesEXT' +-- or +-- 'Vulkan.Extensions.VK_EXT_host_image_copy.SubresourceHostMemcpySizeEXT' +-- +-- - #VUID-VkSubresourceLayout2KHR-sType-unique# The @sType@ value of +-- each struct in the @pNext@ chain /must/ be unique +-- +-- = See Also +-- +-- , +-- , +-- , +-- 'Vulkan.Core10.Enums.StructureType.StructureType', +-- 'Vulkan.Core10.Image.SubresourceLayout', +-- 'getDeviceImageSubresourceLayoutKHR', +-- 'Vulkan.Extensions.VK_EXT_host_image_copy.getImageSubresourceLayout2EXT', +-- 'getImageSubresourceLayout2KHR' +data SubresourceLayout2KHR (es :: [Type]) = SubresourceLayout2KHR + { -- | @pNext@ is @NULL@ or a pointer to a structure extending this structure. + next :: Chain es + , -- | @subresourceLayout@ is a 'Vulkan.Core10.Image.SubresourceLayout' + -- structure. + subresourceLayout :: SubresourceLayout + } + deriving (Typeable) +#if defined(GENERIC_INSTANCES) +deriving instance Generic (SubresourceLayout2KHR (es :: [Type])) +#endif +deriving instance Show (Chain es) => Show (SubresourceLayout2KHR es) + +instance Extensible SubresourceLayout2KHR where + extensibleTypeName = "SubresourceLayout2KHR" + setNext SubresourceLayout2KHR{..} next' = SubresourceLayout2KHR{next = next', ..} + getNext SubresourceLayout2KHR{..} = next + extends :: forall e b proxy. Typeable e => proxy e -> (Extends SubresourceLayout2KHR e => b) -> Maybe b + extends _ f + | Just Refl <- eqT @e @ImageCompressionPropertiesEXT = Just f + | Just Refl <- eqT @e @SubresourceHostMemcpySizeEXT = Just f + | otherwise = Nothing + +instance ( Extendss SubresourceLayout2KHR es + , PokeChain es ) => ToCStruct (SubresourceLayout2KHR es) where + withCStruct x f = allocaBytes 56 $ \p -> pokeCStruct p x (f p) + pokeCStruct p SubresourceLayout2KHR{..} f = evalContT $ do + lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_KHR) + pNext'' <- fmap castPtr . ContT $ withChain (next) + lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext'' + lift $ poke ((p `plusPtr` 16 :: Ptr SubresourceLayout)) (subresourceLayout) + lift $ f + cStructSize = 56 + cStructAlignment = 8 + pokeZeroCStruct p f = evalContT $ do + lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_KHR) + pNext' <- fmap castPtr . ContT $ withZeroChain @es + lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext' + lift $ poke ((p `plusPtr` 16 :: Ptr SubresourceLayout)) (zero) + lift $ f + +instance ( Extendss SubresourceLayout2KHR es + , PeekChain es ) => FromCStruct (SubresourceLayout2KHR es) where + peekCStruct p = do + pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ()))) + next <- peekChain (castPtr pNext) + subresourceLayout <- peekCStruct @SubresourceLayout ((p `plusPtr` 16 :: Ptr SubresourceLayout)) + pure $ SubresourceLayout2KHR + next subresourceLayout + +instance es ~ '[] => Zero (SubresourceLayout2KHR es) where + zero = SubresourceLayout2KHR + () + zero + + +-- | VkDeviceImageSubresourceInfoKHR - Image creation information for +-- querying subresource layout +-- +-- == Valid Usage +-- +-- - #VUID-VkDeviceImageSubresourceInfoKHR-aspectMask-00997# The +-- @aspectMask@ member of @pSubresource@ /must/ only have a single bit +-- set +-- +-- - #VUID-VkDeviceImageSubresourceInfoKHR-mipLevel-01716# The @mipLevel@ +-- member of @pSubresource@ /must/ be less than the @mipLevels@ +-- specified in 'Vulkan.Core10.Image.ImageCreateInfo' when @image@ was +-- created +-- +-- - #VUID-VkDeviceImageSubresourceInfoKHR-arrayLayer-01717# The +-- @arrayLayer@ member of @pSubresource@ /must/ be less than the +-- @arrayLayers@ specified in 'Vulkan.Core10.Image.ImageCreateInfo' +-- when @image@ was created +-- +-- - #VUID-VkDeviceImageSubresourceInfoKHR-format-08886# If @format@ of +-- the @image@ is a color format, @tiling@ of the @image@ is +-- 'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_LINEAR' or +-- 'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_OPTIMAL', and does not +-- have a +-- , +-- the @aspectMask@ member of @pSubresource@ /must/ be +-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT' +-- +-- - #VUID-VkDeviceImageSubresourceInfoKHR-format-04462# If @format@ of +-- the @image@ has a depth component, the @aspectMask@ member of +-- @pSubresource@ /must/ contain +-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_DEPTH_BIT' +-- +-- - #VUID-VkDeviceImageSubresourceInfoKHR-format-04463# If @format@ of +-- the @image@ has a stencil component, the @aspectMask@ member of +-- @pSubresource@ /must/ contain +-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT' +-- +-- - #VUID-VkDeviceImageSubresourceInfoKHR-format-04464# If @format@ of +-- the @image@ does not contain a stencil or depth component, the +-- @aspectMask@ member of @pSubresource@ /must/ not contain +-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_DEPTH_BIT' or +-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT' +-- +-- - #VUID-VkDeviceImageSubresourceInfoKHR-tiling-08717# If the @tiling@ +-- of the @image@ is +-- 'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_LINEAR' and has a +-- , +-- then the @aspectMask@ member of @pSubresource@ /must/ be a single +-- valid +-- +-- bit +-- +-- - #VUID-VkDeviceImageSubresourceInfoKHR-image-01895# If @image@ was +-- created with the +-- 'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID' +-- external memory handle type, then @image@ /must/ be bound to memory +-- +-- - #VUID-VkDeviceImageSubresourceInfoKHR-tiling-02271# If the @tiling@ +-- of the @image@ is +-- 'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT', +-- then the @aspectMask@ member of @pSubresource@ /must/ be +-- @VK_IMAGE_ASPECT_MEMORY_PLANE_i_BIT_EXT@ and the index /i/ /must/ be +-- less than the +-- 'Vulkan.Extensions.VK_EXT_image_drm_format_modifier.DrmFormatModifierPropertiesEXT'::@drmFormatModifierPlaneCount@ +-- associated with the image’s @format@ and +-- 'Vulkan.Extensions.VK_EXT_image_drm_format_modifier.ImageDrmFormatModifierPropertiesEXT'::@drmFormatModifier@ +-- +-- == Valid Usage (Implicit) +-- +-- - #VUID-VkDeviceImageSubresourceInfoKHR-sType-sType# @sType@ /must/ be +-- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_DEVICE_IMAGE_SUBRESOURCE_INFO_KHR' +-- +-- - #VUID-VkDeviceImageSubresourceInfoKHR-pNext-pNext# @pNext@ /must/ be +-- @NULL@ +-- +-- - #VUID-VkDeviceImageSubresourceInfoKHR-pCreateInfo-parameter# +-- @pCreateInfo@ /must/ be a valid pointer to a valid +-- 'Vulkan.Core10.Image.ImageCreateInfo' structure +-- +-- - #VUID-VkDeviceImageSubresourceInfoKHR-pSubresource-parameter# +-- @pSubresource@ /must/ be a valid pointer to a valid +-- 'ImageSubresource2KHR' structure +-- +-- = See Also +-- +-- , +-- 'Vulkan.Core10.Image.ImageCreateInfo', 'ImageSubresource2KHR', +-- 'Vulkan.Core10.Enums.StructureType.StructureType', +-- 'getDeviceImageSubresourceLayoutKHR' +data DeviceImageSubresourceInfoKHR = DeviceImageSubresourceInfoKHR + { -- | @pCreateInfo@ is a pointer to a 'Vulkan.Core10.Image.ImageCreateInfo' + -- structure containing parameters affecting creation of the image to + -- query. + createInfo :: SomeStruct ImageCreateInfo + , -- | @pSubresource@ pSubresource is a pointer to a 'ImageSubresource2KHR' + -- structure selecting a specific image subresource for the query. + subresource :: ImageSubresource2KHR + } + deriving (Typeable) +#if defined(GENERIC_INSTANCES) +deriving instance Generic (DeviceImageSubresourceInfoKHR) +#endif +deriving instance Show DeviceImageSubresourceInfoKHR + +instance ToCStruct DeviceImageSubresourceInfoKHR where + withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p) + pokeCStruct p DeviceImageSubresourceInfoKHR{..} f = evalContT $ do + lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_DEVICE_IMAGE_SUBRESOURCE_INFO_KHR) + lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr) + pCreateInfo'' <- ContT @_ @_ @(Ptr (ImageCreateInfo '[])) $ \cont -> withSomeCStruct @ImageCreateInfo (createInfo) (cont . castPtr) + lift $ poke ((p `plusPtr` 16 :: Ptr (Ptr (ImageCreateInfo _)))) pCreateInfo'' + pSubresource'' <- ContT $ withCStruct (subresource) + lift $ poke ((p `plusPtr` 24 :: Ptr (Ptr ImageSubresource2KHR))) pSubresource'' + lift $ f + cStructSize = 32 + cStructAlignment = 8 + pokeZeroCStruct p f = evalContT $ do + lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_DEVICE_IMAGE_SUBRESOURCE_INFO_KHR) + lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr) + pCreateInfo'' <- ContT @_ @_ @(Ptr (ImageCreateInfo '[])) $ \cont -> withSomeCStruct @ImageCreateInfo ((SomeStruct zero)) (cont . castPtr) + lift $ poke ((p `plusPtr` 16 :: Ptr (Ptr (ImageCreateInfo _)))) pCreateInfo'' + pSubresource'' <- ContT $ withCStruct (zero) + lift $ poke ((p `plusPtr` 24 :: Ptr (Ptr ImageSubresource2KHR))) pSubresource'' + lift $ f + +instance FromCStruct DeviceImageSubresourceInfoKHR where + peekCStruct p = do + pCreateInfo <- peekSomeCStruct . forgetExtensions =<< peek ((p `plusPtr` 16 :: Ptr (Ptr (ImageCreateInfo _)))) + pSubresource <- peekCStruct @ImageSubresource2KHR =<< peek ((p `plusPtr` 24 :: Ptr (Ptr ImageSubresource2KHR))) + pure $ DeviceImageSubresourceInfoKHR + pCreateInfo pSubresource + +instance Zero DeviceImageSubresourceInfoKHR where + zero = DeviceImageSubresourceInfoKHR + (SomeStruct zero) + zero + + +type PipelineCreateFlags2KHR = PipelineCreateFlagBits2KHR + +-- | VkPipelineCreateFlagBits2KHR - Bitmask controlling how a pipeline is +-- created +-- +-- = Description +-- +-- - 'PIPELINE_CREATE_2_DISABLE_OPTIMIZATION_BIT_KHR' specifies that the +-- created pipeline will not be optimized. Using this flag /may/ reduce +-- the time taken to create the pipeline. +-- +-- - 'PIPELINE_CREATE_2_ALLOW_DERIVATIVES_BIT_KHR' specifies that the +-- pipeline to be created is allowed to be the parent of a pipeline +-- that will be created in a subsequent pipeline creation call. +-- +-- - 'PIPELINE_CREATE_2_DERIVATIVE_BIT_KHR' specifies that the pipeline +-- to be created will be a child of a previously created parent +-- pipeline. +-- +-- - 'PIPELINE_CREATE_2_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR' specifies +-- that any shader input variables decorated as @ViewIndex@ will be +-- assigned values as if they were decorated as @DeviceIndex@. +-- +-- - 'PIPELINE_CREATE_2_DISPATCH_BASE_BIT_KHR' specifies that a compute +-- pipeline /can/ be used with +-- 'Vulkan.Core11.Promoted_From_VK_KHR_device_group.cmdDispatchBase' +-- with a non-zero base workgroup. +-- +-- - 'PIPELINE_CREATE_2_DEFER_COMPILE_BIT_NV' specifies that a pipeline +-- is created with all shaders in the deferred state. Before using the +-- pipeline the application /must/ call +-- 'Vulkan.Extensions.VK_NV_ray_tracing.compileDeferredNV' exactly once +-- on each shader in the pipeline before using the pipeline. +-- +-- - 'PIPELINE_CREATE_2_CAPTURE_STATISTICS_BIT_KHR' specifies that the +-- 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 +-- time. +-- +-- - 'PIPELINE_CREATE_2_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR' +-- specifies that the shader compiler should capture the internal +-- representations 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 +-- time. When capturing IR from pipelines created with pipeline +-- libraries, there is no guarantee that IR from libraries /can/ be +-- retrieved from the linked pipeline. Applications /should/ retrieve +-- IR from each library, and any linked pipelines, separately. +-- +-- - 'PIPELINE_CREATE_2_LIBRARY_BIT_KHR' specifies that the pipeline +-- /cannot/ be used directly, and instead defines a /pipeline library/ +-- that /can/ be combined with other pipelines using the +-- 'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR' +-- structure. This is available in ray tracing and graphics pipelines. +-- +-- - 'PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR' +-- specifies that an any-hit shader will always be present when an +-- any-hit shader would be executed. A NULL any-hit shader is an +-- any-hit shader which is effectively +-- 'Vulkan.Core10.APIConstants.SHADER_UNUSED_KHR', such as from a +-- shader group consisting entirely of zeros. +-- +-- - 'PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR' +-- specifies that a closest hit shader will always be present when a +-- closest hit shader would be executed. A NULL closest hit shader is a +-- closest hit shader which is effectively +-- 'Vulkan.Core10.APIConstants.SHADER_UNUSED_KHR', such as from a +-- shader group consisting entirely of zeros. +-- +-- - 'PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR' +-- specifies that a miss shader will always be present when a miss +-- shader would be executed. A NULL miss shader is a miss shader which +-- is effectively 'Vulkan.Core10.APIConstants.SHADER_UNUSED_KHR', such +-- as from a shader group consisting entirely of zeros. +-- +-- - 'PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR' +-- specifies that an intersection shader will always be present when an +-- intersection shader would be executed. A NULL intersection shader is +-- an intersection shader which is effectively +-- 'Vulkan.Core10.APIConstants.SHADER_UNUSED_KHR', such as from a +-- shader group consisting entirely of zeros. +-- +-- - 'PIPELINE_CREATE_2_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR' specifies +-- that triangle primitives will be skipped during traversal using +-- @OpTraceRayKHR@. +-- +-- - 'PIPELINE_CREATE_2_RAY_TRACING_SKIP_AABBS_BIT_KHR' specifies that +-- AABB primitives will be skipped during traversal using +-- @OpTraceRayKHR@. +-- +-- - 'PIPELINE_CREATE_2_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR' +-- specifies that the shader group handles /can/ be saved and reused on +-- a subsequent run (e.g. for trace capture and replay). +-- +-- - 'PIPELINE_CREATE_2_INDIRECT_BINDABLE_BIT_NV' specifies that the +-- pipeline can be used in combination with +-- . +-- +-- - 'PIPELINE_CREATE_2_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_KHR' +-- specifies that pipeline creation will fail if a compile is required +-- for creation of a valid 'Vulkan.Core10.Handles.Pipeline' object; +-- 'Vulkan.Core10.Enums.Result.PIPELINE_COMPILE_REQUIRED' will be +-- returned by pipeline creation, and the +-- 'Vulkan.Core10.Handles.Pipeline' will be set to +-- 'Vulkan.Core10.APIConstants.NULL_HANDLE'. +-- +-- - When creating multiple pipelines, +-- 'PIPELINE_CREATE_2_EARLY_RETURN_ON_FAILURE_BIT_KHR' specifies that +-- control will be returned to the application if any individual +-- pipeline returns a result which is not +-- 'Vulkan.Core10.Enums.Result.SUCCESS' rather than continuing to +-- create additional pipelines. +-- +-- - 'PIPELINE_CREATE_2_RAY_TRACING_ALLOW_MOTION_BIT_NV' specifies that +-- the pipeline is allowed to use @OpTraceRayMotionNV@. +-- +-- - 'PIPELINE_CREATE_2_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR' +-- specifies that the pipeline will be used with a fragment shading +-- rate attachment. +-- +-- - 'PIPELINE_CREATE_2_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT' +-- specifies that the pipeline will be used with a fragment density map +-- attachment. +-- +-- - 'PIPELINE_CREATE_2_LINK_TIME_OPTIMIZATION_BIT_EXT' specifies that +-- pipeline libraries being linked into this library /should/ have link +-- time optimizations applied. If this bit is omitted, implementations +-- /should/ instead perform linking as rapidly as possible. +-- +-- - 'PIPELINE_CREATE_2_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT' +-- specifies that pipeline libraries should retain any information +-- necessary to later perform an optimal link with +-- 'PIPELINE_CREATE_2_LINK_TIME_OPTIMIZATION_BIT_EXT'. +-- +-- - 'PIPELINE_CREATE_2_DESCRIPTOR_BUFFER_BIT_EXT' specifies that a +-- pipeline will be used with +-- , +-- rather than +-- . +-- +-- - 'PIPELINE_CREATE_2_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT' specifies +-- that the pipeline /may/ be used with an attachment feedback loop +-- including color attachments. +-- +-- - 'PIPELINE_CREATE_2_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT' +-- specifies that the pipeline /may/ be used with an attachment +-- feedback loop including depth-stencil attachments. +-- +-- - 'PIPELINE_CREATE_2_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT' specifies +-- that the pipeline /can/ be used with acceleration structures which +-- reference an opacity micromap array. +-- +-- - 'PIPELINE_CREATE_2_RAY_TRACING_DISPLACEMENT_MICROMAP_BIT_NV' +-- specifies that the pipeline /can/ be used with aceleration +-- structures which reference a displacement micromap array. +-- +-- - 'PIPELINE_CREATE_2_NO_PROTECTED_ACCESS_BIT_EXT' specifies that the +-- pipeline /must/ not be bound to a protected command buffer. +-- +-- - 'PIPELINE_CREATE_2_PROTECTED_ACCESS_ONLY_BIT_EXT' specifies that the +-- pipeline /must/ not be bound to an unprotected command buffer. +-- +-- It is valid to set both 'PIPELINE_CREATE_2_ALLOW_DERIVATIVES_BIT_KHR' +-- and 'PIPELINE_CREATE_2_DERIVATIVE_BIT_KHR'. This allows a pipeline to be +-- both a parent and possibly a child in a pipeline hierarchy. See +-- +-- for more information. +-- +-- When an implementation is looking up a pipeline in a +-- , +-- if that pipeline is being created using linked libraries, +-- implementations /should/ always return an equivalent pipeline created +-- with 'PIPELINE_CREATE_2_LINK_TIME_OPTIMIZATION_BIT_EXT' if available, +-- whether or not that bit was specified. +-- +-- Note +-- +-- Using 'PIPELINE_CREATE_2_LINK_TIME_OPTIMIZATION_BIT_EXT' (or not) when +-- linking pipeline libraries is intended as a performance tradeoff between +-- host and device. If the bit is omitted, linking should be faster and +-- produce a pipeline more rapidly, but performance of the pipeline on the +-- target device may be reduced. If the bit is included, linking may be +-- slower but should produce a pipeline with device performance comparable +-- to a monolithically created pipeline. Using both options can allow +-- latency-sensitive applications to generate a suboptimal but usable +-- pipeline quickly, and then perform an optimal link in the background, +-- substituting the result for the suboptimally linked pipeline as soon as +-- it is available. +-- +-- = See Also +-- +-- +newtype PipelineCreateFlagBits2KHR = PipelineCreateFlagBits2KHR Flags64 + deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits) + +-- No documentation found for Nested "VkPipelineCreateFlagBits2KHR" "VK_PIPELINE_CREATE_2_DISABLE_OPTIMIZATION_BIT_KHR" +pattern PIPELINE_CREATE_2_DISABLE_OPTIMIZATION_BIT_KHR = PipelineCreateFlagBits2KHR 0x0000000000000001 + +-- No documentation found for Nested "VkPipelineCreateFlagBits2KHR" "VK_PIPELINE_CREATE_2_ALLOW_DERIVATIVES_BIT_KHR" +pattern PIPELINE_CREATE_2_ALLOW_DERIVATIVES_BIT_KHR = PipelineCreateFlagBits2KHR 0x0000000000000002 + +-- No documentation found for Nested "VkPipelineCreateFlagBits2KHR" "VK_PIPELINE_CREATE_2_DERIVATIVE_BIT_KHR" +pattern PIPELINE_CREATE_2_DERIVATIVE_BIT_KHR = PipelineCreateFlagBits2KHR 0x0000000000000004 + +-- No documentation found for Nested "VkPipelineCreateFlagBits2KHR" "VK_PIPELINE_CREATE_2_DESCRIPTOR_BUFFER_BIT_EXT" +pattern PIPELINE_CREATE_2_DESCRIPTOR_BUFFER_BIT_EXT = PipelineCreateFlagBits2KHR 0x0000000020000000 + +-- No documentation found for Nested "VkPipelineCreateFlagBits2KHR" "VK_PIPELINE_CREATE_2_RAY_TRACING_DISPLACEMENT_MICROMAP_BIT_NV" +pattern PIPELINE_CREATE_2_RAY_TRACING_DISPLACEMENT_MICROMAP_BIT_NV = PipelineCreateFlagBits2KHR 0x0000000010000000 + +-- No documentation found for Nested "VkPipelineCreateFlagBits2KHR" "VK_PIPELINE_CREATE_2_PROTECTED_ACCESS_ONLY_BIT_EXT" +pattern PIPELINE_CREATE_2_PROTECTED_ACCESS_ONLY_BIT_EXT = PipelineCreateFlagBits2KHR 0x0000000040000000 + +-- No documentation found for Nested "VkPipelineCreateFlagBits2KHR" "VK_PIPELINE_CREATE_2_NO_PROTECTED_ACCESS_BIT_EXT" +pattern PIPELINE_CREATE_2_NO_PROTECTED_ACCESS_BIT_EXT = PipelineCreateFlagBits2KHR 0x0000000008000000 + +-- No documentation found for Nested "VkPipelineCreateFlagBits2KHR" "VK_PIPELINE_CREATE_2_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT" +pattern PIPELINE_CREATE_2_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = PipelineCreateFlagBits2KHR 0x0000000004000000 + +-- No documentation found for Nested "VkPipelineCreateFlagBits2KHR" "VK_PIPELINE_CREATE_2_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT" +pattern PIPELINE_CREATE_2_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = PipelineCreateFlagBits2KHR 0x0000000002000000 + +-- No documentation found for Nested "VkPipelineCreateFlagBits2KHR" "VK_PIPELINE_CREATE_2_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT" +pattern PIPELINE_CREATE_2_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT = PipelineCreateFlagBits2KHR 0x0000000001000000 + +-- No documentation found for Nested "VkPipelineCreateFlagBits2KHR" "VK_PIPELINE_CREATE_2_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT" +pattern PIPELINE_CREATE_2_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT = PipelineCreateFlagBits2KHR 0x0000000000400000 + +-- No documentation found for Nested "VkPipelineCreateFlagBits2KHR" "VK_PIPELINE_CREATE_2_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR" +pattern PIPELINE_CREATE_2_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = PipelineCreateFlagBits2KHR 0x0000000000200000 + +-- No documentation found for Nested "VkPipelineCreateFlagBits2KHR" "VK_PIPELINE_CREATE_2_RAY_TRACING_ALLOW_MOTION_BIT_NV" +pattern PIPELINE_CREATE_2_RAY_TRACING_ALLOW_MOTION_BIT_NV = PipelineCreateFlagBits2KHR 0x0000000000100000 + +-- No documentation found for Nested "VkPipelineCreateFlagBits2KHR" "VK_PIPELINE_CREATE_2_INDIRECT_BINDABLE_BIT_NV" +pattern PIPELINE_CREATE_2_INDIRECT_BINDABLE_BIT_NV = PipelineCreateFlagBits2KHR 0x0000000000040000 + +-- No documentation found for Nested "VkPipelineCreateFlagBits2KHR" "VK_PIPELINE_CREATE_2_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR" +pattern PIPELINE_CREATE_2_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR = PipelineCreateFlagBits2KHR 0x0000000000080000 + +-- No documentation found for Nested "VkPipelineCreateFlagBits2KHR" "VK_PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR" +pattern PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR = PipelineCreateFlagBits2KHR 0x0000000000020000 + +-- No documentation found for Nested "VkPipelineCreateFlagBits2KHR" "VK_PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR" +pattern PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR = PipelineCreateFlagBits2KHR 0x0000000000010000 + +-- No documentation found for Nested "VkPipelineCreateFlagBits2KHR" "VK_PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR" +pattern PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR = PipelineCreateFlagBits2KHR 0x0000000000008000 + +-- No documentation found for Nested "VkPipelineCreateFlagBits2KHR" "VK_PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR" +pattern PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR = PipelineCreateFlagBits2KHR 0x0000000000004000 + +-- No documentation found for Nested "VkPipelineCreateFlagBits2KHR" "VK_PIPELINE_CREATE_2_RAY_TRACING_SKIP_AABBS_BIT_KHR" +pattern PIPELINE_CREATE_2_RAY_TRACING_SKIP_AABBS_BIT_KHR = PipelineCreateFlagBits2KHR 0x0000000000002000 + +-- No documentation found for Nested "VkPipelineCreateFlagBits2KHR" "VK_PIPELINE_CREATE_2_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR" +pattern PIPELINE_CREATE_2_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR = PipelineCreateFlagBits2KHR 0x0000000000001000 + +-- No documentation found for Nested "VkPipelineCreateFlagBits2KHR" "VK_PIPELINE_CREATE_2_LIBRARY_BIT_KHR" +pattern PIPELINE_CREATE_2_LIBRARY_BIT_KHR = PipelineCreateFlagBits2KHR 0x0000000000000800 + +-- No documentation found for Nested "VkPipelineCreateFlagBits2KHR" "VK_PIPELINE_CREATE_2_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT" +pattern PIPELINE_CREATE_2_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT = PipelineCreateFlagBits2KHR 0x0000000000800000 + +-- No documentation found for Nested "VkPipelineCreateFlagBits2KHR" "VK_PIPELINE_CREATE_2_LINK_TIME_OPTIMIZATION_BIT_EXT" +pattern PIPELINE_CREATE_2_LINK_TIME_OPTIMIZATION_BIT_EXT = PipelineCreateFlagBits2KHR 0x0000000000000400 + +-- No documentation found for Nested "VkPipelineCreateFlagBits2KHR" "VK_PIPELINE_CREATE_2_EARLY_RETURN_ON_FAILURE_BIT_KHR" +pattern PIPELINE_CREATE_2_EARLY_RETURN_ON_FAILURE_BIT_KHR = PipelineCreateFlagBits2KHR 0x0000000000000200 + +-- No documentation found for Nested "VkPipelineCreateFlagBits2KHR" "VK_PIPELINE_CREATE_2_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_KHR" +pattern PIPELINE_CREATE_2_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_KHR = PipelineCreateFlagBits2KHR 0x0000000000000100 + +-- No documentation found for Nested "VkPipelineCreateFlagBits2KHR" "VK_PIPELINE_CREATE_2_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR" +pattern PIPELINE_CREATE_2_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR = PipelineCreateFlagBits2KHR 0x0000000000000080 + +-- No documentation found for Nested "VkPipelineCreateFlagBits2KHR" "VK_PIPELINE_CREATE_2_CAPTURE_STATISTICS_BIT_KHR" +pattern PIPELINE_CREATE_2_CAPTURE_STATISTICS_BIT_KHR = PipelineCreateFlagBits2KHR 0x0000000000000040 + +-- No documentation found for Nested "VkPipelineCreateFlagBits2KHR" "VK_PIPELINE_CREATE_2_DEFER_COMPILE_BIT_NV" +pattern PIPELINE_CREATE_2_DEFER_COMPILE_BIT_NV = PipelineCreateFlagBits2KHR 0x0000000000000020 + +-- No documentation found for Nested "VkPipelineCreateFlagBits2KHR" "VK_PIPELINE_CREATE_2_DISPATCH_BASE_BIT_KHR" +pattern PIPELINE_CREATE_2_DISPATCH_BASE_BIT_KHR = PipelineCreateFlagBits2KHR 0x0000000000000010 + +-- No documentation found for Nested "VkPipelineCreateFlagBits2KHR" "VK_PIPELINE_CREATE_2_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR" +pattern PIPELINE_CREATE_2_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR = PipelineCreateFlagBits2KHR 0x0000000000000008 + +conNamePipelineCreateFlagBits2KHR :: String +conNamePipelineCreateFlagBits2KHR = "PipelineCreateFlagBits2KHR" + +enumPrefixPipelineCreateFlagBits2KHR :: String +enumPrefixPipelineCreateFlagBits2KHR = "PIPELINE_CREATE_2_" + +showTablePipelineCreateFlagBits2KHR :: [(PipelineCreateFlagBits2KHR, String)] +showTablePipelineCreateFlagBits2KHR = + [ + ( PIPELINE_CREATE_2_DISABLE_OPTIMIZATION_BIT_KHR + , "DISABLE_OPTIMIZATION_BIT_KHR" + ) + , + ( PIPELINE_CREATE_2_ALLOW_DERIVATIVES_BIT_KHR + , "ALLOW_DERIVATIVES_BIT_KHR" + ) + , + ( PIPELINE_CREATE_2_DERIVATIVE_BIT_KHR + , "DERIVATIVE_BIT_KHR" + ) + , + ( PIPELINE_CREATE_2_DESCRIPTOR_BUFFER_BIT_EXT + , "DESCRIPTOR_BUFFER_BIT_EXT" + ) + , + ( PIPELINE_CREATE_2_RAY_TRACING_DISPLACEMENT_MICROMAP_BIT_NV + , "RAY_TRACING_DISPLACEMENT_MICROMAP_BIT_NV" + ) + , + ( PIPELINE_CREATE_2_PROTECTED_ACCESS_ONLY_BIT_EXT + , "PROTECTED_ACCESS_ONLY_BIT_EXT" + ) + , + ( PIPELINE_CREATE_2_NO_PROTECTED_ACCESS_BIT_EXT + , "NO_PROTECTED_ACCESS_BIT_EXT" + ) + , + ( PIPELINE_CREATE_2_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT + , "DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT" + ) + , + ( PIPELINE_CREATE_2_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT + , "COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT" + ) + , + ( PIPELINE_CREATE_2_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT + , "RAY_TRACING_OPACITY_MICROMAP_BIT_EXT" + ) + , + ( PIPELINE_CREATE_2_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT + , "RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT" + ) + , + ( PIPELINE_CREATE_2_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR + , "RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR" + ) + , + ( PIPELINE_CREATE_2_RAY_TRACING_ALLOW_MOTION_BIT_NV + , "RAY_TRACING_ALLOW_MOTION_BIT_NV" + ) + , + ( PIPELINE_CREATE_2_INDIRECT_BINDABLE_BIT_NV + , "INDIRECT_BINDABLE_BIT_NV" + ) + , + ( PIPELINE_CREATE_2_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR + , "RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR" + ) + , + ( PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR + , "RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR" + ) + , + ( PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR + , "RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR" + ) + , + ( PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR + , "RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR" + ) + , + ( PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR + , "RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR" + ) + , + ( PIPELINE_CREATE_2_RAY_TRACING_SKIP_AABBS_BIT_KHR + , "RAY_TRACING_SKIP_AABBS_BIT_KHR" + ) + , + ( PIPELINE_CREATE_2_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR + , "RAY_TRACING_SKIP_TRIANGLES_BIT_KHR" + ) + , + ( PIPELINE_CREATE_2_LIBRARY_BIT_KHR + , "LIBRARY_BIT_KHR" + ) + , + ( PIPELINE_CREATE_2_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT + , "RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT" + ) + , + ( PIPELINE_CREATE_2_LINK_TIME_OPTIMIZATION_BIT_EXT + , "LINK_TIME_OPTIMIZATION_BIT_EXT" + ) + , + ( PIPELINE_CREATE_2_EARLY_RETURN_ON_FAILURE_BIT_KHR + , "EARLY_RETURN_ON_FAILURE_BIT_KHR" + ) + , + ( PIPELINE_CREATE_2_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_KHR + , "FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_KHR" + ) + , + ( PIPELINE_CREATE_2_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR + , "CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR" + ) + , + ( PIPELINE_CREATE_2_CAPTURE_STATISTICS_BIT_KHR + , "CAPTURE_STATISTICS_BIT_KHR" + ) + , + ( PIPELINE_CREATE_2_DEFER_COMPILE_BIT_NV + , "DEFER_COMPILE_BIT_NV" + ) + , + ( PIPELINE_CREATE_2_DISPATCH_BASE_BIT_KHR + , "DISPATCH_BASE_BIT_KHR" + ) + , + ( PIPELINE_CREATE_2_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR + , "VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR" + ) + ] + +instance Show PipelineCreateFlagBits2KHR where + showsPrec = + enumShowsPrec + enumPrefixPipelineCreateFlagBits2KHR + showTablePipelineCreateFlagBits2KHR + conNamePipelineCreateFlagBits2KHR + (\(PipelineCreateFlagBits2KHR x) -> x) + (\x -> showString "0x" . showHex x) + +instance Read PipelineCreateFlagBits2KHR where + readPrec = + enumReadPrec + enumPrefixPipelineCreateFlagBits2KHR + showTablePipelineCreateFlagBits2KHR + conNamePipelineCreateFlagBits2KHR + PipelineCreateFlagBits2KHR + +type KHR_MAINTENANCE_5_SPEC_VERSION = 1 + +-- No documentation found for TopLevel "VK_KHR_MAINTENANCE_5_SPEC_VERSION" +pattern KHR_MAINTENANCE_5_SPEC_VERSION :: forall a . Integral a => a +pattern KHR_MAINTENANCE_5_SPEC_VERSION = 1 + + +type KHR_MAINTENANCE_5_EXTENSION_NAME = "VK_KHR_maintenance5" + +-- No documentation found for TopLevel "VK_KHR_MAINTENANCE_5_EXTENSION_NAME" +pattern KHR_MAINTENANCE_5_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a +pattern KHR_MAINTENANCE_5_EXTENSION_NAME = "VK_KHR_maintenance5" + diff --git a/src/Vulkan/Extensions/VK_KHR_maintenance5.hs-boot b/src/Vulkan/Extensions/VK_KHR_maintenance5.hs-boot new file mode 100644 index 000000000..46e53c354 --- /dev/null +++ b/src/Vulkan/Extensions/VK_KHR_maintenance5.hs-boot @@ -0,0 +1,592 @@ +{-# language CPP #-} +-- | = Name +-- +-- VK_KHR_maintenance5 - device extension +-- +-- == VK_KHR_maintenance5 +-- +-- [__Name String__] +-- @VK_KHR_maintenance5@ +-- +-- [__Extension Type__] +-- Device extension +-- +-- [__Registered Extension Number__] +-- 471 +-- +-- [__Revision__] +-- 1 +-- +-- [__Ratification Status__] +-- Ratified +-- +-- [__Extension and Version Dependencies__] +-- +-- and +-- +-- +-- [__Contact__] +-- +-- - Stu Smith +-- +-- +-- [__Extension Proposal__] +-- +-- +-- == Other Extension Metadata +-- +-- [__Last Modified Date__] +-- 2023-05-02 +-- +-- [__Interactions and External Dependencies__; __Contributors__] +-- +-- - Stu Smith, AMD +-- +-- - Tobias Hector, AMD +-- +-- - Shahbaz Youssefi, Google +-- +-- - Slawomir Cygan, Intel +-- +-- - Lionel Landwerlin, Intel +-- +-- - James Fitzpatrick, Imagination Technologies +-- +-- - Andrew Garrard, Imagination Technologies +-- +-- - Ralph Potter, Samsung +-- +-- - Pan Gao, Huawei +-- +-- - Jan-Harald Fredriksen, ARM +-- +-- - Jon Leech, Khronos +-- +-- - Mike Blumenkrantz, Valve +-- +-- == Description +-- +-- @VK_KHR_maintenance5@ adds a collection of minor features, none of which +-- would warrant an entire extension of their own. +-- +-- The new features are as follows: +-- +-- - A new 'Vulkan.Core10.Enums.Format.FORMAT_A1B5G5R5_UNORM_PACK16_KHR' +-- format +-- +-- - A new 'Vulkan.Core10.Enums.Format.FORMAT_A8_UNORM_KHR' format +-- +-- - A property to indicate that multisample coverage operations are +-- performed after sample counting in EarlyFragmentTests mode +-- +-- - Relax VkBufferView creation requirements by allowing subsets of the +-- associated VkBuffer usage using 'BufferUsageFlags2CreateInfoKHR' +-- +-- - A new entry point 'cmdBindIndexBuffer2KHR', allowing a range of +-- memory to be bound as an index buffer +-- +-- - 'Vulkan.Core10.DeviceInitialization.getDeviceProcAddr' must return +-- @NULL@ for supported core functions beyond the version requested by +-- the application. +-- +-- - A property to indicate that the sample mask test is performed after +-- sample counting in EarlyFragmentTests mode +-- +-- - 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2' +-- now supports using 'Vulkan.Core10.APIConstants.WHOLE_SIZE' in the +-- @pSizes@ parameter. +-- +-- - A default size of 1.0 is used if @PointSize@ is not written +-- +-- - Shader modules are deprecated - applications can now pass +-- 'Vulkan.Core10.Shader.ShaderModuleCreateInfo' as a chained struct to +-- pipeline creation via +-- 'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo' +-- +-- - A function 'getRenderingAreaGranularityKHR' to query the optimal +-- render area for a dynamic rendering instance. +-- +-- - A property to indicate that depth\/stencil texturing operations with +-- 'Vulkan.Core10.Enums.ComponentSwizzle.COMPONENT_SWIZZLE_ONE' have +-- defined behavior +-- +-- - Add 'getImageSubresourceLayout2KHR' and a new function +-- 'getDeviceImageSubresourceLayoutKHR' to allow the application to +-- query the image memory layout without having to create an image +-- object and query it. +-- +-- - Allow 'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS' as the +-- @layerCount@ member of +-- 'Vulkan.Core10.CommandBufferBuilding.ImageSubresourceLayers' +-- +-- - Adds stronger guarantees for propagation of +-- 'Vulkan.Core10.Enums.Result.ERROR_DEVICE_LOST' return values +-- +-- - A property to indicate whether @PointSize@ controls the final +-- rasterization of polygons if +-- +-- is 'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_POINT' +-- +-- - Two properties to indicate the non-strict line rasterization +-- algorithm used +-- +-- - Two new flags words 'PipelineCreateFlagBits2KHR' and +-- 'Vulkan.Extensions.VK_AMDX_shader_enqueue.BufferUsageFlagBits2KHR' +-- +-- - Physical-device-level functions can now be called with any value in +-- the valid range for a type beyond the defined enumerants, such that +-- applications can avoid checking individual features, extensions, or +-- versions before querying supported properties of a particular +-- enumerant. +-- +-- - Clarification that copies between images of any type are allowed, +-- treating 1D images as 2D images with a height of 1. +-- +-- == New Commands +-- +-- - 'cmdBindIndexBuffer2KHR' +-- +-- - 'getDeviceImageSubresourceLayoutKHR' +-- +-- - 'getImageSubresourceLayout2KHR' +-- +-- - 'getRenderingAreaGranularityKHR' +-- +-- == New Structures +-- +-- - 'DeviceImageSubresourceInfoKHR' +-- +-- - 'ImageSubresource2KHR' +-- +-- - 'RenderingAreaInfoKHR' +-- +-- - 'SubresourceLayout2KHR' +-- +-- - Extending 'Vulkan.Core10.BufferView.BufferViewCreateInfo', +-- 'Vulkan.Core10.Buffer.BufferCreateInfo', +-- 'Vulkan.Core11.Promoted_From_VK_KHR_external_memory_capabilities.PhysicalDeviceExternalBufferInfo', +-- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.DescriptorBufferBindingInfoEXT': +-- +-- - 'BufferUsageFlags2CreateInfoKHR' +-- +-- - Extending 'Vulkan.Core10.Pipeline.ComputePipelineCreateInfo', +-- 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo', +-- 'Vulkan.Extensions.VK_NV_ray_tracing.RayTracingPipelineCreateInfoNV', +-- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.RayTracingPipelineCreateInfoKHR': +-- +-- - 'PipelineCreateFlags2CreateInfoKHR' +-- +-- - Extending +-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2', +-- 'Vulkan.Core10.Device.DeviceCreateInfo': +-- +-- - 'PhysicalDeviceMaintenance5FeaturesKHR' +-- +-- - Extending +-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2': +-- +-- - 'PhysicalDeviceMaintenance5PropertiesKHR' +-- +-- == New Enums +-- +-- - 'Vulkan.Extensions.VK_AMDX_shader_enqueue.BufferUsageFlagBits2KHR' +-- +-- - 'PipelineCreateFlagBits2KHR' +-- +-- == New Bitmasks +-- +-- - 'Vulkan.Extensions.VK_AMDX_shader_enqueue.BufferUsageFlags2KHR' +-- +-- - 'PipelineCreateFlags2KHR' +-- +-- == New Enum Constants +-- +-- - 'KHR_MAINTENANCE_5_EXTENSION_NAME' +-- +-- - 'KHR_MAINTENANCE_5_SPEC_VERSION' +-- +-- - Extending 'Vulkan.Core10.Enums.Format.Format': +-- +-- - 'Vulkan.Core10.Enums.Format.FORMAT_A1B5G5R5_UNORM_PACK16_KHR' +-- +-- - 'Vulkan.Core10.Enums.Format.FORMAT_A8_UNORM_KHR' +-- +-- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType': +-- +-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_BUFFER_USAGE_FLAGS_2_CREATE_INFO_KHR' +-- +-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_DEVICE_IMAGE_SUBRESOURCE_INFO_KHR' +-- +-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_KHR' +-- +-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_FEATURES_KHR' +-- +-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_PROPERTIES_KHR' +-- +-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PIPELINE_CREATE_FLAGS_2_CREATE_INFO_KHR' +-- +-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_RENDERING_AREA_INFO_KHR' +-- +-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_KHR' +-- +-- If +-- +-- is supported: +-- +-- - Extending 'PipelineCreateFlagBits2KHR': +-- +-- - 'PIPELINE_CREATE_2_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT' +-- +-- - 'PIPELINE_CREATE_2_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT' +-- +-- If +-- +-- is supported: +-- +-- - Extending +-- 'Vulkan.Extensions.VK_AMDX_shader_enqueue.BufferUsageFlagBits2KHR': +-- +-- - 'Vulkan.Extensions.VK_AMDX_shader_enqueue.BUFFER_USAGE_2_CONDITIONAL_RENDERING_BIT_EXT' +-- +-- If +-- +-- is supported: +-- +-- - Extending +-- 'Vulkan.Extensions.VK_AMDX_shader_enqueue.BufferUsageFlagBits2KHR': +-- +-- - 'Vulkan.Extensions.VK_AMDX_shader_enqueue.BUFFER_USAGE_2_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT' +-- +-- - 'Vulkan.Extensions.VK_AMDX_shader_enqueue.BUFFER_USAGE_2_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT' +-- +-- - 'Vulkan.Extensions.VK_AMDX_shader_enqueue.BUFFER_USAGE_2_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT' +-- +-- - Extending 'PipelineCreateFlagBits2KHR': +-- +-- - 'PIPELINE_CREATE_2_DESCRIPTOR_BUFFER_BIT_EXT' +-- +-- If +-- +-- is supported: +-- +-- - Extending 'PipelineCreateFlagBits2KHR': +-- +-- - 'PIPELINE_CREATE_2_LINK_TIME_OPTIMIZATION_BIT_EXT' +-- +-- - 'PIPELINE_CREATE_2_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT' +-- +-- If +-- +-- is supported: +-- +-- - Extending +-- 'Vulkan.Extensions.VK_AMDX_shader_enqueue.BufferUsageFlagBits2KHR': +-- +-- - 'Vulkan.Extensions.VK_AMDX_shader_enqueue.BUFFER_USAGE_2_MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT' +-- +-- - 'Vulkan.Extensions.VK_AMDX_shader_enqueue.BUFFER_USAGE_2_MICROMAP_STORAGE_BIT_EXT' +-- +-- - Extending 'PipelineCreateFlagBits2KHR': +-- +-- - 'PIPELINE_CREATE_2_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT' +-- +-- If +-- +-- is supported: +-- +-- - Extending 'PipelineCreateFlagBits2KHR': +-- +-- - 'PIPELINE_CREATE_2_NO_PROTECTED_ACCESS_BIT_EXT' +-- +-- - 'PIPELINE_CREATE_2_PROTECTED_ACCESS_ONLY_BIT_EXT' +-- +-- If +-- +-- is supported: +-- +-- - Extending +-- 'Vulkan.Extensions.VK_AMDX_shader_enqueue.BufferUsageFlagBits2KHR': +-- +-- - 'Vulkan.Extensions.VK_AMDX_shader_enqueue.BUFFER_USAGE_2_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT' +-- +-- - 'Vulkan.Extensions.VK_AMDX_shader_enqueue.BUFFER_USAGE_2_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT' +-- +-- If +-- +-- is supported: +-- +-- - Extending +-- 'Vulkan.Extensions.VK_AMDX_shader_enqueue.BufferUsageFlagBits2KHR': +-- +-- - 'Vulkan.Extensions.VK_AMDX_shader_enqueue.BUFFER_USAGE_2_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR' +-- +-- - 'Vulkan.Extensions.VK_AMDX_shader_enqueue.BUFFER_USAGE_2_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR' +-- +-- If +-- +-- and +-- +-- is supported: +-- +-- - Extending 'PipelineCreateFlagBits2KHR': +-- +-- - 'PIPELINE_CREATE_2_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT' +-- +-- If +-- +-- and +-- +-- is supported: +-- +-- - Extending 'PipelineCreateFlagBits2KHR': +-- +-- - 'PIPELINE_CREATE_2_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR' +-- +-- If +-- +-- is supported: +-- +-- - Extending 'PipelineCreateFlagBits2KHR': +-- +-- - 'PIPELINE_CREATE_2_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR' +-- +-- - 'PIPELINE_CREATE_2_CAPTURE_STATISTICS_BIT_KHR' +-- +-- If +-- +-- is supported: +-- +-- - Extending 'PipelineCreateFlagBits2KHR': +-- +-- - 'PIPELINE_CREATE_2_LIBRARY_BIT_KHR' +-- +-- If +-- +-- is supported: +-- +-- - Extending +-- 'Vulkan.Extensions.VK_AMDX_shader_enqueue.BufferUsageFlagBits2KHR': +-- +-- - 'Vulkan.Extensions.VK_AMDX_shader_enqueue.BUFFER_USAGE_2_SHADER_BINDING_TABLE_BIT_KHR' +-- +-- - Extending 'PipelineCreateFlagBits2KHR': +-- +-- - 'PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR' +-- +-- - 'PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR' +-- +-- - 'PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR' +-- +-- - 'PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR' +-- +-- - 'PIPELINE_CREATE_2_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR' +-- +-- - 'PIPELINE_CREATE_2_RAY_TRACING_SKIP_AABBS_BIT_KHR' +-- +-- - 'PIPELINE_CREATE_2_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR' +-- +-- If +-- +-- is supported: +-- +-- - Extending +-- 'Vulkan.Extensions.VK_AMDX_shader_enqueue.BufferUsageFlagBits2KHR': +-- +-- - 'Vulkan.Extensions.VK_AMDX_shader_enqueue.BUFFER_USAGE_2_VIDEO_DECODE_DST_BIT_KHR' +-- +-- - 'Vulkan.Extensions.VK_AMDX_shader_enqueue.BUFFER_USAGE_2_VIDEO_DECODE_SRC_BIT_KHR' +-- +-- If +-- +-- is supported: +-- +-- - Extending +-- 'Vulkan.Extensions.VK_AMDX_shader_enqueue.BufferUsageFlagBits2KHR': +-- +-- - 'Vulkan.Extensions.VK_AMDX_shader_enqueue.BUFFER_USAGE_2_VIDEO_ENCODE_DST_BIT_KHR' +-- +-- - 'Vulkan.Extensions.VK_AMDX_shader_enqueue.BUFFER_USAGE_2_VIDEO_ENCODE_SRC_BIT_KHR' +-- +-- If +-- +-- is supported: +-- +-- - Extending 'PipelineCreateFlagBits2KHR': +-- +-- - 'PIPELINE_CREATE_2_INDIRECT_BINDABLE_BIT_NV' +-- +-- If +-- +-- is supported: +-- +-- - Extending 'PipelineCreateFlagBits2KHR': +-- +-- - 'PIPELINE_CREATE_2_RAY_TRACING_DISPLACEMENT_MICROMAP_BIT_NV' +-- +-- If +-- +-- is supported: +-- +-- - Extending +-- 'Vulkan.Extensions.VK_AMDX_shader_enqueue.BufferUsageFlagBits2KHR': +-- +-- - 'BUFFER_USAGE_2_RAY_TRACING_BIT_NV' +-- +-- - Extending 'PipelineCreateFlagBits2KHR': +-- +-- - 'PIPELINE_CREATE_2_DEFER_COMPILE_BIT_NV' +-- +-- If +-- +-- is supported: +-- +-- - Extending 'PipelineCreateFlagBits2KHR': +-- +-- - 'PIPELINE_CREATE_2_RAY_TRACING_ALLOW_MOTION_BIT_NV' +-- +-- If +-- +-- or +-- +-- is supported: +-- +-- - Extending 'PipelineCreateFlagBits2KHR': +-- +-- - 'PIPELINE_CREATE_2_DISPATCH_BASE_BIT_KHR' +-- +-- - 'PIPELINE_CREATE_2_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR' +-- +-- If +-- +-- or +-- +-- or +-- +-- is supported: +-- +-- - Extending +-- 'Vulkan.Extensions.VK_AMDX_shader_enqueue.BufferUsageFlagBits2KHR': +-- +-- - 'Vulkan.Extensions.VK_AMDX_shader_enqueue.BUFFER_USAGE_2_SHADER_DEVICE_ADDRESS_BIT_KHR' +-- +-- If +-- +-- or +-- +-- is supported: +-- +-- - Extending 'PipelineCreateFlagBits2KHR': +-- +-- - 'PIPELINE_CREATE_2_EARLY_RETURN_ON_FAILURE_BIT_KHR' +-- +-- - 'PIPELINE_CREATE_2_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_KHR' +-- +-- == Issues +-- +-- None. +-- +-- == Version History +-- +-- - Revision 1, 2022-12-12 (Stu Smith) +-- +-- - Initial revision +-- +-- == See Also +-- +-- 'DeviceImageSubresourceInfoKHR', 'ImageSubresource2KHR', +-- 'PhysicalDeviceMaintenance5FeaturesKHR', +-- 'PhysicalDeviceMaintenance5PropertiesKHR', 'RenderingAreaInfoKHR', +-- 'SubresourceLayout2KHR', 'cmdBindIndexBuffer2KHR', +-- 'getDeviceImageSubresourceLayoutKHR', 'getImageSubresourceLayout2KHR', +-- 'getRenderingAreaGranularityKHR' +-- +-- == Document Notes +-- +-- For more information, see the +-- +-- +-- This page is a generated document. Fixes and changes should be made to +-- the generator scripts, not directly. +module Vulkan.Extensions.VK_KHR_maintenance5 ( BufferUsageFlags2CreateInfoKHR + , DeviceImageSubresourceInfoKHR + , ImageSubresource2KHR + , PhysicalDeviceMaintenance5FeaturesKHR + , PhysicalDeviceMaintenance5PropertiesKHR + , PipelineCreateFlags2CreateInfoKHR + , RenderingAreaInfoKHR + , SubresourceLayout2KHR + ) where + +import Vulkan.CStruct (FromCStruct) +import Vulkan.CStruct (ToCStruct) +import Data.Kind (Type) +import {-# SOURCE #-} Vulkan.CStruct.Extends (Chain) +import {-# SOURCE #-} Vulkan.CStruct.Extends (Extendss) +import {-# SOURCE #-} Vulkan.CStruct.Extends (PeekChain) +import {-# SOURCE #-} Vulkan.CStruct.Extends (PokeChain) +data BufferUsageFlags2CreateInfoKHR + +instance ToCStruct BufferUsageFlags2CreateInfoKHR +instance Show BufferUsageFlags2CreateInfoKHR + +instance FromCStruct BufferUsageFlags2CreateInfoKHR + + +data DeviceImageSubresourceInfoKHR + +instance ToCStruct DeviceImageSubresourceInfoKHR +instance Show DeviceImageSubresourceInfoKHR + +instance FromCStruct DeviceImageSubresourceInfoKHR + + +data ImageSubresource2KHR + +instance ToCStruct ImageSubresource2KHR +instance Show ImageSubresource2KHR + +instance FromCStruct ImageSubresource2KHR + + +data PhysicalDeviceMaintenance5FeaturesKHR + +instance ToCStruct PhysicalDeviceMaintenance5FeaturesKHR +instance Show PhysicalDeviceMaintenance5FeaturesKHR + +instance FromCStruct PhysicalDeviceMaintenance5FeaturesKHR + + +data PhysicalDeviceMaintenance5PropertiesKHR + +instance ToCStruct PhysicalDeviceMaintenance5PropertiesKHR +instance Show PhysicalDeviceMaintenance5PropertiesKHR + +instance FromCStruct PhysicalDeviceMaintenance5PropertiesKHR + + +data PipelineCreateFlags2CreateInfoKHR + +instance ToCStruct PipelineCreateFlags2CreateInfoKHR +instance Show PipelineCreateFlags2CreateInfoKHR + +instance FromCStruct PipelineCreateFlags2CreateInfoKHR + + +data RenderingAreaInfoKHR + +instance ToCStruct RenderingAreaInfoKHR +instance Show RenderingAreaInfoKHR + +instance FromCStruct RenderingAreaInfoKHR + + +type role SubresourceLayout2KHR nominal +data SubresourceLayout2KHR (es :: [Type]) + +instance ( Extendss SubresourceLayout2KHR es + , PokeChain es ) => ToCStruct (SubresourceLayout2KHR es) +instance Show (Chain es) => Show (SubresourceLayout2KHR es) + +instance ( Extendss SubresourceLayout2KHR es + , PeekChain es ) => FromCStruct (SubresourceLayout2KHR es) + diff --git a/src/Vulkan/Extensions/VK_KHR_map_memory2.hs b/src/Vulkan/Extensions/VK_KHR_map_memory2.hs index 58f99a6dc..82e2162ea 100644 --- a/src/Vulkan/Extensions/VK_KHR_map_memory2.hs +++ b/src/Vulkan/Extensions/VK_KHR_map_memory2.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Ratified +-- -- [__Extension and Version Dependencies__; __Contact__] -- -- - Faith Ekstrand @@ -43,8 +46,8 @@ -- == Description -- -- This extension provides extensible versions of the Vulkan memory map and --- unmap entrypoints. The new entrypoints are functionally identical to the --- core entrypoints, except that their parameters are specified using +-- unmap entry points. The new entry points are functionally identical to +-- the core entry points, except that their parameters are specified using -- extensible structures that can be used to pass extension-specific -- information. -- diff --git a/src/Vulkan/Extensions/VK_KHR_map_memory2.hs-boot b/src/Vulkan/Extensions/VK_KHR_map_memory2.hs-boot index 6cad5e30b..2e529a662 100644 --- a/src/Vulkan/Extensions/VK_KHR_map_memory2.hs-boot +++ b/src/Vulkan/Extensions/VK_KHR_map_memory2.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Ratified +-- -- [__Extension and Version Dependencies__; __Contact__] -- -- - Faith Ekstrand @@ -43,8 +46,8 @@ -- == Description -- -- This extension provides extensible versions of the Vulkan memory map and --- unmap entrypoints. The new entrypoints are functionally identical to the --- core entrypoints, except that their parameters are specified using +-- unmap entry points. The new entry points are functionally identical to +-- the core entry points, except that their parameters are specified using -- extensible structures that can be used to pass extension-specific -- information. -- diff --git a/src/Vulkan/Extensions/VK_KHR_multiview.hs b/src/Vulkan/Extensions/VK_KHR_multiview.hs index 99e1835df..2f233bd66 100644 --- a/src/Vulkan/Extensions/VK_KHR_multiview.hs +++ b/src/Vulkan/Extensions/VK_KHR_multiview.hs @@ -17,10 +17,13 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Ratified +-- -- [__Extension and Version Dependencies__] -- -- --- [__Deprecation state__] +-- [__Deprecation State__] -- -- - /Promoted/ to -- diff --git a/src/Vulkan/Extensions/VK_KHR_performance_query.hs b/src/Vulkan/Extensions/VK_KHR_performance_query.hs index 7e725d789..1242c154f 100644 --- a/src/Vulkan/Extensions/VK_KHR_performance_query.hs +++ b/src/Vulkan/Extensions/VK_KHR_performance_query.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Ratified +-- -- [__Extension and Version Dependencies__] -- -- or @@ -278,17 +281,17 @@ -- > VkDevice device; -- > -- > VkQueryPoolPerformanceCreateInfoKHR performanceQueryCreateInfo = { --- > VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR, --- > NULL, +-- > .sType = VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR, +-- > .pNext = NULL, -- > -- > // Specify the queue family that this performance query is performed on --- > queueFamilyIndex, +-- > .queueFamilyIndex = queueFamilyIndex, -- > -- > // The number of counters to enable --- > enabledCounterCount, +-- > .counterIndexCount = enabledCounterCount, -- > -- > // The array of indices of counters to enable --- > enabledCounters +-- > .pCounterIndices = enabledCounters -- > }; -- > -- > @@ -301,16 +304,13 @@ -- > &numPasses); -- > -- > VkQueryPoolCreateInfo queryPoolCreateInfo = { --- > VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO, --- > &performanceQueryCreateInfo, --- > 0, --- > +-- > .sType = VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO, +-- > .pNext = &performanceQueryCreateInfo, +-- > .flags = 0, -- > // Using our new query type here --- > VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR, --- > --- > 1, --- > --- > 0 +-- > .queryType = VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR, +-- > .queryCount = 1, +-- > .pipelineStatistics = 0 -- > }; -- > -- > VkQueryPool queryPool; @@ -330,17 +330,17 @@ -- > VkCommandBuffer commandBuffer; -- > -- > VkCommandBufferBeginInfo commandBufferBeginInfo = { --- > VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO, --- > NULL, --- > 0, --- > NULL +-- > .sType = VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO, +-- > .pNext = NULL, +-- > .flags = 0, +-- > .pInheritanceInfo = NULL -- > }; -- > -- > VkAcquireProfilingLockInfoKHR lockInfo = { --- > VK_STRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHR, --- > NULL, --- > 0, --- > UINT64_MAX // Wait forever for the lock +-- > .sType = VK_STRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHR, +-- > .pNext = NULL, +-- > .flags = 0, +-- > .timeout = UINT64_MAX // Wait forever for the lock -- > }; -- > -- > // Acquire the profiling lock before we record command buffers @@ -423,7 +423,7 @@ -- > 1, -- > sizeof(VkPerformanceCounterResultKHR) * enabledCounterCount, -- > recordedCounters, --- > sizeof(VkPerformanceCounterResultKHR), +-- > sizeof(VkPerformanceCounterResultKHR) * enabledCounterCount, -- > NULL); -- > -- > // recordedCounters is filled with our counters, we will look at one for posterity diff --git a/src/Vulkan/Extensions/VK_KHR_performance_query.hs-boot b/src/Vulkan/Extensions/VK_KHR_performance_query.hs-boot index bd6f2d806..9660bc059 100644 --- a/src/Vulkan/Extensions/VK_KHR_performance_query.hs-boot +++ b/src/Vulkan/Extensions/VK_KHR_performance_query.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Ratified +-- -- [__Extension and Version Dependencies__] -- -- or @@ -278,17 +281,17 @@ -- > VkDevice device; -- > -- > VkQueryPoolPerformanceCreateInfoKHR performanceQueryCreateInfo = { --- > VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR, --- > NULL, +-- > .sType = VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR, +-- > .pNext = NULL, -- > -- > // Specify the queue family that this performance query is performed on --- > queueFamilyIndex, +-- > .queueFamilyIndex = queueFamilyIndex, -- > -- > // The number of counters to enable --- > enabledCounterCount, +-- > .counterIndexCount = enabledCounterCount, -- > -- > // The array of indices of counters to enable --- > enabledCounters +-- > .pCounterIndices = enabledCounters -- > }; -- > -- > @@ -301,16 +304,13 @@ -- > &numPasses); -- > -- > VkQueryPoolCreateInfo queryPoolCreateInfo = { --- > VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO, --- > &performanceQueryCreateInfo, --- > 0, --- > +-- > .sType = VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO, +-- > .pNext = &performanceQueryCreateInfo, +-- > .flags = 0, -- > // Using our new query type here --- > VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR, --- > --- > 1, --- > --- > 0 +-- > .queryType = VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR, +-- > .queryCount = 1, +-- > .pipelineStatistics = 0 -- > }; -- > -- > VkQueryPool queryPool; @@ -330,17 +330,17 @@ -- > VkCommandBuffer commandBuffer; -- > -- > VkCommandBufferBeginInfo commandBufferBeginInfo = { --- > VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO, --- > NULL, --- > 0, --- > NULL +-- > .sType = VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO, +-- > .pNext = NULL, +-- > .flags = 0, +-- > .pInheritanceInfo = NULL -- > }; -- > -- > VkAcquireProfilingLockInfoKHR lockInfo = { --- > VK_STRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHR, --- > NULL, --- > 0, --- > UINT64_MAX // Wait forever for the lock +-- > .sType = VK_STRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHR, +-- > .pNext = NULL, +-- > .flags = 0, +-- > .timeout = UINT64_MAX // Wait forever for the lock -- > }; -- > -- > // Acquire the profiling lock before we record command buffers @@ -423,7 +423,7 @@ -- > 1, -- > sizeof(VkPerformanceCounterResultKHR) * enabledCounterCount, -- > recordedCounters, --- > sizeof(VkPerformanceCounterResultKHR), +-- > sizeof(VkPerformanceCounterResultKHR) * enabledCounterCount, -- > NULL); -- > -- > // recordedCounters is filled with our counters, we will look at one for posterity diff --git a/src/Vulkan/Extensions/VK_KHR_pipeline_executable_properties.hs b/src/Vulkan/Extensions/VK_KHR_pipeline_executable_properties.hs index 9eba27328..129f09b6d 100644 --- a/src/Vulkan/Extensions/VK_KHR_pipeline_executable_properties.hs +++ b/src/Vulkan/Extensions/VK_KHR_pipeline_executable_properties.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Ratified +-- -- [__Extension and Version Dependencies__] -- -- @@ -71,7 +74,7 @@ -- properties and statistics about the different executables produced by -- the pipeline compilation process. This is intended to be used by -- debugging and performance tools to allow them to provide more detailed --- information to the user. Certain compile-time shader statistics provided +-- information to the user. Certain compile time shader statistics provided -- through this extension may be useful to developers for debugging or -- performance analysis. -- @@ -911,7 +914,7 @@ instance Zero PipelineExecutableInfoKHR where zero --- | VkPipelineExecutableStatisticKHR - Structure describing a compile-time +-- | VkPipelineExecutableStatisticKHR - Structure describing a compile time -- pipeline executable statistic -- -- == Valid Usage (Implicit) diff --git a/src/Vulkan/Extensions/VK_KHR_pipeline_executable_properties.hs-boot b/src/Vulkan/Extensions/VK_KHR_pipeline_executable_properties.hs-boot index 59208ddcf..2234a83d2 100644 --- a/src/Vulkan/Extensions/VK_KHR_pipeline_executable_properties.hs-boot +++ b/src/Vulkan/Extensions/VK_KHR_pipeline_executable_properties.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Ratified +-- -- [__Extension and Version Dependencies__] -- -- @@ -71,7 +74,7 @@ -- properties and statistics about the different executables produced by -- the pipeline compilation process. This is intended to be used by -- debugging and performance tools to allow them to provide more detailed --- information to the user. Certain compile-time shader statistics provided +-- information to the user. Certain compile time shader statistics provided -- through this extension may be useful to developers for debugging or -- performance analysis. -- diff --git a/src/Vulkan/Extensions/VK_KHR_pipeline_library.hs b/src/Vulkan/Extensions/VK_KHR_pipeline_library.hs index e7d052507..49a2932df 100644 --- a/src/Vulkan/Extensions/VK_KHR_pipeline_library.hs +++ b/src/Vulkan/Extensions/VK_KHR_pipeline_library.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Ratified +-- -- [__Extension and Version Dependencies__; __Contact__] -- -- - Christoph Kubisch @@ -174,6 +177,7 @@ import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PIPELINE_ -- = See Also -- -- , +-- 'Vulkan.Extensions.VK_AMDX_shader_enqueue.ExecutionGraphPipelineCreateInfoAMDX', -- 'Vulkan.Core10.Handles.Pipeline', -- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.RayTracingPipelineCreateInfoKHR', -- 'Vulkan.Core10.Enums.StructureType.StructureType' diff --git a/src/Vulkan/Extensions/VK_KHR_pipeline_library.hs-boot b/src/Vulkan/Extensions/VK_KHR_pipeline_library.hs-boot index 5195afc72..401cfd3e2 100644 --- a/src/Vulkan/Extensions/VK_KHR_pipeline_library.hs-boot +++ b/src/Vulkan/Extensions/VK_KHR_pipeline_library.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Ratified +-- -- [__Extension and Version Dependencies__; __Contact__] -- -- - Christoph Kubisch diff --git a/src/Vulkan/Extensions/VK_KHR_portability_enumeration.hs b/src/Vulkan/Extensions/VK_KHR_portability_enumeration.hs index 6b2e2c021..e9de25237 100644 --- a/src/Vulkan/Extensions/VK_KHR_portability_enumeration.hs +++ b/src/Vulkan/Extensions/VK_KHR_portability_enumeration.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Ratified +-- -- [__Extension and Version Dependencies__; __Contact__] -- -- - Charles Giessen diff --git a/src/Vulkan/Extensions/VK_KHR_portability_subset.hs b/src/Vulkan/Extensions/VK_KHR_portability_subset.hs index 1fac1b61b..fb3fd24d0 100644 --- a/src/Vulkan/Extensions/VK_KHR_portability_subset.hs +++ b/src/Vulkan/Extensions/VK_KHR_portability_subset.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Ratified +-- -- [__Extension and Version Dependencies__] -- -- @@ -59,7 +62,7 @@ -- -- == Description -- --- The \`VK_KHR_portability_subset extension allows a non-conformant Vulkan +-- 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. diff --git a/src/Vulkan/Extensions/VK_KHR_portability_subset.hs-boot b/src/Vulkan/Extensions/VK_KHR_portability_subset.hs-boot index f9978cac6..2053a55ac 100644 --- a/src/Vulkan/Extensions/VK_KHR_portability_subset.hs-boot +++ b/src/Vulkan/Extensions/VK_KHR_portability_subset.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Ratified +-- -- [__Extension and Version Dependencies__] -- -- @@ -59,7 +62,7 @@ -- -- == Description -- --- The \`VK_KHR_portability_subset extension allows a non-conformant Vulkan +-- 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. diff --git a/src/Vulkan/Extensions/VK_KHR_present_id.hs b/src/Vulkan/Extensions/VK_KHR_present_id.hs index 1310d85b0..130ae0c30 100644 --- a/src/Vulkan/Extensions/VK_KHR_present_id.hs +++ b/src/Vulkan/Extensions/VK_KHR_present_id.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Ratified +-- -- [__Extension and Version Dependencies__] -- -- and @@ -276,7 +279,7 @@ data PresentIdKHR = PresentIdKHR { -- | @swapchainCount@ is the number of swapchains being presented to the -- 'Vulkan.Extensions.VK_KHR_swapchain.queuePresentKHR' command. swapchainCount :: Word32 - , -- | @pPresentIds@ is @NULL@ or a pointer to an array of uint64_t with + , -- | @pPresentIds@ is @NULL@ or a pointer to an array of @uint64_t@ with -- @swapchainCount@ entries. If not @NULL@, each non-zero value in -- @pPresentIds@ specifies the present id to be associated with the -- presentation of the swapchain with the same index in the diff --git a/src/Vulkan/Extensions/VK_KHR_present_id.hs-boot b/src/Vulkan/Extensions/VK_KHR_present_id.hs-boot index 23ea5c92c..631780bf8 100644 --- a/src/Vulkan/Extensions/VK_KHR_present_id.hs-boot +++ b/src/Vulkan/Extensions/VK_KHR_present_id.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Ratified +-- -- [__Extension and Version Dependencies__] -- -- and diff --git a/src/Vulkan/Extensions/VK_KHR_present_wait.hs b/src/Vulkan/Extensions/VK_KHR_present_wait.hs index 599fa92c0..16d97a6e5 100644 --- a/src/Vulkan/Extensions/VK_KHR_present_wait.hs +++ b/src/Vulkan/Extensions/VK_KHR_present_wait.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Ratified +-- -- [__Extension and Version Dependencies__] -- -- and diff --git a/src/Vulkan/Extensions/VK_KHR_present_wait.hs-boot b/src/Vulkan/Extensions/VK_KHR_present_wait.hs-boot index 101c40aad..95dfaba8f 100644 --- a/src/Vulkan/Extensions/VK_KHR_present_wait.hs-boot +++ b/src/Vulkan/Extensions/VK_KHR_present_wait.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Ratified +-- -- [__Extension and Version Dependencies__] -- -- and diff --git a/src/Vulkan/Extensions/VK_KHR_push_descriptor.hs b/src/Vulkan/Extensions/VK_KHR_push_descriptor.hs index 1cbdab721..d6ba5b1ec 100644 --- a/src/Vulkan/Extensions/VK_KHR_push_descriptor.hs +++ b/src/Vulkan/Extensions/VK_KHR_push_descriptor.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 2 -- +-- [__Ratification Status__] +-- Ratified +-- -- [__Extension and Version Dependencies__] -- -- @@ -479,28 +482,28 @@ foreign import ccall -- > { -- > // binding to a single image descriptor -- > { --- > 0, // binding --- > 0, // dstArrayElement --- > 1, // descriptorCount --- > VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, // descriptorType --- > offsetof(AppDataStructure, imageInfo), // offset --- > 0 // stride is not required if descriptorCount is 1 +-- > .binding = 0, +-- > .dstArrayElement = 0, +-- > .descriptorCount = 1, +-- > .descriptorType = VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, +-- > .offset = offsetof(AppDataStructure, imageInfo), +-- > .stride = 0 // not required if descriptorCount is 1 -- > } -- > }; -- > -- > // create a descriptor update template for push descriptor set updates -- > const VkDescriptorUpdateTemplateCreateInfo createInfo = -- > { --- > VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO, // sType --- > NULL, // pNext --- > 0, // flags --- > 1, // descriptorUpdateEntryCount --- > descriptorUpdateTemplateEntries, // pDescriptorUpdateEntries --- > VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR, // templateType --- > 0, // descriptorSetLayout, ignored by given templateType --- > VK_PIPELINE_BIND_POINT_GRAPHICS, // pipelineBindPoint --- > myPipelineLayout, // pipelineLayout --- > 0, // set +-- > .sType = VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO, +-- > .pNext = NULL, +-- > .flags = 0, +-- > .descriptorUpdateEntryCount = 1, +-- > .pDescriptorUpdateEntries = descriptorUpdateTemplateEntries, +-- > .templateType = VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR, +-- > .descriptorSetLayout = 0, // ignored by given templateType +-- > .pipelineBindPoint = VK_PIPELINE_BIND_POINT_GRAPHICS, +-- > .pipelineLayout = myPipelineLayout, +-- > .set = 0, -- > }; -- > -- > VkDescriptorUpdateTemplate myDescriptorUpdateTemplate; diff --git a/src/Vulkan/Extensions/VK_KHR_push_descriptor.hs-boot b/src/Vulkan/Extensions/VK_KHR_push_descriptor.hs-boot index 0d9dc8e36..a9b2728a0 100644 --- a/src/Vulkan/Extensions/VK_KHR_push_descriptor.hs-boot +++ b/src/Vulkan/Extensions/VK_KHR_push_descriptor.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 2 -- +-- [__Ratification Status__] +-- Ratified +-- -- [__Extension and Version Dependencies__] -- -- diff --git a/src/Vulkan/Extensions/VK_KHR_ray_query.hs b/src/Vulkan/Extensions/VK_KHR_ray_query.hs index c503f1c18..306f3c4d2 100644 --- a/src/Vulkan/Extensions/VK_KHR_ray_query.hs +++ b/src/Vulkan/Extensions/VK_KHR_ray_query.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Ratified +-- -- [__Extension and Version Dependencies__] -- -- and diff --git a/src/Vulkan/Extensions/VK_KHR_ray_query.hs-boot b/src/Vulkan/Extensions/VK_KHR_ray_query.hs-boot index 4468a7c9f..3bbf9ad67 100644 --- a/src/Vulkan/Extensions/VK_KHR_ray_query.hs-boot +++ b/src/Vulkan/Extensions/VK_KHR_ray_query.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Ratified +-- -- [__Extension and Version Dependencies__] -- -- and diff --git a/src/Vulkan/Extensions/VK_KHR_ray_tracing_maintenance1.hs b/src/Vulkan/Extensions/VK_KHR_ray_tracing_maintenance1.hs index 5a926c1ba..9043f8ee6 100644 --- a/src/Vulkan/Extensions/VK_KHR_ray_tracing_maintenance1.hs +++ b/src/Vulkan/Extensions/VK_KHR_ray_tracing_maintenance1.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Ratified +-- -- [__Extension and Version Dependencies__] -- -- @@ -316,6 +319,16 @@ foreign import ccall -- /must/ contain -- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT' -- +-- - #VUID-vkCmdTraceRaysIndirect2KHR-None-02693# If the +-- +-- extension is not enabled and any 'Vulkan.Core10.Handles.ImageView' +-- is sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a +-- result of this command, it /must/ not have a +-- 'Vulkan.Core10.Enums.ImageViewType.ImageViewType' of +-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_3D', +-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE', or +-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE_ARRAY' +-- -- - #VUID-vkCmdTraceRaysIndirect2KHR-filterCubic-02694# Any -- 'Vulkan.Core10.Handles.ImageView' being sampled with -- 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a result of this @@ -341,6 +354,34 @@ foreign import ccall -- returned by -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceImageFormatProperties2' -- +-- - #VUID-vkCmdTraceRaysIndirect2KHR-cubicRangeClamp-09212# If the +-- +-- feature is not enabled, then any 'Vulkan.Core10.Handles.ImageView' +-- being sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as +-- a result of this command +-- +-- [/must/ not have a 'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo'] +-- @reductionMode@ equal to +-- 'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM' +-- +-- - #VUID-vkCmdTraceRaysIndirect2KHR-reductionMode-09213# Any +-- 'Vulkan.Core10.Handles.ImageView' being sampled with a +-- 'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo'::@reductionMode@ +-- equal to +-- 'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM' +-- as a result of this command /must/ sample with +-- 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' +-- +-- - #VUID-vkCmdTraceRaysIndirect2KHR-selectableCubicWeights-09214# If +-- the +-- +-- feature is not enabled, then any 'Vulkan.Core10.Handles.ImageView' +-- being sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as +-- a result of this command /must/ have +-- 'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.SamplerCubicWeightsCreateInfoQCOM'::@cubicWeights@ +-- equal to +-- 'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM' +-- -- - #VUID-vkCmdTraceRaysIndirect2KHR-flags-02696# Any -- 'Vulkan.Core10.Handles.Image' created with a -- 'Vulkan.Core10.Image.ImageCreateInfo'::@flags@ containing @@ -382,11 +423,9 @@ foreign import ccall -- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT' -- -- - #VUID-vkCmdTraceRaysIndirect2KHR-None-08600# For each set /n/ that --- is statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to --- the pipeline bind point used by this command, or by any of the --- 'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages --- corresponding to the pipeline bind point used by this command, a --- descriptor set /must/ have been bound to /n/ at the same pipeline +-- is statically used by +-- , +-- a descriptor set /must/ have been bound to /n/ at the same pipeline -- bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is -- compatible for set /n/, with the -- 'Vulkan.Core10.Handles.PipelineLayout' or @@ -396,12 +435,10 @@ foreign import ccall -- -- -- - #VUID-vkCmdTraceRaysIndirect2KHR-None-08601# For each push constant --- that is statically used by the 'Vulkan.Core10.Handles.Pipeline' --- bound to the pipeline bind point used by this command, or by any of --- the 'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages --- corresponding to the pipeline bind point used by this command, a --- push constant value /must/ have been set for the same pipeline bind --- point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is +-- that is statically used by +-- , +-- a push constant value /must/ have been set for the same pipeline +-- bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is -- compatible for push constants, with the -- 'Vulkan.Core10.Handles.PipelineLayout' or -- 'Vulkan.Core10.Handles.DescriptorSetLayout' and @@ -413,12 +450,10 @@ foreign import ccall -- - #VUID-vkCmdTraceRaysIndirect2KHR-maintenance4-08602# If the -- -- feature is not enabled, then for each push constant that is --- statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to the --- pipeline bind point used by this command, or by any of the --- 'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages --- corresponding to the pipeline bind point used by this command, a --- push constant value /must/ have been set for the same pipeline bind --- point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is +-- statically used by +-- , +-- a push constant value /must/ have been set for the same pipeline +-- bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is -- compatible for push constants, with the -- 'Vulkan.Core10.Handles.PipelineLayout' or -- 'Vulkan.Core10.Handles.DescriptorSetLayout' and @@ -581,34 +616,25 @@ foreign import ccall -- buffer as specified in the descriptor set bound to the same pipeline -- bind point -- --- - #VUID-vkCmdTraceRaysIndirect2KHR-commandBuffer-08614# If +-- - #VUID-vkCmdTraceRaysIndirect2KHR-commandBuffer-02707# If -- @commandBuffer@ is an unprotected command buffer and -- --- is not supported, any resource accessed by the --- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind --- point used by this command or any --- 'Vulkan.Extensions.Handles.ShaderEXT' object bound to a stage --- corresponding to the pipeline bind point used by this command /must/ --- not be a protected resource --- --- - #VUID-vkCmdTraceRaysIndirect2KHR-None-08615# If the --- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind --- point used by this command or any --- 'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding --- to the pipeline bind point used by this command accesses a --- 'Vulkan.Core10.Handles.Sampler' or 'Vulkan.Core10.Handles.ImageView' --- object that enables +-- is not supported, any resource accessed by +-- +-- /must/ not be a protected resource +-- +-- - #VUID-vkCmdTraceRaysIndirect2KHR-None-06550# If +-- +-- accesses a 'Vulkan.Core10.Handles.Sampler' or +-- 'Vulkan.Core10.Handles.ImageView' object that enables -- , -- that object /must/ only be used with @OpImageSample*@ or -- @OpImageSparseSample*@ instructions -- --- - #VUID-vkCmdTraceRaysIndirect2KHR-ConstOffset-08616# If the --- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind --- point used by this command or any --- 'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding --- to the pipeline bind point used by this command accesses a --- 'Vulkan.Core10.Handles.Sampler' or 'Vulkan.Core10.Handles.ImageView' --- object that enables +-- - #VUID-vkCmdTraceRaysIndirect2KHR-ConstOffset-06551# If +-- +-- accesses a 'Vulkan.Core10.Handles.Sampler' or +-- 'Vulkan.Core10.Handles.ImageView' object that enables -- , -- that object /must/ not use the @ConstOffset@ and @Offset@ operands -- @@ -620,17 +646,23 @@ foreign import ccall -- -- - #VUID-vkCmdTraceRaysIndirect2KHR-format-07753# If a -- 'Vulkan.Core10.Handles.ImageView' is accessed as a result of this --- command, then the image view’s @format@ /must/ match the numeric --- format from the @Sampled@ @Type@ operand of the @OpTypeImage@ as --- described in the SPIR-V Sampled Type column of the --- --- table --- --- - #VUID-vkCmdTraceRaysIndirect2KHR-None-04115# If a --- 'Vulkan.Core10.Handles.ImageView' is accessed using @OpImageWrite@ --- as a result of this command, then the @Type@ of the @Texel@ operand --- of that instruction /must/ have at least as many components as the --- image view’s format +-- command, then the +-- +-- of the image view’s @format@ and the @Sampled@ @Type@ operand of the +-- @OpTypeImage@ /must/ match +-- +-- - #VUID-vkCmdTraceRaysIndirect2KHR-OpImageWrite-08795# If a +-- 'Vulkan.Core10.Handles.ImageView' created with a format other than +-- 'Vulkan.Core10.Enums.Format.FORMAT_A8_UNORM_KHR' is accessed using +-- @OpImageWrite@ as a result of this command, then the @Type@ of the +-- @Texel@ operand of that instruction /must/ have at least as many +-- components as the image view’s format +-- +-- - #VUID-vkCmdTraceRaysIndirect2KHR-OpImageWrite-08796# If a +-- 'Vulkan.Core10.Handles.ImageView' created with the format +-- 'Vulkan.Core10.Enums.Format.FORMAT_A8_UNORM_KHR' is accessed using +-- @OpImageWrite@ as a result of this command, then the @Type@ of the +-- @Texel@ operand of that instruction /must/ have four components -- -- - #VUID-vkCmdTraceRaysIndirect2KHR-OpImageWrite-04469# If a -- 'Vulkan.Core10.Handles.BufferView' is accessed using @OpImageWrite@ @@ -734,6 +766,8 @@ foreign import ccall -- -- - #VUID-vkCmdTraceRaysIndirect2KHR-OpImageWeightedSampleQCOM-06977# If -- @OpImageWeightedSampleQCOM@, @OpImageBoxFilterQCOM@, +-- @OpImageBlockMatchWindowSSDQCOM@, @OpImageBlockMatchWindowSADQCOM@, +-- @OpImageBlockMatchGatherSSDQCOM@, @OpImageBlockMatchGatherSADQCOM@, -- @OpImageBlockMatchSSDQCOM@, or @OpImageBlockMatchSADQCOM@ uses a -- 'Vulkan.Core10.Handles.Sampler' as a result of this command, then -- the sampler /must/ have been created with @@ -741,12 +775,35 @@ foreign import ccall -- -- - #VUID-vkCmdTraceRaysIndirect2KHR-OpImageWeightedSampleQCOM-06978# If -- any command other than @OpImageWeightedSampleQCOM@, --- @OpImageBoxFilterQCOM@, @OpImageBlockMatchSSDQCOM@, or +-- @OpImageBoxFilterQCOM@, @OpImageBlockMatchWindowSSDQCOM@, +-- @OpImageBlockMatchWindowSADQCOM@, @OpImageBlockMatchGatherSSDQCOM@, +-- @OpImageBlockMatchGatherSADQCOM@, @OpImageBlockMatchSSDQCOM@, or -- @OpImageBlockMatchSADQCOM@ uses a 'Vulkan.Core10.Handles.Sampler' as -- a result of this command, then the sampler /must/ not have been -- created with -- 'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM' -- +-- - #VUID-vkCmdTraceRaysIndirect2KHR-OpImageBlockMatchWindow-09215# If a +-- @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@ +-- instruction is used to read from an +-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then +-- the image view’s +-- +-- /must/ contain +-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM' +-- +-- - #VUID-vkCmdTraceRaysIndirect2KHR-OpImageBlockMatchWindow-09216# If a +-- @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@ +-- instruction is used to read from an +-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then +-- the image view’s format /must/ be a single-component format. +-- +-- - #VUID-vkCmdTraceRaysIndirect2KHR-OpImageBlockMatchWindow-09217# If a +-- @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@ +-- read from a reference image as result of this command, then the +-- specified reference coordinates /must/ not fail +-- +-- -- - #VUID-vkCmdTraceRaysIndirect2KHR-None-07288# Any shader invocation -- executed by this command /must/ -- diff --git a/src/Vulkan/Extensions/VK_KHR_ray_tracing_maintenance1.hs-boot b/src/Vulkan/Extensions/VK_KHR_ray_tracing_maintenance1.hs-boot index 7a241f96a..852ddc12d 100644 --- a/src/Vulkan/Extensions/VK_KHR_ray_tracing_maintenance1.hs-boot +++ b/src/Vulkan/Extensions/VK_KHR_ray_tracing_maintenance1.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Ratified +-- -- [__Extension and Version Dependencies__] -- -- diff --git a/src/Vulkan/Extensions/VK_KHR_ray_tracing_pipeline.hs b/src/Vulkan/Extensions/VK_KHR_ray_tracing_pipeline.hs index 63a9be1f4..9a7fd5f37 100644 --- a/src/Vulkan/Extensions/VK_KHR_ray_tracing_pipeline.hs +++ b/src/Vulkan/Extensions/VK_KHR_ray_tracing_pipeline.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Ratified +-- -- [__Extension and Version Dependencies__] -- -- and @@ -848,6 +851,7 @@ import Vulkan.Core10.Handles (Pipeline(..)) import Vulkan.Core10.Handles (PipelineCache) import Vulkan.Core10.Handles (PipelineCache(..)) import Vulkan.Core10.Enums.PipelineCreateFlagBits (PipelineCreateFlags) +import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_maintenance5 (PipelineCreateFlags2CreateInfoKHR) import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_pipeline_creation_feedback (PipelineCreationFeedbackCreateInfo) import Vulkan.Core10.Pipeline (PipelineDynamicStateCreateInfo) import Vulkan.Core10.Handles (PipelineLayout) @@ -938,6 +942,16 @@ foreign import ccall -- /must/ contain -- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT' -- +-- - #VUID-vkCmdTraceRaysKHR-None-02693# If the +-- +-- extension is not enabled and any 'Vulkan.Core10.Handles.ImageView' +-- is sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a +-- result of this command, it /must/ not have a +-- 'Vulkan.Core10.Enums.ImageViewType.ImageViewType' of +-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_3D', +-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE', or +-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE_ARRAY' +-- -- - #VUID-vkCmdTraceRaysKHR-filterCubic-02694# Any -- 'Vulkan.Core10.Handles.ImageView' being sampled with -- 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a result of this @@ -963,6 +977,33 @@ foreign import ccall -- returned by -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceImageFormatProperties2' -- +-- - #VUID-vkCmdTraceRaysKHR-cubicRangeClamp-09212# If the +-- +-- feature is not enabled, then any 'Vulkan.Core10.Handles.ImageView' +-- being sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as +-- a result of this command +-- +-- [/must/ not have a 'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo'] +-- @reductionMode@ equal to +-- 'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM' +-- +-- - #VUID-vkCmdTraceRaysKHR-reductionMode-09213# Any +-- 'Vulkan.Core10.Handles.ImageView' being sampled with a +-- 'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo'::@reductionMode@ +-- equal to +-- 'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM' +-- as a result of this command /must/ sample with +-- 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' +-- +-- - #VUID-vkCmdTraceRaysKHR-selectableCubicWeights-09214# If the +-- +-- feature is not enabled, then any 'Vulkan.Core10.Handles.ImageView' +-- being sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as +-- a result of this command /must/ have +-- 'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.SamplerCubicWeightsCreateInfoQCOM'::@cubicWeights@ +-- equal to +-- 'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM' +-- -- - #VUID-vkCmdTraceRaysKHR-flags-02696# Any -- 'Vulkan.Core10.Handles.Image' created with a -- 'Vulkan.Core10.Image.ImageCreateInfo'::@flags@ containing @@ -1004,11 +1045,9 @@ foreign import ccall -- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT' -- -- - #VUID-vkCmdTraceRaysKHR-None-08600# For each set /n/ that is --- statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to the --- pipeline bind point used by this command, or by any of the --- 'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages --- corresponding to the pipeline bind point used by this command, a --- descriptor set /must/ have been bound to /n/ at the same pipeline +-- statically used by +-- , +-- a descriptor set /must/ have been bound to /n/ at the same pipeline -- bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is -- compatible for set /n/, with the -- 'Vulkan.Core10.Handles.PipelineLayout' or @@ -1018,12 +1057,10 @@ foreign import ccall -- -- -- - #VUID-vkCmdTraceRaysKHR-None-08601# For each push constant that is --- statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to the --- pipeline bind point used by this command, or by any of the --- 'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages --- corresponding to the pipeline bind point used by this command, a --- push constant value /must/ have been set for the same pipeline bind --- point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is +-- statically used by +-- , +-- a push constant value /must/ have been set for the same pipeline +-- bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is -- compatible for push constants, with the -- 'Vulkan.Core10.Handles.PipelineLayout' or -- 'Vulkan.Core10.Handles.DescriptorSetLayout' and @@ -1035,12 +1072,10 @@ foreign import ccall -- - #VUID-vkCmdTraceRaysKHR-maintenance4-08602# If the -- -- feature is not enabled, then for each push constant that is --- statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to the --- pipeline bind point used by this command, or by any of the --- 'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages --- corresponding to the pipeline bind point used by this command, a --- push constant value /must/ have been set for the same pipeline bind --- point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is +-- statically used by +-- , +-- a push constant value /must/ have been set for the same pipeline +-- bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is -- compatible for push constants, with the -- 'Vulkan.Core10.Handles.PipelineLayout' or -- 'Vulkan.Core10.Handles.DescriptorSetLayout' and @@ -1201,34 +1236,25 @@ foreign import ccall -- buffer as specified in the descriptor set bound to the same pipeline -- bind point -- --- - #VUID-vkCmdTraceRaysKHR-commandBuffer-08614# If @commandBuffer@ is +-- - #VUID-vkCmdTraceRaysKHR-commandBuffer-02707# If @commandBuffer@ is -- an unprotected command buffer and -- --- is not supported, any resource accessed by the --- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind --- point used by this command or any --- 'Vulkan.Extensions.Handles.ShaderEXT' object bound to a stage --- corresponding to the pipeline bind point used by this command /must/ --- not be a protected resource --- --- - #VUID-vkCmdTraceRaysKHR-None-08615# If the --- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind --- point used by this command or any --- 'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding --- to the pipeline bind point used by this command accesses a --- 'Vulkan.Core10.Handles.Sampler' or 'Vulkan.Core10.Handles.ImageView' --- object that enables +-- is not supported, any resource accessed by +-- +-- /must/ not be a protected resource +-- +-- - #VUID-vkCmdTraceRaysKHR-None-06550# If +-- +-- accesses a 'Vulkan.Core10.Handles.Sampler' or +-- 'Vulkan.Core10.Handles.ImageView' object that enables -- , -- that object /must/ only be used with @OpImageSample*@ or -- @OpImageSparseSample*@ instructions -- --- - #VUID-vkCmdTraceRaysKHR-ConstOffset-08616# If the --- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind --- point used by this command or any --- 'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding --- to the pipeline bind point used by this command accesses a --- 'Vulkan.Core10.Handles.Sampler' or 'Vulkan.Core10.Handles.ImageView' --- object that enables +-- - #VUID-vkCmdTraceRaysKHR-ConstOffset-06551# If +-- +-- accesses a 'Vulkan.Core10.Handles.Sampler' or +-- 'Vulkan.Core10.Handles.ImageView' object that enables -- , -- that object /must/ not use the @ConstOffset@ and @Offset@ operands -- @@ -1240,17 +1266,23 @@ foreign import ccall -- -- - #VUID-vkCmdTraceRaysKHR-format-07753# If a -- 'Vulkan.Core10.Handles.ImageView' is accessed as a result of this --- command, then the image view’s @format@ /must/ match the numeric --- format from the @Sampled@ @Type@ operand of the @OpTypeImage@ as --- described in the SPIR-V Sampled Type column of the --- --- table --- --- - #VUID-vkCmdTraceRaysKHR-None-04115# If a --- 'Vulkan.Core10.Handles.ImageView' is accessed using @OpImageWrite@ --- as a result of this command, then the @Type@ of the @Texel@ operand --- of that instruction /must/ have at least as many components as the --- image view’s format +-- command, then the +-- +-- of the image view’s @format@ and the @Sampled@ @Type@ operand of the +-- @OpTypeImage@ /must/ match +-- +-- - #VUID-vkCmdTraceRaysKHR-OpImageWrite-08795# If a +-- 'Vulkan.Core10.Handles.ImageView' created with a format other than +-- 'Vulkan.Core10.Enums.Format.FORMAT_A8_UNORM_KHR' is accessed using +-- @OpImageWrite@ as a result of this command, then the @Type@ of the +-- @Texel@ operand of that instruction /must/ have at least as many +-- components as the image view’s format +-- +-- - #VUID-vkCmdTraceRaysKHR-OpImageWrite-08796# If a +-- 'Vulkan.Core10.Handles.ImageView' created with the format +-- 'Vulkan.Core10.Enums.Format.FORMAT_A8_UNORM_KHR' is accessed using +-- @OpImageWrite@ as a result of this command, then the @Type@ of the +-- @Texel@ operand of that instruction /must/ have four components -- -- - #VUID-vkCmdTraceRaysKHR-OpImageWrite-04469# If a -- 'Vulkan.Core10.Handles.BufferView' is accessed using @OpImageWrite@ @@ -1352,6 +1384,8 @@ foreign import ccall -- -- - #VUID-vkCmdTraceRaysKHR-OpImageWeightedSampleQCOM-06977# If -- @OpImageWeightedSampleQCOM@, @OpImageBoxFilterQCOM@, +-- @OpImageBlockMatchWindowSSDQCOM@, @OpImageBlockMatchWindowSADQCOM@, +-- @OpImageBlockMatchGatherSSDQCOM@, @OpImageBlockMatchGatherSADQCOM@, -- @OpImageBlockMatchSSDQCOM@, or @OpImageBlockMatchSADQCOM@ uses a -- 'Vulkan.Core10.Handles.Sampler' as a result of this command, then -- the sampler /must/ have been created with @@ -1359,12 +1393,35 @@ foreign import ccall -- -- - #VUID-vkCmdTraceRaysKHR-OpImageWeightedSampleQCOM-06978# If any -- command other than @OpImageWeightedSampleQCOM@, --- @OpImageBoxFilterQCOM@, @OpImageBlockMatchSSDQCOM@, or +-- @OpImageBoxFilterQCOM@, @OpImageBlockMatchWindowSSDQCOM@, +-- @OpImageBlockMatchWindowSADQCOM@, @OpImageBlockMatchGatherSSDQCOM@, +-- @OpImageBlockMatchGatherSADQCOM@, @OpImageBlockMatchSSDQCOM@, or -- @OpImageBlockMatchSADQCOM@ uses a 'Vulkan.Core10.Handles.Sampler' as -- a result of this command, then the sampler /must/ not have been -- created with -- 'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM' -- +-- - #VUID-vkCmdTraceRaysKHR-OpImageBlockMatchWindow-09215# If a +-- @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@ +-- instruction is used to read from an +-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then +-- the image view’s +-- +-- /must/ contain +-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM' +-- +-- - #VUID-vkCmdTraceRaysKHR-OpImageBlockMatchWindow-09216# If a +-- @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@ +-- instruction is used to read from an +-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then +-- the image view’s format /must/ be a single-component format. +-- +-- - #VUID-vkCmdTraceRaysKHR-OpImageBlockMatchWindow-09217# If a +-- @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@ +-- read from a reference image as result of this command, then the +-- specified reference coordinates /must/ not fail +-- +-- -- - #VUID-vkCmdTraceRaysKHR-None-07288# Any shader invocation executed -- by this command /must/ -- @@ -1922,7 +1979,7 @@ foreign import ccall -- = Description -- -- The 'Vulkan.Core10.Enums.Result.ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS' --- error is returned if the implementation is unable to re-use the shader +-- error is returned if the implementation is unable to reuse the shader -- group handles provided in -- 'RayTracingShaderGroupCreateInfoKHR'::@pShaderGroupCaptureReplayHandle@ -- when @@ -2183,6 +2240,16 @@ foreign import ccall -- /must/ contain -- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT' -- +-- - #VUID-vkCmdTraceRaysIndirectKHR-None-02693# If the +-- +-- extension is not enabled and any 'Vulkan.Core10.Handles.ImageView' +-- is sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a +-- result of this command, it /must/ not have a +-- 'Vulkan.Core10.Enums.ImageViewType.ImageViewType' of +-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_3D', +-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE', or +-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE_ARRAY' +-- -- - #VUID-vkCmdTraceRaysIndirectKHR-filterCubic-02694# Any -- 'Vulkan.Core10.Handles.ImageView' being sampled with -- 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a result of this @@ -2208,6 +2275,33 @@ foreign import ccall -- returned by -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceImageFormatProperties2' -- +-- - #VUID-vkCmdTraceRaysIndirectKHR-cubicRangeClamp-09212# If the +-- +-- feature is not enabled, then any 'Vulkan.Core10.Handles.ImageView' +-- being sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as +-- a result of this command +-- +-- [/must/ not have a 'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo'] +-- @reductionMode@ equal to +-- 'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM' +-- +-- - #VUID-vkCmdTraceRaysIndirectKHR-reductionMode-09213# Any +-- 'Vulkan.Core10.Handles.ImageView' being sampled with a +-- 'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo'::@reductionMode@ +-- equal to +-- 'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM' +-- as a result of this command /must/ sample with +-- 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' +-- +-- - #VUID-vkCmdTraceRaysIndirectKHR-selectableCubicWeights-09214# If the +-- +-- feature is not enabled, then any 'Vulkan.Core10.Handles.ImageView' +-- being sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as +-- a result of this command /must/ have +-- 'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.SamplerCubicWeightsCreateInfoQCOM'::@cubicWeights@ +-- equal to +-- 'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM' +-- -- - #VUID-vkCmdTraceRaysIndirectKHR-flags-02696# Any -- 'Vulkan.Core10.Handles.Image' created with a -- 'Vulkan.Core10.Image.ImageCreateInfo'::@flags@ containing @@ -2249,11 +2343,9 @@ foreign import ccall -- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT' -- -- - #VUID-vkCmdTraceRaysIndirectKHR-None-08600# For each set /n/ that is --- statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to the --- pipeline bind point used by this command, or by any of the --- 'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages --- corresponding to the pipeline bind point used by this command, a --- descriptor set /must/ have been bound to /n/ at the same pipeline +-- statically used by +-- , +-- a descriptor set /must/ have been bound to /n/ at the same pipeline -- bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is -- compatible for set /n/, with the -- 'Vulkan.Core10.Handles.PipelineLayout' or @@ -2263,12 +2355,10 @@ foreign import ccall -- -- -- - #VUID-vkCmdTraceRaysIndirectKHR-None-08601# For each push constant --- that is statically used by the 'Vulkan.Core10.Handles.Pipeline' --- bound to the pipeline bind point used by this command, or by any of --- the 'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages --- corresponding to the pipeline bind point used by this command, a --- push constant value /must/ have been set for the same pipeline bind --- point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is +-- that is statically used by +-- , +-- a push constant value /must/ have been set for the same pipeline +-- bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is -- compatible for push constants, with the -- 'Vulkan.Core10.Handles.PipelineLayout' or -- 'Vulkan.Core10.Handles.DescriptorSetLayout' and @@ -2280,12 +2370,10 @@ foreign import ccall -- - #VUID-vkCmdTraceRaysIndirectKHR-maintenance4-08602# If the -- -- feature is not enabled, then for each push constant that is --- statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to the --- pipeline bind point used by this command, or by any of the --- 'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages --- corresponding to the pipeline bind point used by this command, a --- push constant value /must/ have been set for the same pipeline bind --- point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is +-- statically used by +-- , +-- a push constant value /must/ have been set for the same pipeline +-- bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is -- compatible for push constants, with the -- 'Vulkan.Core10.Handles.PipelineLayout' or -- 'Vulkan.Core10.Handles.DescriptorSetLayout' and @@ -2448,34 +2536,25 @@ foreign import ccall -- buffer as specified in the descriptor set bound to the same pipeline -- bind point -- --- - #VUID-vkCmdTraceRaysIndirectKHR-commandBuffer-08614# If +-- - #VUID-vkCmdTraceRaysIndirectKHR-commandBuffer-02707# If -- @commandBuffer@ is an unprotected command buffer and -- --- is not supported, any resource accessed by the --- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind --- point used by this command or any --- 'Vulkan.Extensions.Handles.ShaderEXT' object bound to a stage --- corresponding to the pipeline bind point used by this command /must/ --- not be a protected resource --- --- - #VUID-vkCmdTraceRaysIndirectKHR-None-08615# If the --- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind --- point used by this command or any --- 'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding --- to the pipeline bind point used by this command accesses a --- 'Vulkan.Core10.Handles.Sampler' or 'Vulkan.Core10.Handles.ImageView' --- object that enables +-- is not supported, any resource accessed by +-- +-- /must/ not be a protected resource +-- +-- - #VUID-vkCmdTraceRaysIndirectKHR-None-06550# If +-- +-- accesses a 'Vulkan.Core10.Handles.Sampler' or +-- 'Vulkan.Core10.Handles.ImageView' object that enables -- , -- that object /must/ only be used with @OpImageSample*@ or -- @OpImageSparseSample*@ instructions -- --- - #VUID-vkCmdTraceRaysIndirectKHR-ConstOffset-08616# If the --- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind --- point used by this command or any --- 'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding --- to the pipeline bind point used by this command accesses a --- 'Vulkan.Core10.Handles.Sampler' or 'Vulkan.Core10.Handles.ImageView' --- object that enables +-- - #VUID-vkCmdTraceRaysIndirectKHR-ConstOffset-06551# If +-- +-- accesses a 'Vulkan.Core10.Handles.Sampler' or +-- 'Vulkan.Core10.Handles.ImageView' object that enables -- , -- that object /must/ not use the @ConstOffset@ and @Offset@ operands -- @@ -2487,17 +2566,23 @@ foreign import ccall -- -- - #VUID-vkCmdTraceRaysIndirectKHR-format-07753# If a -- 'Vulkan.Core10.Handles.ImageView' is accessed as a result of this --- command, then the image view’s @format@ /must/ match the numeric --- format from the @Sampled@ @Type@ operand of the @OpTypeImage@ as --- described in the SPIR-V Sampled Type column of the --- --- table --- --- - #VUID-vkCmdTraceRaysIndirectKHR-None-04115# If a --- 'Vulkan.Core10.Handles.ImageView' is accessed using @OpImageWrite@ --- as a result of this command, then the @Type@ of the @Texel@ operand --- of that instruction /must/ have at least as many components as the --- image view’s format +-- command, then the +-- +-- of the image view’s @format@ and the @Sampled@ @Type@ operand of the +-- @OpTypeImage@ /must/ match +-- +-- - #VUID-vkCmdTraceRaysIndirectKHR-OpImageWrite-08795# If a +-- 'Vulkan.Core10.Handles.ImageView' created with a format other than +-- 'Vulkan.Core10.Enums.Format.FORMAT_A8_UNORM_KHR' is accessed using +-- @OpImageWrite@ as a result of this command, then the @Type@ of the +-- @Texel@ operand of that instruction /must/ have at least as many +-- components as the image view’s format +-- +-- - #VUID-vkCmdTraceRaysIndirectKHR-OpImageWrite-08796# If a +-- 'Vulkan.Core10.Handles.ImageView' created with the format +-- 'Vulkan.Core10.Enums.Format.FORMAT_A8_UNORM_KHR' is accessed using +-- @OpImageWrite@ as a result of this command, then the @Type@ of the +-- @Texel@ operand of that instruction /must/ have four components -- -- - #VUID-vkCmdTraceRaysIndirectKHR-OpImageWrite-04469# If a -- 'Vulkan.Core10.Handles.BufferView' is accessed using @OpImageWrite@ @@ -2601,6 +2686,8 @@ foreign import ccall -- -- - #VUID-vkCmdTraceRaysIndirectKHR-OpImageWeightedSampleQCOM-06977# If -- @OpImageWeightedSampleQCOM@, @OpImageBoxFilterQCOM@, +-- @OpImageBlockMatchWindowSSDQCOM@, @OpImageBlockMatchWindowSADQCOM@, +-- @OpImageBlockMatchGatherSSDQCOM@, @OpImageBlockMatchGatherSADQCOM@, -- @OpImageBlockMatchSSDQCOM@, or @OpImageBlockMatchSADQCOM@ uses a -- 'Vulkan.Core10.Handles.Sampler' as a result of this command, then -- the sampler /must/ have been created with @@ -2608,12 +2695,35 @@ foreign import ccall -- -- - #VUID-vkCmdTraceRaysIndirectKHR-OpImageWeightedSampleQCOM-06978# If -- any command other than @OpImageWeightedSampleQCOM@, --- @OpImageBoxFilterQCOM@, @OpImageBlockMatchSSDQCOM@, or +-- @OpImageBoxFilterQCOM@, @OpImageBlockMatchWindowSSDQCOM@, +-- @OpImageBlockMatchWindowSADQCOM@, @OpImageBlockMatchGatherSSDQCOM@, +-- @OpImageBlockMatchGatherSADQCOM@, @OpImageBlockMatchSSDQCOM@, or -- @OpImageBlockMatchSADQCOM@ uses a 'Vulkan.Core10.Handles.Sampler' as -- a result of this command, then the sampler /must/ not have been -- created with -- 'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM' -- +-- - #VUID-vkCmdTraceRaysIndirectKHR-OpImageBlockMatchWindow-09215# If a +-- @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@ +-- instruction is used to read from an +-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then +-- the image view’s +-- +-- /must/ contain +-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM' +-- +-- - #VUID-vkCmdTraceRaysIndirectKHR-OpImageBlockMatchWindow-09216# If a +-- @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@ +-- instruction is used to read from an +-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then +-- the image view’s format /must/ be a single-component format. +-- +-- - #VUID-vkCmdTraceRaysIndirectKHR-OpImageBlockMatchWindow-09217# If a +-- @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@ +-- read from a reference image as result of this command, then the +-- specified reference coordinates /must/ not fail +-- +-- -- - #VUID-vkCmdTraceRaysIndirectKHR-None-07288# Any shader invocation -- executed by this command /must/ -- @@ -3305,13 +3415,19 @@ instance Zero RayTracingShaderGroupCreateInfoKHR where -- is not provided is computed as described in -- . -- +-- If a +-- 'Vulkan.Extensions.VK_KHR_maintenance5.PipelineCreateFlags2CreateInfoKHR' +-- structure is present in the @pNext@ chain, +-- 'Vulkan.Extensions.VK_KHR_maintenance5.PipelineCreateFlags2CreateInfoKHR'::@flags@ +-- from that structure is used instead of @flags@ from this structure. +-- -- == Valid Usage -- -- - #VUID-VkRayTracingPipelineCreateInfoKHR-flags-07984# If @flags@ -- contains the -- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DERIVATIVE_BIT' -- flag, and @basePipelineIndex@ is -1, @basePipelineHandle@ /must/ be --- a valid handle to a ray tracing 'Vulkan.Core10.Handles.Pipeline' +-- a valid ray tracing 'Vulkan.Core10.Handles.Pipeline' handle -- -- - #VUID-VkRayTracingPipelineCreateInfoKHR-flags-07985# If @flags@ -- contains the @@ -3570,7 +3686,8 @@ instance Zero RayTracingShaderGroupCreateInfoKHR where -- - #VUID-VkRayTracingPipelineCreateInfoKHR-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.Core13.Promoted_From_VK_EXT_pipeline_creation_feedback.PipelineCreationFeedbackCreateInfo' +-- 'Vulkan.Extensions.VK_KHR_maintenance5.PipelineCreateFlags2CreateInfoKHR', +-- 'Vulkan.Core13.Promoted_From_VK_EXT_pipeline_creation_feedback.PipelineCreationFeedbackCreateInfo', -- or -- 'Vulkan.Extensions.VK_EXT_pipeline_robustness.PipelineRobustnessCreateInfoEXT' -- @@ -3688,6 +3805,7 @@ instance Extensible RayTracingPipelineCreateInfoKHR where extends _ f | Just Refl <- eqT @e @PipelineRobustnessCreateInfoEXT = Just f | Just Refl <- eqT @e @PipelineCreationFeedbackCreateInfo = Just f + | Just Refl <- eqT @e @PipelineCreateFlags2CreateInfoKHR = Just f | otherwise = Nothing instance ( Extendss RayTracingPipelineCreateInfoKHR es @@ -3793,7 +3911,8 @@ instance es ~ '[] => Zero (RayTracingPipelineCreateInfoKHR es) where -- -- = Description -- --- - @sType@ is the type of this structure. +-- - @sType@ is a 'Vulkan.Core10.Enums.StructureType.StructureType' value +-- identifying this structure. -- -- - @pNext@ is @NULL@ or a pointer to a structure extending this -- structure. diff --git a/src/Vulkan/Extensions/VK_KHR_ray_tracing_pipeline.hs-boot b/src/Vulkan/Extensions/VK_KHR_ray_tracing_pipeline.hs-boot index c23985fb0..a2ca43573 100644 --- a/src/Vulkan/Extensions/VK_KHR_ray_tracing_pipeline.hs-boot +++ b/src/Vulkan/Extensions/VK_KHR_ray_tracing_pipeline.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Ratified +-- -- [__Extension and Version Dependencies__] -- -- and diff --git a/src/Vulkan/Extensions/VK_KHR_ray_tracing_position_fetch.hs b/src/Vulkan/Extensions/VK_KHR_ray_tracing_position_fetch.hs new file mode 100644 index 000000000..d526f40bf --- /dev/null +++ b/src/Vulkan/Extensions/VK_KHR_ray_tracing_position_fetch.hs @@ -0,0 +1,253 @@ +{-# language CPP #-} +-- | = Name +-- +-- VK_KHR_ray_tracing_position_fetch - device extension +-- +-- == VK_KHR_ray_tracing_position_fetch +-- +-- [__Name String__] +-- @VK_KHR_ray_tracing_position_fetch@ +-- +-- [__Extension Type__] +-- Device extension +-- +-- [__Registered Extension Number__] +-- 482 +-- +-- [__Revision__] +-- 1 +-- +-- [__Ratification Status__] +-- Ratified +-- +-- [__Extension and Version Dependencies__] +-- +-- +-- [__Contact__] +-- +-- - Eric Werness +-- +-- [__Extension Proposal__] +-- +-- +-- == Other Extension Metadata +-- +-- [__Last Modified Date__] +-- 2023-02-17 +-- +-- [__Interactions and External Dependencies__] +-- +-- - This extension requires +-- +-- +-- - This extension provides API support for +-- +-- +-- - Interacts with @VK_KHR_ray_tracing_pipeline@ +-- +-- - Interacts with @VK_KHR_ray_query@ +-- +-- [__Contributors__] +-- +-- - Eric Werness, NVIDIA +-- +-- - Stu Smith, AMD +-- +-- - Yuriy O’Donnell, Epic Games +-- +-- - Ralph Potter, Samsung +-- +-- - Joshua Barczak, Intel +-- +-- - Lionel Landwerlin, Intel +-- +-- - Andrew Garrard, Imagination Technologies +-- +-- - Alex Bourd, Qualcomm +-- +-- - Yunpeng Zhu, Huawei Technologies +-- +-- - Marius Bjorge, Arm +-- +-- - Daniel Koch, NVIDIA +-- +-- == Description +-- +-- @VK_KHR_ray_tracing_position_fetch@ adds the ability to fetch the vertex +-- positions in the shader from a hit triangle as stored in the +-- acceleration structure. +-- +-- An application adds +-- 'Vulkan.Extensions.VK_KHR_acceleration_structure.BUILD_ACCELERATION_STRUCTURE_ALLOW_DATA_ACCESS_KHR' +-- to the acceleration structure at build time. Then, if the hit is a +-- triangle geometry, the shader (any-hit or closest hit for ray pipelines +-- or using ray query) /can/ fetch the three, three-component vertex +-- positions in object space, of the triangle which was hit. +-- +-- == New Structures +-- +-- - Extending +-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2', +-- 'Vulkan.Core10.Device.DeviceCreateInfo': +-- +-- - 'PhysicalDeviceRayTracingPositionFetchFeaturesKHR' +-- +-- == New Enum Constants +-- +-- - 'KHR_RAY_TRACING_POSITION_FETCH_EXTENSION_NAME' +-- +-- - 'KHR_RAY_TRACING_POSITION_FETCH_SPEC_VERSION' +-- +-- - Extending +-- 'Vulkan.Extensions.VK_KHR_acceleration_structure.BuildAccelerationStructureFlagBitsKHR': +-- +-- - 'Vulkan.Extensions.VK_KHR_acceleration_structure.BUILD_ACCELERATION_STRUCTURE_ALLOW_DATA_ACCESS_KHR' +-- +-- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType': +-- +-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_POSITION_FETCH_FEATURES_KHR' +-- +-- == New Built-In Variables +-- +-- - +-- +-- == New SPIR-V Capabilities +-- +-- - +-- +-- == Issues +-- +-- None Yet! +-- +-- == Version History +-- +-- - Revision 1, 2023-02-17 (Eric Werness) +-- +-- - internal revisions +-- +-- == See Also +-- +-- 'PhysicalDeviceRayTracingPositionFetchFeaturesKHR' +-- +-- == Document Notes +-- +-- For more information, see the +-- +-- +-- This page is a generated document. Fixes and changes should be made to +-- the generator scripts, not directly. +module Vulkan.Extensions.VK_KHR_ray_tracing_position_fetch ( PhysicalDeviceRayTracingPositionFetchFeaturesKHR(..) + , KHR_RAY_TRACING_POSITION_FETCH_SPEC_VERSION + , pattern KHR_RAY_TRACING_POSITION_FETCH_SPEC_VERSION + , KHR_RAY_TRACING_POSITION_FETCH_EXTENSION_NAME + , pattern KHR_RAY_TRACING_POSITION_FETCH_EXTENSION_NAME + , BuildAccelerationStructureFlagBitsKHR(..) + , BuildAccelerationStructureFlagsKHR + ) where + +import Foreign.Marshal.Alloc (allocaBytes) +import Foreign.Ptr (nullPtr) +import Foreign.Ptr (plusPtr) +import Vulkan.CStruct (FromCStruct) +import Vulkan.CStruct (FromCStruct(..)) +import Vulkan.CStruct (ToCStruct) +import Vulkan.CStruct (ToCStruct(..)) +import Vulkan.Zero (Zero(..)) +import Data.String (IsString) +import Data.Typeable (Typeable) +import Foreign.Storable (Storable) +import Foreign.Storable (Storable(peek)) +import Foreign.Storable (Storable(poke)) +import qualified Foreign.Storable (Storable(..)) +import GHC.Generics (Generic) +import Foreign.Ptr (Ptr) +import Data.Kind (Type) +import Vulkan.Core10.FundamentalTypes (bool32ToBool) +import Vulkan.Core10.FundamentalTypes (boolToBool32) +import Vulkan.Core10.FundamentalTypes (Bool32) +import Vulkan.Core10.Enums.StructureType (StructureType) +import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_POSITION_FETCH_FEATURES_KHR)) +import Vulkan.Extensions.VK_KHR_acceleration_structure (BuildAccelerationStructureFlagBitsKHR(..)) +import Vulkan.Extensions.VK_KHR_acceleration_structure (BuildAccelerationStructureFlagsKHR) +-- | VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR - Structure +-- describing support for fetching vertex positions of hit triangles +-- +-- = Members +-- +-- This structure describes the following feature: +-- +-- = Description +-- +-- If the 'PhysicalDeviceRayTracingPositionFetchFeaturesKHR' 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. 'PhysicalDeviceRayTracingPositionFetchFeaturesKHR' /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 PhysicalDeviceRayTracingPositionFetchFeaturesKHR = PhysicalDeviceRayTracingPositionFetchFeaturesKHR + { -- | #features-rayTracingPositionFetch# @rayTracingPositionFetch@ indicates + -- that the implementation supports fetching the object space vertex + -- positions of a hit triangle. + rayTracingPositionFetch :: Bool } + deriving (Typeable, Eq) +#if defined(GENERIC_INSTANCES) +deriving instance Generic (PhysicalDeviceRayTracingPositionFetchFeaturesKHR) +#endif +deriving instance Show PhysicalDeviceRayTracingPositionFetchFeaturesKHR + +instance ToCStruct PhysicalDeviceRayTracingPositionFetchFeaturesKHR where + withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p) + pokeCStruct p PhysicalDeviceRayTracingPositionFetchFeaturesKHR{..} f = do + poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_POSITION_FETCH_FEATURES_KHR) + poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr) + poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (rayTracingPositionFetch)) + f + cStructSize = 24 + cStructAlignment = 8 + pokeZeroCStruct p f = do + poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_POSITION_FETCH_FEATURES_KHR) + poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr) + poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero)) + f + +instance FromCStruct PhysicalDeviceRayTracingPositionFetchFeaturesKHR where + peekCStruct p = do + rayTracingPositionFetch <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32)) + pure $ PhysicalDeviceRayTracingPositionFetchFeaturesKHR + (bool32ToBool rayTracingPositionFetch) + +instance Storable PhysicalDeviceRayTracingPositionFetchFeaturesKHR where + sizeOf ~_ = 24 + alignment ~_ = 8 + peek = peekCStruct + poke ptr poked = pokeCStruct ptr poked (pure ()) + +instance Zero PhysicalDeviceRayTracingPositionFetchFeaturesKHR where + zero = PhysicalDeviceRayTracingPositionFetchFeaturesKHR + zero + + +type KHR_RAY_TRACING_POSITION_FETCH_SPEC_VERSION = 1 + +-- No documentation found for TopLevel "VK_KHR_RAY_TRACING_POSITION_FETCH_SPEC_VERSION" +pattern KHR_RAY_TRACING_POSITION_FETCH_SPEC_VERSION :: forall a . Integral a => a +pattern KHR_RAY_TRACING_POSITION_FETCH_SPEC_VERSION = 1 + + +type KHR_RAY_TRACING_POSITION_FETCH_EXTENSION_NAME = "VK_KHR_ray_tracing_position_fetch" + +-- No documentation found for TopLevel "VK_KHR_RAY_TRACING_POSITION_FETCH_EXTENSION_NAME" +pattern KHR_RAY_TRACING_POSITION_FETCH_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a +pattern KHR_RAY_TRACING_POSITION_FETCH_EXTENSION_NAME = "VK_KHR_ray_tracing_position_fetch" + diff --git a/src/Vulkan/Extensions/VK_KHR_ray_tracing_position_fetch.hs-boot b/src/Vulkan/Extensions/VK_KHR_ray_tracing_position_fetch.hs-boot new file mode 100644 index 000000000..53523dc42 --- /dev/null +++ b/src/Vulkan/Extensions/VK_KHR_ray_tracing_position_fetch.hs-boot @@ -0,0 +1,151 @@ +{-# language CPP #-} +-- | = Name +-- +-- VK_KHR_ray_tracing_position_fetch - device extension +-- +-- == VK_KHR_ray_tracing_position_fetch +-- +-- [__Name String__] +-- @VK_KHR_ray_tracing_position_fetch@ +-- +-- [__Extension Type__] +-- Device extension +-- +-- [__Registered Extension Number__] +-- 482 +-- +-- [__Revision__] +-- 1 +-- +-- [__Ratification Status__] +-- Ratified +-- +-- [__Extension and Version Dependencies__] +-- +-- +-- [__Contact__] +-- +-- - Eric Werness +-- +-- [__Extension Proposal__] +-- +-- +-- == Other Extension Metadata +-- +-- [__Last Modified Date__] +-- 2023-02-17 +-- +-- [__Interactions and External Dependencies__] +-- +-- - This extension requires +-- +-- +-- - This extension provides API support for +-- +-- +-- - Interacts with @VK_KHR_ray_tracing_pipeline@ +-- +-- - Interacts with @VK_KHR_ray_query@ +-- +-- [__Contributors__] +-- +-- - Eric Werness, NVIDIA +-- +-- - Stu Smith, AMD +-- +-- - Yuriy O’Donnell, Epic Games +-- +-- - Ralph Potter, Samsung +-- +-- - Joshua Barczak, Intel +-- +-- - Lionel Landwerlin, Intel +-- +-- - Andrew Garrard, Imagination Technologies +-- +-- - Alex Bourd, Qualcomm +-- +-- - Yunpeng Zhu, Huawei Technologies +-- +-- - Marius Bjorge, Arm +-- +-- - Daniel Koch, NVIDIA +-- +-- == Description +-- +-- @VK_KHR_ray_tracing_position_fetch@ adds the ability to fetch the vertex +-- positions in the shader from a hit triangle as stored in the +-- acceleration structure. +-- +-- An application adds +-- 'Vulkan.Extensions.VK_KHR_acceleration_structure.BUILD_ACCELERATION_STRUCTURE_ALLOW_DATA_ACCESS_KHR' +-- to the acceleration structure at build time. Then, if the hit is a +-- triangle geometry, the shader (any-hit or closest hit for ray pipelines +-- or using ray query) /can/ fetch the three, three-component vertex +-- positions in object space, of the triangle which was hit. +-- +-- == New Structures +-- +-- - Extending +-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2', +-- 'Vulkan.Core10.Device.DeviceCreateInfo': +-- +-- - 'PhysicalDeviceRayTracingPositionFetchFeaturesKHR' +-- +-- == New Enum Constants +-- +-- - 'KHR_RAY_TRACING_POSITION_FETCH_EXTENSION_NAME' +-- +-- - 'KHR_RAY_TRACING_POSITION_FETCH_SPEC_VERSION' +-- +-- - Extending +-- 'Vulkan.Extensions.VK_KHR_acceleration_structure.BuildAccelerationStructureFlagBitsKHR': +-- +-- - 'Vulkan.Extensions.VK_KHR_acceleration_structure.BUILD_ACCELERATION_STRUCTURE_ALLOW_DATA_ACCESS_KHR' +-- +-- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType': +-- +-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_POSITION_FETCH_FEATURES_KHR' +-- +-- == New Built-In Variables +-- +-- - +-- +-- == New SPIR-V Capabilities +-- +-- - +-- +-- == Issues +-- +-- None Yet! +-- +-- == Version History +-- +-- - Revision 1, 2023-02-17 (Eric Werness) +-- +-- - internal revisions +-- +-- == See Also +-- +-- 'PhysicalDeviceRayTracingPositionFetchFeaturesKHR' +-- +-- == Document Notes +-- +-- For more information, see the +-- +-- +-- This page is a generated document. Fixes and changes should be made to +-- the generator scripts, not directly. +module Vulkan.Extensions.VK_KHR_ray_tracing_position_fetch (PhysicalDeviceRayTracingPositionFetchFeaturesKHR) where + +import Vulkan.CStruct (FromCStruct) +import Vulkan.CStruct (ToCStruct) +import Data.Kind (Type) + +data PhysicalDeviceRayTracingPositionFetchFeaturesKHR + +instance ToCStruct PhysicalDeviceRayTracingPositionFetchFeaturesKHR +instance Show PhysicalDeviceRayTracingPositionFetchFeaturesKHR + +instance FromCStruct PhysicalDeviceRayTracingPositionFetchFeaturesKHR + diff --git a/src/Vulkan/Extensions/VK_KHR_relaxed_block_layout.hs b/src/Vulkan/Extensions/VK_KHR_relaxed_block_layout.hs index 13cbefa39..cbdbfdd8b 100644 --- a/src/Vulkan/Extensions/VK_KHR_relaxed_block_layout.hs +++ b/src/Vulkan/Extensions/VK_KHR_relaxed_block_layout.hs @@ -17,7 +17,10 @@ -- [__Revision__] -- 1 -- --- [__Extension and Version Dependencies__; __Deprecation state__] +-- [__Ratification Status__] +-- Ratified +-- +-- [__Extension and Version Dependencies__; __Deprecation State__] -- -- - /Promoted/ to -- diff --git a/src/Vulkan/Extensions/VK_KHR_sampler_mirror_clamp_to_edge.hs b/src/Vulkan/Extensions/VK_KHR_sampler_mirror_clamp_to_edge.hs index 90b43ce9d..24883eaa0 100644 --- a/src/Vulkan/Extensions/VK_KHR_sampler_mirror_clamp_to_edge.hs +++ b/src/Vulkan/Extensions/VK_KHR_sampler_mirror_clamp_to_edge.hs @@ -17,7 +17,10 @@ -- [__Revision__] -- 3 -- --- [__Extension and Version Dependencies__; __Deprecation state__] +-- [__Ratification Status__] +-- Ratified +-- +-- [__Extension and Version Dependencies__; __Deprecation State__] -- -- - /Promoted/ to -- @@ -86,7 +89,7 @@ -- -- > VkSamplerCreateInfo createInfo = -- > { --- > VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO // sType +-- > .sType = VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO, -- > // Other members set to application-desired values -- > }; -- > diff --git a/src/Vulkan/Extensions/VK_KHR_sampler_ycbcr_conversion.hs b/src/Vulkan/Extensions/VK_KHR_sampler_ycbcr_conversion.hs index a05ee04bb..6f282b49c 100644 --- a/src/Vulkan/Extensions/VK_KHR_sampler_ycbcr_conversion.hs +++ b/src/Vulkan/Extensions/VK_KHR_sampler_ycbcr_conversion.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 14 -- +-- [__Ratification Status__] +-- Ratified +-- -- [__Extension and Version Dependencies__] -- -- and @@ -26,7 +29,7 @@ -- and -- -- --- [__Deprecation state__] +-- [__Deprecation State__] -- -- - /Promoted/ to -- @@ -163,11 +166,6 @@ -- -- - 'CHROMA_LOCATION_MIDPOINT_KHR' -- --- - Extending --- 'Vulkan.Extensions.VK_EXT_debug_report.DebugReportObjectTypeEXT': --- --- - 'DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR_EXT' --- -- - Extending 'Vulkan.Core10.Enums.Format.Format': -- -- - 'FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16_KHR' @@ -315,6 +313,8 @@ -- -- - 'Vulkan.Extensions.VK_EXT_debug_report.DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT' -- +-- - 'DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR_EXT' +-- -- == Version History -- -- - Revision 1, 2017-01-24 (Andrew Garrard) @@ -399,7 +399,6 @@ module Vulkan.Extensions.VK_KHR_sampler_ycbcr_conversion ( pattern STRUCTURE_TY , pattern STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO_KHR , pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES_KHR , pattern STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES_KHR - , pattern DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR_EXT , pattern OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR , pattern FORMAT_G8B8G8R8_422_UNORM_KHR , pattern FORMAT_B8G8R8G8_422_UNORM_KHR @@ -455,6 +454,7 @@ module Vulkan.Extensions.VK_KHR_sampler_ycbcr_conversion ( pattern STRUCTURE_TY , pattern SAMPLER_YCBCR_RANGE_ITU_NARROW_KHR , pattern CHROMA_LOCATION_COSITED_EVEN_KHR , pattern CHROMA_LOCATION_MIDPOINT_KHR + , pattern DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR_EXT , createSamplerYcbcrConversionKHR , destroySamplerYcbcrConversionKHR , SamplerYcbcrConversionKHR @@ -585,10 +585,6 @@ pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES_KHR = S pattern STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES_KHR = STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES --- No documentation found for TopLevel "VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR_EXT" -pattern DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR_EXT = DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT - - -- No documentation found for TopLevel "VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR" pattern OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR = OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION @@ -809,6 +805,10 @@ pattern CHROMA_LOCATION_COSITED_EVEN_KHR = CHROMA_LOCATION_COSITED_EVEN pattern CHROMA_LOCATION_MIDPOINT_KHR = CHROMA_LOCATION_MIDPOINT +-- No documentation found for TopLevel "VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR_EXT" +pattern DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR_EXT = DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT + + -- No documentation found for TopLevel "vkCreateSamplerYcbcrConversionKHR" createSamplerYcbcrConversionKHR = createSamplerYcbcrConversion diff --git a/src/Vulkan/Extensions/VK_KHR_separate_depth_stencil_layouts.hs b/src/Vulkan/Extensions/VK_KHR_separate_depth_stencil_layouts.hs index 4a310688d..1978775aa 100644 --- a/src/Vulkan/Extensions/VK_KHR_separate_depth_stencil_layouts.hs +++ b/src/Vulkan/Extensions/VK_KHR_separate_depth_stencil_layouts.hs @@ -17,12 +17,15 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Ratified +-- -- [__Extension and Version Dependencies__] -- -- and -- -- --- [__Deprecation state__] +-- [__Deprecation State__] -- -- - /Promoted/ to -- diff --git a/src/Vulkan/Extensions/VK_KHR_shader_atomic_int64.hs b/src/Vulkan/Extensions/VK_KHR_shader_atomic_int64.hs index 0b1609801..f1237fb3b 100644 --- a/src/Vulkan/Extensions/VK_KHR_shader_atomic_int64.hs +++ b/src/Vulkan/Extensions/VK_KHR_shader_atomic_int64.hs @@ -17,10 +17,13 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Ratified +-- -- [__Extension and Version Dependencies__] -- -- --- [__Deprecation state__] +-- [__Deprecation State__] -- -- - /Promoted/ to -- diff --git a/src/Vulkan/Extensions/VK_KHR_shader_clock.hs b/src/Vulkan/Extensions/VK_KHR_shader_clock.hs index 4e8dcae22..b18eedcf4 100644 --- a/src/Vulkan/Extensions/VK_KHR_shader_clock.hs +++ b/src/Vulkan/Extensions/VK_KHR_shader_clock.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Ratified +-- -- [__Extension and Version Dependencies__] -- -- or diff --git a/src/Vulkan/Extensions/VK_KHR_shader_clock.hs-boot b/src/Vulkan/Extensions/VK_KHR_shader_clock.hs-boot index 5e0842945..8d68f0677 100644 --- a/src/Vulkan/Extensions/VK_KHR_shader_clock.hs-boot +++ b/src/Vulkan/Extensions/VK_KHR_shader_clock.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Ratified +-- -- [__Extension and Version Dependencies__] -- -- or diff --git a/src/Vulkan/Extensions/VK_KHR_shader_draw_parameters.hs b/src/Vulkan/Extensions/VK_KHR_shader_draw_parameters.hs index c5f9a4447..b99c337f6 100644 --- a/src/Vulkan/Extensions/VK_KHR_shader_draw_parameters.hs +++ b/src/Vulkan/Extensions/VK_KHR_shader_draw_parameters.hs @@ -17,7 +17,10 @@ -- [__Revision__] -- 1 -- --- [__Extension and Version Dependencies__; __Deprecation state__] +-- [__Ratification Status__] +-- Ratified +-- +-- [__Extension and Version Dependencies__; __Deprecation State__] -- -- - /Promoted/ to -- diff --git a/src/Vulkan/Extensions/VK_KHR_shader_float16_int8.hs b/src/Vulkan/Extensions/VK_KHR_shader_float16_int8.hs index a4b92a90b..0dababf52 100644 --- a/src/Vulkan/Extensions/VK_KHR_shader_float16_int8.hs +++ b/src/Vulkan/Extensions/VK_KHR_shader_float16_int8.hs @@ -17,10 +17,13 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Ratified +-- -- [__Extension and Version Dependencies__] -- -- --- [__Deprecation state__] +-- [__Deprecation State__] -- -- - /Promoted/ to -- diff --git a/src/Vulkan/Extensions/VK_KHR_shader_float_controls.hs b/src/Vulkan/Extensions/VK_KHR_shader_float_controls.hs index a711b7200..b7e3e12d6 100644 --- a/src/Vulkan/Extensions/VK_KHR_shader_float_controls.hs +++ b/src/Vulkan/Extensions/VK_KHR_shader_float_controls.hs @@ -17,10 +17,13 @@ -- [__Revision__] -- 4 -- +-- [__Ratification Status__] +-- Ratified +-- -- [__Extension and Version Dependencies__] -- -- --- [__Deprecation state__] +-- [__Deprecation State__] -- -- - /Promoted/ to -- @@ -155,7 +158,7 @@ -- __RESOLVED__: These instructions must always accurately detect inf\/nan -- if it is passed to them. -- --- == Version 4 API incompatibility +-- == Version 4 API Incompatibility -- -- The original versions of @VK_KHR_shader_float_controls@ shipped with -- booleans named “separateDenormSettings” and diff --git a/src/Vulkan/Extensions/VK_KHR_shader_integer_dot_product.hs b/src/Vulkan/Extensions/VK_KHR_shader_integer_dot_product.hs index 0a5d62817..0c665ea73 100644 --- a/src/Vulkan/Extensions/VK_KHR_shader_integer_dot_product.hs +++ b/src/Vulkan/Extensions/VK_KHR_shader_integer_dot_product.hs @@ -17,10 +17,13 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Ratified +-- -- [__Extension and Version Dependencies__] -- -- --- [__Deprecation state__] +-- [__Deprecation State__] -- -- - /Promoted/ to -- @@ -28,7 +31,7 @@ -- [__Contact__] -- -- - Kevin Petit --- +-- -- -- [__Extension Proposal__] -- @@ -87,7 +90,7 @@ -- This extension adds support for the integer dot product SPIR-V -- instructions defined in SPV_KHR_integer_dot_product. These instructions -- are particularly useful for neural network inference and training but --- find uses in other general purpose compute applications as well. +-- find uses in other general-purpose compute applications as well. -- -- == New Structures -- diff --git a/src/Vulkan/Extensions/VK_KHR_shader_non_semantic_info.hs b/src/Vulkan/Extensions/VK_KHR_shader_non_semantic_info.hs index c61026b42..843f3796d 100644 --- a/src/Vulkan/Extensions/VK_KHR_shader_non_semantic_info.hs +++ b/src/Vulkan/Extensions/VK_KHR_shader_non_semantic_info.hs @@ -17,7 +17,10 @@ -- [__Revision__] -- 1 -- --- [__Extension and Version Dependencies__; __Deprecation state__] +-- [__Ratification Status__] +-- Ratified +-- +-- [__Extension and Version Dependencies__; __Deprecation State__] -- -- - /Promoted/ to -- diff --git a/src/Vulkan/Extensions/VK_KHR_shader_subgroup_extended_types.hs b/src/Vulkan/Extensions/VK_KHR_shader_subgroup_extended_types.hs index 224f5a14a..4f7412afd 100644 --- a/src/Vulkan/Extensions/VK_KHR_shader_subgroup_extended_types.hs +++ b/src/Vulkan/Extensions/VK_KHR_shader_subgroup_extended_types.hs @@ -17,10 +17,13 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Ratified +-- -- [__Extension and Version Dependencies__] -- -- --- [__Deprecation state__] +-- [__Deprecation State__] -- -- - /Promoted/ to -- diff --git a/src/Vulkan/Extensions/VK_KHR_shader_subgroup_uniform_control_flow.hs b/src/Vulkan/Extensions/VK_KHR_shader_subgroup_uniform_control_flow.hs index 149e8f5f0..2bdd02e68 100644 --- a/src/Vulkan/Extensions/VK_KHR_shader_subgroup_uniform_control_flow.hs +++ b/src/Vulkan/Extensions/VK_KHR_shader_subgroup_uniform_control_flow.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Ratified +-- -- [__Extension and Version Dependencies__] -- -- diff --git a/src/Vulkan/Extensions/VK_KHR_shader_subgroup_uniform_control_flow.hs-boot b/src/Vulkan/Extensions/VK_KHR_shader_subgroup_uniform_control_flow.hs-boot index 743d5ac70..5081dbe17 100644 --- a/src/Vulkan/Extensions/VK_KHR_shader_subgroup_uniform_control_flow.hs-boot +++ b/src/Vulkan/Extensions/VK_KHR_shader_subgroup_uniform_control_flow.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Ratified +-- -- [__Extension and Version Dependencies__] -- -- diff --git a/src/Vulkan/Extensions/VK_KHR_shader_terminate_invocation.hs b/src/Vulkan/Extensions/VK_KHR_shader_terminate_invocation.hs index 8da10593e..c39025137 100644 --- a/src/Vulkan/Extensions/VK_KHR_shader_terminate_invocation.hs +++ b/src/Vulkan/Extensions/VK_KHR_shader_terminate_invocation.hs @@ -17,12 +17,15 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Ratified +-- -- [__Extension and Version Dependencies__] -- -- or -- -- --- [__Deprecation state__] +-- [__Deprecation State__] -- -- - /Promoted/ to -- diff --git a/src/Vulkan/Extensions/VK_KHR_shared_presentable_image.hs b/src/Vulkan/Extensions/VK_KHR_shared_presentable_image.hs index a4d01e622..dbd3da06a 100644 --- a/src/Vulkan/Extensions/VK_KHR_shared_presentable_image.hs +++ b/src/Vulkan/Extensions/VK_KHR_shared_presentable_image.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Ratified +-- -- [__Extension and Version Dependencies__] -- -- and diff --git a/src/Vulkan/Extensions/VK_KHR_shared_presentable_image.hs-boot b/src/Vulkan/Extensions/VK_KHR_shared_presentable_image.hs-boot index 90e82e48e..4b9c1fbd1 100644 --- a/src/Vulkan/Extensions/VK_KHR_shared_presentable_image.hs-boot +++ b/src/Vulkan/Extensions/VK_KHR_shared_presentable_image.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Ratified +-- -- [__Extension and Version Dependencies__] -- -- and diff --git a/src/Vulkan/Extensions/VK_KHR_spirv_1_4.hs b/src/Vulkan/Extensions/VK_KHR_spirv_1_4.hs index c4ea7f3a9..88d95e6e8 100644 --- a/src/Vulkan/Extensions/VK_KHR_spirv_1_4.hs +++ b/src/Vulkan/Extensions/VK_KHR_spirv_1_4.hs @@ -17,12 +17,15 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Ratified +-- -- [__Extension and Version Dependencies__] -- -- and -- -- --- [__Deprecation state__] +-- [__Deprecation State__] -- -- - /Promoted/ to -- diff --git a/src/Vulkan/Extensions/VK_KHR_storage_buffer_storage_class.hs b/src/Vulkan/Extensions/VK_KHR_storage_buffer_storage_class.hs index dbdfafaf8..114b24336 100644 --- a/src/Vulkan/Extensions/VK_KHR_storage_buffer_storage_class.hs +++ b/src/Vulkan/Extensions/VK_KHR_storage_buffer_storage_class.hs @@ -17,7 +17,10 @@ -- [__Revision__] -- 1 -- --- [__Extension and Version Dependencies__; __Deprecation state__] +-- [__Ratification Status__] +-- Ratified +-- +-- [__Extension and Version Dependencies__; __Deprecation State__] -- -- - /Promoted/ to -- diff --git a/src/Vulkan/Extensions/VK_KHR_surface.hs b/src/Vulkan/Extensions/VK_KHR_surface.hs index df8af276e..16915716c 100644 --- a/src/Vulkan/Extensions/VK_KHR_surface.hs +++ b/src/Vulkan/Extensions/VK_KHR_surface.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 25 -- +-- [__Ratification Status__] +-- Ratified +-- -- [__Extension and Version Dependencies__; __Contact__] -- -- - James Jones @@ -1278,6 +1281,7 @@ instance Zero SurfaceFormatKHR where -- = See Also -- -- , +-- 'Vulkan.Extensions.VK_NV_low_latency2.LatencySurfaceCapabilitiesNV', -- 'Vulkan.Extensions.VK_EXT_surface_maintenance1.SurfacePresentModeCompatibilityEXT', -- 'Vulkan.Extensions.VK_EXT_surface_maintenance1.SurfacePresentModeEXT', -- 'Vulkan.Extensions.VK_KHR_swapchain.SwapchainCreateInfoKHR', @@ -1301,7 +1305,7 @@ pattern PRESENT_MODE_IMMEDIATE_KHR = PresentModeKHR 0 -- 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. One request is removed from the queue and +-- for reuse by the application. One request is removed from the queue and -- processed during each vertical blanking period in which the queue is -- non-empty. pattern PRESENT_MODE_MAILBOX_KHR = PresentModeKHR 1 @@ -1431,9 +1435,9 @@ instance Read PresentModeKHR where -- For a traditional “Linear” or non-gamma transfer function color space -- use 'COLOR_SPACE_PASS_THROUGH_EXT'. -- --- The color components of non-linear color space swap chain images /must/ +-- The color components of non-linear color space swapchain images /must/ -- have had the appropriate transfer function applied. The color space --- selected for the swap chain image will not affect the processing of data +-- selected for the swapchain image will not affect the processing of data -- written into the image by the implementation. Vulkan requires that all -- implementations support the sRGB transfer function by use of an SRGB -- pixel format. Other transfer functions, such as SMPTE 170M or SMPTE2084, diff --git a/src/Vulkan/Extensions/VK_KHR_surface.hs-boot b/src/Vulkan/Extensions/VK_KHR_surface.hs-boot index a78e5a96f..09145ca44 100644 --- a/src/Vulkan/Extensions/VK_KHR_surface.hs-boot +++ b/src/Vulkan/Extensions/VK_KHR_surface.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 25 -- +-- [__Ratification Status__] +-- Ratified +-- -- [__Extension and Version Dependencies__; __Contact__] -- -- - James Jones diff --git a/src/Vulkan/Extensions/VK_KHR_surface_protected_capabilities.hs b/src/Vulkan/Extensions/VK_KHR_surface_protected_capabilities.hs index ac31f550e..0e876ff7f 100644 --- a/src/Vulkan/Extensions/VK_KHR_surface_protected_capabilities.hs +++ b/src/Vulkan/Extensions/VK_KHR_surface_protected_capabilities.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Ratified +-- -- [__Extension and Version Dependencies__] -- -- and diff --git a/src/Vulkan/Extensions/VK_KHR_surface_protected_capabilities.hs-boot b/src/Vulkan/Extensions/VK_KHR_surface_protected_capabilities.hs-boot index 8ffe3fb54..68efb8890 100644 --- a/src/Vulkan/Extensions/VK_KHR_surface_protected_capabilities.hs-boot +++ b/src/Vulkan/Extensions/VK_KHR_surface_protected_capabilities.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Ratified +-- -- [__Extension and Version Dependencies__] -- -- and diff --git a/src/Vulkan/Extensions/VK_KHR_swapchain.hs b/src/Vulkan/Extensions/VK_KHR_swapchain.hs index 5b7a92fa2..a4b3a27ce 100644 --- a/src/Vulkan/Extensions/VK_KHR_swapchain.hs +++ b/src/Vulkan/Extensions/VK_KHR_swapchain.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 70 -- +-- [__Ratification Status__] +-- Ratified +-- -- [__Extension and Version Dependencies__] -- -- @@ -1202,6 +1205,7 @@ import Vulkan.Core10.Handles (Fence) import Vulkan.Core10.Handles (Fence(..)) import Vulkan.Core10.FundamentalTypes (Flags) import Vulkan.Core10.Enums.Format (Format) +import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_frame_boundary (FrameBoundaryEXT) import Vulkan.Core10.Handles (Image) import Vulkan.Core10.Handles (Image(..)) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_image_compression_control (ImageCompressionControlEXT) @@ -1243,6 +1247,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_display_control (SwapchainCounter import {-# SOURCE #-} Vulkan.Extensions.VK_AMD_display_native_hdr (SwapchainDisplayNativeHdrCreateInfoAMD) import Vulkan.Extensions.Handles (SwapchainKHR) import Vulkan.Extensions.Handles (SwapchainKHR(..)) +import {-# SOURCE #-} Vulkan.Extensions.VK_NV_low_latency2 (SwapchainLatencyCreateInfoNV) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_present_barrier (SwapchainPresentBarrierCreateInfoNV) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_swapchain_maintenance1 (SwapchainPresentFenceInfoEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_swapchain_maintenance1 (SwapchainPresentModeInfoEXT) @@ -1331,11 +1336,11 @@ foreign import ccall -- The @pCreateInfo->surface@ /must/ not be destroyed until after the -- swapchain is destroyed. -- --- If @pCreateInfo->oldSwapchain@ is --- 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the native window referred --- to by @pCreateInfo->surface@ is already associated with a Vulkan --- swapchain, 'Vulkan.Core10.Enums.Result.ERROR_NATIVE_WINDOW_IN_USE_KHR' --- /must/ be returned. +-- If @oldSwapchain@ is 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the +-- native window referred to by @pCreateInfo->surface@ is already +-- associated with a Vulkan swapchain, +-- 'Vulkan.Core10.Enums.Result.ERROR_NATIVE_WINDOW_IN_USE_KHR' /must/ be +-- returned. -- -- If the native window referred to by @pCreateInfo->surface@ is already -- associated with a non-Vulkan graphics API surface, @@ -1941,12 +1946,6 @@ foreign import ccall -- the @pWaitSemaphores@ member of @pPresentInfo@ executes on @queue@, -- there /must/ be no other queues waiting on the same semaphore -- --- - #VUID-vkQueuePresentKHR-pWaitSemaphores-01295# All elements of the --- @pWaitSemaphores@ member of @pPresentInfo@ /must/ be semaphores that --- are signaled, or have --- --- previously submitted for execution --- -- - #VUID-vkQueuePresentKHR-pWaitSemaphores-03267# All elements of the -- @pWaitSemaphores@ member of @pPresentInfo@ /must/ be created with a -- 'Vulkan.Core12.Enums.SemaphoreType.SemaphoreType' of @@ -1955,8 +1954,10 @@ foreign import ccall -- - #VUID-vkQueuePresentKHR-pWaitSemaphores-03268# All elements of the -- @pWaitSemaphores@ member of @pPresentInfo@ /must/ reference a -- semaphore signal operation that has been submitted for execution and --- any semaphore signal operations on which it depends (if any) /must/ --- have also been submitted for execution +-- any +-- +-- on which it depends (if any) /must/ have also been submitted for +-- execution -- -- Any writes to memory backing the images referenced by the -- @pImageIndices@ and @pSwapchains@ members of @pPresentInfo@, that are @@ -2038,6 +2039,7 @@ foreign import ccall -- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ -- | | | | | | -- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================+ +-- | - | - | - | Any | - | -- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ -- -- == Return Codes @@ -2731,6 +2733,7 @@ getPhysicalDevicePresentRectanglesKHR physicalDevice -- 'Vulkan.Extensions.VK_EXT_full_screen_exclusive.SurfaceFullScreenExclusiveWin32InfoEXT', -- 'Vulkan.Extensions.VK_EXT_display_control.SwapchainCounterCreateInfoEXT', -- 'Vulkan.Extensions.VK_AMD_display_native_hdr.SwapchainDisplayNativeHdrCreateInfoAMD', +-- 'Vulkan.Extensions.VK_NV_low_latency2.SwapchainLatencyCreateInfoNV', -- 'Vulkan.Extensions.VK_NV_present_barrier.SwapchainPresentBarrierCreateInfoNV', -- 'Vulkan.Extensions.VK_EXT_swapchain_maintenance1.SwapchainPresentModesCreateInfoEXT', -- or @@ -2915,6 +2918,7 @@ instance Extensible SwapchainCreateInfoKHR where getNext SwapchainCreateInfoKHR{..} = next extends :: forall e b proxy. Typeable e => proxy e -> (Extends SwapchainCreateInfoKHR e => b) -> Maybe b extends _ f + | Just Refl <- eqT @e @SwapchainLatencyCreateInfoNV = Just f | Just Refl <- eqT @e @SwapchainPresentScalingCreateInfoEXT = Just f | Just Refl <- eqT @e @SwapchainPresentModesCreateInfoEXT = Just f | Just Refl <- eqT @e @ImageCompressionControlEXT = Just f @@ -3059,6 +3063,9 @@ instance es ~ '[] => Zero (SwapchainCreateInfoKHR es) where -- -- == Valid Usage -- +-- - #VUID-VkPresentInfoKHR-pSwapchain-09231# Elements of @pSwapchain@ +-- /must/ be unique +-- -- - #VUID-VkPresentInfoKHR-pImageIndices-01430# Each element of -- @pImageIndices@ /must/ be the index of a presentable image acquired -- from the swapchain specified by the corresponding element of the @@ -3076,6 +3083,12 @@ instance es ~ '[] => Zero (SwapchainCreateInfoKHR es) where -- feature is not enabled, each @presentIds@ entry in that structure -- /must/ be NULL -- +-- - #VUID-VkPresentInfoKHR-pSwapchains-09199# If any element of the +-- @pSwapchains@ array has been created with +-- 'Vulkan.Extensions.VK_EXT_swapchain_maintenance1.SwapchainPresentModesCreateInfoEXT', +-- all of the elements of this array /must/ be created with +-- 'Vulkan.Extensions.VK_EXT_swapchain_maintenance1.SwapchainPresentModesCreateInfoEXT' +-- -- == Valid Usage (Implicit) -- -- - #VUID-VkPresentInfoKHR-sType-sType# @sType@ /must/ be @@ -3086,6 +3099,7 @@ instance es ~ '[] => Zero (SwapchainCreateInfoKHR es) where -- @NULL@ or a pointer to a valid instance of -- 'DeviceGroupPresentInfoKHR', -- 'Vulkan.Extensions.VK_KHR_display_swapchain.DisplayPresentInfoKHR', +-- 'Vulkan.Extensions.VK_EXT_frame_boundary.FrameBoundaryEXT', -- 'Vulkan.Extensions.VK_GGP_frame_token.PresentFrameTokenGGP', -- 'Vulkan.Extensions.VK_KHR_present_id.PresentIdKHR', -- 'Vulkan.Extensions.VK_KHR_incremental_present.PresentRegionsKHR', @@ -3138,8 +3152,7 @@ data PresentInfoKHR (es :: [Type]) = PresentInfoKHR waitSemaphores :: Vector Semaphore , -- | @pSwapchains@ is a pointer to an array of -- 'Vulkan.Extensions.Handles.SwapchainKHR' objects with @swapchainCount@ - -- entries. A given swapchain /must/ not appear in this list more than - -- once. + -- entries. swapchains :: Vector SwapchainKHR , -- | @pImageIndices@ is a pointer to an array of indices into the array of -- each swapchain’s presentable images, with @swapchainCount@ entries. Each @@ -3168,6 +3181,7 @@ instance Extensible PresentInfoKHR where extends _ f | Just Refl <- eqT @e @SwapchainPresentModeInfoEXT = Just f | Just Refl <- eqT @e @SwapchainPresentFenceInfoEXT = Just f + | Just Refl <- eqT @e @FrameBoundaryEXT = Just f | Just Refl <- eqT @e @PresentFrameTokenGGP = Just f | Just Refl <- eqT @e @PresentTimesInfoGOOGLE = Just f | Just Refl <- eqT @e @PresentIdKHR = Just f diff --git a/src/Vulkan/Extensions/VK_KHR_swapchain.hs-boot b/src/Vulkan/Extensions/VK_KHR_swapchain.hs-boot index d55c0809d..89238ed6c 100644 --- a/src/Vulkan/Extensions/VK_KHR_swapchain.hs-boot +++ b/src/Vulkan/Extensions/VK_KHR_swapchain.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 70 -- +-- [__Ratification Status__] +-- Ratified +-- -- [__Extension and Version Dependencies__] -- -- diff --git a/src/Vulkan/Extensions/VK_KHR_swapchain_mutable_format.hs b/src/Vulkan/Extensions/VK_KHR_swapchain_mutable_format.hs index d4a8881cc..8a0d731c7 100644 --- a/src/Vulkan/Extensions/VK_KHR_swapchain_mutable_format.hs +++ b/src/Vulkan/Extensions/VK_KHR_swapchain_mutable_format.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Ratified +-- -- [__Extension and Version Dependencies__] -- -- and diff --git a/src/Vulkan/Extensions/VK_KHR_synchronization2.hs b/src/Vulkan/Extensions/VK_KHR_synchronization2.hs index 4bc217c72..e9a732562 100644 --- a/src/Vulkan/Extensions/VK_KHR_synchronization2.hs +++ b/src/Vulkan/Extensions/VK_KHR_synchronization2.hs @@ -17,12 +17,15 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Ratified +-- -- [__Extension and Version Dependencies__] -- -- or -- -- --- [__Deprecation state__] +-- [__Deprecation State__] -- -- - /Promoted/ to -- @@ -700,15 +703,14 @@ foreign import ccall -- - #VUID-vkCmdWriteBufferMarker2AMD-stage-04957# If the -- -- feature is not enabled, @stage@ /must/ not contain --- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI' +-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI' -- -- - #VUID-vkCmdWriteBufferMarker2AMD-stage-04995# If the -- -- feature is not enabled, @stage@ /must/ not contain -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI' -- --- - #VUID-vkCmdWriteBufferMarker2AMD-rayTracingPipeline-07946# If --- neither the +-- - #VUID-vkCmdWriteBufferMarker2AMD-stage-07946# If neither the -- -- extension or -- diff --git a/src/Vulkan/Extensions/VK_KHR_synchronization2.hs-boot b/src/Vulkan/Extensions/VK_KHR_synchronization2.hs-boot index 68ada223f..1aec5ca6a 100644 --- a/src/Vulkan/Extensions/VK_KHR_synchronization2.hs-boot +++ b/src/Vulkan/Extensions/VK_KHR_synchronization2.hs-boot @@ -17,12 +17,15 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Ratified +-- -- [__Extension and Version Dependencies__] -- -- or -- -- --- [__Deprecation state__] +-- [__Deprecation State__] -- -- - /Promoted/ to -- diff --git a/src/Vulkan/Extensions/VK_KHR_timeline_semaphore.hs b/src/Vulkan/Extensions/VK_KHR_timeline_semaphore.hs index f03a7fa96..b6a1b6945 100644 --- a/src/Vulkan/Extensions/VK_KHR_timeline_semaphore.hs +++ b/src/Vulkan/Extensions/VK_KHR_timeline_semaphore.hs @@ -17,10 +17,13 @@ -- [__Revision__] -- 2 -- +-- [__Ratification Status__] +-- Ratified +-- -- [__Extension and Version Dependencies__] -- -- --- [__Deprecation state__] +-- [__Deprecation State__] -- -- - /Promoted/ to -- diff --git a/src/Vulkan/Extensions/VK_KHR_uniform_buffer_standard_layout.hs b/src/Vulkan/Extensions/VK_KHR_uniform_buffer_standard_layout.hs index e68806bf9..cd1f3ddb8 100644 --- a/src/Vulkan/Extensions/VK_KHR_uniform_buffer_standard_layout.hs +++ b/src/Vulkan/Extensions/VK_KHR_uniform_buffer_standard_layout.hs @@ -17,10 +17,13 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Ratified +-- -- [__Extension and Version Dependencies__] -- -- --- [__Deprecation state__] +-- [__Deprecation State__] -- -- - /Promoted/ to -- diff --git a/src/Vulkan/Extensions/VK_KHR_variable_pointers.hs b/src/Vulkan/Extensions/VK_KHR_variable_pointers.hs index 744ac4871..d66af413d 100644 --- a/src/Vulkan/Extensions/VK_KHR_variable_pointers.hs +++ b/src/Vulkan/Extensions/VK_KHR_variable_pointers.hs @@ -17,12 +17,15 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Ratified +-- -- [__Extension and Version Dependencies__] -- -- and -- -- --- [__Deprecation state__] +-- [__Deprecation State__] -- -- - /Promoted/ to -- diff --git a/src/Vulkan/Extensions/VK_KHR_vulkan_memory_model.hs b/src/Vulkan/Extensions/VK_KHR_vulkan_memory_model.hs index e3417ecc4..6e0ad0b95 100644 --- a/src/Vulkan/Extensions/VK_KHR_vulkan_memory_model.hs +++ b/src/Vulkan/Extensions/VK_KHR_vulkan_memory_model.hs @@ -17,10 +17,13 @@ -- [__Revision__] -- 3 -- +-- [__Ratification Status__] +-- Ratified +-- -- [__Extension and Version Dependencies__] -- -- --- [__Deprecation state__] +-- [__Deprecation State__] -- -- - /Promoted/ to -- diff --git a/src/Vulkan/Extensions/VK_KHR_wayland_surface.hs b/src/Vulkan/Extensions/VK_KHR_wayland_surface.hs index bafbda818..e43accf0d 100644 --- a/src/Vulkan/Extensions/VK_KHR_wayland_surface.hs +++ b/src/Vulkan/Extensions/VK_KHR_wayland_surface.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 6 -- +-- [__Ratification Status__] +-- Ratified +-- -- [__Extension and Version Dependencies__] -- -- diff --git a/src/Vulkan/Extensions/VK_KHR_wayland_surface.hs-boot b/src/Vulkan/Extensions/VK_KHR_wayland_surface.hs-boot index 13c0eff8e..53c813f3b 100644 --- a/src/Vulkan/Extensions/VK_KHR_wayland_surface.hs-boot +++ b/src/Vulkan/Extensions/VK_KHR_wayland_surface.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 6 -- +-- [__Ratification Status__] +-- Ratified +-- -- [__Extension and Version Dependencies__] -- -- diff --git a/src/Vulkan/Extensions/VK_KHR_win32_keyed_mutex.hs b/src/Vulkan/Extensions/VK_KHR_win32_keyed_mutex.hs index 3e14219ed..1317fe9fa 100644 --- a/src/Vulkan/Extensions/VK_KHR_win32_keyed_mutex.hs +++ b/src/Vulkan/Extensions/VK_KHR_win32_keyed_mutex.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Ratified +-- -- [__Extension and Version Dependencies__] -- -- diff --git a/src/Vulkan/Extensions/VK_KHR_win32_keyed_mutex.hs-boot b/src/Vulkan/Extensions/VK_KHR_win32_keyed_mutex.hs-boot index 94f61ee16..0121e93c0 100644 --- a/src/Vulkan/Extensions/VK_KHR_win32_keyed_mutex.hs-boot +++ b/src/Vulkan/Extensions/VK_KHR_win32_keyed_mutex.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Ratified +-- -- [__Extension and Version Dependencies__] -- -- diff --git a/src/Vulkan/Extensions/VK_KHR_win32_surface.hs b/src/Vulkan/Extensions/VK_KHR_win32_surface.hs index 9d7a5e9e3..c2659b1d7 100644 --- a/src/Vulkan/Extensions/VK_KHR_win32_surface.hs +++ b/src/Vulkan/Extensions/VK_KHR_win32_surface.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 6 -- +-- [__Ratification Status__] +-- Ratified +-- -- [__Extension and Version Dependencies__] -- -- diff --git a/src/Vulkan/Extensions/VK_KHR_win32_surface.hs-boot b/src/Vulkan/Extensions/VK_KHR_win32_surface.hs-boot index c2ddfb063..9a5687700 100644 --- a/src/Vulkan/Extensions/VK_KHR_win32_surface.hs-boot +++ b/src/Vulkan/Extensions/VK_KHR_win32_surface.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 6 -- +-- [__Ratification Status__] +-- Ratified +-- -- [__Extension and Version Dependencies__] -- -- diff --git a/src/Vulkan/Extensions/VK_KHR_workgroup_memory_explicit_layout.hs b/src/Vulkan/Extensions/VK_KHR_workgroup_memory_explicit_layout.hs index 9f7e137df..65bde67c3 100644 --- a/src/Vulkan/Extensions/VK_KHR_workgroup_memory_explicit_layout.hs +++ b/src/Vulkan/Extensions/VK_KHR_workgroup_memory_explicit_layout.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Ratified +-- -- [__Extension and Version Dependencies__] -- -- diff --git a/src/Vulkan/Extensions/VK_KHR_workgroup_memory_explicit_layout.hs-boot b/src/Vulkan/Extensions/VK_KHR_workgroup_memory_explicit_layout.hs-boot index 3480c6a9f..cb6207055 100644 --- a/src/Vulkan/Extensions/VK_KHR_workgroup_memory_explicit_layout.hs-boot +++ b/src/Vulkan/Extensions/VK_KHR_workgroup_memory_explicit_layout.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Ratified +-- -- [__Extension and Version Dependencies__] -- -- diff --git a/src/Vulkan/Extensions/VK_KHR_xcb_surface.hs b/src/Vulkan/Extensions/VK_KHR_xcb_surface.hs index 211d47a65..21219fa51 100644 --- a/src/Vulkan/Extensions/VK_KHR_xcb_surface.hs +++ b/src/Vulkan/Extensions/VK_KHR_xcb_surface.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 6 -- +-- [__Ratification Status__] +-- Ratified +-- -- [__Extension and Version Dependencies__] -- -- diff --git a/src/Vulkan/Extensions/VK_KHR_xcb_surface.hs-boot b/src/Vulkan/Extensions/VK_KHR_xcb_surface.hs-boot index 4e872af59..d13837849 100644 --- a/src/Vulkan/Extensions/VK_KHR_xcb_surface.hs-boot +++ b/src/Vulkan/Extensions/VK_KHR_xcb_surface.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 6 -- +-- [__Ratification Status__] +-- Ratified +-- -- [__Extension and Version Dependencies__] -- -- diff --git a/src/Vulkan/Extensions/VK_KHR_xlib_surface.hs b/src/Vulkan/Extensions/VK_KHR_xlib_surface.hs index 56904e25a..f82a45157 100644 --- a/src/Vulkan/Extensions/VK_KHR_xlib_surface.hs +++ b/src/Vulkan/Extensions/VK_KHR_xlib_surface.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 6 -- +-- [__Ratification Status__] +-- Ratified +-- -- [__Extension and Version Dependencies__] -- -- diff --git a/src/Vulkan/Extensions/VK_KHR_xlib_surface.hs-boot b/src/Vulkan/Extensions/VK_KHR_xlib_surface.hs-boot index 0df5eb52e..8f9916c57 100644 --- a/src/Vulkan/Extensions/VK_KHR_xlib_surface.hs-boot +++ b/src/Vulkan/Extensions/VK_KHR_xlib_surface.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 6 -- +-- [__Ratification Status__] +-- Ratified +-- -- [__Extension and Version Dependencies__] -- -- diff --git a/src/Vulkan/Extensions/VK_KHR_zero_initialize_workgroup_memory.hs b/src/Vulkan/Extensions/VK_KHR_zero_initialize_workgroup_memory.hs index e9d6c11ca..f1f9f4c6b 100644 --- a/src/Vulkan/Extensions/VK_KHR_zero_initialize_workgroup_memory.hs +++ b/src/Vulkan/Extensions/VK_KHR_zero_initialize_workgroup_memory.hs @@ -17,10 +17,13 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Ratified +-- -- [__Extension and Version Dependencies__] -- -- --- [__Deprecation state__] +-- [__Deprecation State__] -- -- - /Promoted/ to -- diff --git a/src/Vulkan/Extensions/VK_LUNARG_direct_driver_loading.hs b/src/Vulkan/Extensions/VK_LUNARG_direct_driver_loading.hs index a80013ddb..c3e7fb4bb 100644 --- a/src/Vulkan/Extensions/VK_LUNARG_direct_driver_loading.hs +++ b/src/Vulkan/Extensions/VK_LUNARG_direct_driver_loading.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__; __Contact__] -- -- - Charles Giessen diff --git a/src/Vulkan/Extensions/VK_LUNARG_direct_driver_loading.hs-boot b/src/Vulkan/Extensions/VK_LUNARG_direct_driver_loading.hs-boot index e48cc65cd..dd4bbfb64 100644 --- a/src/Vulkan/Extensions/VK_LUNARG_direct_driver_loading.hs-boot +++ b/src/Vulkan/Extensions/VK_LUNARG_direct_driver_loading.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__; __Contact__] -- -- - Charles Giessen diff --git a/src/Vulkan/Extensions/VK_MSFT_layered_driver.hs b/src/Vulkan/Extensions/VK_MSFT_layered_driver.hs new file mode 100644 index 000000000..e2fe6e90d --- /dev/null +++ b/src/Vulkan/Extensions/VK_MSFT_layered_driver.hs @@ -0,0 +1,258 @@ +{-# language CPP #-} +-- | = Name +-- +-- VK_MSFT_layered_driver - device extension +-- +-- == VK_MSFT_layered_driver +-- +-- [__Name String__] +-- @VK_MSFT_layered_driver@ +-- +-- [__Extension Type__] +-- Device extension +-- +-- [__Registered Extension Number__] +-- 531 +-- +-- [__Revision__] +-- 1 +-- +-- [__Ratification Status__] +-- Not ratified +-- +-- [__Extension and Version Dependencies__] +-- +-- +-- [__Contact__] +-- +-- - Jesse Natalie +-- +-- +-- [__Extension Proposal__] +-- +-- +-- == Other Extension Metadata +-- +-- [__Last Modified Date__] +-- 2023-06-21 +-- +-- [__IP Status__] +-- No known IP claims. +-- +-- [__Contributors__] +-- +-- - Jesse Natalie, Microsoft +-- +-- == Description +-- +-- This extension adds new physical device properties to allow applications +-- and the Vulkan ICD loader to understand when a physical device is +-- implemented as a layered driver on top of another underlying API. +-- +-- == New Structures +-- +-- - Extending +-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2': +-- +-- - 'PhysicalDeviceLayeredDriverPropertiesMSFT' +-- +-- == New Enums +-- +-- - 'LayeredDriverUnderlyingApiMSFT' +-- +-- == New Enum Constants +-- +-- - 'MSFT_LAYERED_DRIVER_EXTENSION_NAME' +-- +-- - 'MSFT_LAYERED_DRIVER_SPEC_VERSION' +-- +-- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType': +-- +-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_DRIVER_PROPERTIES_MSFT' +-- +-- == Examples +-- +-- None. +-- +-- == Version History +-- +-- - Revision 1, 2023-06-21 (Jesse Natalie) +-- +-- - Initial revision +-- +-- == See Also +-- +-- 'LayeredDriverUnderlyingApiMSFT', +-- 'PhysicalDeviceLayeredDriverPropertiesMSFT' +-- +-- == Document Notes +-- +-- For more information, see the +-- +-- +-- This page is a generated document. Fixes and changes should be made to +-- the generator scripts, not directly. +module Vulkan.Extensions.VK_MSFT_layered_driver ( PhysicalDeviceLayeredDriverPropertiesMSFT(..) + , LayeredDriverUnderlyingApiMSFT( LAYERED_DRIVER_UNDERLYING_API_NONE_MSFT + , LAYERED_DRIVER_UNDERLYING_API_D3D12_MSFT + , .. + ) + , MSFT_LAYERED_DRIVER_SPEC_VERSION + , pattern MSFT_LAYERED_DRIVER_SPEC_VERSION + , MSFT_LAYERED_DRIVER_EXTENSION_NAME + , pattern MSFT_LAYERED_DRIVER_EXTENSION_NAME + ) where + +import Vulkan.Internal.Utils (enumReadPrec) +import Vulkan.Internal.Utils (enumShowsPrec) +import Foreign.Marshal.Alloc (allocaBytes) +import Foreign.Ptr (nullPtr) +import Foreign.Ptr (plusPtr) +import GHC.Show (showsPrec) +import Vulkan.CStruct (FromCStruct) +import Vulkan.CStruct (FromCStruct(..)) +import Vulkan.CStruct (ToCStruct) +import Vulkan.CStruct (ToCStruct(..)) +import Vulkan.Zero (Zero) +import Vulkan.Zero (Zero(..)) +import Data.String (IsString) +import Data.Typeable (Typeable) +import Foreign.Storable (Storable) +import Foreign.Storable (Storable(peek)) +import Foreign.Storable (Storable(poke)) +import qualified Foreign.Storable (Storable(..)) +import GHC.Generics (Generic) +import Data.Int (Int32) +import Foreign.Ptr (Ptr) +import GHC.Read (Read(readPrec)) +import GHC.Show (Show(showsPrec)) +import Data.Kind (Type) +import Vulkan.Core10.Enums.StructureType (StructureType) +import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_DRIVER_PROPERTIES_MSFT)) +-- | VkPhysicalDeviceLayeredDriverPropertiesMSFT - Structure containing +-- information about driver layering for a physical device +-- +-- = Description +-- +-- These are properties of the driver layering information of a physical +-- device. +-- +-- == Valid Usage (Implicit) +-- +-- = See Also +-- +-- , +-- 'LayeredDriverUnderlyingApiMSFT', +-- 'Vulkan.Core10.Enums.StructureType.StructureType' +data PhysicalDeviceLayeredDriverPropertiesMSFT = PhysicalDeviceLayeredDriverPropertiesMSFT + { -- | @underlyingAPI@ is a 'LayeredDriverUnderlyingApiMSFT' value indicating + -- which underlying API is used to implement the layered driver, or + -- 'LAYERED_DRIVER_UNDERLYING_API_NONE_MSFT' if the driver is not layered. + underlyingAPI :: LayeredDriverUnderlyingApiMSFT } + deriving (Typeable, Eq) +#if defined(GENERIC_INSTANCES) +deriving instance Generic (PhysicalDeviceLayeredDriverPropertiesMSFT) +#endif +deriving instance Show PhysicalDeviceLayeredDriverPropertiesMSFT + +instance ToCStruct PhysicalDeviceLayeredDriverPropertiesMSFT where + withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p) + pokeCStruct p PhysicalDeviceLayeredDriverPropertiesMSFT{..} f = do + poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_DRIVER_PROPERTIES_MSFT) + poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr) + poke ((p `plusPtr` 16 :: Ptr LayeredDriverUnderlyingApiMSFT)) (underlyingAPI) + f + cStructSize = 24 + cStructAlignment = 8 + pokeZeroCStruct p f = do + poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_DRIVER_PROPERTIES_MSFT) + poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr) + poke ((p `plusPtr` 16 :: Ptr LayeredDriverUnderlyingApiMSFT)) (zero) + f + +instance FromCStruct PhysicalDeviceLayeredDriverPropertiesMSFT where + peekCStruct p = do + underlyingAPI <- peek @LayeredDriverUnderlyingApiMSFT ((p `plusPtr` 16 :: Ptr LayeredDriverUnderlyingApiMSFT)) + pure $ PhysicalDeviceLayeredDriverPropertiesMSFT + underlyingAPI + +instance Storable PhysicalDeviceLayeredDriverPropertiesMSFT where + sizeOf ~_ = 24 + alignment ~_ = 8 + peek = peekCStruct + poke ptr poked = pokeCStruct ptr poked (pure ()) + +instance Zero PhysicalDeviceLayeredDriverPropertiesMSFT where + zero = PhysicalDeviceLayeredDriverPropertiesMSFT + zero + + +-- | VkLayeredDriverUnderlyingApiMSFT - Layered driver underlying APIs +-- +-- = See Also +-- +-- , +-- 'PhysicalDeviceLayeredDriverPropertiesMSFT' +newtype LayeredDriverUnderlyingApiMSFT = LayeredDriverUnderlyingApiMSFT Int32 + deriving newtype (Eq, Ord, Storable, Zero) + +-- No documentation found for Nested "VkLayeredDriverUnderlyingApiMSFT" "VK_LAYERED_DRIVER_UNDERLYING_API_NONE_MSFT" +pattern LAYERED_DRIVER_UNDERLYING_API_NONE_MSFT = LayeredDriverUnderlyingApiMSFT 0 + +-- No documentation found for Nested "VkLayeredDriverUnderlyingApiMSFT" "VK_LAYERED_DRIVER_UNDERLYING_API_D3D12_MSFT" +pattern LAYERED_DRIVER_UNDERLYING_API_D3D12_MSFT = LayeredDriverUnderlyingApiMSFT 1 + +{-# COMPLETE + LAYERED_DRIVER_UNDERLYING_API_NONE_MSFT + , LAYERED_DRIVER_UNDERLYING_API_D3D12_MSFT :: + LayeredDriverUnderlyingApiMSFT + #-} + +conNameLayeredDriverUnderlyingApiMSFT :: String +conNameLayeredDriverUnderlyingApiMSFT = "LayeredDriverUnderlyingApiMSFT" + +enumPrefixLayeredDriverUnderlyingApiMSFT :: String +enumPrefixLayeredDriverUnderlyingApiMSFT = "LAYERED_DRIVER_UNDERLYING_API_" + +showTableLayeredDriverUnderlyingApiMSFT :: [(LayeredDriverUnderlyingApiMSFT, String)] +showTableLayeredDriverUnderlyingApiMSFT = + [ + ( LAYERED_DRIVER_UNDERLYING_API_NONE_MSFT + , "NONE_MSFT" + ) + , + ( LAYERED_DRIVER_UNDERLYING_API_D3D12_MSFT + , "D3D12_MSFT" + ) + ] + +instance Show LayeredDriverUnderlyingApiMSFT where + showsPrec = + enumShowsPrec + enumPrefixLayeredDriverUnderlyingApiMSFT + showTableLayeredDriverUnderlyingApiMSFT + conNameLayeredDriverUnderlyingApiMSFT + (\(LayeredDriverUnderlyingApiMSFT x) -> x) + (showsPrec 11) + +instance Read LayeredDriverUnderlyingApiMSFT where + readPrec = + enumReadPrec + enumPrefixLayeredDriverUnderlyingApiMSFT + showTableLayeredDriverUnderlyingApiMSFT + conNameLayeredDriverUnderlyingApiMSFT + LayeredDriverUnderlyingApiMSFT + +type MSFT_LAYERED_DRIVER_SPEC_VERSION = 1 + +-- No documentation found for TopLevel "VK_MSFT_LAYERED_DRIVER_SPEC_VERSION" +pattern MSFT_LAYERED_DRIVER_SPEC_VERSION :: forall a . Integral a => a +pattern MSFT_LAYERED_DRIVER_SPEC_VERSION = 1 + + +type MSFT_LAYERED_DRIVER_EXTENSION_NAME = "VK_MSFT_layered_driver" + +-- No documentation found for TopLevel "VK_MSFT_LAYERED_DRIVER_EXTENSION_NAME" +pattern MSFT_LAYERED_DRIVER_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a +pattern MSFT_LAYERED_DRIVER_EXTENSION_NAME = "VK_MSFT_layered_driver" + diff --git a/src/Vulkan/Extensions/VK_MSFT_layered_driver.hs-boot b/src/Vulkan/Extensions/VK_MSFT_layered_driver.hs-boot new file mode 100644 index 000000000..26db9bc85 --- /dev/null +++ b/src/Vulkan/Extensions/VK_MSFT_layered_driver.hs-boot @@ -0,0 +1,107 @@ +{-# language CPP #-} +-- | = Name +-- +-- VK_MSFT_layered_driver - device extension +-- +-- == VK_MSFT_layered_driver +-- +-- [__Name String__] +-- @VK_MSFT_layered_driver@ +-- +-- [__Extension Type__] +-- Device extension +-- +-- [__Registered Extension Number__] +-- 531 +-- +-- [__Revision__] +-- 1 +-- +-- [__Ratification Status__] +-- Not ratified +-- +-- [__Extension and Version Dependencies__] +-- +-- +-- [__Contact__] +-- +-- - Jesse Natalie +-- +-- +-- [__Extension Proposal__] +-- +-- +-- == Other Extension Metadata +-- +-- [__Last Modified Date__] +-- 2023-06-21 +-- +-- [__IP Status__] +-- No known IP claims. +-- +-- [__Contributors__] +-- +-- - Jesse Natalie, Microsoft +-- +-- == Description +-- +-- This extension adds new physical device properties to allow applications +-- and the Vulkan ICD loader to understand when a physical device is +-- implemented as a layered driver on top of another underlying API. +-- +-- == New Structures +-- +-- - Extending +-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2': +-- +-- - 'PhysicalDeviceLayeredDriverPropertiesMSFT' +-- +-- == New Enums +-- +-- - 'LayeredDriverUnderlyingApiMSFT' +-- +-- == New Enum Constants +-- +-- - 'MSFT_LAYERED_DRIVER_EXTENSION_NAME' +-- +-- - 'MSFT_LAYERED_DRIVER_SPEC_VERSION' +-- +-- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType': +-- +-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_DRIVER_PROPERTIES_MSFT' +-- +-- == Examples +-- +-- None. +-- +-- == Version History +-- +-- - Revision 1, 2023-06-21 (Jesse Natalie) +-- +-- - Initial revision +-- +-- == See Also +-- +-- 'LayeredDriverUnderlyingApiMSFT', +-- 'PhysicalDeviceLayeredDriverPropertiesMSFT' +-- +-- == Document Notes +-- +-- For more information, see the +-- +-- +-- This page is a generated document. Fixes and changes should be made to +-- the generator scripts, not directly. +module Vulkan.Extensions.VK_MSFT_layered_driver (PhysicalDeviceLayeredDriverPropertiesMSFT) where + +import Vulkan.CStruct (FromCStruct) +import Vulkan.CStruct (ToCStruct) +import Data.Kind (Type) + +data PhysicalDeviceLayeredDriverPropertiesMSFT + +instance ToCStruct PhysicalDeviceLayeredDriverPropertiesMSFT +instance Show PhysicalDeviceLayeredDriverPropertiesMSFT + +instance FromCStruct PhysicalDeviceLayeredDriverPropertiesMSFT + diff --git a/src/Vulkan/Extensions/VK_MVK_ios_surface.hs b/src/Vulkan/Extensions/VK_MVK_ios_surface.hs index 53244f4c8..88c4c89de 100644 --- a/src/Vulkan/Extensions/VK_MVK_ios_surface.hs +++ b/src/Vulkan/Extensions/VK_MVK_ios_surface.hs @@ -17,10 +17,13 @@ -- [__Revision__] -- 3 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- --- [__Deprecation state__] +-- [__Deprecation State__] -- -- - /Deprecated/ by @VK_EXT_metal_surface@ extension -- diff --git a/src/Vulkan/Extensions/VK_MVK_ios_surface.hs-boot b/src/Vulkan/Extensions/VK_MVK_ios_surface.hs-boot index 3f37a005a..7aed23a1d 100644 --- a/src/Vulkan/Extensions/VK_MVK_ios_surface.hs-boot +++ b/src/Vulkan/Extensions/VK_MVK_ios_surface.hs-boot @@ -17,10 +17,13 @@ -- [__Revision__] -- 3 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- --- [__Deprecation state__] +-- [__Deprecation State__] -- -- - /Deprecated/ by @VK_EXT_metal_surface@ extension -- diff --git a/src/Vulkan/Extensions/VK_MVK_macos_surface.hs b/src/Vulkan/Extensions/VK_MVK_macos_surface.hs index 9075e122f..5d18a96c5 100644 --- a/src/Vulkan/Extensions/VK_MVK_macos_surface.hs +++ b/src/Vulkan/Extensions/VK_MVK_macos_surface.hs @@ -17,10 +17,13 @@ -- [__Revision__] -- 3 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- --- [__Deprecation state__] +-- [__Deprecation State__] -- -- - /Deprecated/ by @VK_EXT_metal_surface@ extension -- diff --git a/src/Vulkan/Extensions/VK_MVK_macos_surface.hs-boot b/src/Vulkan/Extensions/VK_MVK_macos_surface.hs-boot index 537fb4a5e..1106cb242 100644 --- a/src/Vulkan/Extensions/VK_MVK_macos_surface.hs-boot +++ b/src/Vulkan/Extensions/VK_MVK_macos_surface.hs-boot @@ -17,10 +17,13 @@ -- [__Revision__] -- 3 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- --- [__Deprecation state__] +-- [__Deprecation State__] -- -- - /Deprecated/ by @VK_EXT_metal_surface@ extension -- diff --git a/src/Vulkan/Extensions/VK_NN_vi_surface.hs b/src/Vulkan/Extensions/VK_NN_vi_surface.hs index 489102197..10c21cfb2 100644 --- a/src/Vulkan/Extensions/VK_NN_vi_surface.hs +++ b/src/Vulkan/Extensions/VK_NN_vi_surface.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- diff --git a/src/Vulkan/Extensions/VK_NN_vi_surface.hs-boot b/src/Vulkan/Extensions/VK_NN_vi_surface.hs-boot index f831db7b3..26b9cad2b 100644 --- a/src/Vulkan/Extensions/VK_NN_vi_surface.hs-boot +++ b/src/Vulkan/Extensions/VK_NN_vi_surface.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- diff --git a/src/Vulkan/Extensions/VK_NVX_binary_import.hs b/src/Vulkan/Extensions/VK_NVX_binary_import.hs index 2800852fd..e481414bd 100644 --- a/src/Vulkan/Extensions/VK_NVX_binary_import.hs +++ b/src/Vulkan/Extensions/VK_NVX_binary_import.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__; __Contact__] -- -- - Eric Werness @@ -80,13 +83,6 @@ -- -- - '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' @@ -101,6 +97,17 @@ -- -- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_CU_MODULE_CREATE_INFO_NVX' -- +-- If +-- +-- is supported: +-- +-- - 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' +-- -- == Stub API References -- -- There is currently no specification language written for this type. This diff --git a/src/Vulkan/Extensions/VK_NVX_binary_import.hs-boot b/src/Vulkan/Extensions/VK_NVX_binary_import.hs-boot index 4f02f6555..477454e46 100644 --- a/src/Vulkan/Extensions/VK_NVX_binary_import.hs-boot +++ b/src/Vulkan/Extensions/VK_NVX_binary_import.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__; __Contact__] -- -- - Eric Werness @@ -80,13 +83,6 @@ -- -- - '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' @@ -101,6 +97,17 @@ -- -- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_CU_MODULE_CREATE_INFO_NVX' -- +-- If +-- +-- is supported: +-- +-- - 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' +-- -- == Stub API References -- -- There is currently no specification language written for this type. This diff --git a/src/Vulkan/Extensions/VK_NVX_image_view_handle.hs b/src/Vulkan/Extensions/VK_NVX_image_view_handle.hs index 9c2fe2c6e..725e515ba 100644 --- a/src/Vulkan/Extensions/VK_NVX_image_view_handle.hs +++ b/src/Vulkan/Extensions/VK_NVX_image_view_handle.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 2 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__; __Contact__] -- -- - Eric Werness diff --git a/src/Vulkan/Extensions/VK_NVX_image_view_handle.hs-boot b/src/Vulkan/Extensions/VK_NVX_image_view_handle.hs-boot index 0684b91a6..b5346cd59 100644 --- a/src/Vulkan/Extensions/VK_NVX_image_view_handle.hs-boot +++ b/src/Vulkan/Extensions/VK_NVX_image_view_handle.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 2 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__; __Contact__] -- -- - Eric Werness diff --git a/src/Vulkan/Extensions/VK_NVX_multiview_per_view_attributes.hs b/src/Vulkan/Extensions/VK_NVX_multiview_per_view_attributes.hs index 55b98a2b7..21a810c18 100644 --- a/src/Vulkan/Extensions/VK_NVX_multiview_per_view_attributes.hs +++ b/src/Vulkan/Extensions/VK_NVX_multiview_per_view_attributes.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- diff --git a/src/Vulkan/Extensions/VK_NVX_multiview_per_view_attributes.hs-boot b/src/Vulkan/Extensions/VK_NVX_multiview_per_view_attributes.hs-boot index 51399a39a..1dc5c7391 100644 --- a/src/Vulkan/Extensions/VK_NVX_multiview_per_view_attributes.hs-boot +++ b/src/Vulkan/Extensions/VK_NVX_multiview_per_view_attributes.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- diff --git a/src/Vulkan/Extensions/VK_NV_acquire_winrt_display.hs b/src/Vulkan/Extensions/VK_NV_acquire_winrt_display.hs index e5dc6fcc2..eae7f17a7 100644 --- a/src/Vulkan/Extensions/VK_NV_acquire_winrt_display.hs +++ b/src/Vulkan/Extensions/VK_NV_acquire_winrt_display.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- diff --git a/src/Vulkan/Extensions/VK_NV_clip_space_w_scaling.hs b/src/Vulkan/Extensions/VK_NV_clip_space_w_scaling.hs index 5f3859f64..efd2888d9 100644 --- a/src/Vulkan/Extensions/VK_NV_clip_space_w_scaling.hs +++ b/src/Vulkan/Extensions/VK_NV_clip_space_w_scaling.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__; __Contact__] -- -- - Eric Werness diff --git a/src/Vulkan/Extensions/VK_NV_clip_space_w_scaling.hs-boot b/src/Vulkan/Extensions/VK_NV_clip_space_w_scaling.hs-boot index c8266bbaa..bb1c66143 100644 --- a/src/Vulkan/Extensions/VK_NV_clip_space_w_scaling.hs-boot +++ b/src/Vulkan/Extensions/VK_NV_clip_space_w_scaling.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__; __Contact__] -- -- - Eric Werness diff --git a/src/Vulkan/Extensions/VK_NV_compute_shader_derivatives.hs b/src/Vulkan/Extensions/VK_NV_compute_shader_derivatives.hs index de09b0a7b..95ff625f6 100644 --- a/src/Vulkan/Extensions/VK_NV_compute_shader_derivatives.hs +++ b/src/Vulkan/Extensions/VK_NV_compute_shader_derivatives.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- diff --git a/src/Vulkan/Extensions/VK_NV_compute_shader_derivatives.hs-boot b/src/Vulkan/Extensions/VK_NV_compute_shader_derivatives.hs-boot index 43ac3287d..1b8b23c63 100644 --- a/src/Vulkan/Extensions/VK_NV_compute_shader_derivatives.hs-boot +++ b/src/Vulkan/Extensions/VK_NV_compute_shader_derivatives.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- diff --git a/src/Vulkan/Extensions/VK_NV_cooperative_matrix.hs b/src/Vulkan/Extensions/VK_NV_cooperative_matrix.hs index f08d523ef..c04247f45 100644 --- a/src/Vulkan/Extensions/VK_NV_cooperative_matrix.hs +++ b/src/Vulkan/Extensions/VK_NV_cooperative_matrix.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- @@ -94,6 +97,41 @@ -- -- - 'NV_COOPERATIVE_MATRIX_SPEC_VERSION' -- +-- - Extending +-- 'Vulkan.Extensions.VK_KHR_cooperative_matrix.ComponentTypeKHR': +-- +-- - 'COMPONENT_TYPE_FLOAT16_NV' +-- +-- - 'COMPONENT_TYPE_FLOAT32_NV' +-- +-- - 'COMPONENT_TYPE_FLOAT64_NV' +-- +-- - 'COMPONENT_TYPE_SINT16_NV' +-- +-- - 'COMPONENT_TYPE_SINT32_NV' +-- +-- - 'COMPONENT_TYPE_SINT64_NV' +-- +-- - 'COMPONENT_TYPE_SINT8_NV' +-- +-- - 'COMPONENT_TYPE_UINT16_NV' +-- +-- - 'COMPONENT_TYPE_UINT32_NV' +-- +-- - 'COMPONENT_TYPE_UINT64_NV' +-- +-- - 'COMPONENT_TYPE_UINT8_NV' +-- +-- - Extending 'Vulkan.Extensions.VK_KHR_cooperative_matrix.ScopeKHR': +-- +-- - 'SCOPE_DEVICE_NV' +-- +-- - 'SCOPE_QUEUE_FAMILY_NV' +-- +-- - 'SCOPE_SUBGROUP_NV' +-- +-- - 'SCOPE_WORKGROUP_NV' +-- -- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType': -- -- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV' @@ -145,36 +183,34 @@ -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly. module Vulkan.Extensions.VK_NV_cooperative_matrix ( getPhysicalDeviceCooperativeMatrixPropertiesNV + , pattern SCOPE_DEVICE_NV + , pattern SCOPE_WORKGROUP_NV + , pattern SCOPE_SUBGROUP_NV + , pattern SCOPE_QUEUE_FAMILY_NV + , pattern COMPONENT_TYPE_FLOAT16_NV + , pattern COMPONENT_TYPE_FLOAT32_NV + , pattern COMPONENT_TYPE_FLOAT64_NV + , pattern COMPONENT_TYPE_SINT8_NV + , pattern COMPONENT_TYPE_SINT16_NV + , pattern COMPONENT_TYPE_SINT32_NV + , pattern COMPONENT_TYPE_SINT64_NV + , pattern COMPONENT_TYPE_UINT8_NV + , pattern COMPONENT_TYPE_UINT16_NV + , pattern COMPONENT_TYPE_UINT32_NV + , pattern COMPONENT_TYPE_UINT64_NV , PhysicalDeviceCooperativeMatrixFeaturesNV(..) , PhysicalDeviceCooperativeMatrixPropertiesNV(..) , CooperativeMatrixPropertiesNV(..) - , ScopeNV( SCOPE_DEVICE_NV - , SCOPE_WORKGROUP_NV - , SCOPE_SUBGROUP_NV - , SCOPE_QUEUE_FAMILY_NV - , .. - ) - , ComponentTypeNV( COMPONENT_TYPE_FLOAT16_NV - , COMPONENT_TYPE_FLOAT32_NV - , COMPONENT_TYPE_FLOAT64_NV - , COMPONENT_TYPE_SINT8_NV - , COMPONENT_TYPE_SINT16_NV - , COMPONENT_TYPE_SINT32_NV - , COMPONENT_TYPE_SINT64_NV - , COMPONENT_TYPE_UINT8_NV - , COMPONENT_TYPE_UINT16_NV - , COMPONENT_TYPE_UINT32_NV - , COMPONENT_TYPE_UINT64_NV - , .. - ) + , ScopeNV + , ComponentTypeNV , NV_COOPERATIVE_MATRIX_SPEC_VERSION , pattern NV_COOPERATIVE_MATRIX_SPEC_VERSION , NV_COOPERATIVE_MATRIX_EXTENSION_NAME , pattern NV_COOPERATIVE_MATRIX_EXTENSION_NAME + , ScopeKHR(..) + , ComponentTypeKHR(..) ) where -import Vulkan.Internal.Utils (enumReadPrec) -import Vulkan.Internal.Utils (enumShowsPrec) import Vulkan.Internal.Utils (traceAroundEvent) import Control.Exception.Base (bracket) import Control.Monad (unless) @@ -187,7 +223,6 @@ import GHC.IO (throwIO) import GHC.Ptr (nullFunPtr) import Foreign.Ptr (nullPtr) import Foreign.Ptr (plusPtr) -import GHC.Show (showsPrec) import Control.Monad.Trans.Class (lift) import Control.Monad.Trans.Cont (evalContT) import Data.Vector (generateM) @@ -195,7 +230,6 @@ import Vulkan.CStruct (FromCStruct) import Vulkan.CStruct (FromCStruct(..)) import Vulkan.CStruct (ToCStruct) import Vulkan.CStruct (ToCStruct(..)) -import Vulkan.Zero (Zero) import Vulkan.Zero (Zero(..)) import Control.Monad.IO.Class (MonadIO) import Data.String (IsString) @@ -207,11 +241,8 @@ import qualified Foreign.Storable (Storable(..)) import GHC.Generics (Generic) import GHC.IO.Exception (IOErrorType(..)) import GHC.IO.Exception (IOException(..)) -import Data.Int (Int32) import Foreign.Ptr (FunPtr) import Foreign.Ptr (Ptr) -import GHC.Read (Read(readPrec)) -import GHC.Show (Show(showsPrec)) import Data.Word (Word32) import Data.Kind (Type) import Control.Monad.Trans.Cont (ContT(..)) @@ -221,6 +252,7 @@ import Vulkan.Core10.FundamentalTypes (bool32ToBool) import Vulkan.Core10.FundamentalTypes (boolToBool32) import Vulkan.NamedType ((:::)) import Vulkan.Core10.FundamentalTypes (Bool32) +import Vulkan.Extensions.VK_KHR_cooperative_matrix (ComponentTypeKHR) import Vulkan.Dynamic (InstanceCmds(pVkGetPhysicalDeviceCooperativeMatrixPropertiesNV)) import Vulkan.Core10.Handles (PhysicalDevice) import Vulkan.Core10.Handles (PhysicalDevice(..)) @@ -228,13 +260,31 @@ import Vulkan.Core10.Handles (PhysicalDevice(PhysicalDevice)) import Vulkan.Core10.Handles (PhysicalDevice_T) import Vulkan.Core10.Enums.Result (Result) import Vulkan.Core10.Enums.Result (Result(..)) +import Vulkan.Extensions.VK_KHR_cooperative_matrix (ScopeKHR) import Vulkan.Core10.Enums.ShaderStageFlagBits (ShaderStageFlags) import Vulkan.Core10.Enums.StructureType (StructureType) import Vulkan.Exception (VulkanException(..)) +import Vulkan.Extensions.VK_KHR_cooperative_matrix (ComponentTypeKHR(COMPONENT_TYPE_FLOAT16_KHR)) +import Vulkan.Extensions.VK_KHR_cooperative_matrix (ComponentTypeKHR(COMPONENT_TYPE_FLOAT32_KHR)) +import Vulkan.Extensions.VK_KHR_cooperative_matrix (ComponentTypeKHR(COMPONENT_TYPE_FLOAT64_KHR)) +import Vulkan.Extensions.VK_KHR_cooperative_matrix (ComponentTypeKHR(COMPONENT_TYPE_SINT16_KHR)) +import Vulkan.Extensions.VK_KHR_cooperative_matrix (ComponentTypeKHR(COMPONENT_TYPE_SINT32_KHR)) +import Vulkan.Extensions.VK_KHR_cooperative_matrix (ComponentTypeKHR(COMPONENT_TYPE_SINT64_KHR)) +import Vulkan.Extensions.VK_KHR_cooperative_matrix (ComponentTypeKHR(COMPONENT_TYPE_SINT8_KHR)) +import Vulkan.Extensions.VK_KHR_cooperative_matrix (ComponentTypeKHR(COMPONENT_TYPE_UINT16_KHR)) +import Vulkan.Extensions.VK_KHR_cooperative_matrix (ComponentTypeKHR(COMPONENT_TYPE_UINT32_KHR)) +import Vulkan.Extensions.VK_KHR_cooperative_matrix (ComponentTypeKHR(COMPONENT_TYPE_UINT64_KHR)) +import Vulkan.Extensions.VK_KHR_cooperative_matrix (ComponentTypeKHR(COMPONENT_TYPE_UINT8_KHR)) +import Vulkan.Extensions.VK_KHR_cooperative_matrix (ScopeKHR(SCOPE_DEVICE_KHR)) +import Vulkan.Extensions.VK_KHR_cooperative_matrix (ScopeKHR(SCOPE_QUEUE_FAMILY_KHR)) +import Vulkan.Extensions.VK_KHR_cooperative_matrix (ScopeKHR(SCOPE_SUBGROUP_KHR)) +import Vulkan.Extensions.VK_KHR_cooperative_matrix (ScopeKHR(SCOPE_WORKGROUP_KHR)) import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV)) import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV)) import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV)) import Vulkan.Core10.Enums.Result (Result(SUCCESS)) +import Vulkan.Extensions.VK_KHR_cooperative_matrix (ComponentTypeKHR(..)) +import Vulkan.Extensions.VK_KHR_cooperative_matrix (ScopeKHR(..)) foreign import ccall #if !defined(SAFE_FOREIGN_CALLS) unsafe @@ -322,6 +372,66 @@ getPhysicalDeviceCooperativeMatrixPropertiesNV physicalDevice = liftIO . evalCon pure $ ((r'), pProperties') +-- No documentation found for TopLevel "VK_SCOPE_DEVICE_NV" +pattern SCOPE_DEVICE_NV = SCOPE_DEVICE_KHR + + +-- No documentation found for TopLevel "VK_SCOPE_WORKGROUP_NV" +pattern SCOPE_WORKGROUP_NV = SCOPE_WORKGROUP_KHR + + +-- No documentation found for TopLevel "VK_SCOPE_SUBGROUP_NV" +pattern SCOPE_SUBGROUP_NV = SCOPE_SUBGROUP_KHR + + +-- No documentation found for TopLevel "VK_SCOPE_QUEUE_FAMILY_NV" +pattern SCOPE_QUEUE_FAMILY_NV = SCOPE_QUEUE_FAMILY_KHR + + +-- No documentation found for TopLevel "VK_COMPONENT_TYPE_FLOAT16_NV" +pattern COMPONENT_TYPE_FLOAT16_NV = COMPONENT_TYPE_FLOAT16_KHR + + +-- No documentation found for TopLevel "VK_COMPONENT_TYPE_FLOAT32_NV" +pattern COMPONENT_TYPE_FLOAT32_NV = COMPONENT_TYPE_FLOAT32_KHR + + +-- No documentation found for TopLevel "VK_COMPONENT_TYPE_FLOAT64_NV" +pattern COMPONENT_TYPE_FLOAT64_NV = COMPONENT_TYPE_FLOAT64_KHR + + +-- No documentation found for TopLevel "VK_COMPONENT_TYPE_SINT8_NV" +pattern COMPONENT_TYPE_SINT8_NV = COMPONENT_TYPE_SINT8_KHR + + +-- No documentation found for TopLevel "VK_COMPONENT_TYPE_SINT16_NV" +pattern COMPONENT_TYPE_SINT16_NV = COMPONENT_TYPE_SINT16_KHR + + +-- No documentation found for TopLevel "VK_COMPONENT_TYPE_SINT32_NV" +pattern COMPONENT_TYPE_SINT32_NV = COMPONENT_TYPE_SINT32_KHR + + +-- No documentation found for TopLevel "VK_COMPONENT_TYPE_SINT64_NV" +pattern COMPONENT_TYPE_SINT64_NV = COMPONENT_TYPE_SINT64_KHR + + +-- No documentation found for TopLevel "VK_COMPONENT_TYPE_UINT8_NV" +pattern COMPONENT_TYPE_UINT8_NV = COMPONENT_TYPE_UINT8_KHR + + +-- No documentation found for TopLevel "VK_COMPONENT_TYPE_UINT16_NV" +pattern COMPONENT_TYPE_UINT16_NV = COMPONENT_TYPE_UINT16_KHR + + +-- No documentation found for TopLevel "VK_COMPONENT_TYPE_UINT32_NV" +pattern COMPONENT_TYPE_UINT32_NV = COMPONENT_TYPE_UINT32_KHR + + +-- No documentation found for TopLevel "VK_COMPONENT_TYPE_UINT64_NV" +pattern COMPONENT_TYPE_UINT64_NV = COMPONENT_TYPE_UINT64_KHR + + -- | VkPhysicalDeviceCooperativeMatrixFeaturesNV - Structure describing -- cooperative matrix features that can be supported by an implementation -- @@ -349,10 +459,10 @@ getPhysicalDeviceCooperativeMatrixPropertiesNV physicalDevice = liftIO . evalCon -- 'Vulkan.Core10.FundamentalTypes.Bool32', -- 'Vulkan.Core10.Enums.StructureType.StructureType' data PhysicalDeviceCooperativeMatrixFeaturesNV = PhysicalDeviceCooperativeMatrixFeaturesNV - { -- | #features-cooperativeMatrix# @cooperativeMatrix@ indicates that the + { -- | #features-cooperativeMatrix-NV# @cooperativeMatrix@ indicates that the -- implementation supports the @CooperativeMatrixNV@ SPIR-V capability. cooperativeMatrix :: Bool - , -- | #features-cooperativeMatrixRobustBufferAccess# + , -- | #features-cooperativeMatrixRobustBufferAccess-NV# -- @cooperativeMatrixRobustBufferAccess@ indicates that the implementation -- supports robust buffer access for SPIR-V @OpCooperativeMatrixLoadNV@ and -- @OpCooperativeMatrixStoreNV@ instructions. @@ -422,7 +532,7 @@ instance Zero PhysicalDeviceCooperativeMatrixFeaturesNV where -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.ShaderStageFlags', -- 'Vulkan.Core10.Enums.StructureType.StructureType' data PhysicalDeviceCooperativeMatrixPropertiesNV = PhysicalDeviceCooperativeMatrixPropertiesNV - { -- | #limits-cooperativeMatrixSupportedStages# + { -- | #limits-cooperativeMatrixSupportedStages-NV# -- @cooperativeMatrixSupportedStages@ is a bitfield of -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.ShaderStageFlagBits' describing -- the shader stages that cooperative matrix instructions are supported in. @@ -588,167 +698,13 @@ instance Zero CooperativeMatrixPropertiesNV where zero --- | VkScopeNV - Specify SPIR-V scope --- --- = Description --- --- All enum values match the corresponding SPIR-V value. --- --- = See Also --- --- , --- 'CooperativeMatrixPropertiesNV' -newtype ScopeNV = ScopeNV Int32 - deriving newtype (Eq, Ord, Storable, Zero) - --- Note that the zero instance does not produce a valid value, passing 'zero' to Vulkan will result in an error - --- | 'SCOPE_DEVICE_NV' corresponds to SPIR-V 'Vulkan.Core10.Handles.Device' --- scope. -pattern SCOPE_DEVICE_NV = ScopeNV 1 - --- | 'SCOPE_WORKGROUP_NV' corresponds to SPIR-V @Workgroup@ scope. -pattern SCOPE_WORKGROUP_NV = ScopeNV 2 - --- | 'SCOPE_SUBGROUP_NV' corresponds to SPIR-V @Subgroup@ scope. -pattern SCOPE_SUBGROUP_NV = ScopeNV 3 - --- | 'SCOPE_QUEUE_FAMILY_NV' corresponds to SPIR-V @QueueFamily@ scope. -pattern SCOPE_QUEUE_FAMILY_NV = ScopeNV 5 - -{-# COMPLETE - SCOPE_DEVICE_NV - , SCOPE_WORKGROUP_NV - , SCOPE_SUBGROUP_NV - , SCOPE_QUEUE_FAMILY_NV :: - ScopeNV - #-} - -conNameScopeNV :: String -conNameScopeNV = "ScopeNV" - -enumPrefixScopeNV :: String -enumPrefixScopeNV = "SCOPE_" - -showTableScopeNV :: [(ScopeNV, String)] -showTableScopeNV = - [ (SCOPE_DEVICE_NV, "DEVICE_NV") - , (SCOPE_WORKGROUP_NV, "WORKGROUP_NV") - , (SCOPE_SUBGROUP_NV, "SUBGROUP_NV") - , (SCOPE_QUEUE_FAMILY_NV, "QUEUE_FAMILY_NV") - ] - -instance Show ScopeNV where - showsPrec = - enumShowsPrec - enumPrefixScopeNV - showTableScopeNV - conNameScopeNV - (\(ScopeNV x) -> x) - (showsPrec 11) - -instance Read ScopeNV where - readPrec = - enumReadPrec - enumPrefixScopeNV - showTableScopeNV - conNameScopeNV - ScopeNV - --- | VkComponentTypeNV - Specify SPIR-V cooperative matrix component type --- --- = See Also --- --- , --- 'CooperativeMatrixPropertiesNV' -newtype ComponentTypeNV = ComponentTypeNV Int32 - deriving newtype (Eq, Ord, Storable, Zero) - --- | 'COMPONENT_TYPE_FLOAT16_NV' corresponds to SPIR-V @OpTypeFloat@ 16. -pattern COMPONENT_TYPE_FLOAT16_NV = ComponentTypeNV 0 - --- | 'COMPONENT_TYPE_FLOAT32_NV' corresponds to SPIR-V @OpTypeFloat@ 32. -pattern COMPONENT_TYPE_FLOAT32_NV = ComponentTypeNV 1 - --- | 'COMPONENT_TYPE_FLOAT64_NV' corresponds to SPIR-V @OpTypeFloat@ 64. -pattern COMPONENT_TYPE_FLOAT64_NV = ComponentTypeNV 2 - --- | 'COMPONENT_TYPE_SINT8_NV' corresponds to SPIR-V @OpTypeInt@ 8 1. -pattern COMPONENT_TYPE_SINT8_NV = ComponentTypeNV 3 - --- | 'COMPONENT_TYPE_SINT16_NV' corresponds to SPIR-V @OpTypeInt@ 16 1. -pattern COMPONENT_TYPE_SINT16_NV = ComponentTypeNV 4 - --- | 'COMPONENT_TYPE_SINT32_NV' corresponds to SPIR-V @OpTypeInt@ 32 1. -pattern COMPONENT_TYPE_SINT32_NV = ComponentTypeNV 5 - --- | 'COMPONENT_TYPE_SINT64_NV' corresponds to SPIR-V @OpTypeInt@ 64 1. -pattern COMPONENT_TYPE_SINT64_NV = ComponentTypeNV 6 - --- | 'COMPONENT_TYPE_UINT8_NV' corresponds to SPIR-V @OpTypeInt@ 8 0. -pattern COMPONENT_TYPE_UINT8_NV = ComponentTypeNV 7 - --- | 'COMPONENT_TYPE_UINT16_NV' corresponds to SPIR-V @OpTypeInt@ 16 0. -pattern COMPONENT_TYPE_UINT16_NV = ComponentTypeNV 8 - --- | 'COMPONENT_TYPE_UINT32_NV' corresponds to SPIR-V @OpTypeInt@ 32 0. -pattern COMPONENT_TYPE_UINT32_NV = ComponentTypeNV 9 - --- | 'COMPONENT_TYPE_UINT64_NV' corresponds to SPIR-V @OpTypeInt@ 64 0. -pattern COMPONENT_TYPE_UINT64_NV = ComponentTypeNV 10 - -{-# COMPLETE - COMPONENT_TYPE_FLOAT16_NV - , COMPONENT_TYPE_FLOAT32_NV - , COMPONENT_TYPE_FLOAT64_NV - , COMPONENT_TYPE_SINT8_NV - , COMPONENT_TYPE_SINT16_NV - , COMPONENT_TYPE_SINT32_NV - , COMPONENT_TYPE_SINT64_NV - , COMPONENT_TYPE_UINT8_NV - , COMPONENT_TYPE_UINT16_NV - , COMPONENT_TYPE_UINT32_NV - , COMPONENT_TYPE_UINT64_NV :: - ComponentTypeNV - #-} - -conNameComponentTypeNV :: String -conNameComponentTypeNV = "ComponentTypeNV" - -enumPrefixComponentTypeNV :: String -enumPrefixComponentTypeNV = "COMPONENT_TYPE_" - -showTableComponentTypeNV :: [(ComponentTypeNV, String)] -showTableComponentTypeNV = - [ (COMPONENT_TYPE_FLOAT16_NV, "FLOAT16_NV") - , (COMPONENT_TYPE_FLOAT32_NV, "FLOAT32_NV") - , (COMPONENT_TYPE_FLOAT64_NV, "FLOAT64_NV") - , (COMPONENT_TYPE_SINT8_NV, "SINT8_NV") - , (COMPONENT_TYPE_SINT16_NV, "SINT16_NV") - , (COMPONENT_TYPE_SINT32_NV, "SINT32_NV") - , (COMPONENT_TYPE_SINT64_NV, "SINT64_NV") - , (COMPONENT_TYPE_UINT8_NV, "UINT8_NV") - , (COMPONENT_TYPE_UINT16_NV, "UINT16_NV") - , (COMPONENT_TYPE_UINT32_NV, "UINT32_NV") - , (COMPONENT_TYPE_UINT64_NV, "UINT64_NV") - ] - -instance Show ComponentTypeNV where - showsPrec = - enumShowsPrec - enumPrefixComponentTypeNV - showTableComponentTypeNV - conNameComponentTypeNV - (\(ComponentTypeNV x) -> x) - (showsPrec 11) - -instance Read ComponentTypeNV where - readPrec = - enumReadPrec - enumPrefixComponentTypeNV - showTableComponentTypeNV - conNameComponentTypeNV - ComponentTypeNV +-- No documentation found for TopLevel "VkScopeNV" +type ScopeNV = ScopeKHR + + +-- No documentation found for TopLevel "VkComponentTypeNV" +type ComponentTypeNV = ComponentTypeKHR + type NV_COOPERATIVE_MATRIX_SPEC_VERSION = 1 diff --git a/src/Vulkan/Extensions/VK_NV_cooperative_matrix.hs-boot b/src/Vulkan/Extensions/VK_NV_cooperative_matrix.hs-boot index 511f775f0..6827f9016 100644 --- a/src/Vulkan/Extensions/VK_NV_cooperative_matrix.hs-boot +++ b/src/Vulkan/Extensions/VK_NV_cooperative_matrix.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- @@ -94,6 +97,41 @@ -- -- - 'NV_COOPERATIVE_MATRIX_SPEC_VERSION' -- +-- - Extending +-- 'Vulkan.Extensions.VK_KHR_cooperative_matrix.ComponentTypeKHR': +-- +-- - 'COMPONENT_TYPE_FLOAT16_NV' +-- +-- - 'COMPONENT_TYPE_FLOAT32_NV' +-- +-- - 'COMPONENT_TYPE_FLOAT64_NV' +-- +-- - 'COMPONENT_TYPE_SINT16_NV' +-- +-- - 'COMPONENT_TYPE_SINT32_NV' +-- +-- - 'COMPONENT_TYPE_SINT64_NV' +-- +-- - 'COMPONENT_TYPE_SINT8_NV' +-- +-- - 'COMPONENT_TYPE_UINT16_NV' +-- +-- - 'COMPONENT_TYPE_UINT32_NV' +-- +-- - 'COMPONENT_TYPE_UINT64_NV' +-- +-- - 'COMPONENT_TYPE_UINT8_NV' +-- +-- - Extending 'Vulkan.Extensions.VK_KHR_cooperative_matrix.ScopeKHR': +-- +-- - 'SCOPE_DEVICE_NV' +-- +-- - 'SCOPE_QUEUE_FAMILY_NV' +-- +-- - 'SCOPE_SUBGROUP_NV' +-- +-- - 'SCOPE_WORKGROUP_NV' +-- -- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType': -- -- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV' diff --git a/src/Vulkan/Extensions/VK_NV_copy_memory_indirect.hs b/src/Vulkan/Extensions/VK_NV_copy_memory_indirect.hs index ce6b70d1f..c15aa3526 100644 --- a/src/Vulkan/Extensions/VK_NV_copy_memory_indirect.hs +++ b/src/Vulkan/Extensions/VK_NV_copy_memory_indirect.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- and @@ -329,8 +332,8 @@ foreign import ccall -- is non-sparse then it /must/ be bound completely and contiguously to -- a single 'Vulkan.Core10.Handles.DeviceMemory' object -- --- - [[VUID-{refpage}-dstImage-07973]] @dstImage@ /must/ have a sample --- count equal to +-- - #VUID-vkCmdCopyMemoryToImageIndirectNV-dstImage-07973# @dstImage@ +-- /must/ have a sample count equal to -- 'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT' -- -- - #VUID-vkCmdCopyMemoryToImageIndirectNV-dstImageLayout-07667# @@ -341,17 +344,24 @@ foreign import ccall -- - #VUID-vkCmdCopyMemoryToImageIndirectNV-dstImageLayout-07669# -- @dstImageLayout@ /must/ be -- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL', --- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL', or --- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHARED_PRESENT_KHR' +-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHARED_PRESENT_KHR', +-- or 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL' -- -- - #VUID-vkCmdCopyMemoryToImageIndirectNV-mipLevel-07670# The specified -- @mipLevel@ of each region /must/ be less than the @mipLevels@ -- specified in 'Vulkan.Core10.Image.ImageCreateInfo' when @dstImage@ -- was created -- --- - #VUID-vkCmdCopyMemoryToImageIndirectNV-baseArrayLayer-07671# The --- specified @baseArrayLayer@ + @layerCount@ of each region /must/ be --- less than or equal to the @arrayLayers@ specified in +-- - #VUID-vkCmdCopyMemoryToImageIndirectNV-layerCount-09244# If the +-- +-- feature is not enabled, @layerCount@ /must/ not be +-- 'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS' +-- +-- - #VUID-vkCmdCopyMemoryToImageIndirectNV-layerCount-08764# If +-- @layerCount@ is not +-- 'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS', the specified +-- @baseArrayLayer@ + @layerCount@ of each region /must/ be less than +-- or equal to the @arrayLayers@ specified in -- 'Vulkan.Core10.Image.ImageCreateInfo' when @dstImage@ was created -- -- - #VUID-vkCmdCopyMemoryToImageIndirectNV-imageOffset-07672# The diff --git a/src/Vulkan/Extensions/VK_NV_copy_memory_indirect.hs-boot b/src/Vulkan/Extensions/VK_NV_copy_memory_indirect.hs-boot index 842090936..507281d4f 100644 --- a/src/Vulkan/Extensions/VK_NV_copy_memory_indirect.hs-boot +++ b/src/Vulkan/Extensions/VK_NV_copy_memory_indirect.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- and diff --git a/src/Vulkan/Extensions/VK_NV_corner_sampled_image.hs b/src/Vulkan/Extensions/VK_NV_corner_sampled_image.hs index 10566de26..37e549a51 100644 --- a/src/Vulkan/Extensions/VK_NV_corner_sampled_image.hs +++ b/src/Vulkan/Extensions/VK_NV_corner_sampled_image.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 2 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- @@ -56,13 +59,13 @@ -- coord × dim. See -- . -- --- - Calculation of the next higher lod size goes according to ⌈dim \/ 2⌉ +-- - Calculation of the next higher LOD size goes according to ⌈dim \/ 2⌉ -- rather than ⌊dim \/ 2⌋. See --- . +-- . -- -- - The minimum level size is 2x2 for 2D images and 2x2x2 for 3D images. -- See --- . +-- . -- -- This image organization is designed to facilitate a system like Ptex -- with separate textures for each face of a subdivision or polygon mesh. @@ -70,7 +73,7 @@ -- maintain continuity between adjacent patches by duplicating values along -- shared edges. Additionally, using the modified mipmapping logic along -- with texture dimensions of the form 2n+1 allows continuity across shared --- edges even if the adjacent patches use different level-of-detail values. +-- edges even if the adjacent patches use different LOD values. -- -- == New Structures -- diff --git a/src/Vulkan/Extensions/VK_NV_corner_sampled_image.hs-boot b/src/Vulkan/Extensions/VK_NV_corner_sampled_image.hs-boot index ab0581577..056d98e77 100644 --- a/src/Vulkan/Extensions/VK_NV_corner_sampled_image.hs-boot +++ b/src/Vulkan/Extensions/VK_NV_corner_sampled_image.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 2 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- @@ -56,13 +59,13 @@ -- coord × dim. See -- . -- --- - Calculation of the next higher lod size goes according to ⌈dim \/ 2⌉ +-- - Calculation of the next higher LOD size goes according to ⌈dim \/ 2⌉ -- rather than ⌊dim \/ 2⌋. See --- . +-- . -- -- - The minimum level size is 2x2 for 2D images and 2x2x2 for 3D images. -- See --- . +-- . -- -- This image organization is designed to facilitate a system like Ptex -- with separate textures for each face of a subdivision or polygon mesh. @@ -70,7 +73,7 @@ -- maintain continuity between adjacent patches by duplicating values along -- shared edges. Additionally, using the modified mipmapping logic along -- with texture dimensions of the form 2n+1 allows continuity across shared --- edges even if the adjacent patches use different level-of-detail values. +-- edges even if the adjacent patches use different LOD values. -- -- == New Structures -- diff --git a/src/Vulkan/Extensions/VK_NV_coverage_reduction_mode.hs b/src/Vulkan/Extensions/VK_NV_coverage_reduction_mode.hs index 7f13026b3..177ca484e 100644 --- a/src/Vulkan/Extensions/VK_NV_coverage_reduction_mode.hs +++ b/src/Vulkan/Extensions/VK_NV_coverage_reduction_mode.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- and diff --git a/src/Vulkan/Extensions/VK_NV_coverage_reduction_mode.hs-boot b/src/Vulkan/Extensions/VK_NV_coverage_reduction_mode.hs-boot index 87f797c30..34477a782 100644 --- a/src/Vulkan/Extensions/VK_NV_coverage_reduction_mode.hs-boot +++ b/src/Vulkan/Extensions/VK_NV_coverage_reduction_mode.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- and diff --git a/src/Vulkan/Extensions/VK_NV_dedicated_allocation.hs b/src/Vulkan/Extensions/VK_NV_dedicated_allocation.hs index f54aaae01..c225a570d 100644 --- a/src/Vulkan/Extensions/VK_NV_dedicated_allocation.hs +++ b/src/Vulkan/Extensions/VK_NV_dedicated_allocation.hs @@ -17,7 +17,10 @@ -- [__Revision__] -- 1 -- --- [__Extension and Version Dependencies__; __Deprecation state__] +-- [__Ratification Status__] +-- Not ratified +-- +-- [__Extension and Version Dependencies__; __Deprecation State__] -- -- - /Deprecated/ by @VK_KHR_dedicated_allocation@ extension -- @@ -93,15 +96,15 @@ -- > -- > VkDedicatedAllocationImageCreateInfoNV dedicatedImageInfo = -- > { --- > VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV, // sType --- > NULL, // pNext --- > VK_TRUE, // dedicatedAllocation +-- > .sType = VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV, +-- > .pNext = NULL, +-- > .dedicatedAllocation = VK_TRUE, -- > }; -- > -- > VkImageCreateInfo imageCreateInfo = -- > { --- > VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO, // sType --- > &dedicatedImageInfo // pNext +-- > .sType = VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO, +-- > .pNext = &dedicatedImageInfo -- > // Other members set as usual -- > }; -- > @@ -109,7 +112,7 @@ -- > VkResult result = vkCreateImage( -- > device, -- > &imageCreateInfo, --- > NULL, // pAllocator +-- > NULL, // pAllocator -- > &image); -- > -- > VkMemoryRequirements memoryRequirements; @@ -123,25 +126,25 @@ -- > -- > VkDedicatedAllocationMemoryAllocateInfoNV dedicatedInfo = -- > { --- > VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV, // sType --- > NULL, // pNext --- > image, // image --- > VK_NULL_HANDLE, // buffer +-- > .sType = VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV, +-- > .pNext = NULL, +-- > .image = image, +-- > .buffer = VK_NULL_HANDLE, -- > }; -- > -- > VkMemoryAllocateInfo memoryAllocateInfo = -- > { --- > VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO, // sType --- > &dedicatedInfo, // pNext --- > memoryRequirements.size, // allocationSize --- > FindMemoryTypeIndex(memoryRequirements.memoryTypeBits), // memoryTypeIndex +-- > .sType = VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO, +-- > .pNext = &dedicatedInfo, +-- > .allocationSize = memoryRequirements.size, +-- > .memoryTypeIndex = FindMemoryTypeIndex(memoryRequirements.memoryTypeBits), -- > }; -- > -- > VkDeviceMemory memory; -- > vkAllocateMemory( -- > device, -- > &memoryAllocateInfo, --- > NULL, // pAllocator +-- > NULL, // pAllocator -- > &memory); -- > -- > // Bind the image to the memory diff --git a/src/Vulkan/Extensions/VK_NV_dedicated_allocation.hs-boot b/src/Vulkan/Extensions/VK_NV_dedicated_allocation.hs-boot index 757a8f826..119dfe4b9 100644 --- a/src/Vulkan/Extensions/VK_NV_dedicated_allocation.hs-boot +++ b/src/Vulkan/Extensions/VK_NV_dedicated_allocation.hs-boot @@ -17,7 +17,10 @@ -- [__Revision__] -- 1 -- --- [__Extension and Version Dependencies__; __Deprecation state__] +-- [__Ratification Status__] +-- Not ratified +-- +-- [__Extension and Version Dependencies__; __Deprecation State__] -- -- - /Deprecated/ by @VK_KHR_dedicated_allocation@ extension -- @@ -93,15 +96,15 @@ -- > -- > VkDedicatedAllocationImageCreateInfoNV dedicatedImageInfo = -- > { --- > VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV, // sType --- > NULL, // pNext --- > VK_TRUE, // dedicatedAllocation +-- > .sType = VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV, +-- > .pNext = NULL, +-- > .dedicatedAllocation = VK_TRUE, -- > }; -- > -- > VkImageCreateInfo imageCreateInfo = -- > { --- > VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO, // sType --- > &dedicatedImageInfo // pNext +-- > .sType = VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO, +-- > .pNext = &dedicatedImageInfo -- > // Other members set as usual -- > }; -- > @@ -109,7 +112,7 @@ -- > VkResult result = vkCreateImage( -- > device, -- > &imageCreateInfo, --- > NULL, // pAllocator +-- > NULL, // pAllocator -- > &image); -- > -- > VkMemoryRequirements memoryRequirements; @@ -123,25 +126,25 @@ -- > -- > VkDedicatedAllocationMemoryAllocateInfoNV dedicatedInfo = -- > { --- > VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV, // sType --- > NULL, // pNext --- > image, // image --- > VK_NULL_HANDLE, // buffer +-- > .sType = VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV, +-- > .pNext = NULL, +-- > .image = image, +-- > .buffer = VK_NULL_HANDLE, -- > }; -- > -- > VkMemoryAllocateInfo memoryAllocateInfo = -- > { --- > VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO, // sType --- > &dedicatedInfo, // pNext --- > memoryRequirements.size, // allocationSize --- > FindMemoryTypeIndex(memoryRequirements.memoryTypeBits), // memoryTypeIndex +-- > .sType = VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO, +-- > .pNext = &dedicatedInfo, +-- > .allocationSize = memoryRequirements.size, +-- > .memoryTypeIndex = FindMemoryTypeIndex(memoryRequirements.memoryTypeBits), -- > }; -- > -- > VkDeviceMemory memory; -- > vkAllocateMemory( -- > device, -- > &memoryAllocateInfo, --- > NULL, // pAllocator +-- > NULL, // pAllocator -- > &memory); -- > -- > // Bind the image to the memory diff --git a/src/Vulkan/Extensions/VK_NV_dedicated_allocation_image_aliasing.hs b/src/Vulkan/Extensions/VK_NV_dedicated_allocation_image_aliasing.hs index 8b156fe8c..e71ce8b9b 100644 --- a/src/Vulkan/Extensions/VK_NV_dedicated_allocation_image_aliasing.hs +++ b/src/Vulkan/Extensions/VK_NV_dedicated_allocation_image_aliasing.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- and diff --git a/src/Vulkan/Extensions/VK_NV_dedicated_allocation_image_aliasing.hs-boot b/src/Vulkan/Extensions/VK_NV_dedicated_allocation_image_aliasing.hs-boot index b78f29329..657b37835 100644 --- a/src/Vulkan/Extensions/VK_NV_dedicated_allocation_image_aliasing.hs-boot +++ b/src/Vulkan/Extensions/VK_NV_dedicated_allocation_image_aliasing.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- and diff --git a/src/Vulkan/Extensions/VK_NV_descriptor_pool_overallocation.hs b/src/Vulkan/Extensions/VK_NV_descriptor_pool_overallocation.hs new file mode 100644 index 000000000..8df5e0bd9 --- /dev/null +++ b/src/Vulkan/Extensions/VK_NV_descriptor_pool_overallocation.hs @@ -0,0 +1,219 @@ +{-# language CPP #-} +-- | = Name +-- +-- VK_NV_descriptor_pool_overallocation - device extension +-- +-- == VK_NV_descriptor_pool_overallocation +-- +-- [__Name String__] +-- @VK_NV_descriptor_pool_overallocation@ +-- +-- [__Extension Type__] +-- Device extension +-- +-- [__Registered Extension Number__] +-- 547 +-- +-- [__Revision__] +-- 1 +-- +-- [__Ratification Status__] +-- Not ratified +-- +-- [__Extension and Version Dependencies__] +-- +-- +-- [__Contact__] +-- +-- - Piers Daniell +-- +-- +-- == Other Extension Metadata +-- +-- [__Last Modified Date__] +-- 2023-08-30 +-- +-- [__Contributors__] +-- +-- - Jeff Bolz, NVIDIA +-- +-- == Description +-- +-- There are scenarios where the application does not know ahead of time +-- how many descriptor sets it may need to allocate from a descriptor pool, +-- or how many descriptors of any of the descriptor types it may need to +-- allocate from the descriptor pool. +-- +-- This extension gives applications the ability to request the +-- implementation allow more sets or descriptors to be allocated than +-- initially specified at descriptor pool creation time, subject to +-- available resources. +-- +-- The +-- 'Vulkan.Core10.Enums.DescriptorPoolCreateFlagBits.DESCRIPTOR_POOL_CREATE_ALLOW_OVERALLOCATION_SETS_BIT_NV' +-- flag lets the application allocate more than +-- 'Vulkan.Core10.DescriptorSet.DescriptorPoolCreateInfo'::@maxSets@ +-- descriptor sets, and the +-- 'Vulkan.Core10.Enums.DescriptorPoolCreateFlagBits.DESCRIPTOR_POOL_CREATE_ALLOW_OVERALLOCATION_POOLS_BIT_NV' +-- lets the application allocate more descriptors than initially specified +-- by 'Vulkan.Core10.DescriptorSet.DescriptorPoolSize'::@descriptorCount@ +-- for any descriptor types. +-- +-- == New Structures +-- +-- - Extending +-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2', +-- 'Vulkan.Core10.Device.DeviceCreateInfo': +-- +-- - 'PhysicalDeviceDescriptorPoolOverallocationFeaturesNV' +-- +-- == New Enum Constants +-- +-- - 'NV_DESCRIPTOR_POOL_OVERALLOCATION_EXTENSION_NAME' +-- +-- - 'NV_DESCRIPTOR_POOL_OVERALLOCATION_SPEC_VERSION' +-- +-- - Extending +-- 'Vulkan.Core10.Enums.DescriptorPoolCreateFlagBits.DescriptorPoolCreateFlagBits': +-- +-- - 'Vulkan.Core10.Enums.DescriptorPoolCreateFlagBits.DESCRIPTOR_POOL_CREATE_ALLOW_OVERALLOCATION_POOLS_BIT_NV' +-- +-- - 'Vulkan.Core10.Enums.DescriptorPoolCreateFlagBits.DESCRIPTOR_POOL_CREATE_ALLOW_OVERALLOCATION_SETS_BIT_NV' +-- +-- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType': +-- +-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_POOL_OVERALLOCATION_FEATURES_NV' +-- +-- == Version History +-- +-- - Revision 1, 2023-08-30 (Piers Daniell) +-- +-- - Internal revisions +-- +-- == See Also +-- +-- 'PhysicalDeviceDescriptorPoolOverallocationFeaturesNV' +-- +-- == Document Notes +-- +-- For more information, see the +-- +-- +-- This page is a generated document. Fixes and changes should be made to +-- the generator scripts, not directly. +module Vulkan.Extensions.VK_NV_descriptor_pool_overallocation ( PhysicalDeviceDescriptorPoolOverallocationFeaturesNV(..) + , NV_DESCRIPTOR_POOL_OVERALLOCATION_SPEC_VERSION + , pattern NV_DESCRIPTOR_POOL_OVERALLOCATION_SPEC_VERSION + , NV_DESCRIPTOR_POOL_OVERALLOCATION_EXTENSION_NAME + , pattern NV_DESCRIPTOR_POOL_OVERALLOCATION_EXTENSION_NAME + ) where + +import Foreign.Marshal.Alloc (allocaBytes) +import Foreign.Ptr (nullPtr) +import Foreign.Ptr (plusPtr) +import Vulkan.CStruct (FromCStruct) +import Vulkan.CStruct (FromCStruct(..)) +import Vulkan.CStruct (ToCStruct) +import Vulkan.CStruct (ToCStruct(..)) +import Vulkan.Zero (Zero(..)) +import Data.String (IsString) +import Data.Typeable (Typeable) +import Foreign.Storable (Storable) +import Foreign.Storable (Storable(peek)) +import Foreign.Storable (Storable(poke)) +import qualified Foreign.Storable (Storable(..)) +import GHC.Generics (Generic) +import Foreign.Ptr (Ptr) +import Data.Kind (Type) +import Vulkan.Core10.FundamentalTypes (bool32ToBool) +import Vulkan.Core10.FundamentalTypes (boolToBool32) +import Vulkan.Core10.FundamentalTypes (Bool32) +import Vulkan.Core10.Enums.StructureType (StructureType) +import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_POOL_OVERALLOCATION_FEATURES_NV)) +-- | VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV - Structure +-- describing feature to allow descriptor pool overallocation +-- +-- = Members +-- +-- This structure describes the following feature: +-- +-- = Description +-- +-- If the 'PhysicalDeviceDescriptorPoolOverallocationFeaturesNV' 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. 'PhysicalDeviceDescriptorPoolOverallocationFeaturesNV' /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 PhysicalDeviceDescriptorPoolOverallocationFeaturesNV = PhysicalDeviceDescriptorPoolOverallocationFeaturesNV + { -- | #features-descriptorPoolOverallocation# @descriptorPoolOverallocation@ + -- indicates that the implementation allows the application to opt into + -- descriptor pool overallocation by creating the descriptor pool with + -- 'Vulkan.Core10.Enums.DescriptorPoolCreateFlagBits.DESCRIPTOR_POOL_CREATE_ALLOW_OVERALLOCATION_SETS_BIT_NV' + -- and\/or + -- 'Vulkan.Core10.Enums.DescriptorPoolCreateFlagBits.DESCRIPTOR_POOL_CREATE_ALLOW_OVERALLOCATION_POOLS_BIT_NV' + -- flags. + descriptorPoolOverallocation :: Bool } + deriving (Typeable, Eq) +#if defined(GENERIC_INSTANCES) +deriving instance Generic (PhysicalDeviceDescriptorPoolOverallocationFeaturesNV) +#endif +deriving instance Show PhysicalDeviceDescriptorPoolOverallocationFeaturesNV + +instance ToCStruct PhysicalDeviceDescriptorPoolOverallocationFeaturesNV where + withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p) + pokeCStruct p PhysicalDeviceDescriptorPoolOverallocationFeaturesNV{..} f = do + poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_POOL_OVERALLOCATION_FEATURES_NV) + poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr) + poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (descriptorPoolOverallocation)) + f + cStructSize = 24 + cStructAlignment = 8 + pokeZeroCStruct p f = do + poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_POOL_OVERALLOCATION_FEATURES_NV) + poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr) + poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero)) + f + +instance FromCStruct PhysicalDeviceDescriptorPoolOverallocationFeaturesNV where + peekCStruct p = do + descriptorPoolOverallocation <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32)) + pure $ PhysicalDeviceDescriptorPoolOverallocationFeaturesNV + (bool32ToBool descriptorPoolOverallocation) + +instance Storable PhysicalDeviceDescriptorPoolOverallocationFeaturesNV where + sizeOf ~_ = 24 + alignment ~_ = 8 + peek = peekCStruct + poke ptr poked = pokeCStruct ptr poked (pure ()) + +instance Zero PhysicalDeviceDescriptorPoolOverallocationFeaturesNV where + zero = PhysicalDeviceDescriptorPoolOverallocationFeaturesNV + zero + + +type NV_DESCRIPTOR_POOL_OVERALLOCATION_SPEC_VERSION = 1 + +-- No documentation found for TopLevel "VK_NV_DESCRIPTOR_POOL_OVERALLOCATION_SPEC_VERSION" +pattern NV_DESCRIPTOR_POOL_OVERALLOCATION_SPEC_VERSION :: forall a . Integral a => a +pattern NV_DESCRIPTOR_POOL_OVERALLOCATION_SPEC_VERSION = 1 + + +type NV_DESCRIPTOR_POOL_OVERALLOCATION_EXTENSION_NAME = "VK_NV_descriptor_pool_overallocation" + +-- No documentation found for TopLevel "VK_NV_DESCRIPTOR_POOL_OVERALLOCATION_EXTENSION_NAME" +pattern NV_DESCRIPTOR_POOL_OVERALLOCATION_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a +pattern NV_DESCRIPTOR_POOL_OVERALLOCATION_EXTENSION_NAME = "VK_NV_descriptor_pool_overallocation" + diff --git a/src/Vulkan/Extensions/VK_NV_descriptor_pool_overallocation.hs-boot b/src/Vulkan/Extensions/VK_NV_descriptor_pool_overallocation.hs-boot new file mode 100644 index 000000000..d83b7e959 --- /dev/null +++ b/src/Vulkan/Extensions/VK_NV_descriptor_pool_overallocation.hs-boot @@ -0,0 +1,116 @@ +{-# language CPP #-} +-- | = Name +-- +-- VK_NV_descriptor_pool_overallocation - device extension +-- +-- == VK_NV_descriptor_pool_overallocation +-- +-- [__Name String__] +-- @VK_NV_descriptor_pool_overallocation@ +-- +-- [__Extension Type__] +-- Device extension +-- +-- [__Registered Extension Number__] +-- 547 +-- +-- [__Revision__] +-- 1 +-- +-- [__Ratification Status__] +-- Not ratified +-- +-- [__Extension and Version Dependencies__] +-- +-- +-- [__Contact__] +-- +-- - Piers Daniell +-- +-- +-- == Other Extension Metadata +-- +-- [__Last Modified Date__] +-- 2023-08-30 +-- +-- [__Contributors__] +-- +-- - Jeff Bolz, NVIDIA +-- +-- == Description +-- +-- There are scenarios where the application does not know ahead of time +-- how many descriptor sets it may need to allocate from a descriptor pool, +-- or how many descriptors of any of the descriptor types it may need to +-- allocate from the descriptor pool. +-- +-- This extension gives applications the ability to request the +-- implementation allow more sets or descriptors to be allocated than +-- initially specified at descriptor pool creation time, subject to +-- available resources. +-- +-- The +-- 'Vulkan.Core10.Enums.DescriptorPoolCreateFlagBits.DESCRIPTOR_POOL_CREATE_ALLOW_OVERALLOCATION_SETS_BIT_NV' +-- flag lets the application allocate more than +-- 'Vulkan.Core10.DescriptorSet.DescriptorPoolCreateInfo'::@maxSets@ +-- descriptor sets, and the +-- 'Vulkan.Core10.Enums.DescriptorPoolCreateFlagBits.DESCRIPTOR_POOL_CREATE_ALLOW_OVERALLOCATION_POOLS_BIT_NV' +-- lets the application allocate more descriptors than initially specified +-- by 'Vulkan.Core10.DescriptorSet.DescriptorPoolSize'::@descriptorCount@ +-- for any descriptor types. +-- +-- == New Structures +-- +-- - Extending +-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2', +-- 'Vulkan.Core10.Device.DeviceCreateInfo': +-- +-- - 'PhysicalDeviceDescriptorPoolOverallocationFeaturesNV' +-- +-- == New Enum Constants +-- +-- - 'NV_DESCRIPTOR_POOL_OVERALLOCATION_EXTENSION_NAME' +-- +-- - 'NV_DESCRIPTOR_POOL_OVERALLOCATION_SPEC_VERSION' +-- +-- - Extending +-- 'Vulkan.Core10.Enums.DescriptorPoolCreateFlagBits.DescriptorPoolCreateFlagBits': +-- +-- - 'Vulkan.Core10.Enums.DescriptorPoolCreateFlagBits.DESCRIPTOR_POOL_CREATE_ALLOW_OVERALLOCATION_POOLS_BIT_NV' +-- +-- - 'Vulkan.Core10.Enums.DescriptorPoolCreateFlagBits.DESCRIPTOR_POOL_CREATE_ALLOW_OVERALLOCATION_SETS_BIT_NV' +-- +-- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType': +-- +-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_POOL_OVERALLOCATION_FEATURES_NV' +-- +-- == Version History +-- +-- - Revision 1, 2023-08-30 (Piers Daniell) +-- +-- - Internal revisions +-- +-- == See Also +-- +-- 'PhysicalDeviceDescriptorPoolOverallocationFeaturesNV' +-- +-- == Document Notes +-- +-- For more information, see the +-- +-- +-- This page is a generated document. Fixes and changes should be made to +-- the generator scripts, not directly. +module Vulkan.Extensions.VK_NV_descriptor_pool_overallocation (PhysicalDeviceDescriptorPoolOverallocationFeaturesNV) where + +import Vulkan.CStruct (FromCStruct) +import Vulkan.CStruct (ToCStruct) +import Data.Kind (Type) + +data PhysicalDeviceDescriptorPoolOverallocationFeaturesNV + +instance ToCStruct PhysicalDeviceDescriptorPoolOverallocationFeaturesNV +instance Show PhysicalDeviceDescriptorPoolOverallocationFeaturesNV + +instance FromCStruct PhysicalDeviceDescriptorPoolOverallocationFeaturesNV + diff --git a/src/Vulkan/Extensions/VK_NV_device_diagnostic_checkpoints.hs b/src/Vulkan/Extensions/VK_NV_device_diagnostic_checkpoints.hs index 6af16a5e6..718d5da30 100644 --- a/src/Vulkan/Extensions/VK_NV_device_diagnostic_checkpoints.hs +++ b/src/Vulkan/Extensions/VK_NV_device_diagnostic_checkpoints.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 2 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- diff --git a/src/Vulkan/Extensions/VK_NV_device_diagnostic_checkpoints.hs-boot b/src/Vulkan/Extensions/VK_NV_device_diagnostic_checkpoints.hs-boot index b1c155c3d..87496f688 100644 --- a/src/Vulkan/Extensions/VK_NV_device_diagnostic_checkpoints.hs-boot +++ b/src/Vulkan/Extensions/VK_NV_device_diagnostic_checkpoints.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 2 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- diff --git a/src/Vulkan/Extensions/VK_NV_device_diagnostics_config.hs b/src/Vulkan/Extensions/VK_NV_device_diagnostics_config.hs index be7d1e7cd..4dc69201f 100644 --- a/src/Vulkan/Extensions/VK_NV_device_diagnostics_config.hs +++ b/src/Vulkan/Extensions/VK_NV_device_diagnostics_config.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 2 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- diff --git a/src/Vulkan/Extensions/VK_NV_device_diagnostics_config.hs-boot b/src/Vulkan/Extensions/VK_NV_device_diagnostics_config.hs-boot index b99eab5db..cbe4b44de 100644 --- a/src/Vulkan/Extensions/VK_NV_device_diagnostics_config.hs-boot +++ b/src/Vulkan/Extensions/VK_NV_device_diagnostics_config.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 2 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- diff --git a/src/Vulkan/Extensions/VK_NV_device_generated_commands.hs b/src/Vulkan/Extensions/VK_NV_device_generated_commands.hs index 8015f5efe..605131935 100644 --- a/src/Vulkan/Extensions/VK_NV_device_generated_commands.hs +++ b/src/Vulkan/Extensions/VK_NV_device_generated_commands.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 3 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- and @@ -137,7 +140,7 @@ -- - a flag that encodes the primitive winding -- -- While the GPU can be faster than a CPU to generate the commands, it will --- not happen asynchronously to the device, therefore the primary use-case +-- not happen asynchronously to the device, therefore the primary use case -- is generating “less” total work (occlusion culling, classification to -- use specialized shaders, etc.). -- @@ -581,6 +584,8 @@ module Vulkan.Extensions.VK_NV_device_generated_commands ( cmdExecuteGeneratedC , INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV , INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV , INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV + , INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NV + , INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NV , INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV , .. ) @@ -712,6 +717,19 @@ foreign import ccall -- | vkCmdExecuteGeneratedCommandsNV - Generate and execute commands on the -- device -- +-- = Description +-- +-- If the 'INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NV' flag +-- was used to create the +-- 'GeneratedCommandsInfoNV'::@indirectCommandsLayout@ then the order of +-- execution of individual draws through this command /may/ execute in any +-- order, and /may/ not necessarily be in the same order as specified in +-- 'GeneratedCommandsInfoNV'::@pStreams@. +-- +-- The order of execution of individual dispatches through this command +-- /may/ execute in any order and /may/ not necessarily be in the same +-- order as specified in 'GeneratedCommandsInfoNV'::@pStreams@. +-- -- == Valid Usage -- -- - #VUID-vkCmdExecuteGeneratedCommandsNV-magFilter-04553# If a @@ -765,6 +783,16 @@ foreign import ccall -- /must/ contain -- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT' -- +-- - #VUID-vkCmdExecuteGeneratedCommandsNV-None-02693# If the +-- +-- extension is not enabled and any 'Vulkan.Core10.Handles.ImageView' +-- is sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a +-- result of this command, it /must/ not have a +-- 'Vulkan.Core10.Enums.ImageViewType.ImageViewType' of +-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_3D', +-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE', or +-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE_ARRAY' +-- -- - #VUID-vkCmdExecuteGeneratedCommandsNV-filterCubic-02694# Any -- 'Vulkan.Core10.Handles.ImageView' being sampled with -- 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a result of this @@ -790,6 +818,34 @@ foreign import ccall -- returned by -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceImageFormatProperties2' -- +-- - #VUID-vkCmdExecuteGeneratedCommandsNV-cubicRangeClamp-09212# If the +-- +-- feature is not enabled, then any 'Vulkan.Core10.Handles.ImageView' +-- being sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as +-- a result of this command +-- +-- [/must/ not have a 'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo'] +-- @reductionMode@ equal to +-- 'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM' +-- +-- - #VUID-vkCmdExecuteGeneratedCommandsNV-reductionMode-09213# Any +-- 'Vulkan.Core10.Handles.ImageView' being sampled with a +-- 'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo'::@reductionMode@ +-- equal to +-- 'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM' +-- as a result of this command /must/ sample with +-- 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' +-- +-- - #VUID-vkCmdExecuteGeneratedCommandsNV-selectableCubicWeights-09214# +-- If the +-- +-- feature is not enabled, then any 'Vulkan.Core10.Handles.ImageView' +-- being sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as +-- a result of this command /must/ have +-- 'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.SamplerCubicWeightsCreateInfoQCOM'::@cubicWeights@ +-- equal to +-- 'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM' +-- -- - #VUID-vkCmdExecuteGeneratedCommandsNV-flags-02696# Any -- 'Vulkan.Core10.Handles.Image' created with a -- 'Vulkan.Core10.Image.ImageCreateInfo'::@flags@ containing @@ -831,11 +887,9 @@ foreign import ccall -- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT' -- -- - #VUID-vkCmdExecuteGeneratedCommandsNV-None-08600# For each set /n/ --- that is statically used by the 'Vulkan.Core10.Handles.Pipeline' --- bound to the pipeline bind point used by this command, or by any of --- the 'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages --- corresponding to the pipeline bind point used by this command, a --- descriptor set /must/ have been bound to /n/ at the same pipeline +-- that is statically used by +-- , +-- a descriptor set /must/ have been bound to /n/ at the same pipeline -- bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is -- compatible for set /n/, with the -- 'Vulkan.Core10.Handles.PipelineLayout' or @@ -845,13 +899,10 @@ foreign import ccall -- -- -- - #VUID-vkCmdExecuteGeneratedCommandsNV-None-08601# For each push --- constant that is statically used by the --- 'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point --- used by this command, or by any of the --- 'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages --- corresponding to the pipeline bind point used by this command, a --- push constant value /must/ have been set for the same pipeline bind --- point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is +-- constant that is statically used by +-- , +-- a push constant value /must/ have been set for the same pipeline +-- bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is -- compatible for push constants, with the -- 'Vulkan.Core10.Handles.PipelineLayout' or -- 'Vulkan.Core10.Handles.DescriptorSetLayout' and @@ -863,12 +914,10 @@ foreign import ccall -- - #VUID-vkCmdExecuteGeneratedCommandsNV-maintenance4-08602# If the -- -- feature is not enabled, then for each push constant that is --- statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to the --- pipeline bind point used by this command, or by any of the --- 'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages --- corresponding to the pipeline bind point used by this command, a --- push constant value /must/ have been set for the same pipeline bind --- point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is +-- statically used by +-- , +-- a push constant value /must/ have been set for the same pipeline +-- bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is -- compatible for push constants, with the -- 'Vulkan.Core10.Handles.PipelineLayout' or -- 'Vulkan.Core10.Handles.DescriptorSetLayout' and @@ -1031,34 +1080,25 @@ foreign import ccall -- buffer as specified in the descriptor set bound to the same pipeline -- bind point -- --- - #VUID-vkCmdExecuteGeneratedCommandsNV-commandBuffer-08614# If +-- - #VUID-vkCmdExecuteGeneratedCommandsNV-commandBuffer-02707# If -- @commandBuffer@ is an unprotected command buffer and -- --- is not supported, any resource accessed by the --- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind --- point used by this command or any --- 'Vulkan.Extensions.Handles.ShaderEXT' object bound to a stage --- corresponding to the pipeline bind point used by this command /must/ --- not be a protected resource --- --- - #VUID-vkCmdExecuteGeneratedCommandsNV-None-08615# If the --- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind --- point used by this command or any --- 'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding --- to the pipeline bind point used by this command accesses a --- 'Vulkan.Core10.Handles.Sampler' or 'Vulkan.Core10.Handles.ImageView' --- object that enables +-- is not supported, any resource accessed by +-- +-- /must/ not be a protected resource +-- +-- - #VUID-vkCmdExecuteGeneratedCommandsNV-None-06550# If +-- +-- accesses a 'Vulkan.Core10.Handles.Sampler' or +-- 'Vulkan.Core10.Handles.ImageView' object that enables -- , -- that object /must/ only be used with @OpImageSample*@ or -- @OpImageSparseSample*@ instructions -- --- - #VUID-vkCmdExecuteGeneratedCommandsNV-ConstOffset-08616# If the --- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind --- point used by this command or any --- 'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding --- to the pipeline bind point used by this command accesses a --- 'Vulkan.Core10.Handles.Sampler' or 'Vulkan.Core10.Handles.ImageView' --- object that enables +-- - #VUID-vkCmdExecuteGeneratedCommandsNV-ConstOffset-06551# If +-- +-- accesses a 'Vulkan.Core10.Handles.Sampler' or +-- 'Vulkan.Core10.Handles.ImageView' object that enables -- , -- that object /must/ not use the @ConstOffset@ and @Offset@ operands -- @@ -1070,17 +1110,23 @@ foreign import ccall -- -- - #VUID-vkCmdExecuteGeneratedCommandsNV-format-07753# If a -- 'Vulkan.Core10.Handles.ImageView' is accessed as a result of this --- command, then the image view’s @format@ /must/ match the numeric --- format from the @Sampled@ @Type@ operand of the @OpTypeImage@ as --- described in the SPIR-V Sampled Type column of the --- --- table --- --- - #VUID-vkCmdExecuteGeneratedCommandsNV-None-04115# If a --- 'Vulkan.Core10.Handles.ImageView' is accessed using @OpImageWrite@ --- as a result of this command, then the @Type@ of the @Texel@ operand --- of that instruction /must/ have at least as many components as the --- image view’s format +-- command, then the +-- +-- of the image view’s @format@ and the @Sampled@ @Type@ operand of the +-- @OpTypeImage@ /must/ match +-- +-- - #VUID-vkCmdExecuteGeneratedCommandsNV-OpImageWrite-08795# If a +-- 'Vulkan.Core10.Handles.ImageView' created with a format other than +-- 'Vulkan.Core10.Enums.Format.FORMAT_A8_UNORM_KHR' is accessed using +-- @OpImageWrite@ as a result of this command, then the @Type@ of the +-- @Texel@ operand of that instruction /must/ have at least as many +-- components as the image view’s format +-- +-- - #VUID-vkCmdExecuteGeneratedCommandsNV-OpImageWrite-08796# If a +-- 'Vulkan.Core10.Handles.ImageView' created with the format +-- 'Vulkan.Core10.Enums.Format.FORMAT_A8_UNORM_KHR' is accessed using +-- @OpImageWrite@ as a result of this command, then the @Type@ of the +-- @Texel@ operand of that instruction /must/ have four components -- -- - #VUID-vkCmdExecuteGeneratedCommandsNV-OpImageWrite-04469# If a -- 'Vulkan.Core10.Handles.BufferView' is accessed using @OpImageWrite@ @@ -1184,6 +1230,8 @@ foreign import ccall -- -- - #VUID-vkCmdExecuteGeneratedCommandsNV-OpImageWeightedSampleQCOM-06977# -- If @OpImageWeightedSampleQCOM@, @OpImageBoxFilterQCOM@, +-- @OpImageBlockMatchWindowSSDQCOM@, @OpImageBlockMatchWindowSADQCOM@, +-- @OpImageBlockMatchGatherSSDQCOM@, @OpImageBlockMatchGatherSADQCOM@, -- @OpImageBlockMatchSSDQCOM@, or @OpImageBlockMatchSADQCOM@ uses a -- 'Vulkan.Core10.Handles.Sampler' as a result of this command, then -- the sampler /must/ have been created with @@ -1191,12 +1239,36 @@ foreign import ccall -- -- - #VUID-vkCmdExecuteGeneratedCommandsNV-OpImageWeightedSampleQCOM-06978# -- If any command other than @OpImageWeightedSampleQCOM@, --- @OpImageBoxFilterQCOM@, @OpImageBlockMatchSSDQCOM@, or +-- @OpImageBoxFilterQCOM@, @OpImageBlockMatchWindowSSDQCOM@, +-- @OpImageBlockMatchWindowSADQCOM@, @OpImageBlockMatchGatherSSDQCOM@, +-- @OpImageBlockMatchGatherSADQCOM@, @OpImageBlockMatchSSDQCOM@, or -- @OpImageBlockMatchSADQCOM@ uses a 'Vulkan.Core10.Handles.Sampler' as -- a result of this command, then the sampler /must/ not have been -- created with -- 'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM' -- +-- - #VUID-vkCmdExecuteGeneratedCommandsNV-OpImageBlockMatchWindow-09215# +-- If a @OpImageBlockMatchWindow*QCOM@ or +-- @OpImageBlockMatchGather*QCOM@ instruction is used to read from an +-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then +-- the image view’s +-- +-- /must/ contain +-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM' +-- +-- - #VUID-vkCmdExecuteGeneratedCommandsNV-OpImageBlockMatchWindow-09216# +-- If a @OpImageBlockMatchWindow*QCOM@ or +-- @OpImageBlockMatchGather*QCOM@ instruction is used to read from an +-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then +-- the image view’s format /must/ be a single-component format. +-- +-- - #VUID-vkCmdExecuteGeneratedCommandsNV-OpImageBlockMatchWindow-09217# +-- If a @OpImageBlockMatchWindow*QCOM@ or +-- @OpImageBlockMatchGather*QCOM@ read from a reference image as result +-- of this command, then the specified reference coordinates /must/ not +-- fail +-- +-- -- - #VUID-vkCmdExecuteGeneratedCommandsNV-None-07288# Any shader -- invocation executed by this command /must/ -- @@ -1241,15 +1313,89 @@ foreign import ccall -- /must/ not be written in any way other than as an attachment by this -- command -- --- - #VUID-vkCmdExecuteGeneratedCommandsNV-None-06538# If any recorded --- command in the current subpass will write to an image subresource as --- an attachment, this command /must/ not read from the memory backing --- that image subresource in any other way than as an attachment +-- - #VUID-vkCmdExecuteGeneratedCommandsNV-None-09000# If a color +-- attachment is written by any prior command in this subpass or by the +-- load, store, or resolve operations for this subpass, it is not in +-- the +-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT' +-- image layout, and either: +-- +-- - the +-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT' +-- is set on the currently bound pipeline or -- --- - #VUID-vkCmdExecuteGeneratedCommandsNV-None-06539# If any recorded --- command in the current subpass will read from an image subresource --- used as an attachment in any way other than as an attachment, this --- command /must/ not write to that image subresource as an attachment +-- - the last call to +-- 'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT' +-- included +-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT' +-- and +-- +-- - there is no currently bound graphics pipeline or +-- +-- - the currently bound graphics pipeline was created with +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT' +-- it /must/ not be accessed in any way other than as an +-- attachment by this command +-- +-- - #VUID-vkCmdExecuteGeneratedCommandsNV-None-09001# If a depth +-- attachment is written by any prior command in this subpass or by the +-- load, store, or resolve operations for this subpass, it is not in +-- the +-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT' +-- image layout, and either: +-- +-- - the +-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT' +-- is set on the currently bound pipeline or +-- +-- - the last call to +-- 'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT' +-- included +-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_DEPTH_BIT' +-- and +-- +-- - there is no currently bound graphics pipeline or +-- +-- - the currently bound graphics pipeline was created with +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT' +-- it /must/ not be accessed in any way other than as an +-- attachment by this command +-- +-- - #VUID-vkCmdExecuteGeneratedCommandsNV-None-09002# If a stencil +-- attachment is written by any prior command in this subpass or by the +-- load, store, or resolve operations for this subpass, it is not in +-- the +-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT' +-- image layout, and either: +-- +-- - the +-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT' +-- is set on the currently bound pipeline or +-- +-- - the last call to +-- 'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT' +-- included +-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT' +-- and +-- +-- - there is no currently bound graphics pipeline or +-- +-- - the currently bound graphics pipeline was created with +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT' +-- it /must/ not be accessed in any way other than as an +-- attachment by this command +-- +-- - #VUID-vkCmdExecuteGeneratedCommandsNV-None-09003# If an attachment +-- is written by any prior command in this subpass or by the load, +-- store, or resolve operations for this subpass, it /must/ not be +-- accessed in any way other than as an attachment, storage image, or +-- sampled image by this command +-- +-- - #VUID-vkCmdExecuteGeneratedCommandsNV-None-06539# If any previously +-- recorded command in the current subpass accessed an image +-- subresource used as an attachment in this subpass in any way other +-- than as an attachment, this command /must/ not write to that image +-- subresource as an attachment -- -- - #VUID-vkCmdExecuteGeneratedCommandsNV-None-06886# If the current -- render pass instance uses a depth\/stencil attachment with a @@ -1319,18 +1465,23 @@ foreign import ccall -- graphics pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS' dynamic -- state enabled then --- 'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBias' /must/ have --- been called in the current command buffer prior to this drawing --- command +-- 'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBias' or +-- 'Vulkan.Extensions.VK_EXT_depth_bias_control.cmdSetDepthBias2EXT' +-- /must/ have been called in the current command buffer prior to this +-- drawing command -- -- - #VUID-vkCmdExecuteGeneratedCommandsNV-None-08620# If a shader object -- is bound to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnable' -- in the current command buffer set @depthBiasEnable@ to -- 'Vulkan.Core10.FundamentalTypes.TRUE', --- 'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBias' /must/ have --- been called in the current command buffer prior to this drawing --- command +-- 'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBias' or +-- 'Vulkan.Extensions.VK_EXT_depth_bias_control.cmdSetDepthBias2EXT' +-- /must/ have been called in the current command buffer prior to this +-- drawing command -- -- - #VUID-vkCmdExecuteGeneratedCommandsNV-None-07835# If the bound -- graphics pipeline state was created with the @@ -1353,7 +1504,7 @@ foreign import ccall -- the most recent call to -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT' -- in the current command buffer set the same element of --- @pColorBlendEquations@ to an +-- @pColorBlendEquations@ to a -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.ColorBlendEquationEXT' -- structure with any 'Vulkan.Core10.Enums.BlendFactor.BlendFactor' -- member with a value of @@ -1368,16 +1519,20 @@ foreign import ccall -- - #VUID-vkCmdExecuteGeneratedCommandsNV-None-07836# If the bound -- graphics pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS' --- dynamic state enabled then +-- dynamic state enabled, and if the current @depthBoundsTestEnable@ +-- state is 'Vulkan.Core10.FundamentalTypes.TRUE', then -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBounds' /must/ have -- been called in the current command buffer prior to this drawing -- command -- -- - #VUID-vkCmdExecuteGeneratedCommandsNV-None-08622# If a shader object -- is bound to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable' -- in the current command buffer set @depthBoundsTestEnable@ to --- 'Vulkan.Core10.FundamentalTypes.TRUE', +-- 'Vulkan.Core10.FundamentalTypes.TRUE', then -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBounds' /must/ have -- been called in the current command buffer prior to this drawing -- command @@ -1385,7 +1540,8 @@ foreign import ccall -- - #VUID-vkCmdExecuteGeneratedCommandsNV-None-07837# If the bound -- graphics pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_COMPARE_MASK' --- dynamic state enabled then +-- dynamic state enabled, and if the current @stencilTestEnable@ state +-- is 'Vulkan.Core10.FundamentalTypes.TRUE', then -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilCompareMask' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -1402,7 +1558,8 @@ foreign import ccall -- - #VUID-vkCmdExecuteGeneratedCommandsNV-None-07838# If the bound -- graphics pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_WRITE_MASK' --- dynamic state enabled then +-- dynamic state enabled, and if the current @stencilTestEnable@ state +-- is 'Vulkan.Core10.FundamentalTypes.TRUE', then -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilWriteMask' /must/ -- have been called in the current command buffer prior to this drawing -- command @@ -1419,7 +1576,8 @@ foreign import ccall -- - #VUID-vkCmdExecuteGeneratedCommandsNV-None-07839# If the bound -- graphics pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_REFERENCE' --- dynamic state enabled then +-- dynamic state enabled, and if the current @stencilTestEnable@ state +-- is 'Vulkan.Core10.FundamentalTypes.TRUE', then -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilReference' /must/ -- have been called in the current command buffer prior to this drawing -- command @@ -1459,7 +1617,10 @@ foreign import ccall -- is bound to any graphics stage, and the most recent call to -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT' -- in the current command buffer set @sampleLocationsEnable@ to --- 'Vulkan.Core10.FundamentalTypes.TRUE', +-- 'Vulkan.Core10.FundamentalTypes.TRUE', and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -1483,7 +1644,10 @@ foreign import ccall -- drawing command -- -- - #VUID-vkCmdExecuteGeneratedCommandsNV-None-08627# If a shader object --- is bound to any graphics stage, +-- is bound to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetCullMode' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -1497,7 +1661,10 @@ foreign import ccall -- drawing command -- -- - #VUID-vkCmdExecuteGeneratedCommandsNV-None-08628# If a shader object --- is bound to any graphics stage, +-- is bound to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetFrontFace' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -1511,7 +1678,10 @@ foreign import ccall -- drawing command -- -- - #VUID-vkCmdExecuteGeneratedCommandsNV-None-08629# If a shader object --- is bound to any graphics stage, +-- is bound to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -1525,7 +1695,10 @@ foreign import ccall -- drawing command -- -- - #VUID-vkCmdExecuteGeneratedCommandsNV-None-08630# If a shader object --- is bound to any graphics stage, +-- is bound to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -1540,9 +1713,12 @@ foreign import ccall -- -- - #VUID-vkCmdExecuteGeneratedCommandsNV-None-08631# If a shader object -- is bound to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable' -- in the current command buffer set @depthTestEnable@ to --- 'Vulkan.Core10.FundamentalTypes.TRUE', +-- 'Vulkan.Core10.FundamentalTypes.TRUE', then -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthCompareOp' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -1558,7 +1734,10 @@ foreign import ccall -- - #VUID-vkCmdExecuteGeneratedCommandsNV-None-08632# If a shader object -- is bound to any graphics stage, and the -- --- feature is enabled, the +-- feature is enabled, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then the -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -1678,6 +1857,13 @@ foreign import ccall -- the last call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- +-- - #VUID-vkCmdExecuteGeneratedCommandsNV-None-09232# If a shader object +-- is bound to any graphics stage, and the @VK_NV_clip_space_w_scaling@ +-- extension is enabled on the device, then +-- 'Vulkan.Extensions.VK_NV_clip_space_w_scaling.cmdSetViewportWScalingNV' +-- must have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdExecuteGeneratedCommandsNV-None-08636# If a shader object -- is bound to any graphics stage, and the @VK_NV_clip_space_w_scaling@ -- extension is enabled on the device, then the @viewportCount@ @@ -1711,6 +1897,30 @@ foreign import ccall -- the last call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- +-- - #VUID-vkCmdExecuteGeneratedCommandsNV-shadingRateImage-09233# If the +-- +-- feature is enabled, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set rasterizerDiscardEnable to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then +-- 'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetCoarseSampleOrderNV' +-- must have been called in the current command buffer prior to this +-- drawing command +-- +-- - #VUID-vkCmdExecuteGeneratedCommandsNV-shadingRateImage-09234# If a +-- shader object is bound to any graphics stage, and the +-- +-- feature is enabled on the device, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set rasterizerDiscardEnable to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetShadingRateImageEnableNV' +-- in the current command buffer set shadingRateImageEnable to +-- 'Vulkan.Core10.FundamentalTypes.TRUE', then +-- 'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetViewportShadingRatePaletteNV' +-- must have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdExecuteGeneratedCommandsNV-None-08637# If a shader object -- is bound to any graphics stage, and the -- @@ -1763,6 +1973,14 @@ foreign import ccall -- /must/ have been called in the current command buffer prior to this -- drawing command -- +-- - #VUID-vkCmdExecuteGeneratedCommandsNV-exclusiveScissor-09235# If a +-- shader object is bound to any graphics stage, and the +-- +-- feature is enabled, then +-- 'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorEnableNV' +-- must have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdExecuteGeneratedCommandsNV-None-08638# If a shader object -- is bound to any graphics stage, and the most recent call to -- 'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorEnableNV' @@ -1814,7 +2032,9 @@ foreign import ccall -- 'Vulkan.Core10.Enums.LogicOp.LogicOp' value -- -- - #VUID-vkCmdExecuteGeneratedCommandsNV-None-08641# If a shader object --- is bound to any graphics stage, and the +-- is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage, and the -- -- feature is enabled on the device, and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' @@ -1900,6 +2120,11 @@ foreign import ccall -- to be the same as the number of samples for the current render pass -- color and\/or depth\/stencil attachments -- +-- - #VUID-vkCmdExecuteGeneratedCommandsNV-None-08876# If a shader object +-- is bound to any graphics stage, the current render pass instance +-- /must/ have been begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' +-- -- - #VUID-vkCmdExecuteGeneratedCommandsNV-imageView-06172# If the -- current render pass instance was begun with -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', @@ -1972,8 +2197,11 @@ foreign import ccall -- equal to -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ -- --- - #VUID-vkCmdExecuteGeneratedCommandsNV-colorAttachmentCount-06180# If --- the current render pass instance was begun with +-- - #VUID-vkCmdExecuteGeneratedCommandsNV-dynamicRenderingUnusedAttachments-08910# +-- If the +-- +-- feature is not enabled, and the current render pass instance was +-- begun with -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' -- and -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ @@ -1986,8 +2214,32 @@ foreign import ccall -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@ -- used to create the currently bound graphics pipeline -- --- - #VUID-vkCmdExecuteGeneratedCommandsNV-colorAttachmentCount-07616# If --- the current render pass instance was begun with +-- - #VUID-vkCmdExecuteGeneratedCommandsNV-dynamicRenderingUnusedAttachments-08911# +-- If the +-- +-- feature is enabled, and the current render pass instance was begun +-- with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' +-- and +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ +-- greater than @0@, then each element of the +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@ +-- array with a @imageView@ not equal to +-- 'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created +-- with a 'Vulkan.Core10.Enums.Format.Format' equal to the +-- corresponding element of +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@ +-- used to create the currently bound graphics pipeline, or the +-- corresponding element of +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@, +-- if it exists, /must/ be +-- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' +-- +-- - #VUID-vkCmdExecuteGeneratedCommandsNV-dynamicRenderingUnusedAttachments-08912# +-- If the +-- +-- feature is not enabled, and the current render pass instance was +-- begun with -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' -- and -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ @@ -2000,6 +2252,132 @@ foreign import ccall -- used to create the currently bound pipeline equal to -- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' -- +-- - #VUID-vkCmdExecuteGeneratedCommandsNV-colorAttachmentCount-09362# If +-- the current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- with a +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ +-- equal to @1@, there is no shader object bound to any graphics stage, +-- and a color attachment with a resolve mode of +-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID', +-- each element of the +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@ +-- array with a @resolveImageView@ not equal to +-- 'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created +-- with an image created with a +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- value equal to the +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- value used to create the currently bound graphics pipeline +-- +-- - #VUID-vkCmdExecuteGeneratedCommandsNV-None-09363# If there is no +-- shader object bound to any graphics stage, the current render pass +-- instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' +-- and a +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ +-- equal to @1@, and a color attachment with a resolve mode of +-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID', +-- each element of the +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@ +-- array with a @imageView@ not equal to +-- 'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created +-- with an image created with a +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- value equal to the +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- value used to create the currently bound graphics pipeline +-- +-- - #VUID-vkCmdExecuteGeneratedCommandsNV-None-09364# If the current +-- render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- there is no shader object bound to any graphics stage, and the +-- currently bound graphics pipeline was created with a non-zero +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- value and with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT' +-- dynamic state enabled, then +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT' +-- /must/ have set the blend enable to +-- 'Vulkan.Core10.FundamentalTypes.FALSE' prior to this drawing command +-- +-- - #VUID-vkCmdExecuteGeneratedCommandsNV-None-09365# If the current +-- render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- there is no shader object bound to any graphics stage, and the +-- currently bound graphics pipeline was created with a non-zero +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- value and with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT' +-- dynamic state enabled, then +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT' +-- /must/ have set @rasterizationSamples@ to +-- 'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT' prior +-- to this drawing command +-- +-- - #VUID-vkCmdExecuteGeneratedCommandsNV-None-09366# If there is a +-- shader object bound to any graphics stage, and the current render +-- pass includes a color attachment that uses the +-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID' +-- resolve mode, then +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT' +-- /must/ have set blend enable to +-- 'Vulkan.Core10.FundamentalTypes.FALSE' prior to this drawing command +-- +-- - #VUID-vkCmdExecuteGeneratedCommandsNV-rasterizationSamples-09367# If +-- there is a shader object bound to any graphics stage, and the +-- current render pass includes a color attachment that uses the +-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID' +-- resolve mode, then +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT' +-- /must/ have set @rasterizationSamples@ to +-- 'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT' prior +-- to this drawing command +-- +-- - #VUID-vkCmdExecuteGeneratedCommandsNV-None-09368# If the current +-- render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- there is no shader object bound to any graphics stage, and the +-- currently bound graphics pipeline was created with a non-zero +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- value and with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR' +-- dynamic state enabled, then +-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR' +-- /must/ have set @pFragmentSize->width@ to @1@ prior to this drawing +-- command +-- +-- - #VUID-vkCmdExecuteGeneratedCommandsNV-None-09369# If the current +-- render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- there is no shader object bound to any graphics stage, and the +-- currently bound graphics pipeline was created with a non-zero +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- value and with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR' +-- dynamic state enabled, then +-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR' +-- /must/ have set @pFragmentSize->height@ to @1@ prior to this drawing +-- command +-- +-- - #VUID-vkCmdExecuteGeneratedCommandsNV-pFragmentSize-09370# If there +-- is a shader object bound to any graphics stage, and the current +-- render pass includes a color attachment that uses the +-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID' +-- resolve mode, then +-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR' +-- /must/ have set @pFragmentSize->width@ to @1@ prior to this drawing +-- command +-- +-- - #VUID-vkCmdExecuteGeneratedCommandsNV-pFragmentSize-09371# If there +-- is a shader object bound to any graphics stage, and the current +-- render pass includes a color attachment that uses the +-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID' +-- resolve mode, then +-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR' +-- /must/ have set @pFragmentSize->height@ to @1@ prior to this drawing +-- command +-- -- - #VUID-vkCmdExecuteGeneratedCommandsNV-None-07749# If the bound -- graphics pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT' @@ -2011,7 +2389,9 @@ foreign import ccall -- - #VUID-vkCmdExecuteGeneratedCommandsNV-None-08646# If the -- -- feature is enabled on the device, and a shader object is bound to --- the fragment stage, and the most recent call to +-- the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage, and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' -- in the current command buffer set @rasterizerDiscardEnable@ to -- 'Vulkan.Core10.FundamentalTypes.FALSE', then @@ -2031,7 +2411,9 @@ foreign import ccall -- - #VUID-vkCmdExecuteGeneratedCommandsNV-None-08647# If the -- -- feature is enabled on the device, and a shader object is bound to --- the fragment stage, and the most recent call to +-- the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage, and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' -- in the current command buffer set @rasterizerDiscardEnable@ to -- 'Vulkan.Core10.FundamentalTypes.FALSE', then the @attachmentCount@ @@ -2057,6 +2439,17 @@ foreign import ccall -- /must/ have been called in the current command buffer prior to this -- drawing command -- +-- - #VUID-vkCmdExecuteGeneratedCommandsNV-rasterizerDiscardEnable-09236# +-- If the @VK_EXT_discard_rectangles@ extension is enabled, and a +-- shader object is bound to any graphics stage, and the most recent +-- call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then +-- 'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEXT' +-- /must/ have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdExecuteGeneratedCommandsNV-None-08648# If the -- @VK_EXT_discard_rectangles@ extension is enabled, and a shader -- object is bound to any graphics stage, and the most recent call to @@ -2088,10 +2481,24 @@ foreign import ccall -- /must/ have been called in the current command buffer prior to this -- drawing command -- --- - #VUID-vkCmdExecuteGeneratedCommandsNV-pDepthAttachment-06181# If the --- current render pass instance was begun with --- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' --- and +-- - #VUID-vkCmdExecuteGeneratedCommandsNV-dynamicRenderingUnusedAttachments-08913# +-- If the current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- the +-- +-- feature is not enabled, and +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@ +-- was 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@ +-- used to create the currently bound graphics pipeline /must/ be equal +-- to 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' +-- +-- - #VUID-vkCmdExecuteGeneratedCommandsNV-dynamicRenderingUnusedAttachments-08914# +-- If current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- the +-- +-- feature is not enabled, and -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@ -- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@ @@ -2099,20 +2506,39 @@ foreign import ccall -- to the 'Vulkan.Core10.Enums.Format.Format' used to create -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@ -- --- - #VUID-vkCmdExecuteGeneratedCommandsNV-pDepthAttachment-07617# If the --- current render pass instance was begun with --- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' --- and +-- - #VUID-vkCmdExecuteGeneratedCommandsNV-dynamicRenderingUnusedAttachments-08915# +-- If the current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- the +-- +-- feature is enabled, -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@ --- was 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of +-- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the value of -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@ +-- used to create the currently bound graphics pipeline was not equal +-- to the 'Vulkan.Core10.Enums.Format.Format' used to create +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@, +-- the value of the format /must/ be +-- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' +-- +-- - #VUID-vkCmdExecuteGeneratedCommandsNV-dynamicRenderingUnusedAttachments-08916# +-- If the current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- the +-- +-- feature is not enabled, and +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@ +-- was 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@ -- used to create the currently bound graphics pipeline /must/ be equal -- to 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' -- --- - #VUID-vkCmdExecuteGeneratedCommandsNV-pStencilAttachment-06182# If --- the current render pass instance was begun with --- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' --- and +-- - #VUID-vkCmdExecuteGeneratedCommandsNV-dynamicRenderingUnusedAttachments-08917# +-- If current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- the +-- +-- feature is not enabled, and -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@ -- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@ @@ -2120,15 +2546,20 @@ foreign import ccall -- to the 'Vulkan.Core10.Enums.Format.Format' used to create -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@ -- --- - #VUID-vkCmdExecuteGeneratedCommandsNV-pStencilAttachment-07618# If --- the current render pass instance was begun with --- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' --- and +-- - #VUID-vkCmdExecuteGeneratedCommandsNV-dynamicRenderingUnusedAttachments-08918# +-- If the current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- the +-- +-- feature is enabled, -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@ --- was 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of +-- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the value of -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@ --- used to create the currently bound graphics pipeline /must/ be equal --- to 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' +-- used to create the currently bound graphics pipeline was not equal +-- to the 'Vulkan.Core10.Enums.Format.Format' used to create +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@, +-- the value of the format /must/ be +-- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' -- -- - #VUID-vkCmdExecuteGeneratedCommandsNV-imageView-06183# If the -- current render pass instance was begun with @@ -2275,6 +2706,40 @@ foreign import ccall -- 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@renderPass@ -- equal to 'Vulkan.Core10.APIConstants.NULL_HANDLE' -- +-- - #VUID-vkCmdExecuteGeneratedCommandsNV-pColorAttachments-08963# If +-- the current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- there is a graphics pipeline bound with a fragment shader that +-- statically writes to a color attachment, the color write mask is not +-- zero, color writes are enabled, and the corresponding element of the +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments->imageView@ +-- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', then the +-- corresponding element of +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@ +-- used to create the pipeline /must/ not be +-- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' +-- +-- - #VUID-vkCmdExecuteGeneratedCommandsNV-pDepthAttachment-08964# If the +-- current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- there is a graphics pipeline bound, depth test is enabled, depth +-- write is enabled, and the +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@ +-- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', then the +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@ +-- used to create the pipeline /must/ not be +-- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' +-- +-- - #VUID-vkCmdExecuteGeneratedCommandsNV-pStencilAttachment-08965# If +-- the current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- there is a graphics pipeline bound, stencil test is enabled and the +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@ +-- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', then the +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@ +-- used to create the pipeline /must/ not be +-- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' +-- -- - #VUID-vkCmdExecuteGeneratedCommandsNV-primitivesGeneratedQueryWithRasterizerDiscard-06708# -- If the -- @@ -2301,6 +2766,22 @@ foreign import ccall -- /must/ have been called in the current command buffer prior to this -- drawing command -- +-- - #VUID-vkCmdExecuteGeneratedCommandsNV-None-07620# If the bound +-- graphics pipeline state was created with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT' +-- dynamic state enabled then +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClampEnableEXT' +-- /must/ have been called in the current command buffer prior to this +-- drawing command +-- +-- - #VUID-vkCmdExecuteGeneratedCommandsNV-None-09237# If a shader object +-- is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT' +-- stage, then +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetTessellationDomainOriginEXT' +-- /must/ have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdExecuteGeneratedCommandsNV-None-08650# If the -- -- feature is enabled, and a shader object is bound to any graphics @@ -2371,6 +2852,17 @@ foreign import ccall -- /must/ have been called in the current command buffer prior to this -- drawing command -- +-- - #VUID-vkCmdExecuteGeneratedCommandsNV-alphaToCoverageEnable-08919# +-- If the bound graphics pipeline state was created with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT' +-- dynamic state enabled, and @alphaToCoverageEnable@ was +-- 'Vulkan.Core10.FundamentalTypes.TRUE' in the last call to +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT', +-- then the +-- +-- /must/ contain a variable for the alpha @Component@ word in +-- @Location@ 0 at @Index@ 0 +-- -- - #VUID-vkCmdExecuteGeneratedCommandsNV-None-08654# If a shader object -- is bound to any graphics stage, and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' @@ -2380,6 +2872,16 @@ foreign import ccall -- /must/ have been called in the current command buffer prior to this -- drawing command -- +-- - #VUID-vkCmdExecuteGeneratedCommandsNV-alphaToCoverageEnable-08920# +-- If a shader object is bound to any graphics stage, and the most +-- recent call to +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT' +-- in the current command buffer set @alphaToCoverageEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.TRUE', then the +-- +-- /must/ contain a variable for the alpha @Component@ word in +-- @Location@ 0 at @Index@ 0 +-- -- - #VUID-vkCmdExecuteGeneratedCommandsNV-None-07625# If the bound -- graphics pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT' @@ -2409,7 +2911,8 @@ foreign import ccall -- -- - #VUID-vkCmdExecuteGeneratedCommandsNV-None-08656# If the -- --- feature is enabled, and a shader object is bound to any graphics +-- feature is enabled, and a shader object is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' -- stage, and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' -- in the current command buffer set @rasterizerDiscardEnable@ to @@ -2427,7 +2930,9 @@ foreign import ccall -- drawing command -- -- - #VUID-vkCmdExecuteGeneratedCommandsNV-None-08657# If a shader object --- is bound to any graphics stage, and the most recent call to +-- is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage, and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' -- in the current command buffer set @rasterizerDiscardEnable@ to -- 'Vulkan.Core10.FundamentalTypes.FALSE', then @@ -2464,7 +2969,9 @@ foreign import ccall -- drawing command -- -- - #VUID-vkCmdExecuteGeneratedCommandsNV-None-08659# If a shader object --- is bound to any graphics stage, and the most recent call to +-- is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage, and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' -- in the current command buffer set @rasterizerDiscardEnable@ to -- 'Vulkan.Core10.FundamentalTypes.FALSE', then @@ -2482,7 +2989,8 @@ foreign import ccall -- -- - #VUID-vkCmdExecuteGeneratedCommandsNV-None-08660# If the -- --- feature is enabled, and a shader object is bound to the geometry +-- feature is enabled, and a shader object is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT' -- stage, then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationStreamEXT' -- /must/ have been called in the current command buffer prior to this @@ -2582,7 +3090,9 @@ foreign import ccall -- -- - #VUID-vkCmdExecuteGeneratedCommandsNV-None-08665# If the -- @VK_EXT_provoking_vertex@ extension is enabled, and a shader object --- is bound to the vertex stage, then +-- is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT' +-- stage, then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetProvokingVertexModeEXT' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -2691,7 +3201,7 @@ foreign import ccall -- stage, then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClipNegativeOneToOneEXT' -- /must/ have been called in the current command buffer prior to this --- drawing command ifdef::VK_EXT_extended_dynamic_state3 +-- drawing command -- -- - #VUID-vkCmdExecuteGeneratedCommandsNV-None-07640# If the bound -- graphics pipeline state was created with the @@ -2699,7 +3209,7 @@ foreign import ccall -- dynamic state enabled then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetViewportWScalingEnableNV' -- /must/ have been called in the current command buffer prior to this --- drawing command endif::VK_EXT_extended_dynamic_state3 +-- drawing command -- -- - #VUID-vkCmdExecuteGeneratedCommandsNV-None-08674# If the -- @VK_NV_clip_space_w_scaling@ extension is enabled, and a shader @@ -2733,7 +3243,12 @@ foreign import ccall -- -- - #VUID-vkCmdExecuteGeneratedCommandsNV-None-08676# If the -- @VK_NV_fragment_coverage_to_color@ extension is enabled, and a --- shader object is bound to any graphics stage, then +-- shader object is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -2748,8 +3263,9 @@ foreign import ccall -- -- - #VUID-vkCmdExecuteGeneratedCommandsNV-None-08677# If the -- @VK_NV_fragment_coverage_to_color@ extension is enabled, and a --- shader object is bound to any graphics stage, and the most recent --- call to +-- shader object is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage, and the most recent call to -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV' -- in the current command buffer set @coverageToColorEnable@ to -- 'Vulkan.Core10.FundamentalTypes.TRUE', then @@ -2767,7 +3283,10 @@ foreign import ccall -- -- - #VUID-vkCmdExecuteGeneratedCommandsNV-None-08678# If the -- @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader --- object is bound to any graphics stage, then +-- object is bound to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationModeNV' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -2782,7 +3301,15 @@ foreign import ccall -- -- - #VUID-vkCmdExecuteGeneratedCommandsNV-None-08679# If the -- @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader --- object is bound to any graphics stage, then +-- object is bound to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationModeNV' +-- in the current command buffer set coverageModulationMode to any +-- value other than +-- 'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.COVERAGE_MODULATION_MODE_NONE_NV', +-- then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -2798,6 +3325,9 @@ foreign import ccall -- - #VUID-vkCmdExecuteGeneratedCommandsNV-None-08680# If the -- @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader -- object is bound to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV' -- in the current command buffer set @coverageModulationTableEnable@ to -- 'Vulkan.Core10.FundamentalTypes.TRUE', then @@ -2813,10 +3343,26 @@ foreign import ccall -- /must/ have been called in the current command buffer prior to this -- drawing command -- +-- - #VUID-vkCmdExecuteGeneratedCommandsNV-pipelineFragmentShadingRate-09238# +-- If the +-- +-- feature is enabled, and a shader object is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set rasterizerDiscardEnable to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then +-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR' +-- must have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdExecuteGeneratedCommandsNV-None-08681# If the -- -- feature is enabled, and a shader object is bound to any graphics --- stage, then +-- stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetShadingRateImageEnableNV' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -2826,13 +3372,16 @@ foreign import ccall -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV' -- dynamic state enabled then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRepresentativeFragmentTestEnableNV' --- must have been called in the current command buffer prior to this +-- /must/ have been called in the current command buffer prior to this -- drawing command -- -- - #VUID-vkCmdExecuteGeneratedCommandsNV-None-08682# If the -- -- feature is enabled, and a shader object is bound to any graphics --- stage, then +-- stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRepresentativeFragmentTestEnableNV' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -2848,7 +3397,10 @@ foreign import ccall -- - #VUID-vkCmdExecuteGeneratedCommandsNV-None-08683# If the -- -- feature is enabled, and a shader object is bound to any graphics --- stage, then +-- stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageReductionModeNV' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -2897,18 +3449,29 @@ foreign import ccall -- in the last call to -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT' -- --- - #VUID-vkCmdExecuteGeneratedCommandsNV-multisampledRenderToSingleSampled-07475# --- If the bound graphics pipeline state was created with the +-- - #VUID-vkCmdExecuteGeneratedCommandsNV-rasterizationSamples-07474# If +-- the bound graphics pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT' --- state enabled, and none of the @VK_AMD_mixed_attachment_samples@ --- extension, @VK_NV_framebuffer_mixed_samples@ extension, or the --- --- feature is enabled, then the @rasterizationSamples@ in the last call --- to +-- state enabled, and neither the @VK_AMD_mixed_attachment_samples@ nor +-- the @VK_NV_framebuffer_mixed_samples@ extensions are enabled, then +-- the @rasterizationSamples@ in the last call to -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT' -- /must/ be the same as the current subpass color and\/or -- depth\/stencil attachments -- +-- - #VUID-vkCmdExecuteGeneratedCommandsNV-None-09211# If the bound +-- graphics pipeline state was created with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT' +-- state enabled, or a shader object is bound to any graphics stage, +-- and the current render pass instance includes a +-- 'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT' +-- structure with @multisampledRenderToSingleSampledEnable@ equal to +-- 'Vulkan.Core10.FundamentalTypes.TRUE', then the +-- @rasterizationSamples@ in the last call to +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT' +-- /must/ be the same as the @rasterizationSamples@ member of that +-- structure +-- -- - #VUID-vkCmdExecuteGeneratedCommandsNV-firstAttachment-07476# If the -- bound graphics pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT' @@ -2967,7 +3530,7 @@ foreign import ccall -- and -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendAdvancedEXT' -- have enabled advanced blending, then the number of active color --- attachments in the current subpass must not exceed +-- attachments in the current subpass /must/ not exceed -- -- -- - #VUID-vkCmdExecuteGeneratedCommandsNV-primitivesGeneratedQueryWithNonZeroStreams-07481# @@ -3129,7 +3692,7 @@ foreign import ccall -- the @VK_NV_framebuffer_mixed_samples@ extension is enabled, and if -- current subpass has a depth\/stencil attachment and depth test, -- stencil test, or depth bounds test are enabled in the currently --- bound pipeline state, then the current @rasterizationSamples@ must +-- bound pipeline state, then the current @rasterizationSamples@ /must/ -- be the same as the sample count of the depth\/stencil attachment -- -- - #VUID-vkCmdExecuteGeneratedCommandsNV-coverageToColorEnable-07490# @@ -3160,7 +3723,7 @@ foreign import ccall -- states enabled, the current coverage reduction mode -- @coverageReductionMode@, then the current @rasterizationSamples@, -- and the sample counts for the color and depth\/stencil attachments --- (if the subpass has them) must be a valid combination returned by +-- (if the subpass has them) /must/ be a valid combination returned by -- 'Vulkan.Extensions.VK_NV_coverage_reduction_mode.getPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV' -- -- - #VUID-vkCmdExecuteGeneratedCommandsNV-viewportCount-07492# If the @@ -3248,7 +3811,7 @@ foreign import ccall -- -- feature /must/ be enabled and -- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@strictLines@ --- must be VK_TRUE +-- /must/ be 'Vulkan.Core10.FundamentalTypes.TRUE' -- -- - #VUID-vkCmdExecuteGeneratedCommandsNV-conservativePointAndLineRasterization-07499# -- If the bound graphics pipeline state was created with the @@ -3275,7 +3838,15 @@ foreign import ccall -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT', -- then -- --- must not be active +-- /must/ not be active +-- +-- - #VUID-vkCmdExecuteGeneratedCommandsNV-None-08877# If the bound +-- graphics pipeline state was created with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT' +-- dynamic state +-- 'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT' +-- /must/ have been called in the current command buffer prior to this +-- drawing command -- -- - #VUID-vkCmdExecuteGeneratedCommandsNV-None-07850# If dynamic state -- was inherited from @@ -3286,7 +3857,7 @@ foreign import ccall -- - #VUID-vkCmdExecuteGeneratedCommandsNV-None-08684# If there is no -- bound graphics pipeline, -- 'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/ --- have been called on the current command buffer with @pStages@ with +-- have been called in the current command buffer with @pStages@ with -- an element of -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT' -- @@ -3295,7 +3866,7 @@ foreign import ccall -- -- feature is enabled, -- 'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/ --- have been called on the current command buffer with @pStages@ with +-- have been called in the current command buffer with @pStages@ with -- an element of -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT' -- @@ -3304,7 +3875,7 @@ foreign import ccall -- -- feature is enabled, -- 'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/ --- have been called on the current command buffer with @pStages@ with +-- have been called in the current command buffer with @pStages@ with -- an element of -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT' -- @@ -3313,14 +3884,14 @@ foreign import ccall -- -- feature is enabled, -- 'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/ --- have been called on the current command buffer with @pStages@ with +-- have been called in the current command buffer with @pStages@ with -- an element of -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT' -- -- - #VUID-vkCmdExecuteGeneratedCommandsNV-None-08688# If there is no -- bound graphics pipeline, -- 'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/ --- have been called on the current command buffer with @pStages@ with +-- have been called in the current command buffer with @pStages@ with -- an element of -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' -- @@ -3329,7 +3900,7 @@ foreign import ccall -- -- feature is enabled, -- 'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/ --- have been called on the current command buffer with @pStages@ with +-- have been called in the current command buffer with @pStages@ with -- an element of -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT' -- @@ -3338,7 +3909,7 @@ foreign import ccall -- -- feature is enabled, -- 'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/ --- have been called on the current command buffer with @pStages@ with +-- have been called in the current command buffer with @pStages@ with -- an element of -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT' -- @@ -3350,8 +3921,8 @@ foreign import ccall -- features is enabled, one of the -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT' or -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT' --- stages must have a valid 'Vulkan.Extensions.Handles.ShaderEXT' --- bound, and the other must have no +-- stages /must/ have a valid 'Vulkan.Extensions.Handles.ShaderEXT' +-- bound, and the other /must/ have no -- 'Vulkan.Extensions.Handles.ShaderEXT' bound -- -- - #VUID-vkCmdExecuteGeneratedCommandsNV-None-08694# If there is no @@ -3416,6 +3987,37 @@ foreign import ccall -- 'Vulkan.Extensions.VK_EXT_shader_object.createShadersEXT' call -- /must/ not have any 'Vulkan.Extensions.Handles.ShaderEXT' bound -- +-- - #VUID-vkCmdExecuteGeneratedCommandsNV-None-08878# All bound graphics +-- shader objects /must/ have been created with identical or +-- identically defined push constant ranges +-- +-- - #VUID-vkCmdExecuteGeneratedCommandsNV-None-08879# All bound graphics +-- shader objects /must/ have been created with identical or +-- identically defined arrays of descriptor set layouts +-- +-- - #VUID-vkCmdExecuteGeneratedCommandsNV-colorAttachmentCount-09372# If +-- the current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' +-- and a +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ +-- equal to @1@, a color attachment with a resolve mode of +-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID', +-- and a fragment shader is bound, it /must/ not declare the +-- @DepthReplacing@ or @StencilRefReplacingEXT@ execution modes +-- +-- - #VUID-vkCmdExecuteGeneratedCommandsNV-None-08880# If a shader object +-- is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage and the +-- +-- feature is enabled on the device, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE' +-- 'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT' +-- /must/ have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdExecuteGeneratedCommandsNV-pDynamicStates-08715# If the -- bound graphics pipeline state includes a fragment shader stage, was -- created with @@ -3440,6 +4042,33 @@ foreign import ccall -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilWriteMask' /must/ -- be @0@ -- +-- - #VUID-vkCmdExecuteGeneratedCommandsNV-None-09116# If a shader object +-- is bound to any graphics stage or the currently bound graphics +-- pipeline was created with +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_MASK_EXT', +-- and the format of any color attachment is +-- 'Vulkan.Core10.Enums.Format.FORMAT_E5B9G9R9_UFLOAT_PACK32', the +-- corresponding element of the @pColorWriteMasks@ parameter of +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorWriteMaskEXT' +-- /must/ either include all of +-- 'Vulkan.Core10.Enums.ColorComponentFlagBits.COLOR_COMPONENT_R_BIT', +-- 'Vulkan.Core10.Enums.ColorComponentFlagBits.COLOR_COMPONENT_G_BIT', +-- and +-- 'Vulkan.Core10.Enums.ColorComponentFlagBits.COLOR_COMPONENT_B_BIT', +-- or none of them +-- +-- - #VUID-vkCmdExecuteGeneratedCommandsNV-maxFragmentDualSrcAttachments-09239# +-- If +-- +-- is enabled for any attachment where either the source or destination +-- blend factors for that attachment +-- , +-- the maximum value of @Location@ for any output attachment +-- +-- in the @Fragment@ @Execution@ @Model@ executed by this command +-- /must/ be less than +-- +-- -- - #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 @@ -3501,6 +4130,14 @@ foreign import ccall -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT' -- /must/ not be @NULL@ -- +-- - #VUID-vkCmdExecuteGeneratedCommandsNV-None-08881# If a shader object +-- is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT' +-- stage, then +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology' +-- /must/ have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdExecuteGeneratedCommandsNV-None-04914# If the bound -- graphics pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT' @@ -3517,6 +4154,53 @@ foreign import ccall -- @OpEntryPoint@ /must/ contain a location in -- 'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@location@ -- +-- - #VUID-vkCmdExecuteGeneratedCommandsNV-Input-08734# If the bound +-- graphics pipeline state was created with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT' +-- dynamic state enabled, then the numeric type associated with all +-- @Input@ variables of the corresponding @Location@ in the @Vertex@ +-- @Execution@ @Model@ @OpEntryPoint@ /must/ be the same as +-- 'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@format@ +-- +-- - #VUID-vkCmdExecuteGeneratedCommandsNV-format-08936# If there is a +-- shader object bound to a graphics stage or the currently bound +-- graphics pipeline was created with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT' +-- dynamic state enabled, and +-- 'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@format@ +-- has a 64-bit component, then the scalar width associated with all +-- @Input@ variables of the corresponding @Location@ in the @Vertex@ +-- @Execution@ @Model@ @OpEntryPoint@ /must/ be 64-bit +-- +-- - #VUID-vkCmdExecuteGeneratedCommandsNV-format-08937# If there is a +-- shader object bound to a graphics stage or the currently bound +-- graphics pipeline was created with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT' +-- dynamic state enabled, and the scalar width associated with a +-- @Location@ decorated @Input@ variable in the @Vertex@ @Execution@ +-- @Model@ @OpEntryPoint@ is 64-bit, then the corresponding +-- 'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@format@ +-- /must/ have a 64-bit component +-- +-- - #VUID-vkCmdExecuteGeneratedCommandsNV-None-09203# If there is a +-- shader object bound to a graphics stage or the currently bound +-- graphics pipeline was created with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT' +-- dynamic state enabled, and +-- 'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT'::@format@ +-- has a 64-bit component, then all @Input@ variables at the +-- corresponding @Location@ in the @Vertex@ @Execution@ @Model@ +-- @OpEntryPoint@ /must/ not use components that are not present in the +-- format +-- +-- - #VUID-vkCmdExecuteGeneratedCommandsNV-None-08882# If a shader object +-- is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT' +-- stage, then +-- 'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT' +-- /must/ have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdExecuteGeneratedCommandsNV-None-04875# If the bound -- graphics pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT' @@ -3525,6 +4209,14 @@ foreign import ccall -- /must/ have been called in the current command buffer prior to this -- drawing command -- +-- - #VUID-vkCmdExecuteGeneratedCommandsNV-None-08883# If a shader object +-- is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT' +-- stage, 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-04879# If the bound -- graphics pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE' @@ -3533,6 +4225,16 @@ foreign import ccall -- /must/ have been called in the current command buffer prior to this -- drawing command -- +-- - #VUID-vkCmdExecuteGeneratedCommandsNV-rasterizerDiscardEnable-08884# +-- If a shader object is bound to any graphics stage, and the most +-- recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetPrimitiveRestartEnable' +-- /must/ have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdExecuteGeneratedCommandsNV-stage-06481# The bound -- graphics pipeline /must/ not have been created with the -- 'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo'::@stage@ @@ -3543,6 +4245,13 @@ foreign import ccall -- or -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT' -- +-- - #VUID-vkCmdExecuteGeneratedCommandsNV-None-08885# There /must/ be no +-- shader object bound to either of the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT' +-- or +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT' +-- stages +-- -- - #VUID-vkCmdExecuteGeneratedCommandsNV-commandBuffer-02970# -- @commandBuffer@ /must/ not be a protected command buffer -- @@ -3865,6 +4574,13 @@ foreign import ccall -- -- feature /must/ be enabled -- +-- - #VUID-vkGetGeneratedCommandsMemoryRequirementsNV-pInfo-09074# If +-- @pInfo@::@pipelineBindPoint@ is of type +-- 'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_COMPUTE', +-- then the +-- +-- feature /must/ be enabled +-- -- == Valid Usage (Implicit) -- -- - #VUID-vkGetGeneratedCommandsMemoryRequirementsNV-device-parameter# @@ -4563,7 +5279,8 @@ instance Zero GraphicsPipelineShaderGroupsCreateInfoNV where -- -- data BindShaderGroupIndirectCommandNV = BindShaderGroupIndirectCommandNV - { -- No documentation found for Nested "VkBindShaderGroupIndirectCommandNV" "groupIndex" + { -- | @groupIndex@ specifies which shader group of the current bound graphics + -- pipeline is used. groupIndex :: Word32 } deriving (Typeable, Eq) #if defined(GENERIC_INSTANCES) @@ -5161,6 +5878,8 @@ instance Zero IndirectCommandsLayoutTokenNV where -- - #VUID-VkIndirectCommandsLayoutCreateInfoNV-pipelineBindPoint-02930# -- The @pipelineBindPoint@ /must/ be -- 'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS' +-- or +-- 'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_COMPUTE' -- -- - #VUID-VkIndirectCommandsLayoutCreateInfoNV-tokenCount-02931# -- @tokenCount@ /must/ be greater than @0@ and less than or equal to @@ -5182,7 +5901,8 @@ instance Zero IndirectCommandsLayoutTokenNV where -- ('INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV', -- 'INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV', -- 'INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV', --- 'INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV') +-- 'INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV' , +-- 'INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NV' ) -- -- - #VUID-VkIndirectCommandsLayoutCreateInfoNV-pTokens-02935# The -- content of @pTokens@ /must/ include one single work provoking token @@ -5198,6 +5918,29 @@ instance Zero IndirectCommandsLayoutTokenNV where -- 'PhysicalDeviceDeviceGeneratedCommandsPropertiesNV'::@maxIndirectCommandsStreamStride@. -- Furthermore the alignment of each token input /must/ be ensured -- +-- - #VUID-VkIndirectCommandsLayoutCreateInfoNV-pipelineBindPoint-09088# +-- If @pipelineBindPoint@ is +-- 'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_COMPUTE' +-- then the +-- +-- feature /must/ be enabled +-- +-- - #VUID-VkIndirectCommandsLayoutCreateInfoNV-pipelineBindPoint-09089# +-- If @pipelineBindPoint@ is +-- 'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_COMPUTE' +-- then the state tokens in @pTokens@ /must/ only include +-- 'INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NV', +-- 'INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NV', or +-- 'INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV' +-- +-- - #VUID-VkIndirectCommandsLayoutCreateInfoNV-pipelineBindPoint-09090# +-- If @pipelineBindPoint@ is +-- 'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_COMPUTE' +-- and @pTokens@ includes 'INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NV', +-- then the +-- +-- feature /must/ be enabled +-- -- == Valid Usage (Implicit) -- -- - #VUID-VkIndirectCommandsLayoutCreateInfoNV-sType-sType# @sType@ @@ -5332,6 +6075,34 @@ instance Zero IndirectCommandsLayoutCreateInfoNV where -- - #VUID-VkGeneratedCommandsInfoNV-streamCount-02916# @streamCount@ -- /must/ match the @indirectCommandsLayout@’s @streamCount@ -- +-- - #VUID-VkGeneratedCommandsInfoNV-pipelineBindPoint-09084# If +-- @pipelineBindPoint@ is of type +-- 'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_COMPUTE', +-- then the @pipeline@ /must/ have been created with the flag +-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV' +-- +-- - #VUID-VkGeneratedCommandsInfoNV-pipelineBindPoint-09085# If +-- @pipelineBindPoint@ is of type +-- 'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_COMPUTE', +-- then the @pipeline@ /must/ have been created with a +-- 'Vulkan.Extensions.VK_NV_device_generated_commands_compute.ComputePipelineIndirectBufferInfoNV' +-- structure specifying a valid address where its metadata will be +-- saved +-- +-- - #VUID-VkGeneratedCommandsInfoNV-pipelineBindPoint-09086# If +-- @pipelineBindPoint@ is of type +-- 'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_COMPUTE', +-- then +-- 'Vulkan.Extensions.VK_NV_device_generated_commands_compute.cmdUpdatePipelineIndirectBufferNV' +-- /must/ have been called on that pipeline to save its metadata to a +-- device address +-- +-- - #VUID-VkGeneratedCommandsInfoNV-pipelineBindPoint-09087# If +-- @pipelineBindPoint@ is of type +-- 'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_COMPUTE', +-- and if 'INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NV' is used, then +-- @pipeline@ /must/ be 'Vulkan.Core10.APIConstants.NULL_HANDLE' +-- -- - #VUID-VkGeneratedCommandsInfoNV-sequencesCount-02917# -- @sequencesCount@ /must/ be less or equal to -- 'PhysicalDeviceDeviceGeneratedCommandsPropertiesNV'::@maxIndirectSequenceCount@ @@ -5619,6 +6390,26 @@ instance Zero GeneratedCommandsInfoNV where -- @maxSequencesCount@ /must/ be less or equal to -- 'PhysicalDeviceDeviceGeneratedCommandsPropertiesNV'::@maxIndirectSequenceCount@ -- +-- - #VUID-VkGeneratedCommandsMemoryRequirementsInfoNV-pipelineBindPoint-09075# +-- If @pipelineBindPoint@ is of type +-- 'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS', +-- then @pipeline@ /must/ be a valid 'Vulkan.Core10.Handles.Pipeline' +-- handle +-- +-- - #VUID-VkGeneratedCommandsMemoryRequirementsInfoNV-pipelineBindPoint-09076# +-- If @pipelineBindPoint@ is of type +-- 'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_COMPUTE', +-- and the @indirectCommandsLayout@ was not created with a +-- 'INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NV' token, then the +-- @pipeline@ /must/ be a valid 'Vulkan.Core10.Handles.Pipeline' handle +-- +-- - #VUID-VkGeneratedCommandsMemoryRequirementsInfoNV-pipelineBindPoint-09077# +-- If @pipelineBindPoint@ is of type +-- 'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_COMPUTE', +-- and the @indirectCommandsLayout@ contains a +-- 'INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NV' token, then the +-- @pipeline@ /must/ be @NULL@ +-- -- == Valid Usage (Implicit) -- -- - #VUID-VkGeneratedCommandsMemoryRequirementsInfoNV-sType-sType# @@ -5633,6 +6424,7 @@ instance Zero GeneratedCommandsInfoNV where -- 'Vulkan.Core10.Enums.PipelineBindPoint.PipelineBindPoint' value -- -- - #VUID-VkGeneratedCommandsMemoryRequirementsInfoNV-pipeline-parameter# +-- If @pipeline@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', -- @pipeline@ /must/ be a valid 'Vulkan.Core10.Handles.Pipeline' handle -- -- - #VUID-VkGeneratedCommandsMemoryRequirementsInfoNV-indirectCommandsLayout-parameter# @@ -5640,9 +6432,9 @@ instance Zero GeneratedCommandsInfoNV where -- 'Vulkan.Extensions.Handles.IndirectCommandsLayoutNV' handle -- -- - #VUID-VkGeneratedCommandsMemoryRequirementsInfoNV-commonparent# Both --- of @indirectCommandsLayout@, and @pipeline@ /must/ have been --- created, allocated, or retrieved from the same --- 'Vulkan.Core10.Handles.Device' +-- of @indirectCommandsLayout@, and @pipeline@ that are valid handles +-- of non-ignored parameters /must/ have been created, allocated, or +-- retrieved from the same 'Vulkan.Core10.Handles.Device' -- -- = See Also -- @@ -5691,7 +6483,6 @@ instance ToCStruct GeneratedCommandsMemoryRequirementsInfoNV where poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV) poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr) poke ((p `plusPtr` 16 :: Ptr PipelineBindPoint)) (zero) - poke ((p `plusPtr` 24 :: Ptr Pipeline)) (zero) poke ((p `plusPtr` 32 :: Ptr IndirectCommandsLayoutNV)) (zero) poke ((p `plusPtr` 40 :: Ptr Word32)) (zero) f @@ -5747,7 +6538,10 @@ pattern INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NV = IndirectComman -- | 'INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NV' specifies -- that the processing of sequences /can/ happen at an -- implementation-dependent order, which is not: guaranteed to be coherent --- using the same input data. +-- using the same input data. This flag is ignored when the +-- @pipelineBindPoint@ is +-- 'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_COMPUTE' as +-- it is implied that the dispatch sequence is always unordered. pattern INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NV = IndirectCommandsLayoutUsageFlagBitsNV 0x00000004 conNameIndirectCommandsLayoutUsageFlagBitsNV :: String @@ -5803,7 +6597,7 @@ newtype IndirectStateFlagBitsNV = IndirectStateFlagBitsNV Flags -- | 'INDIRECT_STATE_FLAG_FRONTFACE_BIT_NV' allows to toggle the -- 'Vulkan.Core10.Enums.FrontFace.FrontFace' rasterization state for --- subsequent draw operations. +-- subsequent drawing commands. pattern INDIRECT_STATE_FLAG_FRONTFACE_BIT_NV = IndirectStateFlagBitsNV 0x00000001 conNameIndirectStateFlagBitsNV :: String @@ -5859,6 +6653,10 @@ instance Read IndirectStateFlagBitsNV where -- +---------------------------------------------------+--------------------------------------------------------------------+ -- | 'INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV' | 'Vulkan.Extensions.VK_EXT_mesh_shader.cmdDrawMeshTasksIndirectEXT' | -- +---------------------------------------------------+--------------------------------------------------------------------+ +-- | 'INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NV' | 'Vulkan.Core10.CommandBufferBuilding.cmdBindPipeline' | +-- +---------------------------------------------------+--------------------------------------------------------------------+ +-- | 'INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NV' | 'Vulkan.Core10.CommandBufferBuilding.cmdDispatchIndirect' | +-- +---------------------------------------------------+--------------------------------------------------------------------+ -- -- Supported indirect command tokens -- @@ -5893,6 +6691,12 @@ pattern INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV = IndirectCommandsTokenTypeNV 6 -- No documentation found for Nested "VkIndirectCommandsTokenTypeNV" "VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV" pattern INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV = IndirectCommandsTokenTypeNV 7 +-- No documentation found for Nested "VkIndirectCommandsTokenTypeNV" "VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NV" +pattern INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NV = IndirectCommandsTokenTypeNV 1000428004 + +-- No documentation found for Nested "VkIndirectCommandsTokenTypeNV" "VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NV" +pattern INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NV = IndirectCommandsTokenTypeNV 1000428003 + -- No documentation found for Nested "VkIndirectCommandsTokenTypeNV" "VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV" pattern INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV = IndirectCommandsTokenTypeNV 1000328000 @@ -5905,6 +6709,8 @@ pattern INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV = IndirectCommandsTokenT , INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV , INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV , INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV + , INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NV + , INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NV , INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV :: IndirectCommandsTokenTypeNV #-} @@ -5949,6 +6755,14 @@ showTableIndirectCommandsTokenTypeNV = ( INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV , "DRAW_TASKS_NV" ) + , + ( INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NV + , "DISPATCH_NV" + ) + , + ( INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NV + , "PIPELINE_NV" + ) , ( INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV , "DRAW_MESH_TASKS_NV" diff --git a/src/Vulkan/Extensions/VK_NV_device_generated_commands.hs-boot b/src/Vulkan/Extensions/VK_NV_device_generated_commands.hs-boot index 94158fe27..3781b1977 100644 --- a/src/Vulkan/Extensions/VK_NV_device_generated_commands.hs-boot +++ b/src/Vulkan/Extensions/VK_NV_device_generated_commands.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 3 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- and @@ -137,7 +140,7 @@ -- - a flag that encodes the primitive winding -- -- While the GPU can be faster than a CPU to generate the commands, it will --- not happen asynchronously to the device, therefore the primary use-case +-- not happen asynchronously to the device, therefore the primary use case -- is generating “less” total work (occlusion culling, classification to -- use specialized shaders, etc.). -- diff --git a/src/Vulkan/Extensions/VK_NV_device_generated_commands_compute.hs b/src/Vulkan/Extensions/VK_NV_device_generated_commands_compute.hs new file mode 100644 index 000000000..25e2b7985 --- /dev/null +++ b/src/Vulkan/Extensions/VK_NV_device_generated_commands_compute.hs @@ -0,0 +1,836 @@ +{-# language CPP #-} +-- | = Name +-- +-- VK_NV_device_generated_commands_compute - device extension +-- +-- == VK_NV_device_generated_commands_compute +-- +-- [__Name String__] +-- @VK_NV_device_generated_commands_compute@ +-- +-- [__Extension Type__] +-- Device extension +-- +-- [__Registered Extension Number__] +-- 429 +-- +-- [__Revision__] +-- 2 +-- +-- [__Ratification Status__] +-- Not ratified +-- +-- [__Extension and Version Dependencies__] +-- +-- +-- [__Contact__] +-- +-- - Vikram Kushwaha +-- +-- +-- == Other Extension Metadata +-- +-- [__Last Modified Date__] +-- 2023-07-21 +-- +-- [__Contributors__] +-- +-- - Vikram Kushwaha, NVIDIA +-- +-- - Jeff Bolz, NVIDIA +-- +-- - Christoph Kubisch, NVIDIA +-- +-- - Piers Daniell, NVIDIA +-- +-- - Daniel Koch, NVIDIA +-- +-- - Hans-Kristian Arntzen, Valve +-- +-- - Mike Blumenkrantz, VALVE +-- +-- == Description +-- +-- This extension allows the device to generate commands for binding +-- compute pipelines, setting push constants and launching compute +-- dispatches. +-- +-- == New Commands +-- +-- - 'cmdUpdatePipelineIndirectBufferNV' +-- +-- - 'getPipelineIndirectDeviceAddressNV' +-- +-- - 'getPipelineIndirectMemoryRequirementsNV' +-- +-- == New Structures +-- +-- - 'BindPipelineIndirectCommandNV' +-- +-- - 'ComputePipelineIndirectBufferInfoNV' +-- +-- - 'PipelineIndirectDeviceAddressInfoNV' +-- +-- - Extending +-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2', +-- 'Vulkan.Core10.Device.DeviceCreateInfo': +-- +-- - 'PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV' +-- +-- == New Enum Constants +-- +-- - 'NV_DEVICE_GENERATED_COMMANDS_COMPUTE_EXTENSION_NAME' +-- +-- - 'NV_DEVICE_GENERATED_COMMANDS_COMPUTE_SPEC_VERSION' +-- +-- - Extending +-- 'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DescriptorSetLayoutCreateFlagBits': +-- +-- - 'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_INDIRECT_BINDABLE_BIT_NV' +-- +-- - Extending +-- 'Vulkan.Extensions.VK_NV_device_generated_commands.IndirectCommandsTokenTypeNV': +-- +-- - 'Vulkan.Extensions.VK_NV_device_generated_commands.INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NV' +-- +-- - 'Vulkan.Extensions.VK_NV_device_generated_commands.INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NV' +-- +-- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType': +-- +-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_COMPUTE_PIPELINE_INDIRECT_BUFFER_INFO_NV' +-- +-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_COMPUTE_FEATURES_NV' +-- +-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PIPELINE_INDIRECT_DEVICE_ADDRESS_INFO_NV' +-- +-- == Version History +-- +-- - Revision 2, 2023-07-21 (Vikram Kushwaha) +-- +-- - Rename vkCmdUpdatePipelineIndirectBuffer to +-- vkCmdUpdatePipelineIndirectBufferNV +-- +-- - Revision 1, 2023-06-09 (Vikram Kushwaha) +-- +-- - First Revision +-- +-- == See Also +-- +-- 'BindPipelineIndirectCommandNV', 'ComputePipelineIndirectBufferInfoNV', +-- 'PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV', +-- 'PipelineIndirectDeviceAddressInfoNV', +-- 'cmdUpdatePipelineIndirectBufferNV', +-- 'getPipelineIndirectDeviceAddressNV', +-- 'getPipelineIndirectMemoryRequirementsNV' +-- +-- == Document Notes +-- +-- For more information, see the +-- +-- +-- This page is a generated document. Fixes and changes should be made to +-- the generator scripts, not directly. +module Vulkan.Extensions.VK_NV_device_generated_commands_compute ( cmdUpdatePipelineIndirectBufferNV + , getPipelineIndirectMemoryRequirementsNV + , getPipelineIndirectDeviceAddressNV + , ComputePipelineIndirectBufferInfoNV(..) + , PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV(..) + , PipelineIndirectDeviceAddressInfoNV(..) + , BindPipelineIndirectCommandNV(..) + , NV_DEVICE_GENERATED_COMMANDS_COMPUTE_SPEC_VERSION + , pattern NV_DEVICE_GENERATED_COMMANDS_COMPUTE_SPEC_VERSION + , NV_DEVICE_GENERATED_COMMANDS_COMPUTE_EXTENSION_NAME + , pattern NV_DEVICE_GENERATED_COMMANDS_COMPUTE_EXTENSION_NAME + , IndirectCommandsTokenTypeNV(..) + ) where + +import Vulkan.Internal.Utils (traceAroundEvent) +import Control.Monad (unless) +import Control.Monad.IO.Class (liftIO) +import Foreign.Marshal.Alloc (allocaBytes) +import GHC.IO (throwIO) +import GHC.Ptr (nullFunPtr) +import Foreign.Ptr (nullPtr) +import Foreign.Ptr (plusPtr) +import Control.Monad.Trans.Class (lift) +import Control.Monad.Trans.Cont (evalContT) +import 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.Kind (Type) +import Control.Monad.Trans.Cont (ContT(..)) +import Vulkan.Core10.FundamentalTypes (bool32ToBool) +import Vulkan.Core10.FundamentalTypes (boolToBool32) +import Vulkan.CStruct.Extends (forgetExtensions) +import Vulkan.Core10.FundamentalTypes (Bool32) +import Vulkan.Core10.Handles (CommandBuffer) +import Vulkan.Core10.Handles (CommandBuffer(..)) +import Vulkan.Core10.Handles (CommandBuffer(CommandBuffer)) +import Vulkan.Core10.Handles (CommandBuffer_T) +import Vulkan.Core10.Pipeline (ComputePipelineCreateInfo) +import Vulkan.Core10.Handles (Device) +import Vulkan.Core10.Handles (Device(..)) +import Vulkan.Core10.Handles (Device(Device)) +import Vulkan.Core10.FundamentalTypes (DeviceAddress) +import Vulkan.Dynamic (DeviceCmds(pVkCmdUpdatePipelineIndirectBufferNV)) +import Vulkan.Dynamic (DeviceCmds(pVkGetPipelineIndirectDeviceAddressNV)) +import Vulkan.Dynamic (DeviceCmds(pVkGetPipelineIndirectMemoryRequirementsNV)) +import Vulkan.Core10.FundamentalTypes (DeviceSize) +import Vulkan.Core10.Handles (Device_T) +import Vulkan.CStruct.Extends (Extendss) +import Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2 (MemoryRequirements2) +import Vulkan.CStruct.Extends (PeekChain) +import Vulkan.Core10.Handles (Pipeline) +import Vulkan.Core10.Handles (Pipeline(..)) +import Vulkan.Core10.Enums.PipelineBindPoint (PipelineBindPoint) +import Vulkan.Core10.Enums.PipelineBindPoint (PipelineBindPoint(..)) +import Vulkan.CStruct.Extends (PokeChain) +import Vulkan.CStruct.Extends (SomeStruct) +import Vulkan.Core10.Enums.StructureType (StructureType) +import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_COMPUTE_PIPELINE_INDIRECT_BUFFER_INFO_NV)) +import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_COMPUTE_FEATURES_NV)) +import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PIPELINE_INDIRECT_DEVICE_ADDRESS_INFO_NV)) +import Vulkan.Extensions.VK_NV_device_generated_commands (IndirectCommandsTokenTypeNV(..)) +foreign import ccall +#if !defined(SAFE_FOREIGN_CALLS) + unsafe +#endif + "dynamic" mkVkCmdUpdatePipelineIndirectBufferNV + :: FunPtr (Ptr CommandBuffer_T -> PipelineBindPoint -> Pipeline -> IO ()) -> Ptr CommandBuffer_T -> PipelineBindPoint -> Pipeline -> IO () + +-- | vkCmdUpdatePipelineIndirectBufferNV - Update the indirect compute +-- pipeline’s metadata +-- +-- = Description +-- +-- 'cmdUpdatePipelineIndirectBufferNV' is only allowed outside of a render +-- pass. This command is treated as a “transfer” operation for the purposes +-- of synchronization barriers. The writes to the address /must/ be +-- synchronized using stages +-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_COPY_BIT' and +-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV' +-- and with access masks +-- 'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_MEMORY_WRITE_BIT' and +-- 'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_COMMAND_PREPROCESS_READ_BIT_NV' +-- respectively before using the results in preprocessing. +-- +-- == Valid Usage +-- +-- - #VUID-vkCmdUpdatePipelineIndirectBufferNV-pipelineBindPoint-09018# +-- @pipelineBindPoint@ /must/ be +-- 'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_COMPUTE' +-- +-- - #VUID-vkCmdUpdatePipelineIndirectBufferNV-pipeline-09019# @pipeline@ +-- /must/ have been created with +-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV' +-- flag set +-- +-- - #VUID-vkCmdUpdatePipelineIndirectBufferNV-pipeline-09020# @pipeline@ +-- /must/ have been created with 'ComputePipelineIndirectBufferInfoNV' +-- structure specifying a valid address where its metadata will be +-- saved +-- +-- - #VUID-vkCmdUpdatePipelineIndirectBufferNV-deviceGeneratedComputePipelines-09021# +-- The +-- +-- feature /must/ be enabled +-- +-- == Valid Usage (Implicit) +-- +-- - #VUID-vkCmdUpdatePipelineIndirectBufferNV-commandBuffer-parameter# +-- @commandBuffer@ /must/ be a valid +-- 'Vulkan.Core10.Handles.CommandBuffer' handle +-- +-- - #VUID-vkCmdUpdatePipelineIndirectBufferNV-pipelineBindPoint-parameter# +-- @pipelineBindPoint@ /must/ be a valid +-- 'Vulkan.Core10.Enums.PipelineBindPoint.PipelineBindPoint' value +-- +-- - #VUID-vkCmdUpdatePipelineIndirectBufferNV-pipeline-parameter# +-- @pipeline@ /must/ be a valid 'Vulkan.Core10.Handles.Pipeline' handle +-- +-- - #VUID-vkCmdUpdatePipelineIndirectBufferNV-commandBuffer-recording# +-- @commandBuffer@ /must/ be in the +-- +-- +-- - #VUID-vkCmdUpdatePipelineIndirectBufferNV-commandBuffer-cmdpool# The +-- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was +-- allocated from /must/ support transfer, graphics, or compute +-- operations +-- +-- - #VUID-vkCmdUpdatePipelineIndirectBufferNV-renderpass# This command +-- /must/ only be called outside of a render pass instance +-- +-- - #VUID-vkCmdUpdatePipelineIndirectBufferNV-videocoding# This command +-- /must/ only be called outside of a video coding scope +-- +-- - #VUID-vkCmdUpdatePipelineIndirectBufferNV-commonparent# Both of +-- @commandBuffer@, and @pipeline@ /must/ have been created, allocated, +-- or retrieved from the same 'Vulkan.Core10.Handles.Device' +-- +-- == Host Synchronization +-- +-- - Host access to @commandBuffer@ /must/ be externally synchronized +-- +-- - Host access to the 'Vulkan.Core10.Handles.CommandPool' that +-- @commandBuffer@ was allocated from /must/ be externally synchronized +-- +-- == Command Properties +-- +-- \' +-- +-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ +-- | | | | | | +-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================+ +-- | Primary | Outside | Outside | Transfer | Action | +-- | Secondary | | | Graphics | | +-- | | | | Compute | | +-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ +-- +-- = See Also +-- +-- , +-- 'Vulkan.Core10.Handles.CommandBuffer', 'Vulkan.Core10.Handles.Pipeline', +-- 'Vulkan.Core10.Enums.PipelineBindPoint.PipelineBindPoint' +cmdUpdatePipelineIndirectBufferNV :: forall io + . (MonadIO io) + => -- | @commandBuffer@ is the command buffer into which the command will be + -- recorded. + CommandBuffer + -> -- | @pipelineBindPoint@ is a + -- 'Vulkan.Core10.Enums.PipelineBindPoint.PipelineBindPoint' value + -- specifying the type of pipeline whose metadata will be saved. + PipelineBindPoint + -> -- | @pipeline@ is the pipeline whose metadata will be saved. + Pipeline + -> io () +cmdUpdatePipelineIndirectBufferNV commandBuffer + pipelineBindPoint + pipeline = liftIO $ do + let vkCmdUpdatePipelineIndirectBufferNVPtr = pVkCmdUpdatePipelineIndirectBufferNV (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds) + unless (vkCmdUpdatePipelineIndirectBufferNVPtr /= nullFunPtr) $ + throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdUpdatePipelineIndirectBufferNV is null" Nothing Nothing + let vkCmdUpdatePipelineIndirectBufferNV' = mkVkCmdUpdatePipelineIndirectBufferNV vkCmdUpdatePipelineIndirectBufferNVPtr + traceAroundEvent "vkCmdUpdatePipelineIndirectBufferNV" (vkCmdUpdatePipelineIndirectBufferNV' + (commandBufferHandle (commandBuffer)) + (pipelineBindPoint) + (pipeline)) + pure $ () + + +foreign import ccall +#if !defined(SAFE_FOREIGN_CALLS) + unsafe +#endif + "dynamic" mkVkGetPipelineIndirectMemoryRequirementsNV + :: FunPtr (Ptr Device_T -> Ptr (SomeStruct ComputePipelineCreateInfo) -> Ptr (SomeStruct MemoryRequirements2) -> IO ()) -> Ptr Device_T -> Ptr (SomeStruct ComputePipelineCreateInfo) -> Ptr (SomeStruct MemoryRequirements2) -> IO () + +-- | vkGetPipelineIndirectMemoryRequirementsNV - Get the memory requirements +-- for the compute indirect pipeline +-- +-- = Description +-- +-- If @pCreateInfo@::@pNext@ chain includes a pointer to a +-- 'ComputePipelineIndirectBufferInfoNV' structure, then the contents of +-- that structure are ignored. +-- +-- == Valid Usage +-- +-- - #VUID-vkGetPipelineIndirectMemoryRequirementsNV-deviceGeneratedComputePipelines-09082# +-- The +-- +-- feature /must/ be enabled +-- +-- - #VUID-vkGetPipelineIndirectMemoryRequirementsNV-pCreateInfo-09083# +-- @pCreateInfo@::@flags@ /must/ include +-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV' +-- +-- == Valid Usage (Implicit) +-- +-- - #VUID-vkGetPipelineIndirectMemoryRequirementsNV-device-parameter# +-- @device@ /must/ be a valid 'Vulkan.Core10.Handles.Device' handle +-- +-- - #VUID-vkGetPipelineIndirectMemoryRequirementsNV-pCreateInfo-parameter# +-- @pCreateInfo@ /must/ be a valid pointer to a valid +-- 'Vulkan.Core10.Pipeline.ComputePipelineCreateInfo' structure +-- +-- - #VUID-vkGetPipelineIndirectMemoryRequirementsNV-pMemoryRequirements-parameter# +-- @pMemoryRequirements@ /must/ be a valid pointer to a +-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2.MemoryRequirements2' +-- structure +-- +-- = See Also +-- +-- , +-- 'Vulkan.Core10.Pipeline.ComputePipelineCreateInfo', +-- 'Vulkan.Core10.Handles.Device', +-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2.MemoryRequirements2' +getPipelineIndirectMemoryRequirementsNV :: forall a b io + . ( Extendss ComputePipelineCreateInfo a + , PokeChain a + , Extendss MemoryRequirements2 b + , PokeChain b + , PeekChain b + , MonadIO io ) + => -- | @device@ is the logical device that owns the buffer. + Device + -> -- | @pCreateInfo@ is a 'Vulkan.Core10.Pipeline.ComputePipelineCreateInfo' + -- structure specifying the creation parameters of the compute pipeline + -- whose memory requirements are being queried. + (ComputePipelineCreateInfo a) + -> io (MemoryRequirements2 b) +getPipelineIndirectMemoryRequirementsNV device + createInfo = liftIO . evalContT $ do + let vkGetPipelineIndirectMemoryRequirementsNVPtr = pVkGetPipelineIndirectMemoryRequirementsNV (case device of Device{deviceCmds} -> deviceCmds) + lift $ unless (vkGetPipelineIndirectMemoryRequirementsNVPtr /= nullFunPtr) $ + throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetPipelineIndirectMemoryRequirementsNV is null" Nothing Nothing + let vkGetPipelineIndirectMemoryRequirementsNV' = mkVkGetPipelineIndirectMemoryRequirementsNV vkGetPipelineIndirectMemoryRequirementsNVPtr + pCreateInfo <- ContT $ withCStruct (createInfo) + pPMemoryRequirements <- ContT (withZeroCStruct @(MemoryRequirements2 _)) + lift $ traceAroundEvent "vkGetPipelineIndirectMemoryRequirementsNV" (vkGetPipelineIndirectMemoryRequirementsNV' + (deviceHandle (device)) + (forgetExtensions pCreateInfo) + (forgetExtensions (pPMemoryRequirements))) + pMemoryRequirements <- lift $ peekCStruct @(MemoryRequirements2 _) pPMemoryRequirements + pure $ (pMemoryRequirements) + + +foreign import ccall +#if !defined(SAFE_FOREIGN_CALLS) + unsafe +#endif + "dynamic" mkVkGetPipelineIndirectDeviceAddressNV + :: FunPtr (Ptr Device_T -> Ptr PipelineIndirectDeviceAddressInfoNV -> IO DeviceAddress) -> Ptr Device_T -> Ptr PipelineIndirectDeviceAddressInfoNV -> IO DeviceAddress + +-- | vkGetPipelineIndirectDeviceAddressNV - Get pipeline’s 64-bit device +-- address +-- +-- == Valid Usage +-- +-- - #VUID-vkGetPipelineIndirectDeviceAddressNV-deviceGeneratedComputePipelines-09078# +-- The +-- +-- feature /must/ be enabled +-- +-- == Valid Usage (Implicit) +-- +-- = See Also +-- +-- , +-- 'Vulkan.Core10.Handles.Device', 'PipelineIndirectDeviceAddressInfoNV' +getPipelineIndirectDeviceAddressNV :: forall io + . (MonadIO io) + => -- | #VUID-vkGetPipelineIndirectDeviceAddressNV-device-parameter# @device@ + -- /must/ be a valid 'Vulkan.Core10.Handles.Device' handle + Device + -> -- | #VUID-vkGetPipelineIndirectDeviceAddressNV-pInfo-parameter# @pInfo@ + -- /must/ be a valid pointer to a valid + -- 'PipelineIndirectDeviceAddressInfoNV' structure + PipelineIndirectDeviceAddressInfoNV + -> io (DeviceAddress) +getPipelineIndirectDeviceAddressNV device info = liftIO . evalContT $ do + let vkGetPipelineIndirectDeviceAddressNVPtr = pVkGetPipelineIndirectDeviceAddressNV (case device of Device{deviceCmds} -> deviceCmds) + lift $ unless (vkGetPipelineIndirectDeviceAddressNVPtr /= nullFunPtr) $ + throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetPipelineIndirectDeviceAddressNV is null" Nothing Nothing + let vkGetPipelineIndirectDeviceAddressNV' = mkVkGetPipelineIndirectDeviceAddressNV vkGetPipelineIndirectDeviceAddressNVPtr + pInfo <- ContT $ withCStruct (info) + r <- lift $ traceAroundEvent "vkGetPipelineIndirectDeviceAddressNV" (vkGetPipelineIndirectDeviceAddressNV' + (deviceHandle (device)) + pInfo) + pure $ (r) + + +-- | VkComputePipelineIndirectBufferInfoNV - Structure describing the device +-- address where pipeline’s metadata will be saved +-- +-- = Members +-- +-- If @pipelineDeviceAddressCaptureReplay@ is zero, no specific address is +-- requested. If @pipelineDeviceAddressCaptureReplay@ is not zero, then it +-- /must/ be an address retrieved from an identically created pipeline on +-- the same implementation. The pipeline metadata /must/ also be placed on +-- an identically created buffer and at the same offset using the +-- 'cmdUpdatePipelineIndirectBufferNV' command. +-- +-- == Valid Usage +-- +-- - #VUID-VkComputePipelineIndirectBufferInfoNV-deviceGeneratedComputePipelines-09009# +-- The +-- +-- feature /must/ be enabled +-- +-- - #VUID-VkComputePipelineIndirectBufferInfoNV-flags-09010# The +-- pipeline creation flags in +-- 'Vulkan.Core10.Pipeline.ComputePipelineCreateInfo'::@flags@ /must/ +-- include +-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV' +-- +-- - #VUID-VkComputePipelineIndirectBufferInfoNV-deviceAddress-09011# +-- @deviceAddress@ /must/ be aligned to the +-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2.MemoryRequirements2'::@alignment@, +-- as returned by 'getPipelineIndirectMemoryRequirementsNV' +-- +-- - #VUID-VkComputePipelineIndirectBufferInfoNV-deviceAddress-09012# +-- @deviceAddress@ /must/ have been allocated from a buffer that was +-- created with usage +-- 'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_TRANSFER_DST_BIT' +-- and +-- 'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_INDIRECT_BUFFER_BIT' +-- +-- - #VUID-VkComputePipelineIndirectBufferInfoNV-size-09013# @size@ +-- /must/ be greater than or equal to the +-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2.MemoryRequirements2'::@size@, +-- as returned by 'getPipelineIndirectMemoryRequirementsNV' +-- +-- - #VUID-VkComputePipelineIndirectBufferInfoNV-pipelineDeviceAddressCaptureReplay-09014# +-- If @pipelineDeviceAddressCaptureReplay@ is non-zero then the +-- +-- feature /must/ be enabled +-- +-- - #VUID-VkComputePipelineIndirectBufferInfoNV-pipelineDeviceAddressCaptureReplay-09015# +-- If @pipelineDeviceAddressCaptureReplay@ is non-zero then that +-- address /must/ have been allocated with flag +-- 'Vulkan.Core11.Enums.MemoryAllocateFlagBits.MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT' +-- set +-- +-- - #VUID-VkComputePipelineIndirectBufferInfoNV-pipelineDeviceAddressCaptureReplay-09016# +-- If @pipelineDeviceAddressCaptureReplay@ is non-zero, the @pipeline@ +-- /must/ have been recreated for replay +-- +-- - #VUID-VkComputePipelineIndirectBufferInfoNV-pipelineDeviceAddressCaptureReplay-09017# +-- @pipelineDeviceAddressCaptureReplay@ /must/ satisfy the @alignment@ +-- and @size@ requirements similar to @deviceAddress@ +-- +-- == Valid Usage (Implicit) +-- +-- - #VUID-VkComputePipelineIndirectBufferInfoNV-sType-sType# @sType@ +-- /must/ be +-- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_COMPUTE_PIPELINE_INDIRECT_BUFFER_INFO_NV' +-- +-- - #VUID-VkComputePipelineIndirectBufferInfoNV-pNext-pNext# @pNext@ +-- /must/ be @NULL@ +-- +-- = See Also +-- +-- , +-- 'Vulkan.Core10.FundamentalTypes.DeviceAddress', +-- 'Vulkan.Core10.FundamentalTypes.DeviceSize', +-- 'Vulkan.Core10.Enums.StructureType.StructureType' +data ComputePipelineIndirectBufferInfoNV = ComputePipelineIndirectBufferInfoNV + { -- No documentation found for Nested "VkComputePipelineIndirectBufferInfoNV" "deviceAddress" + deviceAddress :: DeviceAddress + , -- No documentation found for Nested "VkComputePipelineIndirectBufferInfoNV" "size" + size :: DeviceSize + , -- No documentation found for Nested "VkComputePipelineIndirectBufferInfoNV" "pipelineDeviceAddressCaptureReplay" + pipelineDeviceAddressCaptureReplay :: DeviceAddress + } + deriving (Typeable, Eq) +#if defined(GENERIC_INSTANCES) +deriving instance Generic (ComputePipelineIndirectBufferInfoNV) +#endif +deriving instance Show ComputePipelineIndirectBufferInfoNV + +instance ToCStruct ComputePipelineIndirectBufferInfoNV where + withCStruct x f = allocaBytes 40 $ \p -> pokeCStruct p x (f p) + pokeCStruct p ComputePipelineIndirectBufferInfoNV{..} f = do + poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_COMPUTE_PIPELINE_INDIRECT_BUFFER_INFO_NV) + poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr) + poke ((p `plusPtr` 16 :: Ptr DeviceAddress)) (deviceAddress) + poke ((p `plusPtr` 24 :: Ptr DeviceSize)) (size) + poke ((p `plusPtr` 32 :: Ptr DeviceAddress)) (pipelineDeviceAddressCaptureReplay) + f + cStructSize = 40 + cStructAlignment = 8 + pokeZeroCStruct p f = do + poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_COMPUTE_PIPELINE_INDIRECT_BUFFER_INFO_NV) + poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr) + poke ((p `plusPtr` 16 :: Ptr DeviceAddress)) (zero) + poke ((p `plusPtr` 24 :: Ptr DeviceSize)) (zero) + poke ((p `plusPtr` 32 :: Ptr DeviceAddress)) (zero) + f + +instance FromCStruct ComputePipelineIndirectBufferInfoNV where + peekCStruct p = do + deviceAddress <- peek @DeviceAddress ((p `plusPtr` 16 :: Ptr DeviceAddress)) + size <- peek @DeviceSize ((p `plusPtr` 24 :: Ptr DeviceSize)) + pipelineDeviceAddressCaptureReplay <- peek @DeviceAddress ((p `plusPtr` 32 :: Ptr DeviceAddress)) + pure $ ComputePipelineIndirectBufferInfoNV + deviceAddress size pipelineDeviceAddressCaptureReplay + +instance Storable ComputePipelineIndirectBufferInfoNV where + sizeOf ~_ = 40 + alignment ~_ = 8 + peek = peekCStruct + poke ptr poked = pokeCStruct ptr poked (pure ()) + +instance Zero ComputePipelineIndirectBufferInfoNV where + zero = ComputePipelineIndirectBufferInfoNV + zero + zero + zero + + +-- | VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV - Structure +-- describing the device-generated compute features that can be supported +-- by an implementation +-- +-- = Members +-- +-- This structure describes the following features: +-- +-- = Description +-- +-- If the 'PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV' +-- 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. 'PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV' +-- /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 PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV = PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV + { -- | #features-deviceGeneratedCompute# @deviceGeneratedCompute@ indicates + -- whether the implementation supports functionality to generate dispatch + -- commands and push constants for the compute pipeline on the device. See + -- . + deviceGeneratedCompute :: Bool + , -- | #features-deviceGeneratedComputePipelines# + -- @deviceGeneratedComputePipelines@ indicates whether the implementation + -- supports functionality to generate commands to bind compute pipelines on + -- the device. See + -- . + deviceGeneratedComputePipelines :: Bool + , -- | #features-deviceGeneratedComputeCaptureReplay# + -- @deviceGeneratedComputeCaptureReplay@ indicates whether the + -- implementation supports functionality to capture compute pipeline + -- address and reuse later for replay in + -- . + deviceGeneratedComputeCaptureReplay :: Bool + } + deriving (Typeable, Eq) +#if defined(GENERIC_INSTANCES) +deriving instance Generic (PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV) +#endif +deriving instance Show PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV + +instance ToCStruct PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV where + withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p) + pokeCStruct p PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV{..} f = do + poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_COMPUTE_FEATURES_NV) + poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr) + poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (deviceGeneratedCompute)) + poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (deviceGeneratedComputePipelines)) + poke ((p `plusPtr` 24 :: Ptr Bool32)) (boolToBool32 (deviceGeneratedComputeCaptureReplay)) + f + cStructSize = 32 + cStructAlignment = 8 + pokeZeroCStruct p f = do + poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_COMPUTE_FEATURES_NV) + poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr) + poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero)) + poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (zero)) + poke ((p `plusPtr` 24 :: Ptr Bool32)) (boolToBool32 (zero)) + f + +instance FromCStruct PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV where + peekCStruct p = do + deviceGeneratedCompute <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32)) + deviceGeneratedComputePipelines <- peek @Bool32 ((p `plusPtr` 20 :: Ptr Bool32)) + deviceGeneratedComputeCaptureReplay <- peek @Bool32 ((p `plusPtr` 24 :: Ptr Bool32)) + pure $ PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV + (bool32ToBool deviceGeneratedCompute) + (bool32ToBool deviceGeneratedComputePipelines) + (bool32ToBool deviceGeneratedComputeCaptureReplay) + +instance Storable PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV where + sizeOf ~_ = 32 + alignment ~_ = 8 + peek = peekCStruct + poke ptr poked = pokeCStruct ptr poked (pure ()) + +instance Zero PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV where + zero = PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV + zero + zero + zero + + +-- | VkPipelineIndirectDeviceAddressInfoNV - Structure specifying the +-- pipeline to query an address for +-- +-- == Valid Usage +-- +-- - #VUID-VkPipelineIndirectDeviceAddressInfoNV-pipelineBindPoint-09079# +-- The provided @pipelineBindPoint@ /must/ be of type +-- 'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_COMPUTE' +-- +-- - #VUID-VkPipelineIndirectDeviceAddressInfoNV-pipeline-09080# +-- @pipeline@ /must/ have been created with flag +-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV' +-- set +-- +-- - #VUID-VkPipelineIndirectDeviceAddressInfoNV-pipeline-09081# +-- @pipeline@ /must/ have been created with a +-- 'ComputePipelineIndirectBufferInfoNV' structure specifying a valid +-- address where its metadata will be saved +-- +-- == Valid Usage (Implicit) +-- +-- = See Also +-- +-- , +-- 'Vulkan.Core10.Handles.Pipeline', +-- 'Vulkan.Core10.Enums.PipelineBindPoint.PipelineBindPoint', +-- 'Vulkan.Core10.Enums.StructureType.StructureType', +-- 'getPipelineIndirectDeviceAddressNV' +data PipelineIndirectDeviceAddressInfoNV = PipelineIndirectDeviceAddressInfoNV + { -- | #VUID-VkPipelineIndirectDeviceAddressInfoNV-pipelineBindPoint-parameter# + -- @pipelineBindPoint@ /must/ be a valid + -- 'Vulkan.Core10.Enums.PipelineBindPoint.PipelineBindPoint' value + pipelineBindPoint :: PipelineBindPoint + , -- | #VUID-VkPipelineIndirectDeviceAddressInfoNV-pipeline-parameter# + -- @pipeline@ /must/ be a valid 'Vulkan.Core10.Handles.Pipeline' handle + pipeline :: Pipeline + } + deriving (Typeable, Eq) +#if defined(GENERIC_INSTANCES) +deriving instance Generic (PipelineIndirectDeviceAddressInfoNV) +#endif +deriving instance Show PipelineIndirectDeviceAddressInfoNV + +instance ToCStruct PipelineIndirectDeviceAddressInfoNV where + withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p) + pokeCStruct p PipelineIndirectDeviceAddressInfoNV{..} f = do + poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_INDIRECT_DEVICE_ADDRESS_INFO_NV) + poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr) + poke ((p `plusPtr` 16 :: Ptr PipelineBindPoint)) (pipelineBindPoint) + poke ((p `plusPtr` 24 :: Ptr Pipeline)) (pipeline) + f + cStructSize = 32 + cStructAlignment = 8 + pokeZeroCStruct p f = do + poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_INDIRECT_DEVICE_ADDRESS_INFO_NV) + poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr) + poke ((p `plusPtr` 16 :: Ptr PipelineBindPoint)) (zero) + poke ((p `plusPtr` 24 :: Ptr Pipeline)) (zero) + f + +instance FromCStruct PipelineIndirectDeviceAddressInfoNV where + peekCStruct p = do + pipelineBindPoint <- peek @PipelineBindPoint ((p `plusPtr` 16 :: Ptr PipelineBindPoint)) + pipeline <- peek @Pipeline ((p `plusPtr` 24 :: Ptr Pipeline)) + pure $ PipelineIndirectDeviceAddressInfoNV + pipelineBindPoint pipeline + +instance Storable PipelineIndirectDeviceAddressInfoNV where + sizeOf ~_ = 32 + alignment ~_ = 8 + peek = peekCStruct + poke ptr poked = pokeCStruct ptr poked (pure ()) + +instance Zero PipelineIndirectDeviceAddressInfoNV where + zero = PipelineIndirectDeviceAddressInfoNV + zero + zero + + +-- | VkBindPipelineIndirectCommandNV - Structure specifying input data for +-- the compute pipeline dispatch token +-- +-- == Valid Usage +-- +-- - #VUID-VkBindPipelineIndirectCommandNV-deviceGeneratedComputePipelines-09091# +-- The +-- +-- feature /must/ be enabled +-- +-- - #VUID-VkBindPipelineIndirectCommandNV-None-09092# The referenced +-- pipeline /must/ have been created with +-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV' +-- +-- - #VUID-VkBindPipelineIndirectCommandNV-None-09093# The referenced +-- pipeline /must/ have been updated with +-- 'cmdUpdatePipelineIndirectBufferNV' +-- +-- - #VUID-VkBindPipelineIndirectCommandNV-None-09094# The referenced +-- pipeline’s address /must/ have been queried with +-- 'getPipelineIndirectDeviceAddressNV' +-- +-- = See Also +-- +-- , +-- 'Vulkan.Core10.FundamentalTypes.DeviceAddress' +data BindPipelineIndirectCommandNV = BindPipelineIndirectCommandNV + { -- | @pipelineAddress@ specifies the pipeline address of the compute pipeline + -- that will be used in device generated rendering. + pipelineAddress :: DeviceAddress } + deriving (Typeable, Eq) +#if defined(GENERIC_INSTANCES) +deriving instance Generic (BindPipelineIndirectCommandNV) +#endif +deriving instance Show BindPipelineIndirectCommandNV + +instance ToCStruct BindPipelineIndirectCommandNV where + withCStruct x f = allocaBytes 8 $ \p -> pokeCStruct p x (f p) + pokeCStruct p BindPipelineIndirectCommandNV{..} f = do + poke ((p `plusPtr` 0 :: Ptr DeviceAddress)) (pipelineAddress) + f + cStructSize = 8 + cStructAlignment = 8 + pokeZeroCStruct p f = do + poke ((p `plusPtr` 0 :: Ptr DeviceAddress)) (zero) + f + +instance FromCStruct BindPipelineIndirectCommandNV where + peekCStruct p = do + pipelineAddress <- peek @DeviceAddress ((p `plusPtr` 0 :: Ptr DeviceAddress)) + pure $ BindPipelineIndirectCommandNV + pipelineAddress + +instance Storable BindPipelineIndirectCommandNV where + sizeOf ~_ = 8 + alignment ~_ = 8 + peek = peekCStruct + poke ptr poked = pokeCStruct ptr poked (pure ()) + +instance Zero BindPipelineIndirectCommandNV where + zero = BindPipelineIndirectCommandNV + zero + + +type NV_DEVICE_GENERATED_COMMANDS_COMPUTE_SPEC_VERSION = 2 + +-- No documentation found for TopLevel "VK_NV_DEVICE_GENERATED_COMMANDS_COMPUTE_SPEC_VERSION" +pattern NV_DEVICE_GENERATED_COMMANDS_COMPUTE_SPEC_VERSION :: forall a . Integral a => a +pattern NV_DEVICE_GENERATED_COMMANDS_COMPUTE_SPEC_VERSION = 2 + + +type NV_DEVICE_GENERATED_COMMANDS_COMPUTE_EXTENSION_NAME = "VK_NV_device_generated_commands_compute" + +-- No documentation found for TopLevel "VK_NV_DEVICE_GENERATED_COMMANDS_COMPUTE_EXTENSION_NAME" +pattern NV_DEVICE_GENERATED_COMMANDS_COMPUTE_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a +pattern NV_DEVICE_GENERATED_COMMANDS_COMPUTE_EXTENSION_NAME = "VK_NV_device_generated_commands_compute" + diff --git a/src/Vulkan/Extensions/VK_NV_device_generated_commands_compute.hs-boot b/src/Vulkan/Extensions/VK_NV_device_generated_commands_compute.hs-boot new file mode 100644 index 000000000..5e116783b --- /dev/null +++ b/src/Vulkan/Extensions/VK_NV_device_generated_commands_compute.hs-boot @@ -0,0 +1,173 @@ +{-# language CPP #-} +-- | = Name +-- +-- VK_NV_device_generated_commands_compute - device extension +-- +-- == VK_NV_device_generated_commands_compute +-- +-- [__Name String__] +-- @VK_NV_device_generated_commands_compute@ +-- +-- [__Extension Type__] +-- Device extension +-- +-- [__Registered Extension Number__] +-- 429 +-- +-- [__Revision__] +-- 2 +-- +-- [__Ratification Status__] +-- Not ratified +-- +-- [__Extension and Version Dependencies__] +-- +-- +-- [__Contact__] +-- +-- - Vikram Kushwaha +-- +-- +-- == Other Extension Metadata +-- +-- [__Last Modified Date__] +-- 2023-07-21 +-- +-- [__Contributors__] +-- +-- - Vikram Kushwaha, NVIDIA +-- +-- - Jeff Bolz, NVIDIA +-- +-- - Christoph Kubisch, NVIDIA +-- +-- - Piers Daniell, NVIDIA +-- +-- - Daniel Koch, NVIDIA +-- +-- - Hans-Kristian Arntzen, Valve +-- +-- - Mike Blumenkrantz, VALVE +-- +-- == Description +-- +-- This extension allows the device to generate commands for binding +-- compute pipelines, setting push constants and launching compute +-- dispatches. +-- +-- == New Commands +-- +-- - 'cmdUpdatePipelineIndirectBufferNV' +-- +-- - 'getPipelineIndirectDeviceAddressNV' +-- +-- - 'getPipelineIndirectMemoryRequirementsNV' +-- +-- == New Structures +-- +-- - 'BindPipelineIndirectCommandNV' +-- +-- - 'ComputePipelineIndirectBufferInfoNV' +-- +-- - 'PipelineIndirectDeviceAddressInfoNV' +-- +-- - Extending +-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2', +-- 'Vulkan.Core10.Device.DeviceCreateInfo': +-- +-- - 'PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV' +-- +-- == New Enum Constants +-- +-- - 'NV_DEVICE_GENERATED_COMMANDS_COMPUTE_EXTENSION_NAME' +-- +-- - 'NV_DEVICE_GENERATED_COMMANDS_COMPUTE_SPEC_VERSION' +-- +-- - Extending +-- 'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DescriptorSetLayoutCreateFlagBits': +-- +-- - 'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_INDIRECT_BINDABLE_BIT_NV' +-- +-- - Extending +-- 'Vulkan.Extensions.VK_NV_device_generated_commands.IndirectCommandsTokenTypeNV': +-- +-- - 'Vulkan.Extensions.VK_NV_device_generated_commands.INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NV' +-- +-- - 'Vulkan.Extensions.VK_NV_device_generated_commands.INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NV' +-- +-- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType': +-- +-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_COMPUTE_PIPELINE_INDIRECT_BUFFER_INFO_NV' +-- +-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_COMPUTE_FEATURES_NV' +-- +-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PIPELINE_INDIRECT_DEVICE_ADDRESS_INFO_NV' +-- +-- == Version History +-- +-- - Revision 2, 2023-07-21 (Vikram Kushwaha) +-- +-- - Rename vkCmdUpdatePipelineIndirectBuffer to +-- vkCmdUpdatePipelineIndirectBufferNV +-- +-- - Revision 1, 2023-06-09 (Vikram Kushwaha) +-- +-- - First Revision +-- +-- == See Also +-- +-- 'BindPipelineIndirectCommandNV', 'ComputePipelineIndirectBufferInfoNV', +-- 'PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV', +-- 'PipelineIndirectDeviceAddressInfoNV', +-- 'cmdUpdatePipelineIndirectBufferNV', +-- 'getPipelineIndirectDeviceAddressNV', +-- 'getPipelineIndirectMemoryRequirementsNV' +-- +-- == Document Notes +-- +-- For more information, see the +-- +-- +-- This page is a generated document. Fixes and changes should be made to +-- the generator scripts, not directly. +module Vulkan.Extensions.VK_NV_device_generated_commands_compute ( BindPipelineIndirectCommandNV + , ComputePipelineIndirectBufferInfoNV + , PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV + , PipelineIndirectDeviceAddressInfoNV + ) where + +import Vulkan.CStruct (FromCStruct) +import Vulkan.CStruct (ToCStruct) +import Data.Kind (Type) + +data BindPipelineIndirectCommandNV + +instance ToCStruct BindPipelineIndirectCommandNV +instance Show BindPipelineIndirectCommandNV + +instance FromCStruct BindPipelineIndirectCommandNV + + +data ComputePipelineIndirectBufferInfoNV + +instance ToCStruct ComputePipelineIndirectBufferInfoNV +instance Show ComputePipelineIndirectBufferInfoNV + +instance FromCStruct ComputePipelineIndirectBufferInfoNV + + +data PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV + +instance ToCStruct PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV +instance Show PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV + +instance FromCStruct PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV + + +data PipelineIndirectDeviceAddressInfoNV + +instance ToCStruct PipelineIndirectDeviceAddressInfoNV +instance Show PipelineIndirectDeviceAddressInfoNV + +instance FromCStruct PipelineIndirectDeviceAddressInfoNV + diff --git a/src/Vulkan/Extensions/VK_NV_displacement_micromap.hs b/src/Vulkan/Extensions/VK_NV_displacement_micromap.hs index 62686a702..1105d2253 100644 --- a/src/Vulkan/Extensions/VK_NV_displacement_micromap.hs +++ b/src/Vulkan/Extensions/VK_NV_displacement_micromap.hs @@ -15,7 +15,10 @@ -- 398 -- -- [__Revision__] --- 1 +-- 2 +-- +-- [__Ratification Status__] +-- Not ratified -- -- [__Extension and Version Dependencies__] -- @@ -32,6 +35,7 @@ -- -- -- - Eric Werness +-- -- -- == Other Extension Metadata -- @@ -138,6 +142,10 @@ -- -- - Initial public revision -- +-- - Revision 2, 2023-07-07 (Eric Werness) +-- +-- - Add shader support for decode intrinsics +-- -- == See Also -- -- 'AccelerationStructureTrianglesDisplacementMicromapNV', @@ -414,6 +422,7 @@ instance Zero PhysicalDeviceDisplacementMicromapPropertiesNV where -- structures -- -- - #VUID-VkAccelerationStructureTrianglesDisplacementMicromapNV-micromap-parameter# +-- If @micromap@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', -- @micromap@ /must/ be a valid 'Vulkan.Extensions.Handles.MicromapEXT' -- handle -- @@ -517,7 +526,6 @@ instance ToCStruct AccelerationStructureTrianglesDisplacementMicromapNV where lift $ poke ((p `plusPtr` 88 :: Ptr DeviceSize)) (zero) lift $ poke ((p `plusPtr` 96 :: Ptr Word32)) (zero) lift $ poke ((p `plusPtr` 112 :: Ptr (Ptr (Ptr MicromapUsageEXT)))) (nullPtr) - lift $ poke ((p `plusPtr` 120 :: Ptr MicromapEXT)) (zero) lift $ f instance Zero AccelerationStructureTrianglesDisplacementMicromapNV where @@ -618,11 +626,11 @@ instance Read DisplacementMicromapFormatNV where conNameDisplacementMicromapFormatNV DisplacementMicromapFormatNV -type NV_DISPLACEMENT_MICROMAP_SPEC_VERSION = 1 +type NV_DISPLACEMENT_MICROMAP_SPEC_VERSION = 2 -- No documentation found for TopLevel "VK_NV_DISPLACEMENT_MICROMAP_SPEC_VERSION" pattern NV_DISPLACEMENT_MICROMAP_SPEC_VERSION :: forall a . Integral a => a -pattern NV_DISPLACEMENT_MICROMAP_SPEC_VERSION = 1 +pattern NV_DISPLACEMENT_MICROMAP_SPEC_VERSION = 2 type NV_DISPLACEMENT_MICROMAP_EXTENSION_NAME = "VK_NV_displacement_micromap" diff --git a/src/Vulkan/Extensions/VK_NV_displacement_micromap.hs-boot b/src/Vulkan/Extensions/VK_NV_displacement_micromap.hs-boot index aded960a0..23477f1c1 100644 --- a/src/Vulkan/Extensions/VK_NV_displacement_micromap.hs-boot +++ b/src/Vulkan/Extensions/VK_NV_displacement_micromap.hs-boot @@ -15,7 +15,10 @@ -- 398 -- -- [__Revision__] --- 1 +-- 2 +-- +-- [__Ratification Status__] +-- Not ratified -- -- [__Extension and Version Dependencies__] -- @@ -32,6 +35,7 @@ -- -- -- - Eric Werness +-- -- -- == Other Extension Metadata -- @@ -138,6 +142,10 @@ -- -- - Initial public revision -- +-- - Revision 2, 2023-07-07 (Eric Werness) +-- +-- - Add shader support for decode intrinsics +-- -- == See Also -- -- 'AccelerationStructureTrianglesDisplacementMicromapNV', diff --git a/src/Vulkan/Extensions/VK_NV_extended_sparse_address_space.hs b/src/Vulkan/Extensions/VK_NV_extended_sparse_address_space.hs new file mode 100644 index 000000000..00611ea16 --- /dev/null +++ b/src/Vulkan/Extensions/VK_NV_extended_sparse_address_space.hs @@ -0,0 +1,309 @@ +{-# language CPP #-} +-- | = Name +-- +-- VK_NV_extended_sparse_address_space - device extension +-- +-- == VK_NV_extended_sparse_address_space +-- +-- [__Name String__] +-- @VK_NV_extended_sparse_address_space@ +-- +-- [__Extension Type__] +-- Device extension +-- +-- [__Registered Extension Number__] +-- 493 +-- +-- [__Revision__] +-- 1 +-- +-- [__Ratification Status__] +-- Not ratified +-- +-- [__Extension and Version Dependencies__; __Contact__] +-- +-- - Russell Chou +-- +-- +-- == Other Extension Metadata +-- +-- [__Last Modified Date__] +-- 2023-10-03 +-- +-- [__Contributors__] +-- +-- - Russell Chou, NVIDIA +-- +-- - Christoph Kubisch, NVIDIA +-- +-- - Eric Werness, NVIDIA +-- +-- - Jeff Bolz, NVIDIA +-- +-- == Description +-- +-- Implementations may be able to support an extended address space for +-- sparse memory resources, but only for a certain set of usages. +-- +-- This extension adds a query for the extended limit, and the supported +-- usages that are allowed for that limit. This limit is an increase to +-- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@sparseAddressSpaceSize@ +-- when the 'Vulkan.Core10.Handles.Image' or 'Vulkan.Core10.Handles.Buffer' +-- uses only usages that are supported. +-- +-- == New Structures +-- +-- - Extending +-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2', +-- 'Vulkan.Core10.Device.DeviceCreateInfo': +-- +-- - 'PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV' +-- +-- - Extending +-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2': +-- +-- - 'PhysicalDeviceExtendedSparseAddressSpacePropertiesNV' +-- +-- == New Enum Constants +-- +-- - 'NV_EXTENDED_SPARSE_ADDRESS_SPACE_EXTENSION_NAME' +-- +-- - 'NV_EXTENDED_SPARSE_ADDRESS_SPACE_SPEC_VERSION' +-- +-- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType': +-- +-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_FEATURES_NV' +-- +-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_PROPERTIES_NV' +-- +-- == Version History +-- +-- - Revision 1, 2023-10-03 (Russell Chou) +-- +-- - Initial draft +-- +-- == See Also +-- +-- 'PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV', +-- 'PhysicalDeviceExtendedSparseAddressSpacePropertiesNV' +-- +-- == Document Notes +-- +-- For more information, see the +-- +-- +-- This page is a generated document. Fixes and changes should be made to +-- the generator scripts, not directly. +module Vulkan.Extensions.VK_NV_extended_sparse_address_space ( PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV(..) + , PhysicalDeviceExtendedSparseAddressSpacePropertiesNV(..) + , NV_EXTENDED_SPARSE_ADDRESS_SPACE_SPEC_VERSION + , pattern NV_EXTENDED_SPARSE_ADDRESS_SPACE_SPEC_VERSION + , NV_EXTENDED_SPARSE_ADDRESS_SPACE_EXTENSION_NAME + , pattern NV_EXTENDED_SPARSE_ADDRESS_SPACE_EXTENSION_NAME + ) where + +import Foreign.Marshal.Alloc (allocaBytes) +import Foreign.Ptr (nullPtr) +import Foreign.Ptr (plusPtr) +import Vulkan.CStruct (FromCStruct) +import Vulkan.CStruct (FromCStruct(..)) +import Vulkan.CStruct (ToCStruct) +import Vulkan.CStruct (ToCStruct(..)) +import Vulkan.Zero (Zero(..)) +import Data.String (IsString) +import Data.Typeable (Typeable) +import Foreign.Storable (Storable) +import Foreign.Storable (Storable(peek)) +import Foreign.Storable (Storable(poke)) +import qualified Foreign.Storable (Storable(..)) +import GHC.Generics (Generic) +import Foreign.Ptr (Ptr) +import Data.Kind (Type) +import Vulkan.Core10.FundamentalTypes (bool32ToBool) +import Vulkan.Core10.FundamentalTypes (boolToBool32) +import Vulkan.Core10.FundamentalTypes (Bool32) +import Vulkan.Core10.Enums.BufferUsageFlagBits (BufferUsageFlags) +import Vulkan.Core10.FundamentalTypes (DeviceSize) +import Vulkan.Core10.Enums.ImageUsageFlagBits (ImageUsageFlags) +import Vulkan.Core10.Enums.StructureType (StructureType) +import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_FEATURES_NV)) +import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_PROPERTIES_NV)) +-- | VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV - Structure +-- describing feature to use extended sparse address space +-- +-- = Members +-- +-- This structure describes the following feature: +-- +-- = Description +-- +-- If the 'PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV' 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. 'PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV' /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 PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV = PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV + { -- | #features-extendedSparseAddressSpace# @extendedSparseAddressSpace@ + -- indicates that the implementation supports allowing certain usages of + -- sparse memory resources to exceed + -- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@sparseAddressSpaceSize@. + -- See 'PhysicalDeviceExtendedSparseAddressSpacePropertiesNV'. + extendedSparseAddressSpace :: Bool } + deriving (Typeable, Eq) +#if defined(GENERIC_INSTANCES) +deriving instance Generic (PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV) +#endif +deriving instance Show PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV + +instance ToCStruct PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV where + withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p) + pokeCStruct p PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV{..} f = do + poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_FEATURES_NV) + poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr) + poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (extendedSparseAddressSpace)) + f + cStructSize = 24 + cStructAlignment = 8 + pokeZeroCStruct p f = do + poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_FEATURES_NV) + poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr) + poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero)) + f + +instance FromCStruct PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV where + peekCStruct p = do + extendedSparseAddressSpace <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32)) + pure $ PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV + (bool32ToBool extendedSparseAddressSpace) + +instance Storable PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV where + sizeOf ~_ = 24 + alignment ~_ = 8 + peek = peekCStruct + poke ptr poked = pokeCStruct ptr poked (pure ()) + +instance Zero PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV where + zero = PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV + zero + + +-- | VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV - Structure +-- describing sparse address space limits of an implementation +-- +-- = Description +-- +-- If the 'PhysicalDeviceExtendedSparseAddressSpacePropertiesNV' 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.Enums.BufferUsageFlagBits.BufferUsageFlags', +-- 'Vulkan.Core10.FundamentalTypes.DeviceSize', +-- 'Vulkan.Core10.Enums.ImageUsageFlagBits.ImageUsageFlags', +-- 'Vulkan.Core10.Enums.StructureType.StructureType' +data PhysicalDeviceExtendedSparseAddressSpacePropertiesNV = PhysicalDeviceExtendedSparseAddressSpacePropertiesNV + { -- | #limits-extendedSparseAddressSpaceSize# @extendedSparseAddressSpaceSize@ + -- is the total amount of address space available, in bytes, for sparse + -- memory resources of all usages if the + -- + -- feature is enabled. This /must/ be greater than or equal to + -- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@sparseAddressSpaceSize@, + -- and the difference in space /must/ only be used with usages allowed + -- below. This is an upper bound on the sum of the sizes of all sparse + -- resources, regardless of whether any memory is bound to them. + extendedSparseAddressSpaceSize :: DeviceSize + , -- | #limits-extendedSparseImageUsageFlags# @extendedSparseImageUsageFlags@ + -- is a bitmask of + -- 'Vulkan.Core10.Enums.ImageUsageFlagBits.ImageUsageFlagBits' of usages + -- which /may/ allow an implementation to use the full + -- @extendedSparseAddressSpaceSize@ space. + extendedSparseImageUsageFlags :: ImageUsageFlags + , -- | #limits-extendedSparseBufferUsageFlags# @extendedSparseBufferUsageFlags@ + -- is a bitmask of + -- 'Vulkan.Core10.Enums.BufferUsageFlagBits.BufferUsageFlagBits' of usages + -- which /may/ allow an implementation to use the full + -- @extendedSparseAddressSpaceSize@ space. + extendedSparseBufferUsageFlags :: BufferUsageFlags + } + deriving (Typeable, Eq) +#if defined(GENERIC_INSTANCES) +deriving instance Generic (PhysicalDeviceExtendedSparseAddressSpacePropertiesNV) +#endif +deriving instance Show PhysicalDeviceExtendedSparseAddressSpacePropertiesNV + +instance ToCStruct PhysicalDeviceExtendedSparseAddressSpacePropertiesNV where + withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p) + pokeCStruct p PhysicalDeviceExtendedSparseAddressSpacePropertiesNV{..} f = do + poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_PROPERTIES_NV) + poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr) + poke ((p `plusPtr` 16 :: Ptr DeviceSize)) (extendedSparseAddressSpaceSize) + poke ((p `plusPtr` 24 :: Ptr ImageUsageFlags)) (extendedSparseImageUsageFlags) + poke ((p `plusPtr` 28 :: Ptr BufferUsageFlags)) (extendedSparseBufferUsageFlags) + f + cStructSize = 32 + cStructAlignment = 8 + pokeZeroCStruct p f = do + poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_PROPERTIES_NV) + poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr) + poke ((p `plusPtr` 16 :: Ptr DeviceSize)) (zero) + poke ((p `plusPtr` 24 :: Ptr ImageUsageFlags)) (zero) + poke ((p `plusPtr` 28 :: Ptr BufferUsageFlags)) (zero) + f + +instance FromCStruct PhysicalDeviceExtendedSparseAddressSpacePropertiesNV where + peekCStruct p = do + extendedSparseAddressSpaceSize <- peek @DeviceSize ((p `plusPtr` 16 :: Ptr DeviceSize)) + extendedSparseImageUsageFlags <- peek @ImageUsageFlags ((p `plusPtr` 24 :: Ptr ImageUsageFlags)) + extendedSparseBufferUsageFlags <- peek @BufferUsageFlags ((p `plusPtr` 28 :: Ptr BufferUsageFlags)) + pure $ PhysicalDeviceExtendedSparseAddressSpacePropertiesNV + extendedSparseAddressSpaceSize + extendedSparseImageUsageFlags + extendedSparseBufferUsageFlags + +instance Storable PhysicalDeviceExtendedSparseAddressSpacePropertiesNV where + sizeOf ~_ = 32 + alignment ~_ = 8 + peek = peekCStruct + poke ptr poked = pokeCStruct ptr poked (pure ()) + +instance Zero PhysicalDeviceExtendedSparseAddressSpacePropertiesNV where + zero = PhysicalDeviceExtendedSparseAddressSpacePropertiesNV + zero + zero + zero + + +type NV_EXTENDED_SPARSE_ADDRESS_SPACE_SPEC_VERSION = 1 + +-- No documentation found for TopLevel "VK_NV_EXTENDED_SPARSE_ADDRESS_SPACE_SPEC_VERSION" +pattern NV_EXTENDED_SPARSE_ADDRESS_SPACE_SPEC_VERSION :: forall a . Integral a => a +pattern NV_EXTENDED_SPARSE_ADDRESS_SPACE_SPEC_VERSION = 1 + + +type NV_EXTENDED_SPARSE_ADDRESS_SPACE_EXTENSION_NAME = "VK_NV_extended_sparse_address_space" + +-- No documentation found for TopLevel "VK_NV_EXTENDED_SPARSE_ADDRESS_SPACE_EXTENSION_NAME" +pattern NV_EXTENDED_SPARSE_ADDRESS_SPACE_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a +pattern NV_EXTENDED_SPARSE_ADDRESS_SPACE_EXTENSION_NAME = "VK_NV_extended_sparse_address_space" + diff --git a/src/Vulkan/Extensions/VK_NV_extended_sparse_address_space.hs-boot b/src/Vulkan/Extensions/VK_NV_extended_sparse_address_space.hs-boot new file mode 100644 index 000000000..7608ee735 --- /dev/null +++ b/src/Vulkan/Extensions/VK_NV_extended_sparse_address_space.hs-boot @@ -0,0 +1,119 @@ +{-# language CPP #-} +-- | = Name +-- +-- VK_NV_extended_sparse_address_space - device extension +-- +-- == VK_NV_extended_sparse_address_space +-- +-- [__Name String__] +-- @VK_NV_extended_sparse_address_space@ +-- +-- [__Extension Type__] +-- Device extension +-- +-- [__Registered Extension Number__] +-- 493 +-- +-- [__Revision__] +-- 1 +-- +-- [__Ratification Status__] +-- Not ratified +-- +-- [__Extension and Version Dependencies__; __Contact__] +-- +-- - Russell Chou +-- +-- +-- == Other Extension Metadata +-- +-- [__Last Modified Date__] +-- 2023-10-03 +-- +-- [__Contributors__] +-- +-- - Russell Chou, NVIDIA +-- +-- - Christoph Kubisch, NVIDIA +-- +-- - Eric Werness, NVIDIA +-- +-- - Jeff Bolz, NVIDIA +-- +-- == Description +-- +-- Implementations may be able to support an extended address space for +-- sparse memory resources, but only for a certain set of usages. +-- +-- This extension adds a query for the extended limit, and the supported +-- usages that are allowed for that limit. This limit is an increase to +-- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@sparseAddressSpaceSize@ +-- when the 'Vulkan.Core10.Handles.Image' or 'Vulkan.Core10.Handles.Buffer' +-- uses only usages that are supported. +-- +-- == New Structures +-- +-- - Extending +-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2', +-- 'Vulkan.Core10.Device.DeviceCreateInfo': +-- +-- - 'PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV' +-- +-- - Extending +-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2': +-- +-- - 'PhysicalDeviceExtendedSparseAddressSpacePropertiesNV' +-- +-- == New Enum Constants +-- +-- - 'NV_EXTENDED_SPARSE_ADDRESS_SPACE_EXTENSION_NAME' +-- +-- - 'NV_EXTENDED_SPARSE_ADDRESS_SPACE_SPEC_VERSION' +-- +-- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType': +-- +-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_FEATURES_NV' +-- +-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_PROPERTIES_NV' +-- +-- == Version History +-- +-- - Revision 1, 2023-10-03 (Russell Chou) +-- +-- - Initial draft +-- +-- == See Also +-- +-- 'PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV', +-- 'PhysicalDeviceExtendedSparseAddressSpacePropertiesNV' +-- +-- == Document Notes +-- +-- For more information, see the +-- +-- +-- This page is a generated document. Fixes and changes should be made to +-- the generator scripts, not directly. +module Vulkan.Extensions.VK_NV_extended_sparse_address_space ( PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV + , PhysicalDeviceExtendedSparseAddressSpacePropertiesNV + ) where + +import Vulkan.CStruct (FromCStruct) +import Vulkan.CStruct (ToCStruct) +import Data.Kind (Type) + +data PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV + +instance ToCStruct PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV +instance Show PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV + +instance FromCStruct PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV + + +data PhysicalDeviceExtendedSparseAddressSpacePropertiesNV + +instance ToCStruct PhysicalDeviceExtendedSparseAddressSpacePropertiesNV +instance Show PhysicalDeviceExtendedSparseAddressSpacePropertiesNV + +instance FromCStruct PhysicalDeviceExtendedSparseAddressSpacePropertiesNV + diff --git a/src/Vulkan/Extensions/VK_NV_external_memory.hs b/src/Vulkan/Extensions/VK_NV_external_memory.hs index ee2b67238..bd1bdfaa0 100644 --- a/src/Vulkan/Extensions/VK_NV_external_memory.hs +++ b/src/Vulkan/Extensions/VK_NV_external_memory.hs @@ -17,10 +17,13 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- --- [__Deprecation state__] +-- [__Deprecation State__] -- -- - /Deprecated/ by @VK_KHR_external_memory@ extension -- diff --git a/src/Vulkan/Extensions/VK_NV_external_memory.hs-boot b/src/Vulkan/Extensions/VK_NV_external_memory.hs-boot index 4cee301d3..73909aca2 100644 --- a/src/Vulkan/Extensions/VK_NV_external_memory.hs-boot +++ b/src/Vulkan/Extensions/VK_NV_external_memory.hs-boot @@ -17,10 +17,13 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- --- [__Deprecation state__] +-- [__Deprecation State__] -- -- - /Deprecated/ by @VK_KHR_external_memory@ extension -- diff --git a/src/Vulkan/Extensions/VK_NV_external_memory_capabilities.hs b/src/Vulkan/Extensions/VK_NV_external_memory_capabilities.hs index 0fa1b6172..0d710068f 100644 --- a/src/Vulkan/Extensions/VK_NV_external_memory_capabilities.hs +++ b/src/Vulkan/Extensions/VK_NV_external_memory_capabilities.hs @@ -17,7 +17,10 @@ -- [__Revision__] -- 1 -- --- [__Extension and Version Dependencies__; __Deprecation state__] +-- [__Ratification Status__] +-- Not ratified +-- +-- [__Extension and Version Dependencies__; __Deprecation State__] -- -- - /Deprecated/ by @VK_KHR_external_memory_capabilities@ extension -- diff --git a/src/Vulkan/Extensions/VK_NV_external_memory_capabilities.hs-boot b/src/Vulkan/Extensions/VK_NV_external_memory_capabilities.hs-boot index c74153a06..630fdb16a 100644 --- a/src/Vulkan/Extensions/VK_NV_external_memory_capabilities.hs-boot +++ b/src/Vulkan/Extensions/VK_NV_external_memory_capabilities.hs-boot @@ -17,7 +17,10 @@ -- [__Revision__] -- 1 -- --- [__Extension and Version Dependencies__; __Deprecation state__] +-- [__Ratification Status__] +-- Not ratified +-- +-- [__Extension and Version Dependencies__; __Deprecation State__] -- -- - /Deprecated/ by @VK_KHR_external_memory_capabilities@ extension -- diff --git a/src/Vulkan/Extensions/VK_NV_external_memory_rdma.hs b/src/Vulkan/Extensions/VK_NV_external_memory_rdma.hs index 6c3b686e4..7f86179ac 100644 --- a/src/Vulkan/Extensions/VK_NV_external_memory_rdma.hs +++ b/src/Vulkan/Extensions/VK_NV_external_memory_rdma.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- diff --git a/src/Vulkan/Extensions/VK_NV_external_memory_rdma.hs-boot b/src/Vulkan/Extensions/VK_NV_external_memory_rdma.hs-boot index c2f457eec..4202fc1c6 100644 --- a/src/Vulkan/Extensions/VK_NV_external_memory_rdma.hs-boot +++ b/src/Vulkan/Extensions/VK_NV_external_memory_rdma.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- diff --git a/src/Vulkan/Extensions/VK_NV_external_memory_win32.hs b/src/Vulkan/Extensions/VK_NV_external_memory_win32.hs index 4994fd0c0..5fa6dd520 100644 --- a/src/Vulkan/Extensions/VK_NV_external_memory_win32.hs +++ b/src/Vulkan/Extensions/VK_NV_external_memory_win32.hs @@ -17,10 +17,13 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- --- [__Deprecation state__] +-- [__Deprecation State__] -- -- - /Deprecated/ by @VK_KHR_external_memory_win32@ extension -- diff --git a/src/Vulkan/Extensions/VK_NV_external_memory_win32.hs-boot b/src/Vulkan/Extensions/VK_NV_external_memory_win32.hs-boot index e87d2ee19..c16e34430 100644 --- a/src/Vulkan/Extensions/VK_NV_external_memory_win32.hs-boot +++ b/src/Vulkan/Extensions/VK_NV_external_memory_win32.hs-boot @@ -17,10 +17,13 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- --- [__Deprecation state__] +-- [__Deprecation State__] -- -- - /Deprecated/ by @VK_KHR_external_memory_win32@ extension -- diff --git a/src/Vulkan/Extensions/VK_NV_fill_rectangle.hs b/src/Vulkan/Extensions/VK_NV_fill_rectangle.hs index e5892a1ad..e42279424 100644 --- a/src/Vulkan/Extensions/VK_NV_fill_rectangle.hs +++ b/src/Vulkan/Extensions/VK_NV_fill_rectangle.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__; __Contact__] -- -- - Jeff Bolz diff --git a/src/Vulkan/Extensions/VK_NV_fragment_coverage_to_color.hs b/src/Vulkan/Extensions/VK_NV_fragment_coverage_to_color.hs index 23cfd8a09..e1c0aa43d 100644 --- a/src/Vulkan/Extensions/VK_NV_fragment_coverage_to_color.hs +++ b/src/Vulkan/Extensions/VK_NV_fragment_coverage_to_color.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__; __Contact__] -- -- - Jeff Bolz diff --git a/src/Vulkan/Extensions/VK_NV_fragment_coverage_to_color.hs-boot b/src/Vulkan/Extensions/VK_NV_fragment_coverage_to_color.hs-boot index c7911cb0c..35713b789 100644 --- a/src/Vulkan/Extensions/VK_NV_fragment_coverage_to_color.hs-boot +++ b/src/Vulkan/Extensions/VK_NV_fragment_coverage_to_color.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__; __Contact__] -- -- - Jeff Bolz diff --git a/src/Vulkan/Extensions/VK_NV_fragment_shader_barycentric.hs b/src/Vulkan/Extensions/VK_NV_fragment_shader_barycentric.hs index f9ee3f583..6ca2ed0ca 100644 --- a/src/Vulkan/Extensions/VK_NV_fragment_shader_barycentric.hs +++ b/src/Vulkan/Extensions/VK_NV_fragment_shader_barycentric.hs @@ -17,10 +17,13 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- --- [__Deprecation state__] +-- [__Deprecation State__] -- -- - /Promoted/ to @VK_KHR_fragment_shader_barycentric@ extension -- diff --git a/src/Vulkan/Extensions/VK_NV_fragment_shading_rate_enums.hs b/src/Vulkan/Extensions/VK_NV_fragment_shading_rate_enums.hs index 95c7903f5..0fa1b55f5 100644 --- a/src/Vulkan/Extensions/VK_NV_fragment_shading_rate_enums.hs +++ b/src/Vulkan/Extensions/VK_NV_fragment_shading_rate_enums.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- @@ -352,8 +355,8 @@ foreign import ccall -- - #VUID-vkCmdSetFragmentShadingRateEnumNV-shadingRate-parameter# -- @shadingRate@ /must/ be a valid 'FragmentShadingRateNV' value -- --- - #VUID-vkCmdSetFragmentShadingRateEnumNV-combinerOps-parameter# Any --- given element of @combinerOps@ /must/ be a valid +-- - #VUID-vkCmdSetFragmentShadingRateEnumNV-combinerOps-parameter# Each +-- element of @combinerOps@ /must/ be a valid -- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.FragmentShadingRateCombinerOpKHR' -- value -- diff --git a/src/Vulkan/Extensions/VK_NV_fragment_shading_rate_enums.hs-boot b/src/Vulkan/Extensions/VK_NV_fragment_shading_rate_enums.hs-boot index 676d4109a..8b9bf9c01 100644 --- a/src/Vulkan/Extensions/VK_NV_fragment_shading_rate_enums.hs-boot +++ b/src/Vulkan/Extensions/VK_NV_fragment_shading_rate_enums.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- diff --git a/src/Vulkan/Extensions/VK_NV_framebuffer_mixed_samples.hs b/src/Vulkan/Extensions/VK_NV_framebuffer_mixed_samples.hs index 4a763b9e3..5ee4505d6 100644 --- a/src/Vulkan/Extensions/VK_NV_framebuffer_mixed_samples.hs +++ b/src/Vulkan/Extensions/VK_NV_framebuffer_mixed_samples.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__; __Contact__] -- -- - Jeff Bolz diff --git a/src/Vulkan/Extensions/VK_NV_framebuffer_mixed_samples.hs-boot b/src/Vulkan/Extensions/VK_NV_framebuffer_mixed_samples.hs-boot index 8b5b9b6fd..3297a5589 100644 --- a/src/Vulkan/Extensions/VK_NV_framebuffer_mixed_samples.hs-boot +++ b/src/Vulkan/Extensions/VK_NV_framebuffer_mixed_samples.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__; __Contact__] -- -- - Jeff Bolz diff --git a/src/Vulkan/Extensions/VK_NV_geometry_shader_passthrough.hs b/src/Vulkan/Extensions/VK_NV_geometry_shader_passthrough.hs index a987ec8ca..3b03902e8 100644 --- a/src/Vulkan/Extensions/VK_NV_geometry_shader_passthrough.hs +++ b/src/Vulkan/Extensions/VK_NV_geometry_shader_passthrough.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__; __Contact__] -- -- - Daniel Koch diff --git a/src/Vulkan/Extensions/VK_NV_glsl_shader.hs b/src/Vulkan/Extensions/VK_NV_glsl_shader.hs index 5d01cee2f..b62a5bb15 100644 --- a/src/Vulkan/Extensions/VK_NV_glsl_shader.hs +++ b/src/Vulkan/Extensions/VK_NV_glsl_shader.hs @@ -17,7 +17,10 @@ -- [__Revision__] -- 1 -- --- [__Extension and Version Dependencies__; __Deprecation state__] +-- [__Ratification Status__] +-- Not ratified +-- +-- [__Extension and Version Dependencies__; __Deprecation State__] -- -- - /Deprecated/ without replacement -- diff --git a/src/Vulkan/Extensions/VK_NV_inherited_viewport_scissor.hs b/src/Vulkan/Extensions/VK_NV_inherited_viewport_scissor.hs index 0d2134769..ae3045fc4 100644 --- a/src/Vulkan/Extensions/VK_NV_inherited_viewport_scissor.hs +++ b/src/Vulkan/Extensions/VK_NV_inherited_viewport_scissor.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- diff --git a/src/Vulkan/Extensions/VK_NV_inherited_viewport_scissor.hs-boot b/src/Vulkan/Extensions/VK_NV_inherited_viewport_scissor.hs-boot index 35d9f7ff5..906def136 100644 --- a/src/Vulkan/Extensions/VK_NV_inherited_viewport_scissor.hs-boot +++ b/src/Vulkan/Extensions/VK_NV_inherited_viewport_scissor.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- diff --git a/src/Vulkan/Extensions/VK_NV_linear_color_attachment.hs b/src/Vulkan/Extensions/VK_NV_linear_color_attachment.hs index eaf2ca8c4..0ca2b53ce 100644 --- a/src/Vulkan/Extensions/VK_NV_linear_color_attachment.hs +++ b/src/Vulkan/Extensions/VK_NV_linear_color_attachment.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- diff --git a/src/Vulkan/Extensions/VK_NV_linear_color_attachment.hs-boot b/src/Vulkan/Extensions/VK_NV_linear_color_attachment.hs-boot index f0d330876..1ae71f584 100644 --- a/src/Vulkan/Extensions/VK_NV_linear_color_attachment.hs-boot +++ b/src/Vulkan/Extensions/VK_NV_linear_color_attachment.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- diff --git a/src/Vulkan/Extensions/VK_NV_low_latency.hs b/src/Vulkan/Extensions/VK_NV_low_latency.hs index 17d757cd2..91a31edc7 100644 --- a/src/Vulkan/Extensions/VK_NV_low_latency.hs +++ b/src/Vulkan/Extensions/VK_NV_low_latency.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__; __Contact__] -- -- - Charles Hansen diff --git a/src/Vulkan/Extensions/VK_NV_low_latency.hs-boot b/src/Vulkan/Extensions/VK_NV_low_latency.hs-boot index 972d7fcfc..14bc1d344 100644 --- a/src/Vulkan/Extensions/VK_NV_low_latency.hs-boot +++ b/src/Vulkan/Extensions/VK_NV_low_latency.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__; __Contact__] -- -- - Charles Hansen diff --git a/src/Vulkan/Extensions/VK_NV_low_latency2.hs b/src/Vulkan/Extensions/VK_NV_low_latency2.hs new file mode 100644 index 000000000..d4d85f878 --- /dev/null +++ b/src/Vulkan/Extensions/VK_NV_low_latency2.hs @@ -0,0 +1,1327 @@ +{-# language CPP #-} +-- | = Name +-- +-- VK_NV_low_latency2 - device extension +-- +-- == VK_NV_low_latency2 +-- +-- [__Name String__] +-- @VK_NV_low_latency2@ +-- +-- [__Extension Type__] +-- Device extension +-- +-- [__Registered Extension Number__] +-- 506 +-- +-- [__Revision__] +-- 1 +-- +-- [__Ratification Status__] +-- Not ratified +-- +-- [__Extension and Version Dependencies__; __Contact__] +-- +-- - Charles Hansen +-- +-- +-- == Other Extension Metadata +-- +-- [__Last Modified Date__] +-- 2023-09-25 +-- +-- [__Contributors__] +-- +-- - Charles Hansen, NVIDIA +-- +-- - Liam Middlebrook, NVIDIA +-- +-- - Lionel Duc, NVIDIA +-- +-- - James Jones, NVIDIA +-- +-- - Eric Sullivan, NVIDIA +-- +-- == New Commands +-- +-- - 'getLatencyTimingsNV' +-- +-- - 'latencySleepNV' +-- +-- - 'queueNotifyOutOfBandNV' +-- +-- - 'setLatencyMarkerNV' +-- +-- - 'setLatencySleepModeNV' +-- +-- == New Structures +-- +-- - 'GetLatencyMarkerInfoNV' +-- +-- - 'LatencySleepInfoNV' +-- +-- - 'LatencySleepModeInfoNV' +-- +-- - 'LatencyTimingsFrameReportNV' +-- +-- - 'OutOfBandQueueTypeInfoNV' +-- +-- - 'SetLatencyMarkerInfoNV' +-- +-- - Extending 'Vulkan.Core10.Queue.SubmitInfo', +-- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.SubmitInfo2': +-- +-- - 'LatencySubmissionPresentIdNV' +-- +-- - Extending +-- 'Vulkan.Extensions.VK_KHR_get_surface_capabilities2.SurfaceCapabilities2KHR': +-- +-- - 'LatencySurfaceCapabilitiesNV' +-- +-- - Extending +-- 'Vulkan.Extensions.VK_KHR_swapchain.SwapchainCreateInfoKHR': +-- +-- - 'SwapchainLatencyCreateInfoNV' +-- +-- == New Enums +-- +-- - 'LatencyMarkerNV' +-- +-- - 'OutOfBandQueueTypeNV' +-- +-- == New Enum Constants +-- +-- - 'NV_LOW_LATENCY_2_EXTENSION_NAME' +-- +-- - 'NV_LOW_LATENCY_2_SPEC_VERSION' +-- +-- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType': +-- +-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_GET_LATENCY_MARKER_INFO_NV' +-- +-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_LATENCY_SLEEP_INFO_NV' +-- +-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_LATENCY_SLEEP_MODE_INFO_NV' +-- +-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_LATENCY_SUBMISSION_PRESENT_ID_NV' +-- +-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_LATENCY_SURFACE_CAPABILITIES_NV' +-- +-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_LATENCY_TIMINGS_FRAME_REPORT_NV' +-- +-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_OUT_OF_BAND_QUEUE_TYPE_INFO_NV' +-- +-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_SET_LATENCY_MARKER_INFO_NV' +-- +-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_SWAPCHAIN_LATENCY_CREATE_INFO_NV' +-- +-- == Description +-- +-- This extension gives applications timing suggestions on when to start +-- the recording of new frames to reduce the latency between input sampling +-- and frame presentation. Applications can accomplish this through the +-- extension by calling 'setLatencySleepModeNV' to allow the driver to pace +-- a given swapchain, then calling 'latencySleepNV' before input sampling +-- to delay the start of the CPU side work. Additional methods and +-- structures are provided to give insight into the latency pipeline of an +-- application through the latency markers. @VK_NV_low_latency@ provides +-- legacy support for applications that make use of the NVIDIA Reflex SDK +-- whereas new implementations should use the @VK_NV_low_latency2@ +-- extension. +-- +-- == Issues +-- +-- 1) How does Low Latency 2 work with applications that utilize device +-- groups? +-- +-- Low Latency 2 does not support device groups. +-- +-- == Version History +-- +-- - Revision 1, 2023-09-25 (Charles Hansen) +-- +-- - Internal revisions +-- +-- == See Also +-- +-- 'GetLatencyMarkerInfoNV', 'LatencyMarkerNV', 'LatencySleepInfoNV', +-- 'LatencySleepModeInfoNV', 'LatencySubmissionPresentIdNV', +-- 'LatencySurfaceCapabilitiesNV', 'LatencyTimingsFrameReportNV', +-- 'OutOfBandQueueTypeInfoNV', 'OutOfBandQueueTypeNV', +-- 'SetLatencyMarkerInfoNV', 'SwapchainLatencyCreateInfoNV', +-- 'getLatencyTimingsNV', 'latencySleepNV', 'queueNotifyOutOfBandNV', +-- 'setLatencyMarkerNV', 'setLatencySleepModeNV' +-- +-- == Document Notes +-- +-- For more information, see the +-- +-- +-- This page is a generated document. Fixes and changes should be made to +-- the generator scripts, not directly. +module Vulkan.Extensions.VK_NV_low_latency2 ( setLatencySleepModeNV + , latencySleepNV + , setLatencyMarkerNV + , getLatencyTimingsNV + , queueNotifyOutOfBandNV + , LatencySleepModeInfoNV(..) + , LatencySleepInfoNV(..) + , SetLatencyMarkerInfoNV(..) + , GetLatencyMarkerInfoNV(..) + , LatencyTimingsFrameReportNV(..) + , OutOfBandQueueTypeInfoNV(..) + , LatencySubmissionPresentIdNV(..) + , SwapchainLatencyCreateInfoNV(..) + , LatencySurfaceCapabilitiesNV(..) + , LatencyMarkerNV( LATENCY_MARKER_SIMULATION_START_NV + , LATENCY_MARKER_SIMULATION_END_NV + , LATENCY_MARKER_RENDERSUBMIT_START_NV + , LATENCY_MARKER_RENDERSUBMIT_END_NV + , LATENCY_MARKER_PRESENT_START_NV + , LATENCY_MARKER_PRESENT_END_NV + , LATENCY_MARKER_INPUT_SAMPLE_NV + , LATENCY_MARKER_TRIGGER_FLASH_NV + , LATENCY_MARKER_OUT_OF_BAND_RENDERSUBMIT_START_NV + , LATENCY_MARKER_OUT_OF_BAND_RENDERSUBMIT_END_NV + , LATENCY_MARKER_OUT_OF_BAND_PRESENT_START_NV + , LATENCY_MARKER_OUT_OF_BAND_PRESENT_END_NV + , .. + ) + , OutOfBandQueueTypeNV( OUT_OF_BAND_QUEUE_TYPE_RENDER_NV + , OUT_OF_BAND_QUEUE_TYPE_PRESENT_NV + , .. + ) + , NV_LOW_LATENCY_2_SPEC_VERSION + , pattern NV_LOW_LATENCY_2_SPEC_VERSION + , NV_LOW_LATENCY_2_EXTENSION_NAME + , pattern NV_LOW_LATENCY_2_EXTENSION_NAME + , SwapchainKHR(..) + , PresentModeKHR(..) + ) where + +import Vulkan.Internal.Utils (enumReadPrec) +import Vulkan.Internal.Utils (enumShowsPrec) +import Vulkan.Internal.Utils (traceAroundEvent) +import Control.Exception.Base (bracket) +import Control.Monad (unless) +import Control.Monad.IO.Class (liftIO) +import Foreign.Marshal.Alloc (allocaBytes) +import Foreign.Marshal.Alloc (callocBytes) +import Foreign.Marshal.Alloc (free) +import GHC.Base (when) +import GHC.IO (throwIO) +import GHC.Ptr (nullFunPtr) +import Foreign.Ptr (nullPtr) +import Foreign.Ptr (plusPtr) +import GHC.Show (showsPrec) +import Control.Monad.Trans.Class (lift) +import Control.Monad.Trans.Cont (evalContT) +import Vulkan.CStruct (FromCStruct) +import Vulkan.CStruct (FromCStruct(..)) +import Vulkan.CStruct (ToCStruct) +import Vulkan.CStruct (ToCStruct(..)) +import Vulkan.Zero (Zero) +import Vulkan.Zero (Zero(..)) +import Control.Monad.IO.Class (MonadIO) +import Data.String (IsString) +import Data.Typeable (Typeable) +import Foreign.Storable (Storable) +import Foreign.Storable (Storable(peek)) +import Foreign.Storable (Storable(poke)) +import qualified Foreign.Storable (Storable(..)) +import GHC.Generics (Generic) +import GHC.IO.Exception (IOErrorType(..)) +import GHC.IO.Exception (IOException(..)) +import Data.Int (Int32) +import Foreign.Ptr (FunPtr) +import Foreign.Ptr (Ptr) +import GHC.Read (Read(readPrec)) +import GHC.Show (Show(showsPrec)) +import Data.Word (Word32) +import Data.Word (Word64) +import Data.Kind (Type) +import Control.Monad.Trans.Cont (ContT(..)) +import Vulkan.Core10.FundamentalTypes (bool32ToBool) +import Vulkan.Core10.FundamentalTypes (boolToBool32) +import Vulkan.NamedType ((:::)) +import Vulkan.Core10.FundamentalTypes (Bool32) +import Vulkan.Core10.Handles (Device) +import Vulkan.Core10.Handles (Device(..)) +import Vulkan.Core10.Handles (Device(Device)) +import Vulkan.Dynamic (DeviceCmds(pVkGetLatencyTimingsNV)) +import Vulkan.Dynamic (DeviceCmds(pVkLatencySleepNV)) +import Vulkan.Dynamic (DeviceCmds(pVkQueueNotifyOutOfBandNV)) +import Vulkan.Dynamic (DeviceCmds(pVkSetLatencyMarkerNV)) +import Vulkan.Dynamic (DeviceCmds(pVkSetLatencySleepModeNV)) +import Vulkan.Core10.Handles (Device_T) +import Vulkan.Extensions.VK_KHR_surface (PresentModeKHR) +import Vulkan.Core10.Handles (Queue) +import Vulkan.Core10.Handles (Queue(..)) +import Vulkan.Core10.Handles (Queue(Queue)) +import Vulkan.Core10.Handles (Queue_T) +import Vulkan.Core10.Enums.Result (Result) +import Vulkan.Core10.Enums.Result (Result(..)) +import Vulkan.Core10.Handles (Semaphore) +import Vulkan.Core10.Enums.StructureType (StructureType) +import Vulkan.Extensions.Handles (SwapchainKHR) +import Vulkan.Extensions.Handles (SwapchainKHR(..)) +import Vulkan.Exception (VulkanException(..)) +import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_GET_LATENCY_MARKER_INFO_NV)) +import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_LATENCY_SLEEP_INFO_NV)) +import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_LATENCY_SLEEP_MODE_INFO_NV)) +import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_LATENCY_SUBMISSION_PRESENT_ID_NV)) +import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_LATENCY_SURFACE_CAPABILITIES_NV)) +import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_LATENCY_TIMINGS_FRAME_REPORT_NV)) +import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_OUT_OF_BAND_QUEUE_TYPE_INFO_NV)) +import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_SET_LATENCY_MARKER_INFO_NV)) +import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_SWAPCHAIN_LATENCY_CREATE_INFO_NV)) +import Vulkan.Core10.Enums.Result (Result(SUCCESS)) +import Vulkan.Extensions.VK_KHR_surface (PresentModeKHR(..)) +import Vulkan.Extensions.Handles (SwapchainKHR(..)) +foreign import ccall +#if !defined(SAFE_FOREIGN_CALLS) + unsafe +#endif + "dynamic" mkVkSetLatencySleepModeNV + :: FunPtr (Ptr Device_T -> SwapchainKHR -> Ptr LatencySleepModeInfoNV -> IO Result) -> Ptr Device_T -> SwapchainKHR -> Ptr LatencySleepModeInfoNV -> IO Result + +-- | vkSetLatencySleepModeNV - Enable or Disable low latency mode on a +-- swapchain +-- +-- = Description +-- +-- If @pSleepModeInfo@ is @NULL@, 'setLatencySleepModeNV' will disable low +-- latency mode, low latency boost, and set the minimum present interval +-- previously specified by 'LatencySleepModeInfoNV' to zero on @swapchain@. +-- +-- == Return Codes +-- +-- [] +-- +-- - 'Vulkan.Core10.Enums.Result.SUCCESS' +-- +-- [] +-- +-- - 'Vulkan.Core10.Enums.Result.ERROR_INITIALIZATION_FAILED' +-- +-- = See Also +-- +-- , +-- 'Vulkan.Core10.Handles.Device', 'LatencySleepModeInfoNV', +-- 'Vulkan.Extensions.Handles.SwapchainKHR' +setLatencySleepModeNV :: forall io + . (MonadIO io) + => -- | @device@ is the device associated with @swapchain@. + -- + -- #VUID-vkSetLatencySleepModeNV-device-parameter# @device@ /must/ be a + -- valid 'Vulkan.Core10.Handles.Device' handle + Device + -> -- | @swapchain@ is the swapchain to enable or disable low latency mode on. + -- + -- #VUID-vkSetLatencySleepModeNV-swapchain-parameter# @swapchain@ /must/ be + -- a valid 'Vulkan.Extensions.Handles.SwapchainKHR' handle + -- + -- #VUID-vkSetLatencySleepModeNV-swapchain-parent# @swapchain@ /must/ have + -- been created, allocated, or retrieved from @device@ + SwapchainKHR + -> -- | @pSleepModeInfo@ is @NULL@ or a pointer to a 'LatencySleepModeInfoNV' + -- structure specifying the parameters of the latency sleep mode. + -- + -- #VUID-vkSetLatencySleepModeNV-pSleepModeInfo-parameter# @pSleepModeInfo@ + -- /must/ be a valid pointer to a valid 'LatencySleepModeInfoNV' structure + LatencySleepModeInfoNV + -> io () +setLatencySleepModeNV device swapchain sleepModeInfo = liftIO . evalContT $ do + let vkSetLatencySleepModeNVPtr = pVkSetLatencySleepModeNV (case device of Device{deviceCmds} -> deviceCmds) + lift $ unless (vkSetLatencySleepModeNVPtr /= nullFunPtr) $ + throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkSetLatencySleepModeNV is null" Nothing Nothing + let vkSetLatencySleepModeNV' = mkVkSetLatencySleepModeNV vkSetLatencySleepModeNVPtr + pSleepModeInfo <- ContT $ withCStruct (sleepModeInfo) + r <- lift $ traceAroundEvent "vkSetLatencySleepModeNV" (vkSetLatencySleepModeNV' + (deviceHandle (device)) + (swapchain) + pSleepModeInfo) + lift $ when (r < SUCCESS) (throwIO (VulkanException r)) + + +foreign import ccall +#if !defined(SAFE_FOREIGN_CALLS) + unsafe +#endif + "dynamic" mkVkLatencySleepNV + :: FunPtr (Ptr Device_T -> SwapchainKHR -> Ptr LatencySleepInfoNV -> IO Result) -> Ptr Device_T -> SwapchainKHR -> Ptr LatencySleepInfoNV -> IO Result + +-- No documentation found for TopLevel "vkLatencySleepNV" +latencySleepNV :: forall io + . (MonadIO io) + => -- No documentation found for Nested "vkLatencySleepNV" "device" + Device + -> -- No documentation found for Nested "vkLatencySleepNV" "swapchain" + SwapchainKHR + -> -- No documentation found for Nested "vkLatencySleepNV" "pSleepInfo" + LatencySleepInfoNV + -> io () +latencySleepNV device swapchain sleepInfo = liftIO . evalContT $ do + let vkLatencySleepNVPtr = pVkLatencySleepNV (case device of Device{deviceCmds} -> deviceCmds) + lift $ unless (vkLatencySleepNVPtr /= nullFunPtr) $ + throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkLatencySleepNV is null" Nothing Nothing + let vkLatencySleepNV' = mkVkLatencySleepNV vkLatencySleepNVPtr + pSleepInfo <- ContT $ withCStruct (sleepInfo) + r <- lift $ traceAroundEvent "vkLatencySleepNV" (vkLatencySleepNV' + (deviceHandle (device)) + (swapchain) + pSleepInfo) + lift $ when (r < SUCCESS) (throwIO (VulkanException r)) + + +foreign import ccall +#if !defined(SAFE_FOREIGN_CALLS) + unsafe +#endif + "dynamic" mkVkSetLatencyMarkerNV + :: FunPtr (Ptr Device_T -> SwapchainKHR -> Ptr SetLatencyMarkerInfoNV -> IO ()) -> Ptr Device_T -> SwapchainKHR -> Ptr SetLatencyMarkerInfoNV -> IO () + +-- No documentation found for TopLevel "vkSetLatencyMarkerNV" +setLatencyMarkerNV :: forall io + . (MonadIO io) + => -- No documentation found for Nested "vkSetLatencyMarkerNV" "device" + Device + -> -- No documentation found for Nested "vkSetLatencyMarkerNV" "swapchain" + SwapchainKHR + -> -- No documentation found for Nested "vkSetLatencyMarkerNV" "pLatencyMarkerInfo" + SetLatencyMarkerInfoNV + -> io () +setLatencyMarkerNV device swapchain latencyMarkerInfo = liftIO . evalContT $ do + let vkSetLatencyMarkerNVPtr = pVkSetLatencyMarkerNV (case device of Device{deviceCmds} -> deviceCmds) + lift $ unless (vkSetLatencyMarkerNVPtr /= nullFunPtr) $ + throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkSetLatencyMarkerNV is null" Nothing Nothing + let vkSetLatencyMarkerNV' = mkVkSetLatencyMarkerNV vkSetLatencyMarkerNVPtr + pLatencyMarkerInfo <- ContT $ withCStruct (latencyMarkerInfo) + lift $ traceAroundEvent "vkSetLatencyMarkerNV" (vkSetLatencyMarkerNV' + (deviceHandle (device)) + (swapchain) + pLatencyMarkerInfo) + pure $ () + + +foreign import ccall +#if !defined(SAFE_FOREIGN_CALLS) + unsafe +#endif + "dynamic" mkVkGetLatencyTimingsNV + :: FunPtr (Ptr Device_T -> SwapchainKHR -> Ptr Word32 -> Ptr GetLatencyMarkerInfoNV -> IO ()) -> Ptr Device_T -> SwapchainKHR -> Ptr Word32 -> Ptr GetLatencyMarkerInfoNV -> IO () + +-- No documentation found for TopLevel "vkGetLatencyTimingsNV" +getLatencyTimingsNV :: forall io + . (MonadIO io) + => -- No documentation found for Nested "vkGetLatencyTimingsNV" "device" + Device + -> -- No documentation found for Nested "vkGetLatencyTimingsNV" "swapchain" + SwapchainKHR + -> io (("timingCount" ::: Word32), GetLatencyMarkerInfoNV) +getLatencyTimingsNV device swapchain = liftIO . evalContT $ do + let vkGetLatencyTimingsNVPtr = pVkGetLatencyTimingsNV (case device of Device{deviceCmds} -> deviceCmds) + lift $ unless (vkGetLatencyTimingsNVPtr /= nullFunPtr) $ + throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetLatencyTimingsNV is null" Nothing Nothing + let vkGetLatencyTimingsNV' = mkVkGetLatencyTimingsNV vkGetLatencyTimingsNVPtr + pPTimingCount <- ContT $ bracket (callocBytes @Word32 4) free + pPLatencyMarkerInfo <- ContT (withZeroCStruct @GetLatencyMarkerInfoNV) + lift $ traceAroundEvent "vkGetLatencyTimingsNV" (vkGetLatencyTimingsNV' + (deviceHandle (device)) + (swapchain) + (pPTimingCount) + (pPLatencyMarkerInfo)) + pTimingCount <- lift $ peek @Word32 pPTimingCount + pLatencyMarkerInfo <- lift $ peekCStruct @GetLatencyMarkerInfoNV pPLatencyMarkerInfo + pure $ (pTimingCount, pLatencyMarkerInfo) + + +foreign import ccall +#if !defined(SAFE_FOREIGN_CALLS) + unsafe +#endif + "dynamic" mkVkQueueNotifyOutOfBandNV + :: FunPtr (Ptr Queue_T -> Ptr OutOfBandQueueTypeInfoNV -> IO ()) -> Ptr Queue_T -> Ptr OutOfBandQueueTypeInfoNV -> IO () + +-- | vkQueueNotifyOutOfBandNV - Notify out of band queue +-- +-- == Command Properties +-- +-- \' +-- +-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ +-- | | | | | | +-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================+ +-- | - | - | - | Any | - | +-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+ +-- +-- = See Also +-- +-- , +-- 'OutOfBandQueueTypeInfoNV', 'Vulkan.Core10.Handles.Queue' +queueNotifyOutOfBandNV :: forall io + . (MonadIO io) + => -- | @queue@ is the VkQueue to be marked as out of band. + -- + -- #VUID-vkQueueNotifyOutOfBandNV-queue-parameter# @queue@ /must/ be a + -- valid 'Vulkan.Core10.Handles.Queue' handle + Queue + -> -- | @pQueueTypeInfo@ is a pointer to a 'OutOfBandQueueTypeInfoNV' structure + -- specifying the queue type. + -- + -- #VUID-vkQueueNotifyOutOfBandNV-pQueueTypeInfo-parameter# + -- @pQueueTypeInfo@ /must/ be a valid pointer to a valid + -- 'OutOfBandQueueTypeInfoNV' structure + OutOfBandQueueTypeInfoNV + -> io () +queueNotifyOutOfBandNV queue queueTypeInfo = liftIO . evalContT $ do + let vkQueueNotifyOutOfBandNVPtr = pVkQueueNotifyOutOfBandNV (case queue of Queue{deviceCmds} -> deviceCmds) + lift $ unless (vkQueueNotifyOutOfBandNVPtr /= nullFunPtr) $ + throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkQueueNotifyOutOfBandNV is null" Nothing Nothing + let vkQueueNotifyOutOfBandNV' = mkVkQueueNotifyOutOfBandNV vkQueueNotifyOutOfBandNVPtr + pQueueTypeInfo <- ContT $ withCStruct (queueTypeInfo) + lift $ traceAroundEvent "vkQueueNotifyOutOfBandNV" (vkQueueNotifyOutOfBandNV' + (queueHandle (queue)) + pQueueTypeInfo) + pure $ () + + +-- | VkLatencySleepModeInfoNV - Structure to set low latency mode +-- +-- = Description +-- +-- If @lowLatencyMode@ is set to 'Vulkan.Core10.FundamentalTypes.FALSE', +-- @lowLatencyBoost@ will still hint to the GPU to increase its power state +-- and 'latencySleepNV' will still enforce @minimumIntervalUs@ between +-- 'Vulkan.Extensions.VK_KHR_swapchain.queuePresentKHR' calls. +-- +-- == Valid Usage (Implicit) +-- +-- = See Also +-- +-- , +-- 'Vulkan.Core10.FundamentalTypes.Bool32', +-- 'Vulkan.Core10.Enums.StructureType.StructureType', +-- 'setLatencySleepModeNV' +data LatencySleepModeInfoNV = LatencySleepModeInfoNV + { -- | @lowLatencyMode@ is the toggle to enable or disable low latency mode. + lowLatencyMode :: Bool + , -- | @lowLatencyBoost@ allows an application to hint to the GPU to increase + -- performance to provide additional latency savings at a cost of increased + -- power consumption. + lowLatencyBoost :: Bool + , -- No documentation found for Nested "VkLatencySleepModeInfoNV" "minimumIntervalUs" + minimumIntervalUs :: Word32 + } + deriving (Typeable, Eq) +#if defined(GENERIC_INSTANCES) +deriving instance Generic (LatencySleepModeInfoNV) +#endif +deriving instance Show LatencySleepModeInfoNV + +instance ToCStruct LatencySleepModeInfoNV where + withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p) + pokeCStruct p LatencySleepModeInfoNV{..} f = do + poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_LATENCY_SLEEP_MODE_INFO_NV) + poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr) + poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (lowLatencyMode)) + poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (lowLatencyBoost)) + poke ((p `plusPtr` 24 :: Ptr Word32)) (minimumIntervalUs) + f + cStructSize = 32 + cStructAlignment = 8 + pokeZeroCStruct p f = do + poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_LATENCY_SLEEP_MODE_INFO_NV) + 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 Word32)) (zero) + f + +instance FromCStruct LatencySleepModeInfoNV where + peekCStruct p = do + lowLatencyMode <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32)) + lowLatencyBoost <- peek @Bool32 ((p `plusPtr` 20 :: Ptr Bool32)) + minimumIntervalUs <- peek @Word32 ((p `plusPtr` 24 :: Ptr Word32)) + pure $ LatencySleepModeInfoNV + (bool32ToBool lowLatencyMode) + (bool32ToBool lowLatencyBoost) + minimumIntervalUs + +instance Storable LatencySleepModeInfoNV where + sizeOf ~_ = 32 + alignment ~_ = 8 + peek = peekCStruct + poke ptr poked = pokeCStruct ptr poked (pure ()) + +instance Zero LatencySleepModeInfoNV where + zero = LatencySleepModeInfoNV + zero + zero + zero + + +-- No documentation found for TopLevel "VkLatencySleepInfoNV" +data LatencySleepInfoNV = LatencySleepInfoNV + { -- No documentation found for Nested "VkLatencySleepInfoNV" "signalSemaphore" + signalSemaphore :: Semaphore + , -- No documentation found for Nested "VkLatencySleepInfoNV" "value" + value :: Word64 + } + deriving (Typeable, Eq) +#if defined(GENERIC_INSTANCES) +deriving instance Generic (LatencySleepInfoNV) +#endif +deriving instance Show LatencySleepInfoNV + +instance ToCStruct LatencySleepInfoNV where + withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p) + pokeCStruct p LatencySleepInfoNV{..} f = do + poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_LATENCY_SLEEP_INFO_NV) + poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr) + poke ((p `plusPtr` 16 :: Ptr Semaphore)) (signalSemaphore) + poke ((p `plusPtr` 24 :: Ptr Word64)) (value) + f + cStructSize = 32 + cStructAlignment = 8 + pokeZeroCStruct p f = do + poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_LATENCY_SLEEP_INFO_NV) + poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr) + poke ((p `plusPtr` 16 :: Ptr Semaphore)) (zero) + poke ((p `plusPtr` 24 :: Ptr Word64)) (zero) + f + +instance FromCStruct LatencySleepInfoNV where + peekCStruct p = do + signalSemaphore <- peek @Semaphore ((p `plusPtr` 16 :: Ptr Semaphore)) + value <- peek @Word64 ((p `plusPtr` 24 :: Ptr Word64)) + pure $ LatencySleepInfoNV + signalSemaphore value + +instance Storable LatencySleepInfoNV where + sizeOf ~_ = 32 + alignment ~_ = 8 + peek = peekCStruct + poke ptr poked = pokeCStruct ptr poked (pure ()) + +instance Zero LatencySleepInfoNV where + zero = LatencySleepInfoNV + zero + zero + + +-- No documentation found for TopLevel "VkSetLatencyMarkerInfoNV" +data SetLatencyMarkerInfoNV = SetLatencyMarkerInfoNV + { -- No documentation found for Nested "VkSetLatencyMarkerInfoNV" "presentID" + presentID :: Word64 + , -- No documentation found for Nested "VkSetLatencyMarkerInfoNV" "marker" + marker :: LatencyMarkerNV + } + deriving (Typeable, Eq) +#if defined(GENERIC_INSTANCES) +deriving instance Generic (SetLatencyMarkerInfoNV) +#endif +deriving instance Show SetLatencyMarkerInfoNV + +instance ToCStruct SetLatencyMarkerInfoNV where + withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p) + pokeCStruct p SetLatencyMarkerInfoNV{..} f = do + poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_SET_LATENCY_MARKER_INFO_NV) + poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr) + poke ((p `plusPtr` 16 :: Ptr Word64)) (presentID) + poke ((p `plusPtr` 24 :: Ptr LatencyMarkerNV)) (marker) + f + cStructSize = 32 + cStructAlignment = 8 + pokeZeroCStruct p f = do + poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_SET_LATENCY_MARKER_INFO_NV) + poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr) + poke ((p `plusPtr` 16 :: Ptr Word64)) (zero) + poke ((p `plusPtr` 24 :: Ptr LatencyMarkerNV)) (zero) + f + +instance FromCStruct SetLatencyMarkerInfoNV where + peekCStruct p = do + presentID <- peek @Word64 ((p `plusPtr` 16 :: Ptr Word64)) + marker <- peek @LatencyMarkerNV ((p `plusPtr` 24 :: Ptr LatencyMarkerNV)) + pure $ SetLatencyMarkerInfoNV + presentID marker + +instance Storable SetLatencyMarkerInfoNV where + sizeOf ~_ = 32 + alignment ~_ = 8 + peek = peekCStruct + poke ptr poked = pokeCStruct ptr poked (pure ()) + +instance Zero SetLatencyMarkerInfoNV where + zero = SetLatencyMarkerInfoNV + zero + zero + + +-- No documentation found for TopLevel "VkGetLatencyMarkerInfoNV" +data GetLatencyMarkerInfoNV = GetLatencyMarkerInfoNV + { -- No documentation found for Nested "VkGetLatencyMarkerInfoNV" "pTimings" + timings :: Ptr LatencyTimingsFrameReportNV } + deriving (Typeable, Eq) +#if defined(GENERIC_INSTANCES) +deriving instance Generic (GetLatencyMarkerInfoNV) +#endif +deriving instance Show GetLatencyMarkerInfoNV + +instance ToCStruct GetLatencyMarkerInfoNV where + withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p) + pokeCStruct p GetLatencyMarkerInfoNV{..} f = do + poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_GET_LATENCY_MARKER_INFO_NV) + poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr) + poke ((p `plusPtr` 16 :: Ptr (Ptr LatencyTimingsFrameReportNV))) (timings) + f + cStructSize = 24 + cStructAlignment = 8 + pokeZeroCStruct p f = do + poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_GET_LATENCY_MARKER_INFO_NV) + poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr) + poke ((p `plusPtr` 16 :: Ptr (Ptr LatencyTimingsFrameReportNV))) (zero) + f + +instance FromCStruct GetLatencyMarkerInfoNV where + peekCStruct p = do + pTimings <- peek @(Ptr LatencyTimingsFrameReportNV) ((p `plusPtr` 16 :: Ptr (Ptr LatencyTimingsFrameReportNV))) + pure $ GetLatencyMarkerInfoNV + pTimings + +instance Storable GetLatencyMarkerInfoNV where + sizeOf ~_ = 24 + alignment ~_ = 8 + peek = peekCStruct + poke ptr poked = pokeCStruct ptr poked (pure ()) + +instance Zero GetLatencyMarkerInfoNV where + zero = GetLatencyMarkerInfoNV + zero + + +-- | VkLatencyTimingsFrameReportNV - Structure containing latency data +-- +-- = Members +-- +-- The members of the 'LatencyTimingsFrameReportNV' structure describe the +-- following: +-- +-- == Valid Usage (Implicit) +-- +-- = See Also +-- +-- , +-- 'GetLatencyMarkerInfoNV', +-- 'Vulkan.Core10.Enums.StructureType.StructureType' +data LatencyTimingsFrameReportNV = LatencyTimingsFrameReportNV + { -- No documentation found for Nested "VkLatencyTimingsFrameReportNV" "presentID" + presentID :: Word64 + , -- No documentation found for Nested "VkLatencyTimingsFrameReportNV" "inputSampleTimeUs" + inputSampleTimeUs :: Word64 + , -- | @simStartTimeUs@ is the timestamp written when 'setLatencyMarkerNV' is + -- called with the 'LatencyMarkerNV' enum + -- 'LATENCY_MARKER_SIMULATION_START_NV'. + simStartTimeUs :: Word64 + , -- | @simEndTimeUs@ is the timestamp written when 'setLatencyMarkerNV' is + -- called with the 'LatencyMarkerNV' enum + -- 'LATENCY_MARKER_SIMULATION_END_NV' + simEndTimeUs :: Word64 + , -- No documentation found for Nested "VkLatencyTimingsFrameReportNV" "renderSubmitStartTimeUs" + renderSubmitStartTimeUs :: Word64 + , -- No documentation found for Nested "VkLatencyTimingsFrameReportNV" "renderSubmitEndTimeUs" + renderSubmitEndTimeUs :: Word64 + , -- | @presentStartTimeUs@ is the timestamp written when 'setLatencyMarkerNV' + -- is called with the 'LatencyMarkerNV' enum + -- 'LATENCY_MARKER_PRESENT_START_NV'. + presentStartTimeUs :: Word64 + , -- | @presentEndTimeUs@ is the timestamp written when 'setLatencyMarkerNV' is + -- called with the 'LatencyMarkerNV' enum 'LATENCY_MARKER_PRESENT_END_NV'. + presentEndTimeUs :: Word64 + , -- | @driverStartTimeUs@ is the timestamp written when the first + -- 'Vulkan.Core10.Queue.queueSubmit' for the frame is called. + driverStartTimeUs :: Word64 + , -- | @driverEndTimeUs@ is the timestamp written when the final + -- 'Vulkan.Core10.Queue.queueSubmit' hands off from the Vulkan Driver. + driverEndTimeUs :: Word64 + , -- | @osRenderQueueStartTimeUs@ is the timestamp written when the final + -- 'Vulkan.Core10.Queue.queueSubmit' hands off from the Vulkan Driver. + osRenderQueueStartTimeUs :: Word64 + , -- | @osRenderQueueEndTimeUs@ is the timestamp written when the first + -- submission reaches the GPU. + osRenderQueueEndTimeUs :: Word64 + , -- | @gpuRenderStartTimeUs@ is the timestamp written when the first + -- submission reaches the GPU. + gpuRenderStartTimeUs :: Word64 + , -- | @gpuRenderEndTimeUs@ is the timestamp written when the final submission + -- finishes on the GPU for the frame. + gpuRenderEndTimeUs :: Word64 + } + deriving (Typeable, Eq) +#if defined(GENERIC_INSTANCES) +deriving instance Generic (LatencyTimingsFrameReportNV) +#endif +deriving instance Show LatencyTimingsFrameReportNV + +instance ToCStruct LatencyTimingsFrameReportNV where + withCStruct x f = allocaBytes 128 $ \p -> pokeCStruct p x (f p) + pokeCStruct p LatencyTimingsFrameReportNV{..} f = do + poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_LATENCY_TIMINGS_FRAME_REPORT_NV) + poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr) + poke ((p `plusPtr` 16 :: Ptr Word64)) (presentID) + poke ((p `plusPtr` 24 :: Ptr Word64)) (inputSampleTimeUs) + poke ((p `plusPtr` 32 :: Ptr Word64)) (simStartTimeUs) + poke ((p `plusPtr` 40 :: Ptr Word64)) (simEndTimeUs) + poke ((p `plusPtr` 48 :: Ptr Word64)) (renderSubmitStartTimeUs) + poke ((p `plusPtr` 56 :: Ptr Word64)) (renderSubmitEndTimeUs) + poke ((p `plusPtr` 64 :: Ptr Word64)) (presentStartTimeUs) + poke ((p `plusPtr` 72 :: Ptr Word64)) (presentEndTimeUs) + poke ((p `plusPtr` 80 :: Ptr Word64)) (driverStartTimeUs) + poke ((p `plusPtr` 88 :: Ptr Word64)) (driverEndTimeUs) + poke ((p `plusPtr` 96 :: Ptr Word64)) (osRenderQueueStartTimeUs) + poke ((p `plusPtr` 104 :: Ptr Word64)) (osRenderQueueEndTimeUs) + poke ((p `plusPtr` 112 :: Ptr Word64)) (gpuRenderStartTimeUs) + poke ((p `plusPtr` 120 :: Ptr Word64)) (gpuRenderEndTimeUs) + f + cStructSize = 128 + cStructAlignment = 8 + pokeZeroCStruct p f = do + poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_LATENCY_TIMINGS_FRAME_REPORT_NV) + poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr) + poke ((p `plusPtr` 16 :: Ptr Word64)) (zero) + poke ((p `plusPtr` 24 :: Ptr Word64)) (zero) + poke ((p `plusPtr` 32 :: Ptr Word64)) (zero) + poke ((p `plusPtr` 40 :: Ptr Word64)) (zero) + poke ((p `plusPtr` 48 :: Ptr Word64)) (zero) + poke ((p `plusPtr` 56 :: Ptr Word64)) (zero) + poke ((p `plusPtr` 64 :: Ptr Word64)) (zero) + poke ((p `plusPtr` 72 :: Ptr Word64)) (zero) + poke ((p `plusPtr` 80 :: Ptr Word64)) (zero) + poke ((p `plusPtr` 88 :: Ptr Word64)) (zero) + poke ((p `plusPtr` 96 :: Ptr Word64)) (zero) + poke ((p `plusPtr` 104 :: Ptr Word64)) (zero) + poke ((p `plusPtr` 112 :: Ptr Word64)) (zero) + poke ((p `plusPtr` 120 :: Ptr Word64)) (zero) + f + +instance FromCStruct LatencyTimingsFrameReportNV where + peekCStruct p = do + presentID <- peek @Word64 ((p `plusPtr` 16 :: Ptr Word64)) + inputSampleTimeUs <- peek @Word64 ((p `plusPtr` 24 :: Ptr Word64)) + simStartTimeUs <- peek @Word64 ((p `plusPtr` 32 :: Ptr Word64)) + simEndTimeUs <- peek @Word64 ((p `plusPtr` 40 :: Ptr Word64)) + renderSubmitStartTimeUs <- peek @Word64 ((p `plusPtr` 48 :: Ptr Word64)) + renderSubmitEndTimeUs <- peek @Word64 ((p `plusPtr` 56 :: Ptr Word64)) + presentStartTimeUs <- peek @Word64 ((p `plusPtr` 64 :: Ptr Word64)) + presentEndTimeUs <- peek @Word64 ((p `plusPtr` 72 :: Ptr Word64)) + driverStartTimeUs <- peek @Word64 ((p `plusPtr` 80 :: Ptr Word64)) + driverEndTimeUs <- peek @Word64 ((p `plusPtr` 88 :: Ptr Word64)) + osRenderQueueStartTimeUs <- peek @Word64 ((p `plusPtr` 96 :: Ptr Word64)) + osRenderQueueEndTimeUs <- peek @Word64 ((p `plusPtr` 104 :: Ptr Word64)) + gpuRenderStartTimeUs <- peek @Word64 ((p `plusPtr` 112 :: Ptr Word64)) + gpuRenderEndTimeUs <- peek @Word64 ((p `plusPtr` 120 :: Ptr Word64)) + pure $ LatencyTimingsFrameReportNV + presentID + inputSampleTimeUs + simStartTimeUs + simEndTimeUs + renderSubmitStartTimeUs + renderSubmitEndTimeUs + presentStartTimeUs + presentEndTimeUs + driverStartTimeUs + driverEndTimeUs + osRenderQueueStartTimeUs + osRenderQueueEndTimeUs + gpuRenderStartTimeUs + gpuRenderEndTimeUs + +instance Storable LatencyTimingsFrameReportNV where + sizeOf ~_ = 128 + alignment ~_ = 8 + peek = peekCStruct + poke ptr poked = pokeCStruct ptr poked (pure ()) + +instance Zero LatencyTimingsFrameReportNV where + zero = LatencyTimingsFrameReportNV + zero + zero + zero + zero + zero + zero + zero + zero + zero + zero + zero + zero + zero + zero + + +-- | VkOutOfBandQueueTypeInfoNV - Structure used to describe the queue that +-- is being marked as Out of Band +-- +-- == Valid Usage (Implicit) +-- +-- = See Also +-- +-- , +-- 'OutOfBandQueueTypeNV', +-- 'Vulkan.Core10.Enums.StructureType.StructureType', +-- 'queueNotifyOutOfBandNV' +data OutOfBandQueueTypeInfoNV = OutOfBandQueueTypeInfoNV + { -- | @queueType@ describes the usage of the queue to be marked as out of + -- band. + -- + -- #VUID-VkOutOfBandQueueTypeInfoNV-queueType-parameter# @queueType@ /must/ + -- be a valid 'OutOfBandQueueTypeNV' value + queueType :: OutOfBandQueueTypeNV } + deriving (Typeable, Eq) +#if defined(GENERIC_INSTANCES) +deriving instance Generic (OutOfBandQueueTypeInfoNV) +#endif +deriving instance Show OutOfBandQueueTypeInfoNV + +instance ToCStruct OutOfBandQueueTypeInfoNV where + withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p) + pokeCStruct p OutOfBandQueueTypeInfoNV{..} f = do + poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_OUT_OF_BAND_QUEUE_TYPE_INFO_NV) + poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr) + poke ((p `plusPtr` 16 :: Ptr OutOfBandQueueTypeNV)) (queueType) + f + cStructSize = 24 + cStructAlignment = 8 + pokeZeroCStruct p f = do + poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_OUT_OF_BAND_QUEUE_TYPE_INFO_NV) + poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr) + poke ((p `plusPtr` 16 :: Ptr OutOfBandQueueTypeNV)) (zero) + f + +instance FromCStruct OutOfBandQueueTypeInfoNV where + peekCStruct p = do + queueType <- peek @OutOfBandQueueTypeNV ((p `plusPtr` 16 :: Ptr OutOfBandQueueTypeNV)) + pure $ OutOfBandQueueTypeInfoNV + queueType + +instance Storable OutOfBandQueueTypeInfoNV where + sizeOf ~_ = 24 + alignment ~_ = 8 + peek = peekCStruct + poke ptr poked = pokeCStruct ptr poked (pure ()) + +instance Zero OutOfBandQueueTypeInfoNV where + zero = OutOfBandQueueTypeInfoNV + zero + + +-- | VkLatencySubmissionPresentIdNV - Structure used to associate a +-- queueSubmit with a presentId +-- +-- = Description +-- +-- For any submission to be tracked with low latency mode pacing, it needs +-- to be associated with other submissions in a given present. Applications +-- :must include the VkLatencySubmissionPresentIdNV in the pNext chain of +-- 'Vulkan.Core10.Queue.queueSubmit' to associate that submission with the +-- @presentId@ present for low latency mode. +-- +-- == Valid Usage (Implicit) +-- +-- = See Also +-- +-- , +-- 'Vulkan.Core10.Enums.StructureType.StructureType' +data LatencySubmissionPresentIdNV = LatencySubmissionPresentIdNV + { -- No documentation found for Nested "VkLatencySubmissionPresentIdNV" "presentID" + presentID :: Word64 } + deriving (Typeable, Eq) +#if defined(GENERIC_INSTANCES) +deriving instance Generic (LatencySubmissionPresentIdNV) +#endif +deriving instance Show LatencySubmissionPresentIdNV + +instance ToCStruct LatencySubmissionPresentIdNV where + withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p) + pokeCStruct p LatencySubmissionPresentIdNV{..} f = do + poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_LATENCY_SUBMISSION_PRESENT_ID_NV) + poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr) + poke ((p `plusPtr` 16 :: Ptr Word64)) (presentID) + f + cStructSize = 24 + cStructAlignment = 8 + pokeZeroCStruct p f = do + poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_LATENCY_SUBMISSION_PRESENT_ID_NV) + poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr) + poke ((p `plusPtr` 16 :: Ptr Word64)) (zero) + f + +instance FromCStruct LatencySubmissionPresentIdNV where + peekCStruct p = do + presentID <- peek @Word64 ((p `plusPtr` 16 :: Ptr Word64)) + pure $ LatencySubmissionPresentIdNV + presentID + +instance Storable LatencySubmissionPresentIdNV where + sizeOf ~_ = 24 + alignment ~_ = 8 + peek = peekCStruct + poke ptr poked = pokeCStruct ptr poked (pure ()) + +instance Zero LatencySubmissionPresentIdNV where + zero = LatencySubmissionPresentIdNV + zero + + +-- | VkSwapchainLatencyCreateInfoNV - Specify that a swapchain will use low +-- latency mode +-- +-- == Valid Usage (Implicit) +-- +-- = See Also +-- +-- , +-- 'Vulkan.Core10.FundamentalTypes.Bool32', +-- 'Vulkan.Core10.Enums.StructureType.StructureType' +data SwapchainLatencyCreateInfoNV = SwapchainLatencyCreateInfoNV + { -- No documentation found for Nested "VkSwapchainLatencyCreateInfoNV" "latencyModeEnable" + latencyModeEnable :: Bool } + deriving (Typeable, Eq) +#if defined(GENERIC_INSTANCES) +deriving instance Generic (SwapchainLatencyCreateInfoNV) +#endif +deriving instance Show SwapchainLatencyCreateInfoNV + +instance ToCStruct SwapchainLatencyCreateInfoNV where + withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p) + pokeCStruct p SwapchainLatencyCreateInfoNV{..} f = do + poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_SWAPCHAIN_LATENCY_CREATE_INFO_NV) + poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr) + poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (latencyModeEnable)) + f + cStructSize = 24 + cStructAlignment = 8 + pokeZeroCStruct p f = do + poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_SWAPCHAIN_LATENCY_CREATE_INFO_NV) + poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr) + f + +instance FromCStruct SwapchainLatencyCreateInfoNV where + peekCStruct p = do + latencyModeEnable <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32)) + pure $ SwapchainLatencyCreateInfoNV + (bool32ToBool latencyModeEnable) + +instance Storable SwapchainLatencyCreateInfoNV where + sizeOf ~_ = 24 + alignment ~_ = 8 + peek = peekCStruct + poke ptr poked = pokeCStruct ptr poked (pure ()) + +instance Zero SwapchainLatencyCreateInfoNV where + zero = SwapchainLatencyCreateInfoNV + zero + + +-- | VkLatencySurfaceCapabilitiesNV - Structure describing surface optimized +-- presentation modes for use with low latency mode +-- +-- = Description +-- +-- If @pPresentModes@ is @NULL@, then the number of present modes that are +-- optimized for use with low latency mode returned in @presentModeCount@. +-- Otherwise, @presentModeCount@ must be set by the user to the number of +-- elements in the @pPresentModes@ array, and on return the variable is +-- overwritten with the number of values actually written to +-- @pPresentModes@. If the value of @presentModeCount@ is less than the +-- number of optimized present modes, at most @presentModeCount@ values +-- will be written to @pPresentModes@. +-- +-- == Valid Usage (Implicit) +-- +-- - #VUID-VkLatencySurfaceCapabilitiesNV-sType-sType# @sType@ /must/ be +-- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_LATENCY_SURFACE_CAPABILITIES_NV' +-- +-- - #VUID-VkLatencySurfaceCapabilitiesNV-pPresentModes-parameter# If +-- @presentModeCount@ is not @0@, and @pPresentModes@ is not @NULL@, +-- @pPresentModes@ /must/ be a valid pointer to an array of +-- @presentModeCount@ 'Vulkan.Extensions.VK_KHR_surface.PresentModeKHR' +-- values +-- +-- = See Also +-- +-- , +-- 'Vulkan.Extensions.VK_KHR_surface.PresentModeKHR', +-- 'Vulkan.Core10.Enums.StructureType.StructureType' +data LatencySurfaceCapabilitiesNV = LatencySurfaceCapabilitiesNV + { -- | @presentModeCount@ is the number of presentation modes provided. + presentModeCount :: Word32 + , -- | @pPresentModes@ is list of presentation modes optimized for use with low + -- latency mode with @presentModeCount@ entries. + presentModes :: Ptr PresentModeKHR + } + deriving (Typeable, Eq) +#if defined(GENERIC_INSTANCES) +deriving instance Generic (LatencySurfaceCapabilitiesNV) +#endif +deriving instance Show LatencySurfaceCapabilitiesNV + +instance ToCStruct LatencySurfaceCapabilitiesNV where + withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p) + pokeCStruct p LatencySurfaceCapabilitiesNV{..} f = do + poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_LATENCY_SURFACE_CAPABILITIES_NV) + poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr) + poke ((p `plusPtr` 16 :: Ptr Word32)) (presentModeCount) + poke ((p `plusPtr` 24 :: Ptr (Ptr PresentModeKHR))) (presentModes) + f + cStructSize = 32 + cStructAlignment = 8 + pokeZeroCStruct p f = do + poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_LATENCY_SURFACE_CAPABILITIES_NV) + poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr) + f + +instance FromCStruct LatencySurfaceCapabilitiesNV where + peekCStruct p = do + presentModeCount <- peek @Word32 ((p `plusPtr` 16 :: Ptr Word32)) + pPresentModes <- peek @(Ptr PresentModeKHR) ((p `plusPtr` 24 :: Ptr (Ptr PresentModeKHR))) + pure $ LatencySurfaceCapabilitiesNV + presentModeCount pPresentModes + +instance Storable LatencySurfaceCapabilitiesNV where + sizeOf ~_ = 32 + alignment ~_ = 8 + peek = peekCStruct + poke ptr poked = pokeCStruct ptr poked (pure ()) + +instance Zero LatencySurfaceCapabilitiesNV where + zero = LatencySurfaceCapabilitiesNV + zero + zero + + +-- | VkLatencyMarkerNV - Structure used to mark different points in latency +-- +-- = Description +-- +-- The members of the 'LatencyMarkerNV' are used as arguments for +-- 'setLatencyMarkerNV' in the use cases described below: +-- +-- = See Also +-- +-- , +-- 'SetLatencyMarkerInfoNV' +newtype LatencyMarkerNV = LatencyMarkerNV Int32 + deriving newtype (Eq, Ord, Storable, Zero) + +-- | 'LATENCY_MARKER_SIMULATION_START_NV' /should/ be called at the start of +-- the simulation execution each frame, but after the call to +-- 'latencySleepNV'. +pattern LATENCY_MARKER_SIMULATION_START_NV = LatencyMarkerNV 0 + +-- | 'LATENCY_MARKER_SIMULATION_END_NV' /should/ be called at the end of the +-- simulation execution each frame. +pattern LATENCY_MARKER_SIMULATION_END_NV = LatencyMarkerNV 1 + +-- | 'LATENCY_MARKER_RENDERSUBMIT_START_NV' /should/ be called at the +-- beginning of the render submission execution each frame. This /should/ +-- be wherever Vulkan API calls are made and /must/ not span into +-- asynchronous rendering. +pattern LATENCY_MARKER_RENDERSUBMIT_START_NV = LatencyMarkerNV 2 + +-- | 'LATENCY_MARKER_RENDERSUBMIT_END_NV' /should/ be called at the end of +-- the render submission execution each frame. +pattern LATENCY_MARKER_RENDERSUBMIT_END_NV = LatencyMarkerNV 3 + +-- | 'LATENCY_MARKER_PRESENT_START_NV' /should/ be called just before +-- 'Vulkan.Extensions.VK_KHR_swapchain.queuePresentKHR'. +pattern LATENCY_MARKER_PRESENT_START_NV = LatencyMarkerNV 4 + +-- | 'LATENCY_MARKER_PRESENT_END_NV' /should/ be called when +-- 'Vulkan.Extensions.VK_KHR_swapchain.queuePresentKHR' returns. +pattern LATENCY_MARKER_PRESENT_END_NV = LatencyMarkerNV 5 + +-- | 'LATENCY_MARKER_INPUT_SAMPLE_NV' /should/ be called just before the +-- application gathers input data. +pattern LATENCY_MARKER_INPUT_SAMPLE_NV = LatencyMarkerNV 6 + +-- | 'LATENCY_MARKER_TRIGGER_FLASH_NV' /should/ be called anywhere between +-- 'LATENCY_MARKER_SIMULATION_START_NV' and +-- 'LATENCY_MARKER_SIMULATION_END_NV' whenever a left mouse click occurs. +pattern LATENCY_MARKER_TRIGGER_FLASH_NV = LatencyMarkerNV 7 + +-- No documentation found for Nested "VkLatencyMarkerNV" "VK_LATENCY_MARKER_OUT_OF_BAND_RENDERSUBMIT_START_NV" +pattern LATENCY_MARKER_OUT_OF_BAND_RENDERSUBMIT_START_NV = LatencyMarkerNV 8 + +-- No documentation found for Nested "VkLatencyMarkerNV" "VK_LATENCY_MARKER_OUT_OF_BAND_RENDERSUBMIT_END_NV" +pattern LATENCY_MARKER_OUT_OF_BAND_RENDERSUBMIT_END_NV = LatencyMarkerNV 9 + +-- No documentation found for Nested "VkLatencyMarkerNV" "VK_LATENCY_MARKER_OUT_OF_BAND_PRESENT_START_NV" +pattern LATENCY_MARKER_OUT_OF_BAND_PRESENT_START_NV = LatencyMarkerNV 10 + +-- No documentation found for Nested "VkLatencyMarkerNV" "VK_LATENCY_MARKER_OUT_OF_BAND_PRESENT_END_NV" +pattern LATENCY_MARKER_OUT_OF_BAND_PRESENT_END_NV = LatencyMarkerNV 11 + +{-# COMPLETE + LATENCY_MARKER_SIMULATION_START_NV + , LATENCY_MARKER_SIMULATION_END_NV + , LATENCY_MARKER_RENDERSUBMIT_START_NV + , LATENCY_MARKER_RENDERSUBMIT_END_NV + , LATENCY_MARKER_PRESENT_START_NV + , LATENCY_MARKER_PRESENT_END_NV + , LATENCY_MARKER_INPUT_SAMPLE_NV + , LATENCY_MARKER_TRIGGER_FLASH_NV + , LATENCY_MARKER_OUT_OF_BAND_RENDERSUBMIT_START_NV + , LATENCY_MARKER_OUT_OF_BAND_RENDERSUBMIT_END_NV + , LATENCY_MARKER_OUT_OF_BAND_PRESENT_START_NV + , LATENCY_MARKER_OUT_OF_BAND_PRESENT_END_NV :: + LatencyMarkerNV + #-} + +conNameLatencyMarkerNV :: String +conNameLatencyMarkerNV = "LatencyMarkerNV" + +enumPrefixLatencyMarkerNV :: String +enumPrefixLatencyMarkerNV = "LATENCY_MARKER_" + +showTableLatencyMarkerNV :: [(LatencyMarkerNV, String)] +showTableLatencyMarkerNV = + [ + ( LATENCY_MARKER_SIMULATION_START_NV + , "SIMULATION_START_NV" + ) + , + ( LATENCY_MARKER_SIMULATION_END_NV + , "SIMULATION_END_NV" + ) + , + ( LATENCY_MARKER_RENDERSUBMIT_START_NV + , "RENDERSUBMIT_START_NV" + ) + , + ( LATENCY_MARKER_RENDERSUBMIT_END_NV + , "RENDERSUBMIT_END_NV" + ) + , + ( LATENCY_MARKER_PRESENT_START_NV + , "PRESENT_START_NV" + ) + , (LATENCY_MARKER_PRESENT_END_NV, "PRESENT_END_NV") + , (LATENCY_MARKER_INPUT_SAMPLE_NV, "INPUT_SAMPLE_NV") + , + ( LATENCY_MARKER_TRIGGER_FLASH_NV + , "TRIGGER_FLASH_NV" + ) + , + ( LATENCY_MARKER_OUT_OF_BAND_RENDERSUBMIT_START_NV + , "OUT_OF_BAND_RENDERSUBMIT_START_NV" + ) + , + ( LATENCY_MARKER_OUT_OF_BAND_RENDERSUBMIT_END_NV + , "OUT_OF_BAND_RENDERSUBMIT_END_NV" + ) + , + ( LATENCY_MARKER_OUT_OF_BAND_PRESENT_START_NV + , "OUT_OF_BAND_PRESENT_START_NV" + ) + , + ( LATENCY_MARKER_OUT_OF_BAND_PRESENT_END_NV + , "OUT_OF_BAND_PRESENT_END_NV" + ) + ] + +instance Show LatencyMarkerNV where + showsPrec = + enumShowsPrec + enumPrefixLatencyMarkerNV + showTableLatencyMarkerNV + conNameLatencyMarkerNV + (\(LatencyMarkerNV x) -> x) + (showsPrec 11) + +instance Read LatencyMarkerNV where + readPrec = + enumReadPrec + enumPrefixLatencyMarkerNV + showTableLatencyMarkerNV + conNameLatencyMarkerNV + LatencyMarkerNV + +-- | VkOutOfBandQueueTypeNV - Type of out of band queue +-- +-- = Description +-- +-- The members of the 'OutOfBandQueueTypeNV' are used to describe the queue +-- type in 'OutOfBandQueueTypeInfoNV' as described below: +-- +-- = See Also +-- +-- , +-- 'OutOfBandQueueTypeInfoNV' +newtype OutOfBandQueueTypeNV = OutOfBandQueueTypeNV Int32 + deriving newtype (Eq, Ord, Storable, Zero) + +-- | 'OUT_OF_BAND_QUEUE_TYPE_RENDER_NV' indicates that work will be submitted +-- to this queue. +pattern OUT_OF_BAND_QUEUE_TYPE_RENDER_NV = OutOfBandQueueTypeNV 0 + +-- | 'OUT_OF_BAND_QUEUE_TYPE_PRESENT_NV' indicates that this queue will be +-- presented from. +pattern OUT_OF_BAND_QUEUE_TYPE_PRESENT_NV = OutOfBandQueueTypeNV 1 + +{-# COMPLETE + OUT_OF_BAND_QUEUE_TYPE_RENDER_NV + , OUT_OF_BAND_QUEUE_TYPE_PRESENT_NV :: + OutOfBandQueueTypeNV + #-} + +conNameOutOfBandQueueTypeNV :: String +conNameOutOfBandQueueTypeNV = "OutOfBandQueueTypeNV" + +enumPrefixOutOfBandQueueTypeNV :: String +enumPrefixOutOfBandQueueTypeNV = "OUT_OF_BAND_QUEUE_TYPE_" + +showTableOutOfBandQueueTypeNV :: [(OutOfBandQueueTypeNV, String)] +showTableOutOfBandQueueTypeNV = + [ + ( OUT_OF_BAND_QUEUE_TYPE_RENDER_NV + , "RENDER_NV" + ) + , + ( OUT_OF_BAND_QUEUE_TYPE_PRESENT_NV + , "PRESENT_NV" + ) + ] + +instance Show OutOfBandQueueTypeNV where + showsPrec = + enumShowsPrec + enumPrefixOutOfBandQueueTypeNV + showTableOutOfBandQueueTypeNV + conNameOutOfBandQueueTypeNV + (\(OutOfBandQueueTypeNV x) -> x) + (showsPrec 11) + +instance Read OutOfBandQueueTypeNV where + readPrec = + enumReadPrec + enumPrefixOutOfBandQueueTypeNV + showTableOutOfBandQueueTypeNV + conNameOutOfBandQueueTypeNV + OutOfBandQueueTypeNV + +type NV_LOW_LATENCY_2_SPEC_VERSION = 1 + +-- No documentation found for TopLevel "VK_NV_LOW_LATENCY_2_SPEC_VERSION" +pattern NV_LOW_LATENCY_2_SPEC_VERSION :: forall a . Integral a => a +pattern NV_LOW_LATENCY_2_SPEC_VERSION = 1 + + +type NV_LOW_LATENCY_2_EXTENSION_NAME = "VK_NV_low_latency2" + +-- No documentation found for TopLevel "VK_NV_LOW_LATENCY_2_EXTENSION_NAME" +pattern NV_LOW_LATENCY_2_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a +pattern NV_LOW_LATENCY_2_EXTENSION_NAME = "VK_NV_low_latency2" + diff --git a/src/Vulkan/Extensions/VK_NV_low_latency2.hs-boot b/src/Vulkan/Extensions/VK_NV_low_latency2.hs-boot new file mode 100644 index 000000000..f951d25b7 --- /dev/null +++ b/src/Vulkan/Extensions/VK_NV_low_latency2.hs-boot @@ -0,0 +1,247 @@ +{-# language CPP #-} +-- | = Name +-- +-- VK_NV_low_latency2 - device extension +-- +-- == VK_NV_low_latency2 +-- +-- [__Name String__] +-- @VK_NV_low_latency2@ +-- +-- [__Extension Type__] +-- Device extension +-- +-- [__Registered Extension Number__] +-- 506 +-- +-- [__Revision__] +-- 1 +-- +-- [__Ratification Status__] +-- Not ratified +-- +-- [__Extension and Version Dependencies__; __Contact__] +-- +-- - Charles Hansen +-- +-- +-- == Other Extension Metadata +-- +-- [__Last Modified Date__] +-- 2023-09-25 +-- +-- [__Contributors__] +-- +-- - Charles Hansen, NVIDIA +-- +-- - Liam Middlebrook, NVIDIA +-- +-- - Lionel Duc, NVIDIA +-- +-- - James Jones, NVIDIA +-- +-- - Eric Sullivan, NVIDIA +-- +-- == New Commands +-- +-- - 'getLatencyTimingsNV' +-- +-- - 'latencySleepNV' +-- +-- - 'queueNotifyOutOfBandNV' +-- +-- - 'setLatencyMarkerNV' +-- +-- - 'setLatencySleepModeNV' +-- +-- == New Structures +-- +-- - 'GetLatencyMarkerInfoNV' +-- +-- - 'LatencySleepInfoNV' +-- +-- - 'LatencySleepModeInfoNV' +-- +-- - 'LatencyTimingsFrameReportNV' +-- +-- - 'OutOfBandQueueTypeInfoNV' +-- +-- - 'SetLatencyMarkerInfoNV' +-- +-- - Extending 'Vulkan.Core10.Queue.SubmitInfo', +-- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.SubmitInfo2': +-- +-- - 'LatencySubmissionPresentIdNV' +-- +-- - Extending +-- 'Vulkan.Extensions.VK_KHR_get_surface_capabilities2.SurfaceCapabilities2KHR': +-- +-- - 'LatencySurfaceCapabilitiesNV' +-- +-- - Extending +-- 'Vulkan.Extensions.VK_KHR_swapchain.SwapchainCreateInfoKHR': +-- +-- - 'SwapchainLatencyCreateInfoNV' +-- +-- == New Enums +-- +-- - 'LatencyMarkerNV' +-- +-- - 'OutOfBandQueueTypeNV' +-- +-- == New Enum Constants +-- +-- - 'NV_LOW_LATENCY_2_EXTENSION_NAME' +-- +-- - 'NV_LOW_LATENCY_2_SPEC_VERSION' +-- +-- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType': +-- +-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_GET_LATENCY_MARKER_INFO_NV' +-- +-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_LATENCY_SLEEP_INFO_NV' +-- +-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_LATENCY_SLEEP_MODE_INFO_NV' +-- +-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_LATENCY_SUBMISSION_PRESENT_ID_NV' +-- +-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_LATENCY_SURFACE_CAPABILITIES_NV' +-- +-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_LATENCY_TIMINGS_FRAME_REPORT_NV' +-- +-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_OUT_OF_BAND_QUEUE_TYPE_INFO_NV' +-- +-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_SET_LATENCY_MARKER_INFO_NV' +-- +-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_SWAPCHAIN_LATENCY_CREATE_INFO_NV' +-- +-- == Description +-- +-- This extension gives applications timing suggestions on when to start +-- the recording of new frames to reduce the latency between input sampling +-- and frame presentation. Applications can accomplish this through the +-- extension by calling 'setLatencySleepModeNV' to allow the driver to pace +-- a given swapchain, then calling 'latencySleepNV' before input sampling +-- to delay the start of the CPU side work. Additional methods and +-- structures are provided to give insight into the latency pipeline of an +-- application through the latency markers. @VK_NV_low_latency@ provides +-- legacy support for applications that make use of the NVIDIA Reflex SDK +-- whereas new implementations should use the @VK_NV_low_latency2@ +-- extension. +-- +-- == Issues +-- +-- 1) How does Low Latency 2 work with applications that utilize device +-- groups? +-- +-- Low Latency 2 does not support device groups. +-- +-- == Version History +-- +-- - Revision 1, 2023-09-25 (Charles Hansen) +-- +-- - Internal revisions +-- +-- == See Also +-- +-- 'GetLatencyMarkerInfoNV', 'LatencyMarkerNV', 'LatencySleepInfoNV', +-- 'LatencySleepModeInfoNV', 'LatencySubmissionPresentIdNV', +-- 'LatencySurfaceCapabilitiesNV', 'LatencyTimingsFrameReportNV', +-- 'OutOfBandQueueTypeInfoNV', 'OutOfBandQueueTypeNV', +-- 'SetLatencyMarkerInfoNV', 'SwapchainLatencyCreateInfoNV', +-- 'getLatencyTimingsNV', 'latencySleepNV', 'queueNotifyOutOfBandNV', +-- 'setLatencyMarkerNV', 'setLatencySleepModeNV' +-- +-- == Document Notes +-- +-- For more information, see the +-- +-- +-- This page is a generated document. Fixes and changes should be made to +-- the generator scripts, not directly. +module Vulkan.Extensions.VK_NV_low_latency2 ( GetLatencyMarkerInfoNV + , LatencySleepInfoNV + , LatencySleepModeInfoNV + , LatencySubmissionPresentIdNV + , LatencySurfaceCapabilitiesNV + , LatencyTimingsFrameReportNV + , OutOfBandQueueTypeInfoNV + , SetLatencyMarkerInfoNV + , SwapchainLatencyCreateInfoNV + ) where + +import Vulkan.CStruct (FromCStruct) +import Vulkan.CStruct (ToCStruct) +import Data.Kind (Type) + +data GetLatencyMarkerInfoNV + +instance ToCStruct GetLatencyMarkerInfoNV +instance Show GetLatencyMarkerInfoNV + +instance FromCStruct GetLatencyMarkerInfoNV + + +data LatencySleepInfoNV + +instance ToCStruct LatencySleepInfoNV +instance Show LatencySleepInfoNV + +instance FromCStruct LatencySleepInfoNV + + +data LatencySleepModeInfoNV + +instance ToCStruct LatencySleepModeInfoNV +instance Show LatencySleepModeInfoNV + +instance FromCStruct LatencySleepModeInfoNV + + +data LatencySubmissionPresentIdNV + +instance ToCStruct LatencySubmissionPresentIdNV +instance Show LatencySubmissionPresentIdNV + +instance FromCStruct LatencySubmissionPresentIdNV + + +data LatencySurfaceCapabilitiesNV + +instance ToCStruct LatencySurfaceCapabilitiesNV +instance Show LatencySurfaceCapabilitiesNV + +instance FromCStruct LatencySurfaceCapabilitiesNV + + +data LatencyTimingsFrameReportNV + +instance ToCStruct LatencyTimingsFrameReportNV +instance Show LatencyTimingsFrameReportNV + +instance FromCStruct LatencyTimingsFrameReportNV + + +data OutOfBandQueueTypeInfoNV + +instance ToCStruct OutOfBandQueueTypeInfoNV +instance Show OutOfBandQueueTypeInfoNV + +instance FromCStruct OutOfBandQueueTypeInfoNV + + +data SetLatencyMarkerInfoNV + +instance ToCStruct SetLatencyMarkerInfoNV +instance Show SetLatencyMarkerInfoNV + +instance FromCStruct SetLatencyMarkerInfoNV + + +data SwapchainLatencyCreateInfoNV + +instance ToCStruct SwapchainLatencyCreateInfoNV +instance Show SwapchainLatencyCreateInfoNV + +instance FromCStruct SwapchainLatencyCreateInfoNV + diff --git a/src/Vulkan/Extensions/VK_NV_memory_decompression.hs b/src/Vulkan/Extensions/VK_NV_memory_decompression.hs index a57451a6e..ebd6649b7 100644 --- a/src/Vulkan/Extensions/VK_NV_memory_decompression.hs +++ b/src/Vulkan/Extensions/VK_NV_memory_decompression.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- and diff --git a/src/Vulkan/Extensions/VK_NV_memory_decompression.hs-boot b/src/Vulkan/Extensions/VK_NV_memory_decompression.hs-boot index 932937aba..d601ad5f0 100644 --- a/src/Vulkan/Extensions/VK_NV_memory_decompression.hs-boot +++ b/src/Vulkan/Extensions/VK_NV_memory_decompression.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- and diff --git a/src/Vulkan/Extensions/VK_NV_mesh_shader.hs b/src/Vulkan/Extensions/VK_NV_mesh_shader.hs index 226a91911..4fe7d9f92 100644 --- a/src/Vulkan/Extensions/VK_NV_mesh_shader.hs +++ b/src/Vulkan/Extensions/VK_NV_mesh_shader.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- @@ -391,6 +394,16 @@ foreign import ccall -- /must/ contain -- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT' -- +-- - #VUID-vkCmdDrawMeshTasksNV-None-02693# If the +-- +-- extension is not enabled and any 'Vulkan.Core10.Handles.ImageView' +-- is sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a +-- result of this command, it /must/ not have a +-- 'Vulkan.Core10.Enums.ImageViewType.ImageViewType' of +-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_3D', +-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE', or +-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE_ARRAY' +-- -- - #VUID-vkCmdDrawMeshTasksNV-filterCubic-02694# Any -- 'Vulkan.Core10.Handles.ImageView' being sampled with -- 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a result of this @@ -416,6 +429,33 @@ foreign import ccall -- returned by -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceImageFormatProperties2' -- +-- - #VUID-vkCmdDrawMeshTasksNV-cubicRangeClamp-09212# If the +-- +-- feature is not enabled, then any 'Vulkan.Core10.Handles.ImageView' +-- being sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as +-- a result of this command +-- +-- [/must/ not have a 'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo'] +-- @reductionMode@ equal to +-- 'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM' +-- +-- - #VUID-vkCmdDrawMeshTasksNV-reductionMode-09213# Any +-- 'Vulkan.Core10.Handles.ImageView' being sampled with a +-- 'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo'::@reductionMode@ +-- equal to +-- 'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM' +-- as a result of this command /must/ sample with +-- 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' +-- +-- - #VUID-vkCmdDrawMeshTasksNV-selectableCubicWeights-09214# If the +-- +-- feature is not enabled, then any 'Vulkan.Core10.Handles.ImageView' +-- being sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as +-- a result of this command /must/ have +-- 'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.SamplerCubicWeightsCreateInfoQCOM'::@cubicWeights@ +-- equal to +-- 'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM' +-- -- - #VUID-vkCmdDrawMeshTasksNV-flags-02696# Any -- 'Vulkan.Core10.Handles.Image' created with a -- 'Vulkan.Core10.Image.ImageCreateInfo'::@flags@ containing @@ -457,11 +497,9 @@ foreign import ccall -- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT' -- -- - #VUID-vkCmdDrawMeshTasksNV-None-08600# For each set /n/ that is --- statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to the --- pipeline bind point used by this command, or by any of the --- 'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages --- corresponding to the pipeline bind point used by this command, a --- descriptor set /must/ have been bound to /n/ at the same pipeline +-- statically used by +-- , +-- a descriptor set /must/ have been bound to /n/ at the same pipeline -- bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is -- compatible for set /n/, with the -- 'Vulkan.Core10.Handles.PipelineLayout' or @@ -471,12 +509,10 @@ foreign import ccall -- -- -- - #VUID-vkCmdDrawMeshTasksNV-None-08601# For each push constant that --- is statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to --- the pipeline bind point used by this command, or by any of the --- 'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages --- corresponding to the pipeline bind point used by this command, a --- push constant value /must/ have been set for the same pipeline bind --- point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is +-- is statically used by +-- , +-- a push constant value /must/ have been set for the same pipeline +-- bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is -- compatible for push constants, with the -- 'Vulkan.Core10.Handles.PipelineLayout' or -- 'Vulkan.Core10.Handles.DescriptorSetLayout' and @@ -488,12 +524,10 @@ foreign import ccall -- - #VUID-vkCmdDrawMeshTasksNV-maintenance4-08602# If the -- -- feature is not enabled, then for each push constant that is --- statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to the --- pipeline bind point used by this command, or by any of the --- 'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages --- corresponding to the pipeline bind point used by this command, a --- push constant value /must/ have been set for the same pipeline bind --- point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is +-- statically used by +-- , +-- a push constant value /must/ have been set for the same pipeline +-- bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is -- compatible for push constants, with the -- 'Vulkan.Core10.Handles.PipelineLayout' or -- 'Vulkan.Core10.Handles.DescriptorSetLayout' and @@ -656,34 +690,25 @@ foreign import ccall -- buffer as specified in the descriptor set bound to the same pipeline -- bind point -- --- - #VUID-vkCmdDrawMeshTasksNV-commandBuffer-08614# If @commandBuffer@ +-- - #VUID-vkCmdDrawMeshTasksNV-commandBuffer-02707# If @commandBuffer@ -- is an unprotected command buffer and -- --- is not supported, any resource accessed by the --- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind --- point used by this command or any --- 'Vulkan.Extensions.Handles.ShaderEXT' object bound to a stage --- corresponding to the pipeline bind point used by this command /must/ --- not be a protected resource --- --- - #VUID-vkCmdDrawMeshTasksNV-None-08615# If the --- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind --- point used by this command or any --- 'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding --- to the pipeline bind point used by this command accesses a --- 'Vulkan.Core10.Handles.Sampler' or 'Vulkan.Core10.Handles.ImageView' --- object that enables +-- is not supported, any resource accessed by +-- +-- /must/ not be a protected resource +-- +-- - #VUID-vkCmdDrawMeshTasksNV-None-06550# If +-- +-- accesses a 'Vulkan.Core10.Handles.Sampler' or +-- 'Vulkan.Core10.Handles.ImageView' object that enables -- , -- that object /must/ only be used with @OpImageSample*@ or -- @OpImageSparseSample*@ instructions -- --- - #VUID-vkCmdDrawMeshTasksNV-ConstOffset-08616# If the --- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind --- point used by this command or any --- 'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding --- to the pipeline bind point used by this command accesses a --- 'Vulkan.Core10.Handles.Sampler' or 'Vulkan.Core10.Handles.ImageView' --- object that enables +-- - #VUID-vkCmdDrawMeshTasksNV-ConstOffset-06551# If +-- +-- accesses a 'Vulkan.Core10.Handles.Sampler' or +-- 'Vulkan.Core10.Handles.ImageView' object that enables -- , -- that object /must/ not use the @ConstOffset@ and @Offset@ operands -- @@ -695,17 +720,23 @@ foreign import ccall -- -- - #VUID-vkCmdDrawMeshTasksNV-format-07753# If a -- 'Vulkan.Core10.Handles.ImageView' is accessed as a result of this --- command, then the image view’s @format@ /must/ match the numeric --- format from the @Sampled@ @Type@ operand of the @OpTypeImage@ as --- described in the SPIR-V Sampled Type column of the --- --- table --- --- - #VUID-vkCmdDrawMeshTasksNV-None-04115# If a --- 'Vulkan.Core10.Handles.ImageView' is accessed using @OpImageWrite@ --- as a result of this command, then the @Type@ of the @Texel@ operand --- of that instruction /must/ have at least as many components as the --- image view’s format +-- command, then the +-- +-- of the image view’s @format@ and the @Sampled@ @Type@ operand of the +-- @OpTypeImage@ /must/ match +-- +-- - #VUID-vkCmdDrawMeshTasksNV-OpImageWrite-08795# If a +-- 'Vulkan.Core10.Handles.ImageView' created with a format other than +-- 'Vulkan.Core10.Enums.Format.FORMAT_A8_UNORM_KHR' is accessed using +-- @OpImageWrite@ as a result of this command, then the @Type@ of the +-- @Texel@ operand of that instruction /must/ have at least as many +-- components as the image view’s format +-- +-- - #VUID-vkCmdDrawMeshTasksNV-OpImageWrite-08796# If a +-- 'Vulkan.Core10.Handles.ImageView' created with the format +-- 'Vulkan.Core10.Enums.Format.FORMAT_A8_UNORM_KHR' is accessed using +-- @OpImageWrite@ as a result of this command, then the @Type@ of the +-- @Texel@ operand of that instruction /must/ have four components -- -- - #VUID-vkCmdDrawMeshTasksNV-OpImageWrite-04469# If a -- 'Vulkan.Core10.Handles.BufferView' is accessed using @OpImageWrite@ @@ -807,6 +838,8 @@ foreign import ccall -- -- - #VUID-vkCmdDrawMeshTasksNV-OpImageWeightedSampleQCOM-06977# If -- @OpImageWeightedSampleQCOM@, @OpImageBoxFilterQCOM@, +-- @OpImageBlockMatchWindowSSDQCOM@, @OpImageBlockMatchWindowSADQCOM@, +-- @OpImageBlockMatchGatherSSDQCOM@, @OpImageBlockMatchGatherSADQCOM@, -- @OpImageBlockMatchSSDQCOM@, or @OpImageBlockMatchSADQCOM@ uses a -- 'Vulkan.Core10.Handles.Sampler' as a result of this command, then -- the sampler /must/ have been created with @@ -814,12 +847,35 @@ foreign import ccall -- -- - #VUID-vkCmdDrawMeshTasksNV-OpImageWeightedSampleQCOM-06978# If any -- command other than @OpImageWeightedSampleQCOM@, --- @OpImageBoxFilterQCOM@, @OpImageBlockMatchSSDQCOM@, or +-- @OpImageBoxFilterQCOM@, @OpImageBlockMatchWindowSSDQCOM@, +-- @OpImageBlockMatchWindowSADQCOM@, @OpImageBlockMatchGatherSSDQCOM@, +-- @OpImageBlockMatchGatherSADQCOM@, @OpImageBlockMatchSSDQCOM@, or -- @OpImageBlockMatchSADQCOM@ uses a 'Vulkan.Core10.Handles.Sampler' as -- a result of this command, then the sampler /must/ not have been -- created with -- 'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM' -- +-- - #VUID-vkCmdDrawMeshTasksNV-OpImageBlockMatchWindow-09215# If a +-- @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@ +-- instruction is used to read from an +-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then +-- the image view’s +-- +-- /must/ contain +-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM' +-- +-- - #VUID-vkCmdDrawMeshTasksNV-OpImageBlockMatchWindow-09216# If a +-- @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@ +-- instruction is used to read from an +-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then +-- the image view’s format /must/ be a single-component format. +-- +-- - #VUID-vkCmdDrawMeshTasksNV-OpImageBlockMatchWindow-09217# If a +-- @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@ +-- read from a reference image as result of this command, then the +-- specified reference coordinates /must/ not fail +-- +-- -- - #VUID-vkCmdDrawMeshTasksNV-None-07288# Any shader invocation -- executed by this command /must/ -- @@ -864,15 +920,86 @@ foreign import ccall -- not be written in any way other than as an attachment by this -- command -- --- - #VUID-vkCmdDrawMeshTasksNV-None-06538# If any recorded command in --- the current subpass will write to an image subresource as an --- attachment, this command /must/ not read from the memory backing --- that image subresource in any other way than as an attachment --- --- - #VUID-vkCmdDrawMeshTasksNV-None-06539# If any recorded command in --- the current subpass will read from an image subresource used as an --- attachment in any way other than as an attachment, this command --- /must/ not write to that image subresource as an attachment +-- - #VUID-vkCmdDrawMeshTasksNV-None-09000# If a color attachment is +-- written by any prior command in this subpass or by the load, store, +-- or resolve operations for this subpass, it is not in the +-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT' +-- image layout, and either: +-- +-- - the +-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT' +-- is set on the currently bound pipeline or +-- +-- - the last call to +-- 'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT' +-- included +-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT' +-- and +-- +-- - there is no currently bound graphics pipeline or +-- +-- - the currently bound graphics pipeline was created with +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT' +-- it /must/ not be accessed in any way other than as an +-- attachment by this command +-- +-- - #VUID-vkCmdDrawMeshTasksNV-None-09001# If a depth attachment is +-- written by any prior command in this subpass or by the load, store, +-- or resolve operations for this subpass, it is not in the +-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT' +-- image layout, and either: +-- +-- - the +-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT' +-- is set on the currently bound pipeline or +-- +-- - the last call to +-- 'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT' +-- included +-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_DEPTH_BIT' +-- and +-- +-- - there is no currently bound graphics pipeline or +-- +-- - the currently bound graphics pipeline was created with +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT' +-- it /must/ not be accessed in any way other than as an +-- attachment by this command +-- +-- - #VUID-vkCmdDrawMeshTasksNV-None-09002# If a stencil attachment is +-- written by any prior command in this subpass or by the load, store, +-- or resolve operations for this subpass, it is not in the +-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT' +-- image layout, and either: +-- +-- - the +-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT' +-- is set on the currently bound pipeline or +-- +-- - the last call to +-- 'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT' +-- included +-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT' +-- and +-- +-- - there is no currently bound graphics pipeline or +-- +-- - the currently bound graphics pipeline was created with +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT' +-- it /must/ not be accessed in any way other than as an +-- attachment by this command +-- +-- - #VUID-vkCmdDrawMeshTasksNV-None-09003# If an attachment is written +-- by any prior command in this subpass or by the load, store, or +-- resolve operations for this subpass, it /must/ not be accessed in +-- any way other than as an attachment, storage image, or sampled image +-- by this command +-- +-- - #VUID-vkCmdDrawMeshTasksNV-None-06539# If any previously recorded +-- command in the current subpass accessed an image subresource used as +-- an attachment in this subpass in any way other than as an +-- attachment, this command /must/ not write to that image subresource +-- as an attachment -- -- - #VUID-vkCmdDrawMeshTasksNV-None-06886# If the current render pass -- instance uses a depth\/stencil attachment with a read-only layout @@ -942,18 +1069,23 @@ foreign import ccall -- pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS' dynamic -- state enabled then --- 'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBias' /must/ have --- been called in the current command buffer prior to this drawing --- command +-- 'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBias' or +-- 'Vulkan.Extensions.VK_EXT_depth_bias_control.cmdSetDepthBias2EXT' +-- /must/ have been called in the current command buffer prior to this +-- drawing command -- -- - #VUID-vkCmdDrawMeshTasksNV-None-08620# If a shader object is bound -- to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnable' -- in the current command buffer set @depthBiasEnable@ to -- 'Vulkan.Core10.FundamentalTypes.TRUE', --- 'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBias' /must/ have --- been called in the current command buffer prior to this drawing --- command +-- 'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBias' or +-- 'Vulkan.Extensions.VK_EXT_depth_bias_control.cmdSetDepthBias2EXT' +-- /must/ have been called in the current command buffer prior to this +-- drawing command -- -- - #VUID-vkCmdDrawMeshTasksNV-None-07835# If the bound graphics -- pipeline state was created with the @@ -976,7 +1108,7 @@ foreign import ccall -- the most recent call to -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT' -- in the current command buffer set the same element of --- @pColorBlendEquations@ to an +-- @pColorBlendEquations@ to a -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.ColorBlendEquationEXT' -- structure with any 'Vulkan.Core10.Enums.BlendFactor.BlendFactor' -- member with a value of @@ -991,16 +1123,20 @@ foreign import ccall -- - #VUID-vkCmdDrawMeshTasksNV-None-07836# If the bound graphics -- pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS' --- dynamic state enabled then +-- dynamic state enabled, and if the current @depthBoundsTestEnable@ +-- state is 'Vulkan.Core10.FundamentalTypes.TRUE', then -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBounds' /must/ have -- been called in the current command buffer prior to this drawing -- command -- -- - #VUID-vkCmdDrawMeshTasksNV-None-08622# If a shader object is bound -- to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable' -- in the current command buffer set @depthBoundsTestEnable@ to --- 'Vulkan.Core10.FundamentalTypes.TRUE', +-- 'Vulkan.Core10.FundamentalTypes.TRUE', then -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBounds' /must/ have -- been called in the current command buffer prior to this drawing -- command @@ -1008,7 +1144,8 @@ foreign import ccall -- - #VUID-vkCmdDrawMeshTasksNV-None-07837# If the bound graphics -- pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_COMPARE_MASK' --- dynamic state enabled then +-- dynamic state enabled, and if the current @stencilTestEnable@ state +-- is 'Vulkan.Core10.FundamentalTypes.TRUE', then -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilCompareMask' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -1025,7 +1162,8 @@ foreign import ccall -- - #VUID-vkCmdDrawMeshTasksNV-None-07838# If the bound graphics -- pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_WRITE_MASK' --- dynamic state enabled then +-- dynamic state enabled, and if the current @stencilTestEnable@ state +-- is 'Vulkan.Core10.FundamentalTypes.TRUE', then -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilWriteMask' /must/ -- have been called in the current command buffer prior to this drawing -- command @@ -1042,7 +1180,8 @@ foreign import ccall -- - #VUID-vkCmdDrawMeshTasksNV-None-07839# If the bound graphics -- pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_REFERENCE' --- dynamic state enabled then +-- dynamic state enabled, and if the current @stencilTestEnable@ state +-- is 'Vulkan.Core10.FundamentalTypes.TRUE', then -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilReference' /must/ -- have been called in the current command buffer prior to this drawing -- command @@ -1082,7 +1221,10 @@ foreign import ccall -- to any graphics stage, and the most recent call to -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT' -- in the current command buffer set @sampleLocationsEnable@ to --- 'Vulkan.Core10.FundamentalTypes.TRUE', +-- 'Vulkan.Core10.FundamentalTypes.TRUE', and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -1106,7 +1248,10 @@ foreign import ccall -- drawing command -- -- - #VUID-vkCmdDrawMeshTasksNV-None-08627# If a shader object is bound --- to any graphics stage, +-- to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetCullMode' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -1120,7 +1265,10 @@ foreign import ccall -- drawing command -- -- - #VUID-vkCmdDrawMeshTasksNV-None-08628# If a shader object is bound --- to any graphics stage, +-- to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetFrontFace' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -1134,7 +1282,10 @@ foreign import ccall -- drawing command -- -- - #VUID-vkCmdDrawMeshTasksNV-None-08629# If a shader object is bound --- to any graphics stage, +-- to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -1148,7 +1299,10 @@ foreign import ccall -- drawing command -- -- - #VUID-vkCmdDrawMeshTasksNV-None-08630# If a shader object is bound --- to any graphics stage, +-- to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -1163,9 +1317,12 @@ foreign import ccall -- -- - #VUID-vkCmdDrawMeshTasksNV-None-08631# If a shader object is bound -- to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable' -- in the current command buffer set @depthTestEnable@ to --- 'Vulkan.Core10.FundamentalTypes.TRUE', +-- 'Vulkan.Core10.FundamentalTypes.TRUE', then -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthCompareOp' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -1181,7 +1338,10 @@ foreign import ccall -- - #VUID-vkCmdDrawMeshTasksNV-None-08632# If a shader object is bound -- to any graphics stage, and the -- --- feature is enabled, the +-- feature is enabled, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then the -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -1301,6 +1461,13 @@ foreign import ccall -- the last call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- +-- - #VUID-vkCmdDrawMeshTasksNV-None-09232# If a shader object is bound +-- to any graphics stage, and the @VK_NV_clip_space_w_scaling@ +-- extension is enabled on the device, then +-- 'Vulkan.Extensions.VK_NV_clip_space_w_scaling.cmdSetViewportWScalingNV' +-- must have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdDrawMeshTasksNV-None-08636# If a shader object is bound -- to any graphics stage, and the @VK_NV_clip_space_w_scaling@ -- extension is enabled on the device, then the @viewportCount@ @@ -1334,6 +1501,30 @@ foreign import ccall -- the last call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- +-- - #VUID-vkCmdDrawMeshTasksNV-shadingRateImage-09233# If the +-- +-- feature is enabled, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set rasterizerDiscardEnable to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then +-- 'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetCoarseSampleOrderNV' +-- must have been called in the current command buffer prior to this +-- drawing command +-- +-- - #VUID-vkCmdDrawMeshTasksNV-shadingRateImage-09234# If a shader +-- object is bound to any graphics stage, and the +-- +-- feature is enabled on the device, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set rasterizerDiscardEnable to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetShadingRateImageEnableNV' +-- in the current command buffer set shadingRateImageEnable to +-- 'Vulkan.Core10.FundamentalTypes.TRUE', then +-- 'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetViewportShadingRatePaletteNV' +-- must have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdDrawMeshTasksNV-None-08637# If a shader object is bound -- to any graphics stage, and the -- @@ -1386,6 +1577,14 @@ foreign import ccall -- /must/ have been called in the current command buffer prior to this -- drawing command -- +-- - #VUID-vkCmdDrawMeshTasksNV-exclusiveScissor-09235# If a shader +-- object is bound to any graphics stage, and the +-- +-- feature is enabled, then +-- 'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorEnableNV' +-- must have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdDrawMeshTasksNV-None-08638# If a shader object is bound -- to any graphics stage, and the most recent call to -- 'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorEnableNV' @@ -1437,7 +1636,9 @@ foreign import ccall -- 'Vulkan.Core10.Enums.LogicOp.LogicOp' value -- -- - #VUID-vkCmdDrawMeshTasksNV-None-08641# If a shader object is bound --- to any graphics stage, and the +-- to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage, and the -- -- feature is enabled on the device, and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' @@ -1522,6 +1723,11 @@ foreign import ccall -- to be the same as the number of samples for the current render pass -- color and\/or depth\/stencil attachments -- +-- - #VUID-vkCmdDrawMeshTasksNV-None-08876# If a shader object is bound +-- to any graphics stage, the current render pass instance /must/ have +-- been begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' +-- -- - #VUID-vkCmdDrawMeshTasksNV-imageView-06172# If the current render -- pass instance was begun with -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', @@ -1594,8 +1800,11 @@ foreign import ccall -- equal to -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ -- --- - #VUID-vkCmdDrawMeshTasksNV-colorAttachmentCount-06180# If the --- current render pass instance was begun with +-- - #VUID-vkCmdDrawMeshTasksNV-dynamicRenderingUnusedAttachments-08910# +-- If the +-- +-- feature is not enabled, and the current render pass instance was +-- begun with -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' -- and -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ @@ -1608,8 +1817,32 @@ foreign import ccall -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@ -- used to create the currently bound graphics pipeline -- --- - #VUID-vkCmdDrawMeshTasksNV-colorAttachmentCount-07616# If the --- current render pass instance was begun with +-- - #VUID-vkCmdDrawMeshTasksNV-dynamicRenderingUnusedAttachments-08911# +-- If the +-- +-- feature is enabled, and the current render pass instance was begun +-- with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' +-- and +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ +-- greater than @0@, then each element of the +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@ +-- array with a @imageView@ not equal to +-- 'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created +-- with a 'Vulkan.Core10.Enums.Format.Format' equal to the +-- corresponding element of +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@ +-- used to create the currently bound graphics pipeline, or the +-- corresponding element of +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@, +-- if it exists, /must/ be +-- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' +-- +-- - #VUID-vkCmdDrawMeshTasksNV-dynamicRenderingUnusedAttachments-08912# +-- If the +-- +-- feature is not enabled, and the current render pass instance was +-- begun with -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' -- and -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ @@ -1622,6 +1855,132 @@ foreign import ccall -- used to create the currently bound pipeline equal to -- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' -- +-- - #VUID-vkCmdDrawMeshTasksNV-colorAttachmentCount-09362# If the +-- current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- with a +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ +-- equal to @1@, there is no shader object bound to any graphics stage, +-- and a color attachment with a resolve mode of +-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID', +-- each element of the +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@ +-- array with a @resolveImageView@ not equal to +-- 'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created +-- with an image created with a +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- value equal to the +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- value used to create the currently bound graphics pipeline +-- +-- - #VUID-vkCmdDrawMeshTasksNV-None-09363# If there is no shader object +-- bound to any graphics stage, the current render pass instance was +-- begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' +-- and a +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ +-- equal to @1@, and a color attachment with a resolve mode of +-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID', +-- each element of the +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@ +-- array with a @imageView@ not equal to +-- 'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created +-- with an image created with a +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- value equal to the +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- value used to create the currently bound graphics pipeline +-- +-- - #VUID-vkCmdDrawMeshTasksNV-None-09364# If the current render pass +-- instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- there is no shader object bound to any graphics stage, and the +-- currently bound graphics pipeline was created with a non-zero +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- value and with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT' +-- dynamic state enabled, then +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT' +-- /must/ have set the blend enable to +-- 'Vulkan.Core10.FundamentalTypes.FALSE' prior to this drawing command +-- +-- - #VUID-vkCmdDrawMeshTasksNV-None-09365# If the current render pass +-- instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- there is no shader object bound to any graphics stage, and the +-- currently bound graphics pipeline was created with a non-zero +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- value and with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT' +-- dynamic state enabled, then +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT' +-- /must/ have set @rasterizationSamples@ to +-- 'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT' prior +-- to this drawing command +-- +-- - #VUID-vkCmdDrawMeshTasksNV-None-09366# If there is a shader object +-- bound to any graphics stage, and the current render pass includes a +-- color attachment that uses the +-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID' +-- resolve mode, then +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT' +-- /must/ have set blend enable to +-- 'Vulkan.Core10.FundamentalTypes.FALSE' prior to this drawing command +-- +-- - #VUID-vkCmdDrawMeshTasksNV-rasterizationSamples-09367# If there is a +-- shader object bound to any graphics stage, and the current render +-- pass includes a color attachment that uses the +-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID' +-- resolve mode, then +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT' +-- /must/ have set @rasterizationSamples@ to +-- 'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT' prior +-- to this drawing command +-- +-- - #VUID-vkCmdDrawMeshTasksNV-None-09368# If the current render pass +-- instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- there is no shader object bound to any graphics stage, and the +-- currently bound graphics pipeline was created with a non-zero +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- value and with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR' +-- dynamic state enabled, then +-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR' +-- /must/ have set @pFragmentSize->width@ to @1@ prior to this drawing +-- command +-- +-- - #VUID-vkCmdDrawMeshTasksNV-None-09369# If the current render pass +-- instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- there is no shader object bound to any graphics stage, and the +-- currently bound graphics pipeline was created with a non-zero +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- value and with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR' +-- dynamic state enabled, then +-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR' +-- /must/ have set @pFragmentSize->height@ to @1@ prior to this drawing +-- command +-- +-- - #VUID-vkCmdDrawMeshTasksNV-pFragmentSize-09370# If there is a shader +-- object bound to any graphics stage, and the current render pass +-- includes a color attachment that uses the +-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID' +-- resolve mode, then +-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR' +-- /must/ have set @pFragmentSize->width@ to @1@ prior to this drawing +-- command +-- +-- - #VUID-vkCmdDrawMeshTasksNV-pFragmentSize-09371# If there is a shader +-- object bound to any graphics stage, and the current render pass +-- includes a color attachment that uses the +-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID' +-- resolve mode, then +-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR' +-- /must/ have set @pFragmentSize->height@ to @1@ prior to this drawing +-- command +-- -- - #VUID-vkCmdDrawMeshTasksNV-None-07749# If the bound graphics -- pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT' @@ -1633,7 +1992,9 @@ foreign import ccall -- - #VUID-vkCmdDrawMeshTasksNV-None-08646# If the -- -- feature is enabled on the device, and a shader object is bound to --- the fragment stage, and the most recent call to +-- the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage, and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' -- in the current command buffer set @rasterizerDiscardEnable@ to -- 'Vulkan.Core10.FundamentalTypes.FALSE', then @@ -1653,7 +2014,9 @@ foreign import ccall -- - #VUID-vkCmdDrawMeshTasksNV-None-08647# If the -- -- feature is enabled on the device, and a shader object is bound to --- the fragment stage, and the most recent call to +-- the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage, and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' -- in the current command buffer set @rasterizerDiscardEnable@ to -- 'Vulkan.Core10.FundamentalTypes.FALSE', then the @attachmentCount@ @@ -1679,6 +2042,16 @@ foreign import ccall -- /must/ have been called in the current command buffer prior to this -- drawing command -- +-- - #VUID-vkCmdDrawMeshTasksNV-rasterizerDiscardEnable-09236# If the +-- @VK_EXT_discard_rectangles@ extension is enabled, and a shader +-- object is bound to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then +-- 'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEXT' +-- /must/ have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdDrawMeshTasksNV-None-08648# If the -- @VK_EXT_discard_rectangles@ extension is enabled, and a shader -- object is bound to any graphics stage, and the most recent call to @@ -1710,10 +2083,24 @@ foreign import ccall -- /must/ have been called in the current command buffer prior to this -- drawing command -- --- - #VUID-vkCmdDrawMeshTasksNV-pDepthAttachment-06181# If the current --- render pass instance was begun with --- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' --- and +-- - #VUID-vkCmdDrawMeshTasksNV-dynamicRenderingUnusedAttachments-08913# +-- If the current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- the +-- +-- feature is not enabled, and +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@ +-- was 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@ +-- used to create the currently bound graphics pipeline /must/ be equal +-- to 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' +-- +-- - #VUID-vkCmdDrawMeshTasksNV-dynamicRenderingUnusedAttachments-08914# +-- If current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- the +-- +-- feature is not enabled, and -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@ -- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@ @@ -1721,20 +2108,39 @@ foreign import ccall -- to the 'Vulkan.Core10.Enums.Format.Format' used to create -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@ -- --- - #VUID-vkCmdDrawMeshTasksNV-pDepthAttachment-07617# If the current --- render pass instance was begun with --- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' --- and +-- - #VUID-vkCmdDrawMeshTasksNV-dynamicRenderingUnusedAttachments-08915# +-- If the current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- the +-- +-- feature is enabled, -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@ --- was 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of +-- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the value of -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@ +-- used to create the currently bound graphics pipeline was not equal +-- to the 'Vulkan.Core10.Enums.Format.Format' used to create +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@, +-- the value of the format /must/ be +-- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' +-- +-- - #VUID-vkCmdDrawMeshTasksNV-dynamicRenderingUnusedAttachments-08916# +-- If the current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- the +-- +-- feature is not enabled, and +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@ +-- was 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@ -- used to create the currently bound graphics pipeline /must/ be equal -- to 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' -- --- - #VUID-vkCmdDrawMeshTasksNV-pStencilAttachment-06182# If the current --- render pass instance was begun with --- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' --- and +-- - #VUID-vkCmdDrawMeshTasksNV-dynamicRenderingUnusedAttachments-08917# +-- If current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- the +-- +-- feature is not enabled, and -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@ -- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@ @@ -1742,15 +2148,20 @@ foreign import ccall -- to the 'Vulkan.Core10.Enums.Format.Format' used to create -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@ -- --- - #VUID-vkCmdDrawMeshTasksNV-pStencilAttachment-07618# If the current --- render pass instance was begun with --- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' --- and +-- - #VUID-vkCmdDrawMeshTasksNV-dynamicRenderingUnusedAttachments-08918# +-- If the current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- the +-- +-- feature is enabled, -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@ --- was 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of +-- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the value of -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@ --- used to create the currently bound graphics pipeline /must/ be equal --- to 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' +-- used to create the currently bound graphics pipeline was not equal +-- to the 'Vulkan.Core10.Enums.Format.Format' used to create +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@, +-- the value of the format /must/ be +-- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' -- -- - #VUID-vkCmdDrawMeshTasksNV-imageView-06183# If the current render -- pass instance was begun with @@ -1897,17 +2308,51 @@ foreign import ccall -- 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@renderPass@ -- equal to 'Vulkan.Core10.APIConstants.NULL_HANDLE' -- --- - #VUID-vkCmdDrawMeshTasksNV-primitivesGeneratedQueryWithRasterizerDiscard-06708# --- If the --- --- feature is not enabled and the --- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PRIMITIVES_GENERATED_EXT' --- query is active, --- --- /must/ not be enabled +-- - #VUID-vkCmdDrawMeshTasksNV-pColorAttachments-08963# If the current +-- render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- there is a graphics pipeline bound with a fragment shader that +-- statically writes to a color attachment, the color write mask is not +-- zero, color writes are enabled, and the corresponding element of the +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments->imageView@ +-- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', then the +-- corresponding element of +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@ +-- used to create the pipeline /must/ not be +-- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' -- --- - #VUID-vkCmdDrawMeshTasksNV-primitivesGeneratedQueryWithNonZeroStreams-06709# --- If the +-- - #VUID-vkCmdDrawMeshTasksNV-pDepthAttachment-08964# If the current +-- render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- there is a graphics pipeline bound, depth test is enabled, depth +-- write is enabled, and the +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@ +-- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', then the +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@ +-- used to create the pipeline /must/ not be +-- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' +-- +-- - #VUID-vkCmdDrawMeshTasksNV-pStencilAttachment-08965# If the current +-- render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- there is a graphics pipeline bound, stencil test is enabled and the +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@ +-- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', then the +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@ +-- used to create the pipeline /must/ not be +-- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' +-- +-- - #VUID-vkCmdDrawMeshTasksNV-primitivesGeneratedQueryWithRasterizerDiscard-06708# +-- If the +-- +-- feature is not enabled and the +-- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PRIMITIVES_GENERATED_EXT' +-- query is active, +-- +-- /must/ not be enabled +-- +-- - #VUID-vkCmdDrawMeshTasksNV-primitivesGeneratedQueryWithNonZeroStreams-06709# +-- If the -- -- feature is not enabled and the -- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PRIMITIVES_GENERATED_EXT' @@ -1923,6 +2368,22 @@ foreign import ccall -- /must/ have been called in the current command buffer prior to this -- drawing command -- +-- - #VUID-vkCmdDrawMeshTasksNV-None-07620# If the bound graphics +-- pipeline state was created with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT' +-- dynamic state enabled then +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClampEnableEXT' +-- /must/ have been called in the current command buffer prior to this +-- drawing command +-- +-- - #VUID-vkCmdDrawMeshTasksNV-None-09237# If a shader object is bound +-- to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT' +-- stage, then +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetTessellationDomainOriginEXT' +-- /must/ have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdDrawMeshTasksNV-None-08650# If the -- -- feature is enabled, and a shader object is bound to any graphics @@ -1993,6 +2454,17 @@ foreign import ccall -- /must/ have been called in the current command buffer prior to this -- drawing command -- +-- - #VUID-vkCmdDrawMeshTasksNV-alphaToCoverageEnable-08919# If the bound +-- graphics pipeline state was created with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT' +-- dynamic state enabled, and @alphaToCoverageEnable@ was +-- 'Vulkan.Core10.FundamentalTypes.TRUE' in the last call to +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT', +-- then the +-- +-- /must/ contain a variable for the alpha @Component@ word in +-- @Location@ 0 at @Index@ 0 +-- -- - #VUID-vkCmdDrawMeshTasksNV-None-08654# If a shader object is bound -- to any graphics stage, and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' @@ -2002,6 +2474,15 @@ foreign import ccall -- /must/ have been called in the current command buffer prior to this -- drawing command -- +-- - #VUID-vkCmdDrawMeshTasksNV-alphaToCoverageEnable-08920# If a shader +-- object is bound to any graphics stage, and the most recent call to +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT' +-- in the current command buffer set @alphaToCoverageEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.TRUE', then the +-- +-- /must/ contain a variable for the alpha @Component@ word in +-- @Location@ 0 at @Index@ 0 +-- -- - #VUID-vkCmdDrawMeshTasksNV-None-07625# If the bound graphics -- pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT' @@ -2031,7 +2512,8 @@ foreign import ccall -- -- - #VUID-vkCmdDrawMeshTasksNV-None-08656# If the -- --- feature is enabled, and a shader object is bound to any graphics +-- feature is enabled, and a shader object is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' -- stage, and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' -- in the current command buffer set @rasterizerDiscardEnable@ to @@ -2049,7 +2531,9 @@ foreign import ccall -- drawing command -- -- - #VUID-vkCmdDrawMeshTasksNV-None-08657# If a shader object is bound --- to any graphics stage, and the most recent call to +-- to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage, and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' -- in the current command buffer set @rasterizerDiscardEnable@ to -- 'Vulkan.Core10.FundamentalTypes.FALSE', then @@ -2086,7 +2570,9 @@ foreign import ccall -- drawing command -- -- - #VUID-vkCmdDrawMeshTasksNV-None-08659# If a shader object is bound --- to any graphics stage, and the most recent call to +-- to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage, and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' -- in the current command buffer set @rasterizerDiscardEnable@ to -- 'Vulkan.Core10.FundamentalTypes.FALSE', then @@ -2104,7 +2590,8 @@ foreign import ccall -- -- - #VUID-vkCmdDrawMeshTasksNV-None-08660# If the -- --- feature is enabled, and a shader object is bound to the geometry +-- feature is enabled, and a shader object is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT' -- stage, then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationStreamEXT' -- /must/ have been called in the current command buffer prior to this @@ -2204,7 +2691,9 @@ foreign import ccall -- -- - #VUID-vkCmdDrawMeshTasksNV-None-08665# If the -- @VK_EXT_provoking_vertex@ extension is enabled, and a shader object --- is bound to the vertex stage, then +-- is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT' +-- stage, then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetProvokingVertexModeEXT' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -2313,7 +2802,7 @@ foreign import ccall -- stage, then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClipNegativeOneToOneEXT' -- /must/ have been called in the current command buffer prior to this --- drawing command ifdef::VK_EXT_extended_dynamic_state3 +-- drawing command -- -- - #VUID-vkCmdDrawMeshTasksNV-None-07640# If the bound graphics -- pipeline state was created with the @@ -2321,7 +2810,7 @@ foreign import ccall -- dynamic state enabled then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetViewportWScalingEnableNV' -- /must/ have been called in the current command buffer prior to this --- drawing command endif::VK_EXT_extended_dynamic_state3 +-- drawing command -- -- - #VUID-vkCmdDrawMeshTasksNV-None-08674# If the -- @VK_NV_clip_space_w_scaling@ extension is enabled, and a shader @@ -2355,7 +2844,12 @@ foreign import ccall -- -- - #VUID-vkCmdDrawMeshTasksNV-None-08676# If the -- @VK_NV_fragment_coverage_to_color@ extension is enabled, and a --- shader object is bound to any graphics stage, then +-- shader object is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -2370,8 +2864,9 @@ foreign import ccall -- -- - #VUID-vkCmdDrawMeshTasksNV-None-08677# If the -- @VK_NV_fragment_coverage_to_color@ extension is enabled, and a --- shader object is bound to any graphics stage, and the most recent --- call to +-- shader object is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage, and the most recent call to -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV' -- in the current command buffer set @coverageToColorEnable@ to -- 'Vulkan.Core10.FundamentalTypes.TRUE', then @@ -2389,7 +2884,10 @@ foreign import ccall -- -- - #VUID-vkCmdDrawMeshTasksNV-None-08678# If the -- @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader --- object is bound to any graphics stage, then +-- object is bound to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationModeNV' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -2404,7 +2902,15 @@ foreign import ccall -- -- - #VUID-vkCmdDrawMeshTasksNV-None-08679# If the -- @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader --- object is bound to any graphics stage, then +-- object is bound to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationModeNV' +-- in the current command buffer set coverageModulationMode to any +-- value other than +-- 'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.COVERAGE_MODULATION_MODE_NONE_NV', +-- then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -2420,6 +2926,9 @@ foreign import ccall -- - #VUID-vkCmdDrawMeshTasksNV-None-08680# If the -- @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader -- object is bound to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV' -- in the current command buffer set @coverageModulationTableEnable@ to -- 'Vulkan.Core10.FundamentalTypes.TRUE', then @@ -2435,10 +2944,25 @@ foreign import ccall -- /must/ have been called in the current command buffer prior to this -- drawing command -- +-- - #VUID-vkCmdDrawMeshTasksNV-pipelineFragmentShadingRate-09238# If the +-- +-- feature is enabled, and a shader object is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set rasterizerDiscardEnable to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then +-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR' +-- must have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdDrawMeshTasksNV-None-08681# If the -- -- feature is enabled, and a shader object is bound to any graphics --- stage, then +-- stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetShadingRateImageEnableNV' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -2448,13 +2972,16 @@ foreign import ccall -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV' -- dynamic state enabled then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRepresentativeFragmentTestEnableNV' --- must have been called in the current command buffer prior to this +-- /must/ have been called in the current command buffer prior to this -- drawing command -- -- - #VUID-vkCmdDrawMeshTasksNV-None-08682# If the -- -- feature is enabled, and a shader object is bound to any graphics --- stage, then +-- stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRepresentativeFragmentTestEnableNV' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -2470,7 +2997,10 @@ foreign import ccall -- - #VUID-vkCmdDrawMeshTasksNV-None-08683# If the -- -- feature is enabled, and a shader object is bound to any graphics --- stage, then +-- stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageReductionModeNV' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -2519,18 +3049,29 @@ foreign import ccall -- in the last call to -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT' -- --- - #VUID-vkCmdDrawMeshTasksNV-multisampledRenderToSingleSampled-07475# --- If the bound graphics pipeline state was created with the +-- - #VUID-vkCmdDrawMeshTasksNV-rasterizationSamples-07474# If the bound +-- graphics pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT' --- state enabled, and none of the @VK_AMD_mixed_attachment_samples@ --- extension, @VK_NV_framebuffer_mixed_samples@ extension, or the --- --- feature is enabled, then the @rasterizationSamples@ in the last call --- to +-- state enabled, and neither the @VK_AMD_mixed_attachment_samples@ nor +-- the @VK_NV_framebuffer_mixed_samples@ extensions are enabled, then +-- the @rasterizationSamples@ in the last call to -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT' -- /must/ be the same as the current subpass color and\/or -- depth\/stencil attachments -- +-- - #VUID-vkCmdDrawMeshTasksNV-None-09211# If the bound graphics +-- pipeline state was created with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT' +-- state enabled, or a shader object is bound to any graphics stage, +-- and the current render pass instance includes a +-- 'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT' +-- structure with @multisampledRenderToSingleSampledEnable@ equal to +-- 'Vulkan.Core10.FundamentalTypes.TRUE', then the +-- @rasterizationSamples@ in the last call to +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT' +-- /must/ be the same as the @rasterizationSamples@ member of that +-- structure +-- -- - #VUID-vkCmdDrawMeshTasksNV-firstAttachment-07476# If the bound -- graphics pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT' @@ -2589,7 +3130,7 @@ foreign import ccall -- and -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendAdvancedEXT' -- have enabled advanced blending, then the number of active color --- attachments in the current subpass must not exceed +-- attachments in the current subpass /must/ not exceed -- -- -- - #VUID-vkCmdDrawMeshTasksNV-primitivesGeneratedQueryWithNonZeroStreams-07481# @@ -2751,7 +3292,7 @@ foreign import ccall -- @VK_NV_framebuffer_mixed_samples@ extension is enabled, and if -- current subpass has a depth\/stencil attachment and depth test, -- stencil test, or depth bounds test are enabled in the currently --- bound pipeline state, then the current @rasterizationSamples@ must +-- bound pipeline state, then the current @rasterizationSamples@ /must/ -- be the same as the sample count of the depth\/stencil attachment -- -- - #VUID-vkCmdDrawMeshTasksNV-coverageToColorEnable-07490# If the bound @@ -2782,7 +3323,7 @@ foreign import ccall -- states enabled, the current coverage reduction mode -- @coverageReductionMode@, then the current @rasterizationSamples@, -- and the sample counts for the color and depth\/stencil attachments --- (if the subpass has them) must be a valid combination returned by +-- (if the subpass has them) /must/ be a valid combination returned by -- 'Vulkan.Extensions.VK_NV_coverage_reduction_mode.getPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV' -- -- - #VUID-vkCmdDrawMeshTasksNV-viewportCount-07492# If the bound @@ -2870,7 +3411,7 @@ foreign import ccall -- -- feature /must/ be enabled and -- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@strictLines@ --- must be VK_TRUE +-- /must/ be 'Vulkan.Core10.FundamentalTypes.TRUE' -- -- - #VUID-vkCmdDrawMeshTasksNV-conservativePointAndLineRasterization-07499# -- If the bound graphics pipeline state was created with the @@ -2897,7 +3438,15 @@ foreign import ccall -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT', -- then -- --- must not be active +-- /must/ not be active +-- +-- - #VUID-vkCmdDrawMeshTasksNV-None-08877# If the bound graphics +-- pipeline state was created with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT' +-- dynamic state +-- 'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT' +-- /must/ have been called in the current command buffer prior to this +-- drawing command -- -- - #VUID-vkCmdDrawMeshTasksNV-None-07850# If dynamic state was -- inherited from @@ -2907,7 +3456,7 @@ foreign import ccall -- -- - #VUID-vkCmdDrawMeshTasksNV-None-08684# If there is no bound graphics -- pipeline, 'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' --- /must/ have been called on the current command buffer with @pStages@ +-- /must/ have been called in the current command buffer with @pStages@ -- with an element of -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT' -- @@ -2916,7 +3465,7 @@ foreign import ccall -- -- feature is enabled, -- 'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/ --- have been called on the current command buffer with @pStages@ with +-- have been called in the current command buffer with @pStages@ with -- an element of -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT' -- @@ -2925,7 +3474,7 @@ foreign import ccall -- -- feature is enabled, -- 'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/ --- have been called on the current command buffer with @pStages@ with +-- have been called in the current command buffer with @pStages@ with -- an element of -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT' -- @@ -2934,13 +3483,13 @@ foreign import ccall -- -- feature is enabled, -- 'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/ --- have been called on the current command buffer with @pStages@ with +-- have been called in the current command buffer with @pStages@ with -- an element of -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT' -- -- - #VUID-vkCmdDrawMeshTasksNV-None-08688# If there is no bound graphics -- pipeline, 'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' --- /must/ have been called on the current command buffer with @pStages@ +-- /must/ have been called in the current command buffer with @pStages@ -- with an element of -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' -- @@ -2949,7 +3498,7 @@ foreign import ccall -- -- feature is enabled, -- 'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/ --- have been called on the current command buffer with @pStages@ with +-- have been called in the current command buffer with @pStages@ with -- an element of -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT' -- @@ -2958,7 +3507,7 @@ foreign import ccall -- -- feature is enabled, -- 'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/ --- have been called on the current command buffer with @pStages@ with +-- have been called in the current command buffer with @pStages@ with -- an element of -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT' -- @@ -2970,8 +3519,8 @@ foreign import ccall -- features is enabled, one of the -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT' or -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT' --- stages must have a valid 'Vulkan.Extensions.Handles.ShaderEXT' --- bound, and the other must have no +-- stages /must/ have a valid 'Vulkan.Extensions.Handles.ShaderEXT' +-- bound, and the other /must/ have no -- 'Vulkan.Extensions.Handles.ShaderEXT' bound -- -- - #VUID-vkCmdDrawMeshTasksNV-None-08694# If there is no bound graphics @@ -3036,6 +3585,37 @@ foreign import ccall -- 'Vulkan.Extensions.VK_EXT_shader_object.createShadersEXT' call -- /must/ not have any 'Vulkan.Extensions.Handles.ShaderEXT' bound -- +-- - #VUID-vkCmdDrawMeshTasksNV-None-08878# All bound graphics shader +-- objects /must/ have been created with identical or identically +-- defined push constant ranges +-- +-- - #VUID-vkCmdDrawMeshTasksNV-None-08879# All bound graphics shader +-- objects /must/ have been created with identical or identically +-- defined arrays of descriptor set layouts +-- +-- - #VUID-vkCmdDrawMeshTasksNV-colorAttachmentCount-09372# If the +-- current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' +-- and a +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ +-- equal to @1@, a color attachment with a resolve mode of +-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID', +-- and a fragment shader is bound, it /must/ not declare the +-- @DepthReplacing@ or @StencilRefReplacingEXT@ execution modes +-- +-- - #VUID-vkCmdDrawMeshTasksNV-None-08880# If a shader object is bound +-- to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage and the +-- +-- feature is enabled on the device, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE' +-- 'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT' +-- /must/ have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdDrawMeshTasksNV-pDynamicStates-08715# If the bound -- graphics pipeline state includes a fragment shader stage, was -- created with @@ -3060,6 +3640,32 @@ foreign import ccall -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilWriteMask' /must/ -- be @0@ -- +-- - #VUID-vkCmdDrawMeshTasksNV-None-09116# If a shader object is bound +-- to any graphics stage or the currently bound graphics pipeline was +-- created with +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_MASK_EXT', +-- and the format of any color attachment is +-- 'Vulkan.Core10.Enums.Format.FORMAT_E5B9G9R9_UFLOAT_PACK32', the +-- corresponding element of the @pColorWriteMasks@ parameter of +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorWriteMaskEXT' +-- /must/ either include all of +-- 'Vulkan.Core10.Enums.ColorComponentFlagBits.COLOR_COMPONENT_R_BIT', +-- 'Vulkan.Core10.Enums.ColorComponentFlagBits.COLOR_COMPONENT_G_BIT', +-- and +-- 'Vulkan.Core10.Enums.ColorComponentFlagBits.COLOR_COMPONENT_B_BIT', +-- or none of them +-- +-- - #VUID-vkCmdDrawMeshTasksNV-maxFragmentDualSrcAttachments-09239# If +-- +-- is enabled for any attachment where either the source or destination +-- blend factors for that attachment +-- , +-- the maximum value of @Location@ for any output attachment +-- +-- in the @Fragment@ @Execution@ @Model@ executed by this command +-- /must/ be less than +-- +-- -- - #VUID-vkCmdDrawMeshTasksNV-stage-06480# The bound graphics pipeline -- /must/ not have been created with the -- 'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo'::@stage@ @@ -3241,6 +3847,16 @@ foreign import ccall -- /must/ contain -- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT' -- +-- - #VUID-vkCmdDrawMeshTasksIndirectNV-None-02693# If the +-- +-- extension is not enabled and any 'Vulkan.Core10.Handles.ImageView' +-- is sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a +-- result of this command, it /must/ not have a +-- 'Vulkan.Core10.Enums.ImageViewType.ImageViewType' of +-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_3D', +-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE', or +-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE_ARRAY' +-- -- - #VUID-vkCmdDrawMeshTasksIndirectNV-filterCubic-02694# Any -- 'Vulkan.Core10.Handles.ImageView' being sampled with -- 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a result of this @@ -3266,6 +3882,34 @@ foreign import ccall -- returned by -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceImageFormatProperties2' -- +-- - #VUID-vkCmdDrawMeshTasksIndirectNV-cubicRangeClamp-09212# If the +-- +-- feature is not enabled, then any 'Vulkan.Core10.Handles.ImageView' +-- being sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as +-- a result of this command +-- +-- [/must/ not have a 'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo'] +-- @reductionMode@ equal to +-- 'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM' +-- +-- - #VUID-vkCmdDrawMeshTasksIndirectNV-reductionMode-09213# Any +-- 'Vulkan.Core10.Handles.ImageView' being sampled with a +-- 'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo'::@reductionMode@ +-- equal to +-- 'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM' +-- as a result of this command /must/ sample with +-- 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' +-- +-- - #VUID-vkCmdDrawMeshTasksIndirectNV-selectableCubicWeights-09214# If +-- the +-- +-- feature is not enabled, then any 'Vulkan.Core10.Handles.ImageView' +-- being sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as +-- a result of this command /must/ have +-- 'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.SamplerCubicWeightsCreateInfoQCOM'::@cubicWeights@ +-- equal to +-- 'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM' +-- -- - #VUID-vkCmdDrawMeshTasksIndirectNV-flags-02696# Any -- 'Vulkan.Core10.Handles.Image' created with a -- 'Vulkan.Core10.Image.ImageCreateInfo'::@flags@ containing @@ -3307,11 +3951,9 @@ foreign import ccall -- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT' -- -- - #VUID-vkCmdDrawMeshTasksIndirectNV-None-08600# For each set /n/ that --- is statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to --- the pipeline bind point used by this command, or by any of the --- 'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages --- corresponding to the pipeline bind point used by this command, a --- descriptor set /must/ have been bound to /n/ at the same pipeline +-- is statically used by +-- , +-- a descriptor set /must/ have been bound to /n/ at the same pipeline -- bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is -- compatible for set /n/, with the -- 'Vulkan.Core10.Handles.PipelineLayout' or @@ -3321,13 +3963,10 @@ foreign import ccall -- -- -- - #VUID-vkCmdDrawMeshTasksIndirectNV-None-08601# For each push --- constant that is statically used by the --- 'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point --- used by this command, or by any of the --- 'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages --- corresponding to the pipeline bind point used by this command, a --- push constant value /must/ have been set for the same pipeline bind --- point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is +-- constant that is statically used by +-- , +-- a push constant value /must/ have been set for the same pipeline +-- bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is -- compatible for push constants, with the -- 'Vulkan.Core10.Handles.PipelineLayout' or -- 'Vulkan.Core10.Handles.DescriptorSetLayout' and @@ -3339,12 +3978,10 @@ foreign import ccall -- - #VUID-vkCmdDrawMeshTasksIndirectNV-maintenance4-08602# If the -- -- feature is not enabled, then for each push constant that is --- statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to the --- pipeline bind point used by this command, or by any of the --- 'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages --- corresponding to the pipeline bind point used by this command, a --- push constant value /must/ have been set for the same pipeline bind --- point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is +-- statically used by +-- , +-- a push constant value /must/ have been set for the same pipeline +-- bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is -- compatible for push constants, with the -- 'Vulkan.Core10.Handles.PipelineLayout' or -- 'Vulkan.Core10.Handles.DescriptorSetLayout' and @@ -3507,34 +4144,25 @@ foreign import ccall -- buffer as specified in the descriptor set bound to the same pipeline -- bind point -- --- - #VUID-vkCmdDrawMeshTasksIndirectNV-commandBuffer-08614# If +-- - #VUID-vkCmdDrawMeshTasksIndirectNV-commandBuffer-02707# If -- @commandBuffer@ is an unprotected command buffer and -- --- is not supported, any resource accessed by the --- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind --- point used by this command or any --- 'Vulkan.Extensions.Handles.ShaderEXT' object bound to a stage --- corresponding to the pipeline bind point used by this command /must/ --- not be a protected resource --- --- - #VUID-vkCmdDrawMeshTasksIndirectNV-None-08615# If the --- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind --- point used by this command or any --- 'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding --- to the pipeline bind point used by this command accesses a --- 'Vulkan.Core10.Handles.Sampler' or 'Vulkan.Core10.Handles.ImageView' --- object that enables +-- is not supported, any resource accessed by +-- +-- /must/ not be a protected resource +-- +-- - #VUID-vkCmdDrawMeshTasksIndirectNV-None-06550# If +-- +-- accesses a 'Vulkan.Core10.Handles.Sampler' or +-- 'Vulkan.Core10.Handles.ImageView' object that enables -- , -- that object /must/ only be used with @OpImageSample*@ or -- @OpImageSparseSample*@ instructions -- --- - #VUID-vkCmdDrawMeshTasksIndirectNV-ConstOffset-08616# If the --- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind --- point used by this command or any --- 'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding --- to the pipeline bind point used by this command accesses a --- 'Vulkan.Core10.Handles.Sampler' or 'Vulkan.Core10.Handles.ImageView' --- object that enables +-- - #VUID-vkCmdDrawMeshTasksIndirectNV-ConstOffset-06551# If +-- +-- accesses a 'Vulkan.Core10.Handles.Sampler' or +-- 'Vulkan.Core10.Handles.ImageView' object that enables -- , -- that object /must/ not use the @ConstOffset@ and @Offset@ operands -- @@ -3546,17 +4174,23 @@ foreign import ccall -- -- - #VUID-vkCmdDrawMeshTasksIndirectNV-format-07753# If a -- 'Vulkan.Core10.Handles.ImageView' is accessed as a result of this --- command, then the image view’s @format@ /must/ match the numeric --- format from the @Sampled@ @Type@ operand of the @OpTypeImage@ as --- described in the SPIR-V Sampled Type column of the --- --- table --- --- - #VUID-vkCmdDrawMeshTasksIndirectNV-None-04115# If a --- 'Vulkan.Core10.Handles.ImageView' is accessed using @OpImageWrite@ --- as a result of this command, then the @Type@ of the @Texel@ operand --- of that instruction /must/ have at least as many components as the --- image view’s format +-- command, then the +-- +-- of the image view’s @format@ and the @Sampled@ @Type@ operand of the +-- @OpTypeImage@ /must/ match +-- +-- - #VUID-vkCmdDrawMeshTasksIndirectNV-OpImageWrite-08795# If a +-- 'Vulkan.Core10.Handles.ImageView' created with a format other than +-- 'Vulkan.Core10.Enums.Format.FORMAT_A8_UNORM_KHR' is accessed using +-- @OpImageWrite@ as a result of this command, then the @Type@ of the +-- @Texel@ operand of that instruction /must/ have at least as many +-- components as the image view’s format +-- +-- - #VUID-vkCmdDrawMeshTasksIndirectNV-OpImageWrite-08796# If a +-- 'Vulkan.Core10.Handles.ImageView' created with the format +-- 'Vulkan.Core10.Enums.Format.FORMAT_A8_UNORM_KHR' is accessed using +-- @OpImageWrite@ as a result of this command, then the @Type@ of the +-- @Texel@ operand of that instruction /must/ have four components -- -- - #VUID-vkCmdDrawMeshTasksIndirectNV-OpImageWrite-04469# If a -- 'Vulkan.Core10.Handles.BufferView' is accessed using @OpImageWrite@ @@ -3660,6 +4294,8 @@ foreign import ccall -- -- - #VUID-vkCmdDrawMeshTasksIndirectNV-OpImageWeightedSampleQCOM-06977# -- If @OpImageWeightedSampleQCOM@, @OpImageBoxFilterQCOM@, +-- @OpImageBlockMatchWindowSSDQCOM@, @OpImageBlockMatchWindowSADQCOM@, +-- @OpImageBlockMatchGatherSSDQCOM@, @OpImageBlockMatchGatherSADQCOM@, -- @OpImageBlockMatchSSDQCOM@, or @OpImageBlockMatchSADQCOM@ uses a -- 'Vulkan.Core10.Handles.Sampler' as a result of this command, then -- the sampler /must/ have been created with @@ -3667,12 +4303,35 @@ foreign import ccall -- -- - #VUID-vkCmdDrawMeshTasksIndirectNV-OpImageWeightedSampleQCOM-06978# -- If any command other than @OpImageWeightedSampleQCOM@, --- @OpImageBoxFilterQCOM@, @OpImageBlockMatchSSDQCOM@, or +-- @OpImageBoxFilterQCOM@, @OpImageBlockMatchWindowSSDQCOM@, +-- @OpImageBlockMatchWindowSADQCOM@, @OpImageBlockMatchGatherSSDQCOM@, +-- @OpImageBlockMatchGatherSADQCOM@, @OpImageBlockMatchSSDQCOM@, or -- @OpImageBlockMatchSADQCOM@ uses a 'Vulkan.Core10.Handles.Sampler' as -- a result of this command, then the sampler /must/ not have been -- created with -- 'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM' -- +-- - #VUID-vkCmdDrawMeshTasksIndirectNV-OpImageBlockMatchWindow-09215# If +-- a @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@ +-- instruction is used to read from an +-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then +-- the image view’s +-- +-- /must/ contain +-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM' +-- +-- - #VUID-vkCmdDrawMeshTasksIndirectNV-OpImageBlockMatchWindow-09216# If +-- a @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@ +-- instruction is used to read from an +-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then +-- the image view’s format /must/ be a single-component format. +-- +-- - #VUID-vkCmdDrawMeshTasksIndirectNV-OpImageBlockMatchWindow-09217# If +-- a @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@ +-- read from a reference image as result of this command, then the +-- specified reference coordinates /must/ not fail +-- +-- -- - #VUID-vkCmdDrawMeshTasksIndirectNV-None-07288# Any shader invocation -- executed by this command /must/ -- @@ -3717,15 +4376,87 @@ foreign import ccall -- not be written in any way other than as an attachment by this -- command -- --- - #VUID-vkCmdDrawMeshTasksIndirectNV-None-06538# If any recorded --- command in the current subpass will write to an image subresource as --- an attachment, this command /must/ not read from the memory backing --- that image subresource in any other way than as an attachment --- --- - #VUID-vkCmdDrawMeshTasksIndirectNV-None-06539# If any recorded --- command in the current subpass will read from an image subresource --- used as an attachment in any way other than as an attachment, this --- command /must/ not write to that image subresource as an attachment +-- - #VUID-vkCmdDrawMeshTasksIndirectNV-None-09000# If a color attachment +-- is written by any prior command in this subpass or by the load, +-- store, or resolve operations for this subpass, it is not in the +-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT' +-- image layout, and either: +-- +-- - the +-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT' +-- is set on the currently bound pipeline or +-- +-- - the last call to +-- 'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT' +-- included +-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT' +-- and +-- +-- - there is no currently bound graphics pipeline or +-- +-- - the currently bound graphics pipeline was created with +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT' +-- it /must/ not be accessed in any way other than as an +-- attachment by this command +-- +-- - #VUID-vkCmdDrawMeshTasksIndirectNV-None-09001# If a depth attachment +-- is written by any prior command in this subpass or by the load, +-- store, or resolve operations for this subpass, it is not in the +-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT' +-- image layout, and either: +-- +-- - the +-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT' +-- is set on the currently bound pipeline or +-- +-- - the last call to +-- 'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT' +-- included +-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_DEPTH_BIT' +-- and +-- +-- - there is no currently bound graphics pipeline or +-- +-- - the currently bound graphics pipeline was created with +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT' +-- it /must/ not be accessed in any way other than as an +-- attachment by this command +-- +-- - #VUID-vkCmdDrawMeshTasksIndirectNV-None-09002# If a stencil +-- attachment is written by any prior command in this subpass or by the +-- load, store, or resolve operations for this subpass, it is not in +-- the +-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT' +-- image layout, and either: +-- +-- - the +-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT' +-- is set on the currently bound pipeline or +-- +-- - the last call to +-- 'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT' +-- included +-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT' +-- and +-- +-- - there is no currently bound graphics pipeline or +-- +-- - the currently bound graphics pipeline was created with +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT' +-- it /must/ not be accessed in any way other than as an +-- attachment by this command +-- +-- - #VUID-vkCmdDrawMeshTasksIndirectNV-None-09003# If an attachment is +-- written by any prior command in this subpass or by the load, store, +-- or resolve operations for this subpass, it /must/ not be accessed in +-- any way other than as an attachment, storage image, or sampled image +-- by this command +-- +-- - #VUID-vkCmdDrawMeshTasksIndirectNV-None-06539# If any previously +-- recorded command in the current subpass accessed an image +-- subresource used as an attachment in this subpass in any way other +-- than as an attachment, this command /must/ not write to that image +-- subresource as an attachment -- -- - #VUID-vkCmdDrawMeshTasksIndirectNV-None-06886# If the current render -- pass instance uses a depth\/stencil attachment with a read-only @@ -3795,18 +4526,23 @@ foreign import ccall -- pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS' dynamic -- state enabled then --- 'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBias' /must/ have --- been called in the current command buffer prior to this drawing --- command +-- 'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBias' or +-- 'Vulkan.Extensions.VK_EXT_depth_bias_control.cmdSetDepthBias2EXT' +-- /must/ have been called in the current command buffer prior to this +-- drawing command -- -- - #VUID-vkCmdDrawMeshTasksIndirectNV-None-08620# If a shader object is -- bound to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnable' -- in the current command buffer set @depthBiasEnable@ to -- 'Vulkan.Core10.FundamentalTypes.TRUE', --- 'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBias' /must/ have --- been called in the current command buffer prior to this drawing --- command +-- 'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBias' or +-- 'Vulkan.Extensions.VK_EXT_depth_bias_control.cmdSetDepthBias2EXT' +-- /must/ have been called in the current command buffer prior to this +-- drawing command -- -- - #VUID-vkCmdDrawMeshTasksIndirectNV-None-07835# If the bound graphics -- pipeline state was created with the @@ -3829,7 +4565,7 @@ foreign import ccall -- the most recent call to -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT' -- in the current command buffer set the same element of --- @pColorBlendEquations@ to an +-- @pColorBlendEquations@ to a -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.ColorBlendEquationEXT' -- structure with any 'Vulkan.Core10.Enums.BlendFactor.BlendFactor' -- member with a value of @@ -3844,16 +4580,20 @@ foreign import ccall -- - #VUID-vkCmdDrawMeshTasksIndirectNV-None-07836# If the bound graphics -- pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS' --- dynamic state enabled then +-- dynamic state enabled, and if the current @depthBoundsTestEnable@ +-- state is 'Vulkan.Core10.FundamentalTypes.TRUE', then -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBounds' /must/ have -- been called in the current command buffer prior to this drawing -- command -- -- - #VUID-vkCmdDrawMeshTasksIndirectNV-None-08622# If a shader object is -- bound to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable' -- in the current command buffer set @depthBoundsTestEnable@ to --- 'Vulkan.Core10.FundamentalTypes.TRUE', +-- 'Vulkan.Core10.FundamentalTypes.TRUE', then -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBounds' /must/ have -- been called in the current command buffer prior to this drawing -- command @@ -3861,7 +4601,8 @@ foreign import ccall -- - #VUID-vkCmdDrawMeshTasksIndirectNV-None-07837# If the bound graphics -- pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_COMPARE_MASK' --- dynamic state enabled then +-- dynamic state enabled, and if the current @stencilTestEnable@ state +-- is 'Vulkan.Core10.FundamentalTypes.TRUE', then -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilCompareMask' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -3878,7 +4619,8 @@ foreign import ccall -- - #VUID-vkCmdDrawMeshTasksIndirectNV-None-07838# If the bound graphics -- pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_WRITE_MASK' --- dynamic state enabled then +-- dynamic state enabled, and if the current @stencilTestEnable@ state +-- is 'Vulkan.Core10.FundamentalTypes.TRUE', then -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilWriteMask' /must/ -- have been called in the current command buffer prior to this drawing -- command @@ -3895,7 +4637,8 @@ foreign import ccall -- - #VUID-vkCmdDrawMeshTasksIndirectNV-None-07839# If the bound graphics -- pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_REFERENCE' --- dynamic state enabled then +-- dynamic state enabled, and if the current @stencilTestEnable@ state +-- is 'Vulkan.Core10.FundamentalTypes.TRUE', then -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilReference' /must/ -- have been called in the current command buffer prior to this drawing -- command @@ -3935,7 +4678,10 @@ foreign import ccall -- bound to any graphics stage, and the most recent call to -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT' -- in the current command buffer set @sampleLocationsEnable@ to --- 'Vulkan.Core10.FundamentalTypes.TRUE', +-- 'Vulkan.Core10.FundamentalTypes.TRUE', and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -3959,7 +4705,10 @@ foreign import ccall -- drawing command -- -- - #VUID-vkCmdDrawMeshTasksIndirectNV-None-08627# If a shader object is --- bound to any graphics stage, +-- bound to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetCullMode' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -3973,7 +4722,10 @@ foreign import ccall -- drawing command -- -- - #VUID-vkCmdDrawMeshTasksIndirectNV-None-08628# If a shader object is --- bound to any graphics stage, +-- bound to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetFrontFace' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -3987,7 +4739,10 @@ foreign import ccall -- drawing command -- -- - #VUID-vkCmdDrawMeshTasksIndirectNV-None-08629# If a shader object is --- bound to any graphics stage, +-- bound to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -4001,7 +4756,10 @@ foreign import ccall -- drawing command -- -- - #VUID-vkCmdDrawMeshTasksIndirectNV-None-08630# If a shader object is --- bound to any graphics stage, +-- bound to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -4016,9 +4774,12 @@ foreign import ccall -- -- - #VUID-vkCmdDrawMeshTasksIndirectNV-None-08631# If a shader object is -- bound to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable' -- in the current command buffer set @depthTestEnable@ to --- 'Vulkan.Core10.FundamentalTypes.TRUE', +-- 'Vulkan.Core10.FundamentalTypes.TRUE', then -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthCompareOp' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -4034,7 +4795,10 @@ foreign import ccall -- - #VUID-vkCmdDrawMeshTasksIndirectNV-None-08632# If a shader object is -- bound to any graphics stage, and the -- --- feature is enabled, the +-- feature is enabled, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then the -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -4154,6 +4918,13 @@ foreign import ccall -- the last call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- +-- - #VUID-vkCmdDrawMeshTasksIndirectNV-None-09232# If a shader object is +-- bound to any graphics stage, and the @VK_NV_clip_space_w_scaling@ +-- extension is enabled on the device, then +-- 'Vulkan.Extensions.VK_NV_clip_space_w_scaling.cmdSetViewportWScalingNV' +-- must have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdDrawMeshTasksIndirectNV-None-08636# If a shader object is -- bound to any graphics stage, and the @VK_NV_clip_space_w_scaling@ -- extension is enabled on the device, then the @viewportCount@ @@ -4187,6 +4958,30 @@ foreign import ccall -- the last call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- +-- - #VUID-vkCmdDrawMeshTasksIndirectNV-shadingRateImage-09233# If the +-- +-- feature is enabled, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set rasterizerDiscardEnable to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then +-- 'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetCoarseSampleOrderNV' +-- must have been called in the current command buffer prior to this +-- drawing command +-- +-- - #VUID-vkCmdDrawMeshTasksIndirectNV-shadingRateImage-09234# If a +-- shader object is bound to any graphics stage, and the +-- +-- feature is enabled on the device, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set rasterizerDiscardEnable to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetShadingRateImageEnableNV' +-- in the current command buffer set shadingRateImageEnable to +-- 'Vulkan.Core10.FundamentalTypes.TRUE', then +-- 'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetViewportShadingRatePaletteNV' +-- must have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdDrawMeshTasksIndirectNV-None-08637# If a shader object is -- bound to any graphics stage, and the -- @@ -4239,6 +5034,14 @@ foreign import ccall -- /must/ have been called in the current command buffer prior to this -- drawing command -- +-- - #VUID-vkCmdDrawMeshTasksIndirectNV-exclusiveScissor-09235# If a +-- shader object is bound to any graphics stage, and the +-- +-- feature is enabled, then +-- 'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorEnableNV' +-- must have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdDrawMeshTasksIndirectNV-None-08638# If a shader object is -- bound to any graphics stage, and the most recent call to -- 'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorEnableNV' @@ -4290,7 +5093,9 @@ foreign import ccall -- 'Vulkan.Core10.Enums.LogicOp.LogicOp' value -- -- - #VUID-vkCmdDrawMeshTasksIndirectNV-None-08641# If a shader object is --- bound to any graphics stage, and the +-- bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage, and the -- -- feature is enabled on the device, and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' @@ -4376,6 +5181,11 @@ foreign import ccall -- to be the same as the number of samples for the current render pass -- color and\/or depth\/stencil attachments -- +-- - #VUID-vkCmdDrawMeshTasksIndirectNV-None-08876# If a shader object is +-- bound to any graphics stage, the current render pass instance /must/ +-- have been begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' +-- -- - #VUID-vkCmdDrawMeshTasksIndirectNV-imageView-06172# If the current -- render pass instance was begun with -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', @@ -4448,8 +5258,11 @@ foreign import ccall -- equal to -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ -- --- - #VUID-vkCmdDrawMeshTasksIndirectNV-colorAttachmentCount-06180# If --- the current render pass instance was begun with +-- - #VUID-vkCmdDrawMeshTasksIndirectNV-dynamicRenderingUnusedAttachments-08910# +-- If the +-- +-- feature is not enabled, and the current render pass instance was +-- begun with -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' -- and -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ @@ -4462,8 +5275,32 @@ foreign import ccall -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@ -- used to create the currently bound graphics pipeline -- --- - #VUID-vkCmdDrawMeshTasksIndirectNV-colorAttachmentCount-07616# If --- the current render pass instance was begun with +-- - #VUID-vkCmdDrawMeshTasksIndirectNV-dynamicRenderingUnusedAttachments-08911# +-- If the +-- +-- feature is enabled, and the current render pass instance was begun +-- with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' +-- and +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ +-- greater than @0@, then each element of the +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@ +-- array with a @imageView@ not equal to +-- 'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created +-- with a 'Vulkan.Core10.Enums.Format.Format' equal to the +-- corresponding element of +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@ +-- used to create the currently bound graphics pipeline, or the +-- corresponding element of +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@, +-- if it exists, /must/ be +-- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' +-- +-- - #VUID-vkCmdDrawMeshTasksIndirectNV-dynamicRenderingUnusedAttachments-08912# +-- If the +-- +-- feature is not enabled, and the current render pass instance was +-- begun with -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' -- and -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ @@ -4476,6 +5313,132 @@ foreign import ccall -- used to create the currently bound pipeline equal to -- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' -- +-- - #VUID-vkCmdDrawMeshTasksIndirectNV-colorAttachmentCount-09362# If +-- the current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- with a +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ +-- equal to @1@, there is no shader object bound to any graphics stage, +-- and a color attachment with a resolve mode of +-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID', +-- each element of the +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@ +-- array with a @resolveImageView@ not equal to +-- 'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created +-- with an image created with a +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- value equal to the +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- value used to create the currently bound graphics pipeline +-- +-- - #VUID-vkCmdDrawMeshTasksIndirectNV-None-09363# If there is no shader +-- object bound to any graphics stage, the current render pass instance +-- was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' +-- and a +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ +-- equal to @1@, and a color attachment with a resolve mode of +-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID', +-- each element of the +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@ +-- array with a @imageView@ not equal to +-- 'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created +-- with an image created with a +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- value equal to the +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- value used to create the currently bound graphics pipeline +-- +-- - #VUID-vkCmdDrawMeshTasksIndirectNV-None-09364# If the current render +-- pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- there is no shader object bound to any graphics stage, and the +-- currently bound graphics pipeline was created with a non-zero +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- value and with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT' +-- dynamic state enabled, then +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT' +-- /must/ have set the blend enable to +-- 'Vulkan.Core10.FundamentalTypes.FALSE' prior to this drawing command +-- +-- - #VUID-vkCmdDrawMeshTasksIndirectNV-None-09365# If the current render +-- pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- there is no shader object bound to any graphics stage, and the +-- currently bound graphics pipeline was created with a non-zero +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- value and with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT' +-- dynamic state enabled, then +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT' +-- /must/ have set @rasterizationSamples@ to +-- 'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT' prior +-- to this drawing command +-- +-- - #VUID-vkCmdDrawMeshTasksIndirectNV-None-09366# If there is a shader +-- object bound to any graphics stage, and the current render pass +-- includes a color attachment that uses the +-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID' +-- resolve mode, then +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT' +-- /must/ have set blend enable to +-- 'Vulkan.Core10.FundamentalTypes.FALSE' prior to this drawing command +-- +-- - #VUID-vkCmdDrawMeshTasksIndirectNV-rasterizationSamples-09367# If +-- there is a shader object bound to any graphics stage, and the +-- current render pass includes a color attachment that uses the +-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID' +-- resolve mode, then +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT' +-- /must/ have set @rasterizationSamples@ to +-- 'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT' prior +-- to this drawing command +-- +-- - #VUID-vkCmdDrawMeshTasksIndirectNV-None-09368# If the current render +-- pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- there is no shader object bound to any graphics stage, and the +-- currently bound graphics pipeline was created with a non-zero +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- value and with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR' +-- dynamic state enabled, then +-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR' +-- /must/ have set @pFragmentSize->width@ to @1@ prior to this drawing +-- command +-- +-- - #VUID-vkCmdDrawMeshTasksIndirectNV-None-09369# If the current render +-- pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- there is no shader object bound to any graphics stage, and the +-- currently bound graphics pipeline was created with a non-zero +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- value and with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR' +-- dynamic state enabled, then +-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR' +-- /must/ have set @pFragmentSize->height@ to @1@ prior to this drawing +-- command +-- +-- - #VUID-vkCmdDrawMeshTasksIndirectNV-pFragmentSize-09370# If there is +-- a shader object bound to any graphics stage, and the current render +-- pass includes a color attachment that uses the +-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID' +-- resolve mode, then +-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR' +-- /must/ have set @pFragmentSize->width@ to @1@ prior to this drawing +-- command +-- +-- - #VUID-vkCmdDrawMeshTasksIndirectNV-pFragmentSize-09371# If there is +-- a shader object bound to any graphics stage, and the current render +-- pass includes a color attachment that uses the +-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID' +-- resolve mode, then +-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR' +-- /must/ have set @pFragmentSize->height@ to @1@ prior to this drawing +-- command +-- -- - #VUID-vkCmdDrawMeshTasksIndirectNV-None-07749# If the bound graphics -- pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT' @@ -4487,7 +5450,9 @@ foreign import ccall -- - #VUID-vkCmdDrawMeshTasksIndirectNV-None-08646# If the -- -- feature is enabled on the device, and a shader object is bound to --- the fragment stage, and the most recent call to +-- the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage, and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' -- in the current command buffer set @rasterizerDiscardEnable@ to -- 'Vulkan.Core10.FundamentalTypes.FALSE', then @@ -4507,7 +5472,9 @@ foreign import ccall -- - #VUID-vkCmdDrawMeshTasksIndirectNV-None-08647# If the -- -- feature is enabled on the device, and a shader object is bound to --- the fragment stage, and the most recent call to +-- the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage, and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' -- in the current command buffer set @rasterizerDiscardEnable@ to -- 'Vulkan.Core10.FundamentalTypes.FALSE', then the @attachmentCount@ @@ -4533,6 +5500,16 @@ foreign import ccall -- /must/ have been called in the current command buffer prior to this -- drawing command -- +-- - #VUID-vkCmdDrawMeshTasksIndirectNV-rasterizerDiscardEnable-09236# If +-- the @VK_EXT_discard_rectangles@ extension is enabled, and a shader +-- object is bound to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then +-- 'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEXT' +-- /must/ have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdDrawMeshTasksIndirectNV-None-08648# If the -- @VK_EXT_discard_rectangles@ extension is enabled, and a shader -- object is bound to any graphics stage, and the most recent call to @@ -4564,10 +5541,24 @@ foreign import ccall -- /must/ have been called in the current command buffer prior to this -- drawing command -- --- - #VUID-vkCmdDrawMeshTasksIndirectNV-pDepthAttachment-06181# If the --- current render pass instance was begun with --- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' --- and +-- - #VUID-vkCmdDrawMeshTasksIndirectNV-dynamicRenderingUnusedAttachments-08913# +-- If the current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- the +-- +-- feature is not enabled, and +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@ +-- was 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@ +-- used to create the currently bound graphics pipeline /must/ be equal +-- to 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' +-- +-- - #VUID-vkCmdDrawMeshTasksIndirectNV-dynamicRenderingUnusedAttachments-08914# +-- If current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- the +-- +-- feature is not enabled, and -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@ -- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@ @@ -4575,20 +5566,39 @@ foreign import ccall -- to the 'Vulkan.Core10.Enums.Format.Format' used to create -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@ -- --- - #VUID-vkCmdDrawMeshTasksIndirectNV-pDepthAttachment-07617# If the --- current render pass instance was begun with --- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' --- and +-- - #VUID-vkCmdDrawMeshTasksIndirectNV-dynamicRenderingUnusedAttachments-08915# +-- If the current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- the +-- +-- feature is enabled, -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@ --- was 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of +-- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the value of -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@ +-- used to create the currently bound graphics pipeline was not equal +-- to the 'Vulkan.Core10.Enums.Format.Format' used to create +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@, +-- the value of the format /must/ be +-- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' +-- +-- - #VUID-vkCmdDrawMeshTasksIndirectNV-dynamicRenderingUnusedAttachments-08916# +-- If the current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- the +-- +-- feature is not enabled, and +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@ +-- was 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@ -- used to create the currently bound graphics pipeline /must/ be equal -- to 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' -- --- - #VUID-vkCmdDrawMeshTasksIndirectNV-pStencilAttachment-06182# If the --- current render pass instance was begun with --- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' --- and +-- - #VUID-vkCmdDrawMeshTasksIndirectNV-dynamicRenderingUnusedAttachments-08917# +-- If current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- the +-- +-- feature is not enabled, and -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@ -- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@ @@ -4596,15 +5606,20 @@ foreign import ccall -- to the 'Vulkan.Core10.Enums.Format.Format' used to create -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@ -- --- - #VUID-vkCmdDrawMeshTasksIndirectNV-pStencilAttachment-07618# If the --- current render pass instance was begun with --- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' --- and +-- - #VUID-vkCmdDrawMeshTasksIndirectNV-dynamicRenderingUnusedAttachments-08918# +-- If the current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- the +-- +-- feature is enabled, -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@ --- was 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of +-- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the value of -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@ --- used to create the currently bound graphics pipeline /must/ be equal --- to 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' +-- used to create the currently bound graphics pipeline was not equal +-- to the 'Vulkan.Core10.Enums.Format.Format' used to create +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@, +-- the value of the format /must/ be +-- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' -- -- - #VUID-vkCmdDrawMeshTasksIndirectNV-imageView-06183# If the current -- render pass instance was begun with @@ -4751,6 +5766,40 @@ foreign import ccall -- 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@renderPass@ -- equal to 'Vulkan.Core10.APIConstants.NULL_HANDLE' -- +-- - #VUID-vkCmdDrawMeshTasksIndirectNV-pColorAttachments-08963# If the +-- current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- there is a graphics pipeline bound with a fragment shader that +-- statically writes to a color attachment, the color write mask is not +-- zero, color writes are enabled, and the corresponding element of the +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments->imageView@ +-- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', then the +-- corresponding element of +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@ +-- used to create the pipeline /must/ not be +-- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' +-- +-- - #VUID-vkCmdDrawMeshTasksIndirectNV-pDepthAttachment-08964# If the +-- current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- there is a graphics pipeline bound, depth test is enabled, depth +-- write is enabled, and the +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@ +-- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', then the +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@ +-- used to create the pipeline /must/ not be +-- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' +-- +-- - #VUID-vkCmdDrawMeshTasksIndirectNV-pStencilAttachment-08965# If the +-- current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- there is a graphics pipeline bound, stencil test is enabled and the +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@ +-- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', then the +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@ +-- used to create the pipeline /must/ not be +-- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' +-- -- - #VUID-vkCmdDrawMeshTasksIndirectNV-primitivesGeneratedQueryWithRasterizerDiscard-06708# -- If the -- @@ -4777,6 +5826,22 @@ foreign import ccall -- /must/ have been called in the current command buffer prior to this -- drawing command -- +-- - #VUID-vkCmdDrawMeshTasksIndirectNV-None-07620# If the bound graphics +-- pipeline state was created with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT' +-- dynamic state enabled then +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClampEnableEXT' +-- /must/ have been called in the current command buffer prior to this +-- drawing command +-- +-- - #VUID-vkCmdDrawMeshTasksIndirectNV-None-09237# If a shader object is +-- bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT' +-- stage, then +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetTessellationDomainOriginEXT' +-- /must/ have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdDrawMeshTasksIndirectNV-None-08650# If the -- -- feature is enabled, and a shader object is bound to any graphics @@ -4847,6 +5912,17 @@ foreign import ccall -- /must/ have been called in the current command buffer prior to this -- drawing command -- +-- - #VUID-vkCmdDrawMeshTasksIndirectNV-alphaToCoverageEnable-08919# If +-- the bound graphics pipeline state was created with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT' +-- dynamic state enabled, and @alphaToCoverageEnable@ was +-- 'Vulkan.Core10.FundamentalTypes.TRUE' in the last call to +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT', +-- then the +-- +-- /must/ contain a variable for the alpha @Component@ word in +-- @Location@ 0 at @Index@ 0 +-- -- - #VUID-vkCmdDrawMeshTasksIndirectNV-None-08654# If a shader object is -- bound to any graphics stage, and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' @@ -4856,6 +5932,16 @@ foreign import ccall -- /must/ have been called in the current command buffer prior to this -- drawing command -- +-- - #VUID-vkCmdDrawMeshTasksIndirectNV-alphaToCoverageEnable-08920# If a +-- shader object is bound to any graphics stage, and the most recent +-- call to +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT' +-- in the current command buffer set @alphaToCoverageEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.TRUE', then the +-- +-- /must/ contain a variable for the alpha @Component@ word in +-- @Location@ 0 at @Index@ 0 +-- -- - #VUID-vkCmdDrawMeshTasksIndirectNV-None-07625# If the bound graphics -- pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT' @@ -4885,7 +5971,8 @@ foreign import ccall -- -- - #VUID-vkCmdDrawMeshTasksIndirectNV-None-08656# If the -- --- feature is enabled, and a shader object is bound to any graphics +-- feature is enabled, and a shader object is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' -- stage, and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' -- in the current command buffer set @rasterizerDiscardEnable@ to @@ -4903,7 +5990,9 @@ foreign import ccall -- drawing command -- -- - #VUID-vkCmdDrawMeshTasksIndirectNV-None-08657# If a shader object is --- bound to any graphics stage, and the most recent call to +-- bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage, and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' -- in the current command buffer set @rasterizerDiscardEnable@ to -- 'Vulkan.Core10.FundamentalTypes.FALSE', then @@ -4940,7 +6029,9 @@ foreign import ccall -- drawing command -- -- - #VUID-vkCmdDrawMeshTasksIndirectNV-None-08659# If a shader object is --- bound to any graphics stage, and the most recent call to +-- bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage, and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' -- in the current command buffer set @rasterizerDiscardEnable@ to -- 'Vulkan.Core10.FundamentalTypes.FALSE', then @@ -4958,7 +6049,8 @@ foreign import ccall -- -- - #VUID-vkCmdDrawMeshTasksIndirectNV-None-08660# If the -- --- feature is enabled, and a shader object is bound to the geometry +-- feature is enabled, and a shader object is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT' -- stage, then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationStreamEXT' -- /must/ have been called in the current command buffer prior to this @@ -5058,7 +6150,9 @@ foreign import ccall -- -- - #VUID-vkCmdDrawMeshTasksIndirectNV-None-08665# If the -- @VK_EXT_provoking_vertex@ extension is enabled, and a shader object --- is bound to the vertex stage, then +-- is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT' +-- stage, then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetProvokingVertexModeEXT' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -5167,7 +6261,7 @@ foreign import ccall -- stage, then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClipNegativeOneToOneEXT' -- /must/ have been called in the current command buffer prior to this --- drawing command ifdef::VK_EXT_extended_dynamic_state3 +-- drawing command -- -- - #VUID-vkCmdDrawMeshTasksIndirectNV-None-07640# If the bound graphics -- pipeline state was created with the @@ -5175,7 +6269,7 @@ foreign import ccall -- dynamic state enabled then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetViewportWScalingEnableNV' -- /must/ have been called in the current command buffer prior to this --- drawing command endif::VK_EXT_extended_dynamic_state3 +-- drawing command -- -- - #VUID-vkCmdDrawMeshTasksIndirectNV-None-08674# If the -- @VK_NV_clip_space_w_scaling@ extension is enabled, and a shader @@ -5209,7 +6303,12 @@ foreign import ccall -- -- - #VUID-vkCmdDrawMeshTasksIndirectNV-None-08676# If the -- @VK_NV_fragment_coverage_to_color@ extension is enabled, and a --- shader object is bound to any graphics stage, then +-- shader object is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -5224,8 +6323,9 @@ foreign import ccall -- -- - #VUID-vkCmdDrawMeshTasksIndirectNV-None-08677# If the -- @VK_NV_fragment_coverage_to_color@ extension is enabled, and a --- shader object is bound to any graphics stage, and the most recent --- call to +-- shader object is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage, and the most recent call to -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV' -- in the current command buffer set @coverageToColorEnable@ to -- 'Vulkan.Core10.FundamentalTypes.TRUE', then @@ -5243,7 +6343,10 @@ foreign import ccall -- -- - #VUID-vkCmdDrawMeshTasksIndirectNV-None-08678# If the -- @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader --- object is bound to any graphics stage, then +-- object is bound to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationModeNV' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -5258,7 +6361,15 @@ foreign import ccall -- -- - #VUID-vkCmdDrawMeshTasksIndirectNV-None-08679# If the -- @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader --- object is bound to any graphics stage, then +-- object is bound to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationModeNV' +-- in the current command buffer set coverageModulationMode to any +-- value other than +-- 'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.COVERAGE_MODULATION_MODE_NONE_NV', +-- then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -5274,6 +6385,9 @@ foreign import ccall -- - #VUID-vkCmdDrawMeshTasksIndirectNV-None-08680# If the -- @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader -- object is bound to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV' -- in the current command buffer set @coverageModulationTableEnable@ to -- 'Vulkan.Core10.FundamentalTypes.TRUE', then @@ -5289,10 +6403,26 @@ foreign import ccall -- /must/ have been called in the current command buffer prior to this -- drawing command -- +-- - #VUID-vkCmdDrawMeshTasksIndirectNV-pipelineFragmentShadingRate-09238# +-- If the +-- +-- feature is enabled, and a shader object is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set rasterizerDiscardEnable to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then +-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR' +-- must have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdDrawMeshTasksIndirectNV-None-08681# If the -- -- feature is enabled, and a shader object is bound to any graphics --- stage, then +-- stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetShadingRateImageEnableNV' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -5302,13 +6432,16 @@ foreign import ccall -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV' -- dynamic state enabled then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRepresentativeFragmentTestEnableNV' --- must have been called in the current command buffer prior to this +-- /must/ have been called in the current command buffer prior to this -- drawing command -- -- - #VUID-vkCmdDrawMeshTasksIndirectNV-None-08682# If the -- -- feature is enabled, and a shader object is bound to any graphics --- stage, then +-- stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRepresentativeFragmentTestEnableNV' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -5324,7 +6457,10 @@ foreign import ccall -- - #VUID-vkCmdDrawMeshTasksIndirectNV-None-08683# If the -- -- feature is enabled, and a shader object is bound to any graphics --- stage, then +-- stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageReductionModeNV' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -5373,18 +6509,29 @@ foreign import ccall -- in the last call to -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT' -- --- - #VUID-vkCmdDrawMeshTasksIndirectNV-multisampledRenderToSingleSampled-07475# --- If the bound graphics pipeline state was created with the +-- - #VUID-vkCmdDrawMeshTasksIndirectNV-rasterizationSamples-07474# If +-- the bound graphics pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT' --- state enabled, and none of the @VK_AMD_mixed_attachment_samples@ --- extension, @VK_NV_framebuffer_mixed_samples@ extension, or the --- --- feature is enabled, then the @rasterizationSamples@ in the last call --- to +-- state enabled, and neither the @VK_AMD_mixed_attachment_samples@ nor +-- the @VK_NV_framebuffer_mixed_samples@ extensions are enabled, then +-- the @rasterizationSamples@ in the last call to -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT' -- /must/ be the same as the current subpass color and\/or -- depth\/stencil attachments -- +-- - #VUID-vkCmdDrawMeshTasksIndirectNV-None-09211# If the bound graphics +-- pipeline state was created with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT' +-- state enabled, or a shader object is bound to any graphics stage, +-- and the current render pass instance includes a +-- 'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT' +-- structure with @multisampledRenderToSingleSampledEnable@ equal to +-- 'Vulkan.Core10.FundamentalTypes.TRUE', then the +-- @rasterizationSamples@ in the last call to +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT' +-- /must/ be the same as the @rasterizationSamples@ member of that +-- structure +-- -- - #VUID-vkCmdDrawMeshTasksIndirectNV-firstAttachment-07476# If the -- bound graphics pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT' @@ -5443,7 +6590,7 @@ foreign import ccall -- and -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendAdvancedEXT' -- have enabled advanced blending, then the number of active color --- attachments in the current subpass must not exceed +-- attachments in the current subpass /must/ not exceed -- -- -- - #VUID-vkCmdDrawMeshTasksIndirectNV-primitivesGeneratedQueryWithNonZeroStreams-07481# @@ -5605,7 +6752,7 @@ foreign import ccall -- the @VK_NV_framebuffer_mixed_samples@ extension is enabled, and if -- current subpass has a depth\/stencil attachment and depth test, -- stencil test, or depth bounds test are enabled in the currently --- bound pipeline state, then the current @rasterizationSamples@ must +-- bound pipeline state, then the current @rasterizationSamples@ /must/ -- be the same as the sample count of the depth\/stencil attachment -- -- - #VUID-vkCmdDrawMeshTasksIndirectNV-coverageToColorEnable-07490# If @@ -5636,7 +6783,7 @@ foreign import ccall -- states enabled, the current coverage reduction mode -- @coverageReductionMode@, then the current @rasterizationSamples@, -- and the sample counts for the color and depth\/stencil attachments --- (if the subpass has them) must be a valid combination returned by +-- (if the subpass has them) /must/ be a valid combination returned by -- 'Vulkan.Extensions.VK_NV_coverage_reduction_mode.getPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV' -- -- - #VUID-vkCmdDrawMeshTasksIndirectNV-viewportCount-07492# If the bound @@ -5724,7 +6871,7 @@ foreign import ccall -- -- feature /must/ be enabled and -- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@strictLines@ --- must be VK_TRUE +-- /must/ be 'Vulkan.Core10.FundamentalTypes.TRUE' -- -- - #VUID-vkCmdDrawMeshTasksIndirectNV-conservativePointAndLineRasterization-07499# -- If the bound graphics pipeline state was created with the @@ -5751,18 +6898,26 @@ foreign import ccall -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT', -- then -- --- must not be active +-- /must/ not be active -- --- - #VUID-vkCmdDrawMeshTasksIndirectNV-None-07850# If dynamic state was --- inherited from --- 'Vulkan.Extensions.VK_NV_inherited_viewport_scissor.CommandBufferInheritanceViewportScissorInfoNV', +-- - #VUID-vkCmdDrawMeshTasksIndirectNV-None-08877# If the bound graphics +-- pipeline state was created with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT' +-- dynamic state +-- 'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT' +-- /must/ have been called in the current command buffer prior to this +-- drawing command +-- +-- - #VUID-vkCmdDrawMeshTasksIndirectNV-None-07850# If dynamic state was +-- inherited from +-- 'Vulkan.Extensions.VK_NV_inherited_viewport_scissor.CommandBufferInheritanceViewportScissorInfoNV', -- it /must/ be set in the current command buffer prior to this drawing -- command -- -- - #VUID-vkCmdDrawMeshTasksIndirectNV-None-08684# If there is no bound -- graphics pipeline, -- 'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/ --- have been called on the current command buffer with @pStages@ with +-- have been called in the current command buffer with @pStages@ with -- an element of -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT' -- @@ -5771,7 +6926,7 @@ foreign import ccall -- -- feature is enabled, -- 'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/ --- have been called on the current command buffer with @pStages@ with +-- have been called in the current command buffer with @pStages@ with -- an element of -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT' -- @@ -5780,7 +6935,7 @@ foreign import ccall -- -- feature is enabled, -- 'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/ --- have been called on the current command buffer with @pStages@ with +-- have been called in the current command buffer with @pStages@ with -- an element of -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT' -- @@ -5789,14 +6944,14 @@ foreign import ccall -- -- feature is enabled, -- 'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/ --- have been called on the current command buffer with @pStages@ with +-- have been called in the current command buffer with @pStages@ with -- an element of -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT' -- -- - #VUID-vkCmdDrawMeshTasksIndirectNV-None-08688# If there is no bound -- graphics pipeline, -- 'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/ --- have been called on the current command buffer with @pStages@ with +-- have been called in the current command buffer with @pStages@ with -- an element of -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' -- @@ -5805,7 +6960,7 @@ foreign import ccall -- -- feature is enabled, -- 'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/ --- have been called on the current command buffer with @pStages@ with +-- have been called in the current command buffer with @pStages@ with -- an element of -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT' -- @@ -5814,7 +6969,7 @@ foreign import ccall -- -- feature is enabled, -- 'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/ --- have been called on the current command buffer with @pStages@ with +-- have been called in the current command buffer with @pStages@ with -- an element of -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT' -- @@ -5826,8 +6981,8 @@ foreign import ccall -- features is enabled, one of the -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT' or -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT' --- stages must have a valid 'Vulkan.Extensions.Handles.ShaderEXT' --- bound, and the other must have no +-- stages /must/ have a valid 'Vulkan.Extensions.Handles.ShaderEXT' +-- bound, and the other /must/ have no -- 'Vulkan.Extensions.Handles.ShaderEXT' bound -- -- - #VUID-vkCmdDrawMeshTasksIndirectNV-None-08694# If there is no bound @@ -5892,6 +7047,37 @@ foreign import ccall -- 'Vulkan.Extensions.VK_EXT_shader_object.createShadersEXT' call -- /must/ not have any 'Vulkan.Extensions.Handles.ShaderEXT' bound -- +-- - #VUID-vkCmdDrawMeshTasksIndirectNV-None-08878# All bound graphics +-- shader objects /must/ have been created with identical or +-- identically defined push constant ranges +-- +-- - #VUID-vkCmdDrawMeshTasksIndirectNV-None-08879# All bound graphics +-- shader objects /must/ have been created with identical or +-- identically defined arrays of descriptor set layouts +-- +-- - #VUID-vkCmdDrawMeshTasksIndirectNV-colorAttachmentCount-09372# If +-- the current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' +-- and a +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ +-- equal to @1@, a color attachment with a resolve mode of +-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID', +-- and a fragment shader is bound, it /must/ not declare the +-- @DepthReplacing@ or @StencilRefReplacingEXT@ execution modes +-- +-- - #VUID-vkCmdDrawMeshTasksIndirectNV-None-08880# If a shader object is +-- bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage and the +-- +-- feature is enabled on the device, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE' +-- 'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT' +-- /must/ have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdDrawMeshTasksIndirectNV-pDynamicStates-08715# If the -- bound graphics pipeline state includes a fragment shader stage, was -- created with @@ -5916,6 +7102,33 @@ foreign import ccall -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilWriteMask' /must/ -- be @0@ -- +-- - #VUID-vkCmdDrawMeshTasksIndirectNV-None-09116# If a shader object is +-- bound to any graphics stage or the currently bound graphics pipeline +-- was created with +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_MASK_EXT', +-- and the format of any color attachment is +-- 'Vulkan.Core10.Enums.Format.FORMAT_E5B9G9R9_UFLOAT_PACK32', the +-- corresponding element of the @pColorWriteMasks@ parameter of +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorWriteMaskEXT' +-- /must/ either include all of +-- 'Vulkan.Core10.Enums.ColorComponentFlagBits.COLOR_COMPONENT_R_BIT', +-- 'Vulkan.Core10.Enums.ColorComponentFlagBits.COLOR_COMPONENT_G_BIT', +-- and +-- 'Vulkan.Core10.Enums.ColorComponentFlagBits.COLOR_COMPONENT_B_BIT', +-- or none of them +-- +-- - #VUID-vkCmdDrawMeshTasksIndirectNV-maxFragmentDualSrcAttachments-09239# +-- If +-- +-- is enabled for any attachment where either the source or destination +-- blend factors for that attachment +-- , +-- the maximum value of @Location@ for any output attachment +-- +-- in the @Fragment@ @Execution@ @Model@ executed by this command +-- /must/ be less than +-- +-- -- - #VUID-vkCmdDrawMeshTasksIndirectNV-stage-06480# The bound graphics -- pipeline /must/ not have been created with the -- 'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo'::@stage@ @@ -6147,6 +7360,16 @@ foreign import ccall -- /must/ contain -- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT' -- +-- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02693# If the +-- +-- extension is not enabled and any 'Vulkan.Core10.Handles.ImageView' +-- is sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a +-- result of this command, it /must/ not have a +-- 'Vulkan.Core10.Enums.ImageViewType.ImageViewType' of +-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_3D', +-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE', or +-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE_ARRAY' +-- -- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-filterCubic-02694# Any -- 'Vulkan.Core10.Handles.ImageView' being sampled with -- 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a result of this @@ -6172,6 +7395,35 @@ foreign import ccall -- returned by -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceImageFormatProperties2' -- +-- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-cubicRangeClamp-09212# If +-- the +-- +-- feature is not enabled, then any 'Vulkan.Core10.Handles.ImageView' +-- being sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as +-- a result of this command +-- +-- [/must/ not have a 'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo'] +-- @reductionMode@ equal to +-- 'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM' +-- +-- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-reductionMode-09213# Any +-- 'Vulkan.Core10.Handles.ImageView' being sampled with a +-- 'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo'::@reductionMode@ +-- equal to +-- 'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM' +-- as a result of this command /must/ sample with +-- 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' +-- +-- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-selectableCubicWeights-09214# +-- If the +-- +-- feature is not enabled, then any 'Vulkan.Core10.Handles.ImageView' +-- being sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as +-- a result of this command /must/ have +-- 'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.SamplerCubicWeightsCreateInfoQCOM'::@cubicWeights@ +-- equal to +-- 'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM' +-- -- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-flags-02696# Any -- 'Vulkan.Core10.Handles.Image' created with a -- 'Vulkan.Core10.Image.ImageCreateInfo'::@flags@ containing @@ -6213,11 +7465,9 @@ foreign import ccall -- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT' -- -- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08600# For each set /n/ --- that is statically used by the 'Vulkan.Core10.Handles.Pipeline' --- bound to the pipeline bind point used by this command, or by any of --- the 'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages --- corresponding to the pipeline bind point used by this command, a --- descriptor set /must/ have been bound to /n/ at the same pipeline +-- that is statically used by +-- , +-- a descriptor set /must/ have been bound to /n/ at the same pipeline -- bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is -- compatible for set /n/, with the -- 'Vulkan.Core10.Handles.PipelineLayout' or @@ -6227,13 +7477,10 @@ foreign import ccall -- -- -- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08601# For each push --- constant that is statically used by the --- 'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point --- used by this command, or by any of the --- 'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages --- corresponding to the pipeline bind point used by this command, a --- push constant value /must/ have been set for the same pipeline bind --- point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is +-- constant that is statically used by +-- , +-- a push constant value /must/ have been set for the same pipeline +-- bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is -- compatible for push constants, with the -- 'Vulkan.Core10.Handles.PipelineLayout' or -- 'Vulkan.Core10.Handles.DescriptorSetLayout' and @@ -6245,12 +7492,10 @@ foreign import ccall -- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-maintenance4-08602# If the -- -- feature is not enabled, then for each push constant that is --- statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to the --- pipeline bind point used by this command, or by any of the --- 'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages --- corresponding to the pipeline bind point used by this command, a --- push constant value /must/ have been set for the same pipeline bind --- point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is +-- statically used by +-- , +-- a push constant value /must/ have been set for the same pipeline +-- bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is -- compatible for push constants, with the -- 'Vulkan.Core10.Handles.PipelineLayout' or -- 'Vulkan.Core10.Handles.DescriptorSetLayout' and @@ -6413,34 +7658,25 @@ foreign import ccall -- buffer as specified in the descriptor set bound to the same pipeline -- bind point -- --- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-commandBuffer-08614# If +-- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-commandBuffer-02707# If -- @commandBuffer@ is an unprotected command buffer and -- --- is not supported, any resource accessed by the --- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind --- point used by this command or any --- 'Vulkan.Extensions.Handles.ShaderEXT' object bound to a stage --- corresponding to the pipeline bind point used by this command /must/ --- not be a protected resource --- --- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08615# If the --- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind --- point used by this command or any --- 'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding --- to the pipeline bind point used by this command accesses a --- 'Vulkan.Core10.Handles.Sampler' or 'Vulkan.Core10.Handles.ImageView' --- object that enables +-- is not supported, any resource accessed by +-- +-- /must/ not be a protected resource +-- +-- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-06550# If +-- +-- accesses a 'Vulkan.Core10.Handles.Sampler' or +-- 'Vulkan.Core10.Handles.ImageView' object that enables -- , -- that object /must/ only be used with @OpImageSample*@ or -- @OpImageSparseSample*@ instructions -- --- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-ConstOffset-08616# If the --- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind --- point used by this command or any --- 'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding --- to the pipeline bind point used by this command accesses a --- 'Vulkan.Core10.Handles.Sampler' or 'Vulkan.Core10.Handles.ImageView' --- object that enables +-- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-ConstOffset-06551# If +-- +-- accesses a 'Vulkan.Core10.Handles.Sampler' or +-- 'Vulkan.Core10.Handles.ImageView' object that enables -- , -- that object /must/ not use the @ConstOffset@ and @Offset@ operands -- @@ -6452,17 +7688,23 @@ foreign import ccall -- -- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-format-07753# If a -- 'Vulkan.Core10.Handles.ImageView' is accessed as a result of this --- command, then the image view’s @format@ /must/ match the numeric --- format from the @Sampled@ @Type@ operand of the @OpTypeImage@ as --- described in the SPIR-V Sampled Type column of the --- --- table --- --- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-04115# If a --- 'Vulkan.Core10.Handles.ImageView' is accessed using @OpImageWrite@ --- as a result of this command, then the @Type@ of the @Texel@ operand --- of that instruction /must/ have at least as many components as the --- image view’s format +-- command, then the +-- +-- of the image view’s @format@ and the @Sampled@ @Type@ operand of the +-- @OpTypeImage@ /must/ match +-- +-- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-OpImageWrite-08795# If a +-- 'Vulkan.Core10.Handles.ImageView' created with a format other than +-- 'Vulkan.Core10.Enums.Format.FORMAT_A8_UNORM_KHR' is accessed using +-- @OpImageWrite@ as a result of this command, then the @Type@ of the +-- @Texel@ operand of that instruction /must/ have at least as many +-- components as the image view’s format +-- +-- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-OpImageWrite-08796# If a +-- 'Vulkan.Core10.Handles.ImageView' created with the format +-- 'Vulkan.Core10.Enums.Format.FORMAT_A8_UNORM_KHR' is accessed using +-- @OpImageWrite@ as a result of this command, then the @Type@ of the +-- @Texel@ operand of that instruction /must/ have four components -- -- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-OpImageWrite-04469# If a -- 'Vulkan.Core10.Handles.BufferView' is accessed using @OpImageWrite@ @@ -6566,6 +7808,8 @@ foreign import ccall -- -- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-OpImageWeightedSampleQCOM-06977# -- If @OpImageWeightedSampleQCOM@, @OpImageBoxFilterQCOM@, +-- @OpImageBlockMatchWindowSSDQCOM@, @OpImageBlockMatchWindowSADQCOM@, +-- @OpImageBlockMatchGatherSSDQCOM@, @OpImageBlockMatchGatherSADQCOM@, -- @OpImageBlockMatchSSDQCOM@, or @OpImageBlockMatchSADQCOM@ uses a -- 'Vulkan.Core10.Handles.Sampler' as a result of this command, then -- the sampler /must/ have been created with @@ -6573,12 +7817,36 @@ foreign import ccall -- -- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-OpImageWeightedSampleQCOM-06978# -- If any command other than @OpImageWeightedSampleQCOM@, --- @OpImageBoxFilterQCOM@, @OpImageBlockMatchSSDQCOM@, or +-- @OpImageBoxFilterQCOM@, @OpImageBlockMatchWindowSSDQCOM@, +-- @OpImageBlockMatchWindowSADQCOM@, @OpImageBlockMatchGatherSSDQCOM@, +-- @OpImageBlockMatchGatherSADQCOM@, @OpImageBlockMatchSSDQCOM@, or -- @OpImageBlockMatchSADQCOM@ uses a 'Vulkan.Core10.Handles.Sampler' as -- a result of this command, then the sampler /must/ not have been -- created with -- 'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM' -- +-- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-OpImageBlockMatchWindow-09215# +-- If a @OpImageBlockMatchWindow*QCOM@ or +-- @OpImageBlockMatchGather*QCOM@ instruction is used to read from an +-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then +-- the image view’s +-- +-- /must/ contain +-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM' +-- +-- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-OpImageBlockMatchWindow-09216# +-- If a @OpImageBlockMatchWindow*QCOM@ or +-- @OpImageBlockMatchGather*QCOM@ instruction is used to read from an +-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then +-- the image view’s format /must/ be a single-component format. +-- +-- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-OpImageBlockMatchWindow-09217# +-- If a @OpImageBlockMatchWindow*QCOM@ or +-- @OpImageBlockMatchGather*QCOM@ read from a reference image as result +-- of this command, then the specified reference coordinates /must/ not +-- fail +-- +-- -- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07288# Any shader -- invocation executed by this command /must/ -- @@ -6623,15 +7891,89 @@ foreign import ccall -- /must/ not be written in any way other than as an attachment by this -- command -- --- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-06538# If any recorded --- command in the current subpass will write to an image subresource as --- an attachment, this command /must/ not read from the memory backing --- that image subresource in any other way than as an attachment +-- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-09000# If a color +-- attachment is written by any prior command in this subpass or by the +-- load, store, or resolve operations for this subpass, it is not in +-- the +-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT' +-- image layout, and either: +-- +-- - the +-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT' +-- is set on the currently bound pipeline or +-- +-- - the last call to +-- 'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT' +-- included +-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT' +-- and +-- +-- - there is no currently bound graphics pipeline or +-- +-- - the currently bound graphics pipeline was created with +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT' +-- it /must/ not be accessed in any way other than as an +-- attachment by this command +-- +-- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-09001# If a depth +-- attachment is written by any prior command in this subpass or by the +-- load, store, or resolve operations for this subpass, it is not in +-- the +-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT' +-- image layout, and either: -- --- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-06539# If any recorded --- command in the current subpass will read from an image subresource --- used as an attachment in any way other than as an attachment, this --- command /must/ not write to that image subresource as an attachment +-- - the +-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT' +-- is set on the currently bound pipeline or +-- +-- - the last call to +-- 'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT' +-- included +-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_DEPTH_BIT' +-- and +-- +-- - there is no currently bound graphics pipeline or +-- +-- - the currently bound graphics pipeline was created with +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT' +-- it /must/ not be accessed in any way other than as an +-- attachment by this command +-- +-- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-09002# If a stencil +-- attachment is written by any prior command in this subpass or by the +-- load, store, or resolve operations for this subpass, it is not in +-- the +-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT' +-- image layout, and either: +-- +-- - the +-- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT' +-- is set on the currently bound pipeline or +-- +-- - the last call to +-- 'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT' +-- included +-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT' +-- and +-- +-- - there is no currently bound graphics pipeline or +-- +-- - the currently bound graphics pipeline was created with +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT' +-- it /must/ not be accessed in any way other than as an +-- attachment by this command +-- +-- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-09003# If an attachment +-- is written by any prior command in this subpass or by the load, +-- store, or resolve operations for this subpass, it /must/ not be +-- accessed in any way other than as an attachment, storage image, or +-- sampled image by this command +-- +-- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-06539# If any +-- previously recorded command in the current subpass accessed an image +-- subresource used as an attachment in this subpass in any way other +-- than as an attachment, this command /must/ not write to that image +-- subresource as an attachment -- -- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-06886# If the current -- render pass instance uses a depth\/stencil attachment with a @@ -6701,18 +8043,23 @@ foreign import ccall -- graphics pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS' dynamic -- state enabled then --- 'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBias' /must/ have --- been called in the current command buffer prior to this drawing --- command +-- 'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBias' or +-- 'Vulkan.Extensions.VK_EXT_depth_bias_control.cmdSetDepthBias2EXT' +-- /must/ have been called in the current command buffer prior to this +-- drawing command -- -- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08620# If a shader -- object is bound to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetDepthBiasEnable' -- in the current command buffer set @depthBiasEnable@ to -- 'Vulkan.Core10.FundamentalTypes.TRUE', --- 'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBias' /must/ have --- been called in the current command buffer prior to this drawing --- command +-- 'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBias' or +-- 'Vulkan.Extensions.VK_EXT_depth_bias_control.cmdSetDepthBias2EXT' +-- /must/ have been called in the current command buffer prior to this +-- drawing command -- -- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07835# If the bound -- graphics pipeline state was created with the @@ -6735,7 +8082,7 @@ foreign import ccall -- the most recent call to -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT' -- in the current command buffer set the same element of --- @pColorBlendEquations@ to an +-- @pColorBlendEquations@ to a -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.ColorBlendEquationEXT' -- structure with any 'Vulkan.Core10.Enums.BlendFactor.BlendFactor' -- member with a value of @@ -6750,16 +8097,20 @@ foreign import ccall -- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07836# If the bound -- graphics pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BOUNDS' --- dynamic state enabled then +-- dynamic state enabled, and if the current @depthBoundsTestEnable@ +-- state is 'Vulkan.Core10.FundamentalTypes.TRUE', then -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBounds' /must/ have -- been called in the current command buffer prior to this drawing -- command -- -- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08622# If a shader -- object is bound to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable' -- in the current command buffer set @depthBoundsTestEnable@ to --- 'Vulkan.Core10.FundamentalTypes.TRUE', +-- 'Vulkan.Core10.FundamentalTypes.TRUE', then -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBounds' /must/ have -- been called in the current command buffer prior to this drawing -- command @@ -6767,7 +8118,8 @@ foreign import ccall -- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07837# If the bound -- graphics pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_COMPARE_MASK' --- dynamic state enabled then +-- dynamic state enabled, and if the current @stencilTestEnable@ state +-- is 'Vulkan.Core10.FundamentalTypes.TRUE', then -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilCompareMask' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -6784,7 +8136,8 @@ foreign import ccall -- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07838# If the bound -- graphics pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_WRITE_MASK' --- dynamic state enabled then +-- dynamic state enabled, and if the current @stencilTestEnable@ state +-- is 'Vulkan.Core10.FundamentalTypes.TRUE', then -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilWriteMask' /must/ -- have been called in the current command buffer prior to this drawing -- command @@ -6801,7 +8154,8 @@ foreign import ccall -- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07839# If the bound -- graphics pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_STENCIL_REFERENCE' --- dynamic state enabled then +-- dynamic state enabled, and if the current @stencilTestEnable@ state +-- is 'Vulkan.Core10.FundamentalTypes.TRUE', then -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilReference' /must/ -- have been called in the current command buffer prior to this drawing -- command @@ -6841,7 +8195,10 @@ foreign import ccall -- object is bound to any graphics stage, and the most recent call to -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT' -- in the current command buffer set @sampleLocationsEnable@ to --- 'Vulkan.Core10.FundamentalTypes.TRUE', +-- 'Vulkan.Core10.FundamentalTypes.TRUE', and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -6865,7 +8222,10 @@ foreign import ccall -- drawing command -- -- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08627# If a shader --- object is bound to any graphics stage, +-- object is bound to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetCullMode' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -6879,7 +8239,10 @@ foreign import ccall -- drawing command -- -- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08628# If a shader --- object is bound to any graphics stage, +-- object is bound to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetFrontFace' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -6893,7 +8256,10 @@ foreign import ccall -- drawing command -- -- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08629# If a shader --- object is bound to any graphics stage, +-- object is bound to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -6907,7 +8273,10 @@ foreign import ccall -- drawing command -- -- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08630# If a shader --- object is bound to any graphics stage, +-- object is bound to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthWriteEnable' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -6922,9 +8291,12 @@ foreign import ccall -- -- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08631# If a shader -- object is bound to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthTestEnable' -- in the current command buffer set @depthTestEnable@ to --- 'Vulkan.Core10.FundamentalTypes.TRUE', +-- 'Vulkan.Core10.FundamentalTypes.TRUE', then -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthCompareOp' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -6940,7 +8312,10 @@ foreign import ccall -- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08632# If a shader -- object is bound to any graphics stage, and the -- --- feature is enabled, the +-- feature is enabled, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then the -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -7060,6 +8435,14 @@ foreign import ccall -- the last call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- +-- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-09232# If a shader +-- object is bound to any graphics stage, and the +-- @VK_NV_clip_space_w_scaling@ extension is enabled on the device, +-- then +-- 'Vulkan.Extensions.VK_NV_clip_space_w_scaling.cmdSetViewportWScalingNV' +-- must have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08636# If a shader -- object is bound to any graphics stage, and the -- @VK_NV_clip_space_w_scaling@ extension is enabled on the device, @@ -7093,6 +8476,31 @@ foreign import ccall -- the last call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetViewportWithCount' -- +-- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-shadingRateImage-09233# If +-- the +-- +-- feature is enabled, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set rasterizerDiscardEnable to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then +-- 'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetCoarseSampleOrderNV' +-- must have been called in the current command buffer prior to this +-- drawing command +-- +-- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-shadingRateImage-09234# If a +-- shader object is bound to any graphics stage, and the +-- +-- feature is enabled on the device, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set rasterizerDiscardEnable to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetShadingRateImageEnableNV' +-- in the current command buffer set shadingRateImageEnable to +-- 'Vulkan.Core10.FundamentalTypes.TRUE', then +-- 'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetViewportShadingRatePaletteNV' +-- must have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08637# If a shader -- object is bound to any graphics stage, and the -- @@ -7145,6 +8553,14 @@ foreign import ccall -- /must/ have been called in the current command buffer prior to this -- drawing command -- +-- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-exclusiveScissor-09235# If a +-- shader object is bound to any graphics stage, and the +-- +-- feature is enabled, then +-- 'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorEnableNV' +-- must have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08638# If a shader -- object is bound to any graphics stage, and the most recent call to -- 'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorEnableNV' @@ -7196,7 +8612,9 @@ foreign import ccall -- 'Vulkan.Core10.Enums.LogicOp.LogicOp' value -- -- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08641# If a shader --- object is bound to any graphics stage, and the +-- object is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage, and the -- -- feature is enabled on the device, and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' @@ -7282,6 +8700,11 @@ foreign import ccall -- to be the same as the number of samples for the current render pass -- color and\/or depth\/stencil attachments -- +-- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08876# If a shader +-- object is bound to any graphics stage, the current render pass +-- instance /must/ have been begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' +-- -- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-imageView-06172# If the -- current render pass instance was begun with -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', @@ -7354,8 +8777,11 @@ foreign import ccall -- equal to -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ -- --- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-colorAttachmentCount-06180# --- If the current render pass instance was begun with +-- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-dynamicRenderingUnusedAttachments-08910# +-- If the +-- +-- feature is not enabled, and the current render pass instance was +-- begun with -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' -- and -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ @@ -7368,8 +8794,32 @@ foreign import ccall -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@ -- used to create the currently bound graphics pipeline -- --- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-colorAttachmentCount-07616# --- If the current render pass instance was begun with +-- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-dynamicRenderingUnusedAttachments-08911# +-- If the +-- +-- feature is enabled, and the current render pass instance was begun +-- with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' +-- and +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ +-- greater than @0@, then each element of the +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@ +-- array with a @imageView@ not equal to +-- 'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created +-- with a 'Vulkan.Core10.Enums.Format.Format' equal to the +-- corresponding element of +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@ +-- used to create the currently bound graphics pipeline, or the +-- corresponding element of +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@, +-- if it exists, /must/ be +-- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' +-- +-- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-dynamicRenderingUnusedAttachments-08912# +-- If the +-- +-- feature is not enabled, and the current render pass instance was +-- begun with -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' -- and -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ @@ -7382,6 +8832,132 @@ foreign import ccall -- used to create the currently bound pipeline equal to -- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' -- +-- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-colorAttachmentCount-09362# +-- If the current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- with a +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ +-- equal to @1@, there is no shader object bound to any graphics stage, +-- and a color attachment with a resolve mode of +-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID', +-- each element of the +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@ +-- array with a @resolveImageView@ not equal to +-- 'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created +-- with an image created with a +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- value equal to the +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- value used to create the currently bound graphics pipeline +-- +-- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-09363# If there is no +-- shader object bound to any graphics stage, the current render pass +-- instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' +-- and a +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ +-- equal to @1@, and a color attachment with a resolve mode of +-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID', +-- each element of the +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@ +-- array with a @imageView@ not equal to +-- 'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created +-- with an image created with a +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- value equal to the +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- value used to create the currently bound graphics pipeline +-- +-- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-09364# If the current +-- render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- there is no shader object bound to any graphics stage, and the +-- currently bound graphics pipeline was created with a non-zero +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- value and with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT' +-- dynamic state enabled, then +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT' +-- /must/ have set the blend enable to +-- 'Vulkan.Core10.FundamentalTypes.FALSE' prior to this drawing command +-- +-- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-09365# If the current +-- render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- there is no shader object bound to any graphics stage, and the +-- currently bound graphics pipeline was created with a non-zero +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- value and with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT' +-- dynamic state enabled, then +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT' +-- /must/ have set @rasterizationSamples@ to +-- 'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT' prior +-- to this drawing command +-- +-- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-09366# If there is a +-- shader object bound to any graphics stage, and the current render +-- pass includes a color attachment that uses the +-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID' +-- resolve mode, then +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT' +-- /must/ have set blend enable to +-- 'Vulkan.Core10.FundamentalTypes.FALSE' prior to this drawing command +-- +-- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-rasterizationSamples-09367# +-- If there is a shader object bound to any graphics stage, and the +-- current render pass includes a color attachment that uses the +-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID' +-- resolve mode, then +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT' +-- /must/ have set @rasterizationSamples@ to +-- 'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT' prior +-- to this drawing command +-- +-- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-09368# If the current +-- render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- there is no shader object bound to any graphics stage, and the +-- currently bound graphics pipeline was created with a non-zero +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- value and with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR' +-- dynamic state enabled, then +-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR' +-- /must/ have set @pFragmentSize->width@ to @1@ prior to this drawing +-- command +-- +-- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-09369# If the current +-- render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- there is no shader object bound to any graphics stage, and the +-- currently bound graphics pipeline was created with a non-zero +-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'::@externalFormat@ +-- value and with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR' +-- dynamic state enabled, then +-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR' +-- /must/ have set @pFragmentSize->height@ to @1@ prior to this drawing +-- command +-- +-- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-pFragmentSize-09370# If +-- there is a shader object bound to any graphics stage, and the +-- current render pass includes a color attachment that uses the +-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID' +-- resolve mode, then +-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR' +-- /must/ have set @pFragmentSize->width@ to @1@ prior to this drawing +-- command +-- +-- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-pFragmentSize-09371# If +-- there is a shader object bound to any graphics stage, and the +-- current render pass includes a color attachment that uses the +-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID' +-- resolve mode, then +-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR' +-- /must/ have set @pFragmentSize->height@ to @1@ prior to this drawing +-- command +-- -- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07749# If the bound -- graphics pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT' @@ -7393,7 +8969,9 @@ foreign import ccall -- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08646# If the -- -- feature is enabled on the device, and a shader object is bound to --- the fragment stage, and the most recent call to +-- the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage, and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' -- in the current command buffer set @rasterizerDiscardEnable@ to -- 'Vulkan.Core10.FundamentalTypes.FALSE', then @@ -7413,7 +8991,9 @@ foreign import ccall -- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08647# If the -- -- feature is enabled on the device, and a shader object is bound to --- the fragment stage, and the most recent call to +-- the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage, and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' -- in the current command buffer set @rasterizerDiscardEnable@ to -- 'Vulkan.Core10.FundamentalTypes.FALSE', then the @attachmentCount@ @@ -7439,6 +9019,17 @@ foreign import ccall -- /must/ have been called in the current command buffer prior to this -- drawing command -- +-- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-rasterizerDiscardEnable-09236# +-- If the @VK_EXT_discard_rectangles@ extension is enabled, and a +-- shader object is bound to any graphics stage, and the most recent +-- call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then +-- 'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEXT' +-- /must/ have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08648# If the -- @VK_EXT_discard_rectangles@ extension is enabled, and a shader -- object is bound to any graphics stage, and the most recent call to @@ -7470,10 +9061,24 @@ foreign import ccall -- /must/ have been called in the current command buffer prior to this -- drawing command -- --- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-pDepthAttachment-06181# If --- the current render pass instance was begun with --- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' --- and +-- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-dynamicRenderingUnusedAttachments-08913# +-- If the current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- the +-- +-- feature is not enabled, and +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@ +-- was 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@ +-- used to create the currently bound graphics pipeline /must/ be equal +-- to 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' +-- +-- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-dynamicRenderingUnusedAttachments-08914# +-- If current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- the +-- +-- feature is not enabled, and -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@ -- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@ @@ -7481,20 +9086,39 @@ foreign import ccall -- to the 'Vulkan.Core10.Enums.Format.Format' used to create -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@ -- --- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-pDepthAttachment-07617# If --- the current render pass instance was begun with --- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' --- and +-- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-dynamicRenderingUnusedAttachments-08915# +-- If the current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- the +-- +-- feature is enabled, -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@ --- was 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of +-- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the value of -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@ +-- used to create the currently bound graphics pipeline was not equal +-- to the 'Vulkan.Core10.Enums.Format.Format' used to create +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@, +-- the value of the format /must/ be +-- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' +-- +-- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-dynamicRenderingUnusedAttachments-08916# +-- If the current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- the +-- +-- feature is not enabled, and +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@ +-- was 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@ -- used to create the currently bound graphics pipeline /must/ be equal -- to 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' -- --- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-pStencilAttachment-06182# If --- the current render pass instance was begun with --- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' --- and +-- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-dynamicRenderingUnusedAttachments-08917# +-- If current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- the +-- +-- feature is not enabled, and -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@ -- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@ @@ -7502,15 +9126,20 @@ foreign import ccall -- to the 'Vulkan.Core10.Enums.Format.Format' used to create -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@ -- --- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-pStencilAttachment-07618# If --- the current render pass instance was begun with --- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' --- and +-- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-dynamicRenderingUnusedAttachments-08918# +-- If the current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- the +-- +-- feature is enabled, -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@ --- was 'Vulkan.Core10.APIConstants.NULL_HANDLE', the value of +-- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', and the value of -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@ --- used to create the currently bound graphics pipeline /must/ be equal --- to 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' +-- used to create the currently bound graphics pipeline was not equal +-- to the 'Vulkan.Core10.Enums.Format.Format' used to create +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@, +-- the value of the format /must/ be +-- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' -- -- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-imageView-06183# If the -- current render pass instance was begun with @@ -7657,6 +9286,40 @@ foreign import ccall -- 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@renderPass@ -- equal to 'Vulkan.Core10.APIConstants.NULL_HANDLE' -- +-- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-pColorAttachments-08963# If +-- the current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- there is a graphics pipeline bound with a fragment shader that +-- statically writes to a color attachment, the color write mask is not +-- zero, color writes are enabled, and the corresponding element of the +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments->imageView@ +-- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', then the +-- corresponding element of +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@ +-- used to create the pipeline /must/ not be +-- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' +-- +-- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-pDepthAttachment-08964# If +-- the current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- there is a graphics pipeline bound, depth test is enabled, depth +-- write is enabled, and the +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@ +-- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', then the +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@depthAttachmentFormat@ +-- used to create the pipeline /must/ not be +-- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' +-- +-- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-pStencilAttachment-08965# If +-- the current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering', +-- there is a graphics pipeline bound, stencil test is enabled and the +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@ +-- was not 'Vulkan.Core10.APIConstants.NULL_HANDLE', then the +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@stencilAttachmentFormat@ +-- used to create the pipeline /must/ not be +-- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' +-- -- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-primitivesGeneratedQueryWithRasterizerDiscard-06708# -- If the -- @@ -7683,6 +9346,22 @@ foreign import ccall -- /must/ have been called in the current command buffer prior to this -- drawing command -- +-- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07620# If the bound +-- graphics pipeline state was created with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT' +-- dynamic state enabled then +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClampEnableEXT' +-- /must/ have been called in the current command buffer prior to this +-- drawing command +-- +-- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-09237# If a shader +-- object is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT' +-- stage, then +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetTessellationDomainOriginEXT' +-- /must/ have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08650# If the -- -- feature is enabled, and a shader object is bound to any graphics @@ -7753,6 +9432,17 @@ foreign import ccall -- /must/ have been called in the current command buffer prior to this -- drawing command -- +-- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-alphaToCoverageEnable-08919# +-- If the bound graphics pipeline state was created with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT' +-- dynamic state enabled, and @alphaToCoverageEnable@ was +-- 'Vulkan.Core10.FundamentalTypes.TRUE' in the last call to +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT', +-- then the +-- +-- /must/ contain a variable for the alpha @Component@ word in +-- @Location@ 0 at @Index@ 0 +-- -- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08654# If a shader -- object is bound to any graphics stage, and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' @@ -7762,6 +9452,16 @@ foreign import ccall -- /must/ have been called in the current command buffer prior to this -- drawing command -- +-- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-alphaToCoverageEnable-08920# +-- If a shader object is bound to any graphics stage, and the most +-- recent call to +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT' +-- in the current command buffer set @alphaToCoverageEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.TRUE', then the +-- +-- /must/ contain a variable for the alpha @Component@ word in +-- @Location@ 0 at @Index@ 0 +-- -- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07625# If the bound -- graphics pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT' @@ -7791,7 +9491,8 @@ foreign import ccall -- -- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08656# If the -- --- feature is enabled, and a shader object is bound to any graphics +-- feature is enabled, and a shader object is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' -- stage, and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' -- in the current command buffer set @rasterizerDiscardEnable@ to @@ -7809,7 +9510,9 @@ foreign import ccall -- drawing command -- -- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08657# If a shader --- object is bound to any graphics stage, and the most recent call to +-- object is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage, and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' -- in the current command buffer set @rasterizerDiscardEnable@ to -- 'Vulkan.Core10.FundamentalTypes.FALSE', then @@ -7846,7 +9549,9 @@ foreign import ccall -- drawing command -- -- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08659# If a shader --- object is bound to any graphics stage, and the most recent call to +-- object is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage, and the most recent call to -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' -- in the current command buffer set @rasterizerDiscardEnable@ to -- 'Vulkan.Core10.FundamentalTypes.FALSE', then @@ -7864,7 +9569,8 @@ foreign import ccall -- -- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08660# If the -- --- feature is enabled, and a shader object is bound to the geometry +-- feature is enabled, and a shader object is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT' -- stage, then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationStreamEXT' -- /must/ have been called in the current command buffer prior to this @@ -7964,7 +9670,9 @@ foreign import ccall -- -- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08665# If the -- @VK_EXT_provoking_vertex@ extension is enabled, and a shader object --- is bound to the vertex stage, then +-- is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT' +-- stage, then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetProvokingVertexModeEXT' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -8073,7 +9781,7 @@ foreign import ccall -- stage, then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClipNegativeOneToOneEXT' -- /must/ have been called in the current command buffer prior to this --- drawing command ifdef::VK_EXT_extended_dynamic_state3 +-- drawing command -- -- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07640# If the bound -- graphics pipeline state was created with the @@ -8081,7 +9789,7 @@ foreign import ccall -- dynamic state enabled then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetViewportWScalingEnableNV' -- /must/ have been called in the current command buffer prior to this --- drawing command endif::VK_EXT_extended_dynamic_state3 +-- drawing command -- -- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08674# If the -- @VK_NV_clip_space_w_scaling@ extension is enabled, and a shader @@ -8115,7 +9823,12 @@ foreign import ccall -- -- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08676# If the -- @VK_NV_fragment_coverage_to_color@ extension is enabled, and a --- shader object is bound to any graphics stage, then +-- shader object is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -8130,8 +9843,9 @@ foreign import ccall -- -- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08677# If the -- @VK_NV_fragment_coverage_to_color@ extension is enabled, and a --- shader object is bound to any graphics stage, and the most recent --- call to +-- shader object is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage, and the most recent call to -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV' -- in the current command buffer set @coverageToColorEnable@ to -- 'Vulkan.Core10.FundamentalTypes.TRUE', then @@ -8149,7 +9863,10 @@ foreign import ccall -- -- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08678# If the -- @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader --- object is bound to any graphics stage, then +-- object is bound to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationModeNV' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -8164,7 +9881,15 @@ foreign import ccall -- -- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08679# If the -- @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader --- object is bound to any graphics stage, then +-- object is bound to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationModeNV' +-- in the current command buffer set coverageModulationMode to any +-- value other than +-- 'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.COVERAGE_MODULATION_MODE_NONE_NV', +-- then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -8180,6 +9905,9 @@ foreign import ccall -- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08680# If the -- @VK_NV_framebuffer_mixed_samples@ extension is enabled, and a shader -- object is bound to any graphics stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', and the most recent call to -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV' -- in the current command buffer set @coverageModulationTableEnable@ to -- 'Vulkan.Core10.FundamentalTypes.TRUE', then @@ -8195,10 +9923,26 @@ foreign import ccall -- /must/ have been called in the current command buffer prior to this -- drawing command -- +-- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-pipelineFragmentShadingRate-09238# +-- If the +-- +-- feature is enabled, and a shader object is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set rasterizerDiscardEnable to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then +-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR' +-- must have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08681# If the -- -- feature is enabled, and a shader object is bound to any graphics --- stage, then +-- stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetShadingRateImageEnableNV' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -8208,13 +9952,16 @@ foreign import ccall -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV' -- dynamic state enabled then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRepresentativeFragmentTestEnableNV' --- must have been called in the current command buffer prior to this +-- /must/ have been called in the current command buffer prior to this -- drawing command -- -- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08682# If the -- -- feature is enabled, and a shader object is bound to any graphics --- stage, then +-- stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRepresentativeFragmentTestEnableNV' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -8230,7 +9977,10 @@ foreign import ccall -- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08683# If the -- -- feature is enabled, and a shader object is bound to any graphics --- stage, then +-- stage, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE', then -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageReductionModeNV' -- /must/ have been called in the current command buffer prior to this -- drawing command @@ -8279,18 +10029,29 @@ foreign import ccall -- in the last call to -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT' -- --- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-multisampledRenderToSingleSampled-07475# +-- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-rasterizationSamples-07474# -- If the bound graphics pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT' --- state enabled, and none of the @VK_AMD_mixed_attachment_samples@ --- extension, @VK_NV_framebuffer_mixed_samples@ extension, or the --- --- feature is enabled, then the @rasterizationSamples@ in the last call --- to +-- state enabled, and neither the @VK_AMD_mixed_attachment_samples@ nor +-- the @VK_NV_framebuffer_mixed_samples@ extensions are enabled, then +-- the @rasterizationSamples@ in the last call to -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT' -- /must/ be the same as the current subpass color and\/or -- depth\/stencil attachments -- +-- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-09211# If the bound +-- graphics pipeline state was created with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT' +-- state enabled, or a shader object is bound to any graphics stage, +-- and the current render pass instance includes a +-- 'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT' +-- structure with @multisampledRenderToSingleSampledEnable@ equal to +-- 'Vulkan.Core10.FundamentalTypes.TRUE', then the +-- @rasterizationSamples@ in the last call to +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT' +-- /must/ be the same as the @rasterizationSamples@ member of that +-- structure +-- -- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-firstAttachment-07476# If -- the bound graphics pipeline state was created with the -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT' @@ -8349,7 +10110,7 @@ foreign import ccall -- and -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendAdvancedEXT' -- have enabled advanced blending, then the number of active color --- attachments in the current subpass must not exceed +-- attachments in the current subpass /must/ not exceed -- -- -- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-primitivesGeneratedQueryWithNonZeroStreams-07481# @@ -8511,7 +10272,7 @@ foreign import ccall -- If the @VK_NV_framebuffer_mixed_samples@ extension is enabled, and -- if current subpass has a depth\/stencil attachment and depth test, -- stencil test, or depth bounds test are enabled in the currently --- bound pipeline state, then the current @rasterizationSamples@ must +-- bound pipeline state, then the current @rasterizationSamples@ /must/ -- be the same as the sample count of the depth\/stencil attachment -- -- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-coverageToColorEnable-07490# @@ -8542,7 +10303,7 @@ foreign import ccall -- states enabled, the current coverage reduction mode -- @coverageReductionMode@, then the current @rasterizationSamples@, -- and the sample counts for the color and depth\/stencil attachments --- (if the subpass has them) must be a valid combination returned by +-- (if the subpass has them) /must/ be a valid combination returned by -- 'Vulkan.Extensions.VK_NV_coverage_reduction_mode.getPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV' -- -- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-viewportCount-07492# If the @@ -8630,7 +10391,7 @@ foreign import ccall -- -- feature /must/ be enabled and -- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@strictLines@ --- must be VK_TRUE +-- /must/ be 'Vulkan.Core10.FundamentalTypes.TRUE' -- -- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-conservativePointAndLineRasterization-07499# -- If the bound graphics pipeline state was created with the @@ -8657,7 +10418,15 @@ foreign import ccall -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT', -- then -- --- must not be active +-- /must/ not be active +-- +-- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08877# If the bound +-- graphics pipeline state was created with the +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT' +-- dynamic state +-- 'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT' +-- /must/ have been called in the current command buffer prior to this +-- drawing command -- -- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07850# If dynamic state -- was inherited from @@ -8668,7 +10437,7 @@ foreign import ccall -- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08684# If there is no -- bound graphics pipeline, -- 'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/ --- have been called on the current command buffer with @pStages@ with +-- have been called in the current command buffer with @pStages@ with -- an element of -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT' -- @@ -8677,7 +10446,7 @@ foreign import ccall -- -- feature is enabled, -- 'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/ --- have been called on the current command buffer with @pStages@ with +-- have been called in the current command buffer with @pStages@ with -- an element of -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT' -- @@ -8686,7 +10455,7 @@ foreign import ccall -- -- feature is enabled, -- 'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/ --- have been called on the current command buffer with @pStages@ with +-- have been called in the current command buffer with @pStages@ with -- an element of -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT' -- @@ -8695,14 +10464,14 @@ foreign import ccall -- -- feature is enabled, -- 'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/ --- have been called on the current command buffer with @pStages@ with +-- have been called in the current command buffer with @pStages@ with -- an element of -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT' -- -- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08688# If there is no -- bound graphics pipeline, -- 'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/ --- have been called on the current command buffer with @pStages@ with +-- have been called in the current command buffer with @pStages@ with -- an element of -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' -- @@ -8711,7 +10480,7 @@ foreign import ccall -- -- feature is enabled, -- 'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/ --- have been called on the current command buffer with @pStages@ with +-- have been called in the current command buffer with @pStages@ with -- an element of -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT' -- @@ -8720,7 +10489,7 @@ foreign import ccall -- -- feature is enabled, -- 'Vulkan.Extensions.VK_EXT_shader_object.cmdBindShadersEXT' /must/ --- have been called on the current command buffer with @pStages@ with +-- have been called in the current command buffer with @pStages@ with -- an element of -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT' -- @@ -8732,8 +10501,8 @@ foreign import ccall -- features is enabled, one of the -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_VERTEX_BIT' or -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT' --- stages must have a valid 'Vulkan.Extensions.Handles.ShaderEXT' --- bound, and the other must have no +-- stages /must/ have a valid 'Vulkan.Extensions.Handles.ShaderEXT' +-- bound, and the other /must/ have no -- 'Vulkan.Extensions.Handles.ShaderEXT' bound -- -- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08694# If there is no @@ -8798,6 +10567,37 @@ foreign import ccall -- 'Vulkan.Extensions.VK_EXT_shader_object.createShadersEXT' call -- /must/ not have any 'Vulkan.Extensions.Handles.ShaderEXT' bound -- +-- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08878# All bound +-- graphics shader objects /must/ have been created with identical or +-- identically defined push constant ranges +-- +-- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08879# All bound +-- graphics shader objects /must/ have been created with identical or +-- identically defined arrays of descriptor set layouts +-- +-- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-colorAttachmentCount-09372# +-- If the current render pass instance was begun with +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering' +-- and a +-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@ +-- equal to @1@, a color attachment with a resolve mode of +-- 'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID', +-- and a fragment shader is bound, it /must/ not declare the +-- @DepthReplacing@ or @StencilRefReplacingEXT@ execution modes +-- +-- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08880# If a shader +-- object is bound to the +-- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_FRAGMENT_BIT' +-- stage and the +-- +-- feature is enabled on the device, and the most recent call to +-- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' +-- in the current command buffer set @rasterizerDiscardEnable@ to +-- 'Vulkan.Core10.FundamentalTypes.FALSE' +-- 'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state.cmdSetAttachmentFeedbackLoopEnableEXT' +-- /must/ have been called in the current command buffer prior to this +-- drawing command +-- -- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-pDynamicStates-08715# If the -- bound graphics pipeline state includes a fragment shader stage, was -- created with @@ -8822,6 +10622,33 @@ foreign import ccall -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilWriteMask' /must/ -- be @0@ -- +-- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-09116# If a shader +-- object is bound to any graphics stage or the currently bound +-- graphics pipeline was created with +-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_MASK_EXT', +-- and the format of any color attachment is +-- 'Vulkan.Core10.Enums.Format.FORMAT_E5B9G9R9_UFLOAT_PACK32', the +-- corresponding element of the @pColorWriteMasks@ parameter of +-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorWriteMaskEXT' +-- /must/ either include all of +-- 'Vulkan.Core10.Enums.ColorComponentFlagBits.COLOR_COMPONENT_R_BIT', +-- 'Vulkan.Core10.Enums.ColorComponentFlagBits.COLOR_COMPONENT_G_BIT', +-- and +-- 'Vulkan.Core10.Enums.ColorComponentFlagBits.COLOR_COMPONENT_B_BIT', +-- or none of them +-- +-- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-maxFragmentDualSrcAttachments-09239# +-- If +-- +-- is enabled for any attachment where either the source or destination +-- blend factors for that attachment +-- , +-- the maximum value of @Location@ for any output attachment +-- +-- in the @Fragment@ @Execution@ @Model@ executed by this command +-- /must/ be less than +-- +-- -- - #VUID-vkCmdDrawMeshTasksIndirectCountNV-stage-06480# The bound -- graphics pipeline /must/ not have been created with the -- 'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo'::@stage@ diff --git a/src/Vulkan/Extensions/VK_NV_mesh_shader.hs-boot b/src/Vulkan/Extensions/VK_NV_mesh_shader.hs-boot index 10401c7a4..e60a4c4ae 100644 --- a/src/Vulkan/Extensions/VK_NV_mesh_shader.hs-boot +++ b/src/Vulkan/Extensions/VK_NV_mesh_shader.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- diff --git a/src/Vulkan/Extensions/VK_NV_optical_flow.hs b/src/Vulkan/Extensions/VK_NV_optical_flow.hs index a6c5302fb..b17a1c7ed 100644 --- a/src/Vulkan/Extensions/VK_NV_optical_flow.hs +++ b/src/Vulkan/Extensions/VK_NV_optical_flow.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- and @@ -885,7 +888,7 @@ foreign import ccall -- -- - #VUID-vkCmdOpticalFlowExecuteNV-commandBuffer-cmdpool# The -- 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was --- allocated from /must/ support opticalflow operations +-- allocated from /must/ support optical flow operations -- -- - #VUID-vkCmdOpticalFlowExecuteNV-renderpass# This command /must/ only -- be called outside of a render pass instance diff --git a/src/Vulkan/Extensions/VK_NV_optical_flow.hs-boot b/src/Vulkan/Extensions/VK_NV_optical_flow.hs-boot index 280adf6ee..9fb32f743 100644 --- a/src/Vulkan/Extensions/VK_NV_optical_flow.hs-boot +++ b/src/Vulkan/Extensions/VK_NV_optical_flow.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- and diff --git a/src/Vulkan/Extensions/VK_NV_present_barrier.hs b/src/Vulkan/Extensions/VK_NV_present_barrier.hs index c9e5c5596..6b9ce73f1 100644 --- a/src/Vulkan/Extensions/VK_NV_present_barrier.hs +++ b/src/Vulkan/Extensions/VK_NV_present_barrier.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- and diff --git a/src/Vulkan/Extensions/VK_NV_present_barrier.hs-boot b/src/Vulkan/Extensions/VK_NV_present_barrier.hs-boot index 05632486b..b25a0385d 100644 --- a/src/Vulkan/Extensions/VK_NV_present_barrier.hs-boot +++ b/src/Vulkan/Extensions/VK_NV_present_barrier.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- and diff --git a/src/Vulkan/Extensions/VK_NV_ray_tracing.hs b/src/Vulkan/Extensions/VK_NV_ray_tracing.hs index b27eeb527..40ec33985 100644 --- a/src/Vulkan/Extensions/VK_NV_ray_tracing.hs +++ b/src/Vulkan/Extensions/VK_NV_ray_tracing.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 3 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- and @@ -143,8 +146,6 @@ -- -- - 'GeometryTrianglesNV' -- --- - 'Vulkan.Extensions.VK_KHR_get_memory_requirements2.MemoryRequirements2KHR' --- -- - 'RayTracingPipelineCreateInfoNV' -- -- - 'RayTracingShaderGroupCreateInfoNV' @@ -160,6 +161,12 @@ -- -- - 'WriteDescriptorSetAccelerationStructureNV' -- +-- If +-- +-- is supported: +-- +-- - 'Vulkan.Extensions.VK_KHR_get_memory_requirements2.MemoryRequirements2KHR' +-- -- == New Enums -- -- - 'AccelerationStructureMemoryRequirementsTypeNV' @@ -232,11 +239,6 @@ -- -- - 'COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_NV' -- --- - Extending --- 'Vulkan.Extensions.VK_EXT_debug_report.DebugReportObjectTypeEXT': --- --- - 'Vulkan.Extensions.VK_EXT_debug_report.DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT' --- -- - Extending 'Vulkan.Core10.Enums.DescriptorType.DescriptorType': -- -- - 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV' @@ -342,6 +344,15 @@ -- -- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV' -- +-- If +-- +-- is supported: +-- +-- - Extending +-- 'Vulkan.Extensions.VK_EXT_debug_report.DebugReportObjectTypeEXT': +-- +-- - 'Vulkan.Extensions.VK_EXT_debug_report.DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT' +-- -- == New or Modified Built-In Variables -- -- - @@ -441,9 +452,7 @@ -- 'GeometryAABBNV', 'GeometryDataNV', 'GeometryFlagBitsNV', -- 'GeometryFlagsNV', 'GeometryInstanceFlagBitsNV', -- 'GeometryInstanceFlagsNV', 'GeometryNV', 'GeometryTrianglesNV', --- 'GeometryTypeNV', --- 'Vulkan.Extensions.VK_KHR_get_memory_requirements2.MemoryRequirements2KHR', --- 'PhysicalDeviceRayTracingPropertiesNV', +-- 'GeometryTypeNV', 'PhysicalDeviceRayTracingPropertiesNV', -- 'RayTracingPipelineCreateInfoNV', 'RayTracingShaderGroupCreateInfoNV', -- 'RayTracingShaderGroupTypeNV', 'TransformMatrixNV', -- 'WriteDescriptorSetAccelerationStructureNV', @@ -682,6 +691,7 @@ import Vulkan.Core10.Handles (Pipeline(..)) import Vulkan.Core10.Handles (PipelineCache) import Vulkan.Core10.Handles (PipelineCache(..)) import Vulkan.Core10.Enums.PipelineCreateFlagBits (PipelineCreateFlags) +import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_maintenance5 (PipelineCreateFlags2CreateInfoKHR) import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_pipeline_creation_feedback (PipelineCreationFeedbackCreateInfo) import Vulkan.Core10.Handles (PipelineLayout) import Vulkan.Core10.Pipeline (PipelineShaderStageCreateInfo) @@ -865,8 +875,11 @@ foreign import ccall -- 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 +-- in @pCreateInfo@. +-- +-- Once memory has been bound to the acceleration structure using +-- 'bindAccelerationStructureMemoryNV', that memory is populated by calls +-- to 'cmdBuildAccelerationStructureNV' and -- 'cmdCopyAccelerationStructureNV'. -- -- Acceleration structure creation uses the count and type information from @@ -1761,6 +1774,16 @@ foreign import ccall -- /must/ contain -- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT' -- +-- - #VUID-vkCmdTraceRaysNV-None-02693# If the +-- +-- extension is not enabled and any 'Vulkan.Core10.Handles.ImageView' +-- is sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a +-- result of this command, it /must/ not have a +-- 'Vulkan.Core10.Enums.ImageViewType.ImageViewType' of +-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_3D', +-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE', or +-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE_ARRAY' +-- -- - #VUID-vkCmdTraceRaysNV-filterCubic-02694# Any -- 'Vulkan.Core10.Handles.ImageView' being sampled with -- 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as a result of this @@ -1786,6 +1809,33 @@ foreign import ccall -- returned by -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceImageFormatProperties2' -- +-- - #VUID-vkCmdTraceRaysNV-cubicRangeClamp-09212# If the +-- +-- feature is not enabled, then any 'Vulkan.Core10.Handles.ImageView' +-- being sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as +-- a result of this command +-- +-- [/must/ not have a 'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo'] +-- @reductionMode@ equal to +-- 'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM' +-- +-- - #VUID-vkCmdTraceRaysNV-reductionMode-09213# Any +-- 'Vulkan.Core10.Handles.ImageView' being sampled with a +-- 'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo'::@reductionMode@ +-- equal to +-- 'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM' +-- as a result of this command /must/ sample with +-- 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' +-- +-- - #VUID-vkCmdTraceRaysNV-selectableCubicWeights-09214# If the +-- +-- feature is not enabled, then any 'Vulkan.Core10.Handles.ImageView' +-- being sampled with 'Vulkan.Core10.Enums.Filter.FILTER_CUBIC_EXT' as +-- a result of this command /must/ have +-- 'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.SamplerCubicWeightsCreateInfoQCOM'::@cubicWeights@ +-- equal to +-- 'Vulkan.Extensions.VK_QCOM_filter_cubic_weights.CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM' +-- -- - #VUID-vkCmdTraceRaysNV-flags-02696# Any -- 'Vulkan.Core10.Handles.Image' created with a -- 'Vulkan.Core10.Image.ImageCreateInfo'::@flags@ containing @@ -1827,11 +1877,9 @@ foreign import ccall -- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT' -- -- - #VUID-vkCmdTraceRaysNV-None-08600# For each set /n/ that is --- statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to the --- pipeline bind point used by this command, or by any of the --- 'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages --- corresponding to the pipeline bind point used by this command, a --- descriptor set /must/ have been bound to /n/ at the same pipeline +-- statically used by +-- , +-- a descriptor set /must/ have been bound to /n/ at the same pipeline -- bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is -- compatible for set /n/, with the -- 'Vulkan.Core10.Handles.PipelineLayout' or @@ -1841,12 +1889,10 @@ foreign import ccall -- -- -- - #VUID-vkCmdTraceRaysNV-None-08601# For each push constant that is --- statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to the --- pipeline bind point used by this command, or by any of the --- 'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages --- corresponding to the pipeline bind point used by this command, a --- push constant value /must/ have been set for the same pipeline bind --- point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is +-- statically used by +-- , +-- a push constant value /must/ have been set for the same pipeline +-- bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is -- compatible for push constants, with the -- 'Vulkan.Core10.Handles.PipelineLayout' or -- 'Vulkan.Core10.Handles.DescriptorSetLayout' and @@ -1858,12 +1904,10 @@ foreign import ccall -- - #VUID-vkCmdTraceRaysNV-maintenance4-08602# If the -- -- feature is not enabled, then for each push constant that is --- statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to the --- pipeline bind point used by this command, or by any of the --- 'Vulkan.Extensions.Handles.ShaderEXT' objects bound to stages --- corresponding to the pipeline bind point used by this command, a --- push constant value /must/ have been set for the same pipeline bind --- point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is +-- statically used by +-- , +-- a push constant value /must/ have been set for the same pipeline +-- bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is -- compatible for push constants, with the -- 'Vulkan.Core10.Handles.PipelineLayout' or -- 'Vulkan.Core10.Handles.DescriptorSetLayout' and @@ -2024,34 +2068,25 @@ foreign import ccall -- buffer as specified in the descriptor set bound to the same pipeline -- bind point -- --- - #VUID-vkCmdTraceRaysNV-commandBuffer-08614# If @commandBuffer@ is an +-- - #VUID-vkCmdTraceRaysNV-commandBuffer-02707# If @commandBuffer@ is an -- unprotected command buffer and -- --- is not supported, any resource accessed by the --- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind --- point used by this command or any --- 'Vulkan.Extensions.Handles.ShaderEXT' object bound to a stage --- corresponding to the pipeline bind point used by this command /must/ --- not be a protected resource --- --- - #VUID-vkCmdTraceRaysNV-None-08615# If the --- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind --- point used by this command or any --- 'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding --- to the pipeline bind point used by this command accesses a --- 'Vulkan.Core10.Handles.Sampler' or 'Vulkan.Core10.Handles.ImageView' --- object that enables +-- is not supported, any resource accessed by +-- +-- /must/ not be a protected resource +-- +-- - #VUID-vkCmdTraceRaysNV-None-06550# If +-- +-- accesses a 'Vulkan.Core10.Handles.Sampler' or +-- 'Vulkan.Core10.Handles.ImageView' object that enables -- , -- that object /must/ only be used with @OpImageSample*@ or -- @OpImageSparseSample*@ instructions -- --- - #VUID-vkCmdTraceRaysNV-ConstOffset-08616# If the --- 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind --- point used by this command or any --- 'Vulkan.Extensions.Handles.ShaderEXT' bound to a stage corresponding --- to the pipeline bind point used by this command accesses a --- 'Vulkan.Core10.Handles.Sampler' or 'Vulkan.Core10.Handles.ImageView' --- object that enables +-- - #VUID-vkCmdTraceRaysNV-ConstOffset-06551# If +-- +-- accesses a 'Vulkan.Core10.Handles.Sampler' or +-- 'Vulkan.Core10.Handles.ImageView' object that enables -- , -- that object /must/ not use the @ConstOffset@ and @Offset@ operands -- @@ -2063,17 +2098,23 @@ foreign import ccall -- -- - #VUID-vkCmdTraceRaysNV-format-07753# If a -- 'Vulkan.Core10.Handles.ImageView' is accessed as a result of this --- command, then the image view’s @format@ /must/ match the numeric --- format from the @Sampled@ @Type@ operand of the @OpTypeImage@ as --- described in the SPIR-V Sampled Type column of the --- --- table --- --- - #VUID-vkCmdTraceRaysNV-None-04115# If a --- 'Vulkan.Core10.Handles.ImageView' is accessed using @OpImageWrite@ --- as a result of this command, then the @Type@ of the @Texel@ operand --- of that instruction /must/ have at least as many components as the --- image view’s format +-- command, then the +-- +-- of the image view’s @format@ and the @Sampled@ @Type@ operand of the +-- @OpTypeImage@ /must/ match +-- +-- - #VUID-vkCmdTraceRaysNV-OpImageWrite-08795# If a +-- 'Vulkan.Core10.Handles.ImageView' created with a format other than +-- 'Vulkan.Core10.Enums.Format.FORMAT_A8_UNORM_KHR' is accessed using +-- @OpImageWrite@ as a result of this command, then the @Type@ of the +-- @Texel@ operand of that instruction /must/ have at least as many +-- components as the image view’s format +-- +-- - #VUID-vkCmdTraceRaysNV-OpImageWrite-08796# If a +-- 'Vulkan.Core10.Handles.ImageView' created with the format +-- 'Vulkan.Core10.Enums.Format.FORMAT_A8_UNORM_KHR' is accessed using +-- @OpImageWrite@ as a result of this command, then the @Type@ of the +-- @Texel@ operand of that instruction /must/ have four components -- -- - #VUID-vkCmdTraceRaysNV-OpImageWrite-04469# If a -- 'Vulkan.Core10.Handles.BufferView' is accessed using @OpImageWrite@ @@ -2175,6 +2216,8 @@ foreign import ccall -- -- - #VUID-vkCmdTraceRaysNV-OpImageWeightedSampleQCOM-06977# If -- @OpImageWeightedSampleQCOM@, @OpImageBoxFilterQCOM@, +-- @OpImageBlockMatchWindowSSDQCOM@, @OpImageBlockMatchWindowSADQCOM@, +-- @OpImageBlockMatchGatherSSDQCOM@, @OpImageBlockMatchGatherSADQCOM@, -- @OpImageBlockMatchSSDQCOM@, or @OpImageBlockMatchSADQCOM@ uses a -- 'Vulkan.Core10.Handles.Sampler' as a result of this command, then -- the sampler /must/ have been created with @@ -2182,12 +2225,35 @@ foreign import ccall -- -- - #VUID-vkCmdTraceRaysNV-OpImageWeightedSampleQCOM-06978# If any -- command other than @OpImageWeightedSampleQCOM@, --- @OpImageBoxFilterQCOM@, @OpImageBlockMatchSSDQCOM@, or +-- @OpImageBoxFilterQCOM@, @OpImageBlockMatchWindowSSDQCOM@, +-- @OpImageBlockMatchWindowSADQCOM@, @OpImageBlockMatchGatherSSDQCOM@, +-- @OpImageBlockMatchGatherSADQCOM@, @OpImageBlockMatchSSDQCOM@, or -- @OpImageBlockMatchSADQCOM@ uses a 'Vulkan.Core10.Handles.Sampler' as -- a result of this command, then the sampler /must/ not have been -- created with -- 'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM' -- +-- - #VUID-vkCmdTraceRaysNV-OpImageBlockMatchWindow-09215# If a +-- @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@ +-- instruction is used to read from an +-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then +-- the image view’s +-- +-- /must/ contain +-- 'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM' +-- +-- - #VUID-vkCmdTraceRaysNV-OpImageBlockMatchWindow-09216# If a +-- @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@ +-- instruction is used to read from an +-- 'Vulkan.Core10.Handles.ImageView' as a result of this command, then +-- the image view’s format /must/ be a single-component format. +-- +-- - #VUID-vkCmdTraceRaysNV-OpImageBlockMatchWindow-09217# If a +-- @OpImageBlockMatchWindow*QCOM@ or @OpImageBlockMatchGather*QCOM@ +-- read from a reference image as result of this command, then the +-- specified reference coordinates /must/ not fail +-- +-- -- - #VUID-vkCmdTraceRaysNV-None-07288# Any shader invocation executed by -- this command /must/ -- @@ -2978,13 +3044,19 @@ instance Zero RayTracingShaderGroupCreateInfoNV where -- described in more detail in -- . -- +-- If a +-- 'Vulkan.Extensions.VK_KHR_maintenance5.PipelineCreateFlags2CreateInfoKHR' +-- structure is present in the @pNext@ chain, +-- 'Vulkan.Extensions.VK_KHR_maintenance5.PipelineCreateFlags2CreateInfoKHR'::@flags@ +-- from that structure is used instead of @flags@ from this structure. +-- -- == Valid Usage -- -- - #VUID-VkRayTracingPipelineCreateInfoNV-flags-07984# If @flags@ -- contains the -- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DERIVATIVE_BIT' -- flag, and @basePipelineIndex@ is -1, @basePipelineHandle@ /must/ be --- a valid handle to a ray tracing 'Vulkan.Core10.Handles.Pipeline' +-- a valid ray tracing 'Vulkan.Core10.Handles.Pipeline' handle -- -- - #VUID-VkRayTracingPipelineCreateInfoNV-flags-07985# If @flags@ -- contains the @@ -3123,8 +3195,11 @@ instance Zero RayTracingShaderGroupCreateInfoNV where -- be -- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV' -- --- - #VUID-VkRayTracingPipelineCreateInfoNV-pNext-pNext# @pNext@ /must/ --- be @NULL@ or a pointer to a valid instance of +-- - #VUID-VkRayTracingPipelineCreateInfoNV-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_maintenance5.PipelineCreateFlags2CreateInfoKHR' +-- or -- 'Vulkan.Core13.Promoted_From_VK_EXT_pipeline_creation_feedback.PipelineCreationFeedbackCreateInfo' -- -- - #VUID-VkRayTracingPipelineCreateInfoNV-sType-unique# The @sType@ @@ -3210,6 +3285,7 @@ instance Extensible RayTracingPipelineCreateInfoNV where extends :: forall e b proxy. Typeable e => proxy e -> (Extends RayTracingPipelineCreateInfoNV e => b) -> Maybe b extends _ f | Just Refl <- eqT @e @PipelineCreationFeedbackCreateInfo = Just f + | Just Refl <- eqT @e @PipelineCreateFlags2CreateInfoKHR = Just f | otherwise = Nothing instance ( Extendss RayTracingPipelineCreateInfoNV es diff --git a/src/Vulkan/Extensions/VK_NV_ray_tracing.hs-boot b/src/Vulkan/Extensions/VK_NV_ray_tracing.hs-boot index f61970d18..54e53ddbf 100644 --- a/src/Vulkan/Extensions/VK_NV_ray_tracing.hs-boot +++ b/src/Vulkan/Extensions/VK_NV_ray_tracing.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 3 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- and @@ -143,8 +146,6 @@ -- -- - 'GeometryTrianglesNV' -- --- - 'Vulkan.Extensions.VK_KHR_get_memory_requirements2.MemoryRequirements2KHR' --- -- - 'RayTracingPipelineCreateInfoNV' -- -- - 'RayTracingShaderGroupCreateInfoNV' @@ -160,6 +161,12 @@ -- -- - 'WriteDescriptorSetAccelerationStructureNV' -- +-- If +-- +-- is supported: +-- +-- - 'Vulkan.Extensions.VK_KHR_get_memory_requirements2.MemoryRequirements2KHR' +-- -- == New Enums -- -- - 'AccelerationStructureMemoryRequirementsTypeNV' @@ -232,11 +239,6 @@ -- -- - 'COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_NV' -- --- - Extending --- 'Vulkan.Extensions.VK_EXT_debug_report.DebugReportObjectTypeEXT': --- --- - 'Vulkan.Extensions.VK_EXT_debug_report.DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT' --- -- - Extending 'Vulkan.Core10.Enums.DescriptorType.DescriptorType': -- -- - 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV' @@ -342,6 +344,15 @@ -- -- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV' -- +-- If +-- +-- is supported: +-- +-- - Extending +-- 'Vulkan.Extensions.VK_EXT_debug_report.DebugReportObjectTypeEXT': +-- +-- - 'Vulkan.Extensions.VK_EXT_debug_report.DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT' +-- -- == New or Modified Built-In Variables -- -- - @@ -441,9 +452,7 @@ -- 'GeometryAABBNV', 'GeometryDataNV', 'GeometryFlagBitsNV', -- 'GeometryFlagsNV', 'GeometryInstanceFlagBitsNV', -- 'GeometryInstanceFlagsNV', 'GeometryNV', 'GeometryTrianglesNV', --- 'GeometryTypeNV', --- 'Vulkan.Extensions.VK_KHR_get_memory_requirements2.MemoryRequirements2KHR', --- 'PhysicalDeviceRayTracingPropertiesNV', +-- 'GeometryTypeNV', 'PhysicalDeviceRayTracingPropertiesNV', -- 'RayTracingPipelineCreateInfoNV', 'RayTracingShaderGroupCreateInfoNV', -- 'RayTracingShaderGroupTypeNV', 'TransformMatrixNV', -- 'WriteDescriptorSetAccelerationStructureNV', diff --git a/src/Vulkan/Extensions/VK_NV_ray_tracing_invocation_reorder.hs b/src/Vulkan/Extensions/VK_NV_ray_tracing_invocation_reorder.hs index c0e856741..a279909ca 100644 --- a/src/Vulkan/Extensions/VK_NV_ray_tracing_invocation_reorder.hs +++ b/src/Vulkan/Extensions/VK_NV_ray_tracing_invocation_reorder.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- @@ -82,6 +85,134 @@ -- -- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_PROPERTIES_NV' -- +-- == HLSL Mapping +-- +-- HLSL does not provide this functionality natively yet. +-- +-- However, it is possible to use this functionality via +-- . +-- +-- The codes for shader invocation reorder are obtained from +-- : +-- +-- > #define ShaderInvocationReorderNV 5383 +-- > #define HitObjectAttributeNV 5385 +-- > +-- > #define OpHitObjectRecordHitMotionNV 5249 +-- > #define OpHitObjectRecordHitWithIndexMotionNV 5250 +-- > #define OpHitObjectRecordMissMotionNV 5251 +-- > #define OpHitObjectGetWorldToObjectNV 5252 +-- > #define OpHitObjectGetObjectToWorldNV 5253 +-- > #define OpHitObjectGetObjectRayDirectionNV 5254 +-- > #define OpHitObjectGetObjectRayOriginNV 5255 +-- > #define OpHitObjectTraceRayMotionNV 5256 +-- > #define OpHitObjectGetShaderRecordBufferHandleNV 5257 +-- > #define OpHitObjectGetShaderBindingTableRecordIndexNV 5258 +-- > #define OpHitObjectRecordEmptyNV 5259 +-- > #define OpHitObjectTraceRayNV 5260 +-- > #define OpHitObjectRecordHitNV 5261 +-- > #define OpHitObjectRecordHitWithIndexNV 5262 +-- > #define OpHitObjectRecordMissNV 5263 +-- > #define OpHitObjectExecuteShaderNV 5264 +-- > #define OpHitObjectGetCurrentTimeNV 5265 +-- > #define OpHitObjectGetAttributesNV 5266 +-- > #define OpHitObjectGetHitKindNV 5267 +-- > #define OpHitObjectGetPrimitiveIndexNV 5268 +-- > #define OpHitObjectGetGeometryIndexNV 5269 +-- > #define OpHitObjectGetInstanceIdNV 5270 +-- > #define OpHitObjectGetInstanceCustomIndexNV 5271 +-- > #define OpHitObjectGetWorldRayDirectionNV 5272 +-- > #define OpHitObjectGetWorldRayOriginNV 5273 +-- > #define OpHitObjectGetRayTMaxNV 5274 +-- > #define OpHitObjectGetRayTMinNV 5275 +-- > #define OpHitObjectIsEmptyNV 5276 +-- > #define OpHitObjectIsHitNV 5277 +-- > #define OpHitObjectIsMissNV 5278 +-- > #define OpReorderThreadWithHitObjectNV 5279 +-- > #define OpReorderThreadWithHintNV 5280 +-- > #define OpTypeHitObjectNV 5281 +-- +-- The capability and extension need to be added: +-- +-- > [[vk::ext_capability(ShaderInvocationReorderNV)]] +-- > [[vk::ext_extension("SPV_NV_shader_invocation_reorder")]] +-- +-- The creation of the @HitObject@ type can be done like this: +-- +-- > [[vk::ext_type_def(HitObjectAttributeNV, OpTypeHitObjectNV)]] +-- > void createHitObjectNV(); +-- > #define HitObjectNV vk::ext_type +-- +-- The payload: +-- +-- - must be global +-- +-- - needs the @RayPayloadKHR@ attribute as an extra storage class +-- +-- > struct [raypayload] HitPayload +-- > { +-- > float hitT : write(closesthit, miss) : read(caller); +-- > int instanceIndex : write(closesthit) : read(caller); +-- > float3 pos : write(closesthit) : read(caller); +-- > float3 nrm : write(closesthit) : read(caller); +-- > }; +-- > +-- > #define RayPayloadKHR 5338 +-- > [[vk::ext_storage_class(RayPayloadKHR)]] static HitPayload payload; +-- +-- Here is the declaration of a few invocation reordering functions: +-- +-- > [[vk::ext_instruction(OpHitObjectRecordEmptyNV)]] +-- > void hitObjectRecordEmptyNV([[vk::ext_reference]] HitObjectNV hitObject); +-- > +-- > [[vk::ext_instruction(OpHitObjectTraceRayNV)]] +-- > void hitObjectTraceRayNV( +-- > [[vk::ext_reference]] HitObjectNV hitObject, +-- > RaytracingAccelerationStructure as, +-- > uint RayFlags, +-- > uint CullMask, +-- > uint SBTOffset, +-- > uint SBTStride, +-- > uint MissIndex, +-- > float3 RayOrigin, +-- > float RayTmin, +-- > float3 RayDirection, +-- > float RayTMax, +-- > [[vk::ext_reference]] [[vk::ext_storage_class(RayPayloadKHR)]] HitPayload payload +-- > ); +-- > +-- > [[vk::ext_instruction(OpReorderThreadWithHintNV)]] +-- > void reorderThreadWithHintNV(int Hint, int Bits); +-- > +-- > [[vk::ext_instruction(OpReorderThreadWithHitObjectNV)]] +-- > void reorderThreadWithHitObjectNV([[vk::ext_reference]] HitObjectNV hitObject); +-- > +-- > [[vk::ext_instruction(OpHitObjectExecuteShaderNV)]] +-- > void hitObjectExecuteShaderNV([[vk::ext_reference]] HitObjectNV hitObject, [[vk::ext_reference]] [[vk::ext_storage_class(RayPayloadKHR)]] HitPayload payload); +-- > +-- > [[vk::ext_instruction(OpHitObjectIsHitNV)]] +-- > bool hitObjectIsHitNV([[vk::ext_reference]] HitObjectNV hitObject); +-- +-- Using the function in the code, can be done like this +-- +-- > if (USE_SER == 1) +-- > { +-- > createHitObjectNV(); +-- > HitObjectNV hObj; // hitObjectNV hObj; +-- > hitObjectRecordEmptyNV(hObj); //Initialize to an empty hit object +-- > hitObjectTraceRayNV(hObj, topLevelAS, rayFlags, 0xFF, 0, 0, 0, r.Origin, 0.0, r.Direction, INFINITE, payload); +-- > reorderThreadWithHitObjectNV(hObj); +-- > hitObjectExecuteShaderNV(hObj, payload); +-- > } +-- +-- Note: +-- +-- - createHitObjectNV() needs to be call at least once. This can be also +-- done in the main entry of the shader. +-- +-- - Function with a payload parameter, needs to have the payload struct +-- defined before. There are no templated declaration of the function. +-- -- == Version History -- -- - Revision 1, 2020-09-12 (Eric Werness, Ashwin Lele) diff --git a/src/Vulkan/Extensions/VK_NV_ray_tracing_invocation_reorder.hs-boot b/src/Vulkan/Extensions/VK_NV_ray_tracing_invocation_reorder.hs-boot index 1836c7d1b..266aae04e 100644 --- a/src/Vulkan/Extensions/VK_NV_ray_tracing_invocation_reorder.hs-boot +++ b/src/Vulkan/Extensions/VK_NV_ray_tracing_invocation_reorder.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- @@ -82,6 +85,134 @@ -- -- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_PROPERTIES_NV' -- +-- == HLSL Mapping +-- +-- HLSL does not provide this functionality natively yet. +-- +-- However, it is possible to use this functionality via +-- . +-- +-- The codes for shader invocation reorder are obtained from +-- : +-- +-- > #define ShaderInvocationReorderNV 5383 +-- > #define HitObjectAttributeNV 5385 +-- > +-- > #define OpHitObjectRecordHitMotionNV 5249 +-- > #define OpHitObjectRecordHitWithIndexMotionNV 5250 +-- > #define OpHitObjectRecordMissMotionNV 5251 +-- > #define OpHitObjectGetWorldToObjectNV 5252 +-- > #define OpHitObjectGetObjectToWorldNV 5253 +-- > #define OpHitObjectGetObjectRayDirectionNV 5254 +-- > #define OpHitObjectGetObjectRayOriginNV 5255 +-- > #define OpHitObjectTraceRayMotionNV 5256 +-- > #define OpHitObjectGetShaderRecordBufferHandleNV 5257 +-- > #define OpHitObjectGetShaderBindingTableRecordIndexNV 5258 +-- > #define OpHitObjectRecordEmptyNV 5259 +-- > #define OpHitObjectTraceRayNV 5260 +-- > #define OpHitObjectRecordHitNV 5261 +-- > #define OpHitObjectRecordHitWithIndexNV 5262 +-- > #define OpHitObjectRecordMissNV 5263 +-- > #define OpHitObjectExecuteShaderNV 5264 +-- > #define OpHitObjectGetCurrentTimeNV 5265 +-- > #define OpHitObjectGetAttributesNV 5266 +-- > #define OpHitObjectGetHitKindNV 5267 +-- > #define OpHitObjectGetPrimitiveIndexNV 5268 +-- > #define OpHitObjectGetGeometryIndexNV 5269 +-- > #define OpHitObjectGetInstanceIdNV 5270 +-- > #define OpHitObjectGetInstanceCustomIndexNV 5271 +-- > #define OpHitObjectGetWorldRayDirectionNV 5272 +-- > #define OpHitObjectGetWorldRayOriginNV 5273 +-- > #define OpHitObjectGetRayTMaxNV 5274 +-- > #define OpHitObjectGetRayTMinNV 5275 +-- > #define OpHitObjectIsEmptyNV 5276 +-- > #define OpHitObjectIsHitNV 5277 +-- > #define OpHitObjectIsMissNV 5278 +-- > #define OpReorderThreadWithHitObjectNV 5279 +-- > #define OpReorderThreadWithHintNV 5280 +-- > #define OpTypeHitObjectNV 5281 +-- +-- The capability and extension need to be added: +-- +-- > [[vk::ext_capability(ShaderInvocationReorderNV)]] +-- > [[vk::ext_extension("SPV_NV_shader_invocation_reorder")]] +-- +-- The creation of the @HitObject@ type can be done like this: +-- +-- > [[vk::ext_type_def(HitObjectAttributeNV, OpTypeHitObjectNV)]] +-- > void createHitObjectNV(); +-- > #define HitObjectNV vk::ext_type +-- +-- The payload: +-- +-- - must be global +-- +-- - needs the @RayPayloadKHR@ attribute as an extra storage class +-- +-- > struct [raypayload] HitPayload +-- > { +-- > float hitT : write(closesthit, miss) : read(caller); +-- > int instanceIndex : write(closesthit) : read(caller); +-- > float3 pos : write(closesthit) : read(caller); +-- > float3 nrm : write(closesthit) : read(caller); +-- > }; +-- > +-- > #define RayPayloadKHR 5338 +-- > [[vk::ext_storage_class(RayPayloadKHR)]] static HitPayload payload; +-- +-- Here is the declaration of a few invocation reordering functions: +-- +-- > [[vk::ext_instruction(OpHitObjectRecordEmptyNV)]] +-- > void hitObjectRecordEmptyNV([[vk::ext_reference]] HitObjectNV hitObject); +-- > +-- > [[vk::ext_instruction(OpHitObjectTraceRayNV)]] +-- > void hitObjectTraceRayNV( +-- > [[vk::ext_reference]] HitObjectNV hitObject, +-- > RaytracingAccelerationStructure as, +-- > uint RayFlags, +-- > uint CullMask, +-- > uint SBTOffset, +-- > uint SBTStride, +-- > uint MissIndex, +-- > float3 RayOrigin, +-- > float RayTmin, +-- > float3 RayDirection, +-- > float RayTMax, +-- > [[vk::ext_reference]] [[vk::ext_storage_class(RayPayloadKHR)]] HitPayload payload +-- > ); +-- > +-- > [[vk::ext_instruction(OpReorderThreadWithHintNV)]] +-- > void reorderThreadWithHintNV(int Hint, int Bits); +-- > +-- > [[vk::ext_instruction(OpReorderThreadWithHitObjectNV)]] +-- > void reorderThreadWithHitObjectNV([[vk::ext_reference]] HitObjectNV hitObject); +-- > +-- > [[vk::ext_instruction(OpHitObjectExecuteShaderNV)]] +-- > void hitObjectExecuteShaderNV([[vk::ext_reference]] HitObjectNV hitObject, [[vk::ext_reference]] [[vk::ext_storage_class(RayPayloadKHR)]] HitPayload payload); +-- > +-- > [[vk::ext_instruction(OpHitObjectIsHitNV)]] +-- > bool hitObjectIsHitNV([[vk::ext_reference]] HitObjectNV hitObject); +-- +-- Using the function in the code, can be done like this +-- +-- > if (USE_SER == 1) +-- > { +-- > createHitObjectNV(); +-- > HitObjectNV hObj; // hitObjectNV hObj; +-- > hitObjectRecordEmptyNV(hObj); //Initialize to an empty hit object +-- > hitObjectTraceRayNV(hObj, topLevelAS, rayFlags, 0xFF, 0, 0, 0, r.Origin, 0.0, r.Direction, INFINITE, payload); +-- > reorderThreadWithHitObjectNV(hObj); +-- > hitObjectExecuteShaderNV(hObj, payload); +-- > } +-- +-- Note: +-- +-- - createHitObjectNV() needs to be call at least once. This can be also +-- done in the main entry of the shader. +-- +-- - Function with a payload parameter, needs to have the payload struct +-- defined before. There are no templated declaration of the function. +-- -- == Version History -- -- - Revision 1, 2020-09-12 (Eric Werness, Ashwin Lele) diff --git a/src/Vulkan/Extensions/VK_NV_ray_tracing_motion_blur.hs b/src/Vulkan/Extensions/VK_NV_ray_tracing_motion_blur.hs index 524a56b5d..e339647c2 100644 --- a/src/Vulkan/Extensions/VK_NV_ray_tracing_motion_blur.hs +++ b/src/Vulkan/Extensions/VK_NV_ray_tracing_motion_blur.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- diff --git a/src/Vulkan/Extensions/VK_NV_ray_tracing_motion_blur.hs-boot b/src/Vulkan/Extensions/VK_NV_ray_tracing_motion_blur.hs-boot index 5be418eec..240fd1026 100644 --- a/src/Vulkan/Extensions/VK_NV_ray_tracing_motion_blur.hs-boot +++ b/src/Vulkan/Extensions/VK_NV_ray_tracing_motion_blur.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- diff --git a/src/Vulkan/Extensions/VK_NV_representative_fragment_test.hs b/src/Vulkan/Extensions/VK_NV_representative_fragment_test.hs index f1bdeadf1..46b5fad66 100644 --- a/src/Vulkan/Extensions/VK_NV_representative_fragment_test.hs +++ b/src/Vulkan/Extensions/VK_NV_representative_fragment_test.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 2 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- @@ -128,14 +131,14 @@ -- color buffers. For the use cases intended for this feature, we do not -- expect color or depth writes to be enabled. -- --- (4) How do derivatives and automatic texture level of detail --- computations work with the representative fragment test enabled? +-- (4) How do derivatives and automatic texture LOD computations work with +-- the representative fragment test enabled? -- -- __RESOLVED__: If a fragment shader uses derivative functions or texture --- lookups using automatic level of detail computation, derivatives will be --- computed identically whether or not the representative fragment test is --- enabled. For the use cases intended for this feature, we do not expect --- the use of derivatives in the fragment shader. +-- lookups using automatic LOD computation, derivatives will be computed +-- identically whether or not the representative fragment test is enabled. +-- For the use cases intended for this feature, we do not expect the use of +-- derivatives in the fragment shader. -- -- == Version History -- diff --git a/src/Vulkan/Extensions/VK_NV_representative_fragment_test.hs-boot b/src/Vulkan/Extensions/VK_NV_representative_fragment_test.hs-boot index 9b05f1d92..a8cada59e 100644 --- a/src/Vulkan/Extensions/VK_NV_representative_fragment_test.hs-boot +++ b/src/Vulkan/Extensions/VK_NV_representative_fragment_test.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 2 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- @@ -128,14 +131,14 @@ -- color buffers. For the use cases intended for this feature, we do not -- expect color or depth writes to be enabled. -- --- (4) How do derivatives and automatic texture level of detail --- computations work with the representative fragment test enabled? +-- (4) How do derivatives and automatic texture LOD computations work with +-- the representative fragment test enabled? -- -- __RESOLVED__: If a fragment shader uses derivative functions or texture --- lookups using automatic level of detail computation, derivatives will be --- computed identically whether or not the representative fragment test is --- enabled. For the use cases intended for this feature, we do not expect --- the use of derivatives in the fragment shader. +-- lookups using automatic LOD computation, derivatives will be computed +-- identically whether or not the representative fragment test is enabled. +-- For the use cases intended for this feature, we do not expect the use of +-- derivatives in the fragment shader. -- -- == Version History -- diff --git a/src/Vulkan/Extensions/VK_NV_sample_mask_override_coverage.hs b/src/Vulkan/Extensions/VK_NV_sample_mask_override_coverage.hs index 68a083253..f672d2978 100644 --- a/src/Vulkan/Extensions/VK_NV_sample_mask_override_coverage.hs +++ b/src/Vulkan/Extensions/VK_NV_sample_mask_override_coverage.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__; __Contact__] -- -- - Piers Daniell diff --git a/src/Vulkan/Extensions/VK_NV_scissor_exclusive.hs b/src/Vulkan/Extensions/VK_NV_scissor_exclusive.hs index ff74d6ed6..63e05979b 100644 --- a/src/Vulkan/Extensions/VK_NV_scissor_exclusive.hs +++ b/src/Vulkan/Extensions/VK_NV_scissor_exclusive.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 2 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- diff --git a/src/Vulkan/Extensions/VK_NV_scissor_exclusive.hs-boot b/src/Vulkan/Extensions/VK_NV_scissor_exclusive.hs-boot index 59575f7f6..2fa1e400b 100644 --- a/src/Vulkan/Extensions/VK_NV_scissor_exclusive.hs-boot +++ b/src/Vulkan/Extensions/VK_NV_scissor_exclusive.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 2 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- diff --git a/src/Vulkan/Extensions/VK_NV_shader_image_footprint.hs b/src/Vulkan/Extensions/VK_NV_shader_image_footprint.hs index 4c9548989..89f7284ba 100644 --- a/src/Vulkan/Extensions/VK_NV_shader_image_footprint.hs +++ b/src/Vulkan/Extensions/VK_NV_shader_image_footprint.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 2 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- @@ -203,10 +206,10 @@ -- previous issue. Even if you ignore the anisotropic filtering case where -- the implementation may return a granularity larger than that requested -- by the caller, each shader invocation will need to use atomic functions --- to update up to four footprint image texels for each level of detail --- accessed. Having each active shader invocation perform multiple atomic --- operations can be expensive, particularly when neighboring invocations --- will want to update the same footprint image texels. +-- to update up to four footprint image texels for each LOD accessed. +-- Having each active shader invocation perform multiple atomic operations +-- can be expensive, particularly when neighboring invocations will want to +-- update the same footprint image texels. -- -- Techniques can be used to reduce the number of atomic operations -- performed when accumulating coverage include: diff --git a/src/Vulkan/Extensions/VK_NV_shader_image_footprint.hs-boot b/src/Vulkan/Extensions/VK_NV_shader_image_footprint.hs-boot index 2e1c19614..8befaf1a7 100644 --- a/src/Vulkan/Extensions/VK_NV_shader_image_footprint.hs-boot +++ b/src/Vulkan/Extensions/VK_NV_shader_image_footprint.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 2 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- @@ -203,10 +206,10 @@ -- previous issue. Even if you ignore the anisotropic filtering case where -- the implementation may return a granularity larger than that requested -- by the caller, each shader invocation will need to use atomic functions --- to update up to four footprint image texels for each level of detail --- accessed. Having each active shader invocation perform multiple atomic --- operations can be expensive, particularly when neighboring invocations --- will want to update the same footprint image texels. +-- to update up to four footprint image texels for each LOD accessed. +-- Having each active shader invocation perform multiple atomic operations +-- can be expensive, particularly when neighboring invocations will want to +-- update the same footprint image texels. -- -- Techniques can be used to reduce the number of atomic operations -- performed when accumulating coverage include: diff --git a/src/Vulkan/Extensions/VK_NV_shader_sm_builtins.hs b/src/Vulkan/Extensions/VK_NV_shader_sm_builtins.hs index 1ab58fefc..e54ebccac 100644 --- a/src/Vulkan/Extensions/VK_NV_shader_sm_builtins.hs +++ b/src/Vulkan/Extensions/VK_NV_shader_sm_builtins.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- diff --git a/src/Vulkan/Extensions/VK_NV_shader_sm_builtins.hs-boot b/src/Vulkan/Extensions/VK_NV_shader_sm_builtins.hs-boot index 46c9c30e9..9eb70c2b0 100644 --- a/src/Vulkan/Extensions/VK_NV_shader_sm_builtins.hs-boot +++ b/src/Vulkan/Extensions/VK_NV_shader_sm_builtins.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- diff --git a/src/Vulkan/Extensions/VK_NV_shader_subgroup_partitioned.hs b/src/Vulkan/Extensions/VK_NV_shader_subgroup_partitioned.hs index 1d063deac..3330fd14e 100644 --- a/src/Vulkan/Extensions/VK_NV_shader_subgroup_partitioned.hs +++ b/src/Vulkan/Extensions/VK_NV_shader_subgroup_partitioned.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- diff --git a/src/Vulkan/Extensions/VK_NV_shading_rate_image.hs b/src/Vulkan/Extensions/VK_NV_shading_rate_image.hs index 28fe5aab2..1b2d12d4a 100644 --- a/src/Vulkan/Extensions/VK_NV_shading_rate_image.hs +++ b/src/Vulkan/Extensions/VK_NV_shading_rate_image.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 3 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- diff --git a/src/Vulkan/Extensions/VK_NV_shading_rate_image.hs-boot b/src/Vulkan/Extensions/VK_NV_shading_rate_image.hs-boot index e34e8c990..cadecdb41 100644 --- a/src/Vulkan/Extensions/VK_NV_shading_rate_image.hs-boot +++ b/src/Vulkan/Extensions/VK_NV_shading_rate_image.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 3 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- diff --git a/src/Vulkan/Extensions/VK_NV_viewport_array2.hs b/src/Vulkan/Extensions/VK_NV_viewport_array2.hs index 449b4b7a6..bf8fc4ccd 100644 --- a/src/Vulkan/Extensions/VK_NV_viewport_array2.hs +++ b/src/Vulkan/Extensions/VK_NV_viewport_array2.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__; __Contact__] -- -- - Daniel Koch diff --git a/src/Vulkan/Extensions/VK_NV_viewport_swizzle.hs b/src/Vulkan/Extensions/VK_NV_viewport_swizzle.hs index b3b3eb9fa..ce67a2a3f 100644 --- a/src/Vulkan/Extensions/VK_NV_viewport_swizzle.hs +++ b/src/Vulkan/Extensions/VK_NV_viewport_swizzle.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__; __Contact__] -- -- - Piers Daniell diff --git a/src/Vulkan/Extensions/VK_NV_viewport_swizzle.hs-boot b/src/Vulkan/Extensions/VK_NV_viewport_swizzle.hs-boot index 482d66450..aefa876f7 100644 --- a/src/Vulkan/Extensions/VK_NV_viewport_swizzle.hs-boot +++ b/src/Vulkan/Extensions/VK_NV_viewport_swizzle.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__; __Contact__] -- -- - Piers Daniell diff --git a/src/Vulkan/Extensions/VK_NV_win32_keyed_mutex.hs b/src/Vulkan/Extensions/VK_NV_win32_keyed_mutex.hs index 209b33604..d381cf11e 100644 --- a/src/Vulkan/Extensions/VK_NV_win32_keyed_mutex.hs +++ b/src/Vulkan/Extensions/VK_NV_win32_keyed_mutex.hs @@ -17,10 +17,13 @@ -- [__Revision__] -- 2 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- --- [__Deprecation state__] +-- [__Deprecation State__] -- -- - /Promoted/ to @VK_KHR_win32_keyed_mutex@ extension -- diff --git a/src/Vulkan/Extensions/VK_NV_win32_keyed_mutex.hs-boot b/src/Vulkan/Extensions/VK_NV_win32_keyed_mutex.hs-boot index fb923d2e2..f31efe44a 100644 --- a/src/Vulkan/Extensions/VK_NV_win32_keyed_mutex.hs-boot +++ b/src/Vulkan/Extensions/VK_NV_win32_keyed_mutex.hs-boot @@ -17,10 +17,13 @@ -- [__Revision__] -- 2 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- --- [__Deprecation state__] +-- [__Deprecation State__] -- -- - /Promoted/ to @VK_KHR_win32_keyed_mutex@ extension -- diff --git a/src/Vulkan/Extensions/VK_QCOM_filter_cubic_clamp.hs b/src/Vulkan/Extensions/VK_QCOM_filter_cubic_clamp.hs new file mode 100644 index 000000000..6a0fb499e --- /dev/null +++ b/src/Vulkan/Extensions/VK_QCOM_filter_cubic_clamp.hs @@ -0,0 +1,222 @@ +{-# language CPP #-} +-- | = Name +-- +-- VK_QCOM_filter_cubic_clamp - device extension +-- +-- == VK_QCOM_filter_cubic_clamp +-- +-- [__Name String__] +-- @VK_QCOM_filter_cubic_clamp@ +-- +-- [__Extension Type__] +-- Device extension +-- +-- [__Registered Extension Number__] +-- 522 +-- +-- [__Revision__] +-- 1 +-- +-- [__Ratification Status__] +-- Not ratified +-- +-- [__Extension and Version Dependencies__] +-- +-- and +--      +-- +--      or +--      +-- +-- +-- [__Contact__] +-- +-- - Jeff Leger +-- +-- +-- == Other Extension Metadata +-- +-- [__Last Modified Date__] +-- 2023-08-02 +-- +-- [__Contributors__] +-- +-- - Jeff Leger, Qualcomm Technologies, Inc. +-- +-- == Description +-- +-- This extension extends cubic filtering by adding the ability to enable +-- an anti-ringing clamp. Cubic filtering samples from a 4x4 region of +-- texels and computes a cubic weighted average of the region. In some +-- cases, the resulting value is outside the range of any of the texels in +-- the 4x4 region. This is sometimes referred to as “filter overshoot” or +-- “filter ringing” and can occur when there is a sharp discontinuity in +-- the 4x4 region being filtered. For some use cases this “ringing” can +-- produces unacceptable artifacts. +-- +-- The solution to the ringing problem is to clamp the post-cubic-filtered +-- value to be within the max and min of texel values in the 4x4 region. +-- While such “range clamping” can be performed in shader code, the +-- additional texture fetches and clamping ALU operations can be costly. +-- +-- Certain Adreno GPUs are able to perform the range clamp in the texture +-- unit during cubic filtering at significant performance\/power savings +-- versus a shader-based clamping approach. This extension exposes such +-- hardware functionality. +-- +-- This extension extends +-- 'Vulkan.Core12.Enums.SamplerReductionMode.SamplerReductionMode', adding +-- 'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM' +-- which enables the range clamp operation. +-- +-- == New Structures +-- +-- - Extending +-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2', +-- 'Vulkan.Core10.Device.DeviceCreateInfo': +-- +-- - 'PhysicalDeviceCubicClampFeaturesQCOM' +-- +-- == New Enum Constants +-- +-- - 'QCOM_FILTER_CUBIC_CLAMP_EXTENSION_NAME' +-- +-- - 'QCOM_FILTER_CUBIC_CLAMP_SPEC_VERSION' +-- +-- - Extending +-- 'Vulkan.Core12.Enums.SamplerReductionMode.SamplerReductionMode': +-- +-- - 'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM' +-- +-- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType': +-- +-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_CUBIC_CLAMP_FEATURES_QCOM' +-- +-- == Version History +-- +-- - Revision 1, 2023-08-02 (jleger) +-- +-- - Initial version +-- +-- == See Also +-- +-- 'PhysicalDeviceCubicClampFeaturesQCOM' +-- +-- == Document Notes +-- +-- For more information, see the +-- +-- +-- This page is a generated document. Fixes and changes should be made to +-- the generator scripts, not directly. +module Vulkan.Extensions.VK_QCOM_filter_cubic_clamp ( PhysicalDeviceCubicClampFeaturesQCOM(..) + , QCOM_FILTER_CUBIC_CLAMP_SPEC_VERSION + , pattern QCOM_FILTER_CUBIC_CLAMP_SPEC_VERSION + , QCOM_FILTER_CUBIC_CLAMP_EXTENSION_NAME + , pattern QCOM_FILTER_CUBIC_CLAMP_EXTENSION_NAME + ) where + +import Foreign.Marshal.Alloc (allocaBytes) +import Foreign.Ptr (nullPtr) +import Foreign.Ptr (plusPtr) +import Vulkan.CStruct (FromCStruct) +import Vulkan.CStruct (FromCStruct(..)) +import Vulkan.CStruct (ToCStruct) +import Vulkan.CStruct (ToCStruct(..)) +import Vulkan.Zero (Zero(..)) +import Data.String (IsString) +import Data.Typeable (Typeable) +import Foreign.Storable (Storable) +import Foreign.Storable (Storable(peek)) +import Foreign.Storable (Storable(poke)) +import qualified Foreign.Storable (Storable(..)) +import GHC.Generics (Generic) +import Foreign.Ptr (Ptr) +import Data.Kind (Type) +import Vulkan.Core10.FundamentalTypes (bool32ToBool) +import Vulkan.Core10.FundamentalTypes (boolToBool32) +import Vulkan.Core10.FundamentalTypes (Bool32) +import Vulkan.Core10.Enums.StructureType (StructureType) +import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_CUBIC_CLAMP_FEATURES_QCOM)) +-- | VkPhysicalDeviceCubicClampFeaturesQCOM - Structure describing cubic +-- clamp features that can be supported by an implementation +-- +-- = Members +-- +-- This structure describes the following features: +-- +-- = Description +-- +-- If the 'PhysicalDeviceCubicClampFeaturesQCOM' 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. 'PhysicalDeviceCubicClampFeaturesQCOM' /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 PhysicalDeviceCubicClampFeaturesQCOM = PhysicalDeviceCubicClampFeaturesQCOM + { -- | #features-filter-cubic-range-clamp# @cubicRangeClamp@ indicates that the + -- implementation supports cubic filtering in combination with a + -- . + cubicRangeClamp :: Bool } + deriving (Typeable, Eq) +#if defined(GENERIC_INSTANCES) +deriving instance Generic (PhysicalDeviceCubicClampFeaturesQCOM) +#endif +deriving instance Show PhysicalDeviceCubicClampFeaturesQCOM + +instance ToCStruct PhysicalDeviceCubicClampFeaturesQCOM where + withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p) + pokeCStruct p PhysicalDeviceCubicClampFeaturesQCOM{..} f = do + poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_CUBIC_CLAMP_FEATURES_QCOM) + poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr) + poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (cubicRangeClamp)) + f + cStructSize = 24 + cStructAlignment = 8 + pokeZeroCStruct p f = do + poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_CUBIC_CLAMP_FEATURES_QCOM) + poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr) + poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero)) + f + +instance FromCStruct PhysicalDeviceCubicClampFeaturesQCOM where + peekCStruct p = do + cubicRangeClamp <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32)) + pure $ PhysicalDeviceCubicClampFeaturesQCOM + (bool32ToBool cubicRangeClamp) + +instance Storable PhysicalDeviceCubicClampFeaturesQCOM where + sizeOf ~_ = 24 + alignment ~_ = 8 + peek = peekCStruct + poke ptr poked = pokeCStruct ptr poked (pure ()) + +instance Zero PhysicalDeviceCubicClampFeaturesQCOM where + zero = PhysicalDeviceCubicClampFeaturesQCOM + zero + + +type QCOM_FILTER_CUBIC_CLAMP_SPEC_VERSION = 1 + +-- No documentation found for TopLevel "VK_QCOM_FILTER_CUBIC_CLAMP_SPEC_VERSION" +pattern QCOM_FILTER_CUBIC_CLAMP_SPEC_VERSION :: forall a . Integral a => a +pattern QCOM_FILTER_CUBIC_CLAMP_SPEC_VERSION = 1 + + +type QCOM_FILTER_CUBIC_CLAMP_EXTENSION_NAME = "VK_QCOM_filter_cubic_clamp" + +-- No documentation found for TopLevel "VK_QCOM_FILTER_CUBIC_CLAMP_EXTENSION_NAME" +pattern QCOM_FILTER_CUBIC_CLAMP_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a +pattern QCOM_FILTER_CUBIC_CLAMP_EXTENSION_NAME = "VK_QCOM_filter_cubic_clamp" + diff --git a/src/Vulkan/Extensions/VK_QCOM_filter_cubic_clamp.hs-boot b/src/Vulkan/Extensions/VK_QCOM_filter_cubic_clamp.hs-boot new file mode 100644 index 000000000..034b46903 --- /dev/null +++ b/src/Vulkan/Extensions/VK_QCOM_filter_cubic_clamp.hs-boot @@ -0,0 +1,124 @@ +{-# language CPP #-} +-- | = Name +-- +-- VK_QCOM_filter_cubic_clamp - device extension +-- +-- == VK_QCOM_filter_cubic_clamp +-- +-- [__Name String__] +-- @VK_QCOM_filter_cubic_clamp@ +-- +-- [__Extension Type__] +-- Device extension +-- +-- [__Registered Extension Number__] +-- 522 +-- +-- [__Revision__] +-- 1 +-- +-- [__Ratification Status__] +-- Not ratified +-- +-- [__Extension and Version Dependencies__] +-- +-- and +--      +-- +--      or +--      +-- +-- +-- [__Contact__] +-- +-- - Jeff Leger +-- +-- +-- == Other Extension Metadata +-- +-- [__Last Modified Date__] +-- 2023-08-02 +-- +-- [__Contributors__] +-- +-- - Jeff Leger, Qualcomm Technologies, Inc. +-- +-- == Description +-- +-- This extension extends cubic filtering by adding the ability to enable +-- an anti-ringing clamp. Cubic filtering samples from a 4x4 region of +-- texels and computes a cubic weighted average of the region. In some +-- cases, the resulting value is outside the range of any of the texels in +-- the 4x4 region. This is sometimes referred to as “filter overshoot” or +-- “filter ringing” and can occur when there is a sharp discontinuity in +-- the 4x4 region being filtered. For some use cases this “ringing” can +-- produces unacceptable artifacts. +-- +-- The solution to the ringing problem is to clamp the post-cubic-filtered +-- value to be within the max and min of texel values in the 4x4 region. +-- While such “range clamping” can be performed in shader code, the +-- additional texture fetches and clamping ALU operations can be costly. +-- +-- Certain Adreno GPUs are able to perform the range clamp in the texture +-- unit during cubic filtering at significant performance\/power savings +-- versus a shader-based clamping approach. This extension exposes such +-- hardware functionality. +-- +-- This extension extends +-- 'Vulkan.Core12.Enums.SamplerReductionMode.SamplerReductionMode', adding +-- 'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM' +-- which enables the range clamp operation. +-- +-- == New Structures +-- +-- - Extending +-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2', +-- 'Vulkan.Core10.Device.DeviceCreateInfo': +-- +-- - 'PhysicalDeviceCubicClampFeaturesQCOM' +-- +-- == New Enum Constants +-- +-- - 'QCOM_FILTER_CUBIC_CLAMP_EXTENSION_NAME' +-- +-- - 'QCOM_FILTER_CUBIC_CLAMP_SPEC_VERSION' +-- +-- - Extending +-- 'Vulkan.Core12.Enums.SamplerReductionMode.SamplerReductionMode': +-- +-- - 'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM' +-- +-- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType': +-- +-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_CUBIC_CLAMP_FEATURES_QCOM' +-- +-- == Version History +-- +-- - Revision 1, 2023-08-02 (jleger) +-- +-- - Initial version +-- +-- == See Also +-- +-- 'PhysicalDeviceCubicClampFeaturesQCOM' +-- +-- == Document Notes +-- +-- For more information, see the +-- +-- +-- This page is a generated document. Fixes and changes should be made to +-- the generator scripts, not directly. +module Vulkan.Extensions.VK_QCOM_filter_cubic_clamp (PhysicalDeviceCubicClampFeaturesQCOM) where + +import Vulkan.CStruct (FromCStruct) +import Vulkan.CStruct (ToCStruct) +import Data.Kind (Type) + +data PhysicalDeviceCubicClampFeaturesQCOM + +instance ToCStruct PhysicalDeviceCubicClampFeaturesQCOM +instance Show PhysicalDeviceCubicClampFeaturesQCOM + +instance FromCStruct PhysicalDeviceCubicClampFeaturesQCOM + diff --git a/src/Vulkan/Extensions/VK_QCOM_filter_cubic_weights.hs b/src/Vulkan/Extensions/VK_QCOM_filter_cubic_weights.hs new file mode 100644 index 000000000..34273032f --- /dev/null +++ b/src/Vulkan/Extensions/VK_QCOM_filter_cubic_weights.hs @@ -0,0 +1,440 @@ +{-# language CPP #-} +-- | = Name +-- +-- VK_QCOM_filter_cubic_weights - device extension +-- +-- == VK_QCOM_filter_cubic_weights +-- +-- [__Name String__] +-- @VK_QCOM_filter_cubic_weights@ +-- +-- [__Extension Type__] +-- Device extension +-- +-- [__Registered Extension Number__] +-- 520 +-- +-- [__Revision__] +-- 1 +-- +-- [__Ratification Status__] +-- Not ratified +-- +-- [__Extension and Version Dependencies__] +-- +-- +-- [__Contact__] +-- +-- - Jeff Leger +-- +-- +-- == Other Extension Metadata +-- +-- [__Last Modified Date__] +-- 2023-06-23 +-- +-- [__Contributors__] +-- +-- - Jeff Leger, Qualcomm Technologies, Inc. +-- +-- - Jonathan Wicks, Qualcomm Technologies, Inc. +-- +-- == Description +-- +-- This extension extends cubic filtering by adding the ability to select a +-- set of weights. Without this extension, the weights used in cubic +-- filtering are limited to those corresponding to a Catmull-Rom spline. +-- This extension adds support for 3 additional spline weights. +-- +-- This extension adds a new structure that /can/ be added to the @pNext@ +-- chain of 'Vulkan.Core10.Sampler.SamplerCreateInfo' that /can/ be used to +-- specify which set of cubic weights are used in cubic filtering. A +-- similar structure can be added to the @pNext@ chain of +-- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.BlitImageInfo2' to +-- specify cubic weights used in a blit operation. +-- +-- With this extension weights corresponding to the following additional +-- splines can be selected for cubic filtered sampling and blits: +-- +-- - Zero Tangent Cardinal +-- +-- - B-Spline +-- +-- - Mitchell-Netravali +-- +-- == New Structures +-- +-- - Extending +-- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.BlitImageInfo2': +-- +-- - 'BlitImageCubicWeightsInfoQCOM' +-- +-- - Extending +-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2', +-- 'Vulkan.Core10.Device.DeviceCreateInfo': +-- +-- - 'PhysicalDeviceCubicWeightsFeaturesQCOM' +-- +-- - Extending 'Vulkan.Core10.Sampler.SamplerCreateInfo': +-- +-- - 'SamplerCubicWeightsCreateInfoQCOM' +-- +-- == New Enums +-- +-- - 'CubicFilterWeightsQCOM' +-- +-- == New Enum Constants +-- +-- - 'QCOM_FILTER_CUBIC_WEIGHTS_EXTENSION_NAME' +-- +-- - 'QCOM_FILTER_CUBIC_WEIGHTS_SPEC_VERSION' +-- +-- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType': +-- +-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_BLIT_IMAGE_CUBIC_WEIGHTS_INFO_QCOM' +-- +-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_CUBIC_WEIGHTS_FEATURES_QCOM' +-- +-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_SAMPLER_CUBIC_WEIGHTS_CREATE_INFO_QCOM' +-- +-- == Version History +-- +-- - Revision 1, 2023-06-23 (jleger) +-- +-- - Initial version +-- +-- == See Also +-- +-- 'BlitImageCubicWeightsInfoQCOM', 'CubicFilterWeightsQCOM', +-- 'PhysicalDeviceCubicWeightsFeaturesQCOM', +-- 'SamplerCubicWeightsCreateInfoQCOM' +-- +-- == Document Notes +-- +-- For more information, see the +-- +-- +-- This page is a generated document. Fixes and changes should be made to +-- the generator scripts, not directly. +module Vulkan.Extensions.VK_QCOM_filter_cubic_weights ( PhysicalDeviceCubicWeightsFeaturesQCOM(..) + , SamplerCubicWeightsCreateInfoQCOM(..) + , BlitImageCubicWeightsInfoQCOM(..) + , CubicFilterWeightsQCOM( CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM + , CUBIC_FILTER_WEIGHTS_ZERO_TANGENT_CARDINAL_QCOM + , CUBIC_FILTER_WEIGHTS_B_SPLINE_QCOM + , CUBIC_FILTER_WEIGHTS_MITCHELL_NETRAVALI_QCOM + , .. + ) + , QCOM_FILTER_CUBIC_WEIGHTS_SPEC_VERSION + , pattern QCOM_FILTER_CUBIC_WEIGHTS_SPEC_VERSION + , QCOM_FILTER_CUBIC_WEIGHTS_EXTENSION_NAME + , pattern QCOM_FILTER_CUBIC_WEIGHTS_EXTENSION_NAME + ) where + +import Vulkan.Internal.Utils (enumReadPrec) +import Vulkan.Internal.Utils (enumShowsPrec) +import Foreign.Marshal.Alloc (allocaBytes) +import Foreign.Ptr (nullPtr) +import Foreign.Ptr (plusPtr) +import GHC.Show (showsPrec) +import 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_BLIT_IMAGE_CUBIC_WEIGHTS_INFO_QCOM)) +import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_CUBIC_WEIGHTS_FEATURES_QCOM)) +import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_SAMPLER_CUBIC_WEIGHTS_CREATE_INFO_QCOM)) +-- | VkPhysicalDeviceCubicWeightsFeaturesQCOM - Structure describing cubic +-- weight selection features that can be supported by an implementation +-- +-- = Members +-- +-- This structure describes the following feature: +-- +-- = Description +-- +-- If the 'PhysicalDeviceCubicWeightsFeaturesQCOM' 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. 'PhysicalDeviceCubicWeightsFeaturesQCOM' /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 PhysicalDeviceCubicWeightsFeaturesQCOM = PhysicalDeviceCubicWeightsFeaturesQCOM + { -- | #features-filter-cubic-weight-selection# @selectableCubicWeights@ + -- indicates that the implementation supports the selection of filter cubic + -- weights. + selectableCubicWeights :: Bool } + deriving (Typeable, Eq) +#if defined(GENERIC_INSTANCES) +deriving instance Generic (PhysicalDeviceCubicWeightsFeaturesQCOM) +#endif +deriving instance Show PhysicalDeviceCubicWeightsFeaturesQCOM + +instance ToCStruct PhysicalDeviceCubicWeightsFeaturesQCOM where + withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p) + pokeCStruct p PhysicalDeviceCubicWeightsFeaturesQCOM{..} f = do + poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_CUBIC_WEIGHTS_FEATURES_QCOM) + poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr) + poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (selectableCubicWeights)) + f + cStructSize = 24 + cStructAlignment = 8 + pokeZeroCStruct p f = do + poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_CUBIC_WEIGHTS_FEATURES_QCOM) + poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr) + poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero)) + f + +instance FromCStruct PhysicalDeviceCubicWeightsFeaturesQCOM where + peekCStruct p = do + selectableCubicWeights <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32)) + pure $ PhysicalDeviceCubicWeightsFeaturesQCOM + (bool32ToBool selectableCubicWeights) + +instance Storable PhysicalDeviceCubicWeightsFeaturesQCOM where + sizeOf ~_ = 24 + alignment ~_ = 8 + peek = peekCStruct + poke ptr poked = pokeCStruct ptr poked (pure ()) + +instance Zero PhysicalDeviceCubicWeightsFeaturesQCOM where + zero = PhysicalDeviceCubicWeightsFeaturesQCOM + zero + + +-- | VkSamplerCubicWeightsCreateInfoQCOM - Structure specifying sampler cubic +-- weights +-- +-- = Description +-- +-- If the @pNext@ chain of 'Vulkan.Core10.Sampler.SamplerCreateInfo' +-- includes a 'SamplerCubicWeightsCreateInfoQCOM' structure, then that +-- structure specifies which cubic weights are used. +-- +-- If that structure is not present, @cubicWeights@ is considered to be +-- 'CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM'. +-- +-- == Valid Usage (Implicit) +-- +-- = See Also +-- +-- , +-- 'CubicFilterWeightsQCOM', +-- 'Vulkan.Core10.Enums.StructureType.StructureType' +data SamplerCubicWeightsCreateInfoQCOM = SamplerCubicWeightsCreateInfoQCOM + { -- | @cubicWeights@ is a 'CubicFilterWeightsQCOM' value controlling which + -- cubic weights are used. + -- + -- #VUID-VkSamplerCubicWeightsCreateInfoQCOM-cubicWeights-parameter# + -- @cubicWeights@ /must/ be a valid 'CubicFilterWeightsQCOM' value + cubicWeights :: CubicFilterWeightsQCOM } + deriving (Typeable, Eq) +#if defined(GENERIC_INSTANCES) +deriving instance Generic (SamplerCubicWeightsCreateInfoQCOM) +#endif +deriving instance Show SamplerCubicWeightsCreateInfoQCOM + +instance ToCStruct SamplerCubicWeightsCreateInfoQCOM where + withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p) + pokeCStruct p SamplerCubicWeightsCreateInfoQCOM{..} f = do + poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_SAMPLER_CUBIC_WEIGHTS_CREATE_INFO_QCOM) + poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr) + poke ((p `plusPtr` 16 :: Ptr CubicFilterWeightsQCOM)) (cubicWeights) + f + cStructSize = 24 + cStructAlignment = 8 + pokeZeroCStruct p f = do + poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_SAMPLER_CUBIC_WEIGHTS_CREATE_INFO_QCOM) + poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr) + poke ((p `plusPtr` 16 :: Ptr CubicFilterWeightsQCOM)) (zero) + f + +instance FromCStruct SamplerCubicWeightsCreateInfoQCOM where + peekCStruct p = do + cubicWeights <- peek @CubicFilterWeightsQCOM ((p `plusPtr` 16 :: Ptr CubicFilterWeightsQCOM)) + pure $ SamplerCubicWeightsCreateInfoQCOM + cubicWeights + +instance Storable SamplerCubicWeightsCreateInfoQCOM where + sizeOf ~_ = 24 + alignment ~_ = 8 + peek = peekCStruct + poke ptr poked = pokeCStruct ptr poked (pure ()) + +instance Zero SamplerCubicWeightsCreateInfoQCOM where + zero = SamplerCubicWeightsCreateInfoQCOM + zero + + +-- | VkBlitImageCubicWeightsInfoQCOM - Structure specifying image blit cubic +-- weight info +-- +-- == Valid Usage (Implicit) +-- +-- = See Also +-- +-- , +-- , +-- 'CubicFilterWeightsQCOM', +-- 'Vulkan.Core10.Enums.StructureType.StructureType' +data BlitImageCubicWeightsInfoQCOM = BlitImageCubicWeightsInfoQCOM + { -- | @cubicWeights@ is a 'CubicFilterWeightsQCOM' value controlling cubic + -- filter weights for the blit. + -- + -- #VUID-VkBlitImageCubicWeightsInfoQCOM-cubicWeights-parameter# + -- @cubicWeights@ /must/ be a valid 'CubicFilterWeightsQCOM' value + cubicWeights :: CubicFilterWeightsQCOM } + deriving (Typeable, Eq) +#if defined(GENERIC_INSTANCES) +deriving instance Generic (BlitImageCubicWeightsInfoQCOM) +#endif +deriving instance Show BlitImageCubicWeightsInfoQCOM + +instance ToCStruct BlitImageCubicWeightsInfoQCOM where + withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p) + pokeCStruct p BlitImageCubicWeightsInfoQCOM{..} f = do + poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_BLIT_IMAGE_CUBIC_WEIGHTS_INFO_QCOM) + poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr) + poke ((p `plusPtr` 16 :: Ptr CubicFilterWeightsQCOM)) (cubicWeights) + f + cStructSize = 24 + cStructAlignment = 8 + pokeZeroCStruct p f = do + poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_BLIT_IMAGE_CUBIC_WEIGHTS_INFO_QCOM) + poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr) + poke ((p `plusPtr` 16 :: Ptr CubicFilterWeightsQCOM)) (zero) + f + +instance FromCStruct BlitImageCubicWeightsInfoQCOM where + peekCStruct p = do + cubicWeights <- peek @CubicFilterWeightsQCOM ((p `plusPtr` 16 :: Ptr CubicFilterWeightsQCOM)) + pure $ BlitImageCubicWeightsInfoQCOM + cubicWeights + +instance Storable BlitImageCubicWeightsInfoQCOM where + sizeOf ~_ = 24 + alignment ~_ = 8 + peek = peekCStruct + poke ptr poked = pokeCStruct ptr poked (pure ()) + +instance Zero BlitImageCubicWeightsInfoQCOM where + zero = BlitImageCubicWeightsInfoQCOM + zero + + +-- | VkCubicFilterWeightsQCOM - Specify cubic weights for texture filtering +-- +-- = See Also +-- +-- , +-- 'BlitImageCubicWeightsInfoQCOM', 'SamplerCubicWeightsCreateInfoQCOM' +newtype CubicFilterWeightsQCOM = CubicFilterWeightsQCOM Int32 + deriving newtype (Eq, Ord, Storable, Zero) + +-- | 'CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM' specifies Catmull-Rom weights. +pattern CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM = CubicFilterWeightsQCOM 0 + +-- | 'CUBIC_FILTER_WEIGHTS_ZERO_TANGENT_CARDINAL_QCOM' specifies Zero Tangent +-- Cardinal weights. +pattern CUBIC_FILTER_WEIGHTS_ZERO_TANGENT_CARDINAL_QCOM = CubicFilterWeightsQCOM 1 + +-- | 'CUBIC_FILTER_WEIGHTS_B_SPLINE_QCOM' specifies B-Spline weights. +pattern CUBIC_FILTER_WEIGHTS_B_SPLINE_QCOM = CubicFilterWeightsQCOM 2 + +-- | 'CUBIC_FILTER_WEIGHTS_MITCHELL_NETRAVALI_QCOM' specifies +-- Mitchell-Netravali weights. +pattern CUBIC_FILTER_WEIGHTS_MITCHELL_NETRAVALI_QCOM = CubicFilterWeightsQCOM 3 + +{-# COMPLETE + CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM + , CUBIC_FILTER_WEIGHTS_ZERO_TANGENT_CARDINAL_QCOM + , CUBIC_FILTER_WEIGHTS_B_SPLINE_QCOM + , CUBIC_FILTER_WEIGHTS_MITCHELL_NETRAVALI_QCOM :: + CubicFilterWeightsQCOM + #-} + +conNameCubicFilterWeightsQCOM :: String +conNameCubicFilterWeightsQCOM = "CubicFilterWeightsQCOM" + +enumPrefixCubicFilterWeightsQCOM :: String +enumPrefixCubicFilterWeightsQCOM = "CUBIC_FILTER_WEIGHTS_" + +showTableCubicFilterWeightsQCOM :: [(CubicFilterWeightsQCOM, String)] +showTableCubicFilterWeightsQCOM = + [ + ( CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM + , "CATMULL_ROM_QCOM" + ) + , + ( CUBIC_FILTER_WEIGHTS_ZERO_TANGENT_CARDINAL_QCOM + , "ZERO_TANGENT_CARDINAL_QCOM" + ) + , + ( CUBIC_FILTER_WEIGHTS_B_SPLINE_QCOM + , "B_SPLINE_QCOM" + ) + , + ( CUBIC_FILTER_WEIGHTS_MITCHELL_NETRAVALI_QCOM + , "MITCHELL_NETRAVALI_QCOM" + ) + ] + +instance Show CubicFilterWeightsQCOM where + showsPrec = + enumShowsPrec + enumPrefixCubicFilterWeightsQCOM + showTableCubicFilterWeightsQCOM + conNameCubicFilterWeightsQCOM + (\(CubicFilterWeightsQCOM x) -> x) + (showsPrec 11) + +instance Read CubicFilterWeightsQCOM where + readPrec = + enumReadPrec + enumPrefixCubicFilterWeightsQCOM + showTableCubicFilterWeightsQCOM + conNameCubicFilterWeightsQCOM + CubicFilterWeightsQCOM + +type QCOM_FILTER_CUBIC_WEIGHTS_SPEC_VERSION = 1 + +-- No documentation found for TopLevel "VK_QCOM_FILTER_CUBIC_WEIGHTS_SPEC_VERSION" +pattern QCOM_FILTER_CUBIC_WEIGHTS_SPEC_VERSION :: forall a . Integral a => a +pattern QCOM_FILTER_CUBIC_WEIGHTS_SPEC_VERSION = 1 + + +type QCOM_FILTER_CUBIC_WEIGHTS_EXTENSION_NAME = "VK_QCOM_filter_cubic_weights" + +-- No documentation found for TopLevel "VK_QCOM_FILTER_CUBIC_WEIGHTS_EXTENSION_NAME" +pattern QCOM_FILTER_CUBIC_WEIGHTS_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a +pattern QCOM_FILTER_CUBIC_WEIGHTS_EXTENSION_NAME = "VK_QCOM_filter_cubic_weights" + diff --git a/src/Vulkan/Extensions/VK_QCOM_filter_cubic_weights.hs-boot b/src/Vulkan/Extensions/VK_QCOM_filter_cubic_weights.hs-boot new file mode 100644 index 000000000..364ec0f89 --- /dev/null +++ b/src/Vulkan/Extensions/VK_QCOM_filter_cubic_weights.hs-boot @@ -0,0 +1,150 @@ +{-# language CPP #-} +-- | = Name +-- +-- VK_QCOM_filter_cubic_weights - device extension +-- +-- == VK_QCOM_filter_cubic_weights +-- +-- [__Name String__] +-- @VK_QCOM_filter_cubic_weights@ +-- +-- [__Extension Type__] +-- Device extension +-- +-- [__Registered Extension Number__] +-- 520 +-- +-- [__Revision__] +-- 1 +-- +-- [__Ratification Status__] +-- Not ratified +-- +-- [__Extension and Version Dependencies__] +-- +-- +-- [__Contact__] +-- +-- - Jeff Leger +-- +-- +-- == Other Extension Metadata +-- +-- [__Last Modified Date__] +-- 2023-06-23 +-- +-- [__Contributors__] +-- +-- - Jeff Leger, Qualcomm Technologies, Inc. +-- +-- - Jonathan Wicks, Qualcomm Technologies, Inc. +-- +-- == Description +-- +-- This extension extends cubic filtering by adding the ability to select a +-- set of weights. Without this extension, the weights used in cubic +-- filtering are limited to those corresponding to a Catmull-Rom spline. +-- This extension adds support for 3 additional spline weights. +-- +-- This extension adds a new structure that /can/ be added to the @pNext@ +-- chain of 'Vulkan.Core10.Sampler.SamplerCreateInfo' that /can/ be used to +-- specify which set of cubic weights are used in cubic filtering. A +-- similar structure can be added to the @pNext@ chain of +-- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.BlitImageInfo2' to +-- specify cubic weights used in a blit operation. +-- +-- With this extension weights corresponding to the following additional +-- splines can be selected for cubic filtered sampling and blits: +-- +-- - Zero Tangent Cardinal +-- +-- - B-Spline +-- +-- - Mitchell-Netravali +-- +-- == New Structures +-- +-- - Extending +-- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.BlitImageInfo2': +-- +-- - 'BlitImageCubicWeightsInfoQCOM' +-- +-- - Extending +-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2', +-- 'Vulkan.Core10.Device.DeviceCreateInfo': +-- +-- - 'PhysicalDeviceCubicWeightsFeaturesQCOM' +-- +-- - Extending 'Vulkan.Core10.Sampler.SamplerCreateInfo': +-- +-- - 'SamplerCubicWeightsCreateInfoQCOM' +-- +-- == New Enums +-- +-- - 'CubicFilterWeightsQCOM' +-- +-- == New Enum Constants +-- +-- - 'QCOM_FILTER_CUBIC_WEIGHTS_EXTENSION_NAME' +-- +-- - 'QCOM_FILTER_CUBIC_WEIGHTS_SPEC_VERSION' +-- +-- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType': +-- +-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_BLIT_IMAGE_CUBIC_WEIGHTS_INFO_QCOM' +-- +-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_CUBIC_WEIGHTS_FEATURES_QCOM' +-- +-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_SAMPLER_CUBIC_WEIGHTS_CREATE_INFO_QCOM' +-- +-- == Version History +-- +-- - Revision 1, 2023-06-23 (jleger) +-- +-- - Initial version +-- +-- == See Also +-- +-- 'BlitImageCubicWeightsInfoQCOM', 'CubicFilterWeightsQCOM', +-- 'PhysicalDeviceCubicWeightsFeaturesQCOM', +-- 'SamplerCubicWeightsCreateInfoQCOM' +-- +-- == Document Notes +-- +-- For more information, see the +-- +-- +-- This page is a generated document. Fixes and changes should be made to +-- the generator scripts, not directly. +module Vulkan.Extensions.VK_QCOM_filter_cubic_weights ( BlitImageCubicWeightsInfoQCOM + , PhysicalDeviceCubicWeightsFeaturesQCOM + , SamplerCubicWeightsCreateInfoQCOM + ) where + +import Vulkan.CStruct (FromCStruct) +import Vulkan.CStruct (ToCStruct) +import Data.Kind (Type) + +data BlitImageCubicWeightsInfoQCOM + +instance ToCStruct BlitImageCubicWeightsInfoQCOM +instance Show BlitImageCubicWeightsInfoQCOM + +instance FromCStruct BlitImageCubicWeightsInfoQCOM + + +data PhysicalDeviceCubicWeightsFeaturesQCOM + +instance ToCStruct PhysicalDeviceCubicWeightsFeaturesQCOM +instance Show PhysicalDeviceCubicWeightsFeaturesQCOM + +instance FromCStruct PhysicalDeviceCubicWeightsFeaturesQCOM + + +data SamplerCubicWeightsCreateInfoQCOM + +instance ToCStruct SamplerCubicWeightsCreateInfoQCOM +instance Show SamplerCubicWeightsCreateInfoQCOM + +instance FromCStruct SamplerCubicWeightsCreateInfoQCOM + diff --git a/src/Vulkan/Extensions/VK_QCOM_fragment_density_map_offset.hs b/src/Vulkan/Extensions/VK_QCOM_fragment_density_map_offset.hs index 90de7f298..ff7d3140e 100644 --- a/src/Vulkan/Extensions/VK_QCOM_fragment_density_map_offset.hs +++ b/src/Vulkan/Extensions/VK_QCOM_fragment_density_map_offset.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- and @@ -296,7 +299,7 @@ instance Zero PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM where -- Offset values specified for any subpass that is not the last subpass in -- the render pass are ignored. If the -- 'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.SubpassEndInfo'::@pNext@ --- chain for the last subpass of a renderpass does not include +-- chain for the last subpass of a render pass does not include -- 'SubpassFragmentDensityMapOffsetEndInfoQCOM', or if -- @fragmentDensityOffsetCount@ is zero, then the offset (0,0) is used for -- . diff --git a/src/Vulkan/Extensions/VK_QCOM_fragment_density_map_offset.hs-boot b/src/Vulkan/Extensions/VK_QCOM_fragment_density_map_offset.hs-boot index 999cd8a12..7b0b210df 100644 --- a/src/Vulkan/Extensions/VK_QCOM_fragment_density_map_offset.hs-boot +++ b/src/Vulkan/Extensions/VK_QCOM_fragment_density_map_offset.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- and diff --git a/src/Vulkan/Extensions/VK_QCOM_image_processing.hs b/src/Vulkan/Extensions/VK_QCOM_image_processing.hs index 2e3853039..1c145e217 100644 --- a/src/Vulkan/Extensions/VK_QCOM_image_processing.hs +++ b/src/Vulkan/Extensions/VK_QCOM_image_processing.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- @@ -53,7 +56,7 @@ -- 3D graphics to UI and from composition to compute applications. Simple -- scaling and filtering can be done with bilinear filtering, which comes -- for free during texture sampling. However, as screen sizes get larger --- and more use-cases rely on GPU such as camera and video post-processing +-- and more use cases rely on GPU such as camera and video post-processing -- needs, there is increasing demand for GPU to support higher order -- filtering and other advanced image processing. -- @@ -386,7 +389,8 @@ instance Zero PhysicalDeviceImageProcessingFeaturesQCOM where -- -- = Members -- --- - @sType@ is the type of this structure. +-- - @sType@ is a 'Vulkan.Core10.Enums.StructureType.StructureType' value +-- identifying this structure. -- -- - @pNext@ is @NULL@ or a pointer to a structure extending this -- structure. diff --git a/src/Vulkan/Extensions/VK_QCOM_image_processing.hs-boot b/src/Vulkan/Extensions/VK_QCOM_image_processing.hs-boot index 633fae354..e3e28f091 100644 --- a/src/Vulkan/Extensions/VK_QCOM_image_processing.hs-boot +++ b/src/Vulkan/Extensions/VK_QCOM_image_processing.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- @@ -53,7 +56,7 @@ -- 3D graphics to UI and from composition to compute applications. Simple -- scaling and filtering can be done with bilinear filtering, which comes -- for free during texture sampling. However, as screen sizes get larger --- and more use-cases rely on GPU such as camera and video post-processing +-- and more use cases rely on GPU such as camera and video post-processing -- needs, there is increasing demand for GPU to support higher order -- filtering and other advanced image processing. -- diff --git a/src/Vulkan/Extensions/VK_QCOM_image_processing2.hs b/src/Vulkan/Extensions/VK_QCOM_image_processing2.hs new file mode 100644 index 000000000..042aa00bd --- /dev/null +++ b/src/Vulkan/Extensions/VK_QCOM_image_processing2.hs @@ -0,0 +1,535 @@ +{-# language CPP #-} +-- | = Name +-- +-- VK_QCOM_image_processing2 - device extension +-- +-- == VK_QCOM_image_processing2 +-- +-- [__Name String__] +-- @VK_QCOM_image_processing2@ +-- +-- [__Extension Type__] +-- Device extension +-- +-- [__Registered Extension Number__] +-- 519 +-- +-- [__Revision__] +-- 1 +-- +-- [__Ratification Status__] +-- Not ratified +-- +-- [__Extension and Version Dependencies__] +-- +-- +-- [__Contact__] +-- +-- - Jeff Leger +-- +-- +-- == Other Extension Metadata +-- +-- [__Last Modified Date__] +-- 2023-03-10 +-- +-- [__Interactions and External Dependencies__] +-- +-- - This extension requires +-- +-- +-- - This extension provides API support for +-- +-- +-- [__Contributors__] +-- +-- - Jeff Leger, Qualcomm Technologies, Inc. +-- +-- == Description +-- +-- This extension enables support for the SPIR-V @TextureBlockMatch2QCOM@ +-- capability. It builds on the functionality of QCOM_image_processing with +-- the addition of 4 new image processing operations. +-- +-- - The @opImageBlockMatchWindowSADQCOM@\` SPIR-V instruction builds +-- upon the functionality of @opImageBlockMatchSADQCOM@\` by repeatedly +-- performing block match operations across a 2D window. The “2D +-- windowExtent” and “compareMode” are are specified by +-- 'SamplerBlockMatchWindowCreateInfoQCOM' in the sampler used to +-- create the /target image/. Like @OpImageBlockMatchSADQCOM@, +-- @opImageBlockMatchWindowSADQCOM@ computes an error metric, that +-- describes whether a block of texels in the /target image/ matches a +-- corresponding block of texels in the /reference image/. Unlike +-- @OpImageBlockMatchSADQCOM@, this instruction computes an error +-- metric at each (X,Y) location within the 2D window and returns +-- either the minimum or maximum error. The instruction only supports +-- single-component formats. Refer to the pseudocode below for details. +-- +-- - The @opImageBlockMatchWindowSSDQCOM@ follows the same pattern, +-- computing the SSD error metric at each location within the 2D +-- window. +-- +-- - The @opImageBlockMatchGatherSADQCOM@ builds upon +-- @OpImageBlockMatchSADQCOM@. This instruction computes an error +-- metric, that describes whether a block of texels in the /target +-- image/ matches a corresponding block of texels in the /reference +-- image/. The instruction computes the SAD error metric at 4 texel +-- offsets and returns the error metric for each offset in the +-- X,Y,Z,and W components. The instruction only supports +-- single-component texture formats. Refer to the pseudocode below for +-- details. +-- +-- - The @opImageBlockMatchGatherSSDQCOM@ follows the same pattern, +-- computing the SSD error metric for 4 offsets. +-- +-- Each of the above 4 image processing instructions are limited to +-- single-component formats. +-- +-- Below is the pseudocode for GLSL built-in function +-- @textureWindowBlockMatchSADQCOM@. The pseudocode for +-- @textureWindowBlockMatchSSD@ is identical other than replacing all +-- instances of @\"SAD\"@ with @\"SSD\"@. +-- +-- > vec4 textureBlockMatchWindowSAD( sampler2D target, +-- > uvec2 targetCoord, +-- > samler2D reference, +-- > uvec2 refCoord, +-- > uvec2 blocksize) { +-- > // compareMode (MIN or MAX) comes from the vkSampler associated with `target` +-- > // uvec2 window comes from the vkSampler associated with `target` +-- > minSAD = INF; +-- > maxSAD = -INF; +-- > uvec2 minCoord; +-- > uvec2 maxCoord; +-- > +-- > for (uint x=0, x < window.width; x++) { +-- > for (uint y=0; y < window.height; y++) { +-- > float SAD = textureBlockMatchSAD(target, +-- > targetCoord + uvec2(x, y), +-- > reference, +-- > refCoord, +-- > blocksize).x; +-- > // Note: the below comparison operator will produce undefined results +-- > // if SAD is a denorm value. +-- > if (SAD < minSAD) { +-- > minSAD = SAD; +-- > minCoord = uvec2(x,y); +-- > } +-- > if (SAD > maxSAD) { +-- > maxSAD = SAD; +-- > maxCoord = uvec2(x,y); +-- > } +-- > } +-- > } +-- > if (compareMode=MIN) { +-- > return vec4(minSAD, minCoord.x, minCoord.y, 0.0); +-- > } else { +-- > return vec4(maxSAD, maxCoord.x, maxCoord.y, 0.0); +-- > } +-- > } +-- +-- Below is the pseudocode for @textureBlockMatchGatherSADQCOM@. The +-- pseudocode for @textureBlockMatchGatherSSD@ follows an identical +-- pattern. +-- +-- > vec4 textureBlockMatchGatherSAD( sampler2D target, +-- > uvec2 targetCoord, +-- > samler2D reference, +-- > uvec2 refCoord, +-- > uvec2 blocksize) { +-- > vec4 out; +-- > for (uint x=0, x<4; x++) { +-- > float SAD = textureBlockMatchSAD(target, +-- > targetCoord + uvec2(x, 0), +-- > reference, +-- > refCoord, +-- > blocksize).x; +-- > out[x] = SAD; +-- > } +-- > return out; +-- > } +-- +-- == New Structures +-- +-- - Extending +-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2', +-- 'Vulkan.Core10.Device.DeviceCreateInfo': +-- +-- - 'PhysicalDeviceImageProcessing2FeaturesQCOM' +-- +-- - Extending +-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2': +-- +-- - 'PhysicalDeviceImageProcessing2PropertiesQCOM' +-- +-- - Extending 'Vulkan.Core10.Sampler.SamplerCreateInfo': +-- +-- - 'SamplerBlockMatchWindowCreateInfoQCOM' +-- +-- == New Enums +-- +-- - 'BlockMatchWindowCompareModeQCOM' +-- +-- == New Enum Constants +-- +-- - 'QCOM_IMAGE_PROCESSING_2_EXTENSION_NAME' +-- +-- - 'QCOM_IMAGE_PROCESSING_2_SPEC_VERSION' +-- +-- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType': +-- +-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_2_FEATURES_QCOM' +-- +-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_2_PROPERTIES_QCOM' +-- +-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_SAMPLER_BLOCK_MATCH_WINDOW_CREATE_INFO_QCOM' +-- +-- == Issues +-- +-- 1) What is the precision of the min\/max comparison checks? +-- +-- __RESOLVED__: Intermediate computations for the new operations are +-- performed at 16-bit floating point precision. If the value of +-- @\"float SAD\"@ in the above code sample is a 16-bit denorm value, then +-- behavior of the MIN\/MAX comparison is undefined. +-- +-- == Version History +-- +-- - Revision 1, 2023-03-10 (Jeff Leger) +-- +-- == See Also +-- +-- 'BlockMatchWindowCompareModeQCOM', +-- 'PhysicalDeviceImageProcessing2FeaturesQCOM', +-- 'PhysicalDeviceImageProcessing2PropertiesQCOM', +-- 'SamplerBlockMatchWindowCreateInfoQCOM' +-- +-- == Document Notes +-- +-- For more information, see the +-- +-- +-- This page is a generated document. Fixes and changes should be made to +-- the generator scripts, not directly. +module Vulkan.Extensions.VK_QCOM_image_processing2 ( PhysicalDeviceImageProcessing2FeaturesQCOM(..) + , PhysicalDeviceImageProcessing2PropertiesQCOM(..) + , SamplerBlockMatchWindowCreateInfoQCOM(..) + , BlockMatchWindowCompareModeQCOM( BLOCK_MATCH_WINDOW_COMPARE_MODE_MIN_QCOM + , BLOCK_MATCH_WINDOW_COMPARE_MODE_MAX_QCOM + , .. + ) + , QCOM_IMAGE_PROCESSING_2_SPEC_VERSION + , pattern QCOM_IMAGE_PROCESSING_2_SPEC_VERSION + , QCOM_IMAGE_PROCESSING_2_EXTENSION_NAME + , pattern QCOM_IMAGE_PROCESSING_2_EXTENSION_NAME + ) where + +import Vulkan.Internal.Utils (enumReadPrec) +import Vulkan.Internal.Utils (enumShowsPrec) +import Foreign.Marshal.Alloc (allocaBytes) +import Foreign.Ptr (nullPtr) +import Foreign.Ptr (plusPtr) +import GHC.Show (showsPrec) +import 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.FundamentalTypes (Extent2D) +import Vulkan.Core10.Enums.StructureType (StructureType) +import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_2_FEATURES_QCOM)) +import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_2_PROPERTIES_QCOM)) +import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_SAMPLER_BLOCK_MATCH_WINDOW_CREATE_INFO_QCOM)) +-- | VkPhysicalDeviceImageProcessing2FeaturesQCOM - Structure describing +-- image processing features that can be supported by an implementation +-- +-- = Members +-- +-- This structure describes the following features: +-- +-- = Description +-- +-- If the 'PhysicalDeviceImageProcessing2FeaturesQCOM' 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. 'PhysicalDeviceImageProcessing2FeaturesQCOM' /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 PhysicalDeviceImageProcessing2FeaturesQCOM = PhysicalDeviceImageProcessing2FeaturesQCOM + { -- | #features-textureBlockMatch2# @textureBlockMatch2@ indicates that the + -- implementation supports shader modules that declare the + -- @TextureBlockMatch2QCOM@ capability. + textureBlockMatch2 :: Bool } + deriving (Typeable, Eq) +#if defined(GENERIC_INSTANCES) +deriving instance Generic (PhysicalDeviceImageProcessing2FeaturesQCOM) +#endif +deriving instance Show PhysicalDeviceImageProcessing2FeaturesQCOM + +instance ToCStruct PhysicalDeviceImageProcessing2FeaturesQCOM where + withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p) + pokeCStruct p PhysicalDeviceImageProcessing2FeaturesQCOM{..} f = do + poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_2_FEATURES_QCOM) + poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr) + poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (textureBlockMatch2)) + f + cStructSize = 24 + cStructAlignment = 8 + pokeZeroCStruct p f = do + poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_2_FEATURES_QCOM) + poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr) + poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero)) + f + +instance FromCStruct PhysicalDeviceImageProcessing2FeaturesQCOM where + peekCStruct p = do + textureBlockMatch2 <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32)) + pure $ PhysicalDeviceImageProcessing2FeaturesQCOM + (bool32ToBool textureBlockMatch2) + +instance Storable PhysicalDeviceImageProcessing2FeaturesQCOM where + sizeOf ~_ = 24 + alignment ~_ = 8 + peek = peekCStruct + poke ptr poked = pokeCStruct ptr poked (pure ()) + +instance Zero PhysicalDeviceImageProcessing2FeaturesQCOM where + zero = PhysicalDeviceImageProcessing2FeaturesQCOM + zero + + +-- | VkPhysicalDeviceImageProcessing2PropertiesQCOM - Structure containing +-- image processing2 properties +-- +-- = Description +-- +-- - #limits-blockmatch-maxWindowExtent#@maxBlockMatchWindow@ is a +-- 'Vulkan.Core10.FundamentalTypes.Extent2D' describing the largest +-- dimensions (@width@ and @height@) that /can/ be specified for the +-- block match window. +-- +-- If the 'PhysicalDeviceImageProcessing2PropertiesQCOM' 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 image processing2 information of a physical +-- device. +-- +-- == Valid Usage (Implicit) +-- +-- - #VUID-VkPhysicalDeviceImageProcessing2PropertiesQCOM-sType-sType# +-- @sType@ /must/ be +-- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_2_PROPERTIES_QCOM' +-- +-- = See Also +-- +-- , +-- 'Vulkan.Core10.FundamentalTypes.Extent2D', +-- 'Vulkan.Core10.Enums.StructureType.StructureType' +data PhysicalDeviceImageProcessing2PropertiesQCOM = PhysicalDeviceImageProcessing2PropertiesQCOM + { -- No documentation found for Nested "VkPhysicalDeviceImageProcessing2PropertiesQCOM" "maxBlockMatchWindow" + maxBlockMatchWindow :: Extent2D } + deriving (Typeable) +#if defined(GENERIC_INSTANCES) +deriving instance Generic (PhysicalDeviceImageProcessing2PropertiesQCOM) +#endif +deriving instance Show PhysicalDeviceImageProcessing2PropertiesQCOM + +instance ToCStruct PhysicalDeviceImageProcessing2PropertiesQCOM where + withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p) + pokeCStruct p PhysicalDeviceImageProcessing2PropertiesQCOM{..} f = do + poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_2_PROPERTIES_QCOM) + poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr) + poke ((p `plusPtr` 16 :: Ptr Extent2D)) (maxBlockMatchWindow) + f + cStructSize = 24 + cStructAlignment = 8 + pokeZeroCStruct p f = do + poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_2_PROPERTIES_QCOM) + poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr) + f + +instance FromCStruct PhysicalDeviceImageProcessing2PropertiesQCOM where + peekCStruct p = do + maxBlockMatchWindow <- peekCStruct @Extent2D ((p `plusPtr` 16 :: Ptr Extent2D)) + pure $ PhysicalDeviceImageProcessing2PropertiesQCOM + maxBlockMatchWindow + +instance Storable PhysicalDeviceImageProcessing2PropertiesQCOM where + sizeOf ~_ = 24 + alignment ~_ = 8 + peek = peekCStruct + poke ptr poked = pokeCStruct ptr poked (pure ()) + +instance Zero PhysicalDeviceImageProcessing2PropertiesQCOM where + zero = PhysicalDeviceImageProcessing2PropertiesQCOM + zero + + +-- | VkSamplerBlockMatchWindowCreateInfoQCOM - Structure specifying the block +-- match window parameters +-- +-- == Valid Usage (Implicit) +-- +-- = See Also +-- +-- , +-- 'BlockMatchWindowCompareModeQCOM', +-- 'Vulkan.Core10.FundamentalTypes.Extent2D', +-- 'Vulkan.Core10.Enums.StructureType.StructureType' +data SamplerBlockMatchWindowCreateInfoQCOM = SamplerBlockMatchWindowCreateInfoQCOM + { -- | @windowExtent@ is a 'Vulkan.Core10.FundamentalTypes.Extent2D' specifying + -- a the width and height of the block match window. + windowExtent :: Extent2D + , -- | @windowCompareMode@ is a 'BlockMatchWindowCompareModeQCOM' specifying + -- the compare mode. + -- + -- #VUID-VkSamplerBlockMatchWindowCreateInfoQCOM-windowCompareMode-parameter# + -- @windowCompareMode@ /must/ be a valid 'BlockMatchWindowCompareModeQCOM' + -- value + windowCompareMode :: BlockMatchWindowCompareModeQCOM + } + deriving (Typeable) +#if defined(GENERIC_INSTANCES) +deriving instance Generic (SamplerBlockMatchWindowCreateInfoQCOM) +#endif +deriving instance Show SamplerBlockMatchWindowCreateInfoQCOM + +instance ToCStruct SamplerBlockMatchWindowCreateInfoQCOM where + withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p) + pokeCStruct p SamplerBlockMatchWindowCreateInfoQCOM{..} f = do + poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_SAMPLER_BLOCK_MATCH_WINDOW_CREATE_INFO_QCOM) + poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr) + poke ((p `plusPtr` 16 :: Ptr Extent2D)) (windowExtent) + poke ((p `plusPtr` 24 :: Ptr BlockMatchWindowCompareModeQCOM)) (windowCompareMode) + f + cStructSize = 32 + cStructAlignment = 8 + pokeZeroCStruct p f = do + poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_SAMPLER_BLOCK_MATCH_WINDOW_CREATE_INFO_QCOM) + poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr) + poke ((p `plusPtr` 16 :: Ptr Extent2D)) (zero) + poke ((p `plusPtr` 24 :: Ptr BlockMatchWindowCompareModeQCOM)) (zero) + f + +instance FromCStruct SamplerBlockMatchWindowCreateInfoQCOM where + peekCStruct p = do + windowExtent <- peekCStruct @Extent2D ((p `plusPtr` 16 :: Ptr Extent2D)) + windowCompareMode <- peek @BlockMatchWindowCompareModeQCOM ((p `plusPtr` 24 :: Ptr BlockMatchWindowCompareModeQCOM)) + pure $ SamplerBlockMatchWindowCreateInfoQCOM + windowExtent windowCompareMode + +instance Storable SamplerBlockMatchWindowCreateInfoQCOM where + sizeOf ~_ = 32 + alignment ~_ = 8 + peek = peekCStruct + poke ptr poked = pokeCStruct ptr poked (pure ()) + +instance Zero SamplerBlockMatchWindowCreateInfoQCOM where + zero = SamplerBlockMatchWindowCreateInfoQCOM + zero + zero + + +-- | VkBlockMatchWindowCompareModeQCOM - Block match window compare modes +-- +-- = See Also +-- +-- , +-- 'SamplerBlockMatchWindowCreateInfoQCOM' +newtype BlockMatchWindowCompareModeQCOM = BlockMatchWindowCompareModeQCOM Int32 + deriving newtype (Eq, Ord, Storable, Zero) + +-- | 'BLOCK_MATCH_WINDOW_COMPARE_MODE_MIN_QCOM' specifies that windowed block +-- match operations return the minimum error within the window. +pattern BLOCK_MATCH_WINDOW_COMPARE_MODE_MIN_QCOM = BlockMatchWindowCompareModeQCOM 0 + +-- | 'BLOCK_MATCH_WINDOW_COMPARE_MODE_MAX_QCOM' specifies that windowed block +-- match operations return the maximum error within the window. +pattern BLOCK_MATCH_WINDOW_COMPARE_MODE_MAX_QCOM = BlockMatchWindowCompareModeQCOM 1 + +{-# COMPLETE + BLOCK_MATCH_WINDOW_COMPARE_MODE_MIN_QCOM + , BLOCK_MATCH_WINDOW_COMPARE_MODE_MAX_QCOM :: + BlockMatchWindowCompareModeQCOM + #-} + +conNameBlockMatchWindowCompareModeQCOM :: String +conNameBlockMatchWindowCompareModeQCOM = "BlockMatchWindowCompareModeQCOM" + +enumPrefixBlockMatchWindowCompareModeQCOM :: String +enumPrefixBlockMatchWindowCompareModeQCOM = "BLOCK_MATCH_WINDOW_COMPARE_MODE_M" + +showTableBlockMatchWindowCompareModeQCOM :: [(BlockMatchWindowCompareModeQCOM, String)] +showTableBlockMatchWindowCompareModeQCOM = + [ + ( BLOCK_MATCH_WINDOW_COMPARE_MODE_MIN_QCOM + , "IN_QCOM" + ) + , + ( BLOCK_MATCH_WINDOW_COMPARE_MODE_MAX_QCOM + , "AX_QCOM" + ) + ] + +instance Show BlockMatchWindowCompareModeQCOM where + showsPrec = + enumShowsPrec + enumPrefixBlockMatchWindowCompareModeQCOM + showTableBlockMatchWindowCompareModeQCOM + conNameBlockMatchWindowCompareModeQCOM + (\(BlockMatchWindowCompareModeQCOM x) -> x) + (showsPrec 11) + +instance Read BlockMatchWindowCompareModeQCOM where + readPrec = + enumReadPrec + enumPrefixBlockMatchWindowCompareModeQCOM + showTableBlockMatchWindowCompareModeQCOM + conNameBlockMatchWindowCompareModeQCOM + BlockMatchWindowCompareModeQCOM + +type QCOM_IMAGE_PROCESSING_2_SPEC_VERSION = 1 + +-- No documentation found for TopLevel "VK_QCOM_IMAGE_PROCESSING_2_SPEC_VERSION" +pattern QCOM_IMAGE_PROCESSING_2_SPEC_VERSION :: forall a . Integral a => a +pattern QCOM_IMAGE_PROCESSING_2_SPEC_VERSION = 1 + + +type QCOM_IMAGE_PROCESSING_2_EXTENSION_NAME = "VK_QCOM_image_processing2" + +-- No documentation found for TopLevel "VK_QCOM_IMAGE_PROCESSING_2_EXTENSION_NAME" +pattern QCOM_IMAGE_PROCESSING_2_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a +pattern QCOM_IMAGE_PROCESSING_2_EXTENSION_NAME = "VK_QCOM_image_processing2" + diff --git a/src/Vulkan/Extensions/VK_QCOM_image_processing2.hs-boot b/src/Vulkan/Extensions/VK_QCOM_image_processing2.hs-boot new file mode 100644 index 000000000..d6065e413 --- /dev/null +++ b/src/Vulkan/Extensions/VK_QCOM_image_processing2.hs-boot @@ -0,0 +1,245 @@ +{-# language CPP #-} +-- | = Name +-- +-- VK_QCOM_image_processing2 - device extension +-- +-- == VK_QCOM_image_processing2 +-- +-- [__Name String__] +-- @VK_QCOM_image_processing2@ +-- +-- [__Extension Type__] +-- Device extension +-- +-- [__Registered Extension Number__] +-- 519 +-- +-- [__Revision__] +-- 1 +-- +-- [__Ratification Status__] +-- Not ratified +-- +-- [__Extension and Version Dependencies__] +-- +-- +-- [__Contact__] +-- +-- - Jeff Leger +-- +-- +-- == Other Extension Metadata +-- +-- [__Last Modified Date__] +-- 2023-03-10 +-- +-- [__Interactions and External Dependencies__] +-- +-- - This extension requires +-- +-- +-- - This extension provides API support for +-- +-- +-- [__Contributors__] +-- +-- - Jeff Leger, Qualcomm Technologies, Inc. +-- +-- == Description +-- +-- This extension enables support for the SPIR-V @TextureBlockMatch2QCOM@ +-- capability. It builds on the functionality of QCOM_image_processing with +-- the addition of 4 new image processing operations. +-- +-- - The @opImageBlockMatchWindowSADQCOM@\` SPIR-V instruction builds +-- upon the functionality of @opImageBlockMatchSADQCOM@\` by repeatedly +-- performing block match operations across a 2D window. The “2D +-- windowExtent” and “compareMode” are are specified by +-- 'SamplerBlockMatchWindowCreateInfoQCOM' in the sampler used to +-- create the /target image/. Like @OpImageBlockMatchSADQCOM@, +-- @opImageBlockMatchWindowSADQCOM@ computes an error metric, that +-- describes whether a block of texels in the /target image/ matches a +-- corresponding block of texels in the /reference image/. Unlike +-- @OpImageBlockMatchSADQCOM@, this instruction computes an error +-- metric at each (X,Y) location within the 2D window and returns +-- either the minimum or maximum error. The instruction only supports +-- single-component formats. Refer to the pseudocode below for details. +-- +-- - The @opImageBlockMatchWindowSSDQCOM@ follows the same pattern, +-- computing the SSD error metric at each location within the 2D +-- window. +-- +-- - The @opImageBlockMatchGatherSADQCOM@ builds upon +-- @OpImageBlockMatchSADQCOM@. This instruction computes an error +-- metric, that describes whether a block of texels in the /target +-- image/ matches a corresponding block of texels in the /reference +-- image/. The instruction computes the SAD error metric at 4 texel +-- offsets and returns the error metric for each offset in the +-- X,Y,Z,and W components. The instruction only supports +-- single-component texture formats. Refer to the pseudocode below for +-- details. +-- +-- - The @opImageBlockMatchGatherSSDQCOM@ follows the same pattern, +-- computing the SSD error metric for 4 offsets. +-- +-- Each of the above 4 image processing instructions are limited to +-- single-component formats. +-- +-- Below is the pseudocode for GLSL built-in function +-- @textureWindowBlockMatchSADQCOM@. The pseudocode for +-- @textureWindowBlockMatchSSD@ is identical other than replacing all +-- instances of @\"SAD\"@ with @\"SSD\"@. +-- +-- > vec4 textureBlockMatchWindowSAD( sampler2D target, +-- > uvec2 targetCoord, +-- > samler2D reference, +-- > uvec2 refCoord, +-- > uvec2 blocksize) { +-- > // compareMode (MIN or MAX) comes from the vkSampler associated with `target` +-- > // uvec2 window comes from the vkSampler associated with `target` +-- > minSAD = INF; +-- > maxSAD = -INF; +-- > uvec2 minCoord; +-- > uvec2 maxCoord; +-- > +-- > for (uint x=0, x < window.width; x++) { +-- > for (uint y=0; y < window.height; y++) { +-- > float SAD = textureBlockMatchSAD(target, +-- > targetCoord + uvec2(x, y), +-- > reference, +-- > refCoord, +-- > blocksize).x; +-- > // Note: the below comparison operator will produce undefined results +-- > // if SAD is a denorm value. +-- > if (SAD < minSAD) { +-- > minSAD = SAD; +-- > minCoord = uvec2(x,y); +-- > } +-- > if (SAD > maxSAD) { +-- > maxSAD = SAD; +-- > maxCoord = uvec2(x,y); +-- > } +-- > } +-- > } +-- > if (compareMode=MIN) { +-- > return vec4(minSAD, minCoord.x, minCoord.y, 0.0); +-- > } else { +-- > return vec4(maxSAD, maxCoord.x, maxCoord.y, 0.0); +-- > } +-- > } +-- +-- Below is the pseudocode for @textureBlockMatchGatherSADQCOM@. The +-- pseudocode for @textureBlockMatchGatherSSD@ follows an identical +-- pattern. +-- +-- > vec4 textureBlockMatchGatherSAD( sampler2D target, +-- > uvec2 targetCoord, +-- > samler2D reference, +-- > uvec2 refCoord, +-- > uvec2 blocksize) { +-- > vec4 out; +-- > for (uint x=0, x<4; x++) { +-- > float SAD = textureBlockMatchSAD(target, +-- > targetCoord + uvec2(x, 0), +-- > reference, +-- > refCoord, +-- > blocksize).x; +-- > out[x] = SAD; +-- > } +-- > return out; +-- > } +-- +-- == New Structures +-- +-- - Extending +-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2', +-- 'Vulkan.Core10.Device.DeviceCreateInfo': +-- +-- - 'PhysicalDeviceImageProcessing2FeaturesQCOM' +-- +-- - Extending +-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2': +-- +-- - 'PhysicalDeviceImageProcessing2PropertiesQCOM' +-- +-- - Extending 'Vulkan.Core10.Sampler.SamplerCreateInfo': +-- +-- - 'SamplerBlockMatchWindowCreateInfoQCOM' +-- +-- == New Enums +-- +-- - 'BlockMatchWindowCompareModeQCOM' +-- +-- == New Enum Constants +-- +-- - 'QCOM_IMAGE_PROCESSING_2_EXTENSION_NAME' +-- +-- - 'QCOM_IMAGE_PROCESSING_2_SPEC_VERSION' +-- +-- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType': +-- +-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_2_FEATURES_QCOM' +-- +-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_2_PROPERTIES_QCOM' +-- +-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_SAMPLER_BLOCK_MATCH_WINDOW_CREATE_INFO_QCOM' +-- +-- == Issues +-- +-- 1) What is the precision of the min\/max comparison checks? +-- +-- __RESOLVED__: Intermediate computations for the new operations are +-- performed at 16-bit floating point precision. If the value of +-- @\"float SAD\"@ in the above code sample is a 16-bit denorm value, then +-- behavior of the MIN\/MAX comparison is undefined. +-- +-- == Version History +-- +-- - Revision 1, 2023-03-10 (Jeff Leger) +-- +-- == See Also +-- +-- 'BlockMatchWindowCompareModeQCOM', +-- 'PhysicalDeviceImageProcessing2FeaturesQCOM', +-- 'PhysicalDeviceImageProcessing2PropertiesQCOM', +-- 'SamplerBlockMatchWindowCreateInfoQCOM' +-- +-- == Document Notes +-- +-- For more information, see the +-- +-- +-- This page is a generated document. Fixes and changes should be made to +-- the generator scripts, not directly. +module Vulkan.Extensions.VK_QCOM_image_processing2 ( PhysicalDeviceImageProcessing2FeaturesQCOM + , PhysicalDeviceImageProcessing2PropertiesQCOM + , SamplerBlockMatchWindowCreateInfoQCOM + ) where + +import Vulkan.CStruct (FromCStruct) +import Vulkan.CStruct (ToCStruct) +import Data.Kind (Type) + +data PhysicalDeviceImageProcessing2FeaturesQCOM + +instance ToCStruct PhysicalDeviceImageProcessing2FeaturesQCOM +instance Show PhysicalDeviceImageProcessing2FeaturesQCOM + +instance FromCStruct PhysicalDeviceImageProcessing2FeaturesQCOM + + +data PhysicalDeviceImageProcessing2PropertiesQCOM + +instance ToCStruct PhysicalDeviceImageProcessing2PropertiesQCOM +instance Show PhysicalDeviceImageProcessing2PropertiesQCOM + +instance FromCStruct PhysicalDeviceImageProcessing2PropertiesQCOM + + +data SamplerBlockMatchWindowCreateInfoQCOM + +instance ToCStruct SamplerBlockMatchWindowCreateInfoQCOM +instance Show SamplerBlockMatchWindowCreateInfoQCOM + +instance FromCStruct SamplerBlockMatchWindowCreateInfoQCOM + diff --git a/src/Vulkan/Extensions/VK_QCOM_multiview_per_view_render_areas.hs b/src/Vulkan/Extensions/VK_QCOM_multiview_per_view_render_areas.hs index fe3b0ece3..e11fc92c6 100644 --- a/src/Vulkan/Extensions/VK_QCOM_multiview_per_view_render_areas.hs +++ b/src/Vulkan/Extensions/VK_QCOM_multiview_per_view_render_areas.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__; __Contact__] -- -- - Jeff Leger @@ -46,7 +49,7 @@ -- -- == Description -- --- Certain use-cases (e.g., side-by-side VR rendering) use multiview and +-- Certain use cases (e.g., side-by-side VR rendering) use multiview and -- render to distinct regions of the framebuffer for each view. On some -- implementations, there may be a performance benefit for providing -- per-view render areas to the implementation. Such per-view render areas diff --git a/src/Vulkan/Extensions/VK_QCOM_multiview_per_view_render_areas.hs-boot b/src/Vulkan/Extensions/VK_QCOM_multiview_per_view_render_areas.hs-boot index 163058b45..f6e35835f 100644 --- a/src/Vulkan/Extensions/VK_QCOM_multiview_per_view_render_areas.hs-boot +++ b/src/Vulkan/Extensions/VK_QCOM_multiview_per_view_render_areas.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__; __Contact__] -- -- - Jeff Leger @@ -46,7 +49,7 @@ -- -- == Description -- --- Certain use-cases (e.g., side-by-side VR rendering) use multiview and +-- Certain use cases (e.g., side-by-side VR rendering) use multiview and -- render to distinct regions of the framebuffer for each view. On some -- implementations, there may be a performance benefit for providing -- per-view render areas to the implementation. Such per-view render areas diff --git a/src/Vulkan/Extensions/VK_QCOM_multiview_per_view_viewports.hs b/src/Vulkan/Extensions/VK_QCOM_multiview_per_view_viewports.hs index 7d9d56cc8..b6c7c3d9d 100644 --- a/src/Vulkan/Extensions/VK_QCOM_multiview_per_view_viewports.hs +++ b/src/Vulkan/Extensions/VK_QCOM_multiview_per_view_viewports.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- @@ -49,7 +52,7 @@ -- -- == Description -- --- Certain use-cases for multiview have a need for specifying a separate +-- Certain use cases for multiview have a need for specifying a separate -- viewport and scissor for each view, without using shader-based viewport -- indexing as introduced with @VK_EXT_shader_viewport_index_layer@. -- @@ -58,7 +61,7 @@ -- -- feature is enabled and if the last pre-rasterization shader entry -- point’s interface does not use the @ViewportIndex@ built-in decoration, --- then each view of a multiview renderpass instance will use a viewport +-- then each view of a multiview render pass instance will use a viewport -- and scissor index equal to the @ViewIndex@. -- -- == New Structures @@ -83,14 +86,14 @@ -- -- 1) Is is possible to enable\/disable the -- --- feature for individual renderpass instances? +-- feature for individual render pass instances? -- -- __RESOLVED__: No, when the multiviewPerViewViewports feature is enabled --- during vkCreateDevice, then all created renderpass instances (including --- dynamic renderpasses from @VK_KHR_dynamic_rendering@) and all created +-- during vkCreateDevice, then all created render pass instances (including +-- dynamic render passes from @VK_KHR_dynamic_rendering@) and all created -- VkPipelines will have the feature enabled. This approach was chosen --- because it simplifies application code and there is no known use-case --- enable\/disable the feature for individual renderpasses or pipelines. +-- because it simplifies application code and there is no known use case +-- enable\/disable the feature for individual render passes or pipelines. -- -- 2) When this extension is used, is the value of @ViewportIndex@ -- implicitly written by the last pre-rasterization shader stage and can diff --git a/src/Vulkan/Extensions/VK_QCOM_multiview_per_view_viewports.hs-boot b/src/Vulkan/Extensions/VK_QCOM_multiview_per_view_viewports.hs-boot index 1fa5e02a9..a72fd5dc1 100644 --- a/src/Vulkan/Extensions/VK_QCOM_multiview_per_view_viewports.hs-boot +++ b/src/Vulkan/Extensions/VK_QCOM_multiview_per_view_viewports.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- @@ -49,7 +52,7 @@ -- -- == Description -- --- Certain use-cases for multiview have a need for specifying a separate +-- Certain use cases for multiview have a need for specifying a separate -- viewport and scissor for each view, without using shader-based viewport -- indexing as introduced with @VK_EXT_shader_viewport_index_layer@. -- @@ -58,7 +61,7 @@ -- -- feature is enabled and if the last pre-rasterization shader entry -- point’s interface does not use the @ViewportIndex@ built-in decoration, --- then each view of a multiview renderpass instance will use a viewport +-- then each view of a multiview render pass instance will use a viewport -- and scissor index equal to the @ViewIndex@. -- -- == New Structures @@ -83,14 +86,14 @@ -- -- 1) Is is possible to enable\/disable the -- --- feature for individual renderpass instances? +-- feature for individual render pass instances? -- -- __RESOLVED__: No, when the multiviewPerViewViewports feature is enabled --- during vkCreateDevice, then all created renderpass instances (including --- dynamic renderpasses from @VK_KHR_dynamic_rendering@) and all created +-- during vkCreateDevice, then all created render pass instances (including +-- dynamic render passes from @VK_KHR_dynamic_rendering@) and all created -- VkPipelines will have the feature enabled. This approach was chosen --- because it simplifies application code and there is no known use-case --- enable\/disable the feature for individual renderpasses or pipelines. +-- because it simplifies application code and there is no known use case +-- enable\/disable the feature for individual render passes or pipelines. -- -- 2) When this extension is used, is the value of @ViewportIndex@ -- implicitly written by the last pre-rasterization shader stage and can diff --git a/src/Vulkan/Extensions/VK_QCOM_render_pass_shader_resolve.hs b/src/Vulkan/Extensions/VK_QCOM_render_pass_shader_resolve.hs index 534bf0e33..951e57470 100644 --- a/src/Vulkan/Extensions/VK_QCOM_render_pass_shader_resolve.hs +++ b/src/Vulkan/Extensions/VK_QCOM_render_pass_shader_resolve.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 4 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__; __Contact__] -- -- - Bill Licea-Kane diff --git a/src/Vulkan/Extensions/VK_QCOM_render_pass_store_ops.hs b/src/Vulkan/Extensions/VK_QCOM_render_pass_store_ops.hs index 0e416bbb3..da1b13ecc 100644 --- a/src/Vulkan/Extensions/VK_QCOM_render_pass_store_ops.hs +++ b/src/Vulkan/Extensions/VK_QCOM_render_pass_store_ops.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 2 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__; __Contact__] -- -- - Bill Licea-Kane @@ -33,7 +36,7 @@ -- -- == Description -- --- Renderpass attachments /can/ be read-only for the duration of a render +-- Render pass attachments /can/ be read-only for the duration of a render -- pass. -- -- Examples include input attachments and depth attachments where depth diff --git a/src/Vulkan/Extensions/VK_QCOM_render_pass_transform.hs b/src/Vulkan/Extensions/VK_QCOM_render_pass_transform.hs index e59d16942..ba27aab0e 100644 --- a/src/Vulkan/Extensions/VK_QCOM_render_pass_transform.hs +++ b/src/Vulkan/Extensions/VK_QCOM_render_pass_transform.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 3 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- and @@ -192,12 +195,12 @@ -- -- 2) Should the extension support only rotations (e.g. 90, 180, -- 270-degrees), or also mirror transforms (e.g. vertical flips)? Mobile --- use-cases only require rotation. Other display systems such as +-- use cases only require rotation. Other display systems such as -- projectors might require a flipped transform. -- -- __RESOLVED__: In this version of the extension, the functionality is --- restricted to 90, 180, and 270-degree rotations to address mobile --- use-cases. +-- restricted to 90, 180, and 270-degree rotations to address mobile use +-- cases. -- -- 3) How does this extension interact with VK_EXT_fragment_density_map? -- diff --git a/src/Vulkan/Extensions/VK_QCOM_render_pass_transform.hs-boot b/src/Vulkan/Extensions/VK_QCOM_render_pass_transform.hs-boot index 76a172f0f..596d0ae9a 100644 --- a/src/Vulkan/Extensions/VK_QCOM_render_pass_transform.hs-boot +++ b/src/Vulkan/Extensions/VK_QCOM_render_pass_transform.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 3 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- and @@ -192,12 +195,12 @@ -- -- 2) Should the extension support only rotations (e.g. 90, 180, -- 270-degrees), or also mirror transforms (e.g. vertical flips)? Mobile --- use-cases only require rotation. Other display systems such as +-- use cases only require rotation. Other display systems such as -- projectors might require a flipped transform. -- -- __RESOLVED__: In this version of the extension, the functionality is --- restricted to 90, 180, and 270-degree rotations to address mobile --- use-cases. +-- restricted to 90, 180, and 270-degree rotations to address mobile use +-- cases. -- -- 3) How does this extension interact with VK_EXT_fragment_density_map? -- diff --git a/src/Vulkan/Extensions/VK_QCOM_rotated_copy_commands.hs b/src/Vulkan/Extensions/VK_QCOM_rotated_copy_commands.hs index dc6d10ade..75155204c 100644 --- a/src/Vulkan/Extensions/VK_QCOM_rotated_copy_commands.hs +++ b/src/Vulkan/Extensions/VK_QCOM_rotated_copy_commands.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- and @@ -72,7 +75,7 @@ -- vkCmdCopyImage2KHR? -- -- __RESOLVED__: No. Use of rotated vkCmdBlitImage2KHR can fully address --- this use-case. +-- this use case. -- -- 3) Should this extension add a rotation capability to -- vkCmdResolveImage2KHR? diff --git a/src/Vulkan/Extensions/VK_QCOM_rotated_copy_commands.hs-boot b/src/Vulkan/Extensions/VK_QCOM_rotated_copy_commands.hs-boot index d36bb9e00..f0b4135b6 100644 --- a/src/Vulkan/Extensions/VK_QCOM_rotated_copy_commands.hs-boot +++ b/src/Vulkan/Extensions/VK_QCOM_rotated_copy_commands.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- and @@ -72,7 +75,7 @@ -- vkCmdCopyImage2KHR? -- -- __RESOLVED__: No. Use of rotated vkCmdBlitImage2KHR can fully address --- this use-case. +-- this use case. -- -- 3) Should this extension add a rotation capability to -- vkCmdResolveImage2KHR? diff --git a/src/Vulkan/Extensions/VK_QCOM_tile_properties.hs b/src/Vulkan/Extensions/VK_QCOM_tile_properties.hs index a87ef5fa9..70dac5a48 100644 --- a/src/Vulkan/Extensions/VK_QCOM_tile_properties.hs +++ b/src/Vulkan/Extensions/VK_QCOM_tile_properties.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- @@ -60,8 +63,6 @@ -- -- == New Structures -- --- - 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR' --- -- - 'TilePropertiesQCOM' -- -- - Extending @@ -70,6 +71,12 @@ -- -- - 'PhysicalDeviceTilePropertiesFeaturesQCOM' -- +-- If +-- +-- is supported: +-- +-- - 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR' +-- -- == New Enum Constants -- -- - 'QCOM_TILE_PROPERTIES_EXTENSION_NAME' @@ -90,9 +97,8 @@ -- -- == See Also -- --- 'PhysicalDeviceTilePropertiesFeaturesQCOM', --- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR', --- 'TilePropertiesQCOM', 'getDynamicRenderingTilePropertiesQCOM', +-- 'PhysicalDeviceTilePropertiesFeaturesQCOM', 'TilePropertiesQCOM', +-- 'getDynamicRenderingTilePropertiesQCOM', -- 'getFramebufferTilePropertiesQCOM' -- -- == Document Notes diff --git a/src/Vulkan/Extensions/VK_QCOM_tile_properties.hs-boot b/src/Vulkan/Extensions/VK_QCOM_tile_properties.hs-boot index fca60214a..c7fda3a5b 100644 --- a/src/Vulkan/Extensions/VK_QCOM_tile_properties.hs-boot +++ b/src/Vulkan/Extensions/VK_QCOM_tile_properties.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- @@ -60,8 +63,6 @@ -- -- == New Structures -- --- - 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR' --- -- - 'TilePropertiesQCOM' -- -- - Extending @@ -70,6 +71,12 @@ -- -- - 'PhysicalDeviceTilePropertiesFeaturesQCOM' -- +-- If +-- +-- is supported: +-- +-- - 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR' +-- -- == New Enum Constants -- -- - 'QCOM_TILE_PROPERTIES_EXTENSION_NAME' @@ -90,9 +97,8 @@ -- -- == See Also -- --- 'PhysicalDeviceTilePropertiesFeaturesQCOM', --- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingInfoKHR', --- 'TilePropertiesQCOM', 'getDynamicRenderingTilePropertiesQCOM', +-- 'PhysicalDeviceTilePropertiesFeaturesQCOM', 'TilePropertiesQCOM', +-- 'getDynamicRenderingTilePropertiesQCOM', -- 'getFramebufferTilePropertiesQCOM' -- -- == Document Notes diff --git a/src/Vulkan/Extensions/VK_QCOM_ycbcr_degamma.hs b/src/Vulkan/Extensions/VK_QCOM_ycbcr_degamma.hs new file mode 100644 index 000000000..47a0deb45 --- /dev/null +++ b/src/Vulkan/Extensions/VK_QCOM_ycbcr_degamma.hs @@ -0,0 +1,325 @@ +{-# language CPP #-} +-- | = Name +-- +-- VK_QCOM_ycbcr_degamma - device extension +-- +-- == VK_QCOM_ycbcr_degamma +-- +-- [__Name String__] +-- @VK_QCOM_ycbcr_degamma@ +-- +-- [__Extension Type__] +-- Device extension +-- +-- [__Registered Extension Number__] +-- 521 +-- +-- [__Revision__] +-- 1 +-- +-- [__Ratification Status__] +-- Not ratified +-- +-- [__Extension and Version Dependencies__; __Contact__] +-- +-- - Jeff Leger +-- +-- +-- == Other Extension Metadata +-- +-- [__Last Modified Date__] +-- 2023-07-31 +-- +-- [__IP Status__] +-- No known IP claims. +-- +-- [__Interactions and External Dependencies__] +-- None +-- +-- [__Contributors__] +-- +-- - Jeff Leger, Qualcomm +-- +-- - Jonathan Wicks, Qualcomm +-- +-- == Description +-- +-- This extension allows implementations to expose support for “sRGB EOTF” +-- also known as “sRGB degamma”, used in combination with images using +-- 8-bit Y′CBCR formats. In addition, the degamma can be selectively +-- applied to the Y (luma) or CrCb (chroma). +-- +-- @VK_KHR_sampler_ycbcr_conversion@ adds support for Y′CBCR conversion, +-- but allows texture sampling in a non-linear space which can cause +-- artifacts. This extension allows implementations to expose sRGB degamma +-- for Y′CBCR formats, which is performed during texture filtering, +-- allowing texture filtering to operate in a linear space. +-- +-- == New Structures +-- +-- - Extending +-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2', +-- 'Vulkan.Core10.Device.DeviceCreateInfo': +-- +-- - 'PhysicalDeviceYcbcrDegammaFeaturesQCOM' +-- +-- - Extending +-- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.SamplerYcbcrConversionCreateInfo': +-- +-- - 'SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM' +-- +-- == New Enum Constants +-- +-- - 'QCOM_YCBCR_DEGAMMA_EXTENSION_NAME' +-- +-- - 'QCOM_YCBCR_DEGAMMA_SPEC_VERSION' +-- +-- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType': +-- +-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_DEGAMMA_FEATURES_QCOM' +-- +-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_YCBCR_DEGAMMA_CREATE_INFO_QCOM' +-- +-- == Issues +-- +-- 1) Which Y′CBCR formats support the degamma feature? +-- +-- __RESOLVED__: For implementations that support the extension, each +-- format that contains 8-bit R, G, and B components and supports either +-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT' +-- or +-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT' +-- must support degamma. +-- +-- Since non-compressed Vulkan sRGB formats are already limited to 8-bit +-- components, and since Adreno supports degamma for all 8bit Y′CBCR +-- formats, this extension does not introduce a new VK_FORMAT_FEATURE* bit +-- for the degamma feature. +-- +-- 2) On which Y′CBCR components is the degamma applied? +-- +-- __RESOLVED__: While degamma is expected to be applied to only the Y +-- (luma) component, the extension provides the ability to selectively +-- enable degamma for both the Y (luma) and\/or CbCr (chroma) components. +-- +-- 3) Should degamma be enabled for the sampler object or for the image +-- view object? +-- +-- __RESOLVED__: Both. This extension extends +-- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.SamplerYcbcrConversionCreateInfo' +-- and the specification already requires that both sampler and view +-- objects must be created with an /identical/ +-- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.SamplerYcbcrConversionCreateInfo' +-- in their pNext chains. +-- +-- 4) Why apply the “sRGB” transfer function directly to Y′CBCR data when +-- it would be more correct to use the “ITU transfer function”, and do so +-- only after the values have been converted into non-linear R’G’B\'? +-- +-- __RESOLVED__: Y′CBCR is frequently stored according to standards (e.g. +-- BT.601 and BT.709) that specify that the conversion between linear and +-- non-linear should use the ITU Transfer function. The ITU transfer +-- function is mathematically different from the sRGB transfer function and +-- while sRGB and ITU define similar curves, the difference is significant. +-- Performing the “sRGB degamma” prior to range expansion can introduce +-- artifacts if the content uses +-- 'Vulkan.Core11.Enums.SamplerYcbcrRange.SAMPLER_YCBCR_RANGE_ITU_NARROW' +-- encoding. Nevertheless, using sRGB can make sense for certain use-cases +-- where camera YCbCr images are known to be encoded with sRGB (or a pure +-- gamma 2.2) transfer function and are known to use full-range encoding. +-- +-- For those use-cases, this extension leverages the GPU ability to enable +-- sRGB degamma at little cost, and can improve quality because texture +-- filtering is able to occur in linear space. +-- +-- == Version History +-- +-- - Revision 1, 2023-07-31 (Jeff Leger) +-- +-- == See Also +-- +-- 'PhysicalDeviceYcbcrDegammaFeaturesQCOM', +-- 'SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM' +-- +-- == Document Notes +-- +-- For more information, see the +-- +-- +-- This page is a generated document. Fixes and changes should be made to +-- the generator scripts, not directly. +module Vulkan.Extensions.VK_QCOM_ycbcr_degamma ( PhysicalDeviceYcbcrDegammaFeaturesQCOM(..) + , SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM(..) + , QCOM_YCBCR_DEGAMMA_SPEC_VERSION + , pattern QCOM_YCBCR_DEGAMMA_SPEC_VERSION + , QCOM_YCBCR_DEGAMMA_EXTENSION_NAME + , pattern QCOM_YCBCR_DEGAMMA_EXTENSION_NAME + ) where + +import Foreign.Marshal.Alloc (allocaBytes) +import Foreign.Ptr (nullPtr) +import Foreign.Ptr (plusPtr) +import Vulkan.CStruct (FromCStruct) +import Vulkan.CStruct (FromCStruct(..)) +import Vulkan.CStruct (ToCStruct) +import Vulkan.CStruct (ToCStruct(..)) +import Vulkan.Zero (Zero(..)) +import Data.String (IsString) +import Data.Typeable (Typeable) +import Foreign.Storable (Storable) +import Foreign.Storable (Storable(peek)) +import Foreign.Storable (Storable(poke)) +import qualified Foreign.Storable (Storable(..)) +import GHC.Generics (Generic) +import Foreign.Ptr (Ptr) +import Data.Kind (Type) +import Vulkan.Core10.FundamentalTypes (bool32ToBool) +import Vulkan.Core10.FundamentalTypes (boolToBool32) +import Vulkan.Core10.FundamentalTypes (Bool32) +import Vulkan.Core10.Enums.StructureType (StructureType) +import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_DEGAMMA_FEATURES_QCOM)) +import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_YCBCR_DEGAMMA_CREATE_INFO_QCOM)) +-- | VkPhysicalDeviceYcbcrDegammaFeaturesQCOM - Structure describing Y′CBCR +-- degamma features that can be supported by an implementation +-- +-- = Members +-- +-- This structure describes the following features: +-- +-- = Description +-- +-- If the 'PhysicalDeviceYcbcrDegammaFeaturesQCOM' 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. 'PhysicalDeviceYcbcrDegammaFeaturesQCOM' /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 PhysicalDeviceYcbcrDegammaFeaturesQCOM = PhysicalDeviceYcbcrDegammaFeaturesQCOM + { -- | #features-ycbcr-degamma# @ycbcrDegamma@ indicates whether the + -- implementation supports + -- . + ycbcrDegamma :: Bool } + deriving (Typeable, Eq) +#if defined(GENERIC_INSTANCES) +deriving instance Generic (PhysicalDeviceYcbcrDegammaFeaturesQCOM) +#endif +deriving instance Show PhysicalDeviceYcbcrDegammaFeaturesQCOM + +instance ToCStruct PhysicalDeviceYcbcrDegammaFeaturesQCOM where + withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p) + pokeCStruct p PhysicalDeviceYcbcrDegammaFeaturesQCOM{..} f = do + poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_DEGAMMA_FEATURES_QCOM) + poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr) + poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (ycbcrDegamma)) + f + cStructSize = 24 + cStructAlignment = 8 + pokeZeroCStruct p f = do + poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_DEGAMMA_FEATURES_QCOM) + poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr) + poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero)) + f + +instance FromCStruct PhysicalDeviceYcbcrDegammaFeaturesQCOM where + peekCStruct p = do + ycbcrDegamma <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32)) + pure $ PhysicalDeviceYcbcrDegammaFeaturesQCOM + (bool32ToBool ycbcrDegamma) + +instance Storable PhysicalDeviceYcbcrDegammaFeaturesQCOM where + sizeOf ~_ = 24 + alignment ~_ = 8 + peek = peekCStruct + poke ptr poked = pokeCStruct ptr poked (pure ()) + +instance Zero PhysicalDeviceYcbcrDegammaFeaturesQCOM where + zero = PhysicalDeviceYcbcrDegammaFeaturesQCOM + zero + + +-- | VkSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM - Structure +-- specifying Y′CBCR degamma parameters +-- +-- == Valid Usage (Implicit) +-- +-- = See Also +-- +-- , +-- 'Vulkan.Core10.FundamentalTypes.Bool32', +-- 'Vulkan.Core10.Enums.StructureType.StructureType' +data SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM = SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM + { -- | @enableYDegamma@ indicates + -- + -- conversion is enabled for the G component. + enableYDegamma :: Bool + , -- | @enableCbCrDegamma@ indicates + -- + -- conversion is enabled for the R and B components. + enableCbCrDegamma :: Bool + } + deriving (Typeable, Eq) +#if defined(GENERIC_INSTANCES) +deriving instance Generic (SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM) +#endif +deriving instance Show SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM + +instance ToCStruct SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM where + withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p) + pokeCStruct p SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM{..} f = do + poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_YCBCR_DEGAMMA_CREATE_INFO_QCOM) + poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr) + poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (enableYDegamma)) + poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (enableCbCrDegamma)) + f + cStructSize = 24 + cStructAlignment = 8 + pokeZeroCStruct p f = do + poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_YCBCR_DEGAMMA_CREATE_INFO_QCOM) + 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 SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM where + peekCStruct p = do + enableYDegamma <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32)) + enableCbCrDegamma <- peek @Bool32 ((p `plusPtr` 20 :: Ptr Bool32)) + pure $ SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM + (bool32ToBool enableYDegamma) (bool32ToBool enableCbCrDegamma) + +instance Storable SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM where + sizeOf ~_ = 24 + alignment ~_ = 8 + peek = peekCStruct + poke ptr poked = pokeCStruct ptr poked (pure ()) + +instance Zero SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM where + zero = SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM + zero + zero + + +type QCOM_YCBCR_DEGAMMA_SPEC_VERSION = 1 + +-- No documentation found for TopLevel "VK_QCOM_YCBCR_DEGAMMA_SPEC_VERSION" +pattern QCOM_YCBCR_DEGAMMA_SPEC_VERSION :: forall a . Integral a => a +pattern QCOM_YCBCR_DEGAMMA_SPEC_VERSION = 1 + + +type QCOM_YCBCR_DEGAMMA_EXTENSION_NAME = "VK_QCOM_ycbcr_degamma" + +-- No documentation found for TopLevel "VK_QCOM_YCBCR_DEGAMMA_EXTENSION_NAME" +pattern QCOM_YCBCR_DEGAMMA_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a +pattern QCOM_YCBCR_DEGAMMA_EXTENSION_NAME = "VK_QCOM_ycbcr_degamma" + diff --git a/src/Vulkan/Extensions/VK_QCOM_ycbcr_degamma.hs-boot b/src/Vulkan/Extensions/VK_QCOM_ycbcr_degamma.hs-boot new file mode 100644 index 000000000..9a0096ff9 --- /dev/null +++ b/src/Vulkan/Extensions/VK_QCOM_ycbcr_degamma.hs-boot @@ -0,0 +1,173 @@ +{-# language CPP #-} +-- | = Name +-- +-- VK_QCOM_ycbcr_degamma - device extension +-- +-- == VK_QCOM_ycbcr_degamma +-- +-- [__Name String__] +-- @VK_QCOM_ycbcr_degamma@ +-- +-- [__Extension Type__] +-- Device extension +-- +-- [__Registered Extension Number__] +-- 521 +-- +-- [__Revision__] +-- 1 +-- +-- [__Ratification Status__] +-- Not ratified +-- +-- [__Extension and Version Dependencies__; __Contact__] +-- +-- - Jeff Leger +-- +-- +-- == Other Extension Metadata +-- +-- [__Last Modified Date__] +-- 2023-07-31 +-- +-- [__IP Status__] +-- No known IP claims. +-- +-- [__Interactions and External Dependencies__] +-- None +-- +-- [__Contributors__] +-- +-- - Jeff Leger, Qualcomm +-- +-- - Jonathan Wicks, Qualcomm +-- +-- == Description +-- +-- This extension allows implementations to expose support for “sRGB EOTF” +-- also known as “sRGB degamma”, used in combination with images using +-- 8-bit Y′CBCR formats. In addition, the degamma can be selectively +-- applied to the Y (luma) or CrCb (chroma). +-- +-- @VK_KHR_sampler_ycbcr_conversion@ adds support for Y′CBCR conversion, +-- but allows texture sampling in a non-linear space which can cause +-- artifacts. This extension allows implementations to expose sRGB degamma +-- for Y′CBCR formats, which is performed during texture filtering, +-- allowing texture filtering to operate in a linear space. +-- +-- == New Structures +-- +-- - Extending +-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2', +-- 'Vulkan.Core10.Device.DeviceCreateInfo': +-- +-- - 'PhysicalDeviceYcbcrDegammaFeaturesQCOM' +-- +-- - Extending +-- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.SamplerYcbcrConversionCreateInfo': +-- +-- - 'SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM' +-- +-- == New Enum Constants +-- +-- - 'QCOM_YCBCR_DEGAMMA_EXTENSION_NAME' +-- +-- - 'QCOM_YCBCR_DEGAMMA_SPEC_VERSION' +-- +-- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType': +-- +-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_DEGAMMA_FEATURES_QCOM' +-- +-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_YCBCR_DEGAMMA_CREATE_INFO_QCOM' +-- +-- == Issues +-- +-- 1) Which Y′CBCR formats support the degamma feature? +-- +-- __RESOLVED__: For implementations that support the extension, each +-- format that contains 8-bit R, G, and B components and supports either +-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT' +-- or +-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT' +-- must support degamma. +-- +-- Since non-compressed Vulkan sRGB formats are already limited to 8-bit +-- components, and since Adreno supports degamma for all 8bit Y′CBCR +-- formats, this extension does not introduce a new VK_FORMAT_FEATURE* bit +-- for the degamma feature. +-- +-- 2) On which Y′CBCR components is the degamma applied? +-- +-- __RESOLVED__: While degamma is expected to be applied to only the Y +-- (luma) component, the extension provides the ability to selectively +-- enable degamma for both the Y (luma) and\/or CbCr (chroma) components. +-- +-- 3) Should degamma be enabled for the sampler object or for the image +-- view object? +-- +-- __RESOLVED__: Both. This extension extends +-- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.SamplerYcbcrConversionCreateInfo' +-- and the specification already requires that both sampler and view +-- objects must be created with an /identical/ +-- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.SamplerYcbcrConversionCreateInfo' +-- in their pNext chains. +-- +-- 4) Why apply the “sRGB” transfer function directly to Y′CBCR data when +-- it would be more correct to use the “ITU transfer function”, and do so +-- only after the values have been converted into non-linear R’G’B\'? +-- +-- __RESOLVED__: Y′CBCR is frequently stored according to standards (e.g. +-- BT.601 and BT.709) that specify that the conversion between linear and +-- non-linear should use the ITU Transfer function. The ITU transfer +-- function is mathematically different from the sRGB transfer function and +-- while sRGB and ITU define similar curves, the difference is significant. +-- Performing the “sRGB degamma” prior to range expansion can introduce +-- artifacts if the content uses +-- 'Vulkan.Core11.Enums.SamplerYcbcrRange.SAMPLER_YCBCR_RANGE_ITU_NARROW' +-- encoding. Nevertheless, using sRGB can make sense for certain use-cases +-- where camera YCbCr images are known to be encoded with sRGB (or a pure +-- gamma 2.2) transfer function and are known to use full-range encoding. +-- +-- For those use-cases, this extension leverages the GPU ability to enable +-- sRGB degamma at little cost, and can improve quality because texture +-- filtering is able to occur in linear space. +-- +-- == Version History +-- +-- - Revision 1, 2023-07-31 (Jeff Leger) +-- +-- == See Also +-- +-- 'PhysicalDeviceYcbcrDegammaFeaturesQCOM', +-- 'SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM' +-- +-- == Document Notes +-- +-- For more information, see the +-- +-- +-- This page is a generated document. Fixes and changes should be made to +-- the generator scripts, not directly. +module Vulkan.Extensions.VK_QCOM_ycbcr_degamma ( PhysicalDeviceYcbcrDegammaFeaturesQCOM + , SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM + ) where + +import Vulkan.CStruct (FromCStruct) +import Vulkan.CStruct (ToCStruct) +import Data.Kind (Type) + +data PhysicalDeviceYcbcrDegammaFeaturesQCOM + +instance ToCStruct PhysicalDeviceYcbcrDegammaFeaturesQCOM +instance Show PhysicalDeviceYcbcrDegammaFeaturesQCOM + +instance FromCStruct PhysicalDeviceYcbcrDegammaFeaturesQCOM + + +data SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM + +instance ToCStruct SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM +instance Show SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM + +instance FromCStruct SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM + diff --git a/src/Vulkan/Extensions/VK_QNX_external_memory_screen_buffer.hs b/src/Vulkan/Extensions/VK_QNX_external_memory_screen_buffer.hs new file mode 100644 index 000000000..4c63d4c23 --- /dev/null +++ b/src/Vulkan/Extensions/VK_QNX_external_memory_screen_buffer.hs @@ -0,0 +1,762 @@ +{-# language CPP #-} +-- | = Name +-- +-- VK_QNX_external_memory_screen_buffer - device extension +-- +-- == VK_QNX_external_memory_screen_buffer +-- +-- [__Name String__] +-- @VK_QNX_external_memory_screen_buffer@ +-- +-- [__Extension Type__] +-- Device extension +-- +-- [__Registered Extension Number__] +-- 530 +-- +-- [__Revision__] +-- 1 +-- +-- [__Ratification Status__] +-- Not ratified +-- +-- [__Extension and Version Dependencies__] +--          +-- +--          and +--          +-- +--          and +--          +-- +--      or +--      +-- +-- and +-- +-- +-- [__Contact__] +-- +-- - Mike Gorchak +-- +-- +-- - Aaron Ruby +-- +-- +-- == Other Extension Metadata +-- +-- [__Last Modified Date__] +-- 2023-05-17 +-- +-- [__IP Status__] +-- No known IP claims. +-- +-- [__Contributors__] +-- +-- - Mike Gorchak, QNX \/ Blackberry Limited +-- +-- - Aaron Ruby, QNX \/ Blackberry Limited +-- +-- == Description +-- +-- This extension enables an application to import QNX Screen +-- 'Screen_buffer' objects created outside of the Vulkan device into Vulkan +-- memory objects, where they can be bound to images and buffers. +-- +-- Some 'Screen_buffer' images have implementation-defined /external +-- formats/ that /may/ not correspond to Vulkan formats. Sampler Y′CBCR +-- conversion /can/ be used to sample from these images and convert them to +-- a known color space. +-- +-- 'Screen_buffer' is strongly typed, so naming the handle type is +-- redundant. The internal layout and therefore size of a 'Screen_buffer' +-- image may depend on native usage flags that do not have corresponding +-- Vulkan counterparts. +-- +-- == New Commands +-- +-- - 'getScreenBufferPropertiesQNX' +-- +-- == New Structures +-- +-- - 'ScreenBufferPropertiesQNX' +-- +-- - Extending 'Vulkan.Core10.Image.ImageCreateInfo', +-- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.SamplerYcbcrConversionCreateInfo': +-- +-- - 'ExternalFormatQNX' +-- +-- - Extending 'Vulkan.Core10.Memory.MemoryAllocateInfo': +-- +-- - 'ImportScreenBufferInfoQNX' +-- +-- - Extending +-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2', +-- 'Vulkan.Core10.Device.DeviceCreateInfo': +-- +-- - 'PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX' +-- +-- - Extending 'ScreenBufferPropertiesQNX': +-- +-- - 'ScreenBufferFormatPropertiesQNX' +-- +-- == New Enum Constants +-- +-- - 'QNX_EXTERNAL_MEMORY_SCREEN_BUFFER_EXTENSION_NAME' +-- +-- - 'QNX_EXTERNAL_MEMORY_SCREEN_BUFFER_SPEC_VERSION' +-- +-- - Extending +-- 'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.ExternalMemoryHandleTypeFlagBits': +-- +-- - 'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.EXTERNAL_MEMORY_HANDLE_TYPE_SCREEN_BUFFER_BIT_QNX' +-- +-- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType': +-- +-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_EXTERNAL_FORMAT_QNX' +-- +-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_IMPORT_SCREEN_BUFFER_INFO_QNX' +-- +-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_SCREEN_BUFFER_FEATURES_QNX' +-- +-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_SCREEN_BUFFER_FORMAT_PROPERTIES_QNX' +-- +-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_SCREEN_BUFFER_PROPERTIES_QNX' +-- +-- == Version History +-- +-- - Revision 1, 2023-05-17 (Mike Gorchak) +-- +-- - Initial version +-- +-- == See Also +-- +-- 'ExternalFormatQNX', 'ImportScreenBufferInfoQNX', +-- 'PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX', +-- 'ScreenBufferFormatPropertiesQNX', 'ScreenBufferPropertiesQNX', +-- 'getScreenBufferPropertiesQNX' +-- +-- == Document Notes +-- +-- For more information, see the +-- +-- +-- This page is a generated document. Fixes and changes should be made to +-- the generator scripts, not directly. +module Vulkan.Extensions.VK_QNX_external_memory_screen_buffer ( getScreenBufferPropertiesQNX + , ImportScreenBufferInfoQNX(..) + , ScreenBufferPropertiesQNX(..) + , ScreenBufferFormatPropertiesQNX(..) + , ExternalFormatQNX(..) + , PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX(..) + , QNX_EXTERNAL_MEMORY_SCREEN_BUFFER_SPEC_VERSION + , pattern QNX_EXTERNAL_MEMORY_SCREEN_BUFFER_SPEC_VERSION + , QNX_EXTERNAL_MEMORY_SCREEN_BUFFER_EXTENSION_NAME + , pattern QNX_EXTERNAL_MEMORY_SCREEN_BUFFER_EXTENSION_NAME + , Screen_buffer + ) where + +import Vulkan.Internal.Utils (traceAroundEvent) +import Control.Monad (unless) +import Control.Monad.IO.Class (liftIO) +import Data.Typeable (eqT) +import Foreign.Marshal.Alloc (allocaBytes) +import GHC.Base (when) +import GHC.IO (throwIO) +import GHC.Ptr (castPtr) +import GHC.Ptr (nullFunPtr) +import Foreign.Ptr (nullPtr) +import Foreign.Ptr (plusPtr) +import Control.Monad.Trans.Class (lift) +import Control.Monad.Trans.Cont (evalContT) +import Vulkan.CStruct (FromCStruct) +import Vulkan.CStruct (FromCStruct(..)) +import Vulkan.CStruct (ToCStruct) +import Vulkan.CStruct (ToCStruct(..)) +import Vulkan.Zero (Zero(..)) +import Control.Monad.IO.Class (MonadIO) +import Data.String (IsString) +import Data.Type.Equality ((:~:)(Refl)) +import Data.Typeable (Typeable) +import Foreign.Storable (Storable) +import Foreign.Storable (Storable(peek)) +import Foreign.Storable (Storable(poke)) +import qualified Foreign.Storable (Storable(..)) +import GHC.Generics (Generic) +import GHC.IO.Exception (IOErrorType(..)) +import GHC.IO.Exception (IOException(..)) +import Foreign.Ptr (FunPtr) +import Foreign.Ptr (Ptr) +import Data.Word (Word32) +import Data.Word (Word64) +import Data.Kind (Type) +import Control.Monad.Trans.Cont (ContT(..)) +import Vulkan.Core10.FundamentalTypes (bool32ToBool) +import Vulkan.Core10.FundamentalTypes (boolToBool32) +import Vulkan.CStruct.Extends (forgetExtensions) +import Vulkan.Core10.FundamentalTypes (Bool32) +import Vulkan.CStruct.Extends (Chain) +import Vulkan.Core11.Enums.ChromaLocation (ChromaLocation) +import Vulkan.Core10.ImageView (ComponentMapping) +import Vulkan.Core10.Handles (Device) +import Vulkan.Core10.Handles (Device(..)) +import Vulkan.Core10.Handles (Device(Device)) +import Vulkan.Dynamic (DeviceCmds(pVkGetScreenBufferPropertiesQNX)) +import Vulkan.Core10.FundamentalTypes (DeviceSize) +import Vulkan.Core10.Handles (Device_T) +import Vulkan.CStruct.Extends (Extends) +import Vulkan.CStruct.Extends (Extendss) +import Vulkan.CStruct.Extends (Extensible(..)) +import Vulkan.Core10.Enums.Format (Format) +import Vulkan.Core10.Enums.FormatFeatureFlagBits (FormatFeatureFlags) +import Vulkan.CStruct.Extends (PeekChain) +import Vulkan.CStruct.Extends (PeekChain(..)) +import Vulkan.CStruct.Extends (PokeChain) +import Vulkan.CStruct.Extends (PokeChain(..)) +import Vulkan.Core10.Enums.Result (Result) +import Vulkan.Core10.Enums.Result (Result(..)) +import Vulkan.Core11.Enums.SamplerYcbcrModelConversion (SamplerYcbcrModelConversion) +import Vulkan.Core11.Enums.SamplerYcbcrRange (SamplerYcbcrRange) +import Vulkan.CStruct.Extends (SomeStruct) +import Vulkan.Core10.Enums.StructureType (StructureType) +import Vulkan.Exception (VulkanException(..)) +import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_EXTERNAL_FORMAT_QNX)) +import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_IMPORT_SCREEN_BUFFER_INFO_QNX)) +import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_SCREEN_BUFFER_FEATURES_QNX)) +import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_SCREEN_BUFFER_FORMAT_PROPERTIES_QNX)) +import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_SCREEN_BUFFER_PROPERTIES_QNX)) +import Vulkan.Core10.Enums.Result (Result(SUCCESS)) +foreign import ccall +#if !defined(SAFE_FOREIGN_CALLS) + unsafe +#endif + "dynamic" mkVkGetScreenBufferPropertiesQNX + :: FunPtr (Ptr Device_T -> Ptr Screen_buffer -> Ptr (SomeStruct ScreenBufferPropertiesQNX) -> IO Result) -> Ptr Device_T -> Ptr Screen_buffer -> Ptr (SomeStruct ScreenBufferPropertiesQNX) -> IO Result + +-- | vkGetScreenBufferPropertiesQNX - Get Properties of External Memory QNX +-- Screen Buffers +-- +-- == Return Codes +-- +-- [] +-- +-- - 'Vulkan.Core10.Enums.Result.SUCCESS' +-- +-- [] +-- +-- - 'Vulkan.Core10.Enums.Result.ERROR_OUT_OF_HOST_MEMORY' +-- +-- - 'Vulkan.Extensions.VK_KHR_external_memory.ERROR_INVALID_EXTERNAL_HANDLE_KHR' +-- +-- = See Also +-- +-- , +-- 'Vulkan.Core10.Handles.Device', 'ScreenBufferPropertiesQNX' +getScreenBufferPropertiesQNX :: forall a io + . ( Extendss ScreenBufferPropertiesQNX a + , PokeChain a + , PeekChain a + , MonadIO io ) + => -- | @device@ is the logical device that will be importing @buffer@. + -- + -- #VUID-vkGetScreenBufferPropertiesQNX-device-parameter# @device@ /must/ + -- be a valid 'Vulkan.Core10.Handles.Device' handle + Device + -> -- | @buffer@ is the QNX Screen buffer which will be imported. + -- + -- #VUID-vkGetScreenBufferPropertiesQNX-buffer-08968# @buffer@ /must/ be a + -- + -- + -- #VUID-vkGetScreenBufferPropertiesQNX-buffer-parameter# @buffer@ /must/ + -- be a valid pointer to a valid 'Screen_buffer' value + (Ptr Screen_buffer) + -> io (ScreenBufferPropertiesQNX a) +getScreenBufferPropertiesQNX device buffer = liftIO . evalContT $ do + let vkGetScreenBufferPropertiesQNXPtr = pVkGetScreenBufferPropertiesQNX (case device of Device{deviceCmds} -> deviceCmds) + lift $ unless (vkGetScreenBufferPropertiesQNXPtr /= nullFunPtr) $ + throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetScreenBufferPropertiesQNX is null" Nothing Nothing + let vkGetScreenBufferPropertiesQNX' = mkVkGetScreenBufferPropertiesQNX vkGetScreenBufferPropertiesQNXPtr + pPProperties <- ContT (withZeroCStruct @(ScreenBufferPropertiesQNX _)) + r <- lift $ traceAroundEvent "vkGetScreenBufferPropertiesQNX" (vkGetScreenBufferPropertiesQNX' + (deviceHandle (device)) + (buffer) + (forgetExtensions (pPProperties))) + lift $ when (r < SUCCESS) (throwIO (VulkanException r)) + pProperties <- lift $ peekCStruct @(ScreenBufferPropertiesQNX _) pPProperties + pure $ (pProperties) + + +-- | VkImportScreenBufferInfoQNX - Import memory from a QNX Screen buffer +-- +-- = Description +-- +-- The implementation /may/ not acquire a reference to the imported Screen +-- buffer. Therefore, the application /must/ ensure that the object +-- referred to by @buffer@ stays valid as long as the device memory to +-- which it is imported is being used. +-- +-- == Valid Usage +-- +-- - #VUID-VkImportScreenBufferInfoQNX-buffer-08966# If @buffer@ is not +-- @NULL@, QNX Screen Buffers /must/ be supported for import, as +-- reported by +-- 'Vulkan.Core11.Promoted_From_VK_KHR_external_memory_capabilities.ExternalImageFormatProperties' +-- or +-- 'Vulkan.Core11.Promoted_From_VK_KHR_external_memory_capabilities.ExternalBufferProperties' +-- +-- - #VUID-VkImportScreenBufferInfoQNX-buffer-08967# @buffer@ is not +-- @NULL@, it /must/ be a pointer to +-- +-- +-- == Valid Usage (Implicit) +-- +-- - #VUID-VkImportScreenBufferInfoQNX-sType-sType# @sType@ /must/ be +-- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_IMPORT_SCREEN_BUFFER_INFO_QNX' +-- +-- = See Also +-- +-- , +-- 'Vulkan.Core10.Enums.StructureType.StructureType' +data ImportScreenBufferInfoQNX = ImportScreenBufferInfoQNX + { -- | @buffer@ is a pointer to a @struct@ 'Screen_buffer', the QNX Screen + -- buffer to import + buffer :: Ptr Screen_buffer } + deriving (Typeable, Eq) +#if defined(GENERIC_INSTANCES) +deriving instance Generic (ImportScreenBufferInfoQNX) +#endif +deriving instance Show ImportScreenBufferInfoQNX + +instance ToCStruct ImportScreenBufferInfoQNX where + withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p) + pokeCStruct p ImportScreenBufferInfoQNX{..} f = do + poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_IMPORT_SCREEN_BUFFER_INFO_QNX) + poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr) + poke ((p `plusPtr` 16 :: Ptr (Ptr Screen_buffer))) (buffer) + f + cStructSize = 24 + cStructAlignment = 8 + pokeZeroCStruct p f = do + poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_IMPORT_SCREEN_BUFFER_INFO_QNX) + poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr) + poke ((p `plusPtr` 16 :: Ptr (Ptr Screen_buffer))) (zero) + f + +instance FromCStruct ImportScreenBufferInfoQNX where + peekCStruct p = do + buffer <- peek @(Ptr Screen_buffer) ((p `plusPtr` 16 :: Ptr (Ptr Screen_buffer))) + pure $ ImportScreenBufferInfoQNX + buffer + +instance Storable ImportScreenBufferInfoQNX where + sizeOf ~_ = 24 + alignment ~_ = 8 + peek = peekCStruct + poke ptr poked = pokeCStruct ptr poked (pure ()) + +instance Zero ImportScreenBufferInfoQNX where + zero = ImportScreenBufferInfoQNX + zero + + +-- | VkScreenBufferPropertiesQNX - Properties of External Memory QNX Screen +-- Buffers +-- +-- == Valid Usage (Implicit) +-- +-- - #VUID-VkScreenBufferPropertiesQNX-sType-sType# @sType@ /must/ be +-- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_SCREEN_BUFFER_PROPERTIES_QNX' +-- +-- - #VUID-VkScreenBufferPropertiesQNX-pNext-pNext# @pNext@ /must/ be +-- @NULL@ or a pointer to a valid instance of +-- 'ScreenBufferFormatPropertiesQNX' +-- +-- - #VUID-VkScreenBufferPropertiesQNX-sType-unique# The @sType@ value of +-- each struct in the @pNext@ chain /must/ be unique +-- +-- = See Also +-- +-- , +-- 'Vulkan.Core10.FundamentalTypes.DeviceSize', +-- 'Vulkan.Core10.Enums.StructureType.StructureType', +-- 'getScreenBufferPropertiesQNX' +data ScreenBufferPropertiesQNX (es :: [Type]) = ScreenBufferPropertiesQNX + { -- | @pNext@ is @NULL@ or a pointer to a structure extending this structure. + next :: Chain es + , -- | @allocationSize@ is the size of the external memory. + allocationSize :: DeviceSize + , -- | @memoryTypeBits@ is a bitmask containing one bit set for every memory + -- type which the specified Screen buffer /can/ be imported as. + memoryTypeBits :: Word32 + } + deriving (Typeable) +#if defined(GENERIC_INSTANCES) +deriving instance Generic (ScreenBufferPropertiesQNX (es :: [Type])) +#endif +deriving instance Show (Chain es) => Show (ScreenBufferPropertiesQNX es) + +instance Extensible ScreenBufferPropertiesQNX where + extensibleTypeName = "ScreenBufferPropertiesQNX" + setNext ScreenBufferPropertiesQNX{..} next' = ScreenBufferPropertiesQNX{next = next', ..} + getNext ScreenBufferPropertiesQNX{..} = next + extends :: forall e b proxy. Typeable e => proxy e -> (Extends ScreenBufferPropertiesQNX e => b) -> Maybe b + extends _ f + | Just Refl <- eqT @e @ScreenBufferFormatPropertiesQNX = Just f + | otherwise = Nothing + +instance ( Extendss ScreenBufferPropertiesQNX es + , PokeChain es ) => ToCStruct (ScreenBufferPropertiesQNX es) where + withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p) + pokeCStruct p ScreenBufferPropertiesQNX{..} f = evalContT $ do + lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_SCREEN_BUFFER_PROPERTIES_QNX) + pNext'' <- fmap castPtr . ContT $ withChain (next) + lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext'' + lift $ poke ((p `plusPtr` 16 :: Ptr DeviceSize)) (allocationSize) + lift $ poke ((p `plusPtr` 24 :: Ptr Word32)) (memoryTypeBits) + lift $ f + cStructSize = 32 + cStructAlignment = 8 + pokeZeroCStruct p f = evalContT $ do + lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_SCREEN_BUFFER_PROPERTIES_QNX) + pNext' <- fmap castPtr . ContT $ withZeroChain @es + lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext' + lift $ poke ((p `plusPtr` 16 :: Ptr DeviceSize)) (zero) + lift $ poke ((p `plusPtr` 24 :: Ptr Word32)) (zero) + lift $ f + +instance ( Extendss ScreenBufferPropertiesQNX es + , PeekChain es ) => FromCStruct (ScreenBufferPropertiesQNX es) where + peekCStruct p = do + pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ()))) + next <- peekChain (castPtr pNext) + allocationSize <- peek @DeviceSize ((p `plusPtr` 16 :: Ptr DeviceSize)) + memoryTypeBits <- peek @Word32 ((p `plusPtr` 24 :: Ptr Word32)) + pure $ ScreenBufferPropertiesQNX + next allocationSize memoryTypeBits + +instance es ~ '[] => Zero (ScreenBufferPropertiesQNX es) where + zero = ScreenBufferPropertiesQNX + () + zero + zero + + +-- | VkScreenBufferFormatPropertiesQNX - Structure describing the image +-- format properties of a QNX Screen buffer +-- +-- = Description +-- +-- If the QNX Screen buffer has one of the formats listed in the +-- , +-- then @format@ /must/ have the equivalent Vulkan format listed in the +-- table. Otherwise, @format@ /may/ be +-- 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED', indicating the QNX Screen +-- buffer /can/ only be used with an external format. The @formatFeatures@ +-- member /must/ include +-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_BIT' +-- and /should/ include +-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT' +-- and +-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT'. +-- +-- == Valid Usage (Implicit) +-- +-- = See Also +-- +-- , +-- 'Vulkan.Core11.Enums.ChromaLocation.ChromaLocation', +-- 'Vulkan.Core10.ImageView.ComponentMapping', +-- 'Vulkan.Core10.Enums.Format.Format', +-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FormatFeatureFlags', +-- 'Vulkan.Core11.Enums.SamplerYcbcrModelConversion.SamplerYcbcrModelConversion', +-- 'Vulkan.Core11.Enums.SamplerYcbcrRange.SamplerYcbcrRange', +-- 'Vulkan.Core10.Enums.StructureType.StructureType' +data ScreenBufferFormatPropertiesQNX = ScreenBufferFormatPropertiesQNX + { -- | @format@ is the Vulkan format corresponding to the Screen buffer’s + -- format or 'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' if there is not + -- an equivalent Vulkan format. + format :: Format + , -- | @externalFormat@ is an implementation-defined external format identifier + -- for use with 'ExternalFormatQNX'. It /must/ not be zero. + externalFormat :: Word64 + , -- | @screenUsage@ is an implementation-defined external usage identifier for + -- the QNX Screen buffer. + screenUsage :: Word64 + , -- | @formatFeatures@ describes the capabilities of this external format when + -- used with an image bound to memory imported from @buffer@. + formatFeatures :: FormatFeatureFlags + , -- | @samplerYcbcrConversionComponents@ is the component swizzle that + -- /should/ be used in + -- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.SamplerYcbcrConversionCreateInfo'. + samplerYcbcrConversionComponents :: ComponentMapping + , -- | @suggestedYcbcrModel@ is a suggested color model to use in the + -- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.SamplerYcbcrConversionCreateInfo'. + suggestedYcbcrModel :: SamplerYcbcrModelConversion + , -- | @suggestedYcbcrRange@ is a suggested numerical value range to use in + -- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.SamplerYcbcrConversionCreateInfo'. + suggestedYcbcrRange :: SamplerYcbcrRange + , -- | @suggestedXChromaOffset@ is a suggested X chroma offset to use in + -- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.SamplerYcbcrConversionCreateInfo'. + suggestedXChromaOffset :: ChromaLocation + , -- | @suggestedYChromaOffset@ is a suggested Y chroma offset to use in + -- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.SamplerYcbcrConversionCreateInfo'. + suggestedYChromaOffset :: ChromaLocation + } + deriving (Typeable) +#if defined(GENERIC_INSTANCES) +deriving instance Generic (ScreenBufferFormatPropertiesQNX) +#endif +deriving instance Show ScreenBufferFormatPropertiesQNX + +instance ToCStruct ScreenBufferFormatPropertiesQNX where + withCStruct x f = allocaBytes 80 $ \p -> pokeCStruct p x (f p) + pokeCStruct p ScreenBufferFormatPropertiesQNX{..} f = do + poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_SCREEN_BUFFER_FORMAT_PROPERTIES_QNX) + poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr) + poke ((p `plusPtr` 16 :: Ptr Format)) (format) + poke ((p `plusPtr` 24 :: Ptr Word64)) (externalFormat) + poke ((p `plusPtr` 32 :: Ptr Word64)) (screenUsage) + poke ((p `plusPtr` 40 :: Ptr FormatFeatureFlags)) (formatFeatures) + poke ((p `plusPtr` 44 :: Ptr ComponentMapping)) (samplerYcbcrConversionComponents) + poke ((p `plusPtr` 60 :: Ptr SamplerYcbcrModelConversion)) (suggestedYcbcrModel) + poke ((p `plusPtr` 64 :: Ptr SamplerYcbcrRange)) (suggestedYcbcrRange) + poke ((p `plusPtr` 68 :: Ptr ChromaLocation)) (suggestedXChromaOffset) + poke ((p `plusPtr` 72 :: Ptr ChromaLocation)) (suggestedYChromaOffset) + f + cStructSize = 80 + cStructAlignment = 8 + pokeZeroCStruct p f = do + poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_SCREEN_BUFFER_FORMAT_PROPERTIES_QNX) + poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr) + poke ((p `plusPtr` 16 :: Ptr Format)) (zero) + poke ((p `plusPtr` 24 :: Ptr Word64)) (zero) + poke ((p `plusPtr` 32 :: Ptr Word64)) (zero) + poke ((p `plusPtr` 40 :: Ptr FormatFeatureFlags)) (zero) + poke ((p `plusPtr` 44 :: Ptr ComponentMapping)) (zero) + poke ((p `plusPtr` 60 :: Ptr SamplerYcbcrModelConversion)) (zero) + poke ((p `plusPtr` 64 :: Ptr SamplerYcbcrRange)) (zero) + poke ((p `plusPtr` 68 :: Ptr ChromaLocation)) (zero) + poke ((p `plusPtr` 72 :: Ptr ChromaLocation)) (zero) + f + +instance FromCStruct ScreenBufferFormatPropertiesQNX where + peekCStruct p = do + format <- peek @Format ((p `plusPtr` 16 :: Ptr Format)) + externalFormat <- peek @Word64 ((p `plusPtr` 24 :: Ptr Word64)) + screenUsage <- peek @Word64 ((p `plusPtr` 32 :: Ptr Word64)) + formatFeatures <- peek @FormatFeatureFlags ((p `plusPtr` 40 :: Ptr FormatFeatureFlags)) + samplerYcbcrConversionComponents <- peekCStruct @ComponentMapping ((p `plusPtr` 44 :: Ptr ComponentMapping)) + suggestedYcbcrModel <- peek @SamplerYcbcrModelConversion ((p `plusPtr` 60 :: Ptr SamplerYcbcrModelConversion)) + suggestedYcbcrRange <- peek @SamplerYcbcrRange ((p `plusPtr` 64 :: Ptr SamplerYcbcrRange)) + suggestedXChromaOffset <- peek @ChromaLocation ((p `plusPtr` 68 :: Ptr ChromaLocation)) + suggestedYChromaOffset <- peek @ChromaLocation ((p `plusPtr` 72 :: Ptr ChromaLocation)) + pure $ ScreenBufferFormatPropertiesQNX + format + externalFormat + screenUsage + formatFeatures + samplerYcbcrConversionComponents + suggestedYcbcrModel + suggestedYcbcrRange + suggestedXChromaOffset + suggestedYChromaOffset + +instance Storable ScreenBufferFormatPropertiesQNX where + sizeOf ~_ = 80 + alignment ~_ = 8 + peek = peekCStruct + poke ptr poked = pokeCStruct ptr poked (pure ()) + +instance Zero ScreenBufferFormatPropertiesQNX where + zero = ScreenBufferFormatPropertiesQNX + zero + zero + zero + zero + zero + zero + zero + zero + zero + + +-- | VkExternalFormatQNX - Structure containing a QNX Screen buffer external +-- format +-- +-- = Description +-- +-- If @externalFormat@ is zero, the effect is as if the 'ExternalFormatQNX' +-- structure was not present. Otherwise, the @image@ will have the +-- specified external format. +-- +-- == Valid Usage (Implicit) +-- +-- = See Also +-- +-- , +-- 'Vulkan.Core10.Enums.StructureType.StructureType' +data ExternalFormatQNX = ExternalFormatQNX + { -- | @externalFormat@ is an implementation-defined identifier for the + -- external format + -- + -- #VUID-VkExternalFormatQNX-externalFormat-08956# @externalFormat@ /must/ + -- be @0@ or a value returned in the @externalFormat@ member of + -- 'ScreenBufferFormatPropertiesQNX' by an earlier call to + -- 'getScreenBufferPropertiesQNX' + externalFormat :: Word64 } + deriving (Typeable, Eq) +#if defined(GENERIC_INSTANCES) +deriving instance Generic (ExternalFormatQNX) +#endif +deriving instance Show ExternalFormatQNX + +instance ToCStruct ExternalFormatQNX where + withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p) + pokeCStruct p ExternalFormatQNX{..} f = do + poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_EXTERNAL_FORMAT_QNX) + poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr) + poke ((p `plusPtr` 16 :: Ptr Word64)) (externalFormat) + f + cStructSize = 24 + cStructAlignment = 8 + pokeZeroCStruct p f = do + poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_EXTERNAL_FORMAT_QNX) + poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr) + poke ((p `plusPtr` 16 :: Ptr Word64)) (zero) + f + +instance FromCStruct ExternalFormatQNX where + peekCStruct p = do + externalFormat <- peek @Word64 ((p `plusPtr` 16 :: Ptr Word64)) + pure $ ExternalFormatQNX + externalFormat + +instance Storable ExternalFormatQNX where + sizeOf ~_ = 24 + alignment ~_ = 8 + peek = peekCStruct + poke ptr poked = pokeCStruct ptr poked (pure ()) + +instance Zero ExternalFormatQNX where + zero = ExternalFormatQNX + zero + + +-- | VkPhysicalDeviceExternalMemoryScreenBufferFeaturesQNX - Structure +-- describing QNX Screen Buffer features that can be supported by an +-- implementation +-- +-- = Members +-- +-- The members of the 'PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX' +-- structure describe the following features: +-- +-- = Description +-- +-- \' +-- +-- +-----------------------------------+------------------------------------+ +-- | Features | Functionality | +-- +-----------------------------------+------------------------------------+ +-- | @screenBufferImport@ | 'ImportScreenBufferInfoQNX' | +-- +-----------------------------------+------------------------------------+ +-- | Always supported1 | 'getScreenBufferPropertiesQNX', | +-- | | 'ScreenBufferPropertiesQNX', | +-- | | 'ScreenBufferFormatPropertiesQNX', | +-- | | 'ExternalFormatQNX' | +-- +-----------------------------------+------------------------------------+ +-- +-- Functionality supported for QNX Screen Buffer features +-- +-- [1] +-- Functionality in this row is always available. +-- +-- The +-- +-- table summarizes the functionality enabled by the +-- 'PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX' structure. Each +-- entry in the body of the table summarizes the functionality that /can/ +-- be used when the given features are supported and enabled. This +-- summarizes Valid Usage statements that are added elsewhere in this +-- specification. +-- +-- If the 'PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX' 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. 'PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX' /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 PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX = PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX + { -- | #features-screenBufferImport# @screenBufferImport@ indicates whether QNX + -- Screen buffer import functionality is supported. If @screenBufferImport@ + -- is set to 'Vulkan.Core10.FundamentalTypes.TRUE', + -- 'Vulkan.Core10.Handles.DeviceMemory' supports importing 'Screen_buffer' + -- from applications. In this case, the application is responsible for the + -- resource management of the 'Screen_buffer'. + screenBufferImport :: Bool } + deriving (Typeable, Eq) +#if defined(GENERIC_INSTANCES) +deriving instance Generic (PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX) +#endif +deriving instance Show PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX + +instance ToCStruct PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX where + withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p) + pokeCStruct p PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX{..} f = do + poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_SCREEN_BUFFER_FEATURES_QNX) + poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr) + poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (screenBufferImport)) + f + cStructSize = 24 + cStructAlignment = 8 + pokeZeroCStruct p f = do + poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_SCREEN_BUFFER_FEATURES_QNX) + poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr) + poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero)) + f + +instance FromCStruct PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX where + peekCStruct p = do + screenBufferImport <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32)) + pure $ PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX + (bool32ToBool screenBufferImport) + +instance Storable PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX where + sizeOf ~_ = 24 + alignment ~_ = 8 + peek = peekCStruct + poke ptr poked = pokeCStruct ptr poked (pure ()) + +instance Zero PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX where + zero = PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX + zero + + +type QNX_EXTERNAL_MEMORY_SCREEN_BUFFER_SPEC_VERSION = 1 + +-- No documentation found for TopLevel "VK_QNX_EXTERNAL_MEMORY_SCREEN_BUFFER_SPEC_VERSION" +pattern QNX_EXTERNAL_MEMORY_SCREEN_BUFFER_SPEC_VERSION :: forall a . Integral a => a +pattern QNX_EXTERNAL_MEMORY_SCREEN_BUFFER_SPEC_VERSION = 1 + + +type QNX_EXTERNAL_MEMORY_SCREEN_BUFFER_EXTENSION_NAME = "VK_QNX_external_memory_screen_buffer" + +-- No documentation found for TopLevel "VK_QNX_EXTERNAL_MEMORY_SCREEN_BUFFER_EXTENSION_NAME" +pattern QNX_EXTERNAL_MEMORY_SCREEN_BUFFER_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a +pattern QNX_EXTERNAL_MEMORY_SCREEN_BUFFER_EXTENSION_NAME = "VK_QNX_external_memory_screen_buffer" + + +data Screen_buffer + diff --git a/src/Vulkan/Extensions/VK_QNX_external_memory_screen_buffer.hs-boot b/src/Vulkan/Extensions/VK_QNX_external_memory_screen_buffer.hs-boot new file mode 100644 index 000000000..4b6379129 --- /dev/null +++ b/src/Vulkan/Extensions/VK_QNX_external_memory_screen_buffer.hs-boot @@ -0,0 +1,205 @@ +{-# language CPP #-} +-- | = Name +-- +-- VK_QNX_external_memory_screen_buffer - device extension +-- +-- == VK_QNX_external_memory_screen_buffer +-- +-- [__Name String__] +-- @VK_QNX_external_memory_screen_buffer@ +-- +-- [__Extension Type__] +-- Device extension +-- +-- [__Registered Extension Number__] +-- 530 +-- +-- [__Revision__] +-- 1 +-- +-- [__Ratification Status__] +-- Not ratified +-- +-- [__Extension and Version Dependencies__] +--          +-- +--          and +--          +-- +--          and +--          +-- +--      or +--      +-- +-- and +-- +-- +-- [__Contact__] +-- +-- - Mike Gorchak +-- +-- +-- - Aaron Ruby +-- +-- +-- == Other Extension Metadata +-- +-- [__Last Modified Date__] +-- 2023-05-17 +-- +-- [__IP Status__] +-- No known IP claims. +-- +-- [__Contributors__] +-- +-- - Mike Gorchak, QNX \/ Blackberry Limited +-- +-- - Aaron Ruby, QNX \/ Blackberry Limited +-- +-- == Description +-- +-- This extension enables an application to import QNX Screen +-- 'Screen_buffer' objects created outside of the Vulkan device into Vulkan +-- memory objects, where they can be bound to images and buffers. +-- +-- Some 'Screen_buffer' images have implementation-defined /external +-- formats/ that /may/ not correspond to Vulkan formats. Sampler Y′CBCR +-- conversion /can/ be used to sample from these images and convert them to +-- a known color space. +-- +-- 'Screen_buffer' is strongly typed, so naming the handle type is +-- redundant. The internal layout and therefore size of a 'Screen_buffer' +-- image may depend on native usage flags that do not have corresponding +-- Vulkan counterparts. +-- +-- == New Commands +-- +-- - 'getScreenBufferPropertiesQNX' +-- +-- == New Structures +-- +-- - 'ScreenBufferPropertiesQNX' +-- +-- - Extending 'Vulkan.Core10.Image.ImageCreateInfo', +-- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.SamplerYcbcrConversionCreateInfo': +-- +-- - 'ExternalFormatQNX' +-- +-- - Extending 'Vulkan.Core10.Memory.MemoryAllocateInfo': +-- +-- - 'ImportScreenBufferInfoQNX' +-- +-- - Extending +-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2', +-- 'Vulkan.Core10.Device.DeviceCreateInfo': +-- +-- - 'PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX' +-- +-- - Extending 'ScreenBufferPropertiesQNX': +-- +-- - 'ScreenBufferFormatPropertiesQNX' +-- +-- == New Enum Constants +-- +-- - 'QNX_EXTERNAL_MEMORY_SCREEN_BUFFER_EXTENSION_NAME' +-- +-- - 'QNX_EXTERNAL_MEMORY_SCREEN_BUFFER_SPEC_VERSION' +-- +-- - Extending +-- 'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.ExternalMemoryHandleTypeFlagBits': +-- +-- - 'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.EXTERNAL_MEMORY_HANDLE_TYPE_SCREEN_BUFFER_BIT_QNX' +-- +-- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType': +-- +-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_EXTERNAL_FORMAT_QNX' +-- +-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_IMPORT_SCREEN_BUFFER_INFO_QNX' +-- +-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_SCREEN_BUFFER_FEATURES_QNX' +-- +-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_SCREEN_BUFFER_FORMAT_PROPERTIES_QNX' +-- +-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_SCREEN_BUFFER_PROPERTIES_QNX' +-- +-- == Version History +-- +-- - Revision 1, 2023-05-17 (Mike Gorchak) +-- +-- - Initial version +-- +-- == See Also +-- +-- 'ExternalFormatQNX', 'ImportScreenBufferInfoQNX', +-- 'PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX', +-- 'ScreenBufferFormatPropertiesQNX', 'ScreenBufferPropertiesQNX', +-- 'getScreenBufferPropertiesQNX' +-- +-- == Document Notes +-- +-- For more information, see the +-- +-- +-- This page is a generated document. Fixes and changes should be made to +-- the generator scripts, not directly. +module Vulkan.Extensions.VK_QNX_external_memory_screen_buffer ( ExternalFormatQNX + , ImportScreenBufferInfoQNX + , PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX + , ScreenBufferFormatPropertiesQNX + , ScreenBufferPropertiesQNX + , Screen_buffer + ) where + +import Vulkan.CStruct (FromCStruct) +import Vulkan.CStruct (ToCStruct) +import Data.Kind (Type) +import {-# SOURCE #-} Vulkan.CStruct.Extends (Chain) +import {-# SOURCE #-} Vulkan.CStruct.Extends (Extendss) +import {-# SOURCE #-} Vulkan.CStruct.Extends (PeekChain) +import {-# SOURCE #-} Vulkan.CStruct.Extends (PokeChain) +data ExternalFormatQNX + +instance ToCStruct ExternalFormatQNX +instance Show ExternalFormatQNX + +instance FromCStruct ExternalFormatQNX + + +data ImportScreenBufferInfoQNX + +instance ToCStruct ImportScreenBufferInfoQNX +instance Show ImportScreenBufferInfoQNX + +instance FromCStruct ImportScreenBufferInfoQNX + + +data PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX + +instance ToCStruct PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX +instance Show PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX + +instance FromCStruct PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX + + +data ScreenBufferFormatPropertiesQNX + +instance ToCStruct ScreenBufferFormatPropertiesQNX +instance Show ScreenBufferFormatPropertiesQNX + +instance FromCStruct ScreenBufferFormatPropertiesQNX + + +type role ScreenBufferPropertiesQNX nominal +data ScreenBufferPropertiesQNX (es :: [Type]) + +instance ( Extendss ScreenBufferPropertiesQNX es + , PokeChain es ) => ToCStruct (ScreenBufferPropertiesQNX es) +instance Show (Chain es) => Show (ScreenBufferPropertiesQNX es) + +instance ( Extendss ScreenBufferPropertiesQNX es + , PeekChain es ) => FromCStruct (ScreenBufferPropertiesQNX es) + + +data Screen_buffer + diff --git a/src/Vulkan/Extensions/VK_QNX_screen_surface.hs b/src/Vulkan/Extensions/VK_QNX_screen_surface.hs index 3026ebae5..c15e0680f 100644 --- a/src/Vulkan/Extensions/VK_QNX_screen_surface.hs +++ b/src/Vulkan/Extensions/VK_QNX_screen_surface.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- diff --git a/src/Vulkan/Extensions/VK_QNX_screen_surface.hs-boot b/src/Vulkan/Extensions/VK_QNX_screen_surface.hs-boot index 1fdbda3bb..46a127e06 100644 --- a/src/Vulkan/Extensions/VK_QNX_screen_surface.hs-boot +++ b/src/Vulkan/Extensions/VK_QNX_screen_surface.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- diff --git a/src/Vulkan/Extensions/VK_SEC_amigo_profiling.hs b/src/Vulkan/Extensions/VK_SEC_amigo_profiling.hs index f2c7d356d..d81085e0a 100644 --- a/src/Vulkan/Extensions/VK_SEC_amigo_profiling.hs +++ b/src/Vulkan/Extensions/VK_SEC_amigo_profiling.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- diff --git a/src/Vulkan/Extensions/VK_SEC_amigo_profiling.hs-boot b/src/Vulkan/Extensions/VK_SEC_amigo_profiling.hs-boot index 1f702f47e..b9e137204 100644 --- a/src/Vulkan/Extensions/VK_SEC_amigo_profiling.hs-boot +++ b/src/Vulkan/Extensions/VK_SEC_amigo_profiling.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- diff --git a/src/Vulkan/Extensions/VK_VALVE_descriptor_set_host_mapping.hs b/src/Vulkan/Extensions/VK_VALVE_descriptor_set_host_mapping.hs index adab6c8ab..91136577f 100644 --- a/src/Vulkan/Extensions/VK_VALVE_descriptor_set_host_mapping.hs +++ b/src/Vulkan/Extensions/VK_VALVE_descriptor_set_host_mapping.hs @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- @@ -141,6 +144,10 @@ -- - #VUID-vkGetDescriptorSetHostMappingVALVE-ppData-parameter# @ppData@ -- /must/ be a valid pointer to a pointer value -- +-- - #VUID-vkGetDescriptorSetHostMappingVALVE-descriptorSet-parent# +-- @descriptorSet@ /must/ have been created, allocated, or retrieved +-- from @device@ +-- -- There is currently no specification language written for this type. This -- section acts only as placeholder and to avoid dead links in the -- specification and reference pages. @@ -359,6 +366,10 @@ getDescriptorSetHostMappingVALVE :: forall io -> -- | #VUID-vkGetDescriptorSetHostMappingVALVE-descriptorSet-parameter# -- @descriptorSet@ /must/ be a valid 'Vulkan.Core10.Handles.DescriptorSet' -- handle + -- + -- #VUID-vkGetDescriptorSetHostMappingVALVE-descriptorSet-parent# + -- @descriptorSet@ /must/ have been created, allocated, or retrieved from + -- @device@ DescriptorSet -> io (("data" ::: Ptr ())) getDescriptorSetHostMappingVALVE device descriptorSet = liftIO . evalContT $ do diff --git a/src/Vulkan/Extensions/VK_VALVE_descriptor_set_host_mapping.hs-boot b/src/Vulkan/Extensions/VK_VALVE_descriptor_set_host_mapping.hs-boot index bb5226bd1..7596e04ed 100644 --- a/src/Vulkan/Extensions/VK_VALVE_descriptor_set_host_mapping.hs-boot +++ b/src/Vulkan/Extensions/VK_VALVE_descriptor_set_host_mapping.hs-boot @@ -17,6 +17,9 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- @@ -141,6 +144,10 @@ -- - #VUID-vkGetDescriptorSetHostMappingVALVE-ppData-parameter# @ppData@ -- /must/ be a valid pointer to a pointer value -- +-- - #VUID-vkGetDescriptorSetHostMappingVALVE-descriptorSet-parent# +-- @descriptorSet@ /must/ have been created, allocated, or retrieved +-- from @device@ +-- -- There is currently no specification language written for this type. This -- section acts only as placeholder and to avoid dead links in the -- specification and reference pages. diff --git a/src/Vulkan/Extensions/VK_VALVE_mutable_descriptor_type.hs b/src/Vulkan/Extensions/VK_VALVE_mutable_descriptor_type.hs index 49b0e777c..caaca4366 100644 --- a/src/Vulkan/Extensions/VK_VALVE_mutable_descriptor_type.hs +++ b/src/Vulkan/Extensions/VK_VALVE_mutable_descriptor_type.hs @@ -17,10 +17,13 @@ -- [__Revision__] -- 1 -- +-- [__Ratification Status__] +-- Not ratified +-- -- [__Extension and Version Dependencies__] -- -- --- [__Deprecation state__] +-- [__Deprecation State__] -- -- - /Promoted/ to @VK_EXT_mutable_descriptor_type@ extension -- diff --git a/src/Vulkan/SPIRVRequirements.hs b/src/Vulkan/SPIRVRequirements.hs index bffdb3d8f..8df1a170c 100644 --- a/src/Vulkan/SPIRVRequirements.hs +++ b/src/Vulkan/SPIRVRequirements.hs @@ -18,6 +18,7 @@ import Vulkan.Core11.Promoted_From_VK_KHR_16bit_storage (PhysicalDevice16BitStor import Vulkan.Extensions.VK_EXT_buffer_device_address (PhysicalDeviceBufferDeviceAddressFeaturesEXT(..)) import Vulkan.Extensions.VK_HUAWEI_cluster_culling_shader (PhysicalDeviceClusterCullingShaderFeaturesHUAWEI(..)) import Vulkan.Extensions.VK_NV_compute_shader_derivatives (PhysicalDeviceComputeShaderDerivativesFeaturesNV(..)) +import Vulkan.Extensions.VK_KHR_cooperative_matrix (PhysicalDeviceCooperativeMatrixFeaturesKHR(..)) import Vulkan.Extensions.VK_NV_cooperative_matrix (PhysicalDeviceCooperativeMatrixFeaturesNV(..)) import Vulkan.Core10.DeviceInitialization (PhysicalDeviceFeatures(..)) import Vulkan.Extensions.VK_EXT_fragment_density_map (PhysicalDeviceFragmentDensityMapFeaturesEXT(..)) @@ -26,18 +27,21 @@ import Vulkan.Extensions.VK_NV_fragment_shader_barycentric (PhysicalDeviceFragme import Vulkan.Extensions.VK_KHR_fragment_shader_barycentric (PhysicalDeviceFragmentShaderBarycentricFeaturesKHR(..)) import Vulkan.Extensions.VK_EXT_fragment_shader_interlock (PhysicalDeviceFragmentShaderInterlockFeaturesEXT(..)) import Vulkan.Extensions.VK_KHR_fragment_shading_rate (PhysicalDeviceFragmentShadingRateFeaturesKHR(..)) +import Vulkan.Extensions.VK_QCOM_image_processing2 (PhysicalDeviceImageProcessing2FeaturesQCOM(..)) import Vulkan.Extensions.VK_QCOM_image_processing (PhysicalDeviceImageProcessingFeaturesQCOM(..)) import Vulkan.Core11.Promoted_From_VK_KHR_multiview (PhysicalDeviceMultiviewFeatures(..)) import Vulkan.Extensions.VK_KHR_ray_query (PhysicalDeviceRayQueryFeaturesKHR(..)) import Vulkan.Extensions.VK_KHR_ray_tracing_maintenance1 (PhysicalDeviceRayTracingMaintenance1FeaturesKHR(..)) import Vulkan.Extensions.VK_NV_ray_tracing_motion_blur (PhysicalDeviceRayTracingMotionBlurFeaturesNV(..)) import Vulkan.Extensions.VK_KHR_ray_tracing_pipeline (PhysicalDeviceRayTracingPipelineFeaturesKHR(..)) +import Vulkan.Extensions.VK_KHR_ray_tracing_position_fetch (PhysicalDeviceRayTracingPositionFetchFeaturesKHR(..)) import Vulkan.Extensions.VK_EXT_shader_atomic_float2 (PhysicalDeviceShaderAtomicFloat2FeaturesEXT(..)) import Vulkan.Extensions.VK_EXT_shader_atomic_float (PhysicalDeviceShaderAtomicFloatFeaturesEXT(..)) import Vulkan.Extensions.VK_ARM_shader_core_builtins (PhysicalDeviceShaderCoreBuiltinsFeaturesARM(..)) import Vulkan.Extensions.VK_EXT_shader_demote_to_helper_invocation (PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT) import Vulkan.Core13.Promoted_From_VK_EXT_shader_demote_to_helper_invocation (PhysicalDeviceShaderDemoteToHelperInvocationFeatures(..)) import Vulkan.Core11.Promoted_From_VK_KHR_shader_draw_parameters (PhysicalDeviceShaderDrawParametersFeatures(..)) +import Vulkan.Extensions.VK_AMDX_shader_enqueue (PhysicalDeviceShaderEnqueueFeaturesAMDX(..)) import Vulkan.Extensions.VK_EXT_shader_image_atomic_int64 (PhysicalDeviceShaderImageAtomicInt64FeaturesEXT(..)) import Vulkan.Extensions.VK_NV_shader_image_footprint (PhysicalDeviceShaderImageFootprintFeaturesNV(..)) import Vulkan.Extensions.VK_KHR_shader_integer_dot_product (PhysicalDeviceShaderIntegerDotProductFeaturesKHR) @@ -56,6 +60,7 @@ import Vulkan.Core12 (PhysicalDeviceVulkan12Properties) import Vulkan.Core12 (PhysicalDeviceVulkan12Properties(..)) import Vulkan.Core13 (PhysicalDeviceVulkan13Features(..)) import Vulkan.Extensions.VK_KHR_workgroup_memory_explicit_layout (PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR(..)) +import Vulkan.Extensions.VK_AMDX_shader_enqueue (pattern AMDX_SHADER_ENQUEUE_EXTENSION_NAME) import Vulkan.Extensions.VK_AMD_gcn_shader (pattern AMD_GCN_SHADER_EXTENSION_NAME) import Vulkan.Extensions.VK_AMD_gpu_shader_half_float (pattern AMD_GPU_SHADER_HALF_FLOAT_EXTENSION_NAME) import Vulkan.Extensions.VK_AMD_gpu_shader_int16 (pattern AMD_GPU_SHADER_INT16_EXTENSION_NAME) @@ -93,6 +98,7 @@ import Vulkan.Extensions.VK_INTEL_shader_integer_functions2 (pattern INTEL_SHADE import Vulkan.Extensions.VK_KHR_16bit_storage (pattern KHR_16BIT_STORAGE_EXTENSION_NAME) import Vulkan.Extensions.VK_KHR_8bit_storage (pattern KHR_8BIT_STORAGE_EXTENSION_NAME) import Vulkan.Extensions.VK_KHR_buffer_device_address (pattern KHR_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME) +import Vulkan.Extensions.VK_KHR_cooperative_matrix (pattern KHR_COOPERATIVE_MATRIX_EXTENSION_NAME) import Vulkan.Extensions.VK_KHR_device_group (pattern KHR_DEVICE_GROUP_EXTENSION_NAME) import Vulkan.Extensions.VK_KHR_format_feature_flags2 (pattern KHR_FORMAT_FEATURE_FLAGS_2_EXTENSION_NAME) import Vulkan.Extensions.VK_KHR_fragment_shader_barycentric (pattern KHR_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME) @@ -101,6 +107,7 @@ import Vulkan.Extensions.VK_KHR_multiview (pattern KHR_MULTIVIEW_EXTENSION_NAME) import Vulkan.Extensions.VK_KHR_ray_query (pattern KHR_RAY_QUERY_EXTENSION_NAME) import Vulkan.Extensions.VK_KHR_ray_tracing_maintenance1 (pattern KHR_RAY_TRACING_MAINTENANCE_1_EXTENSION_NAME) import Vulkan.Extensions.VK_KHR_ray_tracing_pipeline (pattern KHR_RAY_TRACING_PIPELINE_EXTENSION_NAME) +import Vulkan.Extensions.VK_KHR_ray_tracing_position_fetch (pattern KHR_RAY_TRACING_POSITION_FETCH_EXTENSION_NAME) import Vulkan.Extensions.VK_KHR_shader_atomic_int64 (pattern KHR_SHADER_ATOMIC_INT64_EXTENSION_NAME) import Vulkan.Extensions.VK_KHR_shader_clock (pattern KHR_SHADER_CLOCK_EXTENSION_NAME) import Vulkan.Extensions.VK_KHR_shader_draw_parameters (pattern KHR_SHADER_DRAW_PARAMETERS_EXTENSION_NAME) @@ -130,6 +137,7 @@ import Vulkan.Extensions.VK_NV_shader_sm_builtins (pattern NV_SHADER_SM_BUILTINS import Vulkan.Extensions.VK_NV_shader_subgroup_partitioned (pattern NV_SHADER_SUBGROUP_PARTITIONED_EXTENSION_NAME) import Vulkan.Extensions.VK_NV_shading_rate_image (pattern NV_SHADING_RATE_IMAGE_EXTENSION_NAME) import Vulkan.Extensions.VK_NV_viewport_array2 (pattern NV_VIEWPORT_ARRAY_2_EXTENSION_NAME) +import Vulkan.Extensions.VK_QCOM_image_processing2 (pattern QCOM_IMAGE_PROCESSING_2_EXTENSION_NAME) import Vulkan.Extensions.VK_QCOM_image_processing (pattern QCOM_IMAGE_PROCESSING_EXTENSION_NAME) import Vulkan.Core11.Enums.SubgroupFeatureFlagBits (SubgroupFeatureFlags) import Vulkan.Core11.Enums.SubgroupFeatureFlagBits (SubgroupFeatureFlagBits(SUBGROUP_FEATURE_ARITHMETIC_BIT)) @@ -633,7 +641,7 @@ spirvExtensionRequirements = \case (,) [RequireInstanceVersion $ MAKE_API_VERSION 1 3 0] [RequireDeviceVersion $ MAKE_API_VERSION 1 3 0] - "SPV_INTEL_shader_integer_functions" -> + "SPV_INTEL_shader_integer_functions2" -> (,) [] [ RequireDeviceExtension @@ -655,6 +663,15 @@ spirvExtensionRequirements = \case , deviceExtensionMinVersion = 0 } ] + "SPV_QCOM_image_processing2" -> + (,) + [] + [ RequireDeviceExtension + { deviceExtensionLayerName = Nothing + , deviceExtensionName = QCOM_IMAGE_PROCESSING_2_EXTENSION_NAME + , deviceExtensionMinVersion = 0 + } + ] "SPV_EXT_mesh_shader" -> (,) [] @@ -664,6 +681,15 @@ spirvExtensionRequirements = \case , deviceExtensionMinVersion = 0 } ] + "SPV_KHR_ray_tracing_position_fetch" -> + (,) + [] + [ RequireDeviceExtension + { deviceExtensionLayerName = Nothing + , deviceExtensionName = KHR_RAY_TRACING_POSITION_FETCH_EXTENSION_NAME + , deviceExtensionMinVersion = 0 + } + ] "SPV_EXT_shader_tile_image" -> (,) [] @@ -673,6 +699,42 @@ spirvExtensionRequirements = \case , deviceExtensionMinVersion = 0 } ] + "SPV_EXT_opacity_micromap" -> + (,) + [] + [ RequireDeviceExtension + { deviceExtensionLayerName = Nothing + , deviceExtensionName = EXT_OPACITY_MICROMAP_EXTENSION_NAME + , deviceExtensionMinVersion = 0 + } + ] + "SPV_KHR_cooperative_matrix" -> + (,) + [] + [ RequireDeviceExtension + { deviceExtensionLayerName = Nothing + , deviceExtensionName = KHR_COOPERATIVE_MATRIX_EXTENSION_NAME + , deviceExtensionMinVersion = 0 + } + ] + "SPV_ARM_core_builtins" -> + (,) + [] + [ RequireDeviceExtension + { deviceExtensionLayerName = Nothing + , deviceExtensionName = ARM_SHADER_CORE_BUILTINS_EXTENSION_NAME + , deviceExtensionMinVersion = 0 + } + ] + "SPV_AMDX_shader_enqueue" -> + (,) + [] + [ RequireDeviceExtension + { deviceExtensionLayerName = Nothing + , deviceExtensionName = AMDX_SHADER_ENQUEUE_EXTENSION_NAME + , deviceExtensionMinVersion = 0 + } + ] _ -> ([], []) spirvCapabilityRequirements :: ByteString -> ([InstanceRequirement], [DeviceRequirement]) @@ -2234,6 +2296,20 @@ spirvCapabilityRequirements = \case , deviceExtensionMinVersion = 0 } ] + "TextureBlockMatch2QCOM" -> + (,) + [] + [ RequireDeviceFeature + { featureName = "textureBlockMatch2" + , checkFeature = \PhysicalDeviceImageProcessing2FeaturesQCOM{textureBlockMatch2} -> textureBlockMatch2 + , enableFeature = \_ -> PhysicalDeviceImageProcessing2FeaturesQCOM{textureBlockMatch2 = True} + } + , RequireDeviceExtension + { deviceExtensionLayerName = Nothing + , deviceExtensionName = QCOM_IMAGE_PROCESSING_2_EXTENSION_NAME + , deviceExtensionMinVersion = 0 + } + ] "MeshShadingEXT" -> (,) [] @@ -2289,6 +2365,20 @@ spirvCapabilityRequirements = \case , deviceExtensionMinVersion = 0 } ] + "RayTracingPositionFetchKHR" -> + (,) + [] + [ RequireDeviceFeature + { featureName = "rayTracingPositionFetch" + , checkFeature = \PhysicalDeviceRayTracingPositionFetchFeaturesKHR{rayTracingPositionFetch} -> rayTracingPositionFetch + , enableFeature = \_ -> PhysicalDeviceRayTracingPositionFetchFeaturesKHR{rayTracingPositionFetch = True} + } + , RequireDeviceExtension + { deviceExtensionLayerName = Nothing + , deviceExtensionName = KHR_RAY_TRACING_POSITION_FETCH_EXTENSION_NAME + , deviceExtensionMinVersion = 0 + } + ] "TileImageColorReadAccessEXT" -> (,) [] @@ -2331,4 +2421,32 @@ spirvCapabilityRequirements = \case , deviceExtensionMinVersion = 0 } ] + "CooperativeMatrixKHR" -> + (,) + [] + [ RequireDeviceFeature + { featureName = "cooperativeMatrix" + , checkFeature = \PhysicalDeviceCooperativeMatrixFeaturesKHR{cooperativeMatrix} -> cooperativeMatrix + , enableFeature = \PhysicalDeviceCooperativeMatrixFeaturesKHR{..} -> PhysicalDeviceCooperativeMatrixFeaturesKHR{cooperativeMatrix = True, ..} + } + , RequireDeviceExtension + { deviceExtensionLayerName = Nothing + , deviceExtensionName = KHR_COOPERATIVE_MATRIX_EXTENSION_NAME + , deviceExtensionMinVersion = 0 + } + ] + "ShaderEnqueueAMDX" -> + (,) + [] + [ RequireDeviceFeature + { featureName = "shaderEnqueue" + , checkFeature = \PhysicalDeviceShaderEnqueueFeaturesAMDX{shaderEnqueue} -> shaderEnqueue + , enableFeature = \_ -> PhysicalDeviceShaderEnqueueFeaturesAMDX{shaderEnqueue = True} + } + , RequireDeviceExtension + { deviceExtensionLayerName = Nothing + , deviceExtensionName = AMDX_SHADER_ENQUEUE_EXTENSION_NAME + , deviceExtensionMinVersion = 0 + } + ] _ -> ([], []) diff --git a/src/Vulkan/Version.hs b/src/Vulkan/Version.hs index c06218fe3..dbea4cfe9 100644 --- a/src/Vulkan/Version.hs +++ b/src/Vulkan/Version.hs @@ -19,11 +19,11 @@ import Data.Bits ((.|.)) import Data.Word (Word32) pattern HEADER_VERSION :: Word32 -pattern HEADER_VERSION = 246 +pattern HEADER_VERSION = 268 pattern HEADER_VERSION_COMPLETE :: Word32 -pattern HEADER_VERSION_COMPLETE = MAKE_API_VERSION 1 3 246 +pattern HEADER_VERSION_COMPLETE = MAKE_API_VERSION 1 3 268 pattern MAKE_API_VERSION :: Word32 -> Word32 -> Word32 -> Word32 diff --git a/vulkan.cabal b/vulkan.cabal index edc809c50..8bc94b1ff 100644 --- a/vulkan.cabal +++ b/vulkan.cabal @@ -308,6 +308,8 @@ library Vulkan.Extensions.VK_AMD_shader_info Vulkan.Extensions.VK_AMD_shader_trinary_minmax Vulkan.Extensions.VK_AMD_texture_gather_bias_lod + Vulkan.Extensions.VK_AMDX_shader_enqueue + Vulkan.Extensions.VK_ANDROID_external_format_resolve Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer Vulkan.Extensions.VK_ARM_rasterization_order_attachment_access Vulkan.Extensions.VK_ARM_shader_core_builtins @@ -316,6 +318,7 @@ library Vulkan.Extensions.VK_EXT_acquire_drm_display Vulkan.Extensions.VK_EXT_acquire_xlib_display Vulkan.Extensions.VK_EXT_astc_decode_mode + Vulkan.Extensions.VK_EXT_attachment_feedback_loop_dynamic_state Vulkan.Extensions.VK_EXT_attachment_feedback_loop_layout Vulkan.Extensions.VK_EXT_blend_operation_advanced Vulkan.Extensions.VK_EXT_border_color_swizzle @@ -328,6 +331,7 @@ library Vulkan.Extensions.VK_EXT_debug_marker Vulkan.Extensions.VK_EXT_debug_report Vulkan.Extensions.VK_EXT_debug_utils + Vulkan.Extensions.VK_EXT_depth_bias_control Vulkan.Extensions.VK_EXT_depth_clamp_zero_one Vulkan.Extensions.VK_EXT_depth_clip_control Vulkan.Extensions.VK_EXT_depth_clip_enable @@ -342,21 +346,25 @@ library Vulkan.Extensions.VK_EXT_discard_rectangles Vulkan.Extensions.VK_EXT_display_control Vulkan.Extensions.VK_EXT_display_surface_counter + Vulkan.Extensions.VK_EXT_dynamic_rendering_unused_attachments Vulkan.Extensions.VK_EXT_extended_dynamic_state Vulkan.Extensions.VK_EXT_extended_dynamic_state2 Vulkan.Extensions.VK_EXT_extended_dynamic_state3 + Vulkan.Extensions.VK_EXT_external_memory_acquire_unmodified Vulkan.Extensions.VK_EXT_external_memory_dma_buf Vulkan.Extensions.VK_EXT_external_memory_host Vulkan.Extensions.VK_EXT_filter_cubic Vulkan.Extensions.VK_EXT_fragment_density_map Vulkan.Extensions.VK_EXT_fragment_density_map2 Vulkan.Extensions.VK_EXT_fragment_shader_interlock + Vulkan.Extensions.VK_EXT_frame_boundary Vulkan.Extensions.VK_EXT_full_screen_exclusive Vulkan.Extensions.VK_EXT_global_priority Vulkan.Extensions.VK_EXT_global_priority_query Vulkan.Extensions.VK_EXT_graphics_pipeline_library Vulkan.Extensions.VK_EXT_hdr_metadata Vulkan.Extensions.VK_EXT_headless_surface + Vulkan.Extensions.VK_EXT_host_image_copy Vulkan.Extensions.VK_EXT_host_query_reset Vulkan.Extensions.VK_EXT_image_2d_view_of_3d Vulkan.Extensions.VK_EXT_image_compression_control @@ -378,6 +386,7 @@ library Vulkan.Extensions.VK_EXT_multi_draw Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled Vulkan.Extensions.VK_EXT_mutable_descriptor_type + Vulkan.Extensions.VK_EXT_nested_command_buffer Vulkan.Extensions.VK_EXT_non_seamless_cube_map Vulkan.Extensions.VK_EXT_opacity_micromap Vulkan.Extensions.VK_EXT_pageable_device_local_memory @@ -453,6 +462,7 @@ library Vulkan.Extensions.VK_KHR_android_surface Vulkan.Extensions.VK_KHR_bind_memory2 Vulkan.Extensions.VK_KHR_buffer_device_address + Vulkan.Extensions.VK_KHR_cooperative_matrix Vulkan.Extensions.VK_KHR_copy_commands2 Vulkan.Extensions.VK_KHR_create_renderpass2 Vulkan.Extensions.VK_KHR_dedicated_allocation @@ -493,6 +503,7 @@ library Vulkan.Extensions.VK_KHR_maintenance2 Vulkan.Extensions.VK_KHR_maintenance3 Vulkan.Extensions.VK_KHR_maintenance4 + Vulkan.Extensions.VK_KHR_maintenance5 Vulkan.Extensions.VK_KHR_map_memory2 Vulkan.Extensions.VK_KHR_multiview Vulkan.Extensions.VK_KHR_performance_query @@ -506,6 +517,7 @@ library Vulkan.Extensions.VK_KHR_ray_query Vulkan.Extensions.VK_KHR_ray_tracing_maintenance1 Vulkan.Extensions.VK_KHR_ray_tracing_pipeline + Vulkan.Extensions.VK_KHR_ray_tracing_position_fetch Vulkan.Extensions.VK_KHR_relaxed_block_layout Vulkan.Extensions.VK_KHR_sampler_mirror_clamp_to_edge Vulkan.Extensions.VK_KHR_sampler_ycbcr_conversion @@ -540,6 +552,7 @@ library Vulkan.Extensions.VK_KHR_xlib_surface Vulkan.Extensions.VK_KHR_zero_initialize_workgroup_memory Vulkan.Extensions.VK_LUNARG_direct_driver_loading + Vulkan.Extensions.VK_MSFT_layered_driver Vulkan.Extensions.VK_MVK_ios_surface Vulkan.Extensions.VK_MVK_macos_surface Vulkan.Extensions.VK_NN_vi_surface @@ -552,10 +565,13 @@ library Vulkan.Extensions.VK_NV_coverage_reduction_mode Vulkan.Extensions.VK_NV_dedicated_allocation Vulkan.Extensions.VK_NV_dedicated_allocation_image_aliasing + Vulkan.Extensions.VK_NV_descriptor_pool_overallocation Vulkan.Extensions.VK_NV_device_diagnostic_checkpoints Vulkan.Extensions.VK_NV_device_diagnostics_config Vulkan.Extensions.VK_NV_device_generated_commands + Vulkan.Extensions.VK_NV_device_generated_commands_compute Vulkan.Extensions.VK_NV_displacement_micromap + Vulkan.Extensions.VK_NV_extended_sparse_address_space Vulkan.Extensions.VK_NV_external_memory Vulkan.Extensions.VK_NV_external_memory_capabilities Vulkan.Extensions.VK_NV_external_memory_rdma @@ -570,6 +586,7 @@ library Vulkan.Extensions.VK_NV_inherited_viewport_scissor Vulkan.Extensions.VK_NV_linear_color_attachment Vulkan.Extensions.VK_NV_low_latency + Vulkan.Extensions.VK_NV_low_latency2 Vulkan.Extensions.VK_NV_memory_decompression Vulkan.Extensions.VK_NV_mesh_shader Vulkan.Extensions.VK_NV_optical_flow @@ -590,8 +607,11 @@ library 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_filter_cubic_clamp + Vulkan.Extensions.VK_QCOM_filter_cubic_weights Vulkan.Extensions.VK_QCOM_fragment_density_map_offset Vulkan.Extensions.VK_QCOM_image_processing + Vulkan.Extensions.VK_QCOM_image_processing2 Vulkan.Extensions.VK_QCOM_multiview_per_view_render_areas Vulkan.Extensions.VK_QCOM_multiview_per_view_viewports Vulkan.Extensions.VK_QCOM_render_pass_shader_resolve @@ -599,6 +619,8 @@ library Vulkan.Extensions.VK_QCOM_render_pass_transform Vulkan.Extensions.VK_QCOM_rotated_copy_commands Vulkan.Extensions.VK_QCOM_tile_properties + Vulkan.Extensions.VK_QCOM_ycbcr_degamma + Vulkan.Extensions.VK_QNX_external_memory_screen_buffer Vulkan.Extensions.VK_QNX_screen_surface Vulkan.Extensions.VK_SEC_amigo_profiling Vulkan.Extensions.VK_VALVE_descriptor_set_host_mapping From 2ad3d69c0f348fe60df8a3a08892200a03577aea Mon Sep 17 00:00:00 2001 From: Ellie Hermaszewska Date: Tue, 17 Oct 2023 19:21:30 +0800 Subject: [PATCH 06/12] relax bounds on vulkan --- VulkanMemoryAllocator/VulkanMemoryAllocator.cabal | 4 ++-- VulkanMemoryAllocator/changelog.md | 1 + VulkanMemoryAllocator/package.yaml | 2 +- utils/changelog.md | 1 + utils/package.yaml | 2 +- utils/vulkan-utils.cabal | 4 ++-- 6 files changed, 8 insertions(+), 6 deletions(-) diff --git a/VulkanMemoryAllocator/VulkanMemoryAllocator.cabal b/VulkanMemoryAllocator/VulkanMemoryAllocator.cabal index d4f26a21e..ea799c761 100644 --- a/VulkanMemoryAllocator/VulkanMemoryAllocator.cabal +++ b/VulkanMemoryAllocator/VulkanMemoryAllocator.cabal @@ -1,6 +1,6 @@ cabal-version: 2.2 --- This file has been generated from package.yaml by hpack version 0.35.2. +-- This file has been generated from package.yaml by hpack version 0.35.0. -- -- see: https://github.com/sol/hpack @@ -94,7 +94,7 @@ library , bytestring , transformers , vector - , vulkan >=3.6 && <3.26 + , vulkan >=3.6 && <3.27 default-language: Haskell2010 if flag(safe-foreign-calls) cpp-options: -DSAFE_FOREIGN_CALLS diff --git a/VulkanMemoryAllocator/changelog.md b/VulkanMemoryAllocator/changelog.md index 1ceb00c23..432f2280d 100644 --- a/VulkanMemoryAllocator/changelog.md +++ b/VulkanMemoryAllocator/changelog.md @@ -1,6 +1,7 @@ # Change Log ## WIP +- Raise upper bound on `vulkan` ## [0.11] - 2023-10-17 - Bump VMA diff --git a/VulkanMemoryAllocator/package.yaml b/VulkanMemoryAllocator/package.yaml index 54b75d255..e47faad29 100644 --- a/VulkanMemoryAllocator/package.yaml +++ b/VulkanMemoryAllocator/package.yaml @@ -20,7 +20,7 @@ library: src/lib.cpp dependencies: - base <5 - - vulkan >= 3.6 && < 3.26 + - vulkan >= 3.6 && < 3.27 - bytestring - transformers - vector diff --git a/utils/changelog.md b/utils/changelog.md index 4bb337a15..ce9b11595 100644 --- a/utils/changelog.md +++ b/utils/changelog.md @@ -1,6 +1,7 @@ # Change Log ## WIP +- Relax bounds on `vulkan` ## [0.5.10.3] - 2023-10-17 - Relax bounds on `vulkan` diff --git a/utils/package.yaml b/utils/package.yaml index 5111a8d26..f12f9c1de 100644 --- a/utils/package.yaml +++ b/utils/package.yaml @@ -39,7 +39,7 @@ library: - typed-process - unordered-containers - vector - - vulkan >= 3.6.14 && < 3.26 + - vulkan >= 3.6.14 && < 3.27 tests: doctests: diff --git a/utils/vulkan-utils.cabal b/utils/vulkan-utils.cabal index a6258e2af..b42fa77d5 100644 --- a/utils/vulkan-utils.cabal +++ b/utils/vulkan-utils.cabal @@ -1,6 +1,6 @@ cabal-version: 1.24 --- This file has been generated from package.yaml by hpack version 0.35.2. +-- This file has been generated from package.yaml by hpack version 0.35.0. -- -- see: https://github.com/sol/hpack @@ -113,7 +113,7 @@ library , typed-process , unordered-containers , vector - , vulkan >=3.6.14 && <3.26 + , vulkan >=3.6.14 && <3.27 default-language: Haskell2010 test-suite doctests From 04c76a98096783d9dec9901a38e1d167aa23777e Mon Sep 17 00:00:00 2001 From: Ellie Hermaszewska Date: Tue, 17 Oct 2023 19:21:57 +0800 Subject: [PATCH 07/12] v3.26 ## vma-v0.11.0.1 - Raise upper bound on `vulkan` ## utils-v0.5.10.4 - Relax bounds on `vulkan` --- VulkanMemoryAllocator/VulkanMemoryAllocator.cabal | 4 ++-- VulkanMemoryAllocator/changelog.md | 2 ++ VulkanMemoryAllocator/package.yaml | 2 +- changelog.md | 2 ++ package.yaml | 2 +- utils/changelog.md | 2 ++ utils/package.yaml | 2 +- utils/vulkan-utils.cabal | 4 ++-- vulkan.cabal | 2 +- 9 files changed, 14 insertions(+), 8 deletions(-) diff --git a/VulkanMemoryAllocator/VulkanMemoryAllocator.cabal b/VulkanMemoryAllocator/VulkanMemoryAllocator.cabal index ea799c761..bbdec4c91 100644 --- a/VulkanMemoryAllocator/VulkanMemoryAllocator.cabal +++ b/VulkanMemoryAllocator/VulkanMemoryAllocator.cabal @@ -1,11 +1,11 @@ cabal-version: 2.2 --- This file has been generated from package.yaml by hpack version 0.35.0. +-- This file has been generated from package.yaml by hpack version 0.35.2. -- -- see: https://github.com/sol/hpack name: VulkanMemoryAllocator -version: 0.11 +version: 0.11.0.1 synopsis: Bindings to the VulkanMemoryAllocator library category: Graphics homepage: https://github.com/expipiplus1/vulkan#readme diff --git a/VulkanMemoryAllocator/changelog.md b/VulkanMemoryAllocator/changelog.md index 432f2280d..fd82bea8e 100644 --- a/VulkanMemoryAllocator/changelog.md +++ b/VulkanMemoryAllocator/changelog.md @@ -1,6 +1,8 @@ # Change Log ## WIP + +## [0.11.0.1] - 2023-10-17 - Raise upper bound on `vulkan` ## [0.11] - 2023-10-17 diff --git a/VulkanMemoryAllocator/package.yaml b/VulkanMemoryAllocator/package.yaml index e47faad29..e7da5c9c9 100644 --- a/VulkanMemoryAllocator/package.yaml +++ b/VulkanMemoryAllocator/package.yaml @@ -1,5 +1,5 @@ name: VulkanMemoryAllocator -version: "0.11" +version: "0.11.0.1" synopsis: Bindings to the VulkanMemoryAllocator library category: Graphics maintainer: Ellie Hermaszewska diff --git a/changelog.md b/changelog.md index 1a460b712..f06c911c5 100644 --- a/changelog.md +++ b/changelog.md @@ -2,6 +2,8 @@ ## WIP +## [3.26] - 2023-10-17 + ## [3.25] - 2023-10-17 - Bump API version to v1.3.246 - VulkanSC is not included diff --git a/package.yaml b/package.yaml index 2bd0bfd3d..ef96efb4f 100644 --- a/package.yaml +++ b/package.yaml @@ -1,5 +1,5 @@ name: vulkan -version: "3.25" +version: "3.26" synopsis: Bindings to the Vulkan graphics API. description: Please see [the readme](https://github.com/expipiplus1/vulkan/#readme) category: Graphics diff --git a/utils/changelog.md b/utils/changelog.md index ce9b11595..a992f8dba 100644 --- a/utils/changelog.md +++ b/utils/changelog.md @@ -1,6 +1,8 @@ # Change Log ## WIP + +## [0.5.10.4] - 2023-10-17 - Relax bounds on `vulkan` ## [0.5.10.3] - 2023-10-17 diff --git a/utils/package.yaml b/utils/package.yaml index f12f9c1de..4b129992a 100644 --- a/utils/package.yaml +++ b/utils/package.yaml @@ -1,5 +1,5 @@ name: vulkan-utils -version: "0.5.10.3" +version: "0.5.10.4" synopsis: Utils for the vulkan package category: Graphics maintainer: Ellie Hermaszewska diff --git a/utils/vulkan-utils.cabal b/utils/vulkan-utils.cabal index b42fa77d5..e7b8c2864 100644 --- a/utils/vulkan-utils.cabal +++ b/utils/vulkan-utils.cabal @@ -1,11 +1,11 @@ cabal-version: 1.24 --- This file has been generated from package.yaml by hpack version 0.35.0. +-- This file has been generated from package.yaml by hpack version 0.35.2. -- -- see: https://github.com/sol/hpack name: vulkan-utils -version: 0.5.10.3 +version: 0.5.10.4 synopsis: Utils for the vulkan package category: Graphics homepage: https://github.com/expipiplus1/vulkan#readme diff --git a/vulkan.cabal b/vulkan.cabal index 8bc94b1ff..81623f10b 100644 --- a/vulkan.cabal +++ b/vulkan.cabal @@ -5,7 +5,7 @@ cabal-version: 2.2 -- see: https://github.com/sol/hpack name: vulkan -version: 3.25 +version: 3.26 synopsis: Bindings to the Vulkan graphics API. description: Please see [the readme](https://github.com/expipiplus1/vulkan/#readme) category: Graphics From 09b955d04ed68b418958dfc37651142b9274c3d5 Mon Sep 17 00:00:00 2001 From: Ellie Hermaszewska Date: Tue, 17 Oct 2023 19:38:48 +0800 Subject: [PATCH 08/12] upper bound on cabal version --- utils/package.yaml | 2 +- utils/vulkan-utils.cabal | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/utils/package.yaml b/utils/package.yaml index 4b129992a..0082749bd 100644 --- a/utils/package.yaml +++ b/utils/package.yaml @@ -55,7 +55,7 @@ tests: custom-setup: dependencies: - base - - Cabal + - Cabal >= 3 && < 4 - cabal-doctest >= 1 && <1.1 ghc-options: diff --git a/utils/vulkan-utils.cabal b/utils/vulkan-utils.cabal index e7b8c2864..2fcb324d1 100644 --- a/utils/vulkan-utils.cabal +++ b/utils/vulkan-utils.cabal @@ -26,7 +26,7 @@ source-repository head custom-setup setup-depends: - Cabal + Cabal ==3.* , base , cabal-doctest >=1 && <1.1 From 0da5e5d88acf54ad301e185f5af35704dbbdf115 Mon Sep 17 00:00:00 2001 From: Ellie Hermaszewska Date: Tue, 17 Oct 2023 19:38:57 +0800 Subject: [PATCH 09/12] utils-v0.5.10.5 --- utils/changelog.md | 2 ++ utils/package.yaml | 2 +- utils/vulkan-utils.cabal | 2 +- 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/utils/changelog.md b/utils/changelog.md index a992f8dba..c4a710053 100644 --- a/utils/changelog.md +++ b/utils/changelog.md @@ -2,6 +2,8 @@ ## WIP +## [0.5.10.5] - 2023-10-17 + ## [0.5.10.4] - 2023-10-17 - Relax bounds on `vulkan` diff --git a/utils/package.yaml b/utils/package.yaml index 0082749bd..fdb941658 100644 --- a/utils/package.yaml +++ b/utils/package.yaml @@ -1,5 +1,5 @@ name: vulkan-utils -version: "0.5.10.4" +version: "0.5.10.5" synopsis: Utils for the vulkan package category: Graphics maintainer: Ellie Hermaszewska diff --git a/utils/vulkan-utils.cabal b/utils/vulkan-utils.cabal index 2fcb324d1..d761cb21a 100644 --- a/utils/vulkan-utils.cabal +++ b/utils/vulkan-utils.cabal @@ -5,7 +5,7 @@ cabal-version: 1.24 -- see: https://github.com/sol/hpack name: vulkan-utils -version: 0.5.10.4 +version: 0.5.10.5 synopsis: Utils for the vulkan package category: Graphics homepage: https://github.com/expipiplus1/vulkan#readme From 4f6b05fc0a7798e5b14be1310e54ad3d948f8ef0 Mon Sep 17 00:00:00 2001 From: Ellie Hermaszewska Date: Tue, 17 Oct 2023 20:36:50 +0800 Subject: [PATCH 10/12] Relax bounds on vulkan in openxr --- openxr/openxr.cabal | 2 +- openxr/package.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/openxr/openxr.cabal b/openxr/openxr.cabal index 5e67c7489..28eca24f1 100644 --- a/openxr/openxr.cabal +++ b/openxr/openxr.cabal @@ -204,4 +204,4 @@ library if flag(use-vulkan-types) cpp-options: -DUSE_VULKAN_TYPES build-depends: - vulkan >=3.0 && <3.26 + vulkan >=3.0 && <3.27 diff --git a/openxr/package.yaml b/openxr/package.yaml index e1fac7498..867698959 100644 --- a/openxr/package.yaml +++ b/openxr/package.yaml @@ -32,7 +32,7 @@ library: cpp-options: -DTRACE_CALLS - condition: flag(use-vulkan-types) cpp-options: -DUSE_VULKAN_TYPES - dependencies: vulkan >= 3.0 && < 3.26 + dependencies: vulkan >= 3.0 && < 3.27 - condition: false other-modules: Paths_openxr ghc-options: From a71355d3a2b0e76de4048f4a42d76bb41daf72c7 Mon Sep 17 00:00:00 2001 From: Ellie Hermaszewska Date: Tue, 17 Oct 2023 22:36:42 +0800 Subject: [PATCH 11/12] Wobble examples for latest library version --- examples/rays/Render.hs | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/examples/rays/Render.hs b/examples/rays/Render.hs index 8bdfa1be6..d3331b9a0 100644 --- a/examples/rays/Render.hs +++ b/examples/rays/Render.hs @@ -221,12 +221,13 @@ myRecordCommandBuffer Frame {..} imageIndex = do PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR zero [] - [ zero { srcAccessMask = ACCESS_HOST_WRITE_BIT - , dstAccessMask = ACCESS_SHADER_READ_BIT - , buffer = fCameraMatricesBuffer - , offset = fCameraMatricesOffset - , size = fromIntegral (sizeOf (undefined :: CameraMatrices)) - } + [ SomeStruct + zero { srcAccessMask = ACCESS_HOST_WRITE_BIT + , dstAccessMask = ACCESS_SHADER_READ_BIT + , buffer = fCameraMatricesBuffer + , offset = fCameraMatricesOffset + , size = fromIntegral (sizeOf (undefined :: CameraMatrices)) + } ] [] From 6e5039a9478abf5f3a0e2a641c3c7cd9091a910f Mon Sep 17 00:00:00 2001 From: Ellie Hermaszewska Date: Wed, 18 Oct 2023 08:48:56 +0800 Subject: [PATCH 12/12] Update changelog.md --- changelog.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/changelog.md b/changelog.md index f06c911c5..9c69f8d38 100644 --- a/changelog.md +++ b/changelog.md @@ -3,6 +3,10 @@ ## WIP ## [3.26] - 2023-10-17 +- Bump API version to v1.3.268 + - A breaking change is that `VkBufferMemoryBarrier` has extensions, + and as such must be wrapped with `SomeStruct` when being passed + in lists, for example in `cmdPipelineBarrier` ## [3.25] - 2023-10-17 - Bump API version to v1.3.246