From 9a0f3099c8a9607a7c0f3127d8abfdc19a93e8c5 Mon Sep 17 00:00:00 2001 From: Jon Leech Date: Thu, 25 Sep 2025 22:31:15 +0100 Subject: [PATCH] Update for Vulkan-Docs 1.4.328 --- Makefile.release | 3 - include/vulkan/vulkan.cppm | 62 +- include/vulkan/vulkan.hpp | 68 +- include/vulkan/vulkan_core.h | 115 ++- include/vulkan/vulkan_enums.hpp | 45 +- .../vulkan/vulkan_extension_inspection.hpp | 36 +- include/vulkan/vulkan_funcs.hpp | 54 ++ include/vulkan/vulkan_handles.hpp | 41 +- include/vulkan/vulkan_hash.hpp | 98 ++- include/vulkan/vulkan_hpp_macros.hpp | 2 +- include/vulkan/vulkan_raii.hpp | 40 + include/vulkan/vulkan_static_assertions.hpp | 70 +- include/vulkan/vulkan_structs.hpp | 753 +++++++++++++++--- include/vulkan/vulkan_to_string.hpp | 43 +- registry/validusage.json | 567 +++++++++++-- registry/vk.xml | 121 ++- 16 files changed, 1811 insertions(+), 307 deletions(-) mode change 100755 => 100644 registry/vk.xml diff --git a/Makefile.release b/Makefile.release index f438d07..e3b01e5 100644 --- a/Makefile.release +++ b/Makefile.release @@ -19,9 +19,6 @@ HPP = $(SPEC)/Vulkan-Hpp REGISTRY = $(GIT)/registry/vulkan update: revision-check create-branch update-files push-branch - echo "Verify that Vulkan-Headers is on a branch with the new header updates." - echo "Then push them to github and create an MR there with:" - echo " make -f Makefile.release REVISION=$(REVISION) push-branch" # Working branch for the update, and a test if it exists BRANCH = update-$(REVISION) diff --git a/include/vulkan/vulkan.cppm b/include/vulkan/vulkan.cppm index 1b684cc..679c6e2 100644 --- a/include/vulkan/vulkan.cppm +++ b/include/vulkan/vulkan.cppm @@ -10,9 +10,8 @@ module; -#include - -#if defined( __cpp_lib_modules ) && !defined( VULKAN_HPP_ENABLE_STD_MODULE ) +#include +#if defined( __cpp_lib_modules ) && !defined( VULKAN_HPP_NO_STD_MODULE ) # define VULKAN_HPP_ENABLE_STD_MODULE #endif @@ -22,11 +21,11 @@ module; #include #include #include -#ifndef VULKAN_HPP_NO_TO_STRING -# include -#endif export module vulkan_hpp; +#if defined( VULKAN_HPP_ENABLE_STD_MODULE ) +export import VULKAN_HPP_STD_MODULE; +#endif export namespace VULKAN_HPP_NAMESPACE { @@ -49,6 +48,8 @@ export namespace VULKAN_HPP_NAMESPACE using VULKAN_HPP_NAMESPACE::detail::DispatchLoaderStatic; using VULKAN_HPP_NAMESPACE::detail::getDispatchLoaderStatic; #endif /*VK_NO_PROTOTYPES*/ + using VULKAN_HPP_NAMESPACE::detail::createResultValueType; + using VULKAN_HPP_NAMESPACE::detail::resultCheck; } // namespace detail using VULKAN_HPP_NAMESPACE::operator&; @@ -958,6 +959,10 @@ export namespace VULKAN_HPP_NAMESPACE using VULKAN_HPP_NAMESPACE::TimeDomainEXT; using VULKAN_HPP_NAMESPACE::TimeDomainKHR; + //=== VK_KHR_copy_memory_indirect === + using VULKAN_HPP_NAMESPACE::AddressCopyFlagBitsKHR; + using VULKAN_HPP_NAMESPACE::AddressCopyFlagsKHR; + //=== VK_NV_display_stereo === using VULKAN_HPP_NAMESPACE::DisplaySurfaceStereoTypeNV; @@ -2756,6 +2761,10 @@ export namespace VULKAN_HPP_NAMESPACE using VULKAN_HPP_NAMESPACE::QCOMTileMemoryHeapExtensionName; using VULKAN_HPP_NAMESPACE::QCOMTileMemoryHeapSpecVersion; + //=== VK_KHR_copy_memory_indirect === + using VULKAN_HPP_NAMESPACE::KHRCopyMemoryIndirectExtensionName; + using VULKAN_HPP_NAMESPACE::KHRCopyMemoryIndirectSpecVersion; + //=== VK_NV_display_stereo === using VULKAN_HPP_NAMESPACE::NVDisplayStereoExtensionName; using VULKAN_HPP_NAMESPACE::NVDisplayStereoSpecVersion; @@ -4572,10 +4581,7 @@ export namespace VULKAN_HPP_NAMESPACE using VULKAN_HPP_NAMESPACE::RenderPassStripeSubmitInfoARM; //=== VK_NV_copy_memory_indirect === - using VULKAN_HPP_NAMESPACE::CopyMemoryIndirectCommandNV; - using VULKAN_HPP_NAMESPACE::CopyMemoryToImageIndirectCommandNV; using VULKAN_HPP_NAMESPACE::PhysicalDeviceCopyMemoryIndirectFeaturesNV; - using VULKAN_HPP_NAMESPACE::PhysicalDeviceCopyMemoryIndirectPropertiesNV; //=== VK_NV_memory_decompression === using VULKAN_HPP_NAMESPACE::DecompressMemoryRegionNV; @@ -4941,6 +4947,18 @@ export namespace VULKAN_HPP_NAMESPACE using VULKAN_HPP_NAMESPACE::TileMemoryRequirementsQCOM; using VULKAN_HPP_NAMESPACE::TileMemorySizeInfoQCOM; + //=== VK_KHR_copy_memory_indirect === + using VULKAN_HPP_NAMESPACE::CopyMemoryIndirectCommandKHR; + using VULKAN_HPP_NAMESPACE::CopyMemoryIndirectCommandNV; + using VULKAN_HPP_NAMESPACE::CopyMemoryIndirectInfoKHR; + using VULKAN_HPP_NAMESPACE::CopyMemoryToImageIndirectCommandKHR; + using VULKAN_HPP_NAMESPACE::CopyMemoryToImageIndirectCommandNV; + using VULKAN_HPP_NAMESPACE::CopyMemoryToImageIndirectInfoKHR; + using VULKAN_HPP_NAMESPACE::PhysicalDeviceCopyMemoryIndirectFeaturesKHR; + using VULKAN_HPP_NAMESPACE::PhysicalDeviceCopyMemoryIndirectPropertiesKHR; + using VULKAN_HPP_NAMESPACE::PhysicalDeviceCopyMemoryIndirectPropertiesNV; + using VULKAN_HPP_NAMESPACE::StridedDeviceAddressRangeKHR; + //=== VK_NV_display_stereo === using VULKAN_HPP_NAMESPACE::DisplayModeStereoPropertiesNV; using VULKAN_HPP_NAMESPACE::DisplaySurfaceStereoCreateInfoNV; @@ -8224,13 +8242,7 @@ export namespace std //=== VK_NV_copy_memory_indirect === template <> - struct hash; - template <> - struct hash; - template <> struct hash; - template <> - struct hash; //=== VK_NV_memory_decompression === template <> @@ -8814,6 +8826,22 @@ export namespace std template <> struct hash; + //=== VK_KHR_copy_memory_indirect === + template <> + struct hash; + template <> + struct hash; + template <> + struct hash; + template <> + struct hash; + template <> + struct hash; + template <> + struct hash; + template <> + struct hash; + //=== VK_NV_display_stereo === template <> struct hash; @@ -10274,6 +10302,10 @@ export using ::PFN_vkCmdBindDescriptorBufferEmbeddedSamplers2EXT; //=== VK_QCOM_tile_memory_heap === export using ::PFN_vkCmdBindTileMemoryQCOM; +//=== VK_KHR_copy_memory_indirect === +export using ::PFN_vkCmdCopyMemoryIndirectKHR; +export using ::PFN_vkCmdCopyMemoryToImageIndirectKHR; + //=== VK_NV_external_compute_queue === export using ::PFN_vkCreateExternalComputeQueueNV; export using ::PFN_vkDestroyExternalComputeQueueNV; diff --git a/include/vulkan/vulkan.hpp b/include/vulkan/vulkan.hpp index b32ef26..03513bd 100644 --- a/include/vulkan/vulkan.hpp +++ b/include/vulkan/vulkan.hpp @@ -57,7 +57,7 @@ extern "C" __declspec( dllimport ) FARPROC __stdcall GetProcAddress( HINSTANCE h # endif #endif -static_assert( VK_HEADER_VERSION == 327, "Wrong VK_HEADER_VERSION!" ); +static_assert( VK_HEADER_VERSION == 328, "Wrong VK_HEADER_VERSION!" ); // includes through some other header // this results in major(x) being resolved to gnu_dev_major(x) @@ -6341,6 +6341,19 @@ namespace VULKAN_HPP_NAMESPACE return ::vkCmdBindTileMemoryQCOM( commandBuffer, pTileMemoryBindInfo ); } + //=== VK_KHR_copy_memory_indirect === + + void vkCmdCopyMemoryIndirectKHR( VkCommandBuffer commandBuffer, const VkCopyMemoryIndirectInfoKHR * pCopyMemoryIndirectInfo ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdCopyMemoryIndirectKHR( commandBuffer, pCopyMemoryIndirectInfo ); + } + + void vkCmdCopyMemoryToImageIndirectKHR( VkCommandBuffer commandBuffer, + const VkCopyMemoryToImageIndirectInfoKHR * pCopyMemoryToImageIndirectInfo ) const VULKAN_HPP_NOEXCEPT + { + return ::vkCmdCopyMemoryToImageIndirectKHR( commandBuffer, pCopyMemoryToImageIndirectInfo ); + } + //=== VK_NV_external_compute_queue === VkResult vkCreateExternalComputeQueueNV( VkDevice device, @@ -9265,6 +9278,10 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_CONSTEXPR_INLINE auto QCOMTileMemoryHeapExtensionName = VK_QCOM_TILE_MEMORY_HEAP_EXTENSION_NAME; VULKAN_HPP_CONSTEXPR_INLINE auto QCOMTileMemoryHeapSpecVersion = VK_QCOM_TILE_MEMORY_HEAP_SPEC_VERSION; + //=== VK_KHR_copy_memory_indirect === + VULKAN_HPP_CONSTEXPR_INLINE auto KHRCopyMemoryIndirectExtensionName = VK_KHR_COPY_MEMORY_INDIRECT_EXTENSION_NAME; + VULKAN_HPP_CONSTEXPR_INLINE auto KHRCopyMemoryIndirectSpecVersion = VK_KHR_COPY_MEMORY_INDIRECT_SPEC_VERSION; + //=== VK_NV_display_stereo === VULKAN_HPP_CONSTEXPR_INLINE auto NVDisplayStereoExtensionName = VK_NV_DISPLAY_STEREO_EXTENSION_NAME; VULKAN_HPP_CONSTEXPR_INLINE auto NVDisplayStereoSpecVersion = VK_NV_DISPLAY_STEREO_SPEC_VERSION; @@ -16192,15 +16209,6 @@ namespace VULKAN_HPP_NAMESPACE }; }; - template <> - struct StructExtends - { - enum - { - value = true - }; - }; - //=== VK_NV_memory_decompression === template <> struct StructExtends @@ -18318,6 +18326,34 @@ namespace VULKAN_HPP_NAMESPACE }; }; + //=== VK_KHR_copy_memory_indirect === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + //=== VK_NV_display_stereo === template <> struct StructExtends @@ -20713,6 +20749,10 @@ namespace VULKAN_HPP_NAMESPACE //=== VK_QCOM_tile_memory_heap === PFN_vkCmdBindTileMemoryQCOM vkCmdBindTileMemoryQCOM = 0; + //=== VK_KHR_copy_memory_indirect === + PFN_vkCmdCopyMemoryIndirectKHR vkCmdCopyMemoryIndirectKHR = 0; + PFN_vkCmdCopyMemoryToImageIndirectKHR vkCmdCopyMemoryToImageIndirectKHR = 0; + //=== VK_NV_external_compute_queue === PFN_vkCreateExternalComputeQueueNV vkCreateExternalComputeQueueNV = 0; PFN_vkDestroyExternalComputeQueueNV vkDestroyExternalComputeQueueNV = 0; @@ -22319,6 +22359,10 @@ namespace VULKAN_HPP_NAMESPACE //=== VK_QCOM_tile_memory_heap === vkCmdBindTileMemoryQCOM = PFN_vkCmdBindTileMemoryQCOM( vkGetInstanceProcAddr( instance, "vkCmdBindTileMemoryQCOM" ) ); + //=== VK_KHR_copy_memory_indirect === + vkCmdCopyMemoryIndirectKHR = PFN_vkCmdCopyMemoryIndirectKHR( vkGetInstanceProcAddr( instance, "vkCmdCopyMemoryIndirectKHR" ) ); + vkCmdCopyMemoryToImageIndirectKHR = PFN_vkCmdCopyMemoryToImageIndirectKHR( vkGetInstanceProcAddr( instance, "vkCmdCopyMemoryToImageIndirectKHR" ) ); + //=== VK_NV_external_compute_queue === vkCreateExternalComputeQueueNV = PFN_vkCreateExternalComputeQueueNV( vkGetInstanceProcAddr( instance, "vkCreateExternalComputeQueueNV" ) ); vkDestroyExternalComputeQueueNV = PFN_vkDestroyExternalComputeQueueNV( vkGetInstanceProcAddr( instance, "vkDestroyExternalComputeQueueNV" ) ); @@ -23552,6 +23596,10 @@ namespace VULKAN_HPP_NAMESPACE //=== VK_QCOM_tile_memory_heap === vkCmdBindTileMemoryQCOM = PFN_vkCmdBindTileMemoryQCOM( vkGetDeviceProcAddr( device, "vkCmdBindTileMemoryQCOM" ) ); + //=== VK_KHR_copy_memory_indirect === + vkCmdCopyMemoryIndirectKHR = PFN_vkCmdCopyMemoryIndirectKHR( vkGetDeviceProcAddr( device, "vkCmdCopyMemoryIndirectKHR" ) ); + vkCmdCopyMemoryToImageIndirectKHR = PFN_vkCmdCopyMemoryToImageIndirectKHR( vkGetDeviceProcAddr( device, "vkCmdCopyMemoryToImageIndirectKHR" ) ); + //=== VK_NV_external_compute_queue === vkCreateExternalComputeQueueNV = PFN_vkCreateExternalComputeQueueNV( vkGetDeviceProcAddr( device, "vkCreateExternalComputeQueueNV" ) ); vkDestroyExternalComputeQueueNV = PFN_vkDestroyExternalComputeQueueNV( vkGetDeviceProcAddr( device, "vkDestroyExternalComputeQueueNV" ) ); diff --git a/include/vulkan/vulkan_core.h b/include/vulkan/vulkan_core.h index 6f597a3..479610a 100644 --- a/include/vulkan/vulkan_core.h +++ b/include/vulkan/vulkan_core.h @@ -69,7 +69,7 @@ extern "C" { #define VK_API_VERSION_1_0 VK_MAKE_API_VERSION(0, 1, 0, 0)// Patch version should always be set to 0 // Version of this file -#define VK_HEADER_VERSION 327 +#define VK_HEADER_VERSION 328 // Complete version of this file #define VK_HEADER_VERSION_COMPLETE VK_MAKE_API_VERSION(0, 1, 4, VK_HEADER_VERSION) @@ -1022,7 +1022,6 @@ typedef enum VkStructureType { VK_STRUCTURE_TYPE_RENDER_PASS_STRIPE_INFO_ARM = 1000424003, VK_STRUCTURE_TYPE_RENDER_PASS_STRIPE_SUBMIT_INFO_ARM = 1000424004, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_FEATURES_NV = 1000426000, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_PROPERTIES_NV = 1000426001, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_FEATURES_NV = 1000427000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_PROPERTIES_NV = 1000427001, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_COMPUTE_FEATURES_NV = 1000428000, @@ -1234,6 +1233,10 @@ typedef enum VkStructureType { VK_STRUCTURE_TYPE_TILE_MEMORY_REQUIREMENTS_QCOM = 1000547002, VK_STRUCTURE_TYPE_TILE_MEMORY_BIND_INFO_QCOM = 1000547003, VK_STRUCTURE_TYPE_TILE_MEMORY_SIZE_INFO_QCOM = 1000547004, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_FEATURES_KHR = 1000549000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_PROPERTIES_KHR = 1000426001, + VK_STRUCTURE_TYPE_COPY_MEMORY_INDIRECT_INFO_KHR = 1000549002, + VK_STRUCTURE_TYPE_COPY_MEMORY_TO_IMAGE_INDIRECT_INFO_KHR = 1000549003, VK_STRUCTURE_TYPE_DISPLAY_SURFACE_STEREO_CREATE_INFO_NV = 1000551000, VK_STRUCTURE_TYPE_DISPLAY_MODE_STEREO_PROPERTIES_NV = 1000551001, VK_STRUCTURE_TYPE_VIDEO_ENCODE_INTRA_REFRESH_CAPABILITIES_KHR = 1000552000, @@ -1565,6 +1568,7 @@ typedef enum VkStructureType { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_QCOM = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_EXT, VK_STRUCTURE_TYPE_SUBPASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_QCOM = VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_EXT, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_PROPERTIES_NV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_PROPERTIES_KHR, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_PROPERTIES, @@ -7010,6 +7014,7 @@ static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_CLUSTER_CULLING_SHADER static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV = 0x20000000ULL; static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_CONVERT_COOPERATIVE_VECTOR_MATRIX_BIT_NV = 0x100000000000ULL; static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_DATA_GRAPH_BIT_ARM = 0x40000000000ULL; +static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COPY_INDIRECT_BIT_KHR = 0x400000000000ULL; typedef VkFlags64 VkAccessFlags2; @@ -7190,6 +7195,7 @@ static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_OPTICAL_FLOW_IMAGE_BIT static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_OPTICAL_FLOW_VECTOR_BIT_NV = 0x20000000000ULL; static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_OPTICAL_FLOW_COST_BIT_NV = 0x40000000000ULL; static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_TENSOR_DATA_GRAPH_BIT_ARM = 0x1000000000000ULL; +static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_COPY_IMAGE_INDIRECT_DST_BIT_KHR = 0x800000000000000ULL; static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VIDEO_ENCODE_QUANTIZATION_DELTA_MAP_BIT_KHR = 0x2000000000000ULL; static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VIDEO_ENCODE_EMPHASIS_MAP_BIT_KHR = 0x4000000000000ULL; @@ -13443,6 +13449,90 @@ VKAPI_ATTR void VKAPI_CALL vkCmdBindDescriptorBufferEmbeddedSamplers2EXT( #endif +// VK_KHR_copy_memory_indirect is a preprocessor guard. Do not pass it to API calls. +#define VK_KHR_copy_memory_indirect 1 +#define VK_KHR_COPY_MEMORY_INDIRECT_SPEC_VERSION 1 +#define VK_KHR_COPY_MEMORY_INDIRECT_EXTENSION_NAME "VK_KHR_copy_memory_indirect" + +typedef enum VkAddressCopyFlagBitsKHR { + VK_ADDRESS_COPY_DEVICE_LOCAL_BIT_KHR = 0x00000001, + VK_ADDRESS_COPY_SPARSE_BIT_KHR = 0x00000002, + VK_ADDRESS_COPY_PROTECTED_BIT_KHR = 0x00000004, + VK_ADDRESS_COPY_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF +} VkAddressCopyFlagBitsKHR; +typedef VkFlags VkAddressCopyFlagsKHR; +typedef struct VkStridedDeviceAddressRangeKHR { + VkDeviceAddress address; + VkDeviceSize size; + VkDeviceSize stride; +} VkStridedDeviceAddressRangeKHR; + +typedef struct VkCopyMemoryIndirectCommandKHR { + VkDeviceAddress srcAddress; + VkDeviceAddress dstAddress; + VkDeviceSize size; +} VkCopyMemoryIndirectCommandKHR; + +typedef struct VkCopyMemoryIndirectInfoKHR { + VkStructureType sType; + const void* pNext; + VkAddressCopyFlagsKHR srcCopyFlags; + VkAddressCopyFlagsKHR dstCopyFlags; + uint32_t copyCount; + VkStridedDeviceAddressRangeKHR copyAddressRange; +} VkCopyMemoryIndirectInfoKHR; + +typedef struct VkCopyMemoryToImageIndirectCommandKHR { + VkDeviceAddress srcAddress; + uint32_t bufferRowLength; + uint32_t bufferImageHeight; + VkImageSubresourceLayers imageSubresource; + VkOffset3D imageOffset; + VkExtent3D imageExtent; +} VkCopyMemoryToImageIndirectCommandKHR; + +typedef struct VkCopyMemoryToImageIndirectInfoKHR { + VkStructureType sType; + const void* pNext; + VkAddressCopyFlagsKHR srcCopyFlags; + uint32_t copyCount; + VkStridedDeviceAddressRangeKHR copyAddressRange; + VkImage dstImage; + VkImageLayout dstImageLayout; + const VkImageSubresourceLayers* pImageSubresources; +} VkCopyMemoryToImageIndirectInfoKHR; + +typedef struct VkPhysicalDeviceCopyMemoryIndirectFeaturesKHR { + VkStructureType sType; + void* pNext; + VkBool32 indirectMemoryCopy; + VkBool32 indirectMemoryToImageCopy; +} VkPhysicalDeviceCopyMemoryIndirectFeaturesKHR; + +typedef struct VkPhysicalDeviceCopyMemoryIndirectPropertiesKHR { + VkStructureType sType; + void* pNext; + VkQueueFlags supportedQueues; +} VkPhysicalDeviceCopyMemoryIndirectPropertiesKHR; + +typedef void (VKAPI_PTR *PFN_vkCmdCopyMemoryIndirectKHR)(VkCommandBuffer commandBuffer, const VkCopyMemoryIndirectInfoKHR* pCopyMemoryIndirectInfo); +typedef void (VKAPI_PTR *PFN_vkCmdCopyMemoryToImageIndirectKHR)(VkCommandBuffer commandBuffer, const VkCopyMemoryToImageIndirectInfoKHR* pCopyMemoryToImageIndirectInfo); + +#ifndef VK_NO_PROTOTYPES +#ifndef VK_ONLY_EXPORTED_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkCmdCopyMemoryIndirectKHR( + VkCommandBuffer commandBuffer, + const VkCopyMemoryIndirectInfoKHR* pCopyMemoryIndirectInfo); +#endif + +#ifndef VK_ONLY_EXPORTED_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkCmdCopyMemoryToImageIndirectKHR( + VkCommandBuffer commandBuffer, + const VkCopyMemoryToImageIndirectInfoKHR* pCopyMemoryToImageIndirectInfo); +#endif +#endif + + // VK_KHR_video_encode_intra_refresh is a preprocessor guard. Do not pass it to API calls. #define VK_KHR_video_encode_intra_refresh 1 #define VK_KHR_VIDEO_ENCODE_INTRA_REFRESH_SPEC_VERSION 1 @@ -20128,20 +20218,9 @@ typedef VkRenderPassFragmentDensityMapOffsetEndInfoEXT VkSubpassFragmentDensityM #define VK_NV_copy_memory_indirect 1 #define VK_NV_COPY_MEMORY_INDIRECT_SPEC_VERSION 1 #define VK_NV_COPY_MEMORY_INDIRECT_EXTENSION_NAME "VK_NV_copy_memory_indirect" -typedef struct VkCopyMemoryIndirectCommandNV { - VkDeviceAddress srcAddress; - VkDeviceAddress dstAddress; - VkDeviceSize size; -} VkCopyMemoryIndirectCommandNV; +typedef VkCopyMemoryIndirectCommandKHR VkCopyMemoryIndirectCommandNV; -typedef struct VkCopyMemoryToImageIndirectCommandNV { - VkDeviceAddress srcAddress; - uint32_t bufferRowLength; - uint32_t bufferImageHeight; - VkImageSubresourceLayers imageSubresource; - VkOffset3D imageOffset; - VkExtent3D imageExtent; -} VkCopyMemoryToImageIndirectCommandNV; +typedef VkCopyMemoryToImageIndirectCommandKHR VkCopyMemoryToImageIndirectCommandNV; typedef struct VkPhysicalDeviceCopyMemoryIndirectFeaturesNV { VkStructureType sType; @@ -20149,11 +20228,7 @@ typedef struct VkPhysicalDeviceCopyMemoryIndirectFeaturesNV { VkBool32 indirectCopy; } VkPhysicalDeviceCopyMemoryIndirectFeaturesNV; -typedef struct VkPhysicalDeviceCopyMemoryIndirectPropertiesNV { - VkStructureType sType; - void* pNext; - VkQueueFlags supportedQueues; -} VkPhysicalDeviceCopyMemoryIndirectPropertiesNV; +typedef VkPhysicalDeviceCopyMemoryIndirectPropertiesKHR VkPhysicalDeviceCopyMemoryIndirectPropertiesNV; typedef void (VKAPI_PTR *PFN_vkCmdCopyMemoryIndirectNV)(VkCommandBuffer commandBuffer, VkDeviceAddress copyBufferAddress, uint32_t copyCount, uint32_t stride); typedef void (VKAPI_PTR *PFN_vkCmdCopyMemoryToImageIndirectNV)(VkCommandBuffer commandBuffer, VkDeviceAddress copyBufferAddress, uint32_t copyCount, uint32_t stride, VkImage dstImage, VkImageLayout dstImageLayout, const VkImageSubresourceLayers* pImageSubresources); diff --git a/include/vulkan/vulkan_enums.hpp b/include/vulkan/vulkan_enums.hpp index ebbc8ec..5f3786e 100644 --- a/include/vulkan/vulkan_enums.hpp +++ b/include/vulkan/vulkan_enums.hpp @@ -11,7 +11,11 @@ // include-what-you-use: make sure, vulkan.hpp is used by code-completers // IWYU pragma: private, include "vulkan/vulkan.hpp" -#include // for std::underlying_type +#if defined( VULKAN_HPP_ENABLE_STD_MODULE ) && defined( VULKAN_HPP_STD_MODULE ) +import VULKAN_HPP_STD_MODULE; +#else +# include // for std::underlying_type +#endif namespace VULKAN_HPP_NAMESPACE { @@ -1365,7 +1369,6 @@ namespace VULKAN_HPP_NAMESPACE eRenderPassStripeInfoARM = VK_STRUCTURE_TYPE_RENDER_PASS_STRIPE_INFO_ARM, eRenderPassStripeSubmitInfoARM = VK_STRUCTURE_TYPE_RENDER_PASS_STRIPE_SUBMIT_INFO_ARM, ePhysicalDeviceCopyMemoryIndirectFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_FEATURES_NV, - ePhysicalDeviceCopyMemoryIndirectPropertiesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_PROPERTIES_NV, ePhysicalDeviceMemoryDecompressionFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_FEATURES_NV, ePhysicalDeviceMemoryDecompressionPropertiesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_PROPERTIES_NV, ePhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_COMPUTE_FEATURES_NV, @@ -1593,6 +1596,11 @@ namespace VULKAN_HPP_NAMESPACE eTileMemoryRequirementsQCOM = VK_STRUCTURE_TYPE_TILE_MEMORY_REQUIREMENTS_QCOM, eTileMemoryBindInfoQCOM = VK_STRUCTURE_TYPE_TILE_MEMORY_BIND_INFO_QCOM, eTileMemorySizeInfoQCOM = VK_STRUCTURE_TYPE_TILE_MEMORY_SIZE_INFO_QCOM, + ePhysicalDeviceCopyMemoryIndirectFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_FEATURES_KHR, + ePhysicalDeviceCopyMemoryIndirectPropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_PROPERTIES_KHR, + ePhysicalDeviceCopyMemoryIndirectPropertiesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_PROPERTIES_NV, + eCopyMemoryIndirectInfoKHR = VK_STRUCTURE_TYPE_COPY_MEMORY_INDIRECT_INFO_KHR, + eCopyMemoryToImageIndirectInfoKHR = VK_STRUCTURE_TYPE_COPY_MEMORY_TO_IMAGE_INDIRECT_INFO_KHR, eDisplaySurfaceStereoCreateInfoNV = VK_STRUCTURE_TYPE_DISPLAY_SURFACE_STEREO_CREATE_INFO_NV, eDisplayModeStereoPropertiesNV = VK_STRUCTURE_TYPE_DISPLAY_MODE_STEREO_PROPERTIES_NV, eVideoEncodeIntraRefreshCapabilitiesKHR = VK_STRUCTURE_TYPE_VIDEO_ENCODE_INTRA_REFRESH_CAPABILITIES_KHR, @@ -4868,7 +4876,8 @@ namespace VULKAN_HPP_NAMESPACE eClusterCullingShaderHUAWEI = VK_PIPELINE_STAGE_2_CLUSTER_CULLING_SHADER_BIT_HUAWEI, eOpticalFlowNV = VK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV, eConvertCooperativeVectorMatrixNV = VK_PIPELINE_STAGE_2_CONVERT_COOPERATIVE_VECTOR_MATRIX_BIT_NV, - eDataGraphARM = VK_PIPELINE_STAGE_2_DATA_GRAPH_BIT_ARM + eDataGraphARM = VK_PIPELINE_STAGE_2_DATA_GRAPH_BIT_ARM, + eCopyIndirectKHR = VK_PIPELINE_STAGE_2_COPY_INDIRECT_BIT_KHR }; using PipelineStageFlagBits2KHR = PipelineStageFlagBits2; @@ -4896,7 +4905,8 @@ namespace VULKAN_HPP_NAMESPACE PipelineStageFlagBits2::eRayTracingShaderKHR | PipelineStageFlagBits2::eFragmentDensityProcessEXT | PipelineStageFlagBits2::eTaskShaderEXT | PipelineStageFlagBits2::eMeshShaderEXT | PipelineStageFlagBits2::eSubpassShaderHUAWEI | PipelineStageFlagBits2::eInvocationMaskHUAWEI | PipelineStageFlagBits2::eAccelerationStructureCopyKHR | PipelineStageFlagBits2::eMicromapBuildEXT | PipelineStageFlagBits2::eClusterCullingShaderHUAWEI | - PipelineStageFlagBits2::eOpticalFlowNV | PipelineStageFlagBits2::eConvertCooperativeVectorMatrixNV | PipelineStageFlagBits2::eDataGraphARM; + PipelineStageFlagBits2::eOpticalFlowNV | PipelineStageFlagBits2::eConvertCooperativeVectorMatrixNV | PipelineStageFlagBits2::eDataGraphARM | + PipelineStageFlagBits2::eCopyIndirectKHR; }; // wrapper class for enum VkAccessFlagBits2, see https://registry.khronos.org/vulkan/specs/latest/man/html/VkAccessFlagBits2.html @@ -5085,6 +5095,7 @@ namespace VULKAN_HPP_NAMESPACE eOpticalFlowVectorNV = VK_FORMAT_FEATURE_2_OPTICAL_FLOW_VECTOR_BIT_NV, eOpticalFlowCostNV = VK_FORMAT_FEATURE_2_OPTICAL_FLOW_COST_BIT_NV, eTensorDataGraphARM = VK_FORMAT_FEATURE_2_TENSOR_DATA_GRAPH_BIT_ARM, + eCopyImageIndirectDstKHR = VK_FORMAT_FEATURE_2_COPY_IMAGE_INDIRECT_DST_BIT_KHR, eVideoEncodeQuantizationDeltaMapKHR = VK_FORMAT_FEATURE_2_VIDEO_ENCODE_QUANTIZATION_DELTA_MAP_BIT_KHR, eVideoEncodeEmphasisMapKHR = VK_FORMAT_FEATURE_2_VIDEO_ENCODE_EMPHASIS_MAP_BIT_KHR }; @@ -5119,8 +5130,8 @@ namespace VULKAN_HPP_NAMESPACE FormatFeatureFlagBits2::eWeightImageQCOM | FormatFeatureFlagBits2::eWeightSampledImageQCOM | FormatFeatureFlagBits2::eBlockMatchingQCOM | FormatFeatureFlagBits2::eBoxFilterSampledQCOM | FormatFeatureFlagBits2::eTensorShaderARM | FormatFeatureFlagBits2::eTensorImageAliasingARM | FormatFeatureFlagBits2::eOpticalFlowImageNV | FormatFeatureFlagBits2::eOpticalFlowVectorNV | FormatFeatureFlagBits2::eOpticalFlowCostNV | - FormatFeatureFlagBits2::eTensorDataGraphARM | FormatFeatureFlagBits2::eVideoEncodeQuantizationDeltaMapKHR | - FormatFeatureFlagBits2::eVideoEncodeEmphasisMapKHR; + FormatFeatureFlagBits2::eTensorDataGraphARM | FormatFeatureFlagBits2::eCopyImageIndirectDstKHR | + FormatFeatureFlagBits2::eVideoEncodeQuantizationDeltaMapKHR | FormatFeatureFlagBits2::eVideoEncodeEmphasisMapKHR; }; //=== VK_VERSION_1_4 === @@ -8932,6 +8943,28 @@ namespace VULKAN_HPP_NAMESPACE using TimeDomainEXT = TimeDomainKHR; + //=== VK_KHR_copy_memory_indirect === + + // wrapper class for enum VkAddressCopyFlagBitsKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/VkAddressCopyFlagBitsKHR.html + enum class AddressCopyFlagBitsKHR : VkAddressCopyFlagsKHR + { + eDeviceLocal = VK_ADDRESS_COPY_DEVICE_LOCAL_BIT_KHR, + eSparse = VK_ADDRESS_COPY_SPARSE_BIT_KHR, + eProtected = VK_ADDRESS_COPY_PROTECTED_BIT_KHR + }; + + // wrapper using for bitmask VkAddressCopyFlagsKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/VkAddressCopyFlagsKHR.html + using AddressCopyFlagsKHR = Flags; + + template <> + struct FlagTraits + { + using WrappedType = VkAddressCopyFlagBitsKHR; + static VULKAN_HPP_CONST_OR_CONSTEXPR bool isBitmask = true; + static VULKAN_HPP_CONST_OR_CONSTEXPR AddressCopyFlagsKHR allFlags = + AddressCopyFlagBitsKHR::eDeviceLocal | AddressCopyFlagBitsKHR::eSparse | AddressCopyFlagBitsKHR::eProtected; + }; + //=== VK_NV_display_stereo === // wrapper class for enum VkDisplaySurfaceStereoTypeNV, see https://registry.khronos.org/vulkan/specs/latest/man/html/VkDisplaySurfaceStereoTypeNV.html diff --git a/include/vulkan/vulkan_extension_inspection.hpp b/include/vulkan/vulkan_extension_inspection.hpp index 7c9173b..2acb0df 100644 --- a/include/vulkan/vulkan_extension_inspection.hpp +++ b/include/vulkan/vulkan_extension_inspection.hpp @@ -463,6 +463,7 @@ namespace VULKAN_HPP_NAMESPACE "VK_KHR_maintenance6", "VK_NV_descriptor_pool_overallocation", "VK_QCOM_tile_memory_heap", + "VK_KHR_copy_memory_indirect", "VK_KHR_video_encode_intra_refresh", "VK_KHR_video_encode_quantization_map", "VK_NV_raw_access_chains", @@ -2586,6 +2587,13 @@ namespace VULKAN_HPP_NAMESPACE "VK_KHR_get_physical_device_properties2", } } }, { "VK_VERSION_1_1", { {} } } } }, + { "VK_KHR_copy_memory_indirect", + { { "VK_VERSION_1_0", + { { + "VK_KHR_buffer_device_address", + "VK_KHR_get_physical_device_properties2", + } } }, + { "VK_VERSION_1_2", { {} } } } }, { "VK_NV_display_stereo", { { "VK_VERSION_1_0", { { @@ -2894,6 +2902,7 @@ namespace VULKAN_HPP_NAMESPACE { "VK_KHR_shader_subgroup_rotate", "VK_VERSION_1_4" }, { "VK_EXT_depth_clamp_zero_one", "VK_KHR_depth_clamp_zero_one" }, { "VK_QCOM_fragment_density_map_offset", "VK_EXT_fragment_density_map_offset" }, + { "VK_NV_copy_memory_indirect", "VK_KHR_copy_memory_indirect" }, { "VK_EXT_pipeline_protected_access", "VK_VERSION_1_4" }, { "VK_KHR_maintenance5", "VK_VERSION_1_4" }, { "VK_KHR_vertex_attribute_divisor", "VK_VERSION_1_4" }, @@ -3394,6 +3403,10 @@ namespace VULKAN_HPP_NAMESPACE { return "VK_EXT_fragment_density_map_offset"; } + if ( extension == "VK_NV_copy_memory_indirect" ) + { + return "VK_KHR_copy_memory_indirect"; + } if ( extension == "VK_EXT_pipeline_protected_access" ) { return "VK_VERSION_1_4"; @@ -3659,16 +3672,17 @@ namespace VULKAN_HPP_NAMESPACE || ( extension == "VK_MSFT_layered_driver" ) || ( extension == "VK_KHR_index_type_uint8" ) || ( extension == "VK_KHR_line_rasterization" ) || ( extension == "VK_KHR_calibrated_timestamps" ) || ( extension == "VK_KHR_shader_expect_assume" ) || ( extension == "VK_KHR_maintenance6" ) || ( extension == "VK_NV_descriptor_pool_overallocation" ) || ( extension == "VK_QCOM_tile_memory_heap" ) || - ( extension == "VK_KHR_video_encode_intra_refresh" ) || ( extension == "VK_KHR_video_encode_quantization_map" ) || - ( extension == "VK_NV_raw_access_chains" ) || ( extension == "VK_NV_external_compute_queue" ) || - ( extension == "VK_KHR_shader_relaxed_extended_instruction" ) || ( extension == "VK_NV_command_buffer_inheritance" ) || - ( extension == "VK_KHR_maintenance7" ) || ( extension == "VK_NV_shader_atomic_float16_vector" ) || - ( extension == "VK_EXT_shader_replicated_composites" ) || ( extension == "VK_EXT_shader_float8" ) || - ( extension == "VK_NV_ray_tracing_validation" ) || ( extension == "VK_NV_cluster_acceleration_structure" ) || - ( extension == "VK_NV_partitioned_acceleration_structure" ) || ( extension == "VK_EXT_device_generated_commands" ) || - ( extension == "VK_KHR_maintenance8" ) || ( extension == "VK_MESA_image_alignment_control" ) || ( extension == "VK_EXT_depth_clamp_control" ) || - ( extension == "VK_KHR_maintenance9" ) || ( extension == "VK_KHR_video_maintenance2" ) || ( extension == "VK_HUAWEI_hdr_vivid" ) || - ( extension == "VK_NV_cooperative_matrix2" ) || ( extension == "VK_ARM_pipeline_opacity_micromap" ) + ( extension == "VK_KHR_copy_memory_indirect" ) || ( extension == "VK_KHR_video_encode_intra_refresh" ) || + ( extension == "VK_KHR_video_encode_quantization_map" ) || ( extension == "VK_NV_raw_access_chains" ) || + ( extension == "VK_NV_external_compute_queue" ) || ( extension == "VK_KHR_shader_relaxed_extended_instruction" ) || + ( extension == "VK_NV_command_buffer_inheritance" ) || ( extension == "VK_KHR_maintenance7" ) || + ( extension == "VK_NV_shader_atomic_float16_vector" ) || ( extension == "VK_EXT_shader_replicated_composites" ) || + ( extension == "VK_EXT_shader_float8" ) || ( extension == "VK_NV_ray_tracing_validation" ) || + ( extension == "VK_NV_cluster_acceleration_structure" ) || ( extension == "VK_NV_partitioned_acceleration_structure" ) || + ( extension == "VK_EXT_device_generated_commands" ) || ( extension == "VK_KHR_maintenance8" ) || + ( extension == "VK_MESA_image_alignment_control" ) || ( extension == "VK_EXT_depth_clamp_control" ) || ( extension == "VK_KHR_maintenance9" ) || + ( extension == "VK_KHR_video_maintenance2" ) || ( extension == "VK_HUAWEI_hdr_vivid" ) || ( extension == "VK_NV_cooperative_matrix2" ) || + ( extension == "VK_ARM_pipeline_opacity_micromap" ) #if defined( VK_USE_PLATFORM_METAL_EXT ) || ( extension == "VK_EXT_external_memory_metal" ) #endif /*VK_USE_PLATFORM_METAL_EXT*/ @@ -3795,7 +3809,7 @@ namespace VULKAN_HPP_NAMESPACE ( extension == "VK_EXT_extended_dynamic_state2" ) || ( extension == "VK_EXT_global_priority_query" ) || ( extension == "VK_EXT_load_store_op_none" ) || ( extension == "VK_KHR_maintenance4" ) || ( extension == "VK_KHR_shader_subgroup_rotate" ) || ( extension == "VK_EXT_depth_clamp_zero_one" ) || ( extension == "VK_QCOM_fragment_density_map_offset" ) || - ( extension == "VK_EXT_pipeline_protected_access" ) || ( extension == "VK_KHR_maintenance5" ) || + ( extension == "VK_NV_copy_memory_indirect" ) || ( extension == "VK_EXT_pipeline_protected_access" ) || ( extension == "VK_KHR_maintenance5" ) || ( extension == "VK_KHR_vertex_attribute_divisor" ) || ( extension == "VK_KHR_load_store_op_none" ) || ( extension == "VK_KHR_shader_float_controls2" ) || ( extension == "VK_KHR_index_type_uint8" ) || ( extension == "VK_KHR_line_rasterization" ) || ( extension == "VK_KHR_shader_expect_assume" ) || ( extension == "VK_KHR_maintenance6" ) || ( extension == "VK_EXT_vertex_attribute_robustness" ); diff --git a/include/vulkan/vulkan_funcs.hpp b/include/vulkan/vulkan_funcs.hpp index 7daf44d..652e4b5 100644 --- a/include/vulkan/vulkan_funcs.hpp +++ b/include/vulkan/vulkan_funcs.hpp @@ -30360,6 +30360,60 @@ namespace VULKAN_HPP_NAMESPACE } #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */ + //=== VK_KHR_copy_memory_indirect === + + // wrapper function for command vkCmdCopyMemoryIndirectKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdCopyMemoryIndirectKHR.html + template + VULKAN_HPP_INLINE void CommandBuffer::copyMemoryIndirectKHR( const CopyMemoryIndirectInfoKHR * pCopyMemoryIndirectInfo, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION ); + d.vkCmdCopyMemoryIndirectKHR( static_cast( m_commandBuffer ), + reinterpret_cast( pCopyMemoryIndirectInfo ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + // wrapper function for command vkCmdCopyMemoryIndirectKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdCopyMemoryIndirectKHR.html + template + VULKAN_HPP_INLINE void CommandBuffer::copyMemoryIndirectKHR( const CopyMemoryIndirectInfoKHR & copyMemoryIndirectInfo, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION ); +# if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 ) + VULKAN_HPP_ASSERT( d.vkCmdCopyMemoryIndirectKHR && "Function requires " ); +# endif + + d.vkCmdCopyMemoryIndirectKHR( m_commandBuffer, reinterpret_cast( ©MemoryIndirectInfo ) ); + } +#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */ + + // wrapper function for command vkCmdCopyMemoryToImageIndirectKHR, see + // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdCopyMemoryToImageIndirectKHR.html + template + VULKAN_HPP_INLINE void CommandBuffer::copyMemoryToImageIndirectKHR( const CopyMemoryToImageIndirectInfoKHR * pCopyMemoryToImageIndirectInfo, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION ); + d.vkCmdCopyMemoryToImageIndirectKHR( static_cast( m_commandBuffer ), + reinterpret_cast( pCopyMemoryToImageIndirectInfo ) ); + } + +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + // wrapper function for command vkCmdCopyMemoryToImageIndirectKHR, see + // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdCopyMemoryToImageIndirectKHR.html + template + VULKAN_HPP_INLINE void CommandBuffer::copyMemoryToImageIndirectKHR( const CopyMemoryToImageIndirectInfoKHR & copyMemoryToImageIndirectInfo, + Dispatch const & d ) const VULKAN_HPP_NOEXCEPT + { + VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION ); +# if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 ) + VULKAN_HPP_ASSERT( d.vkCmdCopyMemoryToImageIndirectKHR && "Function requires " ); +# endif + + d.vkCmdCopyMemoryToImageIndirectKHR( m_commandBuffer, reinterpret_cast( ©MemoryToImageIndirectInfo ) ); + } +#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */ + //=== VK_NV_external_compute_queue === // wrapper function for command vkCreateExternalComputeQueueNV, see diff --git a/include/vulkan/vulkan_handles.hpp b/include/vulkan/vulkan_handles.hpp index a975d22..d5508b3 100644 --- a/include/vulkan/vulkan_handles.hpp +++ b/include/vulkan/vulkan_handles.hpp @@ -1629,10 +1629,7 @@ namespace VULKAN_HPP_NAMESPACE struct RenderPassStripeSubmitInfoARM; //=== VK_NV_copy_memory_indirect === - struct CopyMemoryIndirectCommandNV; - struct CopyMemoryToImageIndirectCommandNV; struct PhysicalDeviceCopyMemoryIndirectFeaturesNV; - struct PhysicalDeviceCopyMemoryIndirectPropertiesNV; //=== VK_NV_memory_decompression === struct DecompressMemoryRegionNV; @@ -1998,6 +1995,18 @@ namespace VULKAN_HPP_NAMESPACE struct TileMemoryBindInfoQCOM; struct TileMemorySizeInfoQCOM; + //=== VK_KHR_copy_memory_indirect === + struct StridedDeviceAddressRangeKHR; + struct CopyMemoryIndirectCommandKHR; + using CopyMemoryIndirectCommandNV = CopyMemoryIndirectCommandKHR; + struct CopyMemoryIndirectInfoKHR; + struct CopyMemoryToImageIndirectCommandKHR; + using CopyMemoryToImageIndirectCommandNV = CopyMemoryToImageIndirectCommandKHR; + struct CopyMemoryToImageIndirectInfoKHR; + struct PhysicalDeviceCopyMemoryIndirectFeaturesKHR; + struct PhysicalDeviceCopyMemoryIndirectPropertiesKHR; + using PhysicalDeviceCopyMemoryIndirectPropertiesNV = PhysicalDeviceCopyMemoryIndirectPropertiesKHR; + //=== VK_NV_display_stereo === struct DisplaySurfaceStereoCreateInfoNV; struct DisplayModeStereoPropertiesNV; @@ -7963,6 +7972,32 @@ namespace VULKAN_HPP_NAMESPACE Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */ + //=== VK_KHR_copy_memory_indirect === + + // wrapper function for command vkCmdCopyMemoryIndirectKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdCopyMemoryIndirectKHR.html + template + void copyMemoryIndirectKHR( const CopyMemoryIndirectInfoKHR * pCopyMemoryIndirectInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + // wrapper function for command vkCmdCopyMemoryIndirectKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdCopyMemoryIndirectKHR.html + template + void copyMemoryIndirectKHR( const CopyMemoryIndirectInfoKHR & copyMemoryIndirectInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */ + + // wrapper function for command vkCmdCopyMemoryToImageIndirectKHR, see + // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdCopyMemoryToImageIndirectKHR.html + template + void copyMemoryToImageIndirectKHR( const CopyMemoryToImageIndirectInfoKHR * pCopyMemoryToImageIndirectInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE + // wrapper function for command vkCmdCopyMemoryToImageIndirectKHR, see + // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdCopyMemoryToImageIndirectKHR.html + template + void copyMemoryToImageIndirectKHR( const CopyMemoryToImageIndirectInfoKHR & copyMemoryToImageIndirectInfo, + Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; +#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */ + //=== VK_NV_cluster_acceleration_structure === // wrapper function for command vkCmdBuildClusterAccelerationStructureIndirectNV, see diff --git a/include/vulkan/vulkan_hash.hpp b/include/vulkan/vulkan_hash.hpp index 27c14a4..15ad534 100644 --- a/include/vulkan/vulkan_hash.hpp +++ b/include/vulkan/vulkan_hash.hpp @@ -3138,30 +3138,77 @@ namespace std }; template <> - struct hash + struct hash { - std::size_t operator()( VULKAN_HPP_NAMESPACE::CopyMemoryIndirectCommandNV const & copyMemoryIndirectCommandNV ) const VULKAN_HPP_NOEXCEPT + std::size_t operator()( VULKAN_HPP_NAMESPACE::CopyMemoryIndirectCommandKHR const & copyMemoryIndirectCommandKHR ) const VULKAN_HPP_NOEXCEPT { std::size_t seed = 0; - VULKAN_HPP_HASH_COMBINE( seed, copyMemoryIndirectCommandNV.srcAddress ); - VULKAN_HPP_HASH_COMBINE( seed, copyMemoryIndirectCommandNV.dstAddress ); - VULKAN_HPP_HASH_COMBINE( seed, copyMemoryIndirectCommandNV.size ); + VULKAN_HPP_HASH_COMBINE( seed, copyMemoryIndirectCommandKHR.srcAddress ); + VULKAN_HPP_HASH_COMBINE( seed, copyMemoryIndirectCommandKHR.dstAddress ); + VULKAN_HPP_HASH_COMBINE( seed, copyMemoryIndirectCommandKHR.size ); return seed; } }; template <> - struct hash + struct hash { - std::size_t operator()( VULKAN_HPP_NAMESPACE::CopyMemoryToImageIndirectCommandNV const & copyMemoryToImageIndirectCommandNV ) const VULKAN_HPP_NOEXCEPT + std::size_t operator()( VULKAN_HPP_NAMESPACE::StridedDeviceAddressRangeKHR const & stridedDeviceAddressRangeKHR ) const VULKAN_HPP_NOEXCEPT { std::size_t seed = 0; - VULKAN_HPP_HASH_COMBINE( seed, copyMemoryToImageIndirectCommandNV.srcAddress ); - VULKAN_HPP_HASH_COMBINE( seed, copyMemoryToImageIndirectCommandNV.bufferRowLength ); - VULKAN_HPP_HASH_COMBINE( seed, copyMemoryToImageIndirectCommandNV.bufferImageHeight ); - VULKAN_HPP_HASH_COMBINE( seed, copyMemoryToImageIndirectCommandNV.imageSubresource ); - VULKAN_HPP_HASH_COMBINE( seed, copyMemoryToImageIndirectCommandNV.imageOffset ); - VULKAN_HPP_HASH_COMBINE( seed, copyMemoryToImageIndirectCommandNV.imageExtent ); + VULKAN_HPP_HASH_COMBINE( seed, stridedDeviceAddressRangeKHR.address ); + VULKAN_HPP_HASH_COMBINE( seed, stridedDeviceAddressRangeKHR.size ); + VULKAN_HPP_HASH_COMBINE( seed, stridedDeviceAddressRangeKHR.stride ); + return seed; + } + }; + + template <> + struct hash + { + std::size_t operator()( VULKAN_HPP_NAMESPACE::CopyMemoryIndirectInfoKHR const & copyMemoryIndirectInfoKHR ) const VULKAN_HPP_NOEXCEPT + { + std::size_t seed = 0; + VULKAN_HPP_HASH_COMBINE( seed, copyMemoryIndirectInfoKHR.sType ); + VULKAN_HPP_HASH_COMBINE( seed, copyMemoryIndirectInfoKHR.pNext ); + VULKAN_HPP_HASH_COMBINE( seed, copyMemoryIndirectInfoKHR.srcCopyFlags ); + VULKAN_HPP_HASH_COMBINE( seed, copyMemoryIndirectInfoKHR.dstCopyFlags ); + VULKAN_HPP_HASH_COMBINE( seed, copyMemoryIndirectInfoKHR.copyCount ); + VULKAN_HPP_HASH_COMBINE( seed, copyMemoryIndirectInfoKHR.copyAddressRange ); + return seed; + } + }; + + template <> + struct hash + { + std::size_t operator()( VULKAN_HPP_NAMESPACE::CopyMemoryToImageIndirectCommandKHR const & copyMemoryToImageIndirectCommandKHR ) const VULKAN_HPP_NOEXCEPT + { + std::size_t seed = 0; + VULKAN_HPP_HASH_COMBINE( seed, copyMemoryToImageIndirectCommandKHR.srcAddress ); + VULKAN_HPP_HASH_COMBINE( seed, copyMemoryToImageIndirectCommandKHR.bufferRowLength ); + VULKAN_HPP_HASH_COMBINE( seed, copyMemoryToImageIndirectCommandKHR.bufferImageHeight ); + VULKAN_HPP_HASH_COMBINE( seed, copyMemoryToImageIndirectCommandKHR.imageSubresource ); + VULKAN_HPP_HASH_COMBINE( seed, copyMemoryToImageIndirectCommandKHR.imageOffset ); + VULKAN_HPP_HASH_COMBINE( seed, copyMemoryToImageIndirectCommandKHR.imageExtent ); + return seed; + } + }; + + template <> + struct hash + { + std::size_t operator()( VULKAN_HPP_NAMESPACE::CopyMemoryToImageIndirectInfoKHR const & copyMemoryToImageIndirectInfoKHR ) const VULKAN_HPP_NOEXCEPT + { + std::size_t seed = 0; + VULKAN_HPP_HASH_COMBINE( seed, copyMemoryToImageIndirectInfoKHR.sType ); + VULKAN_HPP_HASH_COMBINE( seed, copyMemoryToImageIndirectInfoKHR.pNext ); + VULKAN_HPP_HASH_COMBINE( seed, copyMemoryToImageIndirectInfoKHR.srcCopyFlags ); + VULKAN_HPP_HASH_COMBINE( seed, copyMemoryToImageIndirectInfoKHR.copyCount ); + VULKAN_HPP_HASH_COMBINE( seed, copyMemoryToImageIndirectInfoKHR.copyAddressRange ); + VULKAN_HPP_HASH_COMBINE( seed, copyMemoryToImageIndirectInfoKHR.dstImage ); + VULKAN_HPP_HASH_COMBINE( seed, copyMemoryToImageIndirectInfoKHR.dstImageLayout ); + VULKAN_HPP_HASH_COMBINE( seed, copyMemoryToImageIndirectInfoKHR.pImageSubresources ); return seed; } }; @@ -9275,6 +9322,21 @@ namespace std } }; + template <> + struct hash + { + std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceCopyMemoryIndirectFeaturesKHR const & physicalDeviceCopyMemoryIndirectFeaturesKHR ) const + VULKAN_HPP_NOEXCEPT + { + std::size_t seed = 0; + VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceCopyMemoryIndirectFeaturesKHR.sType ); + VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceCopyMemoryIndirectFeaturesKHR.pNext ); + VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceCopyMemoryIndirectFeaturesKHR.indirectMemoryCopy ); + VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceCopyMemoryIndirectFeaturesKHR.indirectMemoryToImageCopy ); + return seed; + } + }; + template <> struct hash { @@ -9290,15 +9352,15 @@ namespace std }; template <> - struct hash + struct hash { - std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceCopyMemoryIndirectPropertiesNV const & physicalDeviceCopyMemoryIndirectPropertiesNV ) const + std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceCopyMemoryIndirectPropertiesKHR const & physicalDeviceCopyMemoryIndirectPropertiesKHR ) const VULKAN_HPP_NOEXCEPT { std::size_t seed = 0; - VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceCopyMemoryIndirectPropertiesNV.sType ); - VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceCopyMemoryIndirectPropertiesNV.pNext ); - VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceCopyMemoryIndirectPropertiesNV.supportedQueues ); + VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceCopyMemoryIndirectPropertiesKHR.sType ); + VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceCopyMemoryIndirectPropertiesKHR.pNext ); + VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceCopyMemoryIndirectPropertiesKHR.supportedQueues ); return seed; } }; diff --git a/include/vulkan/vulkan_hpp_macros.hpp b/include/vulkan/vulkan_hpp_macros.hpp index 2dbdede..5ed0217 100644 --- a/include/vulkan/vulkan_hpp_macros.hpp +++ b/include/vulkan/vulkan_hpp_macros.hpp @@ -87,7 +87,7 @@ # define VULKAN_HPP_SUPPORT_SPAN #endif -#if defined( __cpp_lib_modules ) && !defined( VULKAN_HPP_STD_MODULE ) && defined( VULKAN_HPP_ENABLE_STD_MODULE ) +#if !defined( VULKAN_HPP_STD_MODULE ) && defined( VULKAN_HPP_ENABLE_STD_MODULE ) # define VULKAN_HPP_STD_MODULE std.compat #endif diff --git a/include/vulkan/vulkan_raii.hpp b/include/vulkan/vulkan_raii.hpp index e259839..9e6add2 100644 --- a/include/vulkan/vulkan_raii.hpp +++ b/include/vulkan/vulkan_raii.hpp @@ -1877,6 +1877,10 @@ namespace VULKAN_HPP_NAMESPACE //=== VK_QCOM_tile_memory_heap === vkCmdBindTileMemoryQCOM = PFN_vkCmdBindTileMemoryQCOM( vkGetDeviceProcAddr( device, "vkCmdBindTileMemoryQCOM" ) ); + //=== VK_KHR_copy_memory_indirect === + vkCmdCopyMemoryIndirectKHR = PFN_vkCmdCopyMemoryIndirectKHR( vkGetDeviceProcAddr( device, "vkCmdCopyMemoryIndirectKHR" ) ); + vkCmdCopyMemoryToImageIndirectKHR = PFN_vkCmdCopyMemoryToImageIndirectKHR( vkGetDeviceProcAddr( device, "vkCmdCopyMemoryToImageIndirectKHR" ) ); + //=== VK_NV_external_compute_queue === vkCreateExternalComputeQueueNV = PFN_vkCreateExternalComputeQueueNV( vkGetDeviceProcAddr( device, "vkCreateExternalComputeQueueNV" ) ); vkDestroyExternalComputeQueueNV = PFN_vkDestroyExternalComputeQueueNV( vkGetDeviceProcAddr( device, "vkDestroyExternalComputeQueueNV" ) ); @@ -2873,6 +2877,10 @@ namespace VULKAN_HPP_NAMESPACE //=== VK_QCOM_tile_memory_heap === PFN_vkCmdBindTileMemoryQCOM vkCmdBindTileMemoryQCOM = 0; + //=== VK_KHR_copy_memory_indirect === + PFN_vkCmdCopyMemoryIndirectKHR vkCmdCopyMemoryIndirectKHR = 0; + PFN_vkCmdCopyMemoryToImageIndirectKHR vkCmdCopyMemoryToImageIndirectKHR = 0; + //=== VK_NV_external_compute_queue === PFN_vkCreateExternalComputeQueueNV vkCreateExternalComputeQueueNV = 0; PFN_vkDestroyExternalComputeQueueNV vkDestroyExternalComputeQueueNV = 0; @@ -7848,6 +7856,15 @@ namespace VULKAN_HPP_NAMESPACE void bindTileMemoryQCOM( Optional tileMemoryBindInfo VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; + //=== VK_KHR_copy_memory_indirect === + + // wrapper function for command vkCmdCopyMemoryIndirectKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdCopyMemoryIndirectKHR.html + void copyMemoryIndirectKHR( const CopyMemoryIndirectInfoKHR & copyMemoryIndirectInfo ) const VULKAN_HPP_NOEXCEPT; + + // wrapper function for command vkCmdCopyMemoryToImageIndirectKHR, see + // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdCopyMemoryToImageIndirectKHR.html + void copyMemoryToImageIndirectKHR( const CopyMemoryToImageIndirectInfoKHR & copyMemoryToImageIndirectInfo ) const VULKAN_HPP_NOEXCEPT; + //=== VK_NV_cluster_acceleration_structure === // wrapper function for command vkCmdBuildClusterAccelerationStructureIndirectNV, see @@ -27165,6 +27182,29 @@ namespace VULKAN_HPP_NAMESPACE reinterpret_cast( tileMemoryBindInfo.get() ) ); } + //=== VK_KHR_copy_memory_indirect === + + // wrapper function for command vkCmdCopyMemoryIndirectKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdCopyMemoryIndirectKHR.html + VULKAN_HPP_INLINE void CommandBuffer::copyMemoryIndirectKHR( const CopyMemoryIndirectInfoKHR & copyMemoryIndirectInfo ) const VULKAN_HPP_NOEXCEPT + { + VULKAN_HPP_ASSERT( getDispatcher()->vkCmdCopyMemoryIndirectKHR && "Function requires " ); + + getDispatcher()->vkCmdCopyMemoryIndirectKHR( static_cast( m_commandBuffer ), + reinterpret_cast( ©MemoryIndirectInfo ) ); + } + + // wrapper function for command vkCmdCopyMemoryToImageIndirectKHR, see + // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdCopyMemoryToImageIndirectKHR.html + VULKAN_HPP_INLINE void + CommandBuffer::copyMemoryToImageIndirectKHR( const CopyMemoryToImageIndirectInfoKHR & copyMemoryToImageIndirectInfo ) const VULKAN_HPP_NOEXCEPT + { + VULKAN_HPP_ASSERT( getDispatcher()->vkCmdCopyMemoryToImageIndirectKHR && + "Function requires " ); + + getDispatcher()->vkCmdCopyMemoryToImageIndirectKHR( static_cast( m_commandBuffer ), + reinterpret_cast( ©MemoryToImageIndirectInfo ) ); + } + //=== VK_NV_external_compute_queue === // wrapper function for command vkCreateExternalComputeQueueNV, see diff --git a/include/vulkan/vulkan_static_assertions.hpp b/include/vulkan/vulkan_static_assertions.hpp index 31f6590..f8b8203 100644 --- a/include/vulkan/vulkan_static_assertions.hpp +++ b/include/vulkan/vulkan_static_assertions.hpp @@ -6596,19 +6596,6 @@ VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible::value, "struct wrapper is not a standard layout!" ); -VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible::value, - "CopyMemoryIndirectCommandNV is not nothrow_move_constructible!" ); - -VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::CopyMemoryToImageIndirectCommandNV ) == sizeof( VkCopyMemoryToImageIndirectCommandNV ), - "struct and wrapper have different size!" ); -VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout::value, - "struct wrapper is not a standard layout!" ); -VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible::value, - "CopyMemoryToImageIndirectCommandNV is not nothrow_move_constructible!" ); - VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceCopyMemoryIndirectFeaturesNV ) == sizeof( VkPhysicalDeviceCopyMemoryIndirectFeaturesNV ), "struct and wrapper have different size!" ); VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout::value, @@ -6616,14 +6603,6 @@ VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout::value, "PhysicalDeviceCopyMemoryIndirectFeaturesNV is not nothrow_move_constructible!" ); -VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceCopyMemoryIndirectPropertiesNV ) == - sizeof( VkPhysicalDeviceCopyMemoryIndirectPropertiesNV ), - "struct and wrapper have different size!" ); -VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout::value, - "struct wrapper is not a standard layout!" ); -VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible::value, - "PhysicalDeviceCopyMemoryIndirectPropertiesNV is not nothrow_move_constructible!" ); - //=== VK_NV_memory_decompression === VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::DecompressMemoryRegionNV ) == sizeof( VkDecompressMemoryRegionNV ), @@ -8277,6 +8256,55 @@ VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout::value, "TileMemorySizeInfoQCOM is not nothrow_move_constructible!" ); +//=== VK_KHR_copy_memory_indirect === + +VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::StridedDeviceAddressRangeKHR ) == sizeof( VkStridedDeviceAddressRangeKHR ), + "struct and wrapper have different size!" ); +VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); +VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible::value, + "StridedDeviceAddressRangeKHR is not nothrow_move_constructible!" ); + +VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::CopyMemoryIndirectCommandKHR ) == sizeof( VkCopyMemoryIndirectCommandKHR ), + "struct and wrapper have different size!" ); +VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); +VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible::value, + "CopyMemoryIndirectCommandKHR is not nothrow_move_constructible!" ); + +VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::CopyMemoryIndirectInfoKHR ) == sizeof( VkCopyMemoryIndirectInfoKHR ), + "struct and wrapper have different size!" ); +VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); +VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible::value, + "CopyMemoryIndirectInfoKHR is not nothrow_move_constructible!" ); + +VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::CopyMemoryToImageIndirectCommandKHR ) == sizeof( VkCopyMemoryToImageIndirectCommandKHR ), + "struct and wrapper have different size!" ); +VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); +VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible::value, + "CopyMemoryToImageIndirectCommandKHR is not nothrow_move_constructible!" ); + +VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::CopyMemoryToImageIndirectInfoKHR ) == sizeof( VkCopyMemoryToImageIndirectInfoKHR ), + "struct and wrapper have different size!" ); +VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); +VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible::value, + "CopyMemoryToImageIndirectInfoKHR is not nothrow_move_constructible!" ); + +VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceCopyMemoryIndirectFeaturesKHR ) == + sizeof( VkPhysicalDeviceCopyMemoryIndirectFeaturesKHR ), + "struct and wrapper have different size!" ); +VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); +VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible::value, + "PhysicalDeviceCopyMemoryIndirectFeaturesKHR is not nothrow_move_constructible!" ); + +VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceCopyMemoryIndirectPropertiesKHR ) == + sizeof( VkPhysicalDeviceCopyMemoryIndirectPropertiesKHR ), + "struct and wrapper have different size!" ); +VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout::value, + "struct wrapper is not a standard layout!" ); +VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible::value, + "PhysicalDeviceCopyMemoryIndirectPropertiesKHR is not nothrow_move_constructible!" ); + //=== VK_NV_display_stereo === VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::DisplaySurfaceStereoCreateInfoNV ) == sizeof( VkDisplaySurfaceStereoCreateInfoNV ), diff --git a/include/vulkan/vulkan_structs.hpp b/include/vulkan/vulkan_structs.hpp index 2cdae4d..c196bc0 100644 --- a/include/vulkan/vulkan_structs.hpp +++ b/include/vulkan/vulkan_structs.hpp @@ -25120,74 +25120,74 @@ namespace VULKAN_HPP_NAMESPACE using CopyImageToMemoryInfoEXT = CopyImageToMemoryInfo; - // wrapper struct for struct VkCopyMemoryIndirectCommandNV, see https://registry.khronos.org/vulkan/specs/latest/man/html/VkCopyMemoryIndirectCommandNV.html - struct CopyMemoryIndirectCommandNV + // wrapper struct for struct VkCopyMemoryIndirectCommandKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/VkCopyMemoryIndirectCommandKHR.html + struct CopyMemoryIndirectCommandKHR { - using NativeType = VkCopyMemoryIndirectCommandNV; + using NativeType = VkCopyMemoryIndirectCommandKHR; #if !defined( VULKAN_HPP_NO_CONSTRUCTORS ) && !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) VULKAN_HPP_CONSTEXPR - CopyMemoryIndirectCommandNV( DeviceAddress srcAddress_ = {}, DeviceAddress dstAddress_ = {}, DeviceSize size_ = {} ) VULKAN_HPP_NOEXCEPT + CopyMemoryIndirectCommandKHR( DeviceAddress srcAddress_ = {}, DeviceAddress dstAddress_ = {}, DeviceSize size_ = {} ) VULKAN_HPP_NOEXCEPT : srcAddress{ srcAddress_ } , dstAddress{ dstAddress_ } , size{ size_ } { } - VULKAN_HPP_CONSTEXPR CopyMemoryIndirectCommandNV( CopyMemoryIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; + VULKAN_HPP_CONSTEXPR CopyMemoryIndirectCommandKHR( CopyMemoryIndirectCommandKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - CopyMemoryIndirectCommandNV( VkCopyMemoryIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT - : CopyMemoryIndirectCommandNV( *reinterpret_cast( &rhs ) ) + CopyMemoryIndirectCommandKHR( VkCopyMemoryIndirectCommandKHR const & rhs ) VULKAN_HPP_NOEXCEPT + : CopyMemoryIndirectCommandKHR( *reinterpret_cast( &rhs ) ) { } - CopyMemoryIndirectCommandNV & operator=( CopyMemoryIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; + CopyMemoryIndirectCommandKHR & operator=( CopyMemoryIndirectCommandKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; #endif /*VULKAN_HPP_NO_CONSTRUCTORS*/ - CopyMemoryIndirectCommandNV & operator=( VkCopyMemoryIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT + CopyMemoryIndirectCommandKHR & operator=( VkCopyMemoryIndirectCommandKHR const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast( &rhs ); + *this = *reinterpret_cast( &rhs ); return *this; } #if !defined( VULKAN_HPP_NO_SETTERS ) && !defined( VULKAN_HPP_NO_STRUCT_SETTERS ) - VULKAN_HPP_CONSTEXPR_14 CopyMemoryIndirectCommandNV & setSrcAddress( DeviceAddress srcAddress_ ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 CopyMemoryIndirectCommandKHR & setSrcAddress( DeviceAddress srcAddress_ ) VULKAN_HPP_NOEXCEPT { srcAddress = srcAddress_; return *this; } - VULKAN_HPP_CONSTEXPR_14 CopyMemoryIndirectCommandNV & setDstAddress( DeviceAddress dstAddress_ ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 CopyMemoryIndirectCommandKHR & setDstAddress( DeviceAddress dstAddress_ ) VULKAN_HPP_NOEXCEPT { dstAddress = dstAddress_; return *this; } - VULKAN_HPP_CONSTEXPR_14 CopyMemoryIndirectCommandNV & setSize( DeviceSize size_ ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 CopyMemoryIndirectCommandKHR & setSize( DeviceSize size_ ) VULKAN_HPP_NOEXCEPT { size = size_; return *this; } #endif /*VULKAN_HPP_NO_SETTERS*/ - operator VkCopyMemoryIndirectCommandNV const &() const VULKAN_HPP_NOEXCEPT + operator VkCopyMemoryIndirectCommandKHR const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkCopyMemoryIndirectCommandNV &() VULKAN_HPP_NOEXCEPT + operator VkCopyMemoryIndirectCommandKHR &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkCopyMemoryIndirectCommandNV const *() const VULKAN_HPP_NOEXCEPT + operator VkCopyMemoryIndirectCommandKHR const *() const VULKAN_HPP_NOEXCEPT { - return reinterpret_cast( this ); + return reinterpret_cast( this ); } - operator VkCopyMemoryIndirectCommandNV *() VULKAN_HPP_NOEXCEPT + operator VkCopyMemoryIndirectCommandKHR *() VULKAN_HPP_NOEXCEPT { - return reinterpret_cast( this ); + return reinterpret_cast( this ); } #if defined( VULKAN_HPP_USE_REFLECT ) @@ -25198,9 +25198,9 @@ namespace VULKAN_HPP_NAMESPACE #endif #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) - auto operator<=>( CopyMemoryIndirectCommandNV const & ) const = default; + auto operator<=>( CopyMemoryIndirectCommandKHR const & ) const = default; #else - bool operator==( CopyMemoryIndirectCommandNV const & rhs ) const VULKAN_HPP_NOEXCEPT + bool operator==( CopyMemoryIndirectCommandKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { # if defined( VULKAN_HPP_USE_REFLECT ) return this->reflect() == rhs.reflect(); @@ -25209,7 +25209,7 @@ namespace VULKAN_HPP_NAMESPACE # endif } - bool operator!=( CopyMemoryIndirectCommandNV const & rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( CopyMemoryIndirectCommandKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } @@ -25223,11 +25223,265 @@ namespace VULKAN_HPP_NAMESPACE #if 20 <= VULKAN_HPP_CPP_VERSION template <> - struct CppType + struct CppType { - using Type = CopyMemoryIndirectCommandNV; + using Type = CopyMemoryIndirectCommandKHR; }; #endif + using CopyMemoryIndirectCommandNV = CopyMemoryIndirectCommandKHR; + + // wrapper struct for struct VkStridedDeviceAddressRangeKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/VkStridedDeviceAddressRangeKHR.html + struct StridedDeviceAddressRangeKHR + { + using NativeType = VkStridedDeviceAddressRangeKHR; + +#if !defined( VULKAN_HPP_NO_CONSTRUCTORS ) && !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR StridedDeviceAddressRangeKHR( DeviceAddress address_ = {}, DeviceSize size_ = {}, DeviceSize stride_ = {} ) VULKAN_HPP_NOEXCEPT + : address{ address_ } + , size{ size_ } + , stride{ stride_ } + { + } + + VULKAN_HPP_CONSTEXPR StridedDeviceAddressRangeKHR( StridedDeviceAddressRangeKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + StridedDeviceAddressRangeKHR( VkStridedDeviceAddressRangeKHR const & rhs ) VULKAN_HPP_NOEXCEPT + : StridedDeviceAddressRangeKHR( *reinterpret_cast( &rhs ) ) + { + } + + StridedDeviceAddressRangeKHR & operator=( StridedDeviceAddressRangeKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; +#endif /*VULKAN_HPP_NO_CONSTRUCTORS*/ + + StridedDeviceAddressRangeKHR & operator=( VkStridedDeviceAddressRangeKHR const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + +#if !defined( VULKAN_HPP_NO_SETTERS ) && !defined( VULKAN_HPP_NO_STRUCT_SETTERS ) + VULKAN_HPP_CONSTEXPR_14 StridedDeviceAddressRangeKHR & setAddress( DeviceAddress address_ ) VULKAN_HPP_NOEXCEPT + { + address = address_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 StridedDeviceAddressRangeKHR & setSize( DeviceSize size_ ) VULKAN_HPP_NOEXCEPT + { + size = size_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 StridedDeviceAddressRangeKHR & setStride( DeviceSize stride_ ) VULKAN_HPP_NOEXCEPT + { + stride = stride_; + return *this; + } +#endif /*VULKAN_HPP_NO_SETTERS*/ + + operator VkStridedDeviceAddressRangeKHR const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkStridedDeviceAddressRangeKHR &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkStridedDeviceAddressRangeKHR const *() const VULKAN_HPP_NOEXCEPT + { + return reinterpret_cast( this ); + } + + operator VkStridedDeviceAddressRangeKHR *() VULKAN_HPP_NOEXCEPT + { + return reinterpret_cast( this ); + } + +#if defined( VULKAN_HPP_USE_REFLECT ) + std::tuple reflect() const VULKAN_HPP_NOEXCEPT + { + return std::tie( address, size, stride ); + } +#endif + +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( StridedDeviceAddressRangeKHR const & ) const = default; +#else + bool operator==( StridedDeviceAddressRangeKHR const & rhs ) const VULKAN_HPP_NOEXCEPT + { +# if defined( VULKAN_HPP_USE_REFLECT ) + return this->reflect() == rhs.reflect(); +# else + return ( address == rhs.address ) && ( size == rhs.size ) && ( stride == rhs.stride ); +# endif + } + + bool operator!=( StridedDeviceAddressRangeKHR const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + DeviceAddress address = {}; + DeviceSize size = {}; + DeviceSize stride = {}; + }; + +#if 20 <= VULKAN_HPP_CPP_VERSION + template <> + struct CppType + { + using Type = StridedDeviceAddressRangeKHR; + }; +#endif + + // wrapper struct for struct VkCopyMemoryIndirectInfoKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/VkCopyMemoryIndirectInfoKHR.html + struct CopyMemoryIndirectInfoKHR + { + using NativeType = VkCopyMemoryIndirectInfoKHR; + + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCopyMemoryIndirectInfoKHR; + +#if !defined( VULKAN_HPP_NO_CONSTRUCTORS ) && !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR CopyMemoryIndirectInfoKHR( AddressCopyFlagsKHR srcCopyFlags_ = {}, + AddressCopyFlagsKHR dstCopyFlags_ = {}, + uint32_t copyCount_ = {}, + StridedDeviceAddressRangeKHR copyAddressRange_ = {}, + const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT + : pNext{ pNext_ } + , srcCopyFlags{ srcCopyFlags_ } + , dstCopyFlags{ dstCopyFlags_ } + , copyCount{ copyCount_ } + , copyAddressRange{ copyAddressRange_ } + { + } + + VULKAN_HPP_CONSTEXPR CopyMemoryIndirectInfoKHR( CopyMemoryIndirectInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + CopyMemoryIndirectInfoKHR( VkCopyMemoryIndirectInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT + : CopyMemoryIndirectInfoKHR( *reinterpret_cast( &rhs ) ) + { + } + + CopyMemoryIndirectInfoKHR & operator=( CopyMemoryIndirectInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; +#endif /*VULKAN_HPP_NO_CONSTRUCTORS*/ + + CopyMemoryIndirectInfoKHR & operator=( VkCopyMemoryIndirectInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + +#if !defined( VULKAN_HPP_NO_SETTERS ) && !defined( VULKAN_HPP_NO_STRUCT_SETTERS ) + VULKAN_HPP_CONSTEXPR_14 CopyMemoryIndirectInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 CopyMemoryIndirectInfoKHR & setSrcCopyFlags( AddressCopyFlagsKHR srcCopyFlags_ ) VULKAN_HPP_NOEXCEPT + { + srcCopyFlags = srcCopyFlags_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 CopyMemoryIndirectInfoKHR & setDstCopyFlags( AddressCopyFlagsKHR dstCopyFlags_ ) VULKAN_HPP_NOEXCEPT + { + dstCopyFlags = dstCopyFlags_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 CopyMemoryIndirectInfoKHR & setCopyCount( uint32_t copyCount_ ) VULKAN_HPP_NOEXCEPT + { + copyCount = copyCount_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 CopyMemoryIndirectInfoKHR & setCopyAddressRange( StridedDeviceAddressRangeKHR const & copyAddressRange_ ) VULKAN_HPP_NOEXCEPT + { + copyAddressRange = copyAddressRange_; + return *this; + } +#endif /*VULKAN_HPP_NO_SETTERS*/ + + operator VkCopyMemoryIndirectInfoKHR const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkCopyMemoryIndirectInfoKHR &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkCopyMemoryIndirectInfoKHR const *() const VULKAN_HPP_NOEXCEPT + { + return reinterpret_cast( this ); + } + + operator VkCopyMemoryIndirectInfoKHR *() VULKAN_HPP_NOEXCEPT + { + return reinterpret_cast( this ); + } + +#if defined( VULKAN_HPP_USE_REFLECT ) + std::tuple + reflect() const VULKAN_HPP_NOEXCEPT + { + return std::tie( sType, pNext, srcCopyFlags, dstCopyFlags, copyCount, copyAddressRange ); + } +#endif + +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( CopyMemoryIndirectInfoKHR const & ) const = default; +#else + bool operator==( CopyMemoryIndirectInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT + { +# if defined( VULKAN_HPP_USE_REFLECT ) + return this->reflect() == rhs.reflect(); +# else + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( srcCopyFlags == rhs.srcCopyFlags ) && ( dstCopyFlags == rhs.dstCopyFlags ) && + ( copyCount == rhs.copyCount ) && ( copyAddressRange == rhs.copyAddressRange ); +# endif + } + + bool operator!=( CopyMemoryIndirectInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + StructureType sType = StructureType::eCopyMemoryIndirectInfoKHR; + const void * pNext = {}; + AddressCopyFlagsKHR srcCopyFlags = {}; + AddressCopyFlagsKHR dstCopyFlags = {}; + uint32_t copyCount = {}; + StridedDeviceAddressRangeKHR copyAddressRange = {}; + }; + +#if 20 <= VULKAN_HPP_CPP_VERSION + template <> + struct CppType + { + using Type = CopyMemoryIndirectInfoKHR; + }; +#endif + + template <> + struct CppType + { + using Type = CopyMemoryIndirectInfoKHR; + }; // wrapper struct for struct VkCopyMemoryToAccelerationStructureInfoKHR, see // https://registry.khronos.org/vulkan/specs/latest/man/html/VkCopyMemoryToAccelerationStructureInfoKHR.html @@ -25346,19 +25600,19 @@ namespace VULKAN_HPP_NAMESPACE using Type = CopyMemoryToAccelerationStructureInfoKHR; }; - // wrapper struct for struct VkCopyMemoryToImageIndirectCommandNV, see - // https://registry.khronos.org/vulkan/specs/latest/man/html/VkCopyMemoryToImageIndirectCommandNV.html - struct CopyMemoryToImageIndirectCommandNV + // wrapper struct for struct VkCopyMemoryToImageIndirectCommandKHR, see + // https://registry.khronos.org/vulkan/specs/latest/man/html/VkCopyMemoryToImageIndirectCommandKHR.html + struct CopyMemoryToImageIndirectCommandKHR { - using NativeType = VkCopyMemoryToImageIndirectCommandNV; + using NativeType = VkCopyMemoryToImageIndirectCommandKHR; #if !defined( VULKAN_HPP_NO_CONSTRUCTORS ) && !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR CopyMemoryToImageIndirectCommandNV( DeviceAddress srcAddress_ = {}, - uint32_t bufferRowLength_ = {}, - uint32_t bufferImageHeight_ = {}, - ImageSubresourceLayers imageSubresource_ = {}, - Offset3D imageOffset_ = {}, - Extent3D imageExtent_ = {} ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR CopyMemoryToImageIndirectCommandKHR( DeviceAddress srcAddress_ = {}, + uint32_t bufferRowLength_ = {}, + uint32_t bufferImageHeight_ = {}, + ImageSubresourceLayers imageSubresource_ = {}, + Offset3D imageOffset_ = {}, + Extent3D imageExtent_ = {} ) VULKAN_HPP_NOEXCEPT : srcAddress{ srcAddress_ } , bufferRowLength{ bufferRowLength_ } , bufferImageHeight{ bufferImageHeight_ } @@ -25368,78 +25622,78 @@ namespace VULKAN_HPP_NAMESPACE { } - VULKAN_HPP_CONSTEXPR CopyMemoryToImageIndirectCommandNV( CopyMemoryToImageIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; + VULKAN_HPP_CONSTEXPR CopyMemoryToImageIndirectCommandKHR( CopyMemoryToImageIndirectCommandKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - CopyMemoryToImageIndirectCommandNV( VkCopyMemoryToImageIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT - : CopyMemoryToImageIndirectCommandNV( *reinterpret_cast( &rhs ) ) + CopyMemoryToImageIndirectCommandKHR( VkCopyMemoryToImageIndirectCommandKHR const & rhs ) VULKAN_HPP_NOEXCEPT + : CopyMemoryToImageIndirectCommandKHR( *reinterpret_cast( &rhs ) ) { } - CopyMemoryToImageIndirectCommandNV & operator=( CopyMemoryToImageIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; + CopyMemoryToImageIndirectCommandKHR & operator=( CopyMemoryToImageIndirectCommandKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; #endif /*VULKAN_HPP_NO_CONSTRUCTORS*/ - CopyMemoryToImageIndirectCommandNV & operator=( VkCopyMemoryToImageIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT + CopyMemoryToImageIndirectCommandKHR & operator=( VkCopyMemoryToImageIndirectCommandKHR const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast( &rhs ); + *this = *reinterpret_cast( &rhs ); return *this; } #if !defined( VULKAN_HPP_NO_SETTERS ) && !defined( VULKAN_HPP_NO_STRUCT_SETTERS ) - VULKAN_HPP_CONSTEXPR_14 CopyMemoryToImageIndirectCommandNV & setSrcAddress( DeviceAddress srcAddress_ ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 CopyMemoryToImageIndirectCommandKHR & setSrcAddress( DeviceAddress srcAddress_ ) VULKAN_HPP_NOEXCEPT { srcAddress = srcAddress_; return *this; } - VULKAN_HPP_CONSTEXPR_14 CopyMemoryToImageIndirectCommandNV & setBufferRowLength( uint32_t bufferRowLength_ ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 CopyMemoryToImageIndirectCommandKHR & setBufferRowLength( uint32_t bufferRowLength_ ) VULKAN_HPP_NOEXCEPT { bufferRowLength = bufferRowLength_; return *this; } - VULKAN_HPP_CONSTEXPR_14 CopyMemoryToImageIndirectCommandNV & setBufferImageHeight( uint32_t bufferImageHeight_ ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 CopyMemoryToImageIndirectCommandKHR & setBufferImageHeight( uint32_t bufferImageHeight_ ) VULKAN_HPP_NOEXCEPT { bufferImageHeight = bufferImageHeight_; return *this; } - VULKAN_HPP_CONSTEXPR_14 CopyMemoryToImageIndirectCommandNV & setImageSubresource( ImageSubresourceLayers const & imageSubresource_ ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 CopyMemoryToImageIndirectCommandKHR & setImageSubresource( ImageSubresourceLayers const & imageSubresource_ ) VULKAN_HPP_NOEXCEPT { imageSubresource = imageSubresource_; return *this; } - VULKAN_HPP_CONSTEXPR_14 CopyMemoryToImageIndirectCommandNV & setImageOffset( Offset3D const & imageOffset_ ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 CopyMemoryToImageIndirectCommandKHR & setImageOffset( Offset3D const & imageOffset_ ) VULKAN_HPP_NOEXCEPT { imageOffset = imageOffset_; return *this; } - VULKAN_HPP_CONSTEXPR_14 CopyMemoryToImageIndirectCommandNV & setImageExtent( Extent3D const & imageExtent_ ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR_14 CopyMemoryToImageIndirectCommandKHR & setImageExtent( Extent3D const & imageExtent_ ) VULKAN_HPP_NOEXCEPT { imageExtent = imageExtent_; return *this; } #endif /*VULKAN_HPP_NO_SETTERS*/ - operator VkCopyMemoryToImageIndirectCommandNV const &() const VULKAN_HPP_NOEXCEPT + operator VkCopyMemoryToImageIndirectCommandKHR const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkCopyMemoryToImageIndirectCommandNV &() VULKAN_HPP_NOEXCEPT + operator VkCopyMemoryToImageIndirectCommandKHR &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkCopyMemoryToImageIndirectCommandNV const *() const VULKAN_HPP_NOEXCEPT + operator VkCopyMemoryToImageIndirectCommandKHR const *() const VULKAN_HPP_NOEXCEPT { - return reinterpret_cast( this ); + return reinterpret_cast( this ); } - operator VkCopyMemoryToImageIndirectCommandNV *() VULKAN_HPP_NOEXCEPT + operator VkCopyMemoryToImageIndirectCommandKHR *() VULKAN_HPP_NOEXCEPT { - return reinterpret_cast( this ); + return reinterpret_cast( this ); } #if defined( VULKAN_HPP_USE_REFLECT ) @@ -25451,9 +25705,9 @@ namespace VULKAN_HPP_NAMESPACE #endif #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) - auto operator<=>( CopyMemoryToImageIndirectCommandNV const & ) const = default; + auto operator<=>( CopyMemoryToImageIndirectCommandKHR const & ) const = default; #else - bool operator==( CopyMemoryToImageIndirectCommandNV const & rhs ) const VULKAN_HPP_NOEXCEPT + bool operator==( CopyMemoryToImageIndirectCommandKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { # if defined( VULKAN_HPP_USE_REFLECT ) return this->reflect() == rhs.reflect(); @@ -25463,7 +25717,7 @@ namespace VULKAN_HPP_NAMESPACE # endif } - bool operator!=( CopyMemoryToImageIndirectCommandNV const & rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( CopyMemoryToImageIndirectCommandKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } @@ -25480,11 +25734,207 @@ namespace VULKAN_HPP_NAMESPACE #if 20 <= VULKAN_HPP_CPP_VERSION template <> - struct CppType + struct CppType { - using Type = CopyMemoryToImageIndirectCommandNV; + using Type = CopyMemoryToImageIndirectCommandKHR; }; #endif + using CopyMemoryToImageIndirectCommandNV = CopyMemoryToImageIndirectCommandKHR; + + // wrapper struct for struct VkCopyMemoryToImageIndirectInfoKHR, see + // https://registry.khronos.org/vulkan/specs/latest/man/html/VkCopyMemoryToImageIndirectInfoKHR.html + struct CopyMemoryToImageIndirectInfoKHR + { + using NativeType = VkCopyMemoryToImageIndirectInfoKHR; + + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCopyMemoryToImageIndirectInfoKHR; + +#if !defined( VULKAN_HPP_NO_CONSTRUCTORS ) && !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR CopyMemoryToImageIndirectInfoKHR( AddressCopyFlagsKHR srcCopyFlags_ = {}, + uint32_t copyCount_ = {}, + StridedDeviceAddressRangeKHR copyAddressRange_ = {}, + Image dstImage_ = {}, + ImageLayout dstImageLayout_ = ImageLayout::eUndefined, + const ImageSubresourceLayers * pImageSubresources_ = {}, + const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT + : pNext{ pNext_ } + , srcCopyFlags{ srcCopyFlags_ } + , copyCount{ copyCount_ } + , copyAddressRange{ copyAddressRange_ } + , dstImage{ dstImage_ } + , dstImageLayout{ dstImageLayout_ } + , pImageSubresources{ pImageSubresources_ } + { + } + + VULKAN_HPP_CONSTEXPR CopyMemoryToImageIndirectInfoKHR( CopyMemoryToImageIndirectInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + CopyMemoryToImageIndirectInfoKHR( VkCopyMemoryToImageIndirectInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT + : CopyMemoryToImageIndirectInfoKHR( *reinterpret_cast( &rhs ) ) + { + } + +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + CopyMemoryToImageIndirectInfoKHR( AddressCopyFlagsKHR srcCopyFlags_, + StridedDeviceAddressRangeKHR copyAddressRange_, + Image dstImage_, + ImageLayout dstImageLayout_, + ArrayProxyNoTemporaries const & imageSubresources_, + const void * pNext_ = nullptr ) + : pNext( pNext_ ) + , srcCopyFlags( srcCopyFlags_ ) + , copyCount( static_cast( imageSubresources_.size() ) ) + , copyAddressRange( copyAddressRange_ ) + , dstImage( dstImage_ ) + , dstImageLayout( dstImageLayout_ ) + , pImageSubresources( imageSubresources_.data() ) + { + } +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + + CopyMemoryToImageIndirectInfoKHR & operator=( CopyMemoryToImageIndirectInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; +#endif /*VULKAN_HPP_NO_CONSTRUCTORS*/ + + CopyMemoryToImageIndirectInfoKHR & operator=( VkCopyMemoryToImageIndirectInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + +#if !defined( VULKAN_HPP_NO_SETTERS ) && !defined( VULKAN_HPP_NO_STRUCT_SETTERS ) + VULKAN_HPP_CONSTEXPR_14 CopyMemoryToImageIndirectInfoKHR & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 CopyMemoryToImageIndirectInfoKHR & setSrcCopyFlags( AddressCopyFlagsKHR srcCopyFlags_ ) VULKAN_HPP_NOEXCEPT + { + srcCopyFlags = srcCopyFlags_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 CopyMemoryToImageIndirectInfoKHR & setCopyCount( uint32_t copyCount_ ) VULKAN_HPP_NOEXCEPT + { + copyCount = copyCount_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 CopyMemoryToImageIndirectInfoKHR & setCopyAddressRange( StridedDeviceAddressRangeKHR const & copyAddressRange_ ) VULKAN_HPP_NOEXCEPT + { + copyAddressRange = copyAddressRange_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 CopyMemoryToImageIndirectInfoKHR & setDstImage( Image dstImage_ ) VULKAN_HPP_NOEXCEPT + { + dstImage = dstImage_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 CopyMemoryToImageIndirectInfoKHR & setDstImageLayout( ImageLayout dstImageLayout_ ) VULKAN_HPP_NOEXCEPT + { + dstImageLayout = dstImageLayout_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 CopyMemoryToImageIndirectInfoKHR & setPImageSubresources( const ImageSubresourceLayers * pImageSubresources_ ) VULKAN_HPP_NOEXCEPT + { + pImageSubresources = pImageSubresources_; + return *this; + } + +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + CopyMemoryToImageIndirectInfoKHR & + setImageSubresources( ArrayProxyNoTemporaries const & imageSubresources_ ) VULKAN_HPP_NOEXCEPT + { + copyCount = static_cast( imageSubresources_.size() ); + pImageSubresources = imageSubresources_.data(); + return *this; + } +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VULKAN_HPP_NO_SETTERS*/ + + operator VkCopyMemoryToImageIndirectInfoKHR const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkCopyMemoryToImageIndirectInfoKHR &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkCopyMemoryToImageIndirectInfoKHR const *() const VULKAN_HPP_NOEXCEPT + { + return reinterpret_cast( this ); + } + + operator VkCopyMemoryToImageIndirectInfoKHR *() VULKAN_HPP_NOEXCEPT + { + return reinterpret_cast( this ); + } + +#if defined( VULKAN_HPP_USE_REFLECT ) + std::tuple + reflect() const VULKAN_HPP_NOEXCEPT + { + return std::tie( sType, pNext, srcCopyFlags, copyCount, copyAddressRange, dstImage, dstImageLayout, pImageSubresources ); + } +#endif + +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( CopyMemoryToImageIndirectInfoKHR const & ) const = default; +#else + bool operator==( CopyMemoryToImageIndirectInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT + { +# if defined( VULKAN_HPP_USE_REFLECT ) + return this->reflect() == rhs.reflect(); +# else + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( srcCopyFlags == rhs.srcCopyFlags ) && ( copyCount == rhs.copyCount ) && + ( copyAddressRange == rhs.copyAddressRange ) && ( dstImage == rhs.dstImage ) && ( dstImageLayout == rhs.dstImageLayout ) && + ( pImageSubresources == rhs.pImageSubresources ); +# endif + } + + bool operator!=( CopyMemoryToImageIndirectInfoKHR const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + StructureType sType = StructureType::eCopyMemoryToImageIndirectInfoKHR; + const void * pNext = {}; + AddressCopyFlagsKHR srcCopyFlags = {}; + uint32_t copyCount = {}; + StridedDeviceAddressRangeKHR copyAddressRange = {}; + Image dstImage = {}; + ImageLayout dstImageLayout = ImageLayout::eUndefined; + const ImageSubresourceLayers * pImageSubresources = {}; + }; + +#if 20 <= VULKAN_HPP_CPP_VERSION + template <> + struct CppType + { + using Type = CopyMemoryToImageIndirectInfoKHR; + }; +#endif + + template <> + struct CppType + { + using Type = CopyMemoryToImageIndirectInfoKHR; + }; // wrapper struct for struct VkMemoryToImageCopy, see https://registry.khronos.org/vulkan/specs/latest/man/html/VkMemoryToImageCopy.html struct MemoryToImageCopy @@ -79388,6 +79838,128 @@ namespace VULKAN_HPP_NAMESPACE using Type = PhysicalDeviceCooperativeVectorPropertiesNV; }; + // wrapper struct for struct VkPhysicalDeviceCopyMemoryIndirectFeaturesKHR, see + // https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceCopyMemoryIndirectFeaturesKHR.html + struct PhysicalDeviceCopyMemoryIndirectFeaturesKHR + { + using NativeType = VkPhysicalDeviceCopyMemoryIndirectFeaturesKHR; + + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceCopyMemoryIndirectFeaturesKHR; + +#if !defined( VULKAN_HPP_NO_CONSTRUCTORS ) && !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PhysicalDeviceCopyMemoryIndirectFeaturesKHR( Bool32 indirectMemoryCopy_ = {}, + Bool32 indirectMemoryToImageCopy_ = {}, + void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT + : pNext{ pNext_ } + , indirectMemoryCopy{ indirectMemoryCopy_ } + , indirectMemoryToImageCopy{ indirectMemoryToImageCopy_ } + { + } + + VULKAN_HPP_CONSTEXPR PhysicalDeviceCopyMemoryIndirectFeaturesKHR( PhysicalDeviceCopyMemoryIndirectFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceCopyMemoryIndirectFeaturesKHR( VkPhysicalDeviceCopyMemoryIndirectFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT + : PhysicalDeviceCopyMemoryIndirectFeaturesKHR( *reinterpret_cast( &rhs ) ) + { + } + + PhysicalDeviceCopyMemoryIndirectFeaturesKHR & operator=( PhysicalDeviceCopyMemoryIndirectFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; +#endif /*VULKAN_HPP_NO_CONSTRUCTORS*/ + + PhysicalDeviceCopyMemoryIndirectFeaturesKHR & operator=( VkPhysicalDeviceCopyMemoryIndirectFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT + { + *this = *reinterpret_cast( &rhs ); + return *this; + } + +#if !defined( VULKAN_HPP_NO_SETTERS ) && !defined( VULKAN_HPP_NO_STRUCT_SETTERS ) + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceCopyMemoryIndirectFeaturesKHR & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceCopyMemoryIndirectFeaturesKHR & setIndirectMemoryCopy( Bool32 indirectMemoryCopy_ ) VULKAN_HPP_NOEXCEPT + { + indirectMemoryCopy = indirectMemoryCopy_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceCopyMemoryIndirectFeaturesKHR & setIndirectMemoryToImageCopy( Bool32 indirectMemoryToImageCopy_ ) VULKAN_HPP_NOEXCEPT + { + indirectMemoryToImageCopy = indirectMemoryToImageCopy_; + return *this; + } +#endif /*VULKAN_HPP_NO_SETTERS*/ + + operator VkPhysicalDeviceCopyMemoryIndirectFeaturesKHR const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkPhysicalDeviceCopyMemoryIndirectFeaturesKHR &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkPhysicalDeviceCopyMemoryIndirectFeaturesKHR const *() const VULKAN_HPP_NOEXCEPT + { + return reinterpret_cast( this ); + } + + operator VkPhysicalDeviceCopyMemoryIndirectFeaturesKHR *() VULKAN_HPP_NOEXCEPT + { + return reinterpret_cast( this ); + } + +#if defined( VULKAN_HPP_USE_REFLECT ) + std::tuple reflect() const VULKAN_HPP_NOEXCEPT + { + return std::tie( sType, pNext, indirectMemoryCopy, indirectMemoryToImageCopy ); + } +#endif + +#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceCopyMemoryIndirectFeaturesKHR const & ) const = default; +#else + bool operator==( PhysicalDeviceCopyMemoryIndirectFeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT + { +# if defined( VULKAN_HPP_USE_REFLECT ) + return this->reflect() == rhs.reflect(); +# else + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( indirectMemoryCopy == rhs.indirectMemoryCopy ) && + ( indirectMemoryToImageCopy == rhs.indirectMemoryToImageCopy ); +# endif + } + + bool operator!=( PhysicalDeviceCopyMemoryIndirectFeaturesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +#endif + + public: + StructureType sType = StructureType::ePhysicalDeviceCopyMemoryIndirectFeaturesKHR; + void * pNext = {}; + Bool32 indirectMemoryCopy = {}; + Bool32 indirectMemoryToImageCopy = {}; + }; + +#if 20 <= VULKAN_HPP_CPP_VERSION + template <> + struct CppType + { + using Type = PhysicalDeviceCopyMemoryIndirectFeaturesKHR; + }; +#endif + + template <> + struct CppType + { + using Type = PhysicalDeviceCopyMemoryIndirectFeaturesKHR; + }; + // wrapper struct for struct VkPhysicalDeviceCopyMemoryIndirectFeaturesNV, see // https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceCopyMemoryIndirectFeaturesNV.html struct PhysicalDeviceCopyMemoryIndirectFeaturesNV @@ -79499,56 +80071,57 @@ namespace VULKAN_HPP_NAMESPACE using Type = PhysicalDeviceCopyMemoryIndirectFeaturesNV; }; - // wrapper struct for struct VkPhysicalDeviceCopyMemoryIndirectPropertiesNV, see - // https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceCopyMemoryIndirectPropertiesNV.html - struct PhysicalDeviceCopyMemoryIndirectPropertiesNV + // wrapper struct for struct VkPhysicalDeviceCopyMemoryIndirectPropertiesKHR, see + // https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceCopyMemoryIndirectPropertiesKHR.html + struct PhysicalDeviceCopyMemoryIndirectPropertiesKHR { - using NativeType = VkPhysicalDeviceCopyMemoryIndirectPropertiesNV; + using NativeType = VkPhysicalDeviceCopyMemoryIndirectPropertiesKHR; static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceCopyMemoryIndirectPropertiesNV; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceCopyMemoryIndirectPropertiesKHR; #if !defined( VULKAN_HPP_NO_CONSTRUCTORS ) && !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceCopyMemoryIndirectPropertiesNV( QueueFlags supportedQueues_ = {}, void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR PhysicalDeviceCopyMemoryIndirectPropertiesKHR( QueueFlags supportedQueues_ = {}, void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT : pNext{ pNext_ } , supportedQueues{ supportedQueues_ } { } - VULKAN_HPP_CONSTEXPR PhysicalDeviceCopyMemoryIndirectPropertiesNV( PhysicalDeviceCopyMemoryIndirectPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; + VULKAN_HPP_CONSTEXPR + PhysicalDeviceCopyMemoryIndirectPropertiesKHR( PhysicalDeviceCopyMemoryIndirectPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - PhysicalDeviceCopyMemoryIndirectPropertiesNV( VkPhysicalDeviceCopyMemoryIndirectPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT - : PhysicalDeviceCopyMemoryIndirectPropertiesNV( *reinterpret_cast( &rhs ) ) + PhysicalDeviceCopyMemoryIndirectPropertiesKHR( VkPhysicalDeviceCopyMemoryIndirectPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT + : PhysicalDeviceCopyMemoryIndirectPropertiesKHR( *reinterpret_cast( &rhs ) ) { } - PhysicalDeviceCopyMemoryIndirectPropertiesNV & operator=( PhysicalDeviceCopyMemoryIndirectPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; + PhysicalDeviceCopyMemoryIndirectPropertiesKHR & operator=( PhysicalDeviceCopyMemoryIndirectPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; #endif /*VULKAN_HPP_NO_CONSTRUCTORS*/ - PhysicalDeviceCopyMemoryIndirectPropertiesNV & operator=( VkPhysicalDeviceCopyMemoryIndirectPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT + PhysicalDeviceCopyMemoryIndirectPropertiesKHR & operator=( VkPhysicalDeviceCopyMemoryIndirectPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast( &rhs ); + *this = *reinterpret_cast( &rhs ); return *this; } - operator VkPhysicalDeviceCopyMemoryIndirectPropertiesNV const &() const VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceCopyMemoryIndirectPropertiesKHR const &() const VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkPhysicalDeviceCopyMemoryIndirectPropertiesNV &() VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceCopyMemoryIndirectPropertiesKHR &() VULKAN_HPP_NOEXCEPT { - return *reinterpret_cast( this ); + return *reinterpret_cast( this ); } - operator VkPhysicalDeviceCopyMemoryIndirectPropertiesNV const *() const VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceCopyMemoryIndirectPropertiesKHR const *() const VULKAN_HPP_NOEXCEPT { - return reinterpret_cast( this ); + return reinterpret_cast( this ); } - operator VkPhysicalDeviceCopyMemoryIndirectPropertiesNV *() VULKAN_HPP_NOEXCEPT + operator VkPhysicalDeviceCopyMemoryIndirectPropertiesKHR *() VULKAN_HPP_NOEXCEPT { - return reinterpret_cast( this ); + return reinterpret_cast( this ); } #if defined( VULKAN_HPP_USE_REFLECT ) @@ -79559,9 +80132,9 @@ namespace VULKAN_HPP_NAMESPACE #endif #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) - auto operator<=>( PhysicalDeviceCopyMemoryIndirectPropertiesNV const & ) const = default; + auto operator<=>( PhysicalDeviceCopyMemoryIndirectPropertiesKHR const & ) const = default; #else - bool operator==( PhysicalDeviceCopyMemoryIndirectPropertiesNV const & rhs ) const VULKAN_HPP_NOEXCEPT + bool operator==( PhysicalDeviceCopyMemoryIndirectPropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { # if defined( VULKAN_HPP_USE_REFLECT ) return this->reflect() == rhs.reflect(); @@ -79570,32 +80143,34 @@ namespace VULKAN_HPP_NAMESPACE # endif } - bool operator!=( PhysicalDeviceCopyMemoryIndirectPropertiesNV const & rhs ) const VULKAN_HPP_NOEXCEPT + bool operator!=( PhysicalDeviceCopyMemoryIndirectPropertiesKHR const & rhs ) const VULKAN_HPP_NOEXCEPT { return !operator==( rhs ); } #endif public: - StructureType sType = StructureType::ePhysicalDeviceCopyMemoryIndirectPropertiesNV; + StructureType sType = StructureType::ePhysicalDeviceCopyMemoryIndirectPropertiesKHR; void * pNext = {}; QueueFlags supportedQueues = {}; }; #if 20 <= VULKAN_HPP_CPP_VERSION template <> - struct CppType + struct CppType { - using Type = PhysicalDeviceCopyMemoryIndirectPropertiesNV; + using Type = PhysicalDeviceCopyMemoryIndirectPropertiesKHR; }; #endif template <> - struct CppType + struct CppType { - using Type = PhysicalDeviceCopyMemoryIndirectPropertiesNV; + using Type = PhysicalDeviceCopyMemoryIndirectPropertiesKHR; }; + using PhysicalDeviceCopyMemoryIndirectPropertiesNV = PhysicalDeviceCopyMemoryIndirectPropertiesKHR; + // wrapper struct for struct VkPhysicalDeviceCornerSampledImageFeaturesNV, see // https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceCornerSampledImageFeaturesNV.html struct PhysicalDeviceCornerSampledImageFeaturesNV diff --git a/include/vulkan/vulkan_to_string.hpp b/include/vulkan/vulkan_to_string.hpp index 4f1c8f3..66bcefa 100644 --- a/include/vulkan/vulkan_to_string.hpp +++ b/include/vulkan/vulkan_to_string.hpp @@ -1742,6 +1742,8 @@ namespace VULKAN_HPP_NAMESPACE result += " ConvertCooperativeVectorMatrixNV |"; if ( value & PipelineStageFlagBits2::eDataGraphARM ) result += " DataGraphARM |"; + if ( value & PipelineStageFlagBits2::eCopyIndirectKHR ) + result += " CopyIndirectKHR |"; if ( result.size() > 1 ) result.back() = '}'; @@ -1986,6 +1988,8 @@ namespace VULKAN_HPP_NAMESPACE result += " OpticalFlowCostNV |"; if ( value & FormatFeatureFlagBits2::eTensorDataGraphARM ) result += " TensorDataGraphARM |"; + if ( value & FormatFeatureFlagBits2::eCopyImageIndirectDstKHR ) + result += " CopyImageIndirectDstKHR |"; if ( value & FormatFeatureFlagBits2::eVideoEncodeQuantizationDeltaMapKHR ) result += " VideoEncodeQuantizationDeltaMapKHR |"; if ( value & FormatFeatureFlagBits2::eVideoEncodeEmphasisMapKHR ) @@ -4026,6 +4030,25 @@ namespace VULKAN_HPP_NAMESPACE return result; } + //=== VK_KHR_copy_memory_indirect === + + VULKAN_HPP_INLINE std::string to_string( AddressCopyFlagsKHR value ) + { + std::string result = "{"; + if ( value & AddressCopyFlagBitsKHR::eDeviceLocal ) + result += " DeviceLocal |"; + if ( value & AddressCopyFlagBitsKHR::eSparse ) + result += " Sparse |"; + if ( value & AddressCopyFlagBitsKHR::eProtected ) + result += " Protected |"; + + if ( result.size() > 1 ) + result.back() = '}'; + else + result = "{}"; + return result; + } + //=== VK_KHR_video_encode_intra_refresh === VULKAN_HPP_INLINE std::string to_string( VideoEncodeIntraRefreshModeFlagsKHR value ) @@ -5111,7 +5134,6 @@ namespace VULKAN_HPP_NAMESPACE case StructureType::eRenderPassStripeInfoARM : return "RenderPassStripeInfoARM"; case StructureType::eRenderPassStripeSubmitInfoARM : return "RenderPassStripeSubmitInfoARM"; case StructureType::ePhysicalDeviceCopyMemoryIndirectFeaturesNV : return "PhysicalDeviceCopyMemoryIndirectFeaturesNV"; - case StructureType::ePhysicalDeviceCopyMemoryIndirectPropertiesNV : return "PhysicalDeviceCopyMemoryIndirectPropertiesNV"; case StructureType::ePhysicalDeviceMemoryDecompressionFeaturesNV : return "PhysicalDeviceMemoryDecompressionFeaturesNV"; case StructureType::ePhysicalDeviceMemoryDecompressionPropertiesNV : return "PhysicalDeviceMemoryDecompressionPropertiesNV"; case StructureType::ePhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV : return "PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV"; @@ -5325,6 +5347,10 @@ namespace VULKAN_HPP_NAMESPACE case StructureType::eTileMemoryRequirementsQCOM : return "TileMemoryRequirementsQCOM"; case StructureType::eTileMemoryBindInfoQCOM : return "TileMemoryBindInfoQCOM"; case StructureType::eTileMemorySizeInfoQCOM : return "TileMemorySizeInfoQCOM"; + case StructureType::ePhysicalDeviceCopyMemoryIndirectFeaturesKHR : return "PhysicalDeviceCopyMemoryIndirectFeaturesKHR"; + case StructureType::ePhysicalDeviceCopyMemoryIndirectPropertiesKHR : return "PhysicalDeviceCopyMemoryIndirectPropertiesKHR"; + case StructureType::eCopyMemoryIndirectInfoKHR : return "CopyMemoryIndirectInfoKHR"; + case StructureType::eCopyMemoryToImageIndirectInfoKHR : return "CopyMemoryToImageIndirectInfoKHR"; case StructureType::eDisplaySurfaceStereoCreateInfoNV : return "DisplaySurfaceStereoCreateInfoNV"; case StructureType::eDisplayModeStereoPropertiesNV : return "DisplayModeStereoPropertiesNV"; case StructureType::eVideoEncodeIntraRefreshCapabilitiesKHR : return "VideoEncodeIntraRefreshCapabilitiesKHR"; @@ -7590,6 +7616,7 @@ namespace VULKAN_HPP_NAMESPACE case PipelineStageFlagBits2::eOpticalFlowNV : return "OpticalFlowNV"; case PipelineStageFlagBits2::eConvertCooperativeVectorMatrixNV: return "ConvertCooperativeVectorMatrixNV"; case PipelineStageFlagBits2::eDataGraphARM : return "DataGraphARM"; + case PipelineStageFlagBits2::eCopyIndirectKHR : return "CopyIndirectKHR"; default : return "invalid ( " + toHexString( static_cast( value ) ) + " )"; } } @@ -7724,6 +7751,7 @@ namespace VULKAN_HPP_NAMESPACE case FormatFeatureFlagBits2::eOpticalFlowVectorNV : return "OpticalFlowVectorNV"; case FormatFeatureFlagBits2::eOpticalFlowCostNV : return "OpticalFlowCostNV"; case FormatFeatureFlagBits2::eTensorDataGraphARM : return "TensorDataGraphARM"; + case FormatFeatureFlagBits2::eCopyImageIndirectDstKHR : return "CopyImageIndirectDstKHR"; case FormatFeatureFlagBits2::eVideoEncodeQuantizationDeltaMapKHR : return "VideoEncodeQuantizationDeltaMapKHR"; case FormatFeatureFlagBits2::eVideoEncodeEmphasisMapKHR : return "VideoEncodeEmphasisMapKHR"; default : return "invalid ( " + toHexString( static_cast( value ) ) + " )"; @@ -10359,6 +10387,19 @@ namespace VULKAN_HPP_NAMESPACE } } + //=== VK_KHR_copy_memory_indirect === + + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR_20 std::string to_string( AddressCopyFlagBitsKHR value ) + { + switch ( value ) + { + case AddressCopyFlagBitsKHR::eDeviceLocal: return "DeviceLocal"; + case AddressCopyFlagBitsKHR::eSparse : return "Sparse"; + case AddressCopyFlagBitsKHR::eProtected : return "Protected"; + default : return "invalid ( " + toHexString( static_cast( value ) ) + " )"; + } + } + //=== VK_NV_display_stereo === VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR_20 std::string to_string( DisplaySurfaceStereoTypeNV value ) diff --git a/registry/validusage.json b/registry/validusage.json index ca729eb..d7e1cf0 100644 --- a/registry/validusage.json +++ b/registry/validusage.json @@ -1,9 +1,9 @@ { "version info": { "schema version": 2, - "api version": "1.4.327", - "comment": "from git branch: github-main commit: ca418640d46475ae2d297dc1631c82ce3819eee4", - "date": "2025-09-19 13:11:46Z" + "api version": "1.4.328", + "comment": "from git branch: github-main commit: d38733398a4bec673bd5d24c904d4739a45f020d", + "date": "2025-09-25 20:46:38Z" }, "validation": { "VkDeviceAddress": { @@ -20,6 +20,30 @@ } ] }, + "VkStridedDeviceAddressRangeKHR": { + "core": [ + { + "vuid": "VUID-VkStridedDeviceAddressRangeKHR-stride-10957", + "text": "stride must be less than or equal to size", + "page": "chapters/fundamentals.html" + }, + { + "vuid": "VUID-VkStridedDeviceAddressRangeKHR-address-11365", + "text": "The sum of address and size must be less than or equal to the sum of an address retrieved from a VkBuffer and the value of VkBufferCreateInfo::size used to create that VkBuffer", + "page": "chapters/fundamentals.html" + }, + { + "vuid": "VUID-VkStridedDeviceAddressRangeKHR-size-11366", + "text": "If size is not 0 and the buffer from which address was queried is non-sparse, then the buffer must be bound completely and contiguously to a single VkDeviceMemory object", + "page": "chapters/fundamentals.html" + }, + { + "vuid": "VUID-VkStridedDeviceAddressRangeKHR-address-parameter", + "text": "address must be a valid VkDeviceAddress value", + "page": "chapters/fundamentals.html" + } + ] + }, "vkGetInstanceProcAddr": { "core": [ { @@ -393,7 +417,7 @@ }, { "vuid": "VUID-VkPhysicalDeviceProperties2-pNext-pNext", - "text": "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 VkPhysicalDeviceAccelerationStructurePropertiesKHR, VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, VkPhysicalDeviceClusterAccelerationStructurePropertiesNV, VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI, VkPhysicalDeviceComputeShaderDerivativesPropertiesKHR, VkPhysicalDeviceConservativeRasterizationPropertiesEXT, VkPhysicalDeviceCooperativeMatrix2PropertiesNV, VkPhysicalDeviceCooperativeMatrixPropertiesKHR, VkPhysicalDeviceCooperativeMatrixPropertiesNV, VkPhysicalDeviceCooperativeVectorPropertiesNV, VkPhysicalDeviceCopyMemoryIndirectPropertiesNV, VkPhysicalDeviceCudaKernelLaunchPropertiesNV, VkPhysicalDeviceCustomBorderColorPropertiesEXT, VkPhysicalDeviceDepthStencilResolveProperties, VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT, VkPhysicalDeviceDescriptorBufferPropertiesEXT, VkPhysicalDeviceDescriptorBufferTensorPropertiesARM, VkPhysicalDeviceDescriptorIndexingProperties, VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT, VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV, VkPhysicalDeviceDiscardRectanglePropertiesEXT, VkPhysicalDeviceDisplacementMicromapPropertiesNV, VkPhysicalDeviceDriverProperties, VkPhysicalDeviceDrmPropertiesEXT, VkPhysicalDeviceExtendedDynamicState3PropertiesEXT, VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV, VkPhysicalDeviceExternalComputeQueuePropertiesNV, VkPhysicalDeviceExternalFormatResolvePropertiesANDROID, VkPhysicalDeviceExternalMemoryHostPropertiesEXT, VkPhysicalDeviceFloatControlsProperties, VkPhysicalDeviceFragmentDensityMap2PropertiesEXT, VkPhysicalDeviceFragmentDensityMapLayeredPropertiesVALVE, VkPhysicalDeviceFragmentDensityMapOffsetPropertiesEXT, VkPhysicalDeviceFragmentDensityMapPropertiesEXT, VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR, VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV, VkPhysicalDeviceFragmentShadingRatePropertiesKHR, VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT, VkPhysicalDeviceHostImageCopyProperties, VkPhysicalDeviceIDProperties, VkPhysicalDeviceImageAlignmentControlPropertiesMESA, VkPhysicalDeviceImageProcessing2PropertiesQCOM, VkPhysicalDeviceImageProcessingPropertiesQCOM, VkPhysicalDeviceInlineUniformBlockProperties, VkPhysicalDeviceLayeredApiPropertiesListKHR, VkPhysicalDeviceLayeredDriverPropertiesMSFT, VkPhysicalDeviceLegacyVertexAttributesPropertiesEXT, VkPhysicalDeviceLineRasterizationProperties, VkPhysicalDeviceMaintenance3Properties, VkPhysicalDeviceMaintenance4Properties, VkPhysicalDeviceMaintenance5Properties, VkPhysicalDeviceMaintenance6Properties, VkPhysicalDeviceMaintenance7PropertiesKHR, VkPhysicalDeviceMaintenance9PropertiesKHR, VkPhysicalDeviceMapMemoryPlacedPropertiesEXT, VkPhysicalDeviceMemoryDecompressionPropertiesNV, VkPhysicalDeviceMeshShaderPropertiesEXT, VkPhysicalDeviceMeshShaderPropertiesNV, VkPhysicalDeviceMultiDrawPropertiesEXT, VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX, VkPhysicalDeviceMultiviewProperties, VkPhysicalDeviceNestedCommandBufferPropertiesEXT, VkPhysicalDeviceOpacityMicromapPropertiesEXT, VkPhysicalDeviceOpticalFlowPropertiesNV, VkPhysicalDevicePCIBusInfoPropertiesEXT, VkPhysicalDevicePartitionedAccelerationStructurePropertiesNV, VkPhysicalDevicePerformanceQueryPropertiesKHR, VkPhysicalDevicePipelineBinaryPropertiesKHR, VkPhysicalDevicePipelineRobustnessProperties, VkPhysicalDevicePointClippingProperties, VkPhysicalDevicePortabilitySubsetPropertiesKHR, VkPhysicalDeviceProtectedMemoryProperties, VkPhysicalDeviceProvokingVertexPropertiesEXT, VkPhysicalDevicePushDescriptorProperties, VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV, VkPhysicalDeviceRayTracingPipelinePropertiesKHR, VkPhysicalDeviceRayTracingPropertiesNV, VkPhysicalDeviceRenderPassStripedPropertiesARM, VkPhysicalDeviceRobustness2PropertiesKHR, VkPhysicalDeviceSampleLocationsPropertiesEXT, VkPhysicalDeviceSamplerFilterMinmaxProperties, VkPhysicalDeviceSchedulingControlsPropertiesARM, VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM, VkPhysicalDeviceShaderCoreProperties2AMD, VkPhysicalDeviceShaderCorePropertiesAMD, VkPhysicalDeviceShaderCorePropertiesARM, VkPhysicalDeviceShaderEnqueuePropertiesAMDX, VkPhysicalDeviceShaderIntegerDotProductProperties, VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT, VkPhysicalDeviceShaderObjectPropertiesEXT, VkPhysicalDeviceShaderSMBuiltinsPropertiesNV, VkPhysicalDeviceShaderTileImagePropertiesEXT, VkPhysicalDeviceShadingRateImagePropertiesNV, VkPhysicalDeviceSubgroupProperties, VkPhysicalDeviceSubgroupSizeControlProperties, VkPhysicalDeviceSubpassShadingPropertiesHUAWEI, VkPhysicalDeviceTensorPropertiesARM, VkPhysicalDeviceTexelBufferAlignmentProperties, VkPhysicalDeviceTileMemoryHeapPropertiesQCOM, VkPhysicalDeviceTileShadingPropertiesQCOM, VkPhysicalDeviceTimelineSemaphoreProperties, VkPhysicalDeviceTransformFeedbackPropertiesEXT, VkPhysicalDeviceVertexAttributeDivisorProperties, VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT, VkPhysicalDeviceVulkan11Properties, VkPhysicalDeviceVulkan12Properties, VkPhysicalDeviceVulkan13Properties, or VkPhysicalDeviceVulkan14Properties", + "text": "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 VkPhysicalDeviceAccelerationStructurePropertiesKHR, VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, VkPhysicalDeviceClusterAccelerationStructurePropertiesNV, VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI, VkPhysicalDeviceComputeShaderDerivativesPropertiesKHR, VkPhysicalDeviceConservativeRasterizationPropertiesEXT, VkPhysicalDeviceCooperativeMatrix2PropertiesNV, VkPhysicalDeviceCooperativeMatrixPropertiesKHR, VkPhysicalDeviceCooperativeMatrixPropertiesNV, VkPhysicalDeviceCooperativeVectorPropertiesNV, VkPhysicalDeviceCopyMemoryIndirectPropertiesKHR, VkPhysicalDeviceCudaKernelLaunchPropertiesNV, VkPhysicalDeviceCustomBorderColorPropertiesEXT, VkPhysicalDeviceDepthStencilResolveProperties, VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT, VkPhysicalDeviceDescriptorBufferPropertiesEXT, VkPhysicalDeviceDescriptorBufferTensorPropertiesARM, VkPhysicalDeviceDescriptorIndexingProperties, VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT, VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV, VkPhysicalDeviceDiscardRectanglePropertiesEXT, VkPhysicalDeviceDisplacementMicromapPropertiesNV, VkPhysicalDeviceDriverProperties, VkPhysicalDeviceDrmPropertiesEXT, VkPhysicalDeviceExtendedDynamicState3PropertiesEXT, VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV, VkPhysicalDeviceExternalComputeQueuePropertiesNV, VkPhysicalDeviceExternalFormatResolvePropertiesANDROID, VkPhysicalDeviceExternalMemoryHostPropertiesEXT, VkPhysicalDeviceFloatControlsProperties, VkPhysicalDeviceFragmentDensityMap2PropertiesEXT, VkPhysicalDeviceFragmentDensityMapLayeredPropertiesVALVE, VkPhysicalDeviceFragmentDensityMapOffsetPropertiesEXT, VkPhysicalDeviceFragmentDensityMapPropertiesEXT, VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR, VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV, VkPhysicalDeviceFragmentShadingRatePropertiesKHR, VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT, VkPhysicalDeviceHostImageCopyProperties, VkPhysicalDeviceIDProperties, VkPhysicalDeviceImageAlignmentControlPropertiesMESA, VkPhysicalDeviceImageProcessing2PropertiesQCOM, VkPhysicalDeviceImageProcessingPropertiesQCOM, VkPhysicalDeviceInlineUniformBlockProperties, VkPhysicalDeviceLayeredApiPropertiesListKHR, VkPhysicalDeviceLayeredDriverPropertiesMSFT, VkPhysicalDeviceLegacyVertexAttributesPropertiesEXT, VkPhysicalDeviceLineRasterizationProperties, VkPhysicalDeviceMaintenance3Properties, VkPhysicalDeviceMaintenance4Properties, VkPhysicalDeviceMaintenance5Properties, VkPhysicalDeviceMaintenance6Properties, VkPhysicalDeviceMaintenance7PropertiesKHR, VkPhysicalDeviceMaintenance9PropertiesKHR, VkPhysicalDeviceMapMemoryPlacedPropertiesEXT, VkPhysicalDeviceMemoryDecompressionPropertiesNV, VkPhysicalDeviceMeshShaderPropertiesEXT, VkPhysicalDeviceMeshShaderPropertiesNV, VkPhysicalDeviceMultiDrawPropertiesEXT, VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX, VkPhysicalDeviceMultiviewProperties, VkPhysicalDeviceNestedCommandBufferPropertiesEXT, VkPhysicalDeviceOpacityMicromapPropertiesEXT, VkPhysicalDeviceOpticalFlowPropertiesNV, VkPhysicalDevicePCIBusInfoPropertiesEXT, VkPhysicalDevicePartitionedAccelerationStructurePropertiesNV, VkPhysicalDevicePerformanceQueryPropertiesKHR, VkPhysicalDevicePipelineBinaryPropertiesKHR, VkPhysicalDevicePipelineRobustnessProperties, VkPhysicalDevicePointClippingProperties, VkPhysicalDevicePortabilitySubsetPropertiesKHR, VkPhysicalDeviceProtectedMemoryProperties, VkPhysicalDeviceProvokingVertexPropertiesEXT, VkPhysicalDevicePushDescriptorProperties, VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV, VkPhysicalDeviceRayTracingPipelinePropertiesKHR, VkPhysicalDeviceRayTracingPropertiesNV, VkPhysicalDeviceRenderPassStripedPropertiesARM, VkPhysicalDeviceRobustness2PropertiesKHR, VkPhysicalDeviceSampleLocationsPropertiesEXT, VkPhysicalDeviceSamplerFilterMinmaxProperties, VkPhysicalDeviceSchedulingControlsPropertiesARM, VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM, VkPhysicalDeviceShaderCoreProperties2AMD, VkPhysicalDeviceShaderCorePropertiesAMD, VkPhysicalDeviceShaderCorePropertiesARM, VkPhysicalDeviceShaderEnqueuePropertiesAMDX, VkPhysicalDeviceShaderIntegerDotProductProperties, VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT, VkPhysicalDeviceShaderObjectPropertiesEXT, VkPhysicalDeviceShaderSMBuiltinsPropertiesNV, VkPhysicalDeviceShaderTileImagePropertiesEXT, VkPhysicalDeviceShadingRateImagePropertiesNV, VkPhysicalDeviceSubgroupProperties, VkPhysicalDeviceSubgroupSizeControlProperties, VkPhysicalDeviceSubpassShadingPropertiesHUAWEI, VkPhysicalDeviceTensorPropertiesARM, VkPhysicalDeviceTexelBufferAlignmentProperties, VkPhysicalDeviceTileMemoryHeapPropertiesQCOM, VkPhysicalDeviceTileShadingPropertiesQCOM, VkPhysicalDeviceTimelineSemaphoreProperties, VkPhysicalDeviceTransformFeedbackPropertiesEXT, VkPhysicalDeviceVertexAttributeDivisorProperties, VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT, VkPhysicalDeviceVulkan11Properties, VkPhysicalDeviceVulkan12Properties, VkPhysicalDeviceVulkan13Properties, or VkPhysicalDeviceVulkan14Properties", "page": "chapters/devsandqueues.html" }, { @@ -938,7 +962,7 @@ }, { "vuid": "VUID-VkDeviceCreateInfo-pNext-pNext", - "text": "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 VkDeviceDeviceMemoryReportCreateInfoEXT, VkDeviceDiagnosticsConfigCreateInfoNV, VkDeviceGroupDeviceCreateInfo, VkDeviceMemoryOverallocationCreateInfoAMD, VkDevicePipelineBinaryInternalCacheControlKHR, VkDevicePrivateDataCreateInfo, VkDeviceQueueShaderCoreControlCreateInfoARM, VkExternalComputeQueueDeviceCreateInfoNV, VkPhysicalDevice16BitStorageFeatures, VkPhysicalDevice4444FormatsFeaturesEXT, VkPhysicalDevice8BitStorageFeatures, VkPhysicalDeviceASTCDecodeFeaturesEXT, VkPhysicalDeviceAccelerationStructureFeaturesKHR, VkPhysicalDeviceAddressBindingReportFeaturesEXT, VkPhysicalDeviceAmigoProfilingFeaturesSEC, VkPhysicalDeviceAntiLagFeaturesAMD, VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT, VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT, VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT, VkPhysicalDeviceBorderColorSwizzleFeaturesEXT, VkPhysicalDeviceBufferDeviceAddressFeatures, VkPhysicalDeviceBufferDeviceAddressFeaturesEXT, VkPhysicalDeviceClusterAccelerationStructureFeaturesNV, VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI, VkPhysicalDeviceCoherentMemoryFeaturesAMD, VkPhysicalDeviceColorWriteEnableFeaturesEXT, VkPhysicalDeviceCommandBufferInheritanceFeaturesNV, VkPhysicalDeviceComputeShaderDerivativesFeaturesKHR, VkPhysicalDeviceConditionalRenderingFeaturesEXT, VkPhysicalDeviceCooperativeMatrix2FeaturesNV, VkPhysicalDeviceCooperativeMatrixFeaturesKHR, VkPhysicalDeviceCooperativeMatrixFeaturesNV, VkPhysicalDeviceCooperativeVectorFeaturesNV, VkPhysicalDeviceCopyMemoryIndirectFeaturesNV, VkPhysicalDeviceCornerSampledImageFeaturesNV, VkPhysicalDeviceCoverageReductionModeFeaturesNV, VkPhysicalDeviceCubicClampFeaturesQCOM, VkPhysicalDeviceCubicWeightsFeaturesQCOM, VkPhysicalDeviceCudaKernelLaunchFeaturesNV, VkPhysicalDeviceCustomBorderColorFeaturesEXT, VkPhysicalDeviceDataGraphFeaturesARM, VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV, VkPhysicalDeviceDenseGeometryFormatFeaturesAMDX, VkPhysicalDeviceDepthBiasControlFeaturesEXT, VkPhysicalDeviceDepthClampControlFeaturesEXT, VkPhysicalDeviceDepthClampZeroOneFeaturesKHR, VkPhysicalDeviceDepthClipControlFeaturesEXT, VkPhysicalDeviceDepthClipEnableFeaturesEXT, VkPhysicalDeviceDescriptorBufferFeaturesEXT, VkPhysicalDeviceDescriptorBufferTensorFeaturesARM, VkPhysicalDeviceDescriptorIndexingFeatures, VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV, VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE, VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV, VkPhysicalDeviceDeviceGeneratedCommandsFeaturesEXT, VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV, VkPhysicalDeviceDeviceMemoryReportFeaturesEXT, VkPhysicalDeviceDiagnosticsConfigFeaturesNV, VkPhysicalDeviceDisplacementMicromapFeaturesNV, VkPhysicalDeviceDynamicRenderingFeatures, VkPhysicalDeviceDynamicRenderingLocalReadFeatures, VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT, VkPhysicalDeviceExclusiveScissorFeaturesNV, VkPhysicalDeviceExtendedDynamicState2FeaturesEXT, VkPhysicalDeviceExtendedDynamicState3FeaturesEXT, VkPhysicalDeviceExtendedDynamicStateFeaturesEXT, VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV, VkPhysicalDeviceExternalFormatResolveFeaturesANDROID, VkPhysicalDeviceExternalMemoryRDMAFeaturesNV, VkPhysicalDeviceExternalMemoryScreenBufferFeaturesQNX, VkPhysicalDeviceFaultFeaturesEXT, VkPhysicalDeviceFeatures2, VkPhysicalDeviceFormatPackFeaturesARM, VkPhysicalDeviceFragmentDensityMap2FeaturesEXT, VkPhysicalDeviceFragmentDensityMapFeaturesEXT, VkPhysicalDeviceFragmentDensityMapLayeredFeaturesVALVE, VkPhysicalDeviceFragmentDensityMapOffsetFeaturesEXT, VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR, VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT, VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV, VkPhysicalDeviceFragmentShadingRateFeaturesKHR, VkPhysicalDeviceFrameBoundaryFeaturesEXT, VkPhysicalDeviceGlobalPriorityQueryFeatures, VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT, VkPhysicalDeviceHdrVividFeaturesHUAWEI, VkPhysicalDeviceHostImageCopyFeatures, VkPhysicalDeviceHostQueryResetFeatures, VkPhysicalDeviceImage2DViewOf3DFeaturesEXT, VkPhysicalDeviceImageAlignmentControlFeaturesMESA, VkPhysicalDeviceImageCompressionControlFeaturesEXT, VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT, VkPhysicalDeviceImageProcessing2FeaturesQCOM, VkPhysicalDeviceImageProcessingFeaturesQCOM, VkPhysicalDeviceImageRobustnessFeatures, VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT, VkPhysicalDeviceImageViewMinLodFeaturesEXT, VkPhysicalDeviceImagelessFramebufferFeatures, VkPhysicalDeviceIndexTypeUint8Features, VkPhysicalDeviceInheritedViewportScissorFeaturesNV, VkPhysicalDeviceInlineUniformBlockFeatures, VkPhysicalDeviceInvocationMaskFeaturesHUAWEI, VkPhysicalDeviceLegacyDitheringFeaturesEXT, VkPhysicalDeviceLegacyVertexAttributesFeaturesEXT, VkPhysicalDeviceLineRasterizationFeatures, VkPhysicalDeviceLinearColorAttachmentFeaturesNV, VkPhysicalDeviceMaintenance4Features, VkPhysicalDeviceMaintenance5Features, VkPhysicalDeviceMaintenance6Features, VkPhysicalDeviceMaintenance7FeaturesKHR, VkPhysicalDeviceMaintenance8FeaturesKHR, VkPhysicalDeviceMaintenance9FeaturesKHR, VkPhysicalDeviceMapMemoryPlacedFeaturesEXT, VkPhysicalDeviceMemoryDecompressionFeaturesNV, VkPhysicalDeviceMemoryPriorityFeaturesEXT, VkPhysicalDeviceMeshShaderFeaturesEXT, VkPhysicalDeviceMeshShaderFeaturesNV, VkPhysicalDeviceMultiDrawFeaturesEXT, VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT, VkPhysicalDeviceMultiviewFeatures, VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM, VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM, VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT, VkPhysicalDeviceNestedCommandBufferFeaturesEXT, VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT, VkPhysicalDeviceOpacityMicromapFeaturesEXT, VkPhysicalDeviceOpticalFlowFeaturesNV, VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT, VkPhysicalDevicePartitionedAccelerationStructureFeaturesNV, VkPhysicalDevicePerStageDescriptorSetFeaturesNV, VkPhysicalDevicePerformanceQueryFeaturesKHR, VkPhysicalDevicePipelineBinaryFeaturesKHR, VkPhysicalDevicePipelineCacheIncrementalModeFeaturesSEC, VkPhysicalDevicePipelineCreationCacheControlFeatures, VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR, VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT, VkPhysicalDevicePipelineOpacityMicromapFeaturesARM, VkPhysicalDevicePipelinePropertiesFeaturesEXT, VkPhysicalDevicePipelineProtectedAccessFeatures, VkPhysicalDevicePipelineRobustnessFeatures, VkPhysicalDevicePortabilitySubsetFeaturesKHR, VkPhysicalDevicePresentBarrierFeaturesNV, VkPhysicalDevicePresentId2FeaturesKHR, VkPhysicalDevicePresentIdFeaturesKHR, VkPhysicalDevicePresentMeteringFeaturesNV, VkPhysicalDevicePresentModeFifoLatestReadyFeaturesKHR, VkPhysicalDevicePresentWait2FeaturesKHR, VkPhysicalDevicePresentWaitFeaturesKHR, VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT, VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT, VkPhysicalDevicePrivateDataFeatures, VkPhysicalDeviceProtectedMemoryFeatures, VkPhysicalDeviceProvokingVertexFeaturesEXT, VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT, VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT, VkPhysicalDeviceRawAccessChainsFeaturesNV, VkPhysicalDeviceRayQueryFeaturesKHR, VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV, VkPhysicalDeviceRayTracingLinearSweptSpheresFeaturesNV, VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR, VkPhysicalDeviceRayTracingMotionBlurFeaturesNV, VkPhysicalDeviceRayTracingPipelineFeaturesKHR, VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR, VkPhysicalDeviceRayTracingValidationFeaturesNV, VkPhysicalDeviceRelaxedLineRasterizationFeaturesIMG, VkPhysicalDeviceRenderPassStripedFeaturesARM, VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV, VkPhysicalDeviceRobustness2FeaturesKHR, VkPhysicalDeviceSamplerYcbcrConversionFeatures, VkPhysicalDeviceScalarBlockLayoutFeatures, VkPhysicalDeviceSchedulingControlsFeaturesARM, VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures, VkPhysicalDeviceShaderAtomicFloat16VectorFeaturesNV, VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT, VkPhysicalDeviceShaderAtomicFloatFeaturesEXT, VkPhysicalDeviceShaderAtomicInt64Features, VkPhysicalDeviceShaderBfloat16FeaturesKHR, VkPhysicalDeviceShaderClockFeaturesKHR, VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM, VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures, VkPhysicalDeviceShaderDrawParametersFeatures, VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD, VkPhysicalDeviceShaderEnqueueFeaturesAMDX, VkPhysicalDeviceShaderExpectAssumeFeatures, VkPhysicalDeviceShaderFloat16Int8Features, VkPhysicalDeviceShaderFloat8FeaturesEXT, VkPhysicalDeviceShaderFloatControls2Features, VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT, VkPhysicalDeviceShaderImageFootprintFeaturesNV, VkPhysicalDeviceShaderIntegerDotProductFeatures, VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL, VkPhysicalDeviceShaderMaximalReconvergenceFeaturesKHR, VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT, VkPhysicalDeviceShaderObjectFeaturesEXT, VkPhysicalDeviceShaderQuadControlFeaturesKHR, VkPhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR, VkPhysicalDeviceShaderReplicatedCompositesFeaturesEXT, VkPhysicalDeviceShaderSMBuiltinsFeaturesNV, VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures, VkPhysicalDeviceShaderSubgroupRotateFeatures, VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR, VkPhysicalDeviceShaderTerminateInvocationFeatures, VkPhysicalDeviceShaderTileImageFeaturesEXT, VkPhysicalDeviceShaderUntypedPointersFeaturesKHR, VkPhysicalDeviceShadingRateImageFeaturesNV, VkPhysicalDeviceSubgroupSizeControlFeatures, VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT, VkPhysicalDeviceSubpassShadingFeaturesHUAWEI, VkPhysicalDeviceSwapchainMaintenance1FeaturesKHR, VkPhysicalDeviceSynchronization2Features, VkPhysicalDeviceTensorFeaturesARM, VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT, VkPhysicalDeviceTextureCompressionASTCHDRFeatures, VkPhysicalDeviceTileMemoryHeapFeaturesQCOM, VkPhysicalDeviceTilePropertiesFeaturesQCOM, VkPhysicalDeviceTileShadingFeaturesQCOM, VkPhysicalDeviceTimelineSemaphoreFeatures, VkPhysicalDeviceTransformFeedbackFeaturesEXT, VkPhysicalDeviceUnifiedImageLayoutsFeaturesKHR, VkPhysicalDeviceUniformBufferStandardLayoutFeatures, VkPhysicalDeviceVariablePointersFeatures, VkPhysicalDeviceVertexAttributeDivisorFeatures, VkPhysicalDeviceVertexAttributeRobustnessFeaturesEXT, VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT, VkPhysicalDeviceVideoDecodeVP9FeaturesKHR, VkPhysicalDeviceVideoEncodeAV1FeaturesKHR, VkPhysicalDeviceVideoEncodeIntraRefreshFeaturesKHR, VkPhysicalDeviceVideoEncodeQuantizationMapFeaturesKHR, VkPhysicalDeviceVideoEncodeRgbConversionFeaturesVALVE, VkPhysicalDeviceVideoMaintenance1FeaturesKHR, VkPhysicalDeviceVideoMaintenance2FeaturesKHR, VkPhysicalDeviceVulkan11Features, VkPhysicalDeviceVulkan12Features, VkPhysicalDeviceVulkan13Features, VkPhysicalDeviceVulkan14Features, VkPhysicalDeviceVulkanMemoryModelFeatures, VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR, VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT, VkPhysicalDeviceYcbcrDegammaFeaturesQCOM, VkPhysicalDeviceYcbcrImageArraysFeaturesEXT, VkPhysicalDeviceZeroInitializeDeviceMemoryFeaturesEXT, or VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures", + "text": "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 VkDeviceDeviceMemoryReportCreateInfoEXT, VkDeviceDiagnosticsConfigCreateInfoNV, VkDeviceGroupDeviceCreateInfo, VkDeviceMemoryOverallocationCreateInfoAMD, VkDevicePipelineBinaryInternalCacheControlKHR, VkDevicePrivateDataCreateInfo, VkDeviceQueueShaderCoreControlCreateInfoARM, VkExternalComputeQueueDeviceCreateInfoNV, VkPhysicalDevice16BitStorageFeatures, VkPhysicalDevice4444FormatsFeaturesEXT, VkPhysicalDevice8BitStorageFeatures, VkPhysicalDeviceASTCDecodeFeaturesEXT, VkPhysicalDeviceAccelerationStructureFeaturesKHR, VkPhysicalDeviceAddressBindingReportFeaturesEXT, VkPhysicalDeviceAmigoProfilingFeaturesSEC, VkPhysicalDeviceAntiLagFeaturesAMD, VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT, VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT, VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT, VkPhysicalDeviceBorderColorSwizzleFeaturesEXT, VkPhysicalDeviceBufferDeviceAddressFeatures, VkPhysicalDeviceBufferDeviceAddressFeaturesEXT, VkPhysicalDeviceClusterAccelerationStructureFeaturesNV, VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI, VkPhysicalDeviceCoherentMemoryFeaturesAMD, VkPhysicalDeviceColorWriteEnableFeaturesEXT, VkPhysicalDeviceCommandBufferInheritanceFeaturesNV, VkPhysicalDeviceComputeShaderDerivativesFeaturesKHR, VkPhysicalDeviceConditionalRenderingFeaturesEXT, VkPhysicalDeviceCooperativeMatrix2FeaturesNV, VkPhysicalDeviceCooperativeMatrixFeaturesKHR, VkPhysicalDeviceCooperativeMatrixFeaturesNV, VkPhysicalDeviceCooperativeVectorFeaturesNV, VkPhysicalDeviceCopyMemoryIndirectFeaturesKHR, VkPhysicalDeviceCopyMemoryIndirectFeaturesNV, VkPhysicalDeviceCornerSampledImageFeaturesNV, VkPhysicalDeviceCoverageReductionModeFeaturesNV, VkPhysicalDeviceCubicClampFeaturesQCOM, VkPhysicalDeviceCubicWeightsFeaturesQCOM, VkPhysicalDeviceCudaKernelLaunchFeaturesNV, VkPhysicalDeviceCustomBorderColorFeaturesEXT, VkPhysicalDeviceDataGraphFeaturesARM, VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV, VkPhysicalDeviceDenseGeometryFormatFeaturesAMDX, VkPhysicalDeviceDepthBiasControlFeaturesEXT, VkPhysicalDeviceDepthClampControlFeaturesEXT, VkPhysicalDeviceDepthClampZeroOneFeaturesKHR, VkPhysicalDeviceDepthClipControlFeaturesEXT, VkPhysicalDeviceDepthClipEnableFeaturesEXT, VkPhysicalDeviceDescriptorBufferFeaturesEXT, VkPhysicalDeviceDescriptorBufferTensorFeaturesARM, VkPhysicalDeviceDescriptorIndexingFeatures, VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV, VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE, VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV, VkPhysicalDeviceDeviceGeneratedCommandsFeaturesEXT, VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV, VkPhysicalDeviceDeviceMemoryReportFeaturesEXT, VkPhysicalDeviceDiagnosticsConfigFeaturesNV, VkPhysicalDeviceDisplacementMicromapFeaturesNV, VkPhysicalDeviceDynamicRenderingFeatures, VkPhysicalDeviceDynamicRenderingLocalReadFeatures, VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT, VkPhysicalDeviceExclusiveScissorFeaturesNV, VkPhysicalDeviceExtendedDynamicState2FeaturesEXT, VkPhysicalDeviceExtendedDynamicState3FeaturesEXT, VkPhysicalDeviceExtendedDynamicStateFeaturesEXT, VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV, VkPhysicalDeviceExternalFormatResolveFeaturesANDROID, VkPhysicalDeviceExternalMemoryRDMAFeaturesNV, VkPhysicalDeviceExternalMemoryScreenBufferFeaturesQNX, VkPhysicalDeviceFaultFeaturesEXT, VkPhysicalDeviceFeatures2, VkPhysicalDeviceFormatPackFeaturesARM, VkPhysicalDeviceFragmentDensityMap2FeaturesEXT, VkPhysicalDeviceFragmentDensityMapFeaturesEXT, VkPhysicalDeviceFragmentDensityMapLayeredFeaturesVALVE, VkPhysicalDeviceFragmentDensityMapOffsetFeaturesEXT, VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR, VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT, VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV, VkPhysicalDeviceFragmentShadingRateFeaturesKHR, VkPhysicalDeviceFrameBoundaryFeaturesEXT, VkPhysicalDeviceGlobalPriorityQueryFeatures, VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT, VkPhysicalDeviceHdrVividFeaturesHUAWEI, VkPhysicalDeviceHostImageCopyFeatures, VkPhysicalDeviceHostQueryResetFeatures, VkPhysicalDeviceImage2DViewOf3DFeaturesEXT, VkPhysicalDeviceImageAlignmentControlFeaturesMESA, VkPhysicalDeviceImageCompressionControlFeaturesEXT, VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT, VkPhysicalDeviceImageProcessing2FeaturesQCOM, VkPhysicalDeviceImageProcessingFeaturesQCOM, VkPhysicalDeviceImageRobustnessFeatures, VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT, VkPhysicalDeviceImageViewMinLodFeaturesEXT, VkPhysicalDeviceImagelessFramebufferFeatures, VkPhysicalDeviceIndexTypeUint8Features, VkPhysicalDeviceInheritedViewportScissorFeaturesNV, VkPhysicalDeviceInlineUniformBlockFeatures, VkPhysicalDeviceInvocationMaskFeaturesHUAWEI, VkPhysicalDeviceLegacyDitheringFeaturesEXT, VkPhysicalDeviceLegacyVertexAttributesFeaturesEXT, VkPhysicalDeviceLineRasterizationFeatures, VkPhysicalDeviceLinearColorAttachmentFeaturesNV, VkPhysicalDeviceMaintenance4Features, VkPhysicalDeviceMaintenance5Features, VkPhysicalDeviceMaintenance6Features, VkPhysicalDeviceMaintenance7FeaturesKHR, VkPhysicalDeviceMaintenance8FeaturesKHR, VkPhysicalDeviceMaintenance9FeaturesKHR, VkPhysicalDeviceMapMemoryPlacedFeaturesEXT, VkPhysicalDeviceMemoryDecompressionFeaturesNV, VkPhysicalDeviceMemoryPriorityFeaturesEXT, VkPhysicalDeviceMeshShaderFeaturesEXT, VkPhysicalDeviceMeshShaderFeaturesNV, VkPhysicalDeviceMultiDrawFeaturesEXT, VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT, VkPhysicalDeviceMultiviewFeatures, VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM, VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM, VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT, VkPhysicalDeviceNestedCommandBufferFeaturesEXT, VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT, VkPhysicalDeviceOpacityMicromapFeaturesEXT, VkPhysicalDeviceOpticalFlowFeaturesNV, VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT, VkPhysicalDevicePartitionedAccelerationStructureFeaturesNV, VkPhysicalDevicePerStageDescriptorSetFeaturesNV, VkPhysicalDevicePerformanceQueryFeaturesKHR, VkPhysicalDevicePipelineBinaryFeaturesKHR, VkPhysicalDevicePipelineCacheIncrementalModeFeaturesSEC, VkPhysicalDevicePipelineCreationCacheControlFeatures, VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR, VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT, VkPhysicalDevicePipelineOpacityMicromapFeaturesARM, VkPhysicalDevicePipelinePropertiesFeaturesEXT, VkPhysicalDevicePipelineProtectedAccessFeatures, VkPhysicalDevicePipelineRobustnessFeatures, VkPhysicalDevicePortabilitySubsetFeaturesKHR, VkPhysicalDevicePresentBarrierFeaturesNV, VkPhysicalDevicePresentId2FeaturesKHR, VkPhysicalDevicePresentIdFeaturesKHR, VkPhysicalDevicePresentMeteringFeaturesNV, VkPhysicalDevicePresentModeFifoLatestReadyFeaturesKHR, VkPhysicalDevicePresentWait2FeaturesKHR, VkPhysicalDevicePresentWaitFeaturesKHR, VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT, VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT, VkPhysicalDevicePrivateDataFeatures, VkPhysicalDeviceProtectedMemoryFeatures, VkPhysicalDeviceProvokingVertexFeaturesEXT, VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT, VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT, VkPhysicalDeviceRawAccessChainsFeaturesNV, VkPhysicalDeviceRayQueryFeaturesKHR, VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV, VkPhysicalDeviceRayTracingLinearSweptSpheresFeaturesNV, VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR, VkPhysicalDeviceRayTracingMotionBlurFeaturesNV, VkPhysicalDeviceRayTracingPipelineFeaturesKHR, VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR, VkPhysicalDeviceRayTracingValidationFeaturesNV, VkPhysicalDeviceRelaxedLineRasterizationFeaturesIMG, VkPhysicalDeviceRenderPassStripedFeaturesARM, VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV, VkPhysicalDeviceRobustness2FeaturesKHR, VkPhysicalDeviceSamplerYcbcrConversionFeatures, VkPhysicalDeviceScalarBlockLayoutFeatures, VkPhysicalDeviceSchedulingControlsFeaturesARM, VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures, VkPhysicalDeviceShaderAtomicFloat16VectorFeaturesNV, VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT, VkPhysicalDeviceShaderAtomicFloatFeaturesEXT, VkPhysicalDeviceShaderAtomicInt64Features, VkPhysicalDeviceShaderBfloat16FeaturesKHR, VkPhysicalDeviceShaderClockFeaturesKHR, VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM, VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures, VkPhysicalDeviceShaderDrawParametersFeatures, VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD, VkPhysicalDeviceShaderEnqueueFeaturesAMDX, VkPhysicalDeviceShaderExpectAssumeFeatures, VkPhysicalDeviceShaderFloat16Int8Features, VkPhysicalDeviceShaderFloat8FeaturesEXT, VkPhysicalDeviceShaderFloatControls2Features, VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT, VkPhysicalDeviceShaderImageFootprintFeaturesNV, VkPhysicalDeviceShaderIntegerDotProductFeatures, VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL, VkPhysicalDeviceShaderMaximalReconvergenceFeaturesKHR, VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT, VkPhysicalDeviceShaderObjectFeaturesEXT, VkPhysicalDeviceShaderQuadControlFeaturesKHR, VkPhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR, VkPhysicalDeviceShaderReplicatedCompositesFeaturesEXT, VkPhysicalDeviceShaderSMBuiltinsFeaturesNV, VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures, VkPhysicalDeviceShaderSubgroupRotateFeatures, VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR, VkPhysicalDeviceShaderTerminateInvocationFeatures, VkPhysicalDeviceShaderTileImageFeaturesEXT, VkPhysicalDeviceShaderUntypedPointersFeaturesKHR, VkPhysicalDeviceShadingRateImageFeaturesNV, VkPhysicalDeviceSubgroupSizeControlFeatures, VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT, VkPhysicalDeviceSubpassShadingFeaturesHUAWEI, VkPhysicalDeviceSwapchainMaintenance1FeaturesKHR, VkPhysicalDeviceSynchronization2Features, VkPhysicalDeviceTensorFeaturesARM, VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT, VkPhysicalDeviceTextureCompressionASTCHDRFeatures, VkPhysicalDeviceTileMemoryHeapFeaturesQCOM, VkPhysicalDeviceTilePropertiesFeaturesQCOM, VkPhysicalDeviceTileShadingFeaturesQCOM, VkPhysicalDeviceTimelineSemaphoreFeatures, VkPhysicalDeviceTransformFeedbackFeaturesEXT, VkPhysicalDeviceUnifiedImageLayoutsFeaturesKHR, VkPhysicalDeviceUniformBufferStandardLayoutFeatures, VkPhysicalDeviceVariablePointersFeatures, VkPhysicalDeviceVertexAttributeDivisorFeatures, VkPhysicalDeviceVertexAttributeRobustnessFeaturesEXT, VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT, VkPhysicalDeviceVideoDecodeVP9FeaturesKHR, VkPhysicalDeviceVideoEncodeAV1FeaturesKHR, VkPhysicalDeviceVideoEncodeIntraRefreshFeaturesKHR, VkPhysicalDeviceVideoEncodeQuantizationMapFeaturesKHR, VkPhysicalDeviceVideoEncodeRgbConversionFeaturesVALVE, VkPhysicalDeviceVideoMaintenance1FeaturesKHR, VkPhysicalDeviceVideoMaintenance2FeaturesKHR, VkPhysicalDeviceVulkan11Features, VkPhysicalDeviceVulkan12Features, VkPhysicalDeviceVulkan13Features, VkPhysicalDeviceVulkan14Features, VkPhysicalDeviceVulkanMemoryModelFeatures, VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR, VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT, VkPhysicalDeviceYcbcrDegammaFeaturesQCOM, VkPhysicalDeviceYcbcrImageArraysFeaturesEXT, VkPhysicalDeviceZeroInitializeDeviceMemoryFeaturesEXT, or VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures", "page": "chapters/devsandqueues.html" }, { @@ -6198,7 +6222,7 @@ }, { "vuid": "VUID-VkMemoryBarrier2-srcAccessMask-03900", - "text": "If srcAccessMask includes VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT, srcStageMask must include VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", + "text": "If srcAccessMask includes VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT, srcStageMask must include VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, VK_PIPELINE_STAGE_2_COPY_INDIRECT_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", "page": "chapters/synchronization.html" }, { @@ -6483,7 +6507,7 @@ }, { "vuid": "VUID-VkMemoryBarrier2-dstAccessMask-03900", - "text": "If dstAccessMask includes VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", + "text": "If dstAccessMask includes VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, VK_PIPELINE_STAGE_2_COPY_INDIRECT_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", "page": "chapters/synchronization.html" }, { @@ -6821,7 +6845,7 @@ }, { "vuid": "VUID-VkBufferMemoryBarrier2-srcAccessMask-03900", - "text": "If srcAccessMask includes VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT, srcStageMask must include VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", + "text": "If srcAccessMask includes VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT, srcStageMask must include VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, VK_PIPELINE_STAGE_2_COPY_INDIRECT_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", "page": "chapters/synchronization.html" }, { @@ -7106,7 +7130,7 @@ }, { "vuid": "VUID-VkBufferMemoryBarrier2-dstAccessMask-03900", - "text": "If dstAccessMask includes VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", + "text": "If dstAccessMask includes VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, VK_PIPELINE_STAGE_2_COPY_INDIRECT_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", "page": "chapters/synchronization.html" }, { @@ -7579,7 +7603,7 @@ }, { "vuid": "VUID-VkImageMemoryBarrier2-srcAccessMask-03900", - "text": "If srcAccessMask includes VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT, srcStageMask must include VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", + "text": "If srcAccessMask includes VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT, srcStageMask must include VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, VK_PIPELINE_STAGE_2_COPY_INDIRECT_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", "page": "chapters/synchronization.html" }, { @@ -7864,7 +7888,7 @@ }, { "vuid": "VUID-VkImageMemoryBarrier2-dstAccessMask-03900", - "text": "If dstAccessMask includes VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", + "text": "If dstAccessMask includes VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT, dstStageMask must include VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT, VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, VK_PIPELINE_STAGE_2_COPY_INDIRECT_BIT_KHR, VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, or VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT", "page": "chapters/synchronization.html" }, { @@ -10790,7 +10814,7 @@ }, { "vuid": "VUID-VkSubpassDescription-attachment-06915", - "text": "If the attachment member of pDepthStencilAttachment is not VK_ATTACHMENT_UNUSED, ts layout member must not be VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL", + "text": "If the attachment member of pDepthStencilAttachment is not VK_ATTACHMENT_UNUSED, its layout member must not be VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL", "page": "chapters/renderpass.html" }, { @@ -11772,7 +11796,7 @@ }, { "vuid": "VUID-VkSubpassDescription2-attachment-06915", - "text": "If the attachment member of pDepthStencilAttachment is not VK_ATTACHMENT_UNUSED, ts layout member must not be VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL", + "text": "If the attachment member of pDepthStencilAttachment is not VK_ATTACHMENT_UNUSED, its layout member must not be VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL", "page": "chapters/renderpass.html" }, { @@ -40254,7 +40278,7 @@ }, { "vuid": "VUID-vkCmdCopyImage-dstSubresource-10215", - "text": "If dstSubresource.aspectMask is VK_IMAGE_ASPECT_COLOR_BIT, then srSubresource.aspectMask must not contain both VK_IMAGE_ASPECT_DEPTH_BIT and VK_IMAGE_ASPECT_STENCIL_BIT", + "text": "If dstSubresource.aspectMask is VK_IMAGE_ASPECT_COLOR_BIT, then srcSubresource.aspectMask must not contain both VK_IMAGE_ASPECT_DEPTH_BIT and VK_IMAGE_ASPECT_STENCIL_BIT", "page": "chapters/copies.html" }, { @@ -40810,7 +40834,7 @@ }, { "vuid": "VUID-VkCopyImageInfo2-dstSubresource-10215", - "text": "If dstSubresource.aspectMask is VK_IMAGE_ASPECT_COLOR_BIT, then srSubresource.aspectMask must not contain both VK_IMAGE_ASPECT_DEPTH_BIT and VK_IMAGE_ASPECT_STENCIL_BIT", + "text": "If dstSubresource.aspectMask is VK_IMAGE_ASPECT_COLOR_BIT, then srcSubresource.aspectMask must not contain both VK_IMAGE_ASPECT_DEPTH_BIT and VK_IMAGE_ASPECT_STENCIL_BIT", "page": "chapters/copies.html" }, { @@ -43597,6 +43621,168 @@ } ] }, + "vkCmdCopyMemoryIndirectKHR": { + "core": [ + { + "vuid": "VUID-vkCmdCopyMemoryIndirectKHR-indirectMemoryCopy-10935", + "text": "The indirectMemoryCopy feature must be enabled", + "page": "chapters/copies.html" + }, + { + "vuid": "VUID-vkCmdCopyMemoryIndirectKHR-commandBuffer-10936", + "text": "The VkCommandPool that commandBuffer was allocated from must support at least one of the queue types specified in VkPhysicalDeviceCopyMemoryIndirectPropertiesKHR::supportedQueues", + "page": "chapters/copies.html" + }, + { + "vuid": "VUID-vkCmdCopyMemoryIndirectKHR-commandBuffer-10937", + "text": "commandBuffer must not be a protected command buffer", + "page": "chapters/copies.html" + }, + { + "vuid": "VUID-vkCmdCopyMemoryIndirectKHR-commandBuffer-parameter", + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "chapters/copies.html" + }, + { + "vuid": "VUID-vkCmdCopyMemoryIndirectKHR-pCopyMemoryIndirectInfo-parameter", + "text": "pCopyMemoryIndirectInfo must be a valid pointer to a valid VkCopyMemoryIndirectInfoKHR structure", + "page": "chapters/copies.html" + }, + { + "vuid": "VUID-vkCmdCopyMemoryIndirectKHR-commandBuffer-recording", + "text": "commandBuffer must be in the recording state", + "page": "chapters/copies.html" + }, + { + "vuid": "VUID-vkCmdCopyMemoryIndirectKHR-commandBuffer-cmdpool", + "text": "The VkCommandPool that commandBuffer was allocated from must support VK_QUEUE_COMPUTE_BIT, VK_QUEUE_GRAPHICS_BIT, or VK_QUEUE_TRANSFER_BIT operations", + "page": "chapters/copies.html" + }, + { + "vuid": "VUID-vkCmdCopyMemoryIndirectKHR-renderpass", + "text": "This command must only be called outside of a render pass instance", + "page": "chapters/copies.html" + }, + { + "vuid": "VUID-vkCmdCopyMemoryIndirectKHR-videocoding", + "text": "This command must only be called outside of a video coding scope", + "page": "chapters/copies.html" + } + ] + }, + "VkCopyMemoryIndirectInfoKHR": { + "core": [ + { + "vuid": "VUID-VkCopyMemoryIndirectInfoKHR-srcCopyFlags-10938", + "text": "If srcCopyFlags contains VK_ADDRESS_COPY_SPARSE_BIT_KHR, the source memory regions accessed must be fully-resident", + "page": "chapters/copies.html" + }, + { + "vuid": "VUID-VkCopyMemoryIndirectInfoKHR-dstCopyFlags-10939", + "text": "If dstCopyFlags contains VK_ADDRESS_COPY_SPARSE_BIT_KHR, the destination memory regions accessed must be fully-resident", + "page": "chapters/copies.html" + }, + { + "vuid": "VUID-VkCopyMemoryIndirectInfoKHR-srcCopyFlags-10940", + "text": "srcCopyFlags must not contain VK_ADDRESS_COPY_PROTECTED_BIT_KHR", + "page": "chapters/copies.html" + }, + { + "vuid": "VUID-VkCopyMemoryIndirectInfoKHR-dstCopyFlags-10941", + "text": "dstCopyFlags must not contain VK_ADDRESS_COPY_PROTECTED_BIT_KHR", + "page": "chapters/copies.html" + }, + { + "vuid": "VUID-VkCopyMemoryIndirectInfoKHR-copyAddressRange-10942", + "text": "copyAddressRange.pname:address must be 4 byte aligned", + "page": "chapters/copies.html" + }, + { + "vuid": "VUID-VkCopyMemoryIndirectInfoKHR-copyAddressRange-10943", + "text": "copyAddressRange.pname:stride must be a multiple of 4 and must be greater than or equal to sizeof(VkCopyMemoryIndirectCommandKHR)", + "page": "chapters/copies.html" + }, + { + "vuid": "VUID-VkCopyMemoryIndirectInfoKHR-copyCount-10944", + "text": "copyCount must be less than or equal to copyAddressRange.pname:size / copyAddressRange.pname:stride", + "page": "chapters/copies.html" + }, + { + "vuid": "VUID-VkCopyMemoryIndirectInfoKHR-copyAddressRange-10945", + "text": "Any of the source or destination memory regions specified in copyAddressRange must not overlap with any of the specified destination memory regions", + "page": "chapters/copies.html" + }, + { + "vuid": "VUID-VkCopyMemoryIndirectInfoKHR-sType-sType", + "text": "sType must be VK_STRUCTURE_TYPE_COPY_MEMORY_INDIRECT_INFO_KHR", + "page": "chapters/copies.html" + }, + { + "vuid": "VUID-VkCopyMemoryIndirectInfoKHR-pNext-pNext", + "text": "pNext must be NULL", + "page": "chapters/copies.html" + }, + { + "vuid": "VUID-VkCopyMemoryIndirectInfoKHR-srcCopyFlags-parameter", + "text": "srcCopyFlags must be a valid combination of VkAddressCopyFlagBitsKHR values", + "page": "chapters/copies.html" + }, + { + "vuid": "VUID-VkCopyMemoryIndirectInfoKHR-srcCopyFlags-requiredbitmask", + "text": "srcCopyFlags must not be 0", + "page": "chapters/copies.html" + }, + { + "vuid": "VUID-VkCopyMemoryIndirectInfoKHR-dstCopyFlags-parameter", + "text": "dstCopyFlags must be a valid combination of VkAddressCopyFlagBitsKHR values", + "page": "chapters/copies.html" + }, + { + "vuid": "VUID-VkCopyMemoryIndirectInfoKHR-dstCopyFlags-requiredbitmask", + "text": "dstCopyFlags must not be 0", + "page": "chapters/copies.html" + } + ] + }, + "VkCopyMemoryIndirectCommandKHR": { + "core": [ + { + "vuid": "VUID-VkCopyMemoryIndirectCommandKHR-srcAddress-10958", + "text": "The srcAddress must be 4 byte aligned", + "page": "chapters/copies.html" + }, + { + "vuid": "VUID-VkCopyMemoryIndirectCommandKHR-dstAddress-10959", + "text": "The dstAddress must be 4 byte aligned", + "page": "chapters/copies.html" + }, + { + "vuid": "VUID-VkCopyMemoryIndirectCommandKHR-size-10960", + "text": "The size must be 4 byte aligned", + "page": "chapters/copies.html" + }, + { + "vuid": "VUID-VkCopyMemoryIndirectCommandKHR-srcAddress-10961", + "text": "The memory in range [srcAddress, srcAddress
size - 1]
must be within the bounds of the memory allocation backing srcAddress", + "page": "chapters/copies.html" + }, + { + "vuid": "VUID-VkCopyMemoryIndirectCommandKHR-dstAddress-10962", + "text": "The memory in range [dstAddress, dstAddress
size - 1]
must be within the bounds of the memory allocation backing dstAddress", + "page": "chapters/copies.html" + }, + { + "vuid": "VUID-VkCopyMemoryIndirectCommandKHR-srcAddress-parameter", + "text": "srcAddress must be a valid VkDeviceAddress value", + "page": "chapters/copies.html" + }, + { + "vuid": "VUID-VkCopyMemoryIndirectCommandKHR-dstAddress-parameter", + "text": "dstAddress must be a valid VkDeviceAddress value", + "page": "chapters/copies.html" + } + ] + }, "vkCmdCopyMemoryIndirectNV": { "core": [ { @@ -43611,12 +43797,17 @@ }, { "vuid": "VUID-vkCmdCopyMemoryIndirectNV-stride-07655", - "text": "stride must be a multiple of 4 and must be greater than or equal to sizeof(VkCopyMemoryIndirectCommandNV)", + "text": "stride must be a multiple of 4 and must be greater than or equal to sizeof(VkCopyMemoryIndirectCommandNV)", "page": "chapters/copies.html" }, { "vuid": "VUID-vkCmdCopyMemoryIndirectNV-commandBuffer-07656", - "text": "The VkCommandPool that commandBuffer was allocated from must support at least one of the VkPhysicalDeviceCopyMemoryIndirectPropertiesNV::supportedQueues", + "text": "The VkCommandPool that commandBuffer was allocated from must support at least one of the queue types specified in VkPhysicalDeviceCopyMemoryIndirectPropertiesKHR::supportedQueues", + "page": "chapters/copies.html" + }, + { + "vuid": "VUID-vkCmdCopyMemoryIndirectNV-copyBufferAddress-10946", + "text": "Any of the source or destination memory regions specified in copyBufferAddress must not overlap with any of the specified destination memory regions", "page": "chapters/copies.html" }, { @@ -43651,31 +43842,264 @@ } ] }, - "VkCopyMemoryIndirectCommandNV": { + "vkCmdCopyMemoryToImageIndirectKHR": { "core": [ { - "vuid": "VUID-VkCopyMemoryIndirectCommandNV-srcAddress-07657", + "vuid": "VUID-vkCmdCopyMemoryToImageIndirectKHR-indirectMemoryToImageCopy-10947", + "text": "The indirectMemoryToImageCopy feature must be enabled", + "page": "chapters/copies.html" + }, + { + "vuid": "VUID-vkCmdCopyMemoryToImageIndirectKHR-commandBuffer-10948", + "text": "The VkCommandPool that commandBuffer was allocated from must support at least one of the queue types specified in VkPhysicalDeviceCopyMemoryIndirectPropertiesKHR::supportedQueues", + "page": "chapters/copies.html" + }, + { + "vuid": "VUID-vkCmdCopyMemoryToImageIndirectKHR-commandBuffer-10949", + "text": "commandBuffer must not be a protected command buffer", + "page": "chapters/copies.html" + }, + { + "vuid": "VUID-vkCmdCopyMemoryToImageIndirectKHR-commandBuffer-parameter", + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "chapters/copies.html" + }, + { + "vuid": "VUID-vkCmdCopyMemoryToImageIndirectKHR-pCopyMemoryToImageIndirectInfo-parameter", + "text": "pCopyMemoryToImageIndirectInfo must be a valid pointer to a valid VkCopyMemoryToImageIndirectInfoKHR structure", + "page": "chapters/copies.html" + }, + { + "vuid": "VUID-vkCmdCopyMemoryToImageIndirectKHR-commandBuffer-recording", + "text": "commandBuffer must be in the recording state", + "page": "chapters/copies.html" + }, + { + "vuid": "VUID-vkCmdCopyMemoryToImageIndirectKHR-commandBuffer-cmdpool", + "text": "The VkCommandPool that commandBuffer was allocated from must support VK_QUEUE_COMPUTE_BIT, VK_QUEUE_GRAPHICS_BIT, or VK_QUEUE_TRANSFER_BIT operations", + "page": "chapters/copies.html" + }, + { + "vuid": "VUID-vkCmdCopyMemoryToImageIndirectKHR-renderpass", + "text": "This command must only be called outside of a render pass instance", + "page": "chapters/copies.html" + }, + { + "vuid": "VUID-vkCmdCopyMemoryToImageIndirectKHR-videocoding", + "text": "This command must only be called outside of a video coding scope", + "page": "chapters/copies.html" + } + ] + }, + "VkCopyMemoryToImageIndirectInfoKHR": { + "core": [ + { + "vuid": "VUID-VkCopyMemoryToImageIndirectInfoKHR-srcCopyFlags-10950", + "text": "If srcCopyFlags contains VK_ADDRESS_COPY_SPARSE_BIT_KHR, the source memory regions accessed must be fully-resident", + "page": "chapters/copies.html" + }, + { + "vuid": "VUID-VkCopyMemoryToImageIndirectInfoKHR-copyCount-10951", + "text": "copyCount must be less than or equal to copyAddressRange.pname:size / copyAddressRange.pname:stride", + "page": "chapters/copies.html" + }, + { + "vuid": "VUID-VkCopyMemoryToImageIndirectInfoKHR-copyAddressRange-10952", + "text": "copyAddressRange.pname:address must be 4 byte aligned", + "page": "chapters/copies.html" + }, + { + "vuid": "VUID-VkCopyMemoryToImageIndirectInfoKHR-copyAddressRange-10953", + "text": "copyAddressRange.pname:stride must be a multiple of 4 and must be greater than or equal to sizeof(VkCopyMemoryToImageIndirectCommandKHR)", + "page": "chapters/copies.html" + }, + { + "vuid": "VUID-VkCopyMemoryToImageIndirectInfoKHR-copyAddressRange-10954", + "text": "Any of the source or destination memory regions specified in copyAddressRange must not overlap with any of the specified destination memory regions", + "page": "chapters/copies.html" + }, + { + "vuid": "VUID-VkCopyMemoryToImageIndirectInfoKHR-dstImage-10955", + "text": "The format features of dstImage must contain VK_FORMAT_FEATURE_2_COPY_IMAGE_INDIRECT_DST_BIT_KHR", + "page": "chapters/copies.html" + }, + { + "vuid": "VUID-VkCopyMemoryToImageIndirectInfoKHR-dstImage-07661", + "text": "dstImage must not be a protected image", + "page": "chapters/copies.html" + }, + { + "vuid": "VUID-VkCopyMemoryToImageIndirectInfoKHR-aspectMask-07662", + "text": "The aspectMask member for every subresource in pImageSubresources must only have a single bit set", + "page": "chapters/copies.html" + }, + { + "vuid": "VUID-VkCopyMemoryToImageIndirectInfoKHR-dstImage-07663", + "text": "The image region specified by each element in copyBufferAddress must be a region that is contained within dstImage", + "page": "chapters/copies.html" + }, + { + "vuid": "VUID-VkCopyMemoryToImageIndirectInfoKHR-dstImage-07664", + "text": "dstImage must have been created with VK_IMAGE_USAGE_TRANSFER_DST_BIT usage flag", + "page": "chapters/copies.html" + }, + { + "vuid": "VUID-VkCopyMemoryToImageIndirectInfoKHR-dstImage-07665", + "text": "If dstImage is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object", + "page": "chapters/copies.html" + }, + { + "vuid": "VUID-VkCopyMemoryToImageIndirectInfoKHR-dstImage-07973", + "text": "dstImage must have a sample count equal to VK_SAMPLE_COUNT_1_BIT", + "page": "chapters/copies.html" + }, + { + "vuid": "VUID-VkCopyMemoryToImageIndirectInfoKHR-dstImageLayout-07667", + "text": "dstImageLayout must specify the layout of the image subresources of dstImage at the time this command is executed on a VkDevice", + "page": "chapters/copies.html" + }, + { + "vuid": "VUID-VkCopyMemoryToImageIndirectInfoKHR-dstImageLayout-07669", + "text": "dstImageLayout must be VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR, or VK_IMAGE_LAYOUT_GENERAL", + "page": "chapters/copies.html" + }, + { + "vuid": "VUID-VkCopyMemoryToImageIndirectInfoKHR-mipLevel-07670", + "text": "The specified mipLevel of each region in pImageSubresources must be less than the mipLevels specified in VkImageCreateInfo when dstImage was created", + "page": "chapters/copies.html" + }, + { + "vuid": "VUID-VkCopyMemoryToImageIndirectInfoKHR-layerCount-08764", + "text": "If the specified layerCount of each region in pImageSubresources is not VK_REMAINING_ARRAY_LAYERS, the specified baseArrayLayer + layerCount of each region in pImageSubresources must be less than or equal to the arrayLayers specified in VkImageCreateInfo when dstImage was created", + "page": "chapters/copies.html" + }, + { + "vuid": "VUID-VkCopyMemoryToImageIndirectInfoKHR-dstImage-07673", + "text": "dstImage must not have been created with flags containing VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT", + "page": "chapters/copies.html" + }, + { + "vuid": "VUID-VkCopyMemoryToImageIndirectInfoKHR-commandBuffer-07674", + "text": "If the queue family used to create the VkCommandPool which commandBuffer was allocated from does not support VK_QUEUE_GRAPHICS_BIT, for each region, the aspectMask member of pImageSubresources must not be VK_IMAGE_ASPECT_DEPTH_BIT or VK_IMAGE_ASPECT_STENCIL_BIT", + "page": "chapters/copies.html" + }, + { + "vuid": "VUID-VkCopyMemoryToImageIndirectInfoKHR-dstImage-10974", + "text": "The format features of dstImage must contain VK_FORMAT_FEATURE_TRANSFER_DST_BIT", + "page": "chapters/copies.html" + }, + { + "vuid": "VUID-VkCopyMemoryToImageIndirectInfoKHR-copyBufferAddress-10975", + "text": "Any of the source or destination memory regions specified in copyBufferAddress must not overlap with any of the specified destination memory regions", + "page": "chapters/copies.html" + }, + { + "vuid": "VUID-VkCopyMemoryToImageIndirectInfoKHR-sType-sType", + "text": "sType must be VK_STRUCTURE_TYPE_COPY_MEMORY_TO_IMAGE_INDIRECT_INFO_KHR", + "page": "chapters/copies.html" + }, + { + "vuid": "VUID-VkCopyMemoryToImageIndirectInfoKHR-pNext-pNext", + "text": "pNext must be NULL", + "page": "chapters/copies.html" + }, + { + "vuid": "VUID-VkCopyMemoryToImageIndirectInfoKHR-srcCopyFlags-parameter", + "text": "srcCopyFlags must be a valid combination of VkAddressCopyFlagBitsKHR values", + "page": "chapters/copies.html" + }, + { + "vuid": "VUID-VkCopyMemoryToImageIndirectInfoKHR-srcCopyFlags-requiredbitmask", + "text": "srcCopyFlags must not be 0", + "page": "chapters/copies.html" + }, + { + "vuid": "VUID-VkCopyMemoryToImageIndirectInfoKHR-dstImage-parameter", + "text": "dstImage must be a valid VkImage handle", + "page": "chapters/copies.html" + }, + { + "vuid": "VUID-VkCopyMemoryToImageIndirectInfoKHR-dstImageLayout-parameter", + "text": "dstImageLayout must be a valid VkImageLayout value", + "page": "chapters/copies.html" + }, + { + "vuid": "VUID-VkCopyMemoryToImageIndirectInfoKHR-pImageSubresources-parameter", + "text": "pImageSubresources must be a valid pointer to an array of copyCount valid VkImageSubresourceLayers structures", + "page": "chapters/copies.html" + }, + { + "vuid": "VUID-VkCopyMemoryToImageIndirectInfoKHR-copyCount-arraylength", + "text": "copyCount must be greater than 0", + "page": "chapters/copies.html" + } + ] + }, + "VkCopyMemoryToImageIndirectCommandKHR": { + "core": [ + { + "vuid": "VUID-VkCopyMemoryToImageIndirectCommandKHR-srcAddress-10963", "text": "The srcAddress must be 4 byte aligned", "page": "chapters/copies.html" }, { - "vuid": "VUID-VkCopyMemoryIndirectCommandNV-dstAddress-07658", - "text": "The dstAddress must be 4 byte aligned", + "vuid": "VUID-VkCopyMemoryToImageIndirectCommandKHR-bufferRowLength-10964", + "text": "bufferRowLength must be 0, or greater than or equal to the width member of imageExtent", "page": "chapters/copies.html" }, { - "vuid": "VUID-VkCopyMemoryIndirectCommandNV-size-07659", - "text": "The size must be 4 byte aligned", + "vuid": "VUID-VkCopyMemoryToImageIndirectCommandKHR-bufferImageHeight-10965", + "text": "bufferImageHeight must be 0, or greater than or equal to the height member of imageExtent", "page": "chapters/copies.html" }, { - "vuid": "VUID-VkCopyMemoryIndirectCommandNV-srcAddress-parameter", + "vuid": "VUID-VkCopyMemoryToImageIndirectCommandKHR-imageOffset-10966", + "text": "imageOffset must specify a valid offset in the destination image", + "page": "chapters/copies.html" + }, + { + "vuid": "VUID-VkCopyMemoryToImageIndirectCommandKHR-imageExtent-10967", + "text": "imageExtent must specify a valid region in the destination image and can be 0", + "page": "chapters/copies.html" + }, + { + "vuid": "VUID-VkCopyMemoryToImageIndirectCommandKHR-srcAddress-10968", + "text": "The memory region starting at srcAddress and described by bufferRowLength and bufferImageHeight must not exceed the bounds of the memory allocation backing memory at srcAddress", + "page": "chapters/copies.html" + }, + { + "vuid": "VUID-VkCopyMemoryToImageIndirectCommandKHR-imageOffset-10969", + "text": "The imageOffset and imageExtent members of each region must respect the image transfer granularity requirements of commandBuffer’s command pool’s queue family, as described in VkQueueFamilyProperties", + "page": "chapters/copies.html" + }, + { + "vuid": "VUID-VkCopyMemoryToImageIndirectCommandKHR-imageOffset-10970", + "text": "For each destination region, 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 subresource", + "page": "chapters/copies.html" + }, + { + "vuid": "VUID-VkCopyMemoryToImageIndirectCommandKHR-imageOffset-10971", + "text": "For each destination region, 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 subresource", + "page": "chapters/copies.html" + }, + { + "vuid": "VUID-VkCopyMemoryToImageIndirectCommandKHR-dstImage-10972", + "text": "If dstImage is of type VK_IMAGE_TYPE_3D, for each destination region, imageSubresource.baseArrayLayer and (imageSubresource.baseArrayLayer + imageSubresource.layerCount) must both be greater than or equal to 0 and less than or equal to the depth of the specified subresource", + "page": "chapters/copies.html" + }, + { + "vuid": "VUID-VkCopyMemoryToImageIndirectCommandKHR-dstImage-10973", + "text": "If dstImage is of type VK_IMAGE_TYPE_3D, imageOffset.z and imageExtent.depth are ignored as base slice and number of slices to copy are read from baseArrayLayer and layerCount from VkImageSubresourceLayers in VkCopyMemoryToImageIndirectInfoKHR at the time of command recording", + "page": "chapters/copies.html" + }, + { + "vuid": "VUID-VkCopyMemoryToImageIndirectCommandKHR-srcAddress-parameter", "text": "srcAddress must be a valid VkDeviceAddress value", "page": "chapters/copies.html" }, { - "vuid": "VUID-VkCopyMemoryIndirectCommandNV-dstAddress-parameter", - "text": "dstAddress must be a valid VkDeviceAddress value", + "vuid": "VUID-VkCopyMemoryToImageIndirectCommandKHR-imageSubresource-parameter", + "text": "imageSubresource must be a valid VkImageSubresourceLayers structure", "page": "chapters/copies.html" } ] @@ -43687,6 +44111,21 @@ "text": "The indirectCopy feature must be enabled", "page": "chapters/copies.html" }, + { + "vuid": "VUID-vkCmdCopyMemoryToImageIndirectNV-offset-07676", + "text": "copyBufferAddress must be 4 byte aligned", + "page": "chapters/copies.html" + }, + { + "vuid": "VUID-vkCmdCopyMemoryToImageIndirectNV-stride-07677", + "text": "stride must be a multiple of 4 and must be greater than or equal to sizeof(VkCopyMemoryToImageIndirectCommandNV)", + "page": "chapters/copies.html" + }, + { + "vuid": "VUID-vkCmdCopyMemoryToImageIndirectNV-commandBuffer-10956", + "text": "The VkCommandPool that commandBuffer was allocated from must support at least one of the queue types specified in VkPhysicalDeviceCopyMemoryIndirectPropertiesKHR::supportedQueues", + "page": "chapters/copies.html" + }, { "vuid": "VUID-vkCmdCopyMemoryToImageIndirectNV-dstImage-07661", "text": "dstImage must not be a protected image", @@ -43729,17 +44168,12 @@ }, { "vuid": "VUID-vkCmdCopyMemoryToImageIndirectNV-mipLevel-07670", - "text": "The specified mipLevel of each region must be less than the mipLevels specified in VkImageCreateInfo when dstImage was created", + "text": "The specified mipLevel of each region in pImageSubresources must be less than the mipLevels specified in VkImageCreateInfo when dstImage was created", "page": "chapters/copies.html" }, { "vuid": "VUID-vkCmdCopyMemoryToImageIndirectNV-layerCount-08764", - "text": "If layerCount is not VK_REMAINING_ARRAY_LAYERS, the specified baseArrayLayer + layerCount of each region must be less than or equal to the arrayLayers specified in VkImageCreateInfo when dstImage was created", - "page": "chapters/copies.html" - }, - { - "vuid": "VUID-vkCmdCopyMemoryToImageIndirectNV-imageOffset-07672", - "text": "The imageOffset and imageExtent members of each region must respect the image transfer granularity requirements of commandBuffer’s command pool’s queue family, as described in VkQueueFamilyProperties", + "text": "If the specified layerCount of each region in pImageSubresources is not VK_REMAINING_ARRAY_LAYERS, the specified baseArrayLayer + layerCount of each region in pImageSubresources must be less than or equal to the arrayLayers specified in VkImageCreateInfo when dstImage was created", "page": "chapters/copies.html" }, { @@ -43753,18 +44187,13 @@ "page": "chapters/copies.html" }, { - "vuid": "VUID-vkCmdCopyMemoryToImageIndirectNV-imageOffset-07675", - "text": "For each region in copyBufferAddress, 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 subresource", + "vuid": "VUID-vkCmdCopyMemoryToImageIndirectNV-dstImage-10974", + "text": "The format features of dstImage must contain VK_FORMAT_FEATURE_TRANSFER_DST_BIT", "page": "chapters/copies.html" }, { - "vuid": "VUID-vkCmdCopyMemoryToImageIndirectNV-offset-07676", - "text": "offset must be 4 byte aligned", - "page": "chapters/copies.html" - }, - { - "vuid": "VUID-vkCmdCopyMemoryToImageIndirectNV-stride-07677", - "text": "stride must be a multiple of 4 and must be greater than or equal to sizeof(VkCopyMemoryToImageIndirectCommandNV)", + "vuid": "VUID-vkCmdCopyMemoryToImageIndirectNV-copyBufferAddress-10975", + "text": "Any of the source or destination memory regions specified in copyBufferAddress must not overlap with any of the specified destination memory regions", "page": "chapters/copies.html" }, { @@ -43824,45 +44253,6 @@ } ] }, - "VkCopyMemoryToImageIndirectCommandNV": { - "core": [ - { - "vuid": "VUID-VkCopyMemoryToImageIndirectCommandNV-srcAddress-07678", - "text": "The srcAddress must be 4 byte aligned", - "page": "chapters/copies.html" - }, - { - "vuid": "VUID-VkCopyMemoryToImageIndirectCommandNV-bufferRowLength-07679", - "text": "bufferRowLength must be 0, or greater than or equal to the width member of imageExtent", - "page": "chapters/copies.html" - }, - { - "vuid": "VUID-VkCopyMemoryToImageIndirectCommandNV-bufferImageHeight-07680", - "text": "bufferImageHeight must be 0, or greater than or equal to the height member of imageExtent", - "page": "chapters/copies.html" - }, - { - "vuid": "VUID-VkCopyMemoryToImageIndirectCommandNV-imageOffset-07681", - "text": "imageOffset must specify a valid offset in the destination image", - "page": "chapters/copies.html" - }, - { - "vuid": "VUID-VkCopyMemoryToImageIndirectCommandNV-imageExtent-07682", - "text": "imageExtent must specify a valid region in the destination image and can be 0", - "page": "chapters/copies.html" - }, - { - "vuid": "VUID-VkCopyMemoryToImageIndirectCommandNV-srcAddress-parameter", - "text": "srcAddress must be a valid VkDeviceAddress value", - "page": "chapters/copies.html" - }, - { - "vuid": "VUID-VkCopyMemoryToImageIndirectCommandNV-imageSubresource-parameter", - "text": "imageSubresource must be a valid VkImageSubresourceLayers structure", - "page": "chapters/copies.html" - } - ] - }, "vkCmdBlitImage": { "core": [ { @@ -105729,6 +106119,15 @@ } ] }, + "VkPhysicalDeviceCopyMemoryIndirectFeaturesKHR": { + "core": [ + { + "vuid": "VUID-VkPhysicalDeviceCopyMemoryIndirectFeaturesKHR-sType-sType", + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_FEATURES_KHR", + "page": "chapters/features.html" + } + ] + }, "VkPhysicalDeviceVertexAttributeDivisorFeatures": { "core": [ { @@ -107991,11 +108390,11 @@ } ] }, - "VkPhysicalDeviceCopyMemoryIndirectPropertiesNV": { + "VkPhysicalDeviceCopyMemoryIndirectPropertiesKHR": { "core": [ { - "vuid": "VUID-VkPhysicalDeviceCopyMemoryIndirectPropertiesNV-sType-sType", - "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_PROPERTIES_NV", + "vuid": "VUID-VkPhysicalDeviceCopyMemoryIndirectPropertiesKHR-sType-sType", + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_PROPERTIES_KHR", "page": "chapters/limits.html" } ] diff --git a/registry/vk.xml b/registry/vk.xml old mode 100755 new mode 100644 index 1f4a1f5..b425ea3 --- a/registry/vk.xml +++ b/registry/vk.xml @@ -183,7 +183,7 @@ branch of the member gitlab server. #define VKSC_API_VERSION_1_0 VK_MAKE_API_VERSION(VKSC_API_VARIANT, 1, 0, 0)// Patch version should always be set to 0 // Version of this file -#define VK_HEADER_VERSION 327 +#define VK_HEADER_VERSION 328 // Complete version of this file #define VK_HEADER_VERSION_COMPLETE VK_MAKE_API_VERSION(0, 1, 4, VK_HEADER_VERSION) // Version of this file @@ -410,6 +410,7 @@ typedef void* MTLSharedEvent_id; typedef VkFlags64 VkBufferUsageFlags2; + typedef VkFlags VkAddressCopyFlagsKHR; typedef VkFlags64 VkTensorCreateFlagsARM; typedef VkFlags64 VkTensorUsageFlagsARM; typedef VkFlags64 VkTensorViewCreateFlagsARM; @@ -874,6 +875,7 @@ typedef void* MTLSharedEvent_id; + @@ -1491,18 +1493,43 @@ typedef void* MTLSharedEvent_id; VkOffset3D imageOffsetSpecified in pixels for both compressed and uncompressed images VkExtent3D imageExtentSpecified in pixels for both compressed and uncompressed images - - VkDeviceAddress srcAddress - VkDeviceAddress dstAddress - VkDeviceSize sizeSpecified in bytes + + VkDeviceAddress address + VkDeviceSize size + VkDeviceSize stride - - VkDeviceAddress srcAddress - uint32_t bufferRowLengthSpecified in texels - uint32_t bufferImageHeight - VkImageSubresourceLayers imageSubresource - VkOffset3D imageOffsetSpecified in pixels for both compressed and uncompressed images - VkExtent3D imageExtentSpecified in pixels for both compressed and uncompressed images + + VkDeviceAddress srcAddress + VkDeviceAddress dstAddress + VkDeviceSize size + + + + VkStructureType sType + const void* pNext + VkAddressCopyFlagsKHR srcCopyFlags + VkAddressCopyFlagsKHR dstCopyFlags + uint32_t copyCount + VkStridedDeviceAddressRangeKHR copyAddressRange + + + VkDeviceAddress srcAddress + uint32_t bufferRowLength + uint32_t bufferImageHeight + VkImageSubresourceLayers imageSubresource + VkOffset3D imageOffset + VkExtent3D imageExtent + + + + VkStructureType sType + const void* pNext + VkAddressCopyFlagsKHR srcCopyFlags + uint32_t copyCount + VkStridedDeviceAddressRangeKHR copyAddressRange + VkImage dstImage + VkImageLayout dstImageLayout + const VkImageSubresourceLayers* pImageSubresources VkImageSubresourceLayers srcSubresource @@ -4861,16 +4888,23 @@ typedef void* MTLSharedEvent_id; void* pNext VkBool32 dedicatedAllocationImageAliasing + + VkStructureType sType + void* pNext + VkBool32 indirectMemoryCopy + VkBool32 indirectMemoryToImageCopy + VkStructureType sType void* pNext VkBool32 indirectCopy - - VkStructureType sType + + VkStructureType sType void* pNext - VkQueueFlags supportedQueuesBitfield of which queues are supported for indirect copy + VkQueueFlags supportedQueuesBitmask of VkQueueFlagBits indicating the family of queues that support indirect copy + VkStructureType sType void* pNext @@ -13090,6 +13124,11 @@ typedef void* MTLSharedEvent_id; + + + + + @@ -14094,6 +14133,11 @@ typedef void* MTLSharedEvent_id; uint32_t copyCount uint32_t stride + + void vkCmdCopyMemoryIndirectKHR + VkCommandBuffer commandBuffer + const VkCopyMemoryIndirectInfoKHR* pCopyMemoryIndirectInfo + void vkCmdCopyMemoryToImageIndirectNV VkCommandBuffer commandBuffer @@ -14104,6 +14148,11 @@ typedef void* MTLSharedEvent_id; VkImageLayout dstImageLayout const VkImageSubresourceLayers* pImageSubresources + + void vkCmdCopyMemoryToImageIndirectKHR + VkCommandBuffer commandBuffer + const VkCopyMemoryToImageIndirectInfoKHR* pCopyMemoryToImageIndirectInfo + void vkCmdUpdateBuffer VkCommandBuffer commandBuffer @@ -25816,12 +25865,12 @@ typedef void* MTLSharedEvent_id; - + - - + + @@ -27781,12 +27830,28 @@ typedef void* MTLSharedEvent_id; - + - - - - + + + + + + + + + + + + + + + + + + + + @@ -31258,6 +31323,9 @@ typedef void* MTLSharedEvent_id; + + + @@ -31299,7 +31367,7 @@ typedef void* MTLSharedEvent_id; - + @@ -31385,7 +31453,7 @@ typedef void* MTLSharedEvent_id; - + @@ -31536,6 +31604,7 @@ typedef void* MTLSharedEvent_id; VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT + VK_PIPELINE_STAGE_2_COPY_INDIRECT_BIT_KHR VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT @@ -31565,10 +31634,12 @@ typedef void* MTLSharedEvent_id; VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT + VK_PIPELINE_STAGE_2_COPY_INDIRECT_BIT_KHR VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT + VK_PIPELINE_STAGE_2_COPY_INDIRECT_BIT_KHR VK_PIPELINE_STAGE_2_TRANSFER_BIT