From a1c3885d4e1f7a585bd1fd6635f90f43f6b9516a Mon Sep 17 00:00:00 2001 From: Jon Leech Date: Fri, 1 Aug 2025 04:14:14 +0100 Subject: [PATCH] Update for Vulkan-Docs 1.4.324 --- include/vulkan/vulkan.cppm | 31 +- include/vulkan/vulkan.hpp | 135 +- include/vulkan/vulkan_beta.h | 31 + include/vulkan/vulkan_core.h | 26 +- include/vulkan/vulkan_enums.hpp | 42 +- .../vulkan/vulkan_extension_inspection.hpp | 49 +- include/vulkan/vulkan_handles.hpp | 8 +- include/vulkan/vulkan_hash.hpp | 24 +- include/vulkan/vulkan_hpp_macros.hpp | 23 +- include/vulkan/vulkan_raii.hpp | 4590 ++++++++--------- include/vulkan/vulkan_static_assertions.hpp | 32 +- include/vulkan/vulkan_structs.hpp | 392 +- include/vulkan/vulkan_to_string.hpp | 43 +- include/vulkan/vulkan_video.cppm | 286 +- include/vulkan/vulkan_video.hpp | 90 + registry/base_generator.py | 1 + registry/validusage.json | 2751 +++++----- registry/vk.xml | 80 +- 18 files changed, 4698 insertions(+), 3936 deletions(-) diff --git a/include/vulkan/vulkan.cppm b/include/vulkan/vulkan.cppm index 6193a41..4079065 100644 --- a/include/vulkan/vulkan.cppm +++ b/include/vulkan/vulkan.cppm @@ -875,6 +875,11 @@ export namespace VULKAN_HPP_NAMESPACE using VULKAN_HPP_NAMESPACE::AntiLagModeAMD; using VULKAN_HPP_NAMESPACE::AntiLagStageAMD; +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + //=== VK_AMDX_dense_geometry_format === + using VULKAN_HPP_NAMESPACE::CompressedTriangleFormatAMDX; +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + //=== VK_EXT_shader_object === using VULKAN_HPP_NAMESPACE::ShaderCodeTypeEXT; using VULKAN_HPP_NAMESPACE::ShaderCreateFlagBitsEXT; @@ -2533,6 +2538,14 @@ export namespace VULKAN_HPP_NAMESPACE using VULKAN_HPP_NAMESPACE::AMDAntiLagExtensionName; using VULKAN_HPP_NAMESPACE::AMDAntiLagSpecVersion; +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + //=== VK_AMDX_dense_geometry_format === + using VULKAN_HPP_NAMESPACE::AMDXDenseGeometryFormatExtensionName; + using VULKAN_HPP_NAMESPACE::AMDXDenseGeometryFormatSpecVersion; + using VULKAN_HPP_NAMESPACE::CompressedTriangleFormatDgf1ByteAlignmentAMDX; + using VULKAN_HPP_NAMESPACE::CompressedTriangleFormatDgf1ByteStrideAMDX; +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + //=== VK_KHR_present_id2 === using VULKAN_HPP_NAMESPACE::KHRPresentId2ExtensionName; using VULKAN_HPP_NAMESPACE::KHRPresentId2SpecVersion; @@ -4654,6 +4667,12 @@ export namespace VULKAN_HPP_NAMESPACE using VULKAN_HPP_NAMESPACE::AntiLagPresentationInfoAMD; using VULKAN_HPP_NAMESPACE::PhysicalDeviceAntiLagFeaturesAMD; +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + //=== VK_AMDX_dense_geometry_format === + using VULKAN_HPP_NAMESPACE::AccelerationStructureDenseGeometryFormatTrianglesDataAMDX; + using VULKAN_HPP_NAMESPACE::PhysicalDeviceDenseGeometryFormatFeaturesAMDX; +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + //=== VK_KHR_present_id2 === using VULKAN_HPP_NAMESPACE::PhysicalDevicePresentId2FeaturesKHR; using VULKAN_HPP_NAMESPACE::PresentId2KHR; @@ -8360,6 +8379,14 @@ export namespace std template <> struct hash; +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + //=== VK_AMDX_dense_geometry_format === + template <> + struct hash; + template <> + struct hash; +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + //=== VK_KHR_present_id2 === template <> struct hash; @@ -8944,9 +8971,9 @@ export namespace std //=== VK_KHR_maintenance8 === template <> - struct hash; - template <> struct hash; + template <> + struct hash; //=== VK_MESA_image_alignment_control === template <> diff --git a/include/vulkan/vulkan.hpp b/include/vulkan/vulkan.hpp index 163afa3..9498f32 100644 --- a/include/vulkan/vulkan.hpp +++ b/include/vulkan/vulkan.hpp @@ -56,7 +56,7 @@ extern "C" __declspec( dllimport ) FARPROC __stdcall GetProcAddress( HINSTANCE h # endif #endif -static_assert( VK_HEADER_VERSION == 323, "Wrong VK_HEADER_VERSION!" ); +static_assert( VK_HEADER_VERSION == 324, "Wrong VK_HEADER_VERSION!" ); // includes through some other header // this results in major(x) being resolved to gnu_dev_major(x) @@ -7243,6 +7243,36 @@ namespace VULKAN_HPP_NAMESPACE { return std::tuple( result, value ); } + + // std::expected-look alike + bool has_value() const VULKAN_HPP_NOEXCEPT + { + return result == vk::Result::eSuccess; + } + + T const * operator->() const VULKAN_HPP_NOEXCEPT + { + assert( has_value() ); + return &value; + } + + T * operator->() VULKAN_HPP_NOEXCEPT + { + assert( has_value() ); + return &value; + } + + T const & operator*() const VULKAN_HPP_NOEXCEPT + { + assert( has_value() ); + return value; + } + + T & operator*() VULKAN_HPP_NOEXCEPT + { + assert( has_value() ); + return value; + } }; #if !defined( VULKAN_HPP_NO_SMART_HANDLE ) @@ -7330,8 +7360,9 @@ namespace VULKAN_HPP_NAMESPACE namespace detail { template - void ignore( T const & ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR bool ignore( T const & ) VULKAN_HPP_NOEXCEPT { + return true; } VULKAN_HPP_INLINE typename ResultValueType::type createResultValueType( Result result ) @@ -7470,6 +7501,12 @@ namespace VULKAN_HPP_NAMESPACE //=== VK_EXT_shader_module_identifier === VULKAN_HPP_CONSTEXPR_INLINE uint32_t MaxShaderModuleIdentifierSizeEXT = VK_MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT; +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + //=== VK_AMDX_dense_geometry_format === + VULKAN_HPP_CONSTEXPR_INLINE uint32_t CompressedTriangleFormatDgf1ByteAlignmentAMDX = VK_COMPRESSED_TRIANGLE_FORMAT_DGF1_BYTE_ALIGNMENT_AMDX; + VULKAN_HPP_CONSTEXPR_INLINE uint32_t CompressedTriangleFormatDgf1ByteStrideAMDX = VK_COMPRESSED_TRIANGLE_FORMAT_DGF1_BYTE_STRIDE_AMDX; +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + //=== VK_KHR_pipeline_binary === VULKAN_HPP_CONSTEXPR_INLINE uint32_t MaxPipelineBinaryKeySizeKHR = VK_MAX_PIPELINE_BINARY_KEY_SIZE_KHR; @@ -9023,6 +9060,12 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_CONSTEXPR_INLINE auto AMDAntiLagExtensionName = VK_AMD_ANTI_LAG_EXTENSION_NAME; VULKAN_HPP_CONSTEXPR_INLINE auto AMDAntiLagSpecVersion = VK_AMD_ANTI_LAG_SPEC_VERSION; +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + //=== VK_AMDX_dense_geometry_format === + VULKAN_HPP_CONSTEXPR_INLINE auto AMDXDenseGeometryFormatExtensionName = VK_AMDX_DENSE_GEOMETRY_FORMAT_EXTENSION_NAME; + VULKAN_HPP_CONSTEXPR_INLINE auto AMDXDenseGeometryFormatSpecVersion = VK_AMDX_DENSE_GEOMETRY_FORMAT_SPEC_VERSION; +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + //=== VK_KHR_present_id2 === VULKAN_HPP_CONSTEXPR_INLINE auto KHRPresentId2ExtensionName = VK_KHR_PRESENT_ID_2_EXTENSION_NAME; VULKAN_HPP_CONSTEXPR_INLINE auto KHRPresentId2SpecVersion = VK_KHR_PRESENT_ID_2_SPEC_VERSION; @@ -15745,6 +15788,16 @@ namespace VULKAN_HPP_NAMESPACE value = true }; }; +# if defined( VK_ENABLE_BETA_EXTENSIONS ) + template <> + struct StructExtends + { + enum + { + value = true + }; + }; +# endif /*VK_ENABLE_BETA_EXTENSIONS*/ # if defined( VK_ENABLE_BETA_EXTENSIONS ) //=== VK_NV_displacement_micromap === @@ -16779,6 +16832,36 @@ namespace VULKAN_HPP_NAMESPACE }; }; +# if defined( VK_ENABLE_BETA_EXTENSIONS ) + //=== VK_AMDX_dense_geometry_format === + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + + template <> + struct StructExtends + { + enum + { + value = true + }; + }; +# endif /*VK_ENABLE_BETA_EXTENSIONS*/ + //=== VK_KHR_present_id2 === template <> struct StructExtends @@ -18681,24 +18764,6 @@ namespace VULKAN_HPP_NAMESPACE }; //=== VK_KHR_maintenance8 === - template <> - struct StructExtends - { - enum - { - value = true - }; - }; - - template <> - struct StructExtends - { - enum - { - value = true - }; - }; - template <> struct StructExtends { @@ -18726,6 +18791,24 @@ namespace VULKAN_HPP_NAMESPACE }; }; + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + + template <> + struct StructExtends + { + enum + { + value = true + }; + }; + //=== VK_MESA_image_alignment_control === template <> struct StructExtends @@ -19250,6 +19333,12 @@ namespace VULKAN_HPP_NAMESPACE { m_library = dlopen( "libvulkan.1.dylib", RTLD_NOW | RTLD_LOCAL ); } + // modern versions of macOS don't search /usr/local/lib automatically contrary to what man dlopen says + // Vulkan SDK uses this as the system-wide installation location, so we're going to fallback to this if all else fails + if ( !m_library && ( getenv( "DYLD_FALLBACK_LIBRARY_PATH" ) == NULL ) ) + { + m_library = dlopen( "/usr/local/lib/libvulkan.dylib", RTLD_NOW | RTLD_LOCAL ); + } if ( !m_library ) { m_library = dlopen( "libMoltenVK.dylib", RTLD_NOW | RTLD_LOCAL ); @@ -19264,12 +19353,6 @@ namespace VULKAN_HPP_NAMESPACE { m_library = dlopen( "MoltenVK.framework/MoltenVK", RTLD_NOW | RTLD_LOCAL ); } - // modern versions of macOS don't search /usr/local/lib automatically contrary to what man dlopen says - // Vulkan SDK uses this as the system-wide installation location, so we're going to fallback to this if all else fails - if ( !m_library && ( getenv( "DYLD_FALLBACK_LIBRARY_PATH" ) == NULL ) ) - { - m_library = dlopen( "/usr/local/lib/libvulkan.dylib", RTLD_NOW | RTLD_LOCAL ); - } # elif defined( __unix__ ) || defined( __QNX__ ) || defined( __Fuchsia__ ) m_library = dlopen( "libvulkan.so", RTLD_NOW | RTLD_LOCAL ); if ( !m_library ) diff --git a/include/vulkan/vulkan_beta.h b/include/vulkan/vulkan_beta.h index ed6fd94..0f48f87 100644 --- a/include/vulkan/vulkan_beta.h +++ b/include/vulkan/vulkan_beta.h @@ -337,6 +337,37 @@ typedef struct VkAccelerationStructureTrianglesDisplacementMicromapNV { } VkAccelerationStructureTrianglesDisplacementMicromapNV; + +// VK_AMDX_dense_geometry_format is a preprocessor guard. Do not pass it to API calls. +#define VK_AMDX_dense_geometry_format 1 +#define VK_AMDX_DENSE_GEOMETRY_FORMAT_SPEC_VERSION 1 +#define VK_AMDX_DENSE_GEOMETRY_FORMAT_EXTENSION_NAME "VK_AMDX_dense_geometry_format" +#define VK_COMPRESSED_TRIANGLE_FORMAT_DGF1_BYTE_ALIGNMENT_AMDX 128U +#define VK_COMPRESSED_TRIANGLE_FORMAT_DGF1_BYTE_STRIDE_AMDX 128U + +typedef enum VkCompressedTriangleFormatAMDX { + VK_COMPRESSED_TRIANGLE_FORMAT_DGF1_AMDX = 0, + VK_COMPRESSED_TRIANGLE_FORMAT_MAX_ENUM_AMDX = 0x7FFFFFFF +} VkCompressedTriangleFormatAMDX; +typedef struct VkPhysicalDeviceDenseGeometryFormatFeaturesAMDX { + VkStructureType sType; + void* pNext; + VkBool32 denseGeometryFormat; +} VkPhysicalDeviceDenseGeometryFormatFeaturesAMDX; + +typedef struct VkAccelerationStructureDenseGeometryFormatTrianglesDataAMDX { + VkStructureType sType; + const void* pNext; + VkDeviceOrHostAddressConstKHR compressedData; + VkDeviceSize dataSize; + uint32_t numTriangles; + uint32_t numVertices; + uint32_t maxPrimitiveIndex; + uint32_t maxGeometryIndex; + VkCompressedTriangleFormatAMDX format; +} VkAccelerationStructureDenseGeometryFormatTrianglesDataAMDX; + + #ifdef __cplusplus } #endif diff --git a/include/vulkan/vulkan_core.h b/include/vulkan/vulkan_core.h index 77952c2..7976810 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 323 +#define VK_HEADER_VERSION 324 // Complete version of this file #define VK_HEADER_VERSION_COMPLETE VK_MAKE_API_VERSION(0, 1, 4, VK_HEADER_VERSION) @@ -1086,6 +1086,12 @@ typedef enum VkStructureType { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ANTI_LAG_FEATURES_AMD = 1000476000, VK_STRUCTURE_TYPE_ANTI_LAG_DATA_AMD = 1000476001, VK_STRUCTURE_TYPE_ANTI_LAG_PRESENTATION_INFO_AMD = 1000476002, +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DENSE_GEOMETRY_FORMAT_FEATURES_AMDX = 1000478000, +#endif +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DENSE_GEOMETRY_FORMAT_TRIANGLES_DATA_AMDX = 1000478001, +#endif VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_PRESENT_ID_2_KHR = 1000479000, VK_STRUCTURE_TYPE_PRESENT_ID_2_KHR = 1000479001, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_2_FEATURES_KHR = 1000479002, @@ -8100,6 +8106,9 @@ static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_RESOURCE_DESCRIPTOR_BUFFER static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT = 0x04000000ULL; static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT = 0x00800000ULL; static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_MICROMAP_STORAGE_BIT_EXT = 0x01000000ULL; +#ifdef VK_ENABLE_BETA_EXTENSIONS +static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_COMPRESSED_DATA_DGF1_BIT_AMDX = 0x200000000ULL; +#endif static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_DATA_GRAPH_FOREIGN_DESCRIPTOR_BIT_ARM = 0x20000000ULL; static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_TILE_MEMORY_BIT_QCOM = 0x08000000ULL; static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_PREPROCESS_BUFFER_BIT_EXT = 0x80000000ULL; @@ -13616,12 +13625,6 @@ typedef VkFlags64 VkAccessFlags3KHR; typedef VkFlags64 VkAccessFlagBits3KHR; static const VkAccessFlagBits3KHR VK_ACCESS_3_NONE_KHR = 0ULL; -typedef struct VkPhysicalDeviceMaintenance8FeaturesKHR { - VkStructureType sType; - void* pNext; - VkBool32 maintenance8; -} VkPhysicalDeviceMaintenance8FeaturesKHR; - typedef struct VkMemoryBarrierAccessFlags3KHR { VkStructureType sType; const void* pNext; @@ -13629,6 +13632,12 @@ typedef struct VkMemoryBarrierAccessFlags3KHR { VkAccessFlags3KHR dstAccessMask3; } VkMemoryBarrierAccessFlags3KHR; +typedef struct VkPhysicalDeviceMaintenance8FeaturesKHR { + VkStructureType sType; + void* pNext; + VkBool32 maintenance8; +} VkPhysicalDeviceMaintenance8FeaturesKHR; + // VK_KHR_maintenance9 is a preprocessor guard. Do not pass it to API calls. @@ -15728,6 +15737,9 @@ typedef enum VkGeometryTypeKHR { VK_GEOMETRY_TYPE_INSTANCES_KHR = 2, VK_GEOMETRY_TYPE_SPHERES_NV = 1000429004, VK_GEOMETRY_TYPE_LINEAR_SWEPT_SPHERES_NV = 1000429005, +#ifdef VK_ENABLE_BETA_EXTENSIONS + VK_GEOMETRY_TYPE_DENSE_GEOMETRY_FORMAT_TRIANGLES_AMDX = 1000478000, +#endif VK_GEOMETRY_TYPE_TRIANGLES_NV = VK_GEOMETRY_TYPE_TRIANGLES_KHR, VK_GEOMETRY_TYPE_AABBS_NV = VK_GEOMETRY_TYPE_AABBS_KHR, VK_GEOMETRY_TYPE_MAX_ENUM_KHR = 0x7FFFFFFF diff --git a/include/vulkan/vulkan_enums.hpp b/include/vulkan/vulkan_enums.hpp index 25f3a2c..f1d073d 100644 --- a/include/vulkan/vulkan_enums.hpp +++ b/include/vulkan/vulkan_enums.hpp @@ -1429,9 +1429,13 @@ namespace VULKAN_HPP_NAMESPACE ePhysicalDeviceExternalFormatResolvePropertiesANDROID = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_PROPERTIES_ANDROID, eAndroidHardwareBufferFormatResolvePropertiesANDROID = VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_RESOLVE_PROPERTIES_ANDROID, #endif /*VK_USE_PLATFORM_ANDROID_KHR*/ - ePhysicalDeviceAntiLagFeaturesAMD = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ANTI_LAG_FEATURES_AMD, - eAntiLagDataAMD = VK_STRUCTURE_TYPE_ANTI_LAG_DATA_AMD, - eAntiLagPresentationInfoAMD = VK_STRUCTURE_TYPE_ANTI_LAG_PRESENTATION_INFO_AMD, + ePhysicalDeviceAntiLagFeaturesAMD = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ANTI_LAG_FEATURES_AMD, + eAntiLagDataAMD = VK_STRUCTURE_TYPE_ANTI_LAG_DATA_AMD, + eAntiLagPresentationInfoAMD = VK_STRUCTURE_TYPE_ANTI_LAG_PRESENTATION_INFO_AMD, +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + ePhysicalDeviceDenseGeometryFormatFeaturesAMDX = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DENSE_GEOMETRY_FORMAT_FEATURES_AMDX, + eAccelerationStructureDenseGeometryFormatTrianglesDataAMDX = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DENSE_GEOMETRY_FORMAT_TRIANGLES_DATA_AMDX, +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ eSurfaceCapabilitiesPresentId2KHR = VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_PRESENT_ID_2_KHR, ePresentId2KHR = VK_STRUCTURE_TYPE_PRESENT_ID_2_KHR, ePhysicalDevicePresentId2FeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_2_FEATURES_KHR, @@ -5281,9 +5285,12 @@ namespace VULKAN_HPP_NAMESPACE ePushDescriptorsDescriptorBufferEXT = VK_BUFFER_USAGE_2_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT, eMicromapBuildInputReadOnlyEXT = VK_BUFFER_USAGE_2_MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT, eMicromapStorageEXT = VK_BUFFER_USAGE_2_MICROMAP_STORAGE_BIT_EXT, - eDataGraphForeignDescriptorARM = VK_BUFFER_USAGE_2_DATA_GRAPH_FOREIGN_DESCRIPTOR_BIT_ARM, - eTileMemoryQCOM = VK_BUFFER_USAGE_2_TILE_MEMORY_BIT_QCOM, - ePreprocessBufferEXT = VK_BUFFER_USAGE_2_PREPROCESS_BUFFER_BIT_EXT +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + eCompressedDataDgf1AMDX = VK_BUFFER_USAGE_2_COMPRESSED_DATA_DGF1_BIT_AMDX, +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + eDataGraphForeignDescriptorARM = VK_BUFFER_USAGE_2_DATA_GRAPH_FOREIGN_DESCRIPTOR_BIT_ARM, + eTileMemoryQCOM = VK_BUFFER_USAGE_2_TILE_MEMORY_BIT_QCOM, + ePreprocessBufferEXT = VK_BUFFER_USAGE_2_PREPROCESS_BUFFER_BIT_EXT }; using BufferUsageFlagBits2KHR = BufferUsageFlagBits2; @@ -5310,8 +5317,11 @@ namespace VULKAN_HPP_NAMESPACE BufferUsageFlagBits2::eVideoEncodeDstKHR | BufferUsageFlagBits2::eVideoEncodeSrcKHR | BufferUsageFlagBits2::eAccelerationStructureBuildInputReadOnlyKHR | BufferUsageFlagBits2::eAccelerationStructureStorageKHR | BufferUsageFlagBits2::eSamplerDescriptorBufferEXT | BufferUsageFlagBits2::eResourceDescriptorBufferEXT | BufferUsageFlagBits2::ePushDescriptorsDescriptorBufferEXT | - BufferUsageFlagBits2::eMicromapBuildInputReadOnlyEXT | BufferUsageFlagBits2::eMicromapStorageEXT | BufferUsageFlagBits2::eDataGraphForeignDescriptorARM | - BufferUsageFlagBits2::eTileMemoryQCOM | BufferUsageFlagBits2::ePreprocessBufferEXT; + BufferUsageFlagBits2::eMicromapBuildInputReadOnlyEXT | BufferUsageFlagBits2::eMicromapStorageEXT +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + | BufferUsageFlagBits2::eCompressedDataDgf1AMDX +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + | BufferUsageFlagBits2::eDataGraphForeignDescriptorARM | BufferUsageFlagBits2::eTileMemoryQCOM | BufferUsageFlagBits2::ePreprocessBufferEXT; }; // wrapper class for enum VkPipelineRobustnessBufferBehavior, see @@ -6907,7 +6917,10 @@ namespace VULKAN_HPP_NAMESPACE eAabbs = VK_GEOMETRY_TYPE_AABBS_KHR, eInstances = VK_GEOMETRY_TYPE_INSTANCES_KHR, eSpheresNV = VK_GEOMETRY_TYPE_SPHERES_NV, - eLinearSweptSpheresNV = VK_GEOMETRY_TYPE_LINEAR_SWEPT_SPHERES_NV + eLinearSweptSpheresNV = VK_GEOMETRY_TYPE_LINEAR_SWEPT_SPHERES_NV, +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + eDenseGeometryFormatTrianglesAMDX = VK_GEOMETRY_TYPE_DENSE_GEOMETRY_FORMAT_TRIANGLES_AMDX +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ }; using GeometryTypeNV = GeometryTypeKHR; @@ -8349,6 +8362,17 @@ namespace VULKAN_HPP_NAMESPACE ePresent = VK_ANTI_LAG_STAGE_PRESENT_AMD }; +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + //=== VK_AMDX_dense_geometry_format === + + // wrapper class for enum VkCompressedTriangleFormatAMDX, see https://registry.khronos.org/vulkan/specs/latest/man/html/VkCompressedTriangleFormatAMDX.html + enum class CompressedTriangleFormatAMDX + { + eDgf1 = VK_COMPRESSED_TRIANGLE_FORMAT_DGF1_AMDX + }; + +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + //=== VK_EXT_shader_object === // wrapper class for enum VkShaderCreateFlagBitsEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/VkShaderCreateFlagBitsEXT.html diff --git a/include/vulkan/vulkan_extension_inspection.hpp b/include/vulkan/vulkan_extension_inspection.hpp index a7d08da..d77b171 100644 --- a/include/vulkan/vulkan_extension_inspection.hpp +++ b/include/vulkan/vulkan_extension_inspection.hpp @@ -411,6 +411,9 @@ namespace VULKAN_HPP_NAMESPACE #endif /*VK_USE_PLATFORM_ANDROID_KHR*/ "VK_KHR_maintenance5", "VK_AMD_anti_lag", +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + "VK_AMDX_dense_geometry_format", +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ "VK_KHR_present_id2", "VK_KHR_present_wait2", "VK_KHR_ray_tracing_position_fetch", @@ -2286,6 +2289,18 @@ namespace VULKAN_HPP_NAMESPACE "VK_KHR_dynamic_rendering", } } }, { "VK_VERSION_1_3", { {} } } } }, +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + { "VK_AMDX_dense_geometry_format", + { { "VK_VERSION_1_0", + { { + "VK_KHR_acceleration_structure", + "VK_KHR_maintenance5", + } } }, + { "VK_VERSION_1_4", + { { + "VK_KHR_acceleration_structure", + } } } } }, +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ { "VK_KHR_present_id2", { { "VK_VERSION_1_0", { { @@ -3601,21 +3616,25 @@ namespace VULKAN_HPP_NAMESPACE #if defined( VK_USE_PLATFORM_ANDROID_KHR ) || ( extension == "VK_ANDROID_external_format_resolve" ) #endif /*VK_USE_PLATFORM_ANDROID_KHR*/ - || ( extension == "VK_KHR_maintenance5" ) || ( extension == "VK_AMD_anti_lag" ) || ( extension == "VK_KHR_present_id2" ) || - ( extension == "VK_KHR_present_wait2" ) || ( extension == "VK_KHR_ray_tracing_position_fetch" ) || ( extension == "VK_EXT_shader_object" ) || - ( extension == "VK_KHR_pipeline_binary" ) || ( extension == "VK_QCOM_tile_properties" ) || ( extension == "VK_SEC_amigo_profiling" ) || - ( extension == "VK_KHR_swapchain_maintenance1" ) || ( extension == "VK_QCOM_multiview_per_view_viewports" ) || - ( extension == "VK_NV_ray_tracing_invocation_reorder" ) || ( extension == "VK_NV_cooperative_vector" ) || - ( extension == "VK_NV_extended_sparse_address_space" ) || ( extension == "VK_EXT_mutable_descriptor_type" ) || - ( extension == "VK_EXT_legacy_vertex_attributes" ) || ( extension == "VK_ARM_shader_core_builtins" ) || - ( extension == "VK_EXT_pipeline_library_group_handles" ) || ( extension == "VK_EXT_dynamic_rendering_unused_attachments" ) || - ( extension == "VK_NV_low_latency2" ) || ( extension == "VK_KHR_cooperative_matrix" ) || ( extension == "VK_ARM_data_graph" ) || - ( extension == "VK_QCOM_multiview_per_view_render_areas" ) || ( extension == "VK_KHR_compute_shader_derivatives" ) || - ( extension == "VK_KHR_video_decode_av1" ) || ( extension == "VK_KHR_video_encode_av1" ) || ( extension == "VK_KHR_video_decode_vp9" ) || - ( extension == "VK_KHR_video_maintenance1" ) || ( extension == "VK_NV_per_stage_descriptor_set" ) || ( extension == "VK_QCOM_image_processing2" ) || - ( extension == "VK_QCOM_filter_cubic_weights" ) || ( extension == "VK_QCOM_ycbcr_degamma" ) || ( extension == "VK_QCOM_filter_cubic_clamp" ) || - ( extension == "VK_EXT_attachment_feedback_loop_dynamic_state" ) || ( extension == "VK_KHR_vertex_attribute_divisor" ) || - ( extension == "VK_KHR_load_store_op_none" ) || ( extension == "VK_KHR_unified_image_layouts" ) || ( extension == "VK_KHR_shader_float_controls2" ) + || ( extension == "VK_KHR_maintenance5" ) || ( extension == "VK_AMD_anti_lag" ) +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + || ( extension == "VK_AMDX_dense_geometry_format" ) +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + || ( extension == "VK_KHR_present_id2" ) || ( extension == "VK_KHR_present_wait2" ) || ( extension == "VK_KHR_ray_tracing_position_fetch" ) || + ( extension == "VK_EXT_shader_object" ) || ( extension == "VK_KHR_pipeline_binary" ) || ( extension == "VK_QCOM_tile_properties" ) || + ( extension == "VK_SEC_amigo_profiling" ) || ( extension == "VK_KHR_swapchain_maintenance1" ) || + ( extension == "VK_QCOM_multiview_per_view_viewports" ) || ( extension == "VK_NV_ray_tracing_invocation_reorder" ) || + ( extension == "VK_NV_cooperative_vector" ) || ( extension == "VK_NV_extended_sparse_address_space" ) || + ( extension == "VK_EXT_mutable_descriptor_type" ) || ( extension == "VK_EXT_legacy_vertex_attributes" ) || + ( extension == "VK_ARM_shader_core_builtins" ) || ( extension == "VK_EXT_pipeline_library_group_handles" ) || + ( extension == "VK_EXT_dynamic_rendering_unused_attachments" ) || ( extension == "VK_NV_low_latency2" ) || + ( extension == "VK_KHR_cooperative_matrix" ) || ( extension == "VK_ARM_data_graph" ) || ( extension == "VK_QCOM_multiview_per_view_render_areas" ) || + ( extension == "VK_KHR_compute_shader_derivatives" ) || ( extension == "VK_KHR_video_decode_av1" ) || ( extension == "VK_KHR_video_encode_av1" ) || + ( extension == "VK_KHR_video_decode_vp9" ) || ( extension == "VK_KHR_video_maintenance1" ) || ( extension == "VK_NV_per_stage_descriptor_set" ) || + ( extension == "VK_QCOM_image_processing2" ) || ( extension == "VK_QCOM_filter_cubic_weights" ) || ( extension == "VK_QCOM_ycbcr_degamma" ) || + ( extension == "VK_QCOM_filter_cubic_clamp" ) || ( extension == "VK_EXT_attachment_feedback_loop_dynamic_state" ) || + ( extension == "VK_KHR_vertex_attribute_divisor" ) || ( extension == "VK_KHR_load_store_op_none" ) || + ( extension == "VK_KHR_unified_image_layouts" ) || ( extension == "VK_KHR_shader_float_controls2" ) #if defined( VK_USE_PLATFORM_SCREEN_QNX ) || ( extension == "VK_QNX_external_memory_screen_buffer" ) #endif /*VK_USE_PLATFORM_SCREEN_QNX*/ diff --git a/include/vulkan/vulkan_handles.hpp b/include/vulkan/vulkan_handles.hpp index af4151b..bb7d304 100644 --- a/include/vulkan/vulkan_handles.hpp +++ b/include/vulkan/vulkan_handles.hpp @@ -1740,6 +1740,12 @@ namespace VULKAN_HPP_NAMESPACE struct AntiLagDataAMD; struct AntiLagPresentationInfoAMD; +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + //=== VK_AMDX_dense_geometry_format === + struct PhysicalDeviceDenseGeometryFormatFeaturesAMDX; + struct AccelerationStructureDenseGeometryFormatTrianglesDataAMDX; +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + //=== VK_KHR_present_id2 === struct SurfaceCapabilitiesPresentId2KHR; struct PresentId2KHR; @@ -2097,8 +2103,8 @@ namespace VULKAN_HPP_NAMESPACE struct WriteIndirectExecutionSetShaderEXT; //=== VK_KHR_maintenance8 === - struct PhysicalDeviceMaintenance8FeaturesKHR; struct MemoryBarrierAccessFlags3KHR; + struct PhysicalDeviceMaintenance8FeaturesKHR; //=== VK_MESA_image_alignment_control === struct PhysicalDeviceImageAlignmentControlFeaturesMESA; diff --git a/include/vulkan/vulkan_hash.hpp b/include/vulkan/vulkan_hash.hpp index ee22504..c73c8ba 100644 --- a/include/vulkan/vulkan_hash.hpp +++ b/include/vulkan/vulkan_hash.hpp @@ -4393,14 +4393,6 @@ namespace std VULKAN_HPP_HASH_COMBINE( seed, deviceCreateInfo.flags ); VULKAN_HPP_HASH_COMBINE( seed, deviceCreateInfo.queueCreateInfoCount ); VULKAN_HPP_HASH_COMBINE( seed, deviceCreateInfo.pQueueCreateInfos ); - VULKAN_HPP_HASH_COMBINE( seed, deviceCreateInfo.enabledLayerCount ); - for ( size_t i = 0; i < deviceCreateInfo.enabledLayerCount; ++i ) - { - for ( const char * p = deviceCreateInfo.ppEnabledLayerNames[i]; *p != '\0'; ++p ) - { - VULKAN_HPP_HASH_COMBINE( seed, *p ); - } - } VULKAN_HPP_HASH_COMBINE( seed, deviceCreateInfo.enabledExtensionCount ); for ( size_t i = 0; i < deviceCreateInfo.enabledExtensionCount; ++i ) { @@ -9492,6 +9484,22 @@ namespace std } }; +# if defined( VK_ENABLE_BETA_EXTENSIONS ) + template <> + struct hash + { + std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceDenseGeometryFormatFeaturesAMDX const & physicalDeviceDenseGeometryFormatFeaturesAMDX ) const + VULKAN_HPP_NOEXCEPT + { + std::size_t seed = 0; + VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDenseGeometryFormatFeaturesAMDX.sType ); + VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDenseGeometryFormatFeaturesAMDX.pNext ); + VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDenseGeometryFormatFeaturesAMDX.denseGeometryFormat ); + return seed; + } + }; +# endif /*VK_ENABLE_BETA_EXTENSIONS*/ + template <> struct hash { diff --git a/include/vulkan/vulkan_hpp_macros.hpp b/include/vulkan/vulkan_hpp_macros.hpp index 6118ef5..5bf0fa7 100644 --- a/include/vulkan/vulkan_hpp_macros.hpp +++ b/include/vulkan/vulkan_hpp_macros.hpp @@ -158,6 +158,11 @@ # else # define VULKAN_HPP_CONSTEXPR_14 # endif +# if 201603 <= __cpp_constexpr +# define VULKAN_HPP_CONSTEXPR_17 constexpr +# else +# define VULKAN_HPP_CONSTEXPR_17 +# endif # if ( 201907 <= __cpp_constexpr ) && ( !defined( __GNUC__ ) || ( 110400 < GCC_VERSION ) ) # define VULKAN_HPP_CONSTEXPR_20 constexpr # else @@ -304,23 +309,9 @@ namespace VULKAN_HPP_NAMESPACE # define VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT = VULKAN_HPP_DEFAULT_DISPATCHER #endif -#if !defined( VULKAN_HPP_EXPECTED ) && ( 23 <= VULKAN_HPP_CPP_VERSION ) && defined( __cpp_lib_expected ) -# if !( defined( VULKAN_HPP_ENABLE_STD_MODULE ) && defined( VULKAN_HPP_STD_MODULE ) ) -# include -# endif -# define VULKAN_HPP_EXPECTED std::expected -# define VULKAN_HPP_UNEXPECTED std::unexpected -#endif - #if !defined( VULKAN_HPP_RAII_NAMESPACE ) -# define VULKAN_HPP_RAII_NAMESPACE raii -#endif - -#if defined( VULKAN_HPP_NO_EXCEPTIONS ) && defined( VULKAN_HPP_EXPECTED ) -# define VULKAN_HPP_RAII_NO_EXCEPTIONS -# define VULKAN_HPP_RAII_CREATE_NOEXCEPT noexcept -#else -# define VULKAN_HPP_RAII_CREATE_NOEXCEPT +# define VULKAN_HPP_RAII_NAMESPACE raii +# define VULKAN_HPP_RAII_NAMESPACE_STRING VULKAN_HPP_STRINGIFY( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE ) #endif #endif diff --git a/include/vulkan/vulkan_raii.hpp b/include/vulkan/vulkan_raii.hpp index 963db26..fb9aec0 100644 --- a/include/vulkan/vulkan_raii.hpp +++ b/include/vulkan/vulkan_raii.hpp @@ -21,17 +21,6 @@ namespace VULKAN_HPP_NAMESPACE { namespace detail { - template - class CreateReturnType - { - public: -# if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) - using Type = VULKAN_HPP_EXPECTED; -# else - using Type = T; -# endif - }; - using PFN_dummy = void ( * )(); class ContextDispatcher : public ::VULKAN_HPP_NAMESPACE::detail::DispatchLoaderBase @@ -3113,22 +3102,23 @@ namespace VULKAN_HPP_NAMESPACE //=== VK_VERSION_1_0 === // wrapper function for command vkCreateInstance, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateInstance.html - VULKAN_HPP_NODISCARD detail::CreateReturnType::Type - createInstance( InstanceCreateInfo const & createInfo, Optional allocator = nullptr ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT; + VULKAN_HPP_NODISCARD typename ResultValueType::type + createInstance( InstanceCreateInfo const & createInfo, + Optional allocator = nullptr ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS; // wrapper function for command vkEnumerateInstanceExtensionProperties, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkEnumerateInstanceExtensionProperties.html - VULKAN_HPP_NODISCARD std::vector - enumerateInstanceExtensionProperties( Optional layerName VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT ) const; + VULKAN_HPP_NODISCARD typename ResultValueType>::type + enumerateInstanceExtensionProperties( Optional layerName VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT ) const; // wrapper function for command vkEnumerateInstanceLayerProperties, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkEnumerateInstanceLayerProperties.html - VULKAN_HPP_NODISCARD std::vector enumerateInstanceLayerProperties() const; + VULKAN_HPP_NODISCARD typename ResultValueType>::type enumerateInstanceLayerProperties() const; //=== VK_VERSION_1_1 === // wrapper function for command vkEnumerateInstanceVersion, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkEnumerateInstanceVersion.html - VULKAN_HPP_NODISCARD uint32_t enumerateInstanceVersion() const; + VULKAN_HPP_NODISCARD typename ResultValueType::type enumerateInstanceVersion() const; private: # if VULKAN_HPP_ENABLE_DYNAMIC_LOADER_TOOL @@ -3148,7 +3138,7 @@ namespace VULKAN_HPP_NAMESPACE static VULKAN_HPP_CONST_OR_CONSTEXPR DebugReportObjectTypeEXT debugReportObjectType = DebugReportObjectTypeEXT::eInstance; public: -# if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) +# if !defined( VULKAN_HPP_NO_EXCEPTIONS ) Instance( Context const & context, InstanceCreateInfo const & createInfo, Optional allocator = nullptr ) { *this = context.createInstance( createInfo, allocator ); @@ -3240,7 +3230,7 @@ namespace VULKAN_HPP_NAMESPACE //=== VK_VERSION_1_0 === // wrapper function for command vkEnumeratePhysicalDevices, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkEnumeratePhysicalDevices.html - VULKAN_HPP_NODISCARD detail::CreateReturnType>::Type enumeratePhysicalDevices() const; + VULKAN_HPP_NODISCARD typename ResultValueType>::type enumeratePhysicalDevices() const; // wrapper function for command vkGetInstanceProcAddr, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetInstanceProcAddr.html VULKAN_HPP_NODISCARD PFN_VoidFunction getProcAddr( const std::string & name ) const VULKAN_HPP_NOEXCEPT; @@ -3249,68 +3239,68 @@ namespace VULKAN_HPP_NAMESPACE // wrapper function for command vkEnumeratePhysicalDeviceGroups, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkEnumeratePhysicalDeviceGroups.html - VULKAN_HPP_NODISCARD std::vector enumeratePhysicalDeviceGroups() const; + VULKAN_HPP_NODISCARD typename ResultValueType>::type enumeratePhysicalDeviceGroups() const; //=== VK_KHR_display === // wrapper function for command vkCreateDisplayPlaneSurfaceKHR, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateDisplayPlaneSurfaceKHR.html - VULKAN_HPP_NODISCARD detail::CreateReturnType::Type - createDisplayPlaneSurfaceKHR( DisplaySurfaceCreateInfoKHR const & createInfo, - Optional allocator = nullptr ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT; + VULKAN_HPP_NODISCARD typename ResultValueType::type + createDisplayPlaneSurfaceKHR( DisplaySurfaceCreateInfoKHR const & createInfo, + Optional allocator = nullptr ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS; # if defined( VK_USE_PLATFORM_XLIB_KHR ) //=== VK_KHR_xlib_surface === // wrapper function for command vkCreateXlibSurfaceKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateXlibSurfaceKHR.html - VULKAN_HPP_NODISCARD detail::CreateReturnType::Type - createXlibSurfaceKHR( XlibSurfaceCreateInfoKHR const & createInfo, - Optional allocator = nullptr ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT; + VULKAN_HPP_NODISCARD typename ResultValueType::type + createXlibSurfaceKHR( XlibSurfaceCreateInfoKHR const & createInfo, + Optional allocator = nullptr ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS; # endif /*VK_USE_PLATFORM_XLIB_KHR*/ # if defined( VK_USE_PLATFORM_XCB_KHR ) //=== VK_KHR_xcb_surface === // wrapper function for command vkCreateXcbSurfaceKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateXcbSurfaceKHR.html - VULKAN_HPP_NODISCARD detail::CreateReturnType::Type - createXcbSurfaceKHR( XcbSurfaceCreateInfoKHR const & createInfo, - Optional allocator = nullptr ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT; + VULKAN_HPP_NODISCARD typename ResultValueType::type + createXcbSurfaceKHR( XcbSurfaceCreateInfoKHR const & createInfo, + Optional allocator = nullptr ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS; # endif /*VK_USE_PLATFORM_XCB_KHR*/ # if defined( VK_USE_PLATFORM_WAYLAND_KHR ) //=== VK_KHR_wayland_surface === // wrapper function for command vkCreateWaylandSurfaceKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateWaylandSurfaceKHR.html - VULKAN_HPP_NODISCARD detail::CreateReturnType::Type - createWaylandSurfaceKHR( WaylandSurfaceCreateInfoKHR const & createInfo, - Optional allocator = nullptr ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT; + VULKAN_HPP_NODISCARD typename ResultValueType::type + createWaylandSurfaceKHR( WaylandSurfaceCreateInfoKHR const & createInfo, + Optional allocator = nullptr ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS; # endif /*VK_USE_PLATFORM_WAYLAND_KHR*/ # if defined( VK_USE_PLATFORM_ANDROID_KHR ) //=== VK_KHR_android_surface === // wrapper function for command vkCreateAndroidSurfaceKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateAndroidSurfaceKHR.html - VULKAN_HPP_NODISCARD detail::CreateReturnType::Type - createAndroidSurfaceKHR( AndroidSurfaceCreateInfoKHR const & createInfo, - Optional allocator = nullptr ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT; + VULKAN_HPP_NODISCARD typename ResultValueType::type + createAndroidSurfaceKHR( AndroidSurfaceCreateInfoKHR const & createInfo, + Optional allocator = nullptr ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS; # endif /*VK_USE_PLATFORM_ANDROID_KHR*/ # if defined( VK_USE_PLATFORM_WIN32_KHR ) //=== VK_KHR_win32_surface === // wrapper function for command vkCreateWin32SurfaceKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateWin32SurfaceKHR.html - VULKAN_HPP_NODISCARD detail::CreateReturnType::Type - createWin32SurfaceKHR( Win32SurfaceCreateInfoKHR const & createInfo, - Optional allocator = nullptr ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT; + VULKAN_HPP_NODISCARD typename ResultValueType::type + createWin32SurfaceKHR( Win32SurfaceCreateInfoKHR const & createInfo, + Optional allocator = nullptr ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS; # endif /*VK_USE_PLATFORM_WIN32_KHR*/ //=== VK_EXT_debug_report === // wrapper function for command vkCreateDebugReportCallbackEXT, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateDebugReportCallbackEXT.html - VULKAN_HPP_NODISCARD detail::CreateReturnType::Type - createDebugReportCallbackEXT( DebugReportCallbackCreateInfoEXT const & createInfo, - Optional allocator = nullptr ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT; + VULKAN_HPP_NODISCARD typename ResultValueType::type + createDebugReportCallbackEXT( DebugReportCallbackCreateInfoEXT const & createInfo, + Optional allocator = nullptr ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS; // wrapper function for command vkDebugReportMessageEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDebugReportMessageEXT.html void debugReportMessageEXT( DebugReportFlagsEXT flags, @@ -3326,51 +3316,51 @@ namespace VULKAN_HPP_NAMESPACE // wrapper function for command vkCreateStreamDescriptorSurfaceGGP, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateStreamDescriptorSurfaceGGP.html - VULKAN_HPP_NODISCARD detail::CreateReturnType::Type - createStreamDescriptorSurfaceGGP( StreamDescriptorSurfaceCreateInfoGGP const & createInfo, - Optional allocator = nullptr ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT; + VULKAN_HPP_NODISCARD typename ResultValueType::type + createStreamDescriptorSurfaceGGP( StreamDescriptorSurfaceCreateInfoGGP const & createInfo, + Optional allocator = nullptr ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS; # endif /*VK_USE_PLATFORM_GGP*/ # if defined( VK_USE_PLATFORM_VI_NN ) //=== VK_NN_vi_surface === // wrapper function for command vkCreateViSurfaceNN, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateViSurfaceNN.html - VULKAN_HPP_NODISCARD detail::CreateReturnType::Type - createViSurfaceNN( ViSurfaceCreateInfoNN const & createInfo, - Optional allocator = nullptr ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT; + VULKAN_HPP_NODISCARD typename ResultValueType::type + createViSurfaceNN( ViSurfaceCreateInfoNN const & createInfo, + Optional allocator = nullptr ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS; # endif /*VK_USE_PLATFORM_VI_NN*/ //=== VK_KHR_device_group_creation === // wrapper function for command vkEnumeratePhysicalDeviceGroupsKHR, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkEnumeratePhysicalDeviceGroupsKHR.html - VULKAN_HPP_NODISCARD std::vector enumeratePhysicalDeviceGroupsKHR() const; + VULKAN_HPP_NODISCARD typename ResultValueType>::type enumeratePhysicalDeviceGroupsKHR() const; # if defined( VK_USE_PLATFORM_IOS_MVK ) //=== VK_MVK_ios_surface === // wrapper function for command vkCreateIOSSurfaceMVK, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateIOSSurfaceMVK.html - VULKAN_HPP_NODISCARD detail::CreateReturnType::Type - createIOSSurfaceMVK( IOSSurfaceCreateInfoMVK const & createInfo, - Optional allocator = nullptr ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT; + VULKAN_HPP_NODISCARD typename ResultValueType::type + createIOSSurfaceMVK( IOSSurfaceCreateInfoMVK const & createInfo, + Optional allocator = nullptr ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS; # endif /*VK_USE_PLATFORM_IOS_MVK*/ # if defined( VK_USE_PLATFORM_MACOS_MVK ) //=== VK_MVK_macos_surface === // wrapper function for command vkCreateMacOSSurfaceMVK, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateMacOSSurfaceMVK.html - VULKAN_HPP_NODISCARD detail::CreateReturnType::Type - createMacOSSurfaceMVK( MacOSSurfaceCreateInfoMVK const & createInfo, - Optional allocator = nullptr ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT; + VULKAN_HPP_NODISCARD typename ResultValueType::type + createMacOSSurfaceMVK( MacOSSurfaceCreateInfoMVK const & createInfo, + Optional allocator = nullptr ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS; # endif /*VK_USE_PLATFORM_MACOS_MVK*/ //=== VK_EXT_debug_utils === // wrapper function for command vkCreateDebugUtilsMessengerEXT, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateDebugUtilsMessengerEXT.html - VULKAN_HPP_NODISCARD detail::CreateReturnType::Type - createDebugUtilsMessengerEXT( DebugUtilsMessengerCreateInfoEXT const & createInfo, - Optional allocator = nullptr ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT; + VULKAN_HPP_NODISCARD typename ResultValueType::type + createDebugUtilsMessengerEXT( DebugUtilsMessengerCreateInfoEXT const & createInfo, + Optional allocator = nullptr ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS; // wrapper function for command vkSubmitDebugUtilsMessageEXT, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkSubmitDebugUtilsMessageEXT.html @@ -3383,52 +3373,52 @@ namespace VULKAN_HPP_NAMESPACE // wrapper function for command vkCreateImagePipeSurfaceFUCHSIA, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateImagePipeSurfaceFUCHSIA.html - VULKAN_HPP_NODISCARD detail::CreateReturnType::Type - createImagePipeSurfaceFUCHSIA( ImagePipeSurfaceCreateInfoFUCHSIA const & createInfo, - Optional allocator = nullptr ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT; + VULKAN_HPP_NODISCARD typename ResultValueType::type + createImagePipeSurfaceFUCHSIA( ImagePipeSurfaceCreateInfoFUCHSIA const & createInfo, + Optional allocator = nullptr ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS; # endif /*VK_USE_PLATFORM_FUCHSIA*/ # if defined( VK_USE_PLATFORM_METAL_EXT ) //=== VK_EXT_metal_surface === // wrapper function for command vkCreateMetalSurfaceEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateMetalSurfaceEXT.html - VULKAN_HPP_NODISCARD detail::CreateReturnType::Type - createMetalSurfaceEXT( MetalSurfaceCreateInfoEXT const & createInfo, - Optional allocator = nullptr ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT; + VULKAN_HPP_NODISCARD typename ResultValueType::type + createMetalSurfaceEXT( MetalSurfaceCreateInfoEXT const & createInfo, + Optional allocator = nullptr ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS; # endif /*VK_USE_PLATFORM_METAL_EXT*/ //=== VK_EXT_headless_surface === // wrapper function for command vkCreateHeadlessSurfaceEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateHeadlessSurfaceEXT.html - VULKAN_HPP_NODISCARD detail::CreateReturnType::Type - createHeadlessSurfaceEXT( HeadlessSurfaceCreateInfoEXT const & createInfo, - Optional allocator = nullptr ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT; + VULKAN_HPP_NODISCARD typename ResultValueType::type + createHeadlessSurfaceEXT( HeadlessSurfaceCreateInfoEXT const & createInfo, + Optional allocator = nullptr ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS; # if defined( VK_USE_PLATFORM_DIRECTFB_EXT ) //=== VK_EXT_directfb_surface === // wrapper function for command vkCreateDirectFBSurfaceEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateDirectFBSurfaceEXT.html - VULKAN_HPP_NODISCARD detail::CreateReturnType::Type - createDirectFBSurfaceEXT( DirectFBSurfaceCreateInfoEXT const & createInfo, - Optional allocator = nullptr ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT; + VULKAN_HPP_NODISCARD typename ResultValueType::type + createDirectFBSurfaceEXT( DirectFBSurfaceCreateInfoEXT const & createInfo, + Optional allocator = nullptr ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS; # endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/ # if defined( VK_USE_PLATFORM_SCREEN_QNX ) //=== VK_QNX_screen_surface === // wrapper function for command vkCreateScreenSurfaceQNX, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateScreenSurfaceQNX.html - VULKAN_HPP_NODISCARD detail::CreateReturnType::Type - createScreenSurfaceQNX( ScreenSurfaceCreateInfoQNX const & createInfo, - Optional allocator = nullptr ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT; + VULKAN_HPP_NODISCARD typename ResultValueType::type + createScreenSurfaceQNX( ScreenSurfaceCreateInfoQNX const & createInfo, + Optional allocator = nullptr ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS; # endif /*VK_USE_PLATFORM_SCREEN_QNX*/ # if defined( VK_USE_PLATFORM_OHOS ) //=== VK_OHOS_surface === // wrapper function for command vkCreateSurfaceOHOS, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateSurfaceOHOS.html - VULKAN_HPP_NODISCARD detail::CreateReturnType::Type - createSurfaceOHOS( SurfaceCreateInfoOHOS const & createInfo, - Optional allocator = nullptr ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT; + VULKAN_HPP_NODISCARD typename ResultValueType::type + createSurfaceOHOS( SurfaceCreateInfoOHOS const & createInfo, + Optional allocator = nullptr ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS; # endif /*VK_USE_PLATFORM_OHOS*/ private: @@ -3544,7 +3534,7 @@ namespace VULKAN_HPP_NAMESPACE // wrapper function for command vkGetPhysicalDeviceImageFormatProperties, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceImageFormatProperties.html - VULKAN_HPP_NODISCARD ImageFormatProperties getImageFormatProperties( + VULKAN_HPP_NODISCARD typename ResultValueType::type getImageFormatProperties( Format format, ImageType type, ImageTiling tiling, ImageUsageFlags usage, ImageCreateFlags flags VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT ) const; // wrapper function for command vkGetPhysicalDeviceProperties, see @@ -3560,17 +3550,18 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_NODISCARD PhysicalDeviceMemoryProperties getMemoryProperties() const VULKAN_HPP_NOEXCEPT; // wrapper function for command vkCreateDevice, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateDevice.html - VULKAN_HPP_NODISCARD detail::CreateReturnType::Type - createDevice( DeviceCreateInfo const & createInfo, Optional allocator = nullptr ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT; + VULKAN_HPP_NODISCARD typename ResultValueType::type + createDevice( DeviceCreateInfo const & createInfo, + Optional allocator = nullptr ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS; // wrapper function for command vkEnumerateDeviceExtensionProperties, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkEnumerateDeviceExtensionProperties.html - VULKAN_HPP_NODISCARD std::vector - enumerateDeviceExtensionProperties( Optional layerName VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT ) const; + VULKAN_HPP_NODISCARD typename ResultValueType>::type + enumerateDeviceExtensionProperties( Optional layerName VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT ) const; // wrapper function for command vkEnumerateDeviceLayerProperties, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkEnumerateDeviceLayerProperties.html - VULKAN_HPP_NODISCARD std::vector enumerateDeviceLayerProperties() const; + VULKAN_HPP_NODISCARD typename ResultValueType>::type enumerateDeviceLayerProperties() const; // wrapper function for command vkGetPhysicalDeviceSparseImageFormatProperties, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceSparseImageFormatProperties.html @@ -3608,12 +3599,14 @@ namespace VULKAN_HPP_NAMESPACE // wrapper function for command vkGetPhysicalDeviceImageFormatProperties2, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceImageFormatProperties2.html - VULKAN_HPP_NODISCARD ImageFormatProperties2 getImageFormatProperties2( const PhysicalDeviceImageFormatInfo2 & imageFormatInfo ) const; + VULKAN_HPP_NODISCARD typename ResultValueType::type + getImageFormatProperties2( const PhysicalDeviceImageFormatInfo2 & imageFormatInfo ) const; // wrapper function for command vkGetPhysicalDeviceImageFormatProperties2, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceImageFormatProperties2.html template - VULKAN_HPP_NODISCARD StructureChain getImageFormatProperties2( const PhysicalDeviceImageFormatInfo2 & imageFormatInfo ) const; + VULKAN_HPP_NODISCARD typename ResultValueType>::type + getImageFormatProperties2( const PhysicalDeviceImageFormatInfo2 & imageFormatInfo ) const; // wrapper function for command vkGetPhysicalDeviceQueueFamilyProperties2, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceQueueFamilyProperties2.html @@ -3657,47 +3650,48 @@ namespace VULKAN_HPP_NAMESPACE // wrapper function for command vkGetPhysicalDeviceToolProperties, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceToolProperties.html - VULKAN_HPP_NODISCARD std::vector getToolProperties() const; + VULKAN_HPP_NODISCARD typename ResultValueType>::type getToolProperties() const; //=== VK_KHR_surface === // wrapper function for command vkGetPhysicalDeviceSurfaceSupportKHR, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceSurfaceSupportKHR.html - VULKAN_HPP_NODISCARD Bool32 getSurfaceSupportKHR( uint32_t queueFamilyIndex, VULKAN_HPP_NAMESPACE::SurfaceKHR surface ) const; + VULKAN_HPP_NODISCARD typename ResultValueType::type getSurfaceSupportKHR( uint32_t queueFamilyIndex, + VULKAN_HPP_NAMESPACE::SurfaceKHR surface ) const; // wrapper function for command vkGetPhysicalDeviceSurfaceCapabilitiesKHR, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceSurfaceCapabilitiesKHR.html - VULKAN_HPP_NODISCARD SurfaceCapabilitiesKHR getSurfaceCapabilitiesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface ) const; + VULKAN_HPP_NODISCARD typename ResultValueType::type getSurfaceCapabilitiesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface ) const; // wrapper function for command vkGetPhysicalDeviceSurfaceFormatsKHR, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceSurfaceFormatsKHR.html - VULKAN_HPP_NODISCARD std::vector - getSurfaceFormatsKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT ) const; + VULKAN_HPP_NODISCARD typename ResultValueType>::type + getSurfaceFormatsKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT ) const; // wrapper function for command vkGetPhysicalDeviceSurfacePresentModesKHR, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceSurfacePresentModesKHR.html - VULKAN_HPP_NODISCARD std::vector - getSurfacePresentModesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT ) const; + VULKAN_HPP_NODISCARD typename ResultValueType>::type + getSurfacePresentModesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT ) const; //=== VK_KHR_swapchain === // wrapper function for command vkGetPhysicalDevicePresentRectanglesKHR, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDevicePresentRectanglesKHR.html - VULKAN_HPP_NODISCARD std::vector getPresentRectanglesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface ) const; + VULKAN_HPP_NODISCARD typename ResultValueType>::type getPresentRectanglesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface ) const; //=== VK_KHR_display === // wrapper function for command vkGetPhysicalDeviceDisplayPropertiesKHR, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceDisplayPropertiesKHR.html - VULKAN_HPP_NODISCARD std::vector getDisplayPropertiesKHR() const; + VULKAN_HPP_NODISCARD typename ResultValueType>::type getDisplayPropertiesKHR() const; // wrapper function for command vkGetPhysicalDeviceDisplayPlanePropertiesKHR, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceDisplayPlanePropertiesKHR.html - VULKAN_HPP_NODISCARD std::vector getDisplayPlanePropertiesKHR() const; + VULKAN_HPP_NODISCARD typename ResultValueType>::type getDisplayPlanePropertiesKHR() const; // wrapper function for command vkGetDisplayPlaneSupportedDisplaysKHR, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDisplayPlaneSupportedDisplaysKHR.html - VULKAN_HPP_NODISCARD detail::CreateReturnType>::Type getDisplayPlaneSupportedDisplaysKHR( uint32_t planeIndex ) const; + VULKAN_HPP_NODISCARD typename ResultValueType>::type getDisplayPlaneSupportedDisplaysKHR( uint32_t planeIndex ) const; # if defined( VK_USE_PLATFORM_XLIB_KHR ) //=== VK_KHR_xlib_surface === @@ -3737,27 +3731,29 @@ namespace VULKAN_HPP_NAMESPACE // wrapper function for command vkGetPhysicalDeviceVideoCapabilitiesKHR, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceVideoCapabilitiesKHR.html - VULKAN_HPP_NODISCARD VideoCapabilitiesKHR getVideoCapabilitiesKHR( const VideoProfileInfoKHR & videoProfile ) const; + VULKAN_HPP_NODISCARD typename ResultValueType::type getVideoCapabilitiesKHR( const VideoProfileInfoKHR & videoProfile ) const; // wrapper function for command vkGetPhysicalDeviceVideoCapabilitiesKHR, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceVideoCapabilitiesKHR.html template - VULKAN_HPP_NODISCARD StructureChain getVideoCapabilitiesKHR( const VideoProfileInfoKHR & videoProfile ) const; + VULKAN_HPP_NODISCARD typename ResultValueType>::type getVideoCapabilitiesKHR( const VideoProfileInfoKHR & videoProfile ) const; // wrapper function for command vkGetPhysicalDeviceVideoFormatPropertiesKHR, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceVideoFormatPropertiesKHR.html - VULKAN_HPP_NODISCARD std::vector getVideoFormatPropertiesKHR( const PhysicalDeviceVideoFormatInfoKHR & videoFormatInfo ) const; + VULKAN_HPP_NODISCARD typename ResultValueType>::type + getVideoFormatPropertiesKHR( const PhysicalDeviceVideoFormatInfoKHR & videoFormatInfo ) const; // wrapper function for command vkGetPhysicalDeviceVideoFormatPropertiesKHR, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceVideoFormatPropertiesKHR.html template - VULKAN_HPP_NODISCARD std::vector getVideoFormatPropertiesKHR( const PhysicalDeviceVideoFormatInfoKHR & videoFormatInfo ) const; + VULKAN_HPP_NODISCARD typename ResultValueType>::type + getVideoFormatPropertiesKHR( const PhysicalDeviceVideoFormatInfoKHR & videoFormatInfo ) const; //=== VK_NV_external_memory_capabilities === // wrapper function for command vkGetPhysicalDeviceExternalImageFormatPropertiesNV, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceExternalImageFormatPropertiesNV.html - VULKAN_HPP_NODISCARD ExternalImageFormatPropertiesNV + VULKAN_HPP_NODISCARD typename ResultValueType::type getExternalImageFormatPropertiesNV( Format format, ImageType type, ImageTiling tiling, @@ -3796,12 +3792,14 @@ namespace VULKAN_HPP_NAMESPACE // wrapper function for command vkGetPhysicalDeviceImageFormatProperties2KHR, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceImageFormatProperties2KHR.html - VULKAN_HPP_NODISCARD ImageFormatProperties2 getImageFormatProperties2KHR( const PhysicalDeviceImageFormatInfo2 & imageFormatInfo ) const; + VULKAN_HPP_NODISCARD typename ResultValueType::type + getImageFormatProperties2KHR( const PhysicalDeviceImageFormatInfo2 & imageFormatInfo ) const; // wrapper function for command vkGetPhysicalDeviceImageFormatProperties2KHR, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceImageFormatProperties2KHR.html template - VULKAN_HPP_NODISCARD StructureChain getImageFormatProperties2KHR( const PhysicalDeviceImageFormatInfo2 & imageFormatInfo ) const; + VULKAN_HPP_NODISCARD typename ResultValueType>::type + getImageFormatProperties2KHR( const PhysicalDeviceImageFormatInfo2 & imageFormatInfo ) const; // wrapper function for command vkGetPhysicalDeviceQueueFamilyProperties2KHR, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceQueueFamilyProperties2KHR.html @@ -3844,18 +3842,18 @@ namespace VULKAN_HPP_NAMESPACE //=== VK_EXT_acquire_xlib_display === // wrapper function for command vkAcquireXlibDisplayEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkAcquireXlibDisplayEXT.html - void acquireXlibDisplayEXT( Display & dpy, VULKAN_HPP_NAMESPACE::DisplayKHR display ) const; + typename ResultValueType::type acquireXlibDisplayEXT( Display & dpy, VULKAN_HPP_NAMESPACE::DisplayKHR display ) const; // wrapper function for command vkGetRandROutputDisplayEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetRandROutputDisplayEXT.html - VULKAN_HPP_NODISCARD detail::CreateReturnType::Type getRandROutputDisplayEXT( Display & dpy, - RROutput rrOutput ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT; + VULKAN_HPP_NODISCARD typename ResultValueType::type + getRandROutputDisplayEXT( Display & dpy, RROutput rrOutput ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS; # endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/ //=== VK_EXT_display_surface_counter === // wrapper function for command vkGetPhysicalDeviceSurfaceCapabilities2EXT, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceSurfaceCapabilities2EXT.html - VULKAN_HPP_NODISCARD SurfaceCapabilities2EXT getSurfaceCapabilities2EXT( VULKAN_HPP_NAMESPACE::SurfaceKHR surface ) const; + VULKAN_HPP_NODISCARD typename ResultValueType::type getSurfaceCapabilities2EXT( VULKAN_HPP_NAMESPACE::SurfaceKHR surface ) const; //=== VK_KHR_external_fence_capabilities === @@ -3868,8 +3866,8 @@ namespace VULKAN_HPP_NAMESPACE // wrapper function for command vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR.html - VULKAN_HPP_NODISCARD std::pair, std::vector> - enumerateQueueFamilyPerformanceQueryCountersKHR( uint32_t queueFamilyIndex ) const; + VULKAN_HPP_NODISCARD typename ResultValueType, std::vector>>::type + enumerateQueueFamilyPerformanceQueryCountersKHR( uint32_t queueFamilyIndex ) const; // wrapper function for command vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR.html @@ -3880,35 +3878,40 @@ namespace VULKAN_HPP_NAMESPACE // wrapper function for command vkGetPhysicalDeviceSurfaceCapabilities2KHR, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceSurfaceCapabilities2KHR.html - VULKAN_HPP_NODISCARD SurfaceCapabilities2KHR getSurfaceCapabilities2KHR( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo ) const; + VULKAN_HPP_NODISCARD typename ResultValueType::type + getSurfaceCapabilities2KHR( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo ) const; // wrapper function for command vkGetPhysicalDeviceSurfaceCapabilities2KHR, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceSurfaceCapabilities2KHR.html template - VULKAN_HPP_NODISCARD StructureChain getSurfaceCapabilities2KHR( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo ) const; + VULKAN_HPP_NODISCARD typename ResultValueType>::type + getSurfaceCapabilities2KHR( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo ) const; // wrapper function for command vkGetPhysicalDeviceSurfaceFormats2KHR, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceSurfaceFormats2KHR.html - VULKAN_HPP_NODISCARD std::vector getSurfaceFormats2KHR( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo ) const; + VULKAN_HPP_NODISCARD typename ResultValueType>::type + getSurfaceFormats2KHR( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo ) const; // wrapper function for command vkGetPhysicalDeviceSurfaceFormats2KHR, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceSurfaceFormats2KHR.html template - VULKAN_HPP_NODISCARD std::vector getSurfaceFormats2KHR( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo ) const; + VULKAN_HPP_NODISCARD typename ResultValueType>::type + getSurfaceFormats2KHR( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo ) const; //=== VK_KHR_get_display_properties2 === // wrapper function for command vkGetPhysicalDeviceDisplayProperties2KHR, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceDisplayProperties2KHR.html - VULKAN_HPP_NODISCARD std::vector getDisplayProperties2KHR() const; + VULKAN_HPP_NODISCARD typename ResultValueType>::type getDisplayProperties2KHR() const; // wrapper function for command vkGetPhysicalDeviceDisplayPlaneProperties2KHR, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceDisplayPlaneProperties2KHR.html - VULKAN_HPP_NODISCARD std::vector getDisplayPlaneProperties2KHR() const; + VULKAN_HPP_NODISCARD typename ResultValueType>::type getDisplayPlaneProperties2KHR() const; // wrapper function for command vkGetDisplayPlaneCapabilities2KHR, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDisplayPlaneCapabilities2KHR.html - VULKAN_HPP_NODISCARD DisplayPlaneCapabilities2KHR getDisplayPlaneCapabilities2KHR( const DisplayPlaneInfo2KHR & displayPlaneInfo ) const; + VULKAN_HPP_NODISCARD typename ResultValueType::type + getDisplayPlaneCapabilities2KHR( const DisplayPlaneInfo2KHR & displayPlaneInfo ) const; //=== VK_EXT_sample_locations === @@ -3920,67 +3923,70 @@ namespace VULKAN_HPP_NAMESPACE // wrapper function for command vkGetPhysicalDeviceCalibrateableTimeDomainsEXT, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceCalibrateableTimeDomainsEXT.html - VULKAN_HPP_NODISCARD std::vector getCalibrateableTimeDomainsEXT() const; + VULKAN_HPP_NODISCARD typename ResultValueType>::type getCalibrateableTimeDomainsEXT() const; //=== VK_KHR_fragment_shading_rate === // wrapper function for command vkGetPhysicalDeviceFragmentShadingRatesKHR, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceFragmentShadingRatesKHR.html - VULKAN_HPP_NODISCARD std::vector getFragmentShadingRatesKHR() const; + VULKAN_HPP_NODISCARD typename ResultValueType>::type getFragmentShadingRatesKHR() const; //=== VK_EXT_tooling_info === // wrapper function for command vkGetPhysicalDeviceToolPropertiesEXT, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceToolPropertiesEXT.html - VULKAN_HPP_NODISCARD std::vector getToolPropertiesEXT() const; + VULKAN_HPP_NODISCARD typename ResultValueType>::type getToolPropertiesEXT() const; //=== VK_NV_cooperative_matrix === // wrapper function for command vkGetPhysicalDeviceCooperativeMatrixPropertiesNV, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceCooperativeMatrixPropertiesNV.html - VULKAN_HPP_NODISCARD std::vector getCooperativeMatrixPropertiesNV() const; + VULKAN_HPP_NODISCARD typename ResultValueType>::type getCooperativeMatrixPropertiesNV() const; //=== VK_NV_coverage_reduction_mode === // wrapper function for command vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV.html - VULKAN_HPP_NODISCARD std::vector getSupportedFramebufferMixedSamplesCombinationsNV() const; + VULKAN_HPP_NODISCARD typename ResultValueType>::type + getSupportedFramebufferMixedSamplesCombinationsNV() const; # if defined( VK_USE_PLATFORM_WIN32_KHR ) //=== VK_EXT_full_screen_exclusive === // wrapper function for command vkGetPhysicalDeviceSurfacePresentModes2EXT, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceSurfacePresentModes2EXT.html - VULKAN_HPP_NODISCARD std::vector getSurfacePresentModes2EXT( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo ) const; + VULKAN_HPP_NODISCARD typename ResultValueType>::type + getSurfacePresentModes2EXT( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo ) const; # endif /*VK_USE_PLATFORM_WIN32_KHR*/ //=== VK_EXT_acquire_drm_display === // wrapper function for command vkAcquireDrmDisplayEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkAcquireDrmDisplayEXT.html - void acquireDrmDisplayEXT( int32_t drmFd, VULKAN_HPP_NAMESPACE::DisplayKHR display ) const; + typename ResultValueType::type acquireDrmDisplayEXT( int32_t drmFd, VULKAN_HPP_NAMESPACE::DisplayKHR display ) const; // wrapper function for command vkGetDrmDisplayEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDrmDisplayEXT.html - VULKAN_HPP_NODISCARD detail::CreateReturnType::Type getDrmDisplayEXT( int32_t drmFd, - uint32_t connectorId ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT; + VULKAN_HPP_NODISCARD typename ResultValueType::type getDrmDisplayEXT( int32_t drmFd, + uint32_t connectorId ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS; //=== VK_KHR_video_encode_queue === // wrapper function for command vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR.html - VULKAN_HPP_NODISCARD VideoEncodeQualityLevelPropertiesKHR + VULKAN_HPP_NODISCARD typename ResultValueType::type getVideoEncodeQualityLevelPropertiesKHR( const PhysicalDeviceVideoEncodeQualityLevelInfoKHR & qualityLevelInfo ) const; // wrapper function for command vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR.html template - VULKAN_HPP_NODISCARD StructureChain - getVideoEncodeQualityLevelPropertiesKHR( const PhysicalDeviceVideoEncodeQualityLevelInfoKHR & qualityLevelInfo ) const; + VULKAN_HPP_NODISCARD typename ResultValueType>::type + getVideoEncodeQualityLevelPropertiesKHR( const PhysicalDeviceVideoEncodeQualityLevelInfoKHR & qualityLevelInfo ) const; # if defined( VK_USE_PLATFORM_WIN32_KHR ) //=== VK_NV_acquire_winrt_display === // wrapper function for command vkGetWinrtDisplayNV, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetWinrtDisplayNV.html - VULKAN_HPP_NODISCARD detail::CreateReturnType::Type getWinrtDisplayNV( uint32_t deviceRelativeId ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT; + VULKAN_HPP_NODISCARD typename ResultValueType::type + getWinrtDisplayNV( uint32_t deviceRelativeId ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS; # endif /*VK_USE_PLATFORM_WIN32_KHR*/ # if defined( VK_USE_PLATFORM_DIRECTFB_EXT ) @@ -4010,26 +4016,27 @@ namespace VULKAN_HPP_NAMESPACE // wrapper function for command vkGetPhysicalDeviceOpticalFlowImageFormatsNV, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceOpticalFlowImageFormatsNV.html - VULKAN_HPP_NODISCARD std::vector - getOpticalFlowImageFormatsNV( const OpticalFlowImageFormatInfoNV & opticalFlowImageFormatInfo ) const; + VULKAN_HPP_NODISCARD typename ResultValueType>::type + getOpticalFlowImageFormatsNV( const OpticalFlowImageFormatInfoNV & opticalFlowImageFormatInfo ) const; //=== VK_NV_cooperative_vector === // wrapper function for command vkGetPhysicalDeviceCooperativeVectorPropertiesNV, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceCooperativeVectorPropertiesNV.html - VULKAN_HPP_NODISCARD std::vector getCooperativeVectorPropertiesNV() const; + VULKAN_HPP_NODISCARD typename ResultValueType>::type getCooperativeVectorPropertiesNV() const; //=== VK_KHR_cooperative_matrix === // wrapper function for command vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR.html - VULKAN_HPP_NODISCARD std::vector getCooperativeMatrixPropertiesKHR() const; + VULKAN_HPP_NODISCARD typename ResultValueType>::type getCooperativeMatrixPropertiesKHR() const; //=== VK_ARM_data_graph === // wrapper function for command vkGetPhysicalDeviceQueueFamilyDataGraphPropertiesARM, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceQueueFamilyDataGraphPropertiesARM.html - VULKAN_HPP_NODISCARD std::vector getQueueFamilyDataGraphPropertiesARM( uint32_t queueFamilyIndex ) const; + VULKAN_HPP_NODISCARD typename ResultValueType>::type + getQueueFamilyDataGraphPropertiesARM( uint32_t queueFamilyIndex ) const; // wrapper function for command vkGetPhysicalDeviceQueueFamilyDataGraphProcessingEnginePropertiesARM, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceQueueFamilyDataGraphProcessingEnginePropertiesARM.html @@ -4040,13 +4047,14 @@ namespace VULKAN_HPP_NAMESPACE // wrapper function for command vkGetPhysicalDeviceCalibrateableTimeDomainsKHR, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceCalibrateableTimeDomainsKHR.html - VULKAN_HPP_NODISCARD std::vector getCalibrateableTimeDomainsKHR() const; + VULKAN_HPP_NODISCARD typename ResultValueType>::type getCalibrateableTimeDomainsKHR() const; //=== VK_NV_cooperative_matrix2 === // wrapper function for command vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV.html - VULKAN_HPP_NODISCARD std::vector getCooperativeMatrixFlexibleDimensionsPropertiesNV() const; + VULKAN_HPP_NODISCARD typename ResultValueType>::type + getCooperativeMatrixFlexibleDimensionsPropertiesNV() const; private: VULKAN_HPP_NAMESPACE::PhysicalDevice m_physicalDevice = {}; @@ -4062,7 +4070,7 @@ namespace VULKAN_HPP_NAMESPACE class PhysicalDevices : public std::vector { public: -# if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) +# if !defined( VULKAN_HPP_NO_EXCEPTIONS ) PhysicalDevices( Instance const & instance ) { *this = instance.enumeratePhysicalDevices(); @@ -4095,7 +4103,7 @@ namespace VULKAN_HPP_NAMESPACE static VULKAN_HPP_CONST_OR_CONSTEXPR DebugReportObjectTypeEXT debugReportObjectType = DebugReportObjectTypeEXT::eDevice; public: -# if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) +# if !defined( VULKAN_HPP_NO_EXCEPTIONS ) Device( PhysicalDevice const & physicalDevice, DeviceCreateInfo const & createInfo, Optional allocator = nullptr ) { *this = physicalDevice.createDevice( createInfo, allocator ); @@ -4190,154 +4198,155 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_NODISCARD PFN_VoidFunction getProcAddr( const std::string & name ) const VULKAN_HPP_NOEXCEPT; // wrapper function for command vkGetDeviceQueue, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDeviceQueue.html - VULKAN_HPP_NODISCARD detail::CreateReturnType::Type getQueue( uint32_t queueFamilyIndex, - uint32_t queueIndex ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT; + VULKAN_HPP_NODISCARD Queue getQueue( uint32_t queueFamilyIndex, uint32_t queueIndex ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS; // wrapper function for command vkDeviceWaitIdle, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDeviceWaitIdle.html - void waitIdle() const; + typename ResultValueType::type waitIdle() const; // wrapper function for command vkAllocateMemory, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkAllocateMemory.html - VULKAN_HPP_NODISCARD detail::CreateReturnType::Type - allocateMemory( MemoryAllocateInfo const & allocateInfo, - Optional allocator = nullptr ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT; + VULKAN_HPP_NODISCARD typename ResultValueType::type + allocateMemory( MemoryAllocateInfo const & allocateInfo, + Optional allocator = nullptr ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS; // wrapper function for command vkFlushMappedMemoryRanges, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkFlushMappedMemoryRanges.html - void flushMappedMemoryRanges( ArrayProxy const & memoryRanges ) const; + typename ResultValueType::type flushMappedMemoryRanges( ArrayProxy const & memoryRanges ) const; // wrapper function for command vkInvalidateMappedMemoryRanges, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkInvalidateMappedMemoryRanges.html - void invalidateMappedMemoryRanges( ArrayProxy const & memoryRanges ) const; + typename ResultValueType::type invalidateMappedMemoryRanges( ArrayProxy const & memoryRanges ) const; // wrapper function for command vkCreateFence, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateFence.html - VULKAN_HPP_NODISCARD detail::CreateReturnType::Type - createFence( FenceCreateInfo const & createInfo, Optional allocator = nullptr ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT; + VULKAN_HPP_NODISCARD typename ResultValueType::type + createFence( FenceCreateInfo const & createInfo, Optional allocator = nullptr ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS; // wrapper function for command vkResetFences, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkResetFences.html - void resetFences( ArrayProxy const & fences ) const; + typename ResultValueType::type resetFences( ArrayProxy const & fences ) const; // wrapper function for command vkWaitForFences, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkWaitForFences.html VULKAN_HPP_NODISCARD Result waitForFences( ArrayProxy const & fences, Bool32 waitAll, uint64_t timeout ) const; // wrapper function for command vkCreateSemaphore, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateSemaphore.html - VULKAN_HPP_NODISCARD detail::CreateReturnType::Type - createSemaphore( SemaphoreCreateInfo const & createInfo, - Optional allocator = nullptr ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT; + VULKAN_HPP_NODISCARD typename ResultValueType::type + createSemaphore( SemaphoreCreateInfo const & createInfo, + Optional allocator = nullptr ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS; // wrapper function for command vkCreateEvent, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateEvent.html - VULKAN_HPP_NODISCARD detail::CreateReturnType::Type - createEvent( EventCreateInfo const & createInfo, Optional allocator = nullptr ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT; + VULKAN_HPP_NODISCARD typename ResultValueType::type + createEvent( EventCreateInfo const & createInfo, Optional allocator = nullptr ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS; // wrapper function for command vkCreateQueryPool, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateQueryPool.html - VULKAN_HPP_NODISCARD detail::CreateReturnType::Type - createQueryPool( QueryPoolCreateInfo const & createInfo, - Optional allocator = nullptr ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT; + VULKAN_HPP_NODISCARD typename ResultValueType::type + createQueryPool( QueryPoolCreateInfo const & createInfo, + Optional allocator = nullptr ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS; // wrapper function for command vkCreateBuffer, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateBuffer.html - VULKAN_HPP_NODISCARD detail::CreateReturnType::Type - createBuffer( BufferCreateInfo const & createInfo, Optional allocator = nullptr ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT; + VULKAN_HPP_NODISCARD typename ResultValueType::type + createBuffer( BufferCreateInfo const & createInfo, + Optional allocator = nullptr ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS; // wrapper function for command vkCreateBufferView, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateBufferView.html - VULKAN_HPP_NODISCARD detail::CreateReturnType::Type - createBufferView( BufferViewCreateInfo const & createInfo, - Optional allocator = nullptr ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT; + VULKAN_HPP_NODISCARD typename ResultValueType::type + createBufferView( BufferViewCreateInfo const & createInfo, + Optional allocator = nullptr ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS; // wrapper function for command vkCreateImage, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateImage.html - VULKAN_HPP_NODISCARD detail::CreateReturnType::Type - createImage( ImageCreateInfo const & createInfo, Optional allocator = nullptr ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT; + VULKAN_HPP_NODISCARD typename ResultValueType::type + createImage( ImageCreateInfo const & createInfo, Optional allocator = nullptr ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS; // wrapper function for command vkCreateImageView, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateImageView.html - VULKAN_HPP_NODISCARD detail::CreateReturnType::Type - createImageView( ImageViewCreateInfo const & createInfo, - Optional allocator = nullptr ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT; + VULKAN_HPP_NODISCARD typename ResultValueType::type + createImageView( ImageViewCreateInfo const & createInfo, + Optional allocator = nullptr ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS; // wrapper function for command vkCreateShaderModule, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateShaderModule.html - VULKAN_HPP_NODISCARD detail::CreateReturnType::Type - createShaderModule( ShaderModuleCreateInfo const & createInfo, - Optional allocator = nullptr ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT; + VULKAN_HPP_NODISCARD typename ResultValueType::type + createShaderModule( ShaderModuleCreateInfo const & createInfo, + Optional allocator = nullptr ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS; // wrapper function for command vkCreatePipelineCache, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreatePipelineCache.html - VULKAN_HPP_NODISCARD detail::CreateReturnType::Type - createPipelineCache( PipelineCacheCreateInfo const & createInfo, - Optional allocator = nullptr ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT; + VULKAN_HPP_NODISCARD typename ResultValueType::type + createPipelineCache( PipelineCacheCreateInfo const & createInfo, + Optional allocator = nullptr ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS; // wrapper function for command vkCreateGraphicsPipelines, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateGraphicsPipelines.html - VULKAN_HPP_NODISCARD detail::CreateReturnType>::Type - createGraphicsPipelines( Optional const & pipelineCache, - ArrayProxy const & createInfos, - Optional allocator = nullptr ) const; + VULKAN_HPP_NODISCARD typename ResultValueType>::type + createGraphicsPipelines( Optional const & pipelineCache, + ArrayProxy const & createInfos, + Optional allocator = nullptr ) const; // wrapper function for command vkCreateGraphicsPipelines, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateGraphicsPipelines.html - VULKAN_HPP_NODISCARD detail::CreateReturnType::Type - createGraphicsPipeline( Optional const & pipelineCache, - GraphicsPipelineCreateInfo const & createInfo, - Optional allocator = nullptr ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT; + VULKAN_HPP_NODISCARD typename ResultValueType::type + createGraphicsPipeline( Optional const & pipelineCache, + GraphicsPipelineCreateInfo const & createInfo, + Optional allocator = nullptr ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS; // wrapper function for command vkCreateComputePipelines, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateComputePipelines.html - VULKAN_HPP_NODISCARD detail::CreateReturnType>::Type - createComputePipelines( Optional const & pipelineCache, - ArrayProxy const & createInfos, - Optional allocator = nullptr ) const; + VULKAN_HPP_NODISCARD typename ResultValueType>::type + createComputePipelines( Optional const & pipelineCache, + ArrayProxy const & createInfos, + Optional allocator = nullptr ) const; // wrapper function for command vkCreateComputePipelines, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateComputePipelines.html - VULKAN_HPP_NODISCARD detail::CreateReturnType::Type - createComputePipeline( Optional const & pipelineCache, - ComputePipelineCreateInfo const & createInfo, - Optional allocator = nullptr ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT; + VULKAN_HPP_NODISCARD typename ResultValueType::type + createComputePipeline( Optional const & pipelineCache, + ComputePipelineCreateInfo const & createInfo, + Optional allocator = nullptr ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS; // wrapper function for command vkCreatePipelineLayout, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreatePipelineLayout.html - VULKAN_HPP_NODISCARD detail::CreateReturnType::Type - createPipelineLayout( PipelineLayoutCreateInfo const & createInfo, - Optional allocator = nullptr ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT; + VULKAN_HPP_NODISCARD typename ResultValueType::type + createPipelineLayout( PipelineLayoutCreateInfo const & createInfo, + Optional allocator = nullptr ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS; // wrapper function for command vkCreateSampler, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateSampler.html - VULKAN_HPP_NODISCARD detail::CreateReturnType::Type - createSampler( SamplerCreateInfo const & createInfo, Optional allocator = nullptr ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT; + VULKAN_HPP_NODISCARD typename ResultValueType::type + createSampler( SamplerCreateInfo const & createInfo, + Optional allocator = nullptr ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS; // wrapper function for command vkCreateDescriptorSetLayout, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateDescriptorSetLayout.html - VULKAN_HPP_NODISCARD detail::CreateReturnType::Type - createDescriptorSetLayout( DescriptorSetLayoutCreateInfo const & createInfo, - Optional allocator = nullptr ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT; + VULKAN_HPP_NODISCARD typename ResultValueType::type + createDescriptorSetLayout( DescriptorSetLayoutCreateInfo const & createInfo, + Optional allocator = nullptr ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS; // wrapper function for command vkCreateDescriptorPool, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateDescriptorPool.html - VULKAN_HPP_NODISCARD detail::CreateReturnType::Type - createDescriptorPool( DescriptorPoolCreateInfo const & createInfo, - Optional allocator = nullptr ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT; + VULKAN_HPP_NODISCARD typename ResultValueType::type + createDescriptorPool( DescriptorPoolCreateInfo const & createInfo, + Optional allocator = nullptr ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS; // wrapper function for command vkAllocateDescriptorSets, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkAllocateDescriptorSets.html - VULKAN_HPP_NODISCARD detail::CreateReturnType>::Type - allocateDescriptorSets( DescriptorSetAllocateInfo const & allocateInfo ) const; + VULKAN_HPP_NODISCARD typename ResultValueType>::type + allocateDescriptorSets( DescriptorSetAllocateInfo const & allocateInfo ) const; // wrapper function for command vkUpdateDescriptorSets, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkUpdateDescriptorSets.html void updateDescriptorSets( ArrayProxy const & descriptorWrites, ArrayProxy const & descriptorCopies ) const VULKAN_HPP_NOEXCEPT; // wrapper function for command vkCreateFramebuffer, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateFramebuffer.html - VULKAN_HPP_NODISCARD detail::CreateReturnType::Type - createFramebuffer( FramebufferCreateInfo const & createInfo, - Optional allocator = nullptr ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT; + VULKAN_HPP_NODISCARD typename ResultValueType::type + createFramebuffer( FramebufferCreateInfo const & createInfo, + Optional allocator = nullptr ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS; // wrapper function for command vkCreateRenderPass, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateRenderPass.html - VULKAN_HPP_NODISCARD detail::CreateReturnType::Type - createRenderPass( RenderPassCreateInfo const & createInfo, - Optional allocator = nullptr ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT; + VULKAN_HPP_NODISCARD typename ResultValueType::type + createRenderPass( RenderPassCreateInfo const & createInfo, + Optional allocator = nullptr ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS; // wrapper function for command vkCreateCommandPool, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateCommandPool.html - VULKAN_HPP_NODISCARD detail::CreateReturnType::Type - createCommandPool( CommandPoolCreateInfo const & createInfo, - Optional allocator = nullptr ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT; + VULKAN_HPP_NODISCARD typename ResultValueType::type + createCommandPool( CommandPoolCreateInfo const & createInfo, + Optional allocator = nullptr ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS; // wrapper function for command vkAllocateCommandBuffers, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkAllocateCommandBuffers.html - VULKAN_HPP_NODISCARD detail::CreateReturnType>::Type - allocateCommandBuffers( CommandBufferAllocateInfo const & allocateInfo ) const; + VULKAN_HPP_NODISCARD typename ResultValueType>::type + allocateCommandBuffers( CommandBufferAllocateInfo const & allocateInfo ) const; //=== VK_VERSION_1_1 === // wrapper function for command vkBindBufferMemory2, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkBindBufferMemory2.html - void bindBufferMemory2( ArrayProxy const & bindInfos ) const; + typename ResultValueType::type bindBufferMemory2( ArrayProxy const & bindInfos ) const; // wrapper function for command vkBindImageMemory2, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkBindImageMemory2.html - void bindImageMemory2( ArrayProxy const & bindInfos ) const; + typename ResultValueType::type bindImageMemory2( ArrayProxy const & bindInfos ) const; // wrapper function for command vkGetDeviceGroupPeerMemoryFeatures, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDeviceGroupPeerMemoryFeatures.html @@ -4369,19 +4378,19 @@ namespace VULKAN_HPP_NAMESPACE getImageSparseMemoryRequirements2( const ImageSparseMemoryRequirementsInfo2 & info ) const; // wrapper function for command vkGetDeviceQueue2, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDeviceQueue2.html - VULKAN_HPP_NODISCARD detail::CreateReturnType::Type getQueue2( DeviceQueueInfo2 const & queueInfo ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT; + VULKAN_HPP_NODISCARD Queue getQueue2( DeviceQueueInfo2 const & queueInfo ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS; // wrapper function for command vkCreateSamplerYcbcrConversion, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateSamplerYcbcrConversion.html - VULKAN_HPP_NODISCARD detail::CreateReturnType::Type - createSamplerYcbcrConversion( SamplerYcbcrConversionCreateInfo const & createInfo, - Optional allocator = nullptr ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT; + VULKAN_HPP_NODISCARD typename ResultValueType::type + createSamplerYcbcrConversion( SamplerYcbcrConversionCreateInfo const & createInfo, + Optional allocator = nullptr ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS; // wrapper function for command vkCreateDescriptorUpdateTemplate, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateDescriptorUpdateTemplate.html - VULKAN_HPP_NODISCARD detail::CreateReturnType::Type - createDescriptorUpdateTemplate( DescriptorUpdateTemplateCreateInfo const & createInfo, - Optional allocator = nullptr ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT; + VULKAN_HPP_NODISCARD typename ResultValueType::type + createDescriptorUpdateTemplate( DescriptorUpdateTemplateCreateInfo const & createInfo, + Optional allocator = nullptr ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS; // wrapper function for command vkGetDescriptorSetLayoutSupport, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDescriptorSetLayoutSupport.html @@ -4397,15 +4406,15 @@ namespace VULKAN_HPP_NAMESPACE //=== VK_VERSION_1_2 === // wrapper function for command vkCreateRenderPass2, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateRenderPass2.html - VULKAN_HPP_NODISCARD detail::CreateReturnType::Type - createRenderPass2( RenderPassCreateInfo2 const & createInfo, - Optional allocator = nullptr ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT; + VULKAN_HPP_NODISCARD typename ResultValueType::type + createRenderPass2( RenderPassCreateInfo2 const & createInfo, + Optional allocator = nullptr ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS; // wrapper function for command vkWaitSemaphores, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkWaitSemaphores.html VULKAN_HPP_NODISCARD Result waitSemaphores( const SemaphoreWaitInfo & waitInfo, uint64_t timeout ) const; // wrapper function for command vkSignalSemaphore, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkSignalSemaphore.html - void signalSemaphore( const SemaphoreSignalInfo & signalInfo ) const; + typename ResultValueType::type signalSemaphore( const SemaphoreSignalInfo & signalInfo ) const; // wrapper function for command vkGetBufferDeviceAddress, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetBufferDeviceAddress.html VULKAN_HPP_NODISCARD DeviceAddress getBufferAddress( const BufferDeviceAddressInfo & info ) const VULKAN_HPP_NOEXCEPT; @@ -4421,12 +4430,13 @@ namespace VULKAN_HPP_NAMESPACE //=== VK_VERSION_1_3 === // wrapper function for command vkCreatePrivateDataSlot, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreatePrivateDataSlot.html - VULKAN_HPP_NODISCARD detail::CreateReturnType::Type - createPrivateDataSlot( PrivateDataSlotCreateInfo const & createInfo, - Optional allocator = nullptr ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT; + VULKAN_HPP_NODISCARD typename ResultValueType::type + createPrivateDataSlot( PrivateDataSlotCreateInfo const & createInfo, + Optional allocator = nullptr ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS; // wrapper function for command vkSetPrivateData, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkSetPrivateData.html - void setPrivateData( ObjectType objectType, uint64_t objectHandle, VULKAN_HPP_NAMESPACE::PrivateDataSlot privateDataSlot, uint64_t data ) const; + typename ResultValueType::type + setPrivateData( ObjectType objectType, uint64_t objectHandle, VULKAN_HPP_NAMESPACE::PrivateDataSlot privateDataSlot, uint64_t data ) const; // wrapper function for command vkGetPrivateData, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPrivateData.html VULKAN_HPP_NODISCARD uint64_t getPrivateData( ObjectType objectType, @@ -4458,10 +4468,10 @@ namespace VULKAN_HPP_NAMESPACE //=== VK_VERSION_1_4 === // wrapper function for command vkMapMemory2, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkMapMemory2.html - VULKAN_HPP_NODISCARD void * mapMemory2( const MemoryMapInfo & memoryMapInfo ) const; + VULKAN_HPP_NODISCARD typename ResultValueType::type mapMemory2( const MemoryMapInfo & memoryMapInfo ) const; // wrapper function for command vkUnmapMemory2, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkUnmapMemory2.html - void unmapMemory2( const MemoryUnmapInfo & memoryUnmapInfo ) const; + typename ResultValueType::type unmapMemory2( const MemoryUnmapInfo & memoryUnmapInfo ) const; // wrapper function for command vkGetRenderingAreaGranularity, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetRenderingAreaGranularity.html @@ -4477,82 +4487,83 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_NODISCARD StructureChain getImageSubresourceLayout( const DeviceImageSubresourceInfo & info ) const VULKAN_HPP_NOEXCEPT; // wrapper function for command vkCopyMemoryToImage, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCopyMemoryToImage.html - void copyMemoryToImage( const CopyMemoryToImageInfo & copyMemoryToImageInfo ) const; + typename ResultValueType::type copyMemoryToImage( const CopyMemoryToImageInfo & copyMemoryToImageInfo ) const; // wrapper function for command vkCopyImageToMemory, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCopyImageToMemory.html - void copyImageToMemory( const CopyImageToMemoryInfo & copyImageToMemoryInfo ) const; + typename ResultValueType::type copyImageToMemory( const CopyImageToMemoryInfo & copyImageToMemoryInfo ) const; // wrapper function for command vkCopyImageToImage, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCopyImageToImage.html - void copyImageToImage( const CopyImageToImageInfo & copyImageToImageInfo ) const; + typename ResultValueType::type copyImageToImage( const CopyImageToImageInfo & copyImageToImageInfo ) const; // wrapper function for command vkTransitionImageLayout, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkTransitionImageLayout.html - void transitionImageLayout( ArrayProxy const & transitions ) const; + typename ResultValueType::type transitionImageLayout( ArrayProxy const & transitions ) const; //=== VK_KHR_swapchain === // wrapper function for command vkCreateSwapchainKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateSwapchainKHR.html - VULKAN_HPP_NODISCARD detail::CreateReturnType::Type - createSwapchainKHR( SwapchainCreateInfoKHR const & createInfo, - Optional allocator = nullptr ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT; + VULKAN_HPP_NODISCARD typename ResultValueType::type + createSwapchainKHR( SwapchainCreateInfoKHR const & createInfo, + Optional allocator = nullptr ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS; // wrapper function for command vkGetDeviceGroupPresentCapabilitiesKHR, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDeviceGroupPresentCapabilitiesKHR.html - VULKAN_HPP_NODISCARD DeviceGroupPresentCapabilitiesKHR getGroupPresentCapabilitiesKHR() const; + VULKAN_HPP_NODISCARD typename ResultValueType::type getGroupPresentCapabilitiesKHR() const; // wrapper function for command vkGetDeviceGroupSurfacePresentModesKHR, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDeviceGroupSurfacePresentModesKHR.html - VULKAN_HPP_NODISCARD DeviceGroupPresentModeFlagsKHR getGroupSurfacePresentModesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface ) const; + VULKAN_HPP_NODISCARD typename ResultValueType::type + getGroupSurfacePresentModesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface ) const; // wrapper function for command vkAcquireNextImage2KHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkAcquireNextImage2KHR.html - VULKAN_HPP_NODISCARD std::pair acquireNextImage2KHR( const AcquireNextImageInfoKHR & acquireInfo ) const; + VULKAN_HPP_NODISCARD ResultValue acquireNextImage2KHR( const AcquireNextImageInfoKHR & acquireInfo ) const; //=== VK_KHR_display_swapchain === // wrapper function for command vkCreateSharedSwapchainsKHR, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateSharedSwapchainsKHR.html - VULKAN_HPP_NODISCARD detail::CreateReturnType>::Type + VULKAN_HPP_NODISCARD typename ResultValueType>::type createSharedSwapchainsKHR( ArrayProxy const & createInfos, Optional allocator = nullptr ) const; // wrapper function for command vkCreateSharedSwapchainsKHR, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateSharedSwapchainsKHR.html - VULKAN_HPP_NODISCARD detail::CreateReturnType::Type - createSharedSwapchainKHR( SwapchainCreateInfoKHR const & createInfo, - Optional allocator = nullptr ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT; + VULKAN_HPP_NODISCARD typename ResultValueType::type + createSharedSwapchainKHR( SwapchainCreateInfoKHR const & createInfo, + Optional allocator = nullptr ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS; //=== VK_EXT_debug_marker === // wrapper function for command vkDebugMarkerSetObjectTagEXT, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkDebugMarkerSetObjectTagEXT.html - void debugMarkerSetObjectTagEXT( const DebugMarkerObjectTagInfoEXT & tagInfo ) const; + typename ResultValueType::type debugMarkerSetObjectTagEXT( const DebugMarkerObjectTagInfoEXT & tagInfo ) const; // wrapper function for command vkDebugMarkerSetObjectNameEXT, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkDebugMarkerSetObjectNameEXT.html - void debugMarkerSetObjectNameEXT( const DebugMarkerObjectNameInfoEXT & nameInfo ) const; + typename ResultValueType::type debugMarkerSetObjectNameEXT( const DebugMarkerObjectNameInfoEXT & nameInfo ) const; //=== VK_KHR_video_queue === // wrapper function for command vkCreateVideoSessionKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateVideoSessionKHR.html - VULKAN_HPP_NODISCARD detail::CreateReturnType::Type - createVideoSessionKHR( VideoSessionCreateInfoKHR const & createInfo, - Optional allocator = nullptr ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT; + VULKAN_HPP_NODISCARD typename ResultValueType::type + createVideoSessionKHR( VideoSessionCreateInfoKHR const & createInfo, + Optional allocator = nullptr ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS; // wrapper function for command vkCreateVideoSessionParametersKHR, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateVideoSessionParametersKHR.html - VULKAN_HPP_NODISCARD detail::CreateReturnType::Type - createVideoSessionParametersKHR( VideoSessionParametersCreateInfoKHR const & createInfo, - Optional allocator = nullptr ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT; + VULKAN_HPP_NODISCARD typename ResultValueType::type + createVideoSessionParametersKHR( VideoSessionParametersCreateInfoKHR const & createInfo, + Optional allocator = nullptr ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS; //=== VK_NVX_binary_import === // wrapper function for command vkCreateCuModuleNVX, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateCuModuleNVX.html - VULKAN_HPP_NODISCARD detail::CreateReturnType::Type - createCuModuleNVX( CuModuleCreateInfoNVX const & createInfo, - Optional allocator = nullptr ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT; + VULKAN_HPP_NODISCARD typename ResultValueType::type + createCuModuleNVX( CuModuleCreateInfoNVX const & createInfo, + Optional allocator = nullptr ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS; // wrapper function for command vkCreateCuFunctionNVX, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateCuFunctionNVX.html - VULKAN_HPP_NODISCARD detail::CreateReturnType::Type - createCuFunctionNVX( CuFunctionCreateInfoNVX const & createInfo, - Optional allocator = nullptr ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT; + VULKAN_HPP_NODISCARD typename ResultValueType::type + createCuFunctionNVX( CuFunctionCreateInfoNVX const & createInfo, + Optional allocator = nullptr ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS; //=== VK_NVX_image_view_handle === @@ -4574,48 +4585,50 @@ namespace VULKAN_HPP_NAMESPACE //=== VK_KHR_external_memory_win32 === // wrapper function for command vkGetMemoryWin32HandleKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetMemoryWin32HandleKHR.html - VULKAN_HPP_NODISCARD HANDLE getMemoryWin32HandleKHR( const MemoryGetWin32HandleInfoKHR & getWin32HandleInfo ) const; + VULKAN_HPP_NODISCARD typename ResultValueType::type getMemoryWin32HandleKHR( const MemoryGetWin32HandleInfoKHR & getWin32HandleInfo ) const; // wrapper function for command vkGetMemoryWin32HandlePropertiesKHR, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetMemoryWin32HandlePropertiesKHR.html - VULKAN_HPP_NODISCARD MemoryWin32HandlePropertiesKHR getMemoryWin32HandlePropertiesKHR( ExternalMemoryHandleTypeFlagBits handleType, HANDLE handle ) const; + VULKAN_HPP_NODISCARD typename ResultValueType::type + getMemoryWin32HandlePropertiesKHR( ExternalMemoryHandleTypeFlagBits handleType, HANDLE handle ) const; # endif /*VK_USE_PLATFORM_WIN32_KHR*/ //=== VK_KHR_external_memory_fd === // wrapper function for command vkGetMemoryFdKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetMemoryFdKHR.html - VULKAN_HPP_NODISCARD int getMemoryFdKHR( const MemoryGetFdInfoKHR & getFdInfo ) const; + VULKAN_HPP_NODISCARD typename ResultValueType::type getMemoryFdKHR( const MemoryGetFdInfoKHR & getFdInfo ) const; // wrapper function for command vkGetMemoryFdPropertiesKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetMemoryFdPropertiesKHR.html - VULKAN_HPP_NODISCARD MemoryFdPropertiesKHR getMemoryFdPropertiesKHR( ExternalMemoryHandleTypeFlagBits handleType, int fd ) const; + VULKAN_HPP_NODISCARD typename ResultValueType::type getMemoryFdPropertiesKHR( ExternalMemoryHandleTypeFlagBits handleType, + int fd ) const; # if defined( VK_USE_PLATFORM_WIN32_KHR ) //=== VK_KHR_external_semaphore_win32 === // wrapper function for command vkImportSemaphoreWin32HandleKHR, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkImportSemaphoreWin32HandleKHR.html - void importSemaphoreWin32HandleKHR( const ImportSemaphoreWin32HandleInfoKHR & importSemaphoreWin32HandleInfo ) const; + typename ResultValueType::type importSemaphoreWin32HandleKHR( const ImportSemaphoreWin32HandleInfoKHR & importSemaphoreWin32HandleInfo ) const; // wrapper function for command vkGetSemaphoreWin32HandleKHR, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetSemaphoreWin32HandleKHR.html - VULKAN_HPP_NODISCARD HANDLE getSemaphoreWin32HandleKHR( const SemaphoreGetWin32HandleInfoKHR & getWin32HandleInfo ) const; + VULKAN_HPP_NODISCARD typename ResultValueType::type getSemaphoreWin32HandleKHR( const SemaphoreGetWin32HandleInfoKHR & getWin32HandleInfo ) const; # endif /*VK_USE_PLATFORM_WIN32_KHR*/ //=== VK_KHR_external_semaphore_fd === // wrapper function for command vkImportSemaphoreFdKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkImportSemaphoreFdKHR.html - void importSemaphoreFdKHR( const ImportSemaphoreFdInfoKHR & importSemaphoreFdInfo ) const; + typename ResultValueType::type importSemaphoreFdKHR( const ImportSemaphoreFdInfoKHR & importSemaphoreFdInfo ) const; // wrapper function for command vkGetSemaphoreFdKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetSemaphoreFdKHR.html - VULKAN_HPP_NODISCARD int getSemaphoreFdKHR( const SemaphoreGetFdInfoKHR & getFdInfo ) const; + VULKAN_HPP_NODISCARD typename ResultValueType::type getSemaphoreFdKHR( const SemaphoreGetFdInfoKHR & getFdInfo ) const; //=== VK_KHR_descriptor_update_template === // wrapper function for command vkCreateDescriptorUpdateTemplateKHR, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateDescriptorUpdateTemplateKHR.html - VULKAN_HPP_NODISCARD detail::CreateReturnType::Type - createDescriptorUpdateTemplateKHR( DescriptorUpdateTemplateCreateInfo const & createInfo, - Optional allocator = nullptr ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT; + VULKAN_HPP_NODISCARD typename ResultValueType::type + createDescriptorUpdateTemplateKHR( DescriptorUpdateTemplateCreateInfo const & createInfo, + Optional allocator = nullptr ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS; // wrapper function for command vkDestroyDescriptorUpdateTemplateKHR, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyDescriptorUpdateTemplateKHR.html @@ -4626,18 +4639,19 @@ namespace VULKAN_HPP_NAMESPACE //=== VK_EXT_display_control === // wrapper function for command vkDisplayPowerControlEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDisplayPowerControlEXT.html - void displayPowerControlEXT( VULKAN_HPP_NAMESPACE::DisplayKHR display, const DisplayPowerInfoEXT & displayPowerInfo ) const; + typename ResultValueType::type displayPowerControlEXT( VULKAN_HPP_NAMESPACE::DisplayKHR display, + const DisplayPowerInfoEXT & displayPowerInfo ) const; // wrapper function for command vkRegisterDeviceEventEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkRegisterDeviceEventEXT.html - VULKAN_HPP_NODISCARD detail::CreateReturnType::Type - registerEventEXT( DeviceEventInfoEXT const & deviceEventInfo, - Optional allocator = nullptr ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT; + VULKAN_HPP_NODISCARD typename ResultValueType::type + registerEventEXT( DeviceEventInfoEXT const & deviceEventInfo, + Optional allocator = nullptr ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS; // wrapper function for command vkRegisterDisplayEventEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkRegisterDisplayEventEXT.html - VULKAN_HPP_NODISCARD detail::CreateReturnType::Type - registerDisplayEventEXT( DisplayKHR const & display, - DisplayEventInfoEXT const & displayEventInfo, - Optional allocator = nullptr ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT; + VULKAN_HPP_NODISCARD typename ResultValueType::type + registerDisplayEventEXT( DisplayKHR const & display, + DisplayEventInfoEXT const & displayEventInfo, + Optional allocator = nullptr ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS; //=== VK_EXT_hdr_metadata === @@ -4648,33 +4662,33 @@ namespace VULKAN_HPP_NAMESPACE //=== VK_KHR_create_renderpass2 === // wrapper function for command vkCreateRenderPass2KHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateRenderPass2KHR.html - VULKAN_HPP_NODISCARD detail::CreateReturnType::Type - createRenderPass2KHR( RenderPassCreateInfo2 const & createInfo, - Optional allocator = nullptr ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT; + VULKAN_HPP_NODISCARD typename ResultValueType::type + createRenderPass2KHR( RenderPassCreateInfo2 const & createInfo, + Optional allocator = nullptr ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS; # if defined( VK_USE_PLATFORM_WIN32_KHR ) //=== VK_KHR_external_fence_win32 === // wrapper function for command vkImportFenceWin32HandleKHR, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkImportFenceWin32HandleKHR.html - void importFenceWin32HandleKHR( const ImportFenceWin32HandleInfoKHR & importFenceWin32HandleInfo ) const; + typename ResultValueType::type importFenceWin32HandleKHR( const ImportFenceWin32HandleInfoKHR & importFenceWin32HandleInfo ) const; // wrapper function for command vkGetFenceWin32HandleKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetFenceWin32HandleKHR.html - VULKAN_HPP_NODISCARD HANDLE getFenceWin32HandleKHR( const FenceGetWin32HandleInfoKHR & getWin32HandleInfo ) const; + VULKAN_HPP_NODISCARD typename ResultValueType::type getFenceWin32HandleKHR( const FenceGetWin32HandleInfoKHR & getWin32HandleInfo ) const; # endif /*VK_USE_PLATFORM_WIN32_KHR*/ //=== VK_KHR_external_fence_fd === // wrapper function for command vkImportFenceFdKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkImportFenceFdKHR.html - void importFenceFdKHR( const ImportFenceFdInfoKHR & importFenceFdInfo ) const; + typename ResultValueType::type importFenceFdKHR( const ImportFenceFdInfoKHR & importFenceFdInfo ) const; // wrapper function for command vkGetFenceFdKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetFenceFdKHR.html - VULKAN_HPP_NODISCARD int getFenceFdKHR( const FenceGetFdInfoKHR & getFdInfo ) const; + VULKAN_HPP_NODISCARD typename ResultValueType::type getFenceFdKHR( const FenceGetFdInfoKHR & getFdInfo ) const; //=== VK_KHR_performance_query === // wrapper function for command vkAcquireProfilingLockKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkAcquireProfilingLockKHR.html - void acquireProfilingLockKHR( const AcquireProfilingLockInfoKHR & info ) const; + typename ResultValueType::type acquireProfilingLockKHR( const AcquireProfilingLockInfoKHR & info ) const; // wrapper function for command vkReleaseProfilingLockKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkReleaseProfilingLockKHR.html void releaseProfilingLockKHR() const VULKAN_HPP_NOEXCEPT; @@ -4683,27 +4697,30 @@ namespace VULKAN_HPP_NAMESPACE // wrapper function for command vkSetDebugUtilsObjectNameEXT, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkSetDebugUtilsObjectNameEXT.html - void setDebugUtilsObjectNameEXT( const DebugUtilsObjectNameInfoEXT & nameInfo ) const; + typename ResultValueType::type setDebugUtilsObjectNameEXT( const DebugUtilsObjectNameInfoEXT & nameInfo ) const; // wrapper function for command vkSetDebugUtilsObjectTagEXT, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkSetDebugUtilsObjectTagEXT.html - void setDebugUtilsObjectTagEXT( const DebugUtilsObjectTagInfoEXT & tagInfo ) const; + typename ResultValueType::type setDebugUtilsObjectTagEXT( const DebugUtilsObjectTagInfoEXT & tagInfo ) const; # if defined( VK_USE_PLATFORM_ANDROID_KHR ) //=== VK_ANDROID_external_memory_android_hardware_buffer === // wrapper function for command vkGetAndroidHardwareBufferPropertiesANDROID, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetAndroidHardwareBufferPropertiesANDROID.html - VULKAN_HPP_NODISCARD AndroidHardwareBufferPropertiesANDROID getAndroidHardwareBufferPropertiesANDROID( const struct AHardwareBuffer & buffer ) const; + VULKAN_HPP_NODISCARD typename ResultValueType::type + getAndroidHardwareBufferPropertiesANDROID( const struct AHardwareBuffer & buffer ) const; // wrapper function for command vkGetAndroidHardwareBufferPropertiesANDROID, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetAndroidHardwareBufferPropertiesANDROID.html template - VULKAN_HPP_NODISCARD StructureChain getAndroidHardwareBufferPropertiesANDROID( const struct AHardwareBuffer & buffer ) const; + VULKAN_HPP_NODISCARD typename ResultValueType>::type + getAndroidHardwareBufferPropertiesANDROID( const struct AHardwareBuffer & buffer ) const; // wrapper function for command vkGetMemoryAndroidHardwareBufferANDROID, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetMemoryAndroidHardwareBufferANDROID.html - VULKAN_HPP_NODISCARD struct AHardwareBuffer * getMemoryAndroidHardwareBufferANDROID( const MemoryGetAndroidHardwareBufferInfoANDROID & info ) const; + VULKAN_HPP_NODISCARD typename ResultValueType::type + getMemoryAndroidHardwareBufferANDROID( const MemoryGetAndroidHardwareBufferInfoANDROID & info ) const; # endif /*VK_USE_PLATFORM_ANDROID_KHR*/ # if defined( VK_ENABLE_BETA_EXTENSIONS ) @@ -4711,17 +4728,17 @@ namespace VULKAN_HPP_NAMESPACE // wrapper function for command vkCreateExecutionGraphPipelinesAMDX, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateExecutionGraphPipelinesAMDX.html - VULKAN_HPP_NODISCARD detail::CreateReturnType>::Type - createExecutionGraphPipelinesAMDX( Optional const & pipelineCache, - ArrayProxy const & createInfos, - Optional allocator = nullptr ) const; + VULKAN_HPP_NODISCARD typename ResultValueType>::type + createExecutionGraphPipelinesAMDX( Optional const & pipelineCache, + ArrayProxy const & createInfos, + Optional allocator = nullptr ) const; // wrapper function for command vkCreateExecutionGraphPipelinesAMDX, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateExecutionGraphPipelinesAMDX.html - VULKAN_HPP_NODISCARD detail::CreateReturnType::Type - createExecutionGraphPipelineAMDX( Optional const & pipelineCache, - ExecutionGraphPipelineCreateInfoAMDX const & createInfo, - Optional allocator = nullptr ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT; + VULKAN_HPP_NODISCARD typename ResultValueType::type + createExecutionGraphPipelineAMDX( Optional const & pipelineCache, + ExecutionGraphPipelineCreateInfoAMDX const & createInfo, + Optional allocator = nullptr ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS; # endif /*VK_ENABLE_BETA_EXTENSIONS*/ //=== VK_KHR_get_memory_requirements2 === @@ -4753,9 +4770,9 @@ namespace VULKAN_HPP_NAMESPACE // wrapper function for command vkCreateAccelerationStructureKHR, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateAccelerationStructureKHR.html - VULKAN_HPP_NODISCARD detail::CreateReturnType::Type - createAccelerationStructureKHR( AccelerationStructureCreateInfoKHR const & createInfo, - Optional allocator = nullptr ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT; + VULKAN_HPP_NODISCARD typename ResultValueType::type + createAccelerationStructureKHR( AccelerationStructureCreateInfoKHR const & createInfo, + Optional allocator = nullptr ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS; // wrapper function for command vkBuildAccelerationStructuresKHR, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkBuildAccelerationStructuresKHR.html @@ -4782,7 +4799,7 @@ namespace VULKAN_HPP_NAMESPACE // wrapper function for command vkWriteAccelerationStructuresPropertiesKHR, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkWriteAccelerationStructuresPropertiesKHR.html template - VULKAN_HPP_NODISCARD std::vector + VULKAN_HPP_NODISCARD typename ResultValueType>::type writeAccelerationStructuresPropertiesKHR( ArrayProxy const & accelerationStructures, QueryType queryType, size_t dataSize, @@ -4791,7 +4808,7 @@ namespace VULKAN_HPP_NAMESPACE // wrapper function for command vkWriteAccelerationStructuresPropertiesKHR, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkWriteAccelerationStructuresPropertiesKHR.html template - VULKAN_HPP_NODISCARD DataType writeAccelerationStructuresPropertyKHR( + VULKAN_HPP_NODISCARD typename ResultValueType::type writeAccelerationStructuresPropertyKHR( ArrayProxy const & accelerationStructures, QueryType queryType, size_t stride ) const; // wrapper function for command vkGetAccelerationStructureDeviceAddressKHR, see @@ -4814,27 +4831,27 @@ namespace VULKAN_HPP_NAMESPACE // wrapper function for command vkCreateRayTracingPipelinesKHR, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateRayTracingPipelinesKHR.html - VULKAN_HPP_NODISCARD detail::CreateReturnType>::Type - createRayTracingPipelinesKHR( Optional const & deferredOperation, - Optional const & pipelineCache, - ArrayProxy const & createInfos, - Optional allocator = nullptr ) const; + VULKAN_HPP_NODISCARD typename ResultValueType>::type + createRayTracingPipelinesKHR( Optional const & deferredOperation, + Optional const & pipelineCache, + ArrayProxy const & createInfos, + Optional allocator = nullptr ) const; // wrapper function for command vkCreateRayTracingPipelinesKHR, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateRayTracingPipelinesKHR.html - VULKAN_HPP_NODISCARD detail::CreateReturnType::Type - createRayTracingPipelineKHR( Optional const & deferredOperation, - Optional const & pipelineCache, - RayTracingPipelineCreateInfoKHR const & createInfo, - Optional allocator = nullptr ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT; + VULKAN_HPP_NODISCARD typename ResultValueType::type + createRayTracingPipelineKHR( Optional const & deferredOperation, + Optional const & pipelineCache, + RayTracingPipelineCreateInfoKHR const & createInfo, + Optional allocator = nullptr ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS; //=== VK_KHR_sampler_ycbcr_conversion === // wrapper function for command vkCreateSamplerYcbcrConversionKHR, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateSamplerYcbcrConversionKHR.html - VULKAN_HPP_NODISCARD detail::CreateReturnType::Type - createSamplerYcbcrConversionKHR( SamplerYcbcrConversionCreateInfo const & createInfo, - Optional allocator = nullptr ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT; + VULKAN_HPP_NODISCARD typename ResultValueType::type + createSamplerYcbcrConversionKHR( SamplerYcbcrConversionCreateInfo const & createInfo, + Optional allocator = nullptr ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS; // wrapper function for command vkDestroySamplerYcbcrConversionKHR, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroySamplerYcbcrConversionKHR.html @@ -4845,25 +4862,25 @@ namespace VULKAN_HPP_NAMESPACE //=== VK_KHR_bind_memory2 === // wrapper function for command vkBindBufferMemory2KHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkBindBufferMemory2KHR.html - void bindBufferMemory2KHR( ArrayProxy const & bindInfos ) const; + typename ResultValueType::type bindBufferMemory2KHR( ArrayProxy const & bindInfos ) const; // wrapper function for command vkBindImageMemory2KHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkBindImageMemory2KHR.html - void bindImageMemory2KHR( ArrayProxy const & bindInfos ) const; + typename ResultValueType::type bindImageMemory2KHR( ArrayProxy const & bindInfos ) const; //=== VK_EXT_validation_cache === // wrapper function for command vkCreateValidationCacheEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateValidationCacheEXT.html - VULKAN_HPP_NODISCARD detail::CreateReturnType::Type - createValidationCacheEXT( ValidationCacheCreateInfoEXT const & createInfo, - Optional allocator = nullptr ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT; + VULKAN_HPP_NODISCARD typename ResultValueType::type + createValidationCacheEXT( ValidationCacheCreateInfoEXT const & createInfo, + Optional allocator = nullptr ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS; //=== VK_NV_ray_tracing === // wrapper function for command vkCreateAccelerationStructureNV, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateAccelerationStructureNV.html - VULKAN_HPP_NODISCARD detail::CreateReturnType::Type - createAccelerationStructureNV( AccelerationStructureCreateInfoNV const & createInfo, - Optional allocator = nullptr ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT; + VULKAN_HPP_NODISCARD typename ResultValueType::type + createAccelerationStructureNV( AccelerationStructureCreateInfoNV const & createInfo, + Optional allocator = nullptr ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS; // wrapper function for command vkGetAccelerationStructureMemoryRequirementsNV, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetAccelerationStructureMemoryRequirementsNV.html @@ -4878,21 +4895,21 @@ namespace VULKAN_HPP_NAMESPACE // wrapper function for command vkBindAccelerationStructureMemoryNV, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkBindAccelerationStructureMemoryNV.html - void bindAccelerationStructureMemoryNV( ArrayProxy const & bindInfos ) const; + typename ResultValueType::type bindAccelerationStructureMemoryNV( ArrayProxy const & bindInfos ) const; // wrapper function for command vkCreateRayTracingPipelinesNV, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateRayTracingPipelinesNV.html - VULKAN_HPP_NODISCARD detail::CreateReturnType>::Type - createRayTracingPipelinesNV( Optional const & pipelineCache, - ArrayProxy const & createInfos, - Optional allocator = nullptr ) const; + VULKAN_HPP_NODISCARD typename ResultValueType>::type + createRayTracingPipelinesNV( Optional const & pipelineCache, + ArrayProxy const & createInfos, + Optional allocator = nullptr ) const; // wrapper function for command vkCreateRayTracingPipelinesNV, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateRayTracingPipelinesNV.html - VULKAN_HPP_NODISCARD detail::CreateReturnType::Type - createRayTracingPipelineNV( Optional const & pipelineCache, - RayTracingPipelineCreateInfoNV const & createInfo, - Optional allocator = nullptr ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT; + VULKAN_HPP_NODISCARD typename ResultValueType::type + createRayTracingPipelineNV( Optional const & pipelineCache, + RayTracingPipelineCreateInfoNV const & createInfo, + Optional allocator = nullptr ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS; //=== VK_KHR_maintenance3 === @@ -4911,19 +4928,20 @@ namespace VULKAN_HPP_NAMESPACE // wrapper function for command vkGetMemoryHostPointerPropertiesEXT, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetMemoryHostPointerPropertiesEXT.html - VULKAN_HPP_NODISCARD MemoryHostPointerPropertiesEXT getMemoryHostPointerPropertiesEXT( ExternalMemoryHandleTypeFlagBits handleType, - const void * pHostPointer ) const; + VULKAN_HPP_NODISCARD typename ResultValueType::type + getMemoryHostPointerPropertiesEXT( ExternalMemoryHandleTypeFlagBits handleType, const void * pHostPointer ) const; //=== VK_EXT_calibrated_timestamps === // wrapper function for command vkGetCalibratedTimestampsEXT, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetCalibratedTimestampsEXT.html - VULKAN_HPP_NODISCARD std::pair, uint64_t> - getCalibratedTimestampsEXT( ArrayProxy const & timestampInfos ) const; + VULKAN_HPP_NODISCARD typename ResultValueType, uint64_t>>::type + getCalibratedTimestampsEXT( ArrayProxy const & timestampInfos ) const; // wrapper function for command vkGetCalibratedTimestampsEXT, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetCalibratedTimestampsEXT.html - VULKAN_HPP_NODISCARD std::pair getCalibratedTimestampEXT( const CalibratedTimestampInfoKHR & timestampInfo ) const; + VULKAN_HPP_NODISCARD typename ResultValueType>::type + getCalibratedTimestampEXT( const CalibratedTimestampInfoKHR & timestampInfo ) const; //=== VK_KHR_timeline_semaphore === @@ -4931,13 +4949,13 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_NODISCARD Result waitSemaphoresKHR( const SemaphoreWaitInfo & waitInfo, uint64_t timeout ) const; // wrapper function for command vkSignalSemaphoreKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkSignalSemaphoreKHR.html - void signalSemaphoreKHR( const SemaphoreSignalInfo & signalInfo ) const; + typename ResultValueType::type signalSemaphoreKHR( const SemaphoreSignalInfo & signalInfo ) const; //=== VK_INTEL_performance_query === // wrapper function for command vkInitializePerformanceApiINTEL, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkInitializePerformanceApiINTEL.html - void initializePerformanceApiINTEL( const InitializePerformanceApiInfoINTEL & initializeInfo ) const; + typename ResultValueType::type initializePerformanceApiINTEL( const InitializePerformanceApiInfoINTEL & initializeInfo ) const; // wrapper function for command vkUninitializePerformanceApiINTEL, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkUninitializePerformanceApiINTEL.html @@ -4945,12 +4963,12 @@ namespace VULKAN_HPP_NAMESPACE // wrapper function for command vkAcquirePerformanceConfigurationINTEL, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkAcquirePerformanceConfigurationINTEL.html - VULKAN_HPP_NODISCARD detail::CreateReturnType::Type - acquirePerformanceConfigurationINTEL( PerformanceConfigurationAcquireInfoINTEL const & acquireInfo ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT; + VULKAN_HPP_NODISCARD typename ResultValueType::type + acquirePerformanceConfigurationINTEL( PerformanceConfigurationAcquireInfoINTEL const & acquireInfo ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS; // wrapper function for command vkGetPerformanceParameterINTEL, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPerformanceParameterINTEL.html - VULKAN_HPP_NODISCARD PerformanceValueINTEL getPerformanceParameterINTEL( PerformanceParameterTypeINTEL parameter ) const; + VULKAN_HPP_NODISCARD typename ResultValueType::type getPerformanceParameterINTEL( PerformanceParameterTypeINTEL parameter ) const; //=== VK_EXT_buffer_device_address === @@ -4963,7 +4981,8 @@ namespace VULKAN_HPP_NAMESPACE // wrapper function for command vkGetDeviceGroupSurfacePresentModes2EXT, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDeviceGroupSurfacePresentModes2EXT.html - VULKAN_HPP_NODISCARD DeviceGroupPresentModeFlagsKHR getGroupSurfacePresentModes2EXT( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo ) const; + VULKAN_HPP_NODISCARD typename ResultValueType::type + getGroupSurfacePresentModes2EXT( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo ) const; # endif /*VK_USE_PLATFORM_WIN32_KHR*/ //=== VK_KHR_buffer_device_address === @@ -4984,52 +5003,53 @@ namespace VULKAN_HPP_NAMESPACE // wrapper function for command vkCreateDeferredOperationKHR, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateDeferredOperationKHR.html - VULKAN_HPP_NODISCARD detail::CreateReturnType::Type - createDeferredOperationKHR( Optional allocator = nullptr ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT; + VULKAN_HPP_NODISCARD typename ResultValueType::type + createDeferredOperationKHR( Optional allocator = nullptr ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS; //=== VK_KHR_pipeline_executable_properties === // wrapper function for command vkGetPipelineExecutablePropertiesKHR, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPipelineExecutablePropertiesKHR.html - VULKAN_HPP_NODISCARD std::vector getPipelineExecutablePropertiesKHR( const PipelineInfoKHR & pipelineInfo ) const; + VULKAN_HPP_NODISCARD typename ResultValueType>::type + getPipelineExecutablePropertiesKHR( const PipelineInfoKHR & pipelineInfo ) const; // wrapper function for command vkGetPipelineExecutableStatisticsKHR, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPipelineExecutableStatisticsKHR.html - VULKAN_HPP_NODISCARD std::vector - getPipelineExecutableStatisticsKHR( const PipelineExecutableInfoKHR & executableInfo ) const; + VULKAN_HPP_NODISCARD typename ResultValueType>::type + getPipelineExecutableStatisticsKHR( const PipelineExecutableInfoKHR & executableInfo ) const; // wrapper function for command vkGetPipelineExecutableInternalRepresentationsKHR, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPipelineExecutableInternalRepresentationsKHR.html - VULKAN_HPP_NODISCARD std::vector - getPipelineExecutableInternalRepresentationsKHR( const PipelineExecutableInfoKHR & executableInfo ) const; + VULKAN_HPP_NODISCARD typename ResultValueType>::type + getPipelineExecutableInternalRepresentationsKHR( const PipelineExecutableInfoKHR & executableInfo ) const; //=== VK_EXT_host_image_copy === // wrapper function for command vkCopyMemoryToImageEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCopyMemoryToImageEXT.html - void copyMemoryToImageEXT( const CopyMemoryToImageInfo & copyMemoryToImageInfo ) const; + typename ResultValueType::type copyMemoryToImageEXT( const CopyMemoryToImageInfo & copyMemoryToImageInfo ) const; // wrapper function for command vkCopyImageToMemoryEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCopyImageToMemoryEXT.html - void copyImageToMemoryEXT( const CopyImageToMemoryInfo & copyImageToMemoryInfo ) const; + typename ResultValueType::type copyImageToMemoryEXT( const CopyImageToMemoryInfo & copyImageToMemoryInfo ) const; // wrapper function for command vkCopyImageToImageEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCopyImageToImageEXT.html - void copyImageToImageEXT( const CopyImageToImageInfo & copyImageToImageInfo ) const; + typename ResultValueType::type copyImageToImageEXT( const CopyImageToImageInfo & copyImageToImageInfo ) const; // wrapper function for command vkTransitionImageLayoutEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkTransitionImageLayoutEXT.html - void transitionImageLayoutEXT( ArrayProxy const & transitions ) const; + typename ResultValueType::type transitionImageLayoutEXT( ArrayProxy const & transitions ) const; //=== VK_KHR_map_memory2 === // wrapper function for command vkMapMemory2KHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkMapMemory2KHR.html - VULKAN_HPP_NODISCARD void * mapMemory2KHR( const MemoryMapInfo & memoryMapInfo ) const; + VULKAN_HPP_NODISCARD typename ResultValueType::type mapMemory2KHR( const MemoryMapInfo & memoryMapInfo ) const; // wrapper function for command vkUnmapMemory2KHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkUnmapMemory2KHR.html - void unmapMemory2KHR( const MemoryUnmapInfo & memoryUnmapInfo ) const; + typename ResultValueType::type unmapMemory2KHR( const MemoryUnmapInfo & memoryUnmapInfo ) const; //=== VK_EXT_swapchain_maintenance1 === // wrapper function for command vkReleaseSwapchainImagesEXT, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkReleaseSwapchainImagesEXT.html - void releaseSwapchainImagesEXT( const ReleaseSwapchainImagesInfoKHR & releaseInfo ) const; + typename ResultValueType::type releaseSwapchainImagesEXT( const ReleaseSwapchainImagesInfoKHR & releaseInfo ) const; //=== VK_NV_device_generated_commands === @@ -5046,16 +5066,16 @@ namespace VULKAN_HPP_NAMESPACE // wrapper function for command vkCreateIndirectCommandsLayoutNV, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateIndirectCommandsLayoutNV.html - VULKAN_HPP_NODISCARD detail::CreateReturnType::Type - createIndirectCommandsLayoutNV( IndirectCommandsLayoutCreateInfoNV const & createInfo, - Optional allocator = nullptr ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT; + VULKAN_HPP_NODISCARD typename ResultValueType::type + createIndirectCommandsLayoutNV( IndirectCommandsLayoutCreateInfoNV const & createInfo, + Optional allocator = nullptr ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS; //=== VK_EXT_private_data === // wrapper function for command vkCreatePrivateDataSlotEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreatePrivateDataSlotEXT.html - VULKAN_HPP_NODISCARD detail::CreateReturnType::Type - createPrivateDataSlotEXT( PrivateDataSlotCreateInfo const & createInfo, - Optional allocator = nullptr ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT; + VULKAN_HPP_NODISCARD typename ResultValueType::type + createPrivateDataSlotEXT( PrivateDataSlotCreateInfo const & createInfo, + Optional allocator = nullptr ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS; // wrapper function for command vkDestroyPrivateDataSlotEXT, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyPrivateDataSlotEXT.html @@ -5063,7 +5083,8 @@ namespace VULKAN_HPP_NAMESPACE Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; // wrapper function for command vkSetPrivateDataEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkSetPrivateDataEXT.html - void setPrivateDataEXT( ObjectType objectType, uint64_t objectHandle, VULKAN_HPP_NAMESPACE::PrivateDataSlot privateDataSlot, uint64_t data ) const; + typename ResultValueType::type + setPrivateDataEXT( ObjectType objectType, uint64_t objectHandle, VULKAN_HPP_NAMESPACE::PrivateDataSlot privateDataSlot, uint64_t data ) const; // wrapper function for command vkGetPrivateDataEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPrivateDataEXT.html VULKAN_HPP_NODISCARD uint64_t getPrivateDataEXT( ObjectType objectType, @@ -5074,27 +5095,27 @@ namespace VULKAN_HPP_NAMESPACE // wrapper function for command vkGetEncodedVideoSessionParametersKHR, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetEncodedVideoSessionParametersKHR.html - VULKAN_HPP_NODISCARD std::pair> - getEncodedVideoSessionParametersKHR( const VideoEncodeSessionParametersGetInfoKHR & videoSessionParametersInfo ) const; + VULKAN_HPP_NODISCARD typename ResultValueType>>::type + getEncodedVideoSessionParametersKHR( const VideoEncodeSessionParametersGetInfoKHR & videoSessionParametersInfo ) const; // wrapper function for command vkGetEncodedVideoSessionParametersKHR, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetEncodedVideoSessionParametersKHR.html template - VULKAN_HPP_NODISCARD std::pair, std::vector> - getEncodedVideoSessionParametersKHR( const VideoEncodeSessionParametersGetInfoKHR & videoSessionParametersInfo ) const; + VULKAN_HPP_NODISCARD typename ResultValueType, std::vector>>::type + getEncodedVideoSessionParametersKHR( const VideoEncodeSessionParametersGetInfoKHR & videoSessionParametersInfo ) const; # if defined( VK_ENABLE_BETA_EXTENSIONS ) //=== VK_NV_cuda_kernel_launch === // wrapper function for command vkCreateCudaModuleNV, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateCudaModuleNV.html - VULKAN_HPP_NODISCARD detail::CreateReturnType::Type - createCudaModuleNV( CudaModuleCreateInfoNV const & createInfo, - Optional allocator = nullptr ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT; + VULKAN_HPP_NODISCARD typename ResultValueType::type + createCudaModuleNV( CudaModuleCreateInfoNV const & createInfo, + Optional allocator = nullptr ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS; // wrapper function for command vkCreateCudaFunctionNV, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateCudaFunctionNV.html - VULKAN_HPP_NODISCARD detail::CreateReturnType::Type - createCudaFunctionNV( CudaFunctionCreateInfoNV const & createInfo, - Optional allocator = nullptr ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT; + VULKAN_HPP_NODISCARD typename ResultValueType::type + createCudaFunctionNV( CudaFunctionCreateInfoNV const & createInfo, + Optional allocator = nullptr ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS; # endif /*VK_ENABLE_BETA_EXTENSIONS*/ # if defined( VK_USE_PLATFORM_METAL_EXT ) @@ -5116,27 +5137,31 @@ namespace VULKAN_HPP_NAMESPACE // wrapper function for command vkGetBufferOpaqueCaptureDescriptorDataEXT, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetBufferOpaqueCaptureDescriptorDataEXT.html template - VULKAN_HPP_NODISCARD DataType getBufferOpaqueCaptureDescriptorDataEXT( const BufferCaptureDescriptorDataInfoEXT & info ) const; + VULKAN_HPP_NODISCARD typename ResultValueType::type + getBufferOpaqueCaptureDescriptorDataEXT( const BufferCaptureDescriptorDataInfoEXT & info ) const; // wrapper function for command vkGetImageOpaqueCaptureDescriptorDataEXT, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetImageOpaqueCaptureDescriptorDataEXT.html template - VULKAN_HPP_NODISCARD DataType getImageOpaqueCaptureDescriptorDataEXT( const ImageCaptureDescriptorDataInfoEXT & info ) const; + VULKAN_HPP_NODISCARD typename ResultValueType::type + getImageOpaqueCaptureDescriptorDataEXT( const ImageCaptureDescriptorDataInfoEXT & info ) const; // wrapper function for command vkGetImageViewOpaqueCaptureDescriptorDataEXT, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetImageViewOpaqueCaptureDescriptorDataEXT.html template - VULKAN_HPP_NODISCARD DataType getImageViewOpaqueCaptureDescriptorDataEXT( const ImageViewCaptureDescriptorDataInfoEXT & info ) const; + VULKAN_HPP_NODISCARD typename ResultValueType::type + getImageViewOpaqueCaptureDescriptorDataEXT( const ImageViewCaptureDescriptorDataInfoEXT & info ) const; // wrapper function for command vkGetSamplerOpaqueCaptureDescriptorDataEXT, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetSamplerOpaqueCaptureDescriptorDataEXT.html template - VULKAN_HPP_NODISCARD DataType getSamplerOpaqueCaptureDescriptorDataEXT( const SamplerCaptureDescriptorDataInfoEXT & info ) const; + VULKAN_HPP_NODISCARD typename ResultValueType::type + getSamplerOpaqueCaptureDescriptorDataEXT( const SamplerCaptureDescriptorDataInfoEXT & info ) const; // wrapper function for command vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT.html template - VULKAN_HPP_NODISCARD DataType + VULKAN_HPP_NODISCARD typename ResultValueType::type getAccelerationStructureOpaqueCaptureDescriptorDataEXT( const AccelerationStructureCaptureDescriptorDataInfoEXT & info ) const; //=== VK_EXT_device_fault === @@ -5150,12 +5175,13 @@ namespace VULKAN_HPP_NAMESPACE // wrapper function for command vkGetMemoryZirconHandleFUCHSIA, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetMemoryZirconHandleFUCHSIA.html - VULKAN_HPP_NODISCARD zx_handle_t getMemoryZirconHandleFUCHSIA( const MemoryGetZirconHandleInfoFUCHSIA & getZirconHandleInfo ) const; + VULKAN_HPP_NODISCARD typename ResultValueType::type + getMemoryZirconHandleFUCHSIA( const MemoryGetZirconHandleInfoFUCHSIA & getZirconHandleInfo ) const; // wrapper function for command vkGetMemoryZirconHandlePropertiesFUCHSIA, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetMemoryZirconHandlePropertiesFUCHSIA.html - VULKAN_HPP_NODISCARD MemoryZirconHandlePropertiesFUCHSIA getMemoryZirconHandlePropertiesFUCHSIA( ExternalMemoryHandleTypeFlagBits handleType, - zx_handle_t zirconHandle ) const; + VULKAN_HPP_NODISCARD typename ResultValueType::type + getMemoryZirconHandlePropertiesFUCHSIA( ExternalMemoryHandleTypeFlagBits handleType, zx_handle_t zirconHandle ) const; # endif /*VK_USE_PLATFORM_FUCHSIA*/ # if defined( VK_USE_PLATFORM_FUCHSIA ) @@ -5163,11 +5189,13 @@ namespace VULKAN_HPP_NAMESPACE // wrapper function for command vkImportSemaphoreZirconHandleFUCHSIA, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkImportSemaphoreZirconHandleFUCHSIA.html - void importSemaphoreZirconHandleFUCHSIA( const ImportSemaphoreZirconHandleInfoFUCHSIA & importSemaphoreZirconHandleInfo ) const; + typename ResultValueType::type + importSemaphoreZirconHandleFUCHSIA( const ImportSemaphoreZirconHandleInfoFUCHSIA & importSemaphoreZirconHandleInfo ) const; // wrapper function for command vkGetSemaphoreZirconHandleFUCHSIA, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetSemaphoreZirconHandleFUCHSIA.html - VULKAN_HPP_NODISCARD zx_handle_t getSemaphoreZirconHandleFUCHSIA( const SemaphoreGetZirconHandleInfoFUCHSIA & getZirconHandleInfo ) const; + VULKAN_HPP_NODISCARD typename ResultValueType::type + getSemaphoreZirconHandleFUCHSIA( const SemaphoreGetZirconHandleInfoFUCHSIA & getZirconHandleInfo ) const; # endif /*VK_USE_PLATFORM_FUCHSIA*/ # if defined( VK_USE_PLATFORM_FUCHSIA ) @@ -5175,27 +5203,28 @@ namespace VULKAN_HPP_NAMESPACE // wrapper function for command vkCreateBufferCollectionFUCHSIA, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateBufferCollectionFUCHSIA.html - VULKAN_HPP_NODISCARD detail::CreateReturnType::Type - createBufferCollectionFUCHSIA( BufferCollectionCreateInfoFUCHSIA const & createInfo, - Optional allocator = nullptr ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT; + VULKAN_HPP_NODISCARD typename ResultValueType::type + createBufferCollectionFUCHSIA( BufferCollectionCreateInfoFUCHSIA const & createInfo, + Optional allocator = nullptr ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS; # endif /*VK_USE_PLATFORM_FUCHSIA*/ //=== VK_NV_external_memory_rdma === // wrapper function for command vkGetMemoryRemoteAddressNV, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetMemoryRemoteAddressNV.html - VULKAN_HPP_NODISCARD RemoteAddressNV getMemoryRemoteAddressNV( const MemoryGetRemoteAddressInfoNV & memoryGetRemoteAddressInfo ) const; + VULKAN_HPP_NODISCARD typename ResultValueType::type + getMemoryRemoteAddressNV( const MemoryGetRemoteAddressInfoNV & memoryGetRemoteAddressInfo ) const; //=== VK_EXT_pipeline_properties === // wrapper function for command vkGetPipelinePropertiesEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPipelinePropertiesEXT.html - VULKAN_HPP_NODISCARD BaseOutStructure getPipelinePropertiesEXT( const PipelineInfoEXT & pipelineInfo ) const; + VULKAN_HPP_NODISCARD typename ResultValueType::type getPipelinePropertiesEXT( const PipelineInfoEXT & pipelineInfo ) const; //=== VK_EXT_opacity_micromap === // wrapper function for command vkCreateMicromapEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateMicromapEXT.html - VULKAN_HPP_NODISCARD detail::CreateReturnType::Type - createMicromapEXT( MicromapCreateInfoEXT const & createInfo, - Optional allocator = nullptr ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT; + VULKAN_HPP_NODISCARD typename ResultValueType::type + createMicromapEXT( MicromapCreateInfoEXT const & createInfo, + Optional allocator = nullptr ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS; // wrapper function for command vkBuildMicromapsEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkBuildMicromapsEXT.html VULKAN_HPP_NODISCARD Result buildMicromapsEXT( VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, @@ -5215,17 +5244,14 @@ namespace VULKAN_HPP_NAMESPACE // wrapper function for command vkWriteMicromapsPropertiesEXT, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkWriteMicromapsPropertiesEXT.html template - VULKAN_HPP_NODISCARD std::vector writeMicromapsPropertiesEXT( ArrayProxy const & micromaps, - QueryType queryType, - size_t dataSize, - size_t stride ) const; + VULKAN_HPP_NODISCARD typename ResultValueType>::type writeMicromapsPropertiesEXT( + ArrayProxy const & micromaps, QueryType queryType, size_t dataSize, size_t stride ) const; // wrapper function for command vkWriteMicromapsPropertiesEXT, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkWriteMicromapsPropertiesEXT.html template - VULKAN_HPP_NODISCARD DataType writeMicromapsPropertyEXT( ArrayProxy const & micromaps, - QueryType queryType, - size_t stride ) const; + VULKAN_HPP_NODISCARD typename ResultValueType::type + writeMicromapsPropertyEXT( ArrayProxy const & micromaps, QueryType queryType, size_t stride ) const; // wrapper function for command vkGetDeviceMicromapCompatibilityEXT, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDeviceMicromapCompatibilityEXT.html @@ -5287,14 +5313,14 @@ namespace VULKAN_HPP_NAMESPACE //=== VK_ARM_tensors === // wrapper function for command vkCreateTensorARM, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateTensorARM.html - VULKAN_HPP_NODISCARD detail::CreateReturnType::Type - createTensorARM( TensorCreateInfoARM const & createInfo, - Optional allocator = nullptr ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT; + VULKAN_HPP_NODISCARD typename ResultValueType::type + createTensorARM( TensorCreateInfoARM const & createInfo, + Optional allocator = nullptr ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS; // wrapper function for command vkCreateTensorViewARM, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateTensorViewARM.html - VULKAN_HPP_NODISCARD detail::CreateReturnType::Type - createTensorViewARM( TensorViewCreateInfoARM const & createInfo, - Optional allocator = nullptr ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT; + VULKAN_HPP_NODISCARD typename ResultValueType::type + createTensorViewARM( TensorViewCreateInfoARM const & createInfo, + Optional allocator = nullptr ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS; // wrapper function for command vkGetTensorMemoryRequirementsARM, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetTensorMemoryRequirementsARM.html @@ -5306,7 +5332,7 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_NODISCARD StructureChain getTensorMemoryRequirementsARM( const TensorMemoryRequirementsInfoARM & info ) const VULKAN_HPP_NOEXCEPT; // wrapper function for command vkBindTensorMemoryARM, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkBindTensorMemoryARM.html - void bindTensorMemoryARM( ArrayProxy const & bindInfos ) const; + typename ResultValueType::type bindTensorMemoryARM( ArrayProxy const & bindInfos ) const; // wrapper function for command vkGetDeviceTensorMemoryRequirementsARM, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDeviceTensorMemoryRequirementsARM.html @@ -5321,12 +5347,14 @@ namespace VULKAN_HPP_NAMESPACE // wrapper function for command vkGetTensorOpaqueCaptureDescriptorDataARM, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetTensorOpaqueCaptureDescriptorDataARM.html template - VULKAN_HPP_NODISCARD DataType getTensorOpaqueCaptureDescriptorDataARM( const TensorCaptureDescriptorDataInfoARM & info ) const; + VULKAN_HPP_NODISCARD typename ResultValueType::type + getTensorOpaqueCaptureDescriptorDataARM( const TensorCaptureDescriptorDataInfoARM & info ) const; // wrapper function for command vkGetTensorViewOpaqueCaptureDescriptorDataARM, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetTensorViewOpaqueCaptureDescriptorDataARM.html template - VULKAN_HPP_NODISCARD DataType getTensorViewOpaqueCaptureDescriptorDataARM( const TensorViewCaptureDescriptorDataInfoARM & info ) const; + VULKAN_HPP_NODISCARD typename ResultValueType::type + getTensorViewOpaqueCaptureDescriptorDataARM( const TensorViewCaptureDescriptorDataInfoARM & info ) const; //=== VK_EXT_shader_module_identifier === @@ -5339,9 +5367,9 @@ namespace VULKAN_HPP_NAMESPACE // wrapper function for command vkCreateOpticalFlowSessionNV, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateOpticalFlowSessionNV.html - VULKAN_HPP_NODISCARD detail::CreateReturnType::Type - createOpticalFlowSessionNV( OpticalFlowSessionCreateInfoNV const & createInfo, - Optional allocator = nullptr ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT; + VULKAN_HPP_NODISCARD typename ResultValueType::type + createOpticalFlowSessionNV( OpticalFlowSessionCreateInfoNV const & createInfo, + Optional allocator = nullptr ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS; //=== VK_KHR_maintenance5 === @@ -5366,44 +5394,47 @@ namespace VULKAN_HPP_NAMESPACE //=== VK_EXT_shader_object === // wrapper function for command vkCreateShadersEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateShadersEXT.html - VULKAN_HPP_NODISCARD detail::CreateReturnType>::Type + VULKAN_HPP_NODISCARD typename ResultValueType>::type createShadersEXT( ArrayProxy const & createInfos, Optional allocator = nullptr ) const; // wrapper function for command vkCreateShadersEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateShadersEXT.html - VULKAN_HPP_NODISCARD detail::CreateReturnType::Type - createShaderEXT( ShaderCreateInfoEXT const & createInfo, - Optional allocator = nullptr ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT; + VULKAN_HPP_NODISCARD typename ResultValueType::type + createShaderEXT( ShaderCreateInfoEXT const & createInfo, + Optional allocator = nullptr ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS; //=== VK_KHR_pipeline_binary === // wrapper function for command vkCreatePipelineBinariesKHR, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreatePipelineBinariesKHR.html - VULKAN_HPP_NODISCARD detail::CreateReturnType>::Type + VULKAN_HPP_NODISCARD typename ResultValueType>::type createPipelineBinariesKHR( PipelineBinaryCreateInfoKHR const & createInfo, Optional allocator = nullptr ) const; // wrapper function for command vkGetPipelineKeyKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPipelineKeyKHR.html - VULKAN_HPP_NODISCARD PipelineBinaryKeyKHR + VULKAN_HPP_NODISCARD typename ResultValueType::type getPipelineKeyKHR( Optional pipelineCreateInfo VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT ) const; // wrapper function for command vkGetPipelineBinaryDataKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPipelineBinaryDataKHR.html - VULKAN_HPP_NODISCARD std::pair> getPipelineBinaryDataKHR( const PipelineBinaryDataInfoKHR & info ) const; + VULKAN_HPP_NODISCARD typename ResultValueType>>::type + getPipelineBinaryDataKHR( const PipelineBinaryDataInfoKHR & info ) const; // wrapper function for command vkReleaseCapturedPipelineDataKHR, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkReleaseCapturedPipelineDataKHR.html - void releaseCapturedPipelineDataKHR( const ReleaseCapturedPipelineDataInfoKHR & info, - Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT ) const; + typename ResultValueType::type + releaseCapturedPipelineDataKHR( const ReleaseCapturedPipelineDataInfoKHR & info, + Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT ) const; //=== VK_QCOM_tile_properties === // wrapper function for command vkGetDynamicRenderingTilePropertiesQCOM, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDynamicRenderingTilePropertiesQCOM.html - VULKAN_HPP_NODISCARD TilePropertiesQCOM getDynamicRenderingTilePropertiesQCOM( const RenderingInfo & renderingInfo ) const; + VULKAN_HPP_NODISCARD typename ResultValueType::type + getDynamicRenderingTilePropertiesQCOM( const RenderingInfo & renderingInfo ) const; //=== VK_KHR_swapchain_maintenance1 === // wrapper function for command vkReleaseSwapchainImagesKHR, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkReleaseSwapchainImagesKHR.html - void releaseSwapchainImagesKHR( const ReleaseSwapchainImagesInfoKHR & releaseInfo ) const; + typename ResultValueType::type releaseSwapchainImagesKHR( const ReleaseSwapchainImagesInfoKHR & releaseInfo ) const; //=== VK_NV_cooperative_vector === @@ -5415,30 +5446,30 @@ namespace VULKAN_HPP_NAMESPACE // wrapper function for command vkCreateDataGraphPipelinesARM, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateDataGraphPipelinesARM.html - VULKAN_HPP_NODISCARD detail::CreateReturnType>::Type - createDataGraphPipelinesARM( Optional const & deferredOperation, - Optional const & pipelineCache, - ArrayProxy const & createInfos, - Optional allocator = nullptr ) const; + VULKAN_HPP_NODISCARD typename ResultValueType>::type + createDataGraphPipelinesARM( Optional const & deferredOperation, + Optional const & pipelineCache, + ArrayProxy const & createInfos, + Optional allocator = nullptr ) const; // wrapper function for command vkCreateDataGraphPipelinesARM, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateDataGraphPipelinesARM.html - VULKAN_HPP_NODISCARD detail::CreateReturnType::Type - createDataGraphPipelineARM( Optional const & deferredOperation, - Optional const & pipelineCache, - DataGraphPipelineCreateInfoARM const & createInfo, - Optional allocator = nullptr ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT; + VULKAN_HPP_NODISCARD typename ResultValueType::type + createDataGraphPipelineARM( Optional const & deferredOperation, + Optional const & pipelineCache, + DataGraphPipelineCreateInfoARM const & createInfo, + Optional allocator = nullptr ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS; // wrapper function for command vkCreateDataGraphPipelineSessionARM, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateDataGraphPipelineSessionARM.html - VULKAN_HPP_NODISCARD detail::CreateReturnType::Type - createDataGraphPipelineSessionARM( DataGraphPipelineSessionCreateInfoARM const & createInfo, - Optional allocator = nullptr ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT; + VULKAN_HPP_NODISCARD typename ResultValueType::type + createDataGraphPipelineSessionARM( DataGraphPipelineSessionCreateInfoARM const & createInfo, + Optional allocator = nullptr ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS; // wrapper function for command vkGetDataGraphPipelineSessionBindPointRequirementsARM, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDataGraphPipelineSessionBindPointRequirementsARM.html - VULKAN_HPP_NODISCARD std::vector - getDataGraphPipelineSessionBindPointRequirementsARM( const DataGraphPipelineSessionBindPointRequirementsInfoARM & info ) const; + VULKAN_HPP_NODISCARD typename ResultValueType>::type + getDataGraphPipelineSessionBindPointRequirementsARM( const DataGraphPipelineSessionBindPointRequirementsInfoARM & info ) const; // wrapper function for command vkGetDataGraphPipelineSessionMemoryRequirementsARM, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDataGraphPipelineSessionMemoryRequirementsARM.html @@ -5453,12 +5484,13 @@ namespace VULKAN_HPP_NAMESPACE // wrapper function for command vkBindDataGraphPipelineSessionMemoryARM, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkBindDataGraphPipelineSessionMemoryARM.html - void bindDataGraphPipelineSessionMemoryARM( ArrayProxy const & bindInfos ) const; + typename ResultValueType::type + bindDataGraphPipelineSessionMemoryARM( ArrayProxy const & bindInfos ) const; // wrapper function for command vkGetDataGraphPipelineAvailablePropertiesARM, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDataGraphPipelineAvailablePropertiesARM.html - VULKAN_HPP_NODISCARD std::vector - getDataGraphPipelineAvailablePropertiesARM( const DataGraphPipelineInfoARM & pipelineInfo ) const; + VULKAN_HPP_NODISCARD typename ResultValueType>::type + getDataGraphPipelineAvailablePropertiesARM( const DataGraphPipelineInfoARM & pipelineInfo ) const; // wrapper function for command vkGetDataGraphPipelinePropertiesARM, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDataGraphPipelinePropertiesARM.html @@ -5471,32 +5503,34 @@ namespace VULKAN_HPP_NAMESPACE // wrapper function for command vkGetScreenBufferPropertiesQNX, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetScreenBufferPropertiesQNX.html - VULKAN_HPP_NODISCARD ScreenBufferPropertiesQNX getScreenBufferPropertiesQNX( const struct _screen_buffer & buffer ) const; + VULKAN_HPP_NODISCARD typename ResultValueType::type getScreenBufferPropertiesQNX( const struct _screen_buffer & buffer ) const; // wrapper function for command vkGetScreenBufferPropertiesQNX, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetScreenBufferPropertiesQNX.html template - VULKAN_HPP_NODISCARD StructureChain getScreenBufferPropertiesQNX( const struct _screen_buffer & buffer ) const; + VULKAN_HPP_NODISCARD typename ResultValueType>::type + getScreenBufferPropertiesQNX( const struct _screen_buffer & buffer ) const; # endif /*VK_USE_PLATFORM_SCREEN_QNX*/ //=== VK_KHR_calibrated_timestamps === // wrapper function for command vkGetCalibratedTimestampsKHR, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetCalibratedTimestampsKHR.html - VULKAN_HPP_NODISCARD std::pair, uint64_t> - getCalibratedTimestampsKHR( ArrayProxy const & timestampInfos ) const; + VULKAN_HPP_NODISCARD typename ResultValueType, uint64_t>>::type + getCalibratedTimestampsKHR( ArrayProxy const & timestampInfos ) const; // wrapper function for command vkGetCalibratedTimestampsKHR, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetCalibratedTimestampsKHR.html - VULKAN_HPP_NODISCARD std::pair getCalibratedTimestampKHR( const CalibratedTimestampInfoKHR & timestampInfo ) const; + VULKAN_HPP_NODISCARD typename ResultValueType>::type + getCalibratedTimestampKHR( const CalibratedTimestampInfoKHR & timestampInfo ) const; //=== VK_NV_external_compute_queue === // wrapper function for command vkCreateExternalComputeQueueNV, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateExternalComputeQueueNV.html - VULKAN_HPP_NODISCARD detail::CreateReturnType::Type - createExternalComputeQueueNV( ExternalComputeQueueCreateInfoNV const & createInfo, - Optional allocator = nullptr ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT; + VULKAN_HPP_NODISCARD typename ResultValueType::type + createExternalComputeQueueNV( ExternalComputeQueueCreateInfoNV const & createInfo, + Optional allocator = nullptr ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS; //=== VK_NV_cluster_acceleration_structure === @@ -5527,27 +5561,27 @@ namespace VULKAN_HPP_NAMESPACE // wrapper function for command vkCreateIndirectCommandsLayoutEXT, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateIndirectCommandsLayoutEXT.html - VULKAN_HPP_NODISCARD detail::CreateReturnType::Type - createIndirectCommandsLayoutEXT( IndirectCommandsLayoutCreateInfoEXT const & createInfo, - Optional allocator = nullptr ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT; + VULKAN_HPP_NODISCARD typename ResultValueType::type + createIndirectCommandsLayoutEXT( IndirectCommandsLayoutCreateInfoEXT const & createInfo, + Optional allocator = nullptr ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS; // wrapper function for command vkCreateIndirectExecutionSetEXT, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateIndirectExecutionSetEXT.html - VULKAN_HPP_NODISCARD detail::CreateReturnType::Type - createIndirectExecutionSetEXT( IndirectExecutionSetCreateInfoEXT const & createInfo, - Optional allocator = nullptr ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT; + VULKAN_HPP_NODISCARD typename ResultValueType::type + createIndirectExecutionSetEXT( IndirectExecutionSetCreateInfoEXT const & createInfo, + Optional allocator = nullptr ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS; # if defined( VK_USE_PLATFORM_METAL_EXT ) //=== VK_EXT_external_memory_metal === // wrapper function for command vkGetMemoryMetalHandleEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetMemoryMetalHandleEXT.html - VULKAN_HPP_NODISCARD void * getMemoryMetalHandleEXT( const MemoryGetMetalHandleInfoEXT & getMetalHandleInfo ) const; + VULKAN_HPP_NODISCARD typename ResultValueType::type getMemoryMetalHandleEXT( const MemoryGetMetalHandleInfoEXT & getMetalHandleInfo ) const; // wrapper function for command vkGetMemoryMetalHandlePropertiesEXT, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetMemoryMetalHandlePropertiesEXT.html template - VULKAN_HPP_NODISCARD MemoryMetalHandlePropertiesEXT getMemoryMetalHandlePropertiesEXT( ExternalMemoryHandleTypeFlagBits handleType, - HandleType const & handle ) const; + VULKAN_HPP_NODISCARD typename ResultValueType::type + getMemoryMetalHandlePropertiesEXT( ExternalMemoryHandleTypeFlagBits handleType, HandleType const & handle ) const; # endif /*VK_USE_PLATFORM_METAL_EXT*/ private: @@ -5573,7 +5607,7 @@ namespace VULKAN_HPP_NAMESPACE static VULKAN_HPP_CONST_OR_CONSTEXPR DebugReportObjectTypeEXT debugReportObjectType = DebugReportObjectTypeEXT::eAccelerationStructureKHR; public: -# if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) +# if !defined( VULKAN_HPP_NO_EXCEPTIONS ) AccelerationStructureKHR( Device const & device, AccelerationStructureCreateInfoKHR const & createInfo, Optional allocator = nullptr ) @@ -5704,7 +5738,7 @@ namespace VULKAN_HPP_NAMESPACE static VULKAN_HPP_CONST_OR_CONSTEXPR DebugReportObjectTypeEXT debugReportObjectType = DebugReportObjectTypeEXT::eAccelerationStructureNV; public: -# if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) +# if !defined( VULKAN_HPP_NO_EXCEPTIONS ) AccelerationStructureNV( Device const & device, AccelerationStructureCreateInfoNV const & createInfo, Optional allocator = nullptr ) @@ -5814,12 +5848,12 @@ namespace VULKAN_HPP_NAMESPACE // wrapper function for command vkGetAccelerationStructureHandleNV, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetAccelerationStructureHandleNV.html template - VULKAN_HPP_NODISCARD std::vector getHandle( size_t dataSize ) const; + VULKAN_HPP_NODISCARD typename ResultValueType>::type getHandle( size_t dataSize ) const; // wrapper function for command vkGetAccelerationStructureHandleNV, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetAccelerationStructureHandleNV.html template - VULKAN_HPP_NODISCARD DataType getHandle() const; + VULKAN_HPP_NODISCARD typename ResultValueType::type getHandle() const; private: VULKAN_HPP_NAMESPACE::Device m_device = {}; @@ -5845,7 +5879,7 @@ namespace VULKAN_HPP_NAMESPACE static VULKAN_HPP_CONST_OR_CONSTEXPR DebugReportObjectTypeEXT debugReportObjectType = DebugReportObjectTypeEXT::eBuffer; public: -# if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) +# if !defined( VULKAN_HPP_NO_EXCEPTIONS ) Buffer( Device const & device, BufferCreateInfo const & createInfo, Optional allocator = nullptr ) { *this = device.createBuffer( createInfo, allocator ); @@ -5947,7 +5981,7 @@ namespace VULKAN_HPP_NAMESPACE //=== VK_VERSION_1_0 === // wrapper function for command vkBindBufferMemory, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkBindBufferMemory.html - void bindMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory, DeviceSize memoryOffset ) const; + typename ResultValueType::type bindMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory, DeviceSize memoryOffset ) const; // wrapper function for command vkGetBufferMemoryRequirements, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetBufferMemoryRequirements.html @@ -5978,7 +6012,7 @@ namespace VULKAN_HPP_NAMESPACE static VULKAN_HPP_CONST_OR_CONSTEXPR DebugReportObjectTypeEXT debugReportObjectType = DebugReportObjectTypeEXT::eBufferCollectionFUCHSIA; public: -# if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) +# if !defined( VULKAN_HPP_NO_EXCEPTIONS ) BufferCollectionFUCHSIA( Device const & device, BufferCollectionCreateInfoFUCHSIA const & createInfo, Optional allocator = nullptr ) @@ -6087,15 +6121,15 @@ namespace VULKAN_HPP_NAMESPACE // wrapper function for command vkSetBufferCollectionImageConstraintsFUCHSIA, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkSetBufferCollectionImageConstraintsFUCHSIA.html - void setImageConstraints( const ImageConstraintsInfoFUCHSIA & imageConstraintsInfo ) const; + typename ResultValueType::type setImageConstraints( const ImageConstraintsInfoFUCHSIA & imageConstraintsInfo ) const; // wrapper function for command vkSetBufferCollectionBufferConstraintsFUCHSIA, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkSetBufferCollectionBufferConstraintsFUCHSIA.html - void setBufferConstraints( const BufferConstraintsInfoFUCHSIA & bufferConstraintsInfo ) const; + typename ResultValueType::type setBufferConstraints( const BufferConstraintsInfoFUCHSIA & bufferConstraintsInfo ) const; // wrapper function for command vkGetBufferCollectionPropertiesFUCHSIA, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetBufferCollectionPropertiesFUCHSIA.html - VULKAN_HPP_NODISCARD BufferCollectionPropertiesFUCHSIA getProperties() const; + VULKAN_HPP_NODISCARD typename ResultValueType::type getProperties() const; private: VULKAN_HPP_NAMESPACE::Device m_device = {}; @@ -6123,7 +6157,7 @@ namespace VULKAN_HPP_NAMESPACE static VULKAN_HPP_CONST_OR_CONSTEXPR DebugReportObjectTypeEXT debugReportObjectType = DebugReportObjectTypeEXT::eBufferView; public: -# if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) +# if !defined( VULKAN_HPP_NO_EXCEPTIONS ) BufferView( Device const & device, BufferViewCreateInfo const & createInfo, Optional allocator = nullptr ) { *this = device.createBufferView( createInfo, allocator ); @@ -6249,7 +6283,7 @@ namespace VULKAN_HPP_NAMESPACE static VULKAN_HPP_CONST_OR_CONSTEXPR DebugReportObjectTypeEXT debugReportObjectType = DebugReportObjectTypeEXT::eCommandPool; public: -# if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) +# if !defined( VULKAN_HPP_NO_EXCEPTIONS ) CommandPool( Device const & device, CommandPoolCreateInfo const & createInfo, Optional allocator = nullptr ) { *this = device.createCommandPool( createInfo, allocator ); @@ -6354,7 +6388,7 @@ namespace VULKAN_HPP_NAMESPACE //=== VK_VERSION_1_0 === // wrapper function for command vkResetCommandPool, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkResetCommandPool.html - void reset( CommandPoolResetFlags flags VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT ) const; + typename ResultValueType::type reset( CommandPoolResetFlags flags VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT ) const; //=== VK_VERSION_1_1 === @@ -6485,13 +6519,13 @@ namespace VULKAN_HPP_NAMESPACE //=== VK_VERSION_1_0 === // wrapper function for command vkBeginCommandBuffer, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkBeginCommandBuffer.html - void begin( const CommandBufferBeginInfo & beginInfo ) const; + typename ResultValueType::type begin( const CommandBufferBeginInfo & beginInfo ) const; // wrapper function for command vkEndCommandBuffer, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkEndCommandBuffer.html - void end() const; + typename ResultValueType::type end() const; // wrapper function for command vkResetCommandBuffer, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkResetCommandBuffer.html - void reset( CommandBufferResetFlags flags VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT ) const; + typename ResultValueType::type reset( CommandBufferResetFlags flags VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT ) const; // wrapper function for command vkCmdBindPipeline, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdBindPipeline.html void bindPipeline( PipelineBindPoint pipelineBindPoint, VULKAN_HPP_NAMESPACE::Pipeline pipeline ) const VULKAN_HPP_NOEXCEPT; @@ -7238,15 +7272,15 @@ namespace VULKAN_HPP_NAMESPACE // wrapper function for command vkCmdSetPerformanceMarkerINTEL, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetPerformanceMarkerINTEL.html - void setPerformanceMarkerINTEL( const PerformanceMarkerInfoINTEL & markerInfo ) const; + typename ResultValueType::type setPerformanceMarkerINTEL( const PerformanceMarkerInfoINTEL & markerInfo ) const; // wrapper function for command vkCmdSetPerformanceStreamMarkerINTEL, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetPerformanceStreamMarkerINTEL.html - void setPerformanceStreamMarkerINTEL( const PerformanceStreamMarkerInfoINTEL & markerInfo ) const; + typename ResultValueType::type setPerformanceStreamMarkerINTEL( const PerformanceStreamMarkerInfoINTEL & markerInfo ) const; // wrapper function for command vkCmdSetPerformanceOverrideINTEL, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetPerformanceOverrideINTEL.html - void setPerformanceOverrideINTEL( const PerformanceOverrideInfoINTEL & overrideInfo ) const; + typename ResultValueType::type setPerformanceOverrideINTEL( const PerformanceOverrideInfoINTEL & overrideInfo ) const; //=== VK_KHR_fragment_shading_rate === @@ -7810,7 +7844,7 @@ namespace VULKAN_HPP_NAMESPACE class CommandBuffers : public std::vector { public: -# if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) +# if !defined( VULKAN_HPP_NO_EXCEPTIONS ) CommandBuffers( Device const & device, CommandBufferAllocateInfo const & allocateInfo ) { *this = device.allocateCommandBuffers( allocateInfo ); @@ -7843,7 +7877,7 @@ namespace VULKAN_HPP_NAMESPACE static VULKAN_HPP_CONST_OR_CONSTEXPR DebugReportObjectTypeEXT debugReportObjectType = DebugReportObjectTypeEXT::eCuFunctionNVX; public: -# if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) +# if !defined( VULKAN_HPP_NO_EXCEPTIONS ) CuFunctionNVX( Device const & device, CuFunctionCreateInfoNVX const & createInfo, Optional allocator = nullptr ) { *this = device.createCuFunctionNVX( createInfo, allocator ); @@ -7970,7 +8004,7 @@ namespace VULKAN_HPP_NAMESPACE static VULKAN_HPP_CONST_OR_CONSTEXPR DebugReportObjectTypeEXT debugReportObjectType = DebugReportObjectTypeEXT::eCuModuleNVX; public: -# if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) +# if !defined( VULKAN_HPP_NO_EXCEPTIONS ) CuModuleNVX( Device const & device, CuModuleCreateInfoNVX const & createInfo, Optional allocator = nullptr ) { *this = device.createCuModuleNVX( createInfo, allocator ); @@ -8097,7 +8131,7 @@ namespace VULKAN_HPP_NAMESPACE static VULKAN_HPP_CONST_OR_CONSTEXPR DebugReportObjectTypeEXT debugReportObjectType = DebugReportObjectTypeEXT::eCudaFunctionNV; public: -# if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) +# if !defined( VULKAN_HPP_NO_EXCEPTIONS ) CudaFunctionNV( Device const & device, CudaFunctionCreateInfoNV const & createInfo, Optional allocator = nullptr ) { *this = device.createCudaFunctionNV( createInfo, allocator ); @@ -8227,7 +8261,7 @@ namespace VULKAN_HPP_NAMESPACE static VULKAN_HPP_CONST_OR_CONSTEXPR DebugReportObjectTypeEXT debugReportObjectType = DebugReportObjectTypeEXT::eCudaModuleNV; public: -# if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) +# if !defined( VULKAN_HPP_NO_EXCEPTIONS ) CudaModuleNV( Device const & device, CudaModuleCreateInfoNV const & createInfo, Optional allocator = nullptr ) { *this = device.createCudaModuleNV( createInfo, allocator ); @@ -8332,7 +8366,7 @@ namespace VULKAN_HPP_NAMESPACE //=== VK_NV_cuda_kernel_launch === // wrapper function for command vkGetCudaModuleCacheNV, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetCudaModuleCacheNV.html - VULKAN_HPP_NODISCARD std::vector getCache() const; + VULKAN_HPP_NODISCARD typename ResultValueType>::type getCache() const; private: VULKAN_HPP_NAMESPACE::Device m_device = {}; @@ -8360,7 +8394,7 @@ namespace VULKAN_HPP_NAMESPACE static VULKAN_HPP_CONST_OR_CONSTEXPR DebugReportObjectTypeEXT debugReportObjectType = DebugReportObjectTypeEXT::eUnknown; public: -# if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) +# if !defined( VULKAN_HPP_NO_EXCEPTIONS ) DataGraphPipelineSessionARM( Device const & device, DataGraphPipelineSessionCreateInfoARM const & createInfo, Optional allocator = nullptr ) @@ -8489,7 +8523,7 @@ namespace VULKAN_HPP_NAMESPACE static VULKAN_HPP_CONST_OR_CONSTEXPR DebugReportObjectTypeEXT debugReportObjectType = DebugReportObjectTypeEXT::eDebugReportCallbackEXT; public: -# if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) +# if !defined( VULKAN_HPP_NO_EXCEPTIONS ) DebugReportCallbackEXT( Instance const & instance, DebugReportCallbackCreateInfoEXT const & createInfo, Optional allocator = nullptr ) @@ -8618,7 +8652,7 @@ namespace VULKAN_HPP_NAMESPACE static VULKAN_HPP_CONST_OR_CONSTEXPR DebugReportObjectTypeEXT debugReportObjectType = DebugReportObjectTypeEXT::eUnknown; public: -# if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) +# if !defined( VULKAN_HPP_NO_EXCEPTIONS ) DebugUtilsMessengerEXT( Instance const & instance, DebugUtilsMessengerCreateInfoEXT const & createInfo, Optional allocator = nullptr ) @@ -8747,7 +8781,7 @@ namespace VULKAN_HPP_NAMESPACE static VULKAN_HPP_CONST_OR_CONSTEXPR DebugReportObjectTypeEXT debugReportObjectType = DebugReportObjectTypeEXT::eUnknown; public: -# if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) +# if !defined( VULKAN_HPP_NO_EXCEPTIONS ) DeferredOperationKHR( Device const & device, Optional allocator = nullptr ) { *this = device.createDeferredOperationKHR( allocator ); @@ -8887,7 +8921,7 @@ namespace VULKAN_HPP_NAMESPACE static VULKAN_HPP_CONST_OR_CONSTEXPR DebugReportObjectTypeEXT debugReportObjectType = DebugReportObjectTypeEXT::eDescriptorPool; public: -# if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) +# if !defined( VULKAN_HPP_NO_EXCEPTIONS ) DescriptorPool( Device const & device, DescriptorPoolCreateInfo const & createInfo, Optional allocator = nullptr ) { *this = device.createDescriptorPool( createInfo, allocator ); @@ -8993,7 +9027,7 @@ namespace VULKAN_HPP_NAMESPACE //=== VK_VERSION_1_0 === // wrapper function for command vkResetDescriptorPool, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkResetDescriptorPool.html - void reset( DescriptorPoolResetFlags flags VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT ) const; + typename ResultValueType::type reset( DescriptorPoolResetFlags flags VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT ) const; private: VULKAN_HPP_NAMESPACE::Device m_device = {}; @@ -9149,7 +9183,7 @@ namespace VULKAN_HPP_NAMESPACE class DescriptorSets : public std::vector { public: -# if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) +# if !defined( VULKAN_HPP_NO_EXCEPTIONS ) DescriptorSets( Device const & device, DescriptorSetAllocateInfo const & allocateInfo ) { *this = device.allocateDescriptorSets( allocateInfo ); @@ -9182,7 +9216,7 @@ namespace VULKAN_HPP_NAMESPACE static VULKAN_HPP_CONST_OR_CONSTEXPR DebugReportObjectTypeEXT debugReportObjectType = DebugReportObjectTypeEXT::eDescriptorSetLayout; public: -# if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) +# if !defined( VULKAN_HPP_NO_EXCEPTIONS ) DescriptorSetLayout( Device const & device, DescriptorSetLayoutCreateInfo const & createInfo, Optional allocator = nullptr ) { *this = device.createDescriptorSetLayout( createInfo, allocator ); @@ -9319,7 +9353,7 @@ namespace VULKAN_HPP_NAMESPACE static VULKAN_HPP_CONST_OR_CONSTEXPR DebugReportObjectTypeEXT debugReportObjectType = DebugReportObjectTypeEXT::eDescriptorUpdateTemplate; public: -# if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) +# if !defined( VULKAN_HPP_NO_EXCEPTIONS ) DescriptorUpdateTemplate( Device const & device, DescriptorUpdateTemplateCreateInfo const & createInfo, Optional allocator = nullptr ) @@ -9450,7 +9484,7 @@ namespace VULKAN_HPP_NAMESPACE static VULKAN_HPP_CONST_OR_CONSTEXPR DebugReportObjectTypeEXT debugReportObjectType = DebugReportObjectTypeEXT::eDeviceMemory; public: -# if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) +# if !defined( VULKAN_HPP_NO_EXCEPTIONS ) DeviceMemory( Device const & device, MemoryAllocateInfo const & allocateInfo, Optional allocator = nullptr ) { *this = device.allocateMemory( allocateInfo, allocator ); @@ -9555,7 +9589,8 @@ namespace VULKAN_HPP_NAMESPACE //=== VK_VERSION_1_0 === // wrapper function for command vkMapMemory, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkMapMemory.html - VULKAN_HPP_NODISCARD void * mapMemory( DeviceSize offset, DeviceSize size, MemoryMapFlags flags VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT ) const; + VULKAN_HPP_NODISCARD typename ResultValueType::type + mapMemory( DeviceSize offset, DeviceSize size, MemoryMapFlags flags VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT ) const; // wrapper function for command vkUnmapMemory, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkUnmapMemory.html void unmapMemory() const VULKAN_HPP_NOEXCEPT; @@ -9568,7 +9603,7 @@ namespace VULKAN_HPP_NAMESPACE //=== VK_NV_external_memory_win32 === // wrapper function for command vkGetMemoryWin32HandleNV, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetMemoryWin32HandleNV.html - VULKAN_HPP_NODISCARD HANDLE getMemoryWin32HandleNV( ExternalMemoryHandleTypeFlagsNV handleType ) const; + VULKAN_HPP_NODISCARD typename ResultValueType::type getMemoryWin32HandleNV( ExternalMemoryHandleTypeFlagsNV handleType ) const; # endif /*VK_USE_PLATFORM_WIN32_KHR*/ //=== VK_EXT_pageable_device_local_memory === @@ -9601,14 +9636,14 @@ namespace VULKAN_HPP_NAMESPACE static VULKAN_HPP_CONST_OR_CONSTEXPR DebugReportObjectTypeEXT debugReportObjectType = DebugReportObjectTypeEXT::eDisplayKHR; public: -# if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) +# if !defined( VULKAN_HPP_NO_EXCEPTIONS ) DisplayKHR( PhysicalDevice const & physicalDevice, int32_t drmFd, uint32_t connectorId ) { *this = physicalDevice.getDrmDisplayEXT( drmFd, connectorId ); } # endif -# if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) +# if !defined( VULKAN_HPP_NO_EXCEPTIONS ) # if defined( VK_USE_PLATFORM_XLIB_XRANDR_EXT ) DisplayKHR( PhysicalDevice const & physicalDevice, Display & dpy, RROutput rrOutput ) { @@ -9617,7 +9652,7 @@ namespace VULKAN_HPP_NAMESPACE # endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/ # endif -# if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) +# if !defined( VULKAN_HPP_NO_EXCEPTIONS ) # if defined( VK_USE_PLATFORM_WIN32_KHR ) DisplayKHR( PhysicalDevice const & physicalDevice, uint32_t deviceRelativeId ) { @@ -9716,29 +9751,29 @@ namespace VULKAN_HPP_NAMESPACE // wrapper function for command vkGetDisplayModePropertiesKHR, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDisplayModePropertiesKHR.html - VULKAN_HPP_NODISCARD std::vector getModeProperties() const; + VULKAN_HPP_NODISCARD typename ResultValueType>::type getModeProperties() const; // wrapper function for command vkCreateDisplayModeKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateDisplayModeKHR.html - VULKAN_HPP_NODISCARD detail::CreateReturnType::Type - createMode( DisplayModeCreateInfoKHR const & createInfo, - Optional allocator = nullptr ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT; + VULKAN_HPP_NODISCARD typename ResultValueType::type + createMode( DisplayModeCreateInfoKHR const & createInfo, + Optional allocator = nullptr ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS; //=== VK_KHR_get_display_properties2 === // wrapper function for command vkGetDisplayModeProperties2KHR, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDisplayModeProperties2KHR.html - VULKAN_HPP_NODISCARD std::vector getModeProperties2() const; + VULKAN_HPP_NODISCARD typename ResultValueType>::type getModeProperties2() const; // wrapper function for command vkGetDisplayModeProperties2KHR, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDisplayModeProperties2KHR.html template - VULKAN_HPP_NODISCARD std::vector getModeProperties2() const; + VULKAN_HPP_NODISCARD typename ResultValueType>::type getModeProperties2() const; # if defined( VK_USE_PLATFORM_WIN32_KHR ) //=== VK_NV_acquire_winrt_display === // wrapper function for command vkAcquireWinrtDisplayNV, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkAcquireWinrtDisplayNV.html - void acquireWinrtNV() const; + typename ResultValueType::type acquireWinrtNV() const; # endif /*VK_USE_PLATFORM_WIN32_KHR*/ private: @@ -9756,7 +9791,7 @@ namespace VULKAN_HPP_NAMESPACE class DisplayKHRs : public std::vector { public: -# if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) +# if !defined( VULKAN_HPP_NO_EXCEPTIONS ) DisplayKHRs( PhysicalDevice const & physicalDevice, uint32_t planeIndex ) { *this = physicalDevice.getDisplayPlaneSupportedDisplaysKHR( planeIndex ); @@ -9789,7 +9824,7 @@ namespace VULKAN_HPP_NAMESPACE static VULKAN_HPP_CONST_OR_CONSTEXPR DebugReportObjectTypeEXT debugReportObjectType = DebugReportObjectTypeEXT::eDisplayModeKHR; public: -# if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) +# if !defined( VULKAN_HPP_NO_EXCEPTIONS ) DisplayModeKHR( DisplayKHR const & display, DisplayModeCreateInfoKHR const & createInfo, Optional allocator = nullptr ) { *this = display.createMode( createInfo, allocator ); @@ -9883,7 +9918,7 @@ namespace VULKAN_HPP_NAMESPACE // wrapper function for command vkGetDisplayPlaneCapabilitiesKHR, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDisplayPlaneCapabilitiesKHR.html - VULKAN_HPP_NODISCARD DisplayPlaneCapabilitiesKHR getDisplayPlaneCapabilities( uint32_t planeIndex ) const; + VULKAN_HPP_NODISCARD typename ResultValueType::type getDisplayPlaneCapabilities( uint32_t planeIndex ) const; private: VULKAN_HPP_NAMESPACE::PhysicalDevice m_physicalDevice = {}; @@ -9908,7 +9943,7 @@ namespace VULKAN_HPP_NAMESPACE static VULKAN_HPP_CONST_OR_CONSTEXPR DebugReportObjectTypeEXT debugReportObjectType = DebugReportObjectTypeEXT::eEvent; public: -# if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) +# if !defined( VULKAN_HPP_NO_EXCEPTIONS ) Event( Device const & device, EventCreateInfo const & createInfo, Optional allocator = nullptr ) { *this = device.createEvent( createInfo, allocator ); @@ -10013,10 +10048,10 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_NODISCARD Result getStatus() const; // wrapper function for command vkSetEvent, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkSetEvent.html - void set() const; + typename ResultValueType::type set() const; // wrapper function for command vkResetEvent, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkResetEvent.html - void reset() const; + typename ResultValueType::type reset() const; private: VULKAN_HPP_NAMESPACE::Device m_device = {}; @@ -10042,7 +10077,7 @@ namespace VULKAN_HPP_NAMESPACE static VULKAN_HPP_CONST_OR_CONSTEXPR DebugReportObjectTypeEXT debugReportObjectType = DebugReportObjectTypeEXT::eUnknown; public: -# if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) +# if !defined( VULKAN_HPP_NO_EXCEPTIONS ) ExternalComputeQueueNV( Device const & device, ExternalComputeQueueCreateInfoNV const & createInfo, Optional allocator = nullptr ) @@ -10178,21 +10213,21 @@ namespace VULKAN_HPP_NAMESPACE static VULKAN_HPP_CONST_OR_CONSTEXPR DebugReportObjectTypeEXT debugReportObjectType = DebugReportObjectTypeEXT::eFence; public: -# if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) +# if !defined( VULKAN_HPP_NO_EXCEPTIONS ) Fence( Device const & device, FenceCreateInfo const & createInfo, Optional allocator = nullptr ) { *this = device.createFence( createInfo, allocator ); } # endif -# if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) +# if !defined( VULKAN_HPP_NO_EXCEPTIONS ) Fence( Device const & device, DeviceEventInfoEXT const & deviceEventInfo, Optional allocator = nullptr ) { *this = device.registerEventEXT( deviceEventInfo, allocator ); } # endif -# if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) +# if !defined( VULKAN_HPP_NO_EXCEPTIONS ) Fence( Device const & device, DisplayKHR const & display, DisplayEventInfoEXT const & displayEventInfo, @@ -10323,7 +10358,7 @@ namespace VULKAN_HPP_NAMESPACE static VULKAN_HPP_CONST_OR_CONSTEXPR DebugReportObjectTypeEXT debugReportObjectType = DebugReportObjectTypeEXT::eFramebuffer; public: -# if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) +# if !defined( VULKAN_HPP_NO_EXCEPTIONS ) Framebuffer( Device const & device, FramebufferCreateInfo const & createInfo, Optional allocator = nullptr ) { *this = device.createFramebuffer( createInfo, allocator ); @@ -10429,7 +10464,7 @@ namespace VULKAN_HPP_NAMESPACE // wrapper function for command vkGetFramebufferTilePropertiesQCOM, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetFramebufferTilePropertiesQCOM.html - VULKAN_HPP_NODISCARD std::vector getTilePropertiesQCOM() const; + VULKAN_HPP_NODISCARD typename ResultValueType>::type getTilePropertiesQCOM() const; private: VULKAN_HPP_NAMESPACE::Device m_device = {}; @@ -10455,7 +10490,7 @@ namespace VULKAN_HPP_NAMESPACE static VULKAN_HPP_CONST_OR_CONSTEXPR DebugReportObjectTypeEXT debugReportObjectType = DebugReportObjectTypeEXT::eImage; public: -# if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) +# if !defined( VULKAN_HPP_NO_EXCEPTIONS ) Image( Device const & device, ImageCreateInfo const & createInfo, Optional allocator = nullptr ) { *this = device.createImage( createInfo, allocator ); @@ -10557,7 +10592,7 @@ namespace VULKAN_HPP_NAMESPACE //=== VK_VERSION_1_0 === // wrapper function for command vkBindImageMemory, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkBindImageMemory.html - void bindMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory, DeviceSize memoryOffset ) const; + typename ResultValueType::type bindMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory, DeviceSize memoryOffset ) const; // wrapper function for command vkGetImageMemoryRequirements, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetImageMemoryRequirements.html @@ -10586,7 +10621,7 @@ namespace VULKAN_HPP_NAMESPACE // wrapper function for command vkGetImageDrmFormatModifierPropertiesEXT, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetImageDrmFormatModifierPropertiesEXT.html - VULKAN_HPP_NODISCARD ImageDrmFormatModifierPropertiesEXT getDrmFormatModifierPropertiesEXT() const; + VULKAN_HPP_NODISCARD typename ResultValueType::type getDrmFormatModifierPropertiesEXT() const; //=== VK_EXT_host_image_copy === @@ -10634,7 +10669,7 @@ namespace VULKAN_HPP_NAMESPACE static VULKAN_HPP_CONST_OR_CONSTEXPR DebugReportObjectTypeEXT debugReportObjectType = DebugReportObjectTypeEXT::eImageView; public: -# if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) +# if !defined( VULKAN_HPP_NO_EXCEPTIONS ) ImageView( Device const & device, ImageViewCreateInfo const & createInfo, Optional allocator = nullptr ) { *this = device.createImageView( createInfo, allocator ); @@ -10739,7 +10774,7 @@ namespace VULKAN_HPP_NAMESPACE //=== VK_NVX_image_view_handle === // wrapper function for command vkGetImageViewAddressNVX, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetImageViewAddressNVX.html - VULKAN_HPP_NODISCARD ImageViewAddressPropertiesNVX getAddressNVX() const; + VULKAN_HPP_NODISCARD typename ResultValueType::type getAddressNVX() const; private: VULKAN_HPP_NAMESPACE::Device m_device = {}; @@ -10765,7 +10800,7 @@ namespace VULKAN_HPP_NAMESPACE static VULKAN_HPP_CONST_OR_CONSTEXPR DebugReportObjectTypeEXT debugReportObjectType = DebugReportObjectTypeEXT::eUnknown; public: -# if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) +# if !defined( VULKAN_HPP_NO_EXCEPTIONS ) IndirectCommandsLayoutEXT( Device const & device, IndirectCommandsLayoutCreateInfoEXT const & createInfo, Optional allocator = nullptr ) @@ -10896,7 +10931,7 @@ namespace VULKAN_HPP_NAMESPACE static VULKAN_HPP_CONST_OR_CONSTEXPR DebugReportObjectTypeEXT debugReportObjectType = DebugReportObjectTypeEXT::eUnknown; public: -# if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) +# if !defined( VULKAN_HPP_NO_EXCEPTIONS ) IndirectCommandsLayoutNV( Device const & device, IndirectCommandsLayoutCreateInfoNV const & createInfo, Optional allocator = nullptr ) @@ -11027,7 +11062,7 @@ namespace VULKAN_HPP_NAMESPACE static VULKAN_HPP_CONST_OR_CONSTEXPR DebugReportObjectTypeEXT debugReportObjectType = DebugReportObjectTypeEXT::eUnknown; public: -# if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) +# if !defined( VULKAN_HPP_NO_EXCEPTIONS ) IndirectExecutionSetEXT( Device const & device, IndirectExecutionSetCreateInfoEXT const & createInfo, Optional allocator = nullptr ) @@ -11166,7 +11201,7 @@ namespace VULKAN_HPP_NAMESPACE static VULKAN_HPP_CONST_OR_CONSTEXPR DebugReportObjectTypeEXT debugReportObjectType = DebugReportObjectTypeEXT::eUnknown; public: -# if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) +# if !defined( VULKAN_HPP_NO_EXCEPTIONS ) MicromapEXT( Device const & device, MicromapCreateInfoEXT const & createInfo, Optional allocator = nullptr ) { *this = device.createMicromapEXT( createInfo, allocator ); @@ -11292,7 +11327,7 @@ namespace VULKAN_HPP_NAMESPACE static VULKAN_HPP_CONST_OR_CONSTEXPR DebugReportObjectTypeEXT debugReportObjectType = DebugReportObjectTypeEXT::eUnknown; public: -# if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) +# if !defined( VULKAN_HPP_NO_EXCEPTIONS ) OpticalFlowSessionNV( Device const & device, OpticalFlowSessionCreateInfoNV const & createInfo, Optional allocator = nullptr ) { *this = device.createOpticalFlowSessionNV( createInfo, allocator ); @@ -11399,7 +11434,8 @@ namespace VULKAN_HPP_NAMESPACE // wrapper function for command vkBindOpticalFlowSessionImageNV, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkBindOpticalFlowSessionImageNV.html - void bindImage( OpticalFlowSessionBindingPointNV bindingPoint, VULKAN_HPP_NAMESPACE::ImageView view, ImageLayout layout ) const; + typename ResultValueType::type + bindImage( OpticalFlowSessionBindingPointNV bindingPoint, VULKAN_HPP_NAMESPACE::ImageView view, ImageLayout layout ) const; private: VULKAN_HPP_NAMESPACE::Device m_device = {}; @@ -11426,7 +11462,7 @@ namespace VULKAN_HPP_NAMESPACE static VULKAN_HPP_CONST_OR_CONSTEXPR DebugReportObjectTypeEXT debugReportObjectType = DebugReportObjectTypeEXT::eUnknown; public: -# if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) +# if !defined( VULKAN_HPP_NO_EXCEPTIONS ) PerformanceConfigurationINTEL( Device const & device, PerformanceConfigurationAcquireInfoINTEL const & acquireInfo ) { *this = device.acquirePerformanceConfigurationINTEL( acquireInfo ); @@ -11543,7 +11579,7 @@ namespace VULKAN_HPP_NAMESPACE static VULKAN_HPP_CONST_OR_CONSTEXPR DebugReportObjectTypeEXT debugReportObjectType = DebugReportObjectTypeEXT::ePipelineCache; public: -# if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) +# if !defined( VULKAN_HPP_NO_EXCEPTIONS ) PipelineCache( Device const & device, PipelineCacheCreateInfo const & createInfo, Optional allocator = nullptr ) { *this = device.createPipelineCache( createInfo, allocator ); @@ -11649,10 +11685,10 @@ namespace VULKAN_HPP_NAMESPACE //=== VK_VERSION_1_0 === // wrapper function for command vkGetPipelineCacheData, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPipelineCacheData.html - VULKAN_HPP_NODISCARD std::vector getData() const; + VULKAN_HPP_NODISCARD typename ResultValueType>::type getData() const; // wrapper function for command vkMergePipelineCaches, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkMergePipelineCaches.html - void merge( ArrayProxy const & srcCaches ) const; + typename ResultValueType::type merge( ArrayProxy const & srcCaches ) const; private: VULKAN_HPP_NAMESPACE::Device m_device = {}; @@ -11678,7 +11714,7 @@ namespace VULKAN_HPP_NAMESPACE static VULKAN_HPP_CONST_OR_CONSTEXPR DebugReportObjectTypeEXT debugReportObjectType = DebugReportObjectTypeEXT::ePipeline; public: -# if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) +# if !defined( VULKAN_HPP_NO_EXCEPTIONS ) Pipeline( Device const & device, Optional const & pipelineCache, ComputePipelineCreateInfo const & createInfo, @@ -11688,7 +11724,7 @@ namespace VULKAN_HPP_NAMESPACE } # endif -# if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) +# if !defined( VULKAN_HPP_NO_EXCEPTIONS ) Pipeline( Device const & device, Optional const & deferredOperation, Optional const & pipelineCache, @@ -11699,7 +11735,7 @@ namespace VULKAN_HPP_NAMESPACE } # endif -# if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) +# if !defined( VULKAN_HPP_NO_EXCEPTIONS ) # if defined( VK_ENABLE_BETA_EXTENSIONS ) Pipeline( Device const & device, Optional const & pipelineCache, @@ -11711,7 +11747,7 @@ namespace VULKAN_HPP_NAMESPACE # endif /*VK_ENABLE_BETA_EXTENSIONS*/ # endif -# if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) +# if !defined( VULKAN_HPP_NO_EXCEPTIONS ) Pipeline( Device const & device, Optional const & pipelineCache, GraphicsPipelineCreateInfo const & createInfo, @@ -11721,7 +11757,7 @@ namespace VULKAN_HPP_NAMESPACE } # endif -# if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) +# if !defined( VULKAN_HPP_NO_EXCEPTIONS ) Pipeline( Device const & device, Optional const & deferredOperation, Optional const & pipelineCache, @@ -11732,7 +11768,7 @@ namespace VULKAN_HPP_NAMESPACE } # endif -# if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) +# if !defined( VULKAN_HPP_NO_EXCEPTIONS ) Pipeline( Device const & device, Optional const & pipelineCache, RayTracingPipelineCreateInfoNV const & createInfo, @@ -11851,18 +11887,20 @@ namespace VULKAN_HPP_NAMESPACE //=== VK_AMD_shader_info === // wrapper function for command vkGetShaderInfoAMD, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetShaderInfoAMD.html - VULKAN_HPP_NODISCARD std::vector getShaderInfoAMD( ShaderStageFlagBits shaderStage, ShaderInfoTypeAMD infoType ) const; + VULKAN_HPP_NODISCARD typename ResultValueType>::type getShaderInfoAMD( ShaderStageFlagBits shaderStage, + ShaderInfoTypeAMD infoType ) const; # if defined( VK_ENABLE_BETA_EXTENSIONS ) //=== VK_AMDX_shader_enqueue === // wrapper function for command vkGetExecutionGraphPipelineScratchSizeAMDX, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetExecutionGraphPipelineScratchSizeAMDX.html - VULKAN_HPP_NODISCARD ExecutionGraphPipelineScratchSizeAMDX getExecutionGraphScratchSizeAMDX() const; + VULKAN_HPP_NODISCARD typename ResultValueType::type getExecutionGraphScratchSizeAMDX() const; // wrapper function for command vkGetExecutionGraphPipelineNodeIndexAMDX, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetExecutionGraphPipelineNodeIndexAMDX.html - VULKAN_HPP_NODISCARD uint32_t getExecutionGraphNodeIndexAMDX( const PipelineShaderStageNodeCreateInfoAMDX & nodeInfo ) const; + VULKAN_HPP_NODISCARD typename ResultValueType::type + getExecutionGraphNodeIndexAMDX( const PipelineShaderStageNodeCreateInfoAMDX & nodeInfo ) const; # endif /*VK_ENABLE_BETA_EXTENSIONS*/ //=== VK_KHR_ray_tracing_pipeline === @@ -11870,23 +11908,25 @@ namespace VULKAN_HPP_NAMESPACE // wrapper function for command vkGetRayTracingShaderGroupHandlesKHR, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetRayTracingShaderGroupHandlesKHR.html template - VULKAN_HPP_NODISCARD std::vector getRayTracingShaderGroupHandlesKHR( uint32_t firstGroup, uint32_t groupCount, size_t dataSize ) const; + VULKAN_HPP_NODISCARD typename ResultValueType>::type + getRayTracingShaderGroupHandlesKHR( uint32_t firstGroup, uint32_t groupCount, size_t dataSize ) const; // wrapper function for command vkGetRayTracingShaderGroupHandlesKHR, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetRayTracingShaderGroupHandlesKHR.html template - VULKAN_HPP_NODISCARD DataType getRayTracingShaderGroupHandleKHR( uint32_t firstGroup, uint32_t groupCount ) const; + VULKAN_HPP_NODISCARD typename ResultValueType::type getRayTracingShaderGroupHandleKHR( uint32_t firstGroup, uint32_t groupCount ) const; // wrapper function for command vkGetRayTracingCaptureReplayShaderGroupHandlesKHR, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetRayTracingCaptureReplayShaderGroupHandlesKHR.html template - VULKAN_HPP_NODISCARD std::vector - getRayTracingCaptureReplayShaderGroupHandlesKHR( uint32_t firstGroup, uint32_t groupCount, size_t dataSize ) const; + VULKAN_HPP_NODISCARD typename ResultValueType>::type + getRayTracingCaptureReplayShaderGroupHandlesKHR( uint32_t firstGroup, uint32_t groupCount, size_t dataSize ) const; // wrapper function for command vkGetRayTracingCaptureReplayShaderGroupHandlesKHR, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetRayTracingCaptureReplayShaderGroupHandlesKHR.html template - VULKAN_HPP_NODISCARD DataType getRayTracingCaptureReplayShaderGroupHandleKHR( uint32_t firstGroup, uint32_t groupCount ) const; + VULKAN_HPP_NODISCARD typename ResultValueType::type getRayTracingCaptureReplayShaderGroupHandleKHR( uint32_t firstGroup, + uint32_t groupCount ) const; // wrapper function for command vkGetRayTracingShaderGroupStackSizeKHR, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetRayTracingShaderGroupStackSizeKHR.html @@ -11897,15 +11937,16 @@ namespace VULKAN_HPP_NAMESPACE // wrapper function for command vkGetRayTracingShaderGroupHandlesNV, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetRayTracingShaderGroupHandlesNV.html template - VULKAN_HPP_NODISCARD std::vector getRayTracingShaderGroupHandlesNV( uint32_t firstGroup, uint32_t groupCount, size_t dataSize ) const; + VULKAN_HPP_NODISCARD typename ResultValueType>::type + getRayTracingShaderGroupHandlesNV( uint32_t firstGroup, uint32_t groupCount, size_t dataSize ) const; // wrapper function for command vkGetRayTracingShaderGroupHandlesNV, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetRayTracingShaderGroupHandlesNV.html template - VULKAN_HPP_NODISCARD DataType getRayTracingShaderGroupHandleNV( uint32_t firstGroup, uint32_t groupCount ) const; + VULKAN_HPP_NODISCARD typename ResultValueType::type getRayTracingShaderGroupHandleNV( uint32_t firstGroup, uint32_t groupCount ) const; // wrapper function for command vkCompileDeferredNV, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCompileDeferredNV.html - void compileDeferredNV( uint32_t shader ) const; + typename ResultValueType::type compileDeferredNV( uint32_t shader ) const; private: VULKAN_HPP_NAMESPACE::Device m_device = {}; @@ -11924,7 +11965,7 @@ namespace VULKAN_HPP_NAMESPACE class Pipelines : public std::vector { public: -# if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) +# if !defined( VULKAN_HPP_NO_EXCEPTIONS ) Pipelines( Device const & device, Optional const & pipelineCache, ArrayProxy const & createInfos, @@ -11934,7 +11975,7 @@ namespace VULKAN_HPP_NAMESPACE } # endif -# if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) +# if !defined( VULKAN_HPP_NO_EXCEPTIONS ) Pipelines( Device const & device, Optional const & deferredOperation, Optional const & pipelineCache, @@ -11945,7 +11986,7 @@ namespace VULKAN_HPP_NAMESPACE } # endif -# if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) +# if !defined( VULKAN_HPP_NO_EXCEPTIONS ) # if defined( VK_ENABLE_BETA_EXTENSIONS ) Pipelines( Device const & device, Optional const & pipelineCache, @@ -11957,7 +11998,7 @@ namespace VULKAN_HPP_NAMESPACE # endif /*VK_ENABLE_BETA_EXTENSIONS*/ # endif -# if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) +# if !defined( VULKAN_HPP_NO_EXCEPTIONS ) Pipelines( Device const & device, Optional const & pipelineCache, ArrayProxy const & createInfos, @@ -11967,7 +12008,7 @@ namespace VULKAN_HPP_NAMESPACE } # endif -# if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) +# if !defined( VULKAN_HPP_NO_EXCEPTIONS ) Pipelines( Device const & device, Optional const & deferredOperation, Optional const & pipelineCache, @@ -11978,7 +12019,7 @@ namespace VULKAN_HPP_NAMESPACE } # endif -# if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) +# if !defined( VULKAN_HPP_NO_EXCEPTIONS ) Pipelines( Device const & device, Optional const & pipelineCache, ArrayProxy const & createInfos, @@ -12141,7 +12182,7 @@ namespace VULKAN_HPP_NAMESPACE class PipelineBinaryKHRs : public std::vector { public: -# if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) +# if !defined( VULKAN_HPP_NO_EXCEPTIONS ) PipelineBinaryKHRs( Device const & device, PipelineBinaryCreateInfoKHR const & createInfo, Optional allocator = nullptr ) { *this = device.createPipelineBinariesKHR( createInfo, allocator ); @@ -12174,7 +12215,7 @@ namespace VULKAN_HPP_NAMESPACE static VULKAN_HPP_CONST_OR_CONSTEXPR DebugReportObjectTypeEXT debugReportObjectType = DebugReportObjectTypeEXT::ePipelineLayout; public: -# if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) +# if !defined( VULKAN_HPP_NO_EXCEPTIONS ) PipelineLayout( Device const & device, PipelineLayoutCreateInfo const & createInfo, Optional allocator = nullptr ) { *this = device.createPipelineLayout( createInfo, allocator ); @@ -12301,7 +12342,7 @@ namespace VULKAN_HPP_NAMESPACE static VULKAN_HPP_CONST_OR_CONSTEXPR DebugReportObjectTypeEXT debugReportObjectType = DebugReportObjectTypeEXT::eUnknown; public: -# if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) +# if !defined( VULKAN_HPP_NO_EXCEPTIONS ) PrivateDataSlot( Device const & device, PrivateDataSlotCreateInfo const & createInfo, Optional allocator = nullptr ) { *this = device.createPrivateDataSlot( createInfo, allocator ); @@ -12428,7 +12469,7 @@ namespace VULKAN_HPP_NAMESPACE static VULKAN_HPP_CONST_OR_CONSTEXPR DebugReportObjectTypeEXT debugReportObjectType = DebugReportObjectTypeEXT::eQueryPool; public: -# if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) +# if !defined( VULKAN_HPP_NO_EXCEPTIONS ) QueryPool( Device const & device, QueryPoolCreateInfo const & createInfo, Optional allocator = nullptr ) { *this = device.createQueryPool( createInfo, allocator ); @@ -12534,12 +12575,12 @@ namespace VULKAN_HPP_NAMESPACE // wrapper function for command vkGetQueryPoolResults, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetQueryPoolResults.html template - VULKAN_HPP_NODISCARD std::pair> getResults( + VULKAN_HPP_NODISCARD ResultValue> getResults( uint32_t firstQuery, uint32_t queryCount, size_t dataSize, DeviceSize stride, QueryResultFlags flags VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT ) const; // wrapper function for command vkGetQueryPoolResults, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetQueryPoolResults.html template - VULKAN_HPP_NODISCARD std::pair + VULKAN_HPP_NODISCARD ResultValue getResult( uint32_t firstQuery, uint32_t queryCount, DeviceSize stride, QueryResultFlags flags VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT ) const; //=== VK_VERSION_1_2 === @@ -12576,14 +12617,14 @@ namespace VULKAN_HPP_NAMESPACE static VULKAN_HPP_CONST_OR_CONSTEXPR DebugReportObjectTypeEXT debugReportObjectType = DebugReportObjectTypeEXT::eQueue; public: -# if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) +# if !defined( VULKAN_HPP_NO_EXCEPTIONS ) Queue( Device const & device, uint32_t queueFamilyIndex, uint32_t queueIndex ) { *this = device.getQueue( queueFamilyIndex, queueIndex ); } # endif -# if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) +# if !defined( VULKAN_HPP_NO_EXCEPTIONS ) Queue( Device const & device, DeviceQueueInfo2 const & queueInfo ) { *this = device.getQueue2( queueInfo ); @@ -12668,18 +12709,21 @@ namespace VULKAN_HPP_NAMESPACE //=== VK_VERSION_1_0 === // wrapper function for command vkQueueSubmit, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkQueueSubmit.html - void submit( ArrayProxy const & submits, VULKAN_HPP_NAMESPACE::Fence fence VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT ) const; + typename ResultValueType::type submit( ArrayProxy const & submits, + VULKAN_HPP_NAMESPACE::Fence fence VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT ) const; // wrapper function for command vkQueueWaitIdle, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkQueueWaitIdle.html - void waitIdle() const; + typename ResultValueType::type waitIdle() const; // wrapper function for command vkQueueBindSparse, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkQueueBindSparse.html - void bindSparse( ArrayProxy const & bindInfo, VULKAN_HPP_NAMESPACE::Fence fence VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT ) const; + typename ResultValueType::type bindSparse( ArrayProxy const & bindInfo, + VULKAN_HPP_NAMESPACE::Fence fence VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT ) const; //=== VK_VERSION_1_3 === // wrapper function for command vkQueueSubmit2, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkQueueSubmit2.html - void submit2( ArrayProxy const & submits, VULKAN_HPP_NAMESPACE::Fence fence VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT ) const; + typename ResultValueType::type submit2( ArrayProxy const & submits, + VULKAN_HPP_NAMESPACE::Fence fence VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT ) const; //=== VK_KHR_swapchain === @@ -12713,12 +12757,13 @@ namespace VULKAN_HPP_NAMESPACE // wrapper function for command vkQueueSetPerformanceConfigurationINTEL, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkQueueSetPerformanceConfigurationINTEL.html - void setPerformanceConfigurationINTEL( VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration ) const; + typename ResultValueType::type setPerformanceConfigurationINTEL( VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration ) const; //=== VK_KHR_synchronization2 === // wrapper function for command vkQueueSubmit2KHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkQueueSubmit2KHR.html - void submit2KHR( ArrayProxy const & submits, VULKAN_HPP_NAMESPACE::Fence fence VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT ) const; + typename ResultValueType::type submit2KHR( ArrayProxy const & submits, + VULKAN_HPP_NAMESPACE::Fence fence VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT ) const; //=== VK_NV_low_latency2 === @@ -12747,14 +12792,14 @@ namespace VULKAN_HPP_NAMESPACE static VULKAN_HPP_CONST_OR_CONSTEXPR DebugReportObjectTypeEXT debugReportObjectType = DebugReportObjectTypeEXT::eRenderPass; public: -# if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) +# if !defined( VULKAN_HPP_NO_EXCEPTIONS ) RenderPass( Device const & device, RenderPassCreateInfo const & createInfo, Optional allocator = nullptr ) { *this = device.createRenderPass( createInfo, allocator ); } # endif -# if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) +# if !defined( VULKAN_HPP_NO_EXCEPTIONS ) RenderPass( Device const & device, RenderPassCreateInfo2 const & createInfo, Optional allocator = nullptr ) { *this = device.createRenderPass2( createInfo, allocator ); @@ -12865,7 +12910,7 @@ namespace VULKAN_HPP_NAMESPACE // wrapper function for command vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI.html - VULKAN_HPP_NODISCARD Extent2D getSubpassShadingMaxWorkgroupSizeHUAWEI() const; + VULKAN_HPP_NODISCARD typename ResultValueType::type getSubpassShadingMaxWorkgroupSizeHUAWEI() const; private: VULKAN_HPP_NAMESPACE::Device m_device = {}; @@ -12891,7 +12936,7 @@ namespace VULKAN_HPP_NAMESPACE static VULKAN_HPP_CONST_OR_CONSTEXPR DebugReportObjectTypeEXT debugReportObjectType = DebugReportObjectTypeEXT::eSampler; public: -# if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) +# if !defined( VULKAN_HPP_NO_EXCEPTIONS ) Sampler( Device const & device, SamplerCreateInfo const & createInfo, Optional allocator = nullptr ) { *this = device.createSampler( createInfo, allocator ); @@ -13014,7 +13059,7 @@ namespace VULKAN_HPP_NAMESPACE static VULKAN_HPP_CONST_OR_CONSTEXPR DebugReportObjectTypeEXT debugReportObjectType = DebugReportObjectTypeEXT::eSamplerYcbcrConversion; public: -# if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) +# if !defined( VULKAN_HPP_NO_EXCEPTIONS ) SamplerYcbcrConversion( Device const & device, SamplerYcbcrConversionCreateInfo const & createInfo, Optional allocator = nullptr ) @@ -13143,7 +13188,7 @@ namespace VULKAN_HPP_NAMESPACE static VULKAN_HPP_CONST_OR_CONSTEXPR DebugReportObjectTypeEXT debugReportObjectType = DebugReportObjectTypeEXT::eSemaphore; public: -# if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) +# if !defined( VULKAN_HPP_NO_EXCEPTIONS ) Semaphore( Device const & device, SemaphoreCreateInfo const & createInfo, Optional allocator = nullptr ) { *this = device.createSemaphore( createInfo, allocator ); @@ -13248,13 +13293,13 @@ namespace VULKAN_HPP_NAMESPACE //=== VK_VERSION_1_2 === // wrapper function for command vkGetSemaphoreCounterValue, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetSemaphoreCounterValue.html - VULKAN_HPP_NODISCARD uint64_t getCounterValue() const; + VULKAN_HPP_NODISCARD typename ResultValueType::type getCounterValue() const; //=== VK_KHR_timeline_semaphore === // wrapper function for command vkGetSemaphoreCounterValueKHR, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetSemaphoreCounterValueKHR.html - VULKAN_HPP_NODISCARD uint64_t getCounterValueKHR() const; + VULKAN_HPP_NODISCARD typename ResultValueType::type getCounterValueKHR() const; private: VULKAN_HPP_NAMESPACE::Device m_device = {}; @@ -13280,7 +13325,7 @@ namespace VULKAN_HPP_NAMESPACE static VULKAN_HPP_CONST_OR_CONSTEXPR DebugReportObjectTypeEXT debugReportObjectType = DebugReportObjectTypeEXT::eUnknown; public: -# if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) +# if !defined( VULKAN_HPP_NO_EXCEPTIONS ) ShaderEXT( Device const & device, ShaderCreateInfoEXT const & createInfo, Optional allocator = nullptr ) { *this = device.createShaderEXT( createInfo, allocator ); @@ -13396,7 +13441,7 @@ namespace VULKAN_HPP_NAMESPACE //=== VK_EXT_shader_object === // wrapper function for command vkGetShaderBinaryDataEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetShaderBinaryDataEXT.html - VULKAN_HPP_NODISCARD std::vector getBinaryData() const; + VULKAN_HPP_NODISCARD typename ResultValueType>::type getBinaryData() const; private: VULKAN_HPP_NAMESPACE::Device m_device = {}; @@ -13415,7 +13460,7 @@ namespace VULKAN_HPP_NAMESPACE class ShaderEXTs : public std::vector { public: -# if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) +# if !defined( VULKAN_HPP_NO_EXCEPTIONS ) ShaderEXTs( Device const & device, ArrayProxy const & createInfos, Optional allocator = nullptr ) { *this = device.createShadersEXT( createInfos, allocator ); @@ -13448,7 +13493,7 @@ namespace VULKAN_HPP_NAMESPACE static VULKAN_HPP_CONST_OR_CONSTEXPR DebugReportObjectTypeEXT debugReportObjectType = DebugReportObjectTypeEXT::eShaderModule; public: -# if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) +# if !defined( VULKAN_HPP_NO_EXCEPTIONS ) ShaderModule( Device const & device, ShaderModuleCreateInfo const & createInfo, Optional allocator = nullptr ) { *this = device.createShaderModule( createInfo, allocator ); @@ -13580,7 +13625,7 @@ namespace VULKAN_HPP_NAMESPACE static VULKAN_HPP_CONST_OR_CONSTEXPR DebugReportObjectTypeEXT debugReportObjectType = DebugReportObjectTypeEXT::eSurfaceKHR; public: -# if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) +# if !defined( VULKAN_HPP_NO_EXCEPTIONS ) # if defined( VK_USE_PLATFORM_ANDROID_KHR ) SurfaceKHR( Instance const & instance, AndroidSurfaceCreateInfoKHR const & createInfo, Optional allocator = nullptr ) { @@ -13589,7 +13634,7 @@ namespace VULKAN_HPP_NAMESPACE # endif /*VK_USE_PLATFORM_ANDROID_KHR*/ # endif -# if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) +# if !defined( VULKAN_HPP_NO_EXCEPTIONS ) # if defined( VK_USE_PLATFORM_DIRECTFB_EXT ) SurfaceKHR( Instance const & instance, DirectFBSurfaceCreateInfoEXT const & createInfo, Optional allocator = nullptr ) { @@ -13598,21 +13643,21 @@ namespace VULKAN_HPP_NAMESPACE # endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/ # endif -# if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) +# if !defined( VULKAN_HPP_NO_EXCEPTIONS ) SurfaceKHR( Instance const & instance, DisplaySurfaceCreateInfoKHR const & createInfo, Optional allocator = nullptr ) { *this = instance.createDisplayPlaneSurfaceKHR( createInfo, allocator ); } # endif -# if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) +# if !defined( VULKAN_HPP_NO_EXCEPTIONS ) SurfaceKHR( Instance const & instance, HeadlessSurfaceCreateInfoEXT const & createInfo, Optional allocator = nullptr ) { *this = instance.createHeadlessSurfaceEXT( createInfo, allocator ); } # endif -# if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) +# if !defined( VULKAN_HPP_NO_EXCEPTIONS ) # if defined( VK_USE_PLATFORM_IOS_MVK ) SurfaceKHR( Instance const & instance, IOSSurfaceCreateInfoMVK const & createInfo, Optional allocator = nullptr ) { @@ -13621,7 +13666,7 @@ namespace VULKAN_HPP_NAMESPACE # endif /*VK_USE_PLATFORM_IOS_MVK*/ # endif -# if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) +# if !defined( VULKAN_HPP_NO_EXCEPTIONS ) # if defined( VK_USE_PLATFORM_FUCHSIA ) SurfaceKHR( Instance const & instance, ImagePipeSurfaceCreateInfoFUCHSIA const & createInfo, Optional allocator = nullptr ) { @@ -13630,7 +13675,7 @@ namespace VULKAN_HPP_NAMESPACE # endif /*VK_USE_PLATFORM_FUCHSIA*/ # endif -# if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) +# if !defined( VULKAN_HPP_NO_EXCEPTIONS ) # if defined( VK_USE_PLATFORM_MACOS_MVK ) SurfaceKHR( Instance const & instance, MacOSSurfaceCreateInfoMVK const & createInfo, Optional allocator = nullptr ) { @@ -13639,7 +13684,7 @@ namespace VULKAN_HPP_NAMESPACE # endif /*VK_USE_PLATFORM_MACOS_MVK*/ # endif -# if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) +# if !defined( VULKAN_HPP_NO_EXCEPTIONS ) # if defined( VK_USE_PLATFORM_METAL_EXT ) SurfaceKHR( Instance const & instance, MetalSurfaceCreateInfoEXT const & createInfo, Optional allocator = nullptr ) { @@ -13648,7 +13693,7 @@ namespace VULKAN_HPP_NAMESPACE # endif /*VK_USE_PLATFORM_METAL_EXT*/ # endif -# if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) +# if !defined( VULKAN_HPP_NO_EXCEPTIONS ) # if defined( VK_USE_PLATFORM_SCREEN_QNX ) SurfaceKHR( Instance const & instance, ScreenSurfaceCreateInfoQNX const & createInfo, Optional allocator = nullptr ) { @@ -13657,7 +13702,7 @@ namespace VULKAN_HPP_NAMESPACE # endif /*VK_USE_PLATFORM_SCREEN_QNX*/ # endif -# if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) +# if !defined( VULKAN_HPP_NO_EXCEPTIONS ) # if defined( VK_USE_PLATFORM_GGP ) SurfaceKHR( Instance const & instance, StreamDescriptorSurfaceCreateInfoGGP const & createInfo, Optional allocator = nullptr ) { @@ -13666,7 +13711,7 @@ namespace VULKAN_HPP_NAMESPACE # endif /*VK_USE_PLATFORM_GGP*/ # endif -# if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) +# if !defined( VULKAN_HPP_NO_EXCEPTIONS ) # if defined( VK_USE_PLATFORM_OHOS ) SurfaceKHR( Instance const & instance, SurfaceCreateInfoOHOS const & createInfo, Optional allocator = nullptr ) { @@ -13675,7 +13720,7 @@ namespace VULKAN_HPP_NAMESPACE # endif /*VK_USE_PLATFORM_OHOS*/ # endif -# if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) +# if !defined( VULKAN_HPP_NO_EXCEPTIONS ) # if defined( VK_USE_PLATFORM_VI_NN ) SurfaceKHR( Instance const & instance, ViSurfaceCreateInfoNN const & createInfo, Optional allocator = nullptr ) { @@ -13684,7 +13729,7 @@ namespace VULKAN_HPP_NAMESPACE # endif /*VK_USE_PLATFORM_VI_NN*/ # endif -# if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) +# if !defined( VULKAN_HPP_NO_EXCEPTIONS ) # if defined( VK_USE_PLATFORM_WAYLAND_KHR ) SurfaceKHR( Instance const & instance, WaylandSurfaceCreateInfoKHR const & createInfo, Optional allocator = nullptr ) { @@ -13693,7 +13738,7 @@ namespace VULKAN_HPP_NAMESPACE # endif /*VK_USE_PLATFORM_WAYLAND_KHR*/ # endif -# if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) +# if !defined( VULKAN_HPP_NO_EXCEPTIONS ) # if defined( VK_USE_PLATFORM_WIN32_KHR ) SurfaceKHR( Instance const & instance, Win32SurfaceCreateInfoKHR const & createInfo, Optional allocator = nullptr ) { @@ -13702,7 +13747,7 @@ namespace VULKAN_HPP_NAMESPACE # endif /*VK_USE_PLATFORM_WIN32_KHR*/ # endif -# if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) +# if !defined( VULKAN_HPP_NO_EXCEPTIONS ) # if defined( VK_USE_PLATFORM_XCB_KHR ) SurfaceKHR( Instance const & instance, XcbSurfaceCreateInfoKHR const & createInfo, Optional allocator = nullptr ) { @@ -13711,7 +13756,7 @@ namespace VULKAN_HPP_NAMESPACE # endif /*VK_USE_PLATFORM_XCB_KHR*/ # endif -# if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) +# if !defined( VULKAN_HPP_NO_EXCEPTIONS ) # if defined( VK_USE_PLATFORM_XLIB_KHR ) SurfaceKHR( Instance const & instance, XlibSurfaceCreateInfoKHR const & createInfo, Optional allocator = nullptr ) { @@ -13839,7 +13884,7 @@ namespace VULKAN_HPP_NAMESPACE static VULKAN_HPP_CONST_OR_CONSTEXPR DebugReportObjectTypeEXT debugReportObjectType = DebugReportObjectTypeEXT::eSwapchainKHR; public: -# if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) +# if !defined( VULKAN_HPP_NO_EXCEPTIONS ) SwapchainKHR( Device const & device, SwapchainCreateInfoKHR const & createInfo, Optional allocator = nullptr ) { *this = device.createSwapchainKHR( createInfo, allocator ); @@ -13944,27 +13989,27 @@ namespace VULKAN_HPP_NAMESPACE //=== VK_KHR_swapchain === // wrapper function for command vkGetSwapchainImagesKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetSwapchainImagesKHR.html - VULKAN_HPP_NODISCARD std::vector getImages() const; + VULKAN_HPP_NODISCARD typename ResultValueType>::type getImages() const; // wrapper function for command vkAcquireNextImageKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkAcquireNextImageKHR.html - VULKAN_HPP_NODISCARD std::pair acquireNextImage( uint64_t timeout, - VULKAN_HPP_NAMESPACE::Semaphore semaphore VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, - VULKAN_HPP_NAMESPACE::Fence fence VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT ) const; + VULKAN_HPP_NODISCARD ResultValue acquireNextImage( uint64_t timeout, + VULKAN_HPP_NAMESPACE::Semaphore semaphore VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, + VULKAN_HPP_NAMESPACE::Fence fence VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT ) const; //=== VK_EXT_display_control === // wrapper function for command vkGetSwapchainCounterEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetSwapchainCounterEXT.html - VULKAN_HPP_NODISCARD uint64_t getCounterEXT( SurfaceCounterFlagBitsEXT counter ) const; + VULKAN_HPP_NODISCARD typename ResultValueType::type getCounterEXT( SurfaceCounterFlagBitsEXT counter ) const; //=== VK_GOOGLE_display_timing === // wrapper function for command vkGetRefreshCycleDurationGOOGLE, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetRefreshCycleDurationGOOGLE.html - VULKAN_HPP_NODISCARD RefreshCycleDurationGOOGLE getRefreshCycleDurationGOOGLE() const; + VULKAN_HPP_NODISCARD typename ResultValueType::type getRefreshCycleDurationGOOGLE() const; // wrapper function for command vkGetPastPresentationTimingGOOGLE, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPastPresentationTimingGOOGLE.html - VULKAN_HPP_NODISCARD std::vector getPastPresentationTimingGOOGLE() const; + VULKAN_HPP_NODISCARD typename ResultValueType>::type getPastPresentationTimingGOOGLE() const; //=== VK_KHR_shared_presentable_image === @@ -13986,11 +14031,11 @@ namespace VULKAN_HPP_NAMESPACE // wrapper function for command vkAcquireFullScreenExclusiveModeEXT, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkAcquireFullScreenExclusiveModeEXT.html - void acquireFullScreenExclusiveModeEXT() const; + typename ResultValueType::type acquireFullScreenExclusiveModeEXT() const; // wrapper function for command vkReleaseFullScreenExclusiveModeEXT, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkReleaseFullScreenExclusiveModeEXT.html - void releaseFullScreenExclusiveModeEXT() const; + typename ResultValueType::type releaseFullScreenExclusiveModeEXT() const; # endif /*VK_USE_PLATFORM_WIN32_KHR*/ //=== VK_KHR_present_wait2 === @@ -14001,10 +14046,10 @@ namespace VULKAN_HPP_NAMESPACE //=== VK_NV_low_latency2 === // wrapper function for command vkSetLatencySleepModeNV, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkSetLatencySleepModeNV.html - void setLatencySleepModeNV( const LatencySleepModeInfoNV & sleepModeInfo ) const; + typename ResultValueType::type setLatencySleepModeNV( const LatencySleepModeInfoNV & sleepModeInfo ) const; // wrapper function for command vkLatencySleepNV, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkLatencySleepNV.html - void latencySleepNV( const LatencySleepInfoNV & sleepInfo ) const; + typename ResultValueType::type latencySleepNV( const LatencySleepInfoNV & sleepInfo ) const; // wrapper function for command vkSetLatencyMarkerNV, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkSetLatencyMarkerNV.html void setLatencyMarkerNV( const SetLatencyMarkerInfoNV & latencyMarkerInfo ) const VULKAN_HPP_NOEXCEPT; @@ -14028,7 +14073,7 @@ namespace VULKAN_HPP_NAMESPACE class SwapchainKHRs : public std::vector { public: -# if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) +# if !defined( VULKAN_HPP_NO_EXCEPTIONS ) SwapchainKHRs( Device const & device, ArrayProxy const & createInfos, Optional allocator = nullptr ) { *this = device.createSharedSwapchainsKHR( createInfos, allocator ); @@ -14061,7 +14106,7 @@ namespace VULKAN_HPP_NAMESPACE static VULKAN_HPP_CONST_OR_CONSTEXPR DebugReportObjectTypeEXT debugReportObjectType = DebugReportObjectTypeEXT::eUnknown; public: -# if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) +# if !defined( VULKAN_HPP_NO_EXCEPTIONS ) TensorARM( Device const & device, TensorCreateInfoARM const & createInfo, Optional allocator = nullptr ) { *this = device.createTensorARM( createInfo, allocator ); @@ -14187,7 +14232,7 @@ namespace VULKAN_HPP_NAMESPACE static VULKAN_HPP_CONST_OR_CONSTEXPR DebugReportObjectTypeEXT debugReportObjectType = DebugReportObjectTypeEXT::eUnknown; public: -# if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) +# if !defined( VULKAN_HPP_NO_EXCEPTIONS ) TensorViewARM( Device const & device, TensorViewCreateInfoARM const & createInfo, Optional allocator = nullptr ) { *this = device.createTensorViewARM( createInfo, allocator ); @@ -14314,7 +14359,7 @@ namespace VULKAN_HPP_NAMESPACE static VULKAN_HPP_CONST_OR_CONSTEXPR DebugReportObjectTypeEXT debugReportObjectType = DebugReportObjectTypeEXT::eValidationCacheEXT; public: -# if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) +# if !defined( VULKAN_HPP_NO_EXCEPTIONS ) ValidationCacheEXT( Device const & device, ValidationCacheCreateInfoEXT const & createInfo, Optional allocator = nullptr ) { *this = device.createValidationCacheEXT( createInfo, allocator ); @@ -14420,11 +14465,11 @@ namespace VULKAN_HPP_NAMESPACE //=== VK_EXT_validation_cache === // wrapper function for command vkMergeValidationCachesEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkMergeValidationCachesEXT.html - void merge( ArrayProxy const & srcCaches ) const; + typename ResultValueType::type merge( ArrayProxy const & srcCaches ) const; // wrapper function for command vkGetValidationCacheDataEXT, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetValidationCacheDataEXT.html - VULKAN_HPP_NODISCARD std::vector getData() const; + VULKAN_HPP_NODISCARD typename ResultValueType>::type getData() const; private: VULKAN_HPP_NAMESPACE::Device m_device = {}; @@ -14450,7 +14495,7 @@ namespace VULKAN_HPP_NAMESPACE static VULKAN_HPP_CONST_OR_CONSTEXPR DebugReportObjectTypeEXT debugReportObjectType = DebugReportObjectTypeEXT::eUnknown; public: -# if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) +# if !defined( VULKAN_HPP_NO_EXCEPTIONS ) VideoSessionKHR( Device const & device, VideoSessionCreateInfoKHR const & createInfo, Optional allocator = nullptr ) { *this = device.createVideoSessionKHR( createInfo, allocator ); @@ -14557,11 +14602,11 @@ namespace VULKAN_HPP_NAMESPACE // wrapper function for command vkGetVideoSessionMemoryRequirementsKHR, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetVideoSessionMemoryRequirementsKHR.html - VULKAN_HPP_NODISCARD std::vector getMemoryRequirements() const; + VULKAN_HPP_NODISCARD typename ResultValueType>::type getMemoryRequirements() const; // wrapper function for command vkBindVideoSessionMemoryKHR, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkBindVideoSessionMemoryKHR.html - void bindMemory( ArrayProxy const & bindSessionMemoryInfos ) const; + typename ResultValueType::type bindMemory( ArrayProxy const & bindSessionMemoryInfos ) const; private: VULKAN_HPP_NAMESPACE::Device m_device = {}; @@ -14587,7 +14632,7 @@ namespace VULKAN_HPP_NAMESPACE static VULKAN_HPP_CONST_OR_CONSTEXPR DebugReportObjectTypeEXT debugReportObjectType = DebugReportObjectTypeEXT::eUnknown; public: -# if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) +# if !defined( VULKAN_HPP_NO_EXCEPTIONS ) VideoSessionParametersKHR( Device const & device, VideoSessionParametersCreateInfoKHR const & createInfo, Optional allocator = nullptr ) @@ -14698,7 +14743,7 @@ namespace VULKAN_HPP_NAMESPACE // wrapper function for command vkUpdateVideoSessionParametersKHR, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkUpdateVideoSessionParametersKHR.html - void update( const VideoSessionParametersUpdateInfoKHR & updateInfo ) const; + typename ResultValueType::type update( const VideoSessionParametersUpdateInfoKHR & updateInfo ) const; private: VULKAN_HPP_NAMESPACE::Device m_device = {}; @@ -14771,27 +14816,20 @@ namespace VULKAN_HPP_NAMESPACE //=== VK_VERSION_1_0 === // wrapper function for command vkCreateInstance, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateInstance.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE detail::CreateReturnType::Type - Context::createInstance( InstanceCreateInfo const & createInfo, Optional allocator ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType::type + Context::createInstance( InstanceCreateInfo const & createInfo, + Optional allocator ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS { VULKAN_HPP_NAMESPACE::Instance instance; Result result = static_cast( getDispatcher()->vkCreateInstance( reinterpret_cast( &createInfo ), reinterpret_cast( allocator.get() ), reinterpret_cast( &instance ) ) ); - if ( result != Result::eSuccess ) - { -# if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) - return VULKAN_HPP_UNEXPECTED( result ); -# else - VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Context::createInstance" ); -# endif - } - - return Instance( *this, *reinterpret_cast( &instance ), allocator ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Context::createInstance" ); + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, Instance( *this, *reinterpret_cast( &instance ), allocator ) ); } // wrapper function for command vkEnumeratePhysicalDevices, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkEnumeratePhysicalDevices.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE detail::CreateReturnType>::Type Instance::enumeratePhysicalDevices() const + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type Instance::enumeratePhysicalDevices() const { std::vector physicalDevices; uint32_t physicalDeviceCount; @@ -14806,22 +14844,17 @@ namespace VULKAN_HPP_NAMESPACE static_cast( m_instance ), &physicalDeviceCount, reinterpret_cast( physicalDevices.data() ) ) ); } } while ( result == Result::eIncomplete ); - if ( ( result != Result::eSuccess ) && ( result != Result::eIncomplete ) ) - { -# if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) - return VULKAN_HPP_UNEXPECTED( result ); -# else - VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Instance::enumeratePhysicalDevices" ); -# endif - } - + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Instance::enumeratePhysicalDevices" ); std::vector physicalDevicesRAII; - physicalDevicesRAII.reserve( physicalDevices.size() ); - for ( auto & physicalDevice : physicalDevices ) + if ( result == Result::eSuccess ) { - physicalDevicesRAII.emplace_back( *this, *reinterpret_cast( &physicalDevice ) ); + physicalDevicesRAII.reserve( physicalDevices.size() ); + for ( auto & physicalDevice : physicalDevices ) + { + physicalDevicesRAII.emplace_back( *this, *reinterpret_cast( &physicalDevice ) ); + } } - return physicalDevicesRAII; + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( physicalDevicesRAII ) ); } // wrapper function for command vkGetPhysicalDeviceFeatures, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceFeatures.html @@ -14851,7 +14884,7 @@ namespace VULKAN_HPP_NAMESPACE // wrapper function for command vkGetPhysicalDeviceImageFormatProperties, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceImageFormatProperties.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ImageFormatProperties + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType::type PhysicalDevice::getImageFormatProperties( Format format, ImageType type, ImageTiling tiling, ImageUsageFlags usage, ImageCreateFlags flags ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceImageFormatProperties && @@ -14866,9 +14899,9 @@ namespace VULKAN_HPP_NAMESPACE static_cast( usage ), static_cast( flags ), reinterpret_cast( &imageFormatProperties ) ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getImageFormatProperties" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::PhysicalDevice::getImageFormatProperties" ); - return imageFormatProperties; + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( imageFormatProperties ) ); } // wrapper function for command vkGetPhysicalDeviceProperties, see @@ -14941,30 +14974,23 @@ namespace VULKAN_HPP_NAMESPACE } // wrapper function for command vkCreateDevice, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateDevice.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE detail::CreateReturnType::Type - PhysicalDevice::createDevice( DeviceCreateInfo const & createInfo, Optional allocator ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType::type + PhysicalDevice::createDevice( DeviceCreateInfo const & createInfo, + Optional allocator ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS { VULKAN_HPP_NAMESPACE::Device device; Result result = static_cast( getDispatcher()->vkCreateDevice( static_cast( m_physicalDevice ), reinterpret_cast( &createInfo ), reinterpret_cast( allocator.get() ), reinterpret_cast( &device ) ) ); - if ( result != Result::eSuccess ) - { -# if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) - return VULKAN_HPP_UNEXPECTED( result ); -# else - VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "PhysicalDevice::createDevice" ); -# endif - } - - return Device( *this, *reinterpret_cast( &device ), allocator ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::PhysicalDevice::createDevice" ); + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, Device( *this, *reinterpret_cast( &device ), allocator ) ); } // wrapper function for command vkEnumerateInstanceExtensionProperties, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkEnumerateInstanceExtensionProperties.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector - Context::enumerateInstanceExtensionProperties( Optional layerName ) const + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type + Context::enumerateInstanceExtensionProperties( Optional layerName ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkEnumerateInstanceExtensionProperties && "Function requires " ); @@ -14983,19 +15009,19 @@ namespace VULKAN_HPP_NAMESPACE layerName ? layerName->c_str() : nullptr, &propertyCount, reinterpret_cast( properties.data() ) ) ); } } while ( result == Result::eIncomplete ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Context::enumerateInstanceExtensionProperties" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Context::enumerateInstanceExtensionProperties" ); VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); if ( propertyCount < properties.size() ) { properties.resize( propertyCount ); } - return properties; + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( properties ) ); } // wrapper function for command vkEnumerateDeviceExtensionProperties, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkEnumerateDeviceExtensionProperties.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector - PhysicalDevice::enumerateDeviceExtensionProperties( Optional layerName ) const + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type + PhysicalDevice::enumerateDeviceExtensionProperties( Optional layerName ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkEnumerateDeviceExtensionProperties && "Function requires " ); @@ -15016,18 +15042,18 @@ namespace VULKAN_HPP_NAMESPACE reinterpret_cast( properties.data() ) ) ); } } while ( result == Result::eIncomplete ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::enumerateDeviceExtensionProperties" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::PhysicalDevice::enumerateDeviceExtensionProperties" ); VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); if ( propertyCount < properties.size() ) { properties.resize( propertyCount ); } - return properties; + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( properties ) ); } // wrapper function for command vkEnumerateInstanceLayerProperties, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkEnumerateInstanceLayerProperties.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector Context::enumerateInstanceLayerProperties() const + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type Context::enumerateInstanceLayerProperties() const { VULKAN_HPP_ASSERT( getDispatcher()->vkEnumerateInstanceLayerProperties && "Function requires " ); @@ -15044,18 +15070,18 @@ namespace VULKAN_HPP_NAMESPACE getDispatcher()->vkEnumerateInstanceLayerProperties( &propertyCount, reinterpret_cast( properties.data() ) ) ); } } while ( result == Result::eIncomplete ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Context::enumerateInstanceLayerProperties" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Context::enumerateInstanceLayerProperties" ); VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); if ( propertyCount < properties.size() ) { properties.resize( propertyCount ); } - return properties; + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( properties ) ); } // wrapper function for command vkEnumerateDeviceLayerProperties, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkEnumerateDeviceLayerProperties.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector PhysicalDevice::enumerateDeviceLayerProperties() const + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type PhysicalDevice::enumerateDeviceLayerProperties() const { VULKAN_HPP_ASSERT( getDispatcher()->vkEnumerateDeviceLayerProperties && "Function requires " ); @@ -15073,18 +15099,17 @@ namespace VULKAN_HPP_NAMESPACE static_cast( m_physicalDevice ), &propertyCount, reinterpret_cast( properties.data() ) ) ); } } while ( result == Result::eIncomplete ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::enumerateDeviceLayerProperties" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::PhysicalDevice::enumerateDeviceLayerProperties" ); VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); if ( propertyCount < properties.size() ) { properties.resize( propertyCount ); } - return properties; + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( properties ) ); } // wrapper function for command vkGetDeviceQueue, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDeviceQueue.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE detail::CreateReturnType::Type Device::getQueue( uint32_t queueFamilyIndex, - uint32_t queueIndex ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Queue Device::getQueue( uint32_t queueFamilyIndex, uint32_t queueIndex ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS { VULKAN_HPP_NAMESPACE::Queue queue; getDispatcher()->vkGetDeviceQueue( static_cast( m_device ), queueFamilyIndex, queueIndex, reinterpret_cast( &queue ) ); @@ -15093,56 +15118,57 @@ namespace VULKAN_HPP_NAMESPACE } // wrapper function for command vkQueueSubmit, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkQueueSubmit.html - VULKAN_HPP_INLINE void Queue::submit( ArrayProxy const & submits, VULKAN_HPP_NAMESPACE::Fence fence ) const + VULKAN_HPP_INLINE typename ResultValueType::type Queue::submit( ArrayProxy const & submits, + VULKAN_HPP_NAMESPACE::Fence fence ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkQueueSubmit && "Function requires " ); Result result = static_cast( getDispatcher()->vkQueueSubmit( static_cast( m_queue ), submits.size(), reinterpret_cast( submits.data() ), static_cast( fence ) ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Queue::submit" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Queue::submit" ); + + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result ); } // wrapper function for command vkQueueWaitIdle, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkQueueWaitIdle.html - VULKAN_HPP_INLINE void Queue::waitIdle() const + VULKAN_HPP_INLINE typename ResultValueType::type Queue::waitIdle() const { VULKAN_HPP_ASSERT( getDispatcher()->vkQueueWaitIdle && "Function requires " ); Result result = static_cast( getDispatcher()->vkQueueWaitIdle( static_cast( m_queue ) ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Queue::waitIdle" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Queue::waitIdle" ); + + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result ); } // wrapper function for command vkDeviceWaitIdle, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDeviceWaitIdle.html - VULKAN_HPP_INLINE void Device::waitIdle() const + VULKAN_HPP_INLINE typename ResultValueType::type Device::waitIdle() const { VULKAN_HPP_ASSERT( getDispatcher()->vkDeviceWaitIdle && "Function requires " ); Result result = static_cast( getDispatcher()->vkDeviceWaitIdle( static_cast( m_device ) ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::waitIdle" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::waitIdle" ); + + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result ); } // wrapper function for command vkAllocateMemory, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkAllocateMemory.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE detail::CreateReturnType::Type - Device::allocateMemory( MemoryAllocateInfo const & allocateInfo, Optional allocator ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType::type + Device::allocateMemory( MemoryAllocateInfo const & allocateInfo, + Optional allocator ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS { VULKAN_HPP_NAMESPACE::DeviceMemory memory; Result result = static_cast( getDispatcher()->vkAllocateMemory( static_cast( m_device ), reinterpret_cast( &allocateInfo ), reinterpret_cast( allocator.get() ), reinterpret_cast( &memory ) ) ); - if ( result != Result::eSuccess ) - { -# if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) - return VULKAN_HPP_UNEXPECTED( result ); -# else - VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::allocateMemory" ); -# endif - } - - return DeviceMemory( *this, *reinterpret_cast( &memory ), allocator ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::allocateMemory" ); + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, DeviceMemory( *this, *reinterpret_cast( &memory ), allocator ) ); } // wrapper function for command vkMapMemory, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkMapMemory.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE void * DeviceMemory::mapMemory( DeviceSize offset, DeviceSize size, MemoryMapFlags flags ) const + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType::type + DeviceMemory::mapMemory( DeviceSize offset, DeviceSize size, MemoryMapFlags flags ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkMapMemory && "Function requires " ); @@ -15153,9 +15179,9 @@ namespace VULKAN_HPP_NAMESPACE static_cast( size ), static_cast( flags ), &pData ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::DeviceMemory::mapMemory" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::DeviceMemory::mapMemory" ); - return pData; + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( pData ) ); } // wrapper function for command vkUnmapMemory, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkUnmapMemory.html @@ -15167,24 +15193,29 @@ namespace VULKAN_HPP_NAMESPACE } // wrapper function for command vkFlushMappedMemoryRanges, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkFlushMappedMemoryRanges.html - VULKAN_HPP_INLINE void Device::flushMappedMemoryRanges( ArrayProxy const & memoryRanges ) const + VULKAN_HPP_INLINE typename ResultValueType::type Device::flushMappedMemoryRanges( ArrayProxy const & memoryRanges ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkFlushMappedMemoryRanges && "Function requires " ); Result result = static_cast( getDispatcher()->vkFlushMappedMemoryRanges( static_cast( m_device ), memoryRanges.size(), reinterpret_cast( memoryRanges.data() ) ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::flushMappedMemoryRanges" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::flushMappedMemoryRanges" ); + + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result ); } // wrapper function for command vkInvalidateMappedMemoryRanges, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkInvalidateMappedMemoryRanges.html - VULKAN_HPP_INLINE void Device::invalidateMappedMemoryRanges( ArrayProxy const & memoryRanges ) const + VULKAN_HPP_INLINE typename ResultValueType::type + Device::invalidateMappedMemoryRanges( ArrayProxy const & memoryRanges ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkInvalidateMappedMemoryRanges && "Function requires " ); Result result = static_cast( getDispatcher()->vkInvalidateMappedMemoryRanges( static_cast( m_device ), memoryRanges.size(), reinterpret_cast( memoryRanges.data() ) ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::invalidateMappedMemoryRanges" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::invalidateMappedMemoryRanges" ); + + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result ); } // wrapper function for command vkGetDeviceMemoryCommitment, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDeviceMemoryCommitment.html @@ -15200,7 +15231,7 @@ namespace VULKAN_HPP_NAMESPACE } // wrapper function for command vkBindBufferMemory, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkBindBufferMemory.html - VULKAN_HPP_INLINE void Buffer::bindMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory, DeviceSize memoryOffset ) const + VULKAN_HPP_INLINE typename ResultValueType::type Buffer::bindMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory, DeviceSize memoryOffset ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkBindBufferMemory && "Function requires " ); @@ -15208,11 +15239,13 @@ namespace VULKAN_HPP_NAMESPACE static_cast( m_buffer ), static_cast( memory ), static_cast( memoryOffset ) ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Buffer::bindMemory" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Buffer::bindMemory" ); + + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result ); } // wrapper function for command vkBindImageMemory, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkBindImageMemory.html - VULKAN_HPP_INLINE void Image::bindMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory, DeviceSize memoryOffset ) const + VULKAN_HPP_INLINE typename ResultValueType::type Image::bindMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory, DeviceSize memoryOffset ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkBindImageMemory && "Function requires " ); @@ -15220,7 +15253,9 @@ namespace VULKAN_HPP_NAMESPACE static_cast( m_image ), static_cast( memory ), static_cast( memoryOffset ) ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Image::bindMemory" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Image::bindMemory" ); + + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result ); } // wrapper function for command vkGetBufferMemoryRequirements, see @@ -15310,44 +15345,41 @@ namespace VULKAN_HPP_NAMESPACE } // wrapper function for command vkQueueBindSparse, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkQueueBindSparse.html - VULKAN_HPP_INLINE void Queue::bindSparse( ArrayProxy const & bindInfo, VULKAN_HPP_NAMESPACE::Fence fence ) const + VULKAN_HPP_INLINE typename ResultValueType::type Queue::bindSparse( ArrayProxy const & bindInfo, + VULKAN_HPP_NAMESPACE::Fence fence ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkQueueBindSparse && "Function requires " ); Result result = static_cast( getDispatcher()->vkQueueBindSparse( static_cast( m_queue ), bindInfo.size(), reinterpret_cast( bindInfo.data() ), static_cast( fence ) ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Queue::bindSparse" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Queue::bindSparse" ); + + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result ); } // wrapper function for command vkCreateFence, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateFence.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE detail::CreateReturnType::Type - Device::createFence( FenceCreateInfo const & createInfo, Optional allocator ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType::type + Device::createFence( FenceCreateInfo const & createInfo, Optional allocator ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS { VULKAN_HPP_NAMESPACE::Fence fence; Result result = static_cast( getDispatcher()->vkCreateFence( static_cast( m_device ), reinterpret_cast( &createInfo ), reinterpret_cast( allocator.get() ), reinterpret_cast( &fence ) ) ); - if ( result != Result::eSuccess ) - { -# if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) - return VULKAN_HPP_UNEXPECTED( result ); -# else - VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createFence" ); -# endif - } - - return Fence( *this, *reinterpret_cast( &fence ), allocator ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::createFence" ); + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, Fence( *this, *reinterpret_cast( &fence ), allocator ) ); } // wrapper function for command vkResetFences, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkResetFences.html - VULKAN_HPP_INLINE void Device::resetFences( ArrayProxy const & fences ) const + VULKAN_HPP_INLINE typename ResultValueType::type Device::resetFences( ArrayProxy const & fences ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkResetFences && "Function requires " ); Result result = static_cast( getDispatcher()->vkResetFences( static_cast( m_device ), fences.size(), reinterpret_cast( fences.data() ) ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::resetFences" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::resetFences" ); + + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result ); } // wrapper function for command vkGetFenceStatus, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetFenceStatus.html @@ -15356,7 +15388,7 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_ASSERT( getDispatcher()->vkGetFenceStatus && "Function requires " ); Result result = static_cast( getDispatcher()->vkGetFenceStatus( static_cast( m_device ), static_cast( m_fence ) ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Fence::getStatus", { Result::eSuccess, Result::eNotReady } ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Fence::getStatus", { Result::eSuccess, Result::eNotReady } ); return static_cast( result ); } @@ -15370,51 +15402,36 @@ namespace VULKAN_HPP_NAMESPACE Result result = static_cast( getDispatcher()->vkWaitForFences( static_cast( m_device ), fences.size(), reinterpret_cast( fences.data() ), static_cast( waitAll ), timeout ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::waitForFences", { Result::eSuccess, Result::eTimeout } ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::waitForFences", { Result::eSuccess, Result::eTimeout } ); return static_cast( result ); } // wrapper function for command vkCreateSemaphore, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateSemaphore.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE detail::CreateReturnType::Type - Device::createSemaphore( SemaphoreCreateInfo const & createInfo, Optional allocator ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType::type + Device::createSemaphore( SemaphoreCreateInfo const & createInfo, + Optional allocator ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS { VULKAN_HPP_NAMESPACE::Semaphore semaphore; Result result = static_cast( getDispatcher()->vkCreateSemaphore( static_cast( m_device ), reinterpret_cast( &createInfo ), reinterpret_cast( allocator.get() ), reinterpret_cast( &semaphore ) ) ); - if ( result != Result::eSuccess ) - { -# if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) - return VULKAN_HPP_UNEXPECTED( result ); -# else - VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createSemaphore" ); -# endif - } - - return Semaphore( *this, *reinterpret_cast( &semaphore ), allocator ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::createSemaphore" ); + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, Semaphore( *this, *reinterpret_cast( &semaphore ), allocator ) ); } // wrapper function for command vkCreateEvent, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateEvent.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE detail::CreateReturnType::Type - Device::createEvent( EventCreateInfo const & createInfo, Optional allocator ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType::type + Device::createEvent( EventCreateInfo const & createInfo, Optional allocator ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS { VULKAN_HPP_NAMESPACE::Event event; Result result = static_cast( getDispatcher()->vkCreateEvent( static_cast( m_device ), reinterpret_cast( &createInfo ), reinterpret_cast( allocator.get() ), reinterpret_cast( &event ) ) ); - if ( result != Result::eSuccess ) - { -# if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) - return VULKAN_HPP_UNEXPECTED( result ); -# else - VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createEvent" ); -# endif - } - - return Event( *this, *reinterpret_cast( &event ), allocator ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::createEvent" ); + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, Event( *this, *reinterpret_cast( &event ), allocator ) ); } // wrapper function for command vkGetEventStatus, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetEventStatus.html @@ -15423,53 +15440,50 @@ namespace VULKAN_HPP_NAMESPACE VULKAN_HPP_ASSERT( getDispatcher()->vkGetEventStatus && "Function requires " ); Result result = static_cast( getDispatcher()->vkGetEventStatus( static_cast( m_device ), static_cast( m_event ) ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Event::getStatus", { Result::eEventSet, Result::eEventReset } ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Event::getStatus", { Result::eEventSet, Result::eEventReset } ); return static_cast( result ); } // wrapper function for command vkSetEvent, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkSetEvent.html - VULKAN_HPP_INLINE void Event::set() const + VULKAN_HPP_INLINE typename ResultValueType::type Event::set() const { VULKAN_HPP_ASSERT( getDispatcher()->vkSetEvent && "Function requires " ); Result result = static_cast( getDispatcher()->vkSetEvent( static_cast( m_device ), static_cast( m_event ) ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Event::set" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Event::set" ); + + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result ); } // wrapper function for command vkResetEvent, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkResetEvent.html - VULKAN_HPP_INLINE void Event::reset() const + VULKAN_HPP_INLINE typename ResultValueType::type Event::reset() const { VULKAN_HPP_ASSERT( getDispatcher()->vkResetEvent && "Function requires " ); Result result = static_cast( getDispatcher()->vkResetEvent( static_cast( m_device ), static_cast( m_event ) ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Event::reset" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Event::reset" ); + + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result ); } // wrapper function for command vkCreateQueryPool, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateQueryPool.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE detail::CreateReturnType::Type - Device::createQueryPool( QueryPoolCreateInfo const & createInfo, Optional allocator ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType::type + Device::createQueryPool( QueryPoolCreateInfo const & createInfo, + Optional allocator ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS { VULKAN_HPP_NAMESPACE::QueryPool queryPool; Result result = static_cast( getDispatcher()->vkCreateQueryPool( static_cast( m_device ), reinterpret_cast( &createInfo ), reinterpret_cast( allocator.get() ), reinterpret_cast( &queryPool ) ) ); - if ( result != Result::eSuccess ) - { -# if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) - return VULKAN_HPP_UNEXPECTED( result ); -# else - VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createQueryPool" ); -# endif - } - - return QueryPool( *this, *reinterpret_cast( &queryPool ), allocator ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::createQueryPool" ); + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, QueryPool( *this, *reinterpret_cast( &queryPool ), allocator ) ); } // wrapper function for command vkGetQueryPoolResults, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetQueryPoolResults.html template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::pair> + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue> QueryPool::getResults( uint32_t firstQuery, uint32_t queryCount, size_t dataSize, DeviceSize stride, QueryResultFlags flags ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetQueryPoolResults && "Function requires " ); @@ -15484,14 +15498,14 @@ namespace VULKAN_HPP_NAMESPACE reinterpret_cast( data.data() ), static_cast( stride ), static_cast( flags ) ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::QueryPool::getResults", { Result::eSuccess, Result::eNotReady } ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::QueryPool::getResults", { Result::eSuccess, Result::eNotReady } ); - return std::make_pair( result, std::move( data ) ); + return ResultValue>( result, std::move( data ) ); } // wrapper function for command vkGetQueryPoolResults, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetQueryPoolResults.html template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::pair + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue QueryPool::getResult( uint32_t firstQuery, uint32_t queryCount, DeviceSize stride, QueryResultFlags flags ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetQueryPoolResults && "Function requires " ); @@ -15505,72 +15519,49 @@ namespace VULKAN_HPP_NAMESPACE reinterpret_cast( &data ), static_cast( stride ), static_cast( flags ) ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::QueryPool::getResult", { Result::eSuccess, Result::eNotReady } ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::QueryPool::getResult", { Result::eSuccess, Result::eNotReady } ); - return std::make_pair( result, std::move( data ) ); + return ResultValue( result, std::move( data ) ); } // wrapper function for command vkCreateBuffer, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateBuffer.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE detail::CreateReturnType::Type - Device::createBuffer( BufferCreateInfo const & createInfo, Optional allocator ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType::type + Device::createBuffer( BufferCreateInfo const & createInfo, Optional allocator ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS { VULKAN_HPP_NAMESPACE::Buffer buffer; Result result = static_cast( getDispatcher()->vkCreateBuffer( static_cast( m_device ), reinterpret_cast( &createInfo ), reinterpret_cast( allocator.get() ), reinterpret_cast( &buffer ) ) ); - if ( result != Result::eSuccess ) - { -# if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) - return VULKAN_HPP_UNEXPECTED( result ); -# else - VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createBuffer" ); -# endif - } - - return Buffer( *this, *reinterpret_cast( &buffer ), allocator ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::createBuffer" ); + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, Buffer( *this, *reinterpret_cast( &buffer ), allocator ) ); } // wrapper function for command vkCreateBufferView, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateBufferView.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE detail::CreateReturnType::Type - Device::createBufferView( BufferViewCreateInfo const & createInfo, Optional allocator ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType::type + Device::createBufferView( BufferViewCreateInfo const & createInfo, + Optional allocator ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS { VULKAN_HPP_NAMESPACE::BufferView view; Result result = static_cast( getDispatcher()->vkCreateBufferView( static_cast( m_device ), reinterpret_cast( &createInfo ), reinterpret_cast( allocator.get() ), reinterpret_cast( &view ) ) ); - if ( result != Result::eSuccess ) - { -# if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) - return VULKAN_HPP_UNEXPECTED( result ); -# else - VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createBufferView" ); -# endif - } - - return BufferView( *this, *reinterpret_cast( &view ), allocator ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::createBufferView" ); + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, BufferView( *this, *reinterpret_cast( &view ), allocator ) ); } // wrapper function for command vkCreateImage, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateImage.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE detail::CreateReturnType::Type - Device::createImage( ImageCreateInfo const & createInfo, Optional allocator ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType::type + Device::createImage( ImageCreateInfo const & createInfo, Optional allocator ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS { VULKAN_HPP_NAMESPACE::Image image; Result result = static_cast( getDispatcher()->vkCreateImage( static_cast( m_device ), reinterpret_cast( &createInfo ), reinterpret_cast( allocator.get() ), reinterpret_cast( &image ) ) ); - if ( result != Result::eSuccess ) - { -# if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) - return VULKAN_HPP_UNEXPECTED( result ); -# else - VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createImage" ); -# endif - } - - return Image( *this, *reinterpret_cast( &image ), allocator ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::createImage" ); + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, Image( *this, *reinterpret_cast( &image ), allocator ) ); } // wrapper function for command vkGetImageSubresourceLayout, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetImageSubresourceLayout.html @@ -15588,72 +15579,51 @@ namespace VULKAN_HPP_NAMESPACE } // wrapper function for command vkCreateImageView, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateImageView.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE detail::CreateReturnType::Type - Device::createImageView( ImageViewCreateInfo const & createInfo, Optional allocator ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType::type + Device::createImageView( ImageViewCreateInfo const & createInfo, + Optional allocator ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS { VULKAN_HPP_NAMESPACE::ImageView view; Result result = static_cast( getDispatcher()->vkCreateImageView( static_cast( m_device ), reinterpret_cast( &createInfo ), reinterpret_cast( allocator.get() ), reinterpret_cast( &view ) ) ); - if ( result != Result::eSuccess ) - { -# if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) - return VULKAN_HPP_UNEXPECTED( result ); -# else - VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createImageView" ); -# endif - } - - return ImageView( *this, *reinterpret_cast( &view ), allocator ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::createImageView" ); + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, ImageView( *this, *reinterpret_cast( &view ), allocator ) ); } // wrapper function for command vkCreateShaderModule, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateShaderModule.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE detail::CreateReturnType::Type - Device::createShaderModule( ShaderModuleCreateInfo const & createInfo, - Optional allocator ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType::type + Device::createShaderModule( ShaderModuleCreateInfo const & createInfo, + Optional allocator ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS { VULKAN_HPP_NAMESPACE::ShaderModule shaderModule; Result result = static_cast( getDispatcher()->vkCreateShaderModule( static_cast( m_device ), reinterpret_cast( &createInfo ), reinterpret_cast( allocator.get() ), reinterpret_cast( &shaderModule ) ) ); - if ( result != Result::eSuccess ) - { -# if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) - return VULKAN_HPP_UNEXPECTED( result ); -# else - VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createShaderModule" ); -# endif - } - - return ShaderModule( *this, *reinterpret_cast( &shaderModule ), allocator ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::createShaderModule" ); + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, + ShaderModule( *this, *reinterpret_cast( &shaderModule ), allocator ) ); } // wrapper function for command vkCreatePipelineCache, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreatePipelineCache.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE detail::CreateReturnType::Type - Device::createPipelineCache( PipelineCacheCreateInfo const & createInfo, - Optional allocator ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType::type + Device::createPipelineCache( PipelineCacheCreateInfo const & createInfo, + Optional allocator ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS { VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache; Result result = static_cast( getDispatcher()->vkCreatePipelineCache( static_cast( m_device ), reinterpret_cast( &createInfo ), reinterpret_cast( allocator.get() ), reinterpret_cast( &pipelineCache ) ) ); - if ( result != Result::eSuccess ) - { -# if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) - return VULKAN_HPP_UNEXPECTED( result ); -# else - VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createPipelineCache" ); -# endif - } - - return PipelineCache( *this, *reinterpret_cast( &pipelineCache ), allocator ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::createPipelineCache" ); + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, + PipelineCache( *this, *reinterpret_cast( &pipelineCache ), allocator ) ); } // wrapper function for command vkGetPipelineCacheData, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPipelineCacheData.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector PipelineCache::getData() const + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type PipelineCache::getData() const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetPipelineCacheData && "Function requires " ); @@ -15671,17 +15641,17 @@ namespace VULKAN_HPP_NAMESPACE static_cast( m_device ), static_cast( m_pipelineCache ), &dataSize, reinterpret_cast( data.data() ) ) ); } } while ( result == Result::eIncomplete ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PipelineCache::getData" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::PipelineCache::getData" ); VULKAN_HPP_ASSERT( dataSize <= data.size() ); if ( dataSize < data.size() ) { data.resize( dataSize ); } - return data; + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( data ) ); } // wrapper function for command vkMergePipelineCaches, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkMergePipelineCaches.html - VULKAN_HPP_INLINE void PipelineCache::merge( ArrayProxy const & srcCaches ) const + VULKAN_HPP_INLINE typename ResultValueType::type PipelineCache::merge( ArrayProxy const & srcCaches ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkMergePipelineCaches && "Function requires " ); @@ -15689,12 +15659,14 @@ namespace VULKAN_HPP_NAMESPACE static_cast( m_pipelineCache ), srcCaches.size(), reinterpret_cast( srcCaches.data() ) ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PipelineCache::merge" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::PipelineCache::merge" ); + + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result ); } // wrapper function for command vkCreateGraphicsPipelines, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateGraphicsPipelines.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE detail::CreateReturnType>::Type - Device::createGraphicsPipelines( Optional const & pipelineCache, + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type + Device::createGraphicsPipelines( Optional const & pipelineCache, ArrayProxy const & createInfos, Optional allocator ) const { @@ -15706,29 +15678,25 @@ namespace VULKAN_HPP_NAMESPACE reinterpret_cast( createInfos.data() ), reinterpret_cast( allocator.get() ), reinterpret_cast( pipelines.data() ) ) ); - if ( ( result != Result::eSuccess ) && ( result != Result::ePipelineCompileRequiredEXT ) ) - { -# if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) - return VULKAN_HPP_UNEXPECTED( result ); -# else - VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createGraphicsPipelines" ); -# endif - } - + VULKAN_HPP_NAMESPACE::detail::resultCheck( + result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::createGraphicsPipelines", { Result::eSuccess, Result::ePipelineCompileRequiredEXT } ); std::vector pipelinesRAII; - pipelinesRAII.reserve( pipelines.size() ); - for ( auto & pipeline : pipelines ) + if ( result == Result::eSuccess ) { - pipelinesRAII.emplace_back( *this, *reinterpret_cast( &pipeline ), allocator, result ); + pipelinesRAII.reserve( pipelines.size() ); + for ( auto & pipeline : pipelines ) + { + pipelinesRAII.emplace_back( *this, *reinterpret_cast( &pipeline ), allocator, result ); + } } - return pipelinesRAII; + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( pipelinesRAII ) ); } // wrapper function for command vkCreateGraphicsPipelines, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateGraphicsPipelines.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE detail::CreateReturnType::Type - Device::createGraphicsPipeline( Optional const & pipelineCache, + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType::type + Device::createGraphicsPipeline( Optional const & pipelineCache, GraphicsPipelineCreateInfo const & createInfo, - Optional allocator ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT + Optional allocator ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS { VULKAN_HPP_NAMESPACE::Pipeline pipeline; Result result = static_cast( getDispatcher()->vkCreateGraphicsPipelines( static_cast( m_device ), @@ -15737,21 +15705,14 @@ namespace VULKAN_HPP_NAMESPACE reinterpret_cast( &createInfo ), reinterpret_cast( allocator.get() ), reinterpret_cast( &pipeline ) ) ); - if ( ( result != Result::eSuccess ) && ( result != Result::ePipelineCompileRequiredEXT ) ) - { -# if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) - return VULKAN_HPP_UNEXPECTED( result ); -# else - VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createGraphicsPipeline" ); -# endif - } - - return Pipeline( *this, *reinterpret_cast( &pipeline ), allocator, result ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( + result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::createGraphicsPipeline", { Result::eSuccess, Result::ePipelineCompileRequiredEXT } ); + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, Pipeline( *this, *reinterpret_cast( &pipeline ), allocator, result ) ); } // wrapper function for command vkCreateComputePipelines, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateComputePipelines.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE detail::CreateReturnType>::Type - Device::createComputePipelines( Optional const & pipelineCache, + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type + Device::createComputePipelines( Optional const & pipelineCache, ArrayProxy const & createInfos, Optional allocator ) const { @@ -15763,29 +15724,25 @@ namespace VULKAN_HPP_NAMESPACE reinterpret_cast( createInfos.data() ), reinterpret_cast( allocator.get() ), reinterpret_cast( pipelines.data() ) ) ); - if ( ( result != Result::eSuccess ) && ( result != Result::ePipelineCompileRequiredEXT ) ) - { -# if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) - return VULKAN_HPP_UNEXPECTED( result ); -# else - VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createComputePipelines" ); -# endif - } - + VULKAN_HPP_NAMESPACE::detail::resultCheck( + result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::createComputePipelines", { Result::eSuccess, Result::ePipelineCompileRequiredEXT } ); std::vector pipelinesRAII; - pipelinesRAII.reserve( pipelines.size() ); - for ( auto & pipeline : pipelines ) + if ( result == Result::eSuccess ) { - pipelinesRAII.emplace_back( *this, *reinterpret_cast( &pipeline ), allocator, result ); + pipelinesRAII.reserve( pipelines.size() ); + for ( auto & pipeline : pipelines ) + { + pipelinesRAII.emplace_back( *this, *reinterpret_cast( &pipeline ), allocator, result ); + } } - return pipelinesRAII; + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( pipelinesRAII ) ); } // wrapper function for command vkCreateComputePipelines, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateComputePipelines.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE detail::CreateReturnType::Type - Device::createComputePipeline( Optional const & pipelineCache, + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType::type + Device::createComputePipeline( Optional const & pipelineCache, ComputePipelineCreateInfo const & createInfo, - Optional allocator ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT + Optional allocator ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS { VULKAN_HPP_NAMESPACE::Pipeline pipeline; Result result = static_cast( getDispatcher()->vkCreateComputePipelines( static_cast( m_device ), @@ -15794,65 +15751,43 @@ namespace VULKAN_HPP_NAMESPACE reinterpret_cast( &createInfo ), reinterpret_cast( allocator.get() ), reinterpret_cast( &pipeline ) ) ); - if ( ( result != Result::eSuccess ) && ( result != Result::ePipelineCompileRequiredEXT ) ) - { -# if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) - return VULKAN_HPP_UNEXPECTED( result ); -# else - VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createComputePipeline" ); -# endif - } - - return Pipeline( *this, *reinterpret_cast( &pipeline ), allocator, result ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( + result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::createComputePipeline", { Result::eSuccess, Result::ePipelineCompileRequiredEXT } ); + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, Pipeline( *this, *reinterpret_cast( &pipeline ), allocator, result ) ); } // wrapper function for command vkCreatePipelineLayout, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreatePipelineLayout.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE detail::CreateReturnType::Type - Device::createPipelineLayout( PipelineLayoutCreateInfo const & createInfo, - Optional allocator ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType::type + Device::createPipelineLayout( PipelineLayoutCreateInfo const & createInfo, + Optional allocator ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS { VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout; Result result = static_cast( getDispatcher()->vkCreatePipelineLayout( static_cast( m_device ), reinterpret_cast( &createInfo ), reinterpret_cast( allocator.get() ), reinterpret_cast( &pipelineLayout ) ) ); - if ( result != Result::eSuccess ) - { -# if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) - return VULKAN_HPP_UNEXPECTED( result ); -# else - VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createPipelineLayout" ); -# endif - } - - return PipelineLayout( *this, *reinterpret_cast( &pipelineLayout ), allocator ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::createPipelineLayout" ); + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( + result, PipelineLayout( *this, *reinterpret_cast( &pipelineLayout ), allocator ) ); } // wrapper function for command vkCreateSampler, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateSampler.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE detail::CreateReturnType::Type - Device::createSampler( SamplerCreateInfo const & createInfo, Optional allocator ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType::type + Device::createSampler( SamplerCreateInfo const & createInfo, Optional allocator ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS { VULKAN_HPP_NAMESPACE::Sampler sampler; Result result = static_cast( getDispatcher()->vkCreateSampler( static_cast( m_device ), reinterpret_cast( &createInfo ), reinterpret_cast( allocator.get() ), reinterpret_cast( &sampler ) ) ); - if ( result != Result::eSuccess ) - { -# if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) - return VULKAN_HPP_UNEXPECTED( result ); -# else - VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createSampler" ); -# endif - } - - return Sampler( *this, *reinterpret_cast( &sampler ), allocator ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::createSampler" ); + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, Sampler( *this, *reinterpret_cast( &sampler ), allocator ) ); } // wrapper function for command vkCreateDescriptorSetLayout, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateDescriptorSetLayout.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE detail::CreateReturnType::Type - Device::createDescriptorSetLayout( DescriptorSetLayoutCreateInfo const & createInfo, - Optional allocator ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType::type + Device::createDescriptorSetLayout( DescriptorSetLayoutCreateInfo const & createInfo, + Optional allocator ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS { VULKAN_HPP_NAMESPACE::DescriptorSetLayout setLayout; Result result = @@ -15860,75 +15795,58 @@ namespace VULKAN_HPP_NAMESPACE reinterpret_cast( &createInfo ), reinterpret_cast( allocator.get() ), reinterpret_cast( &setLayout ) ) ); - if ( result != Result::eSuccess ) - { -# if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) - return VULKAN_HPP_UNEXPECTED( result ); -# else - VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createDescriptorSetLayout" ); -# endif - } - - return DescriptorSetLayout( *this, *reinterpret_cast( &setLayout ), allocator ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::createDescriptorSetLayout" ); + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( + result, DescriptorSetLayout( *this, *reinterpret_cast( &setLayout ), allocator ) ); } // wrapper function for command vkCreateDescriptorPool, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateDescriptorPool.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE detail::CreateReturnType::Type - Device::createDescriptorPool( DescriptorPoolCreateInfo const & createInfo, - Optional allocator ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType::type + Device::createDescriptorPool( DescriptorPoolCreateInfo const & createInfo, + Optional allocator ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS { VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool; Result result = static_cast( getDispatcher()->vkCreateDescriptorPool( static_cast( m_device ), reinterpret_cast( &createInfo ), reinterpret_cast( allocator.get() ), reinterpret_cast( &descriptorPool ) ) ); - if ( result != Result::eSuccess ) - { -# if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) - return VULKAN_HPP_UNEXPECTED( result ); -# else - VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createDescriptorPool" ); -# endif - } - - return DescriptorPool( *this, *reinterpret_cast( &descriptorPool ), allocator ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::createDescriptorPool" ); + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( + result, DescriptorPool( *this, *reinterpret_cast( &descriptorPool ), allocator ) ); } // wrapper function for command vkResetDescriptorPool, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkResetDescriptorPool.html - VULKAN_HPP_INLINE void DescriptorPool::reset( DescriptorPoolResetFlags flags ) const + VULKAN_HPP_INLINE typename ResultValueType::type DescriptorPool::reset( DescriptorPoolResetFlags flags ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkResetDescriptorPool && "Function requires " ); Result result = static_cast( getDispatcher()->vkResetDescriptorPool( static_cast( m_device ), static_cast( m_descriptorPool ), static_cast( flags ) ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::DescriptorPool::reset" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::DescriptorPool::reset" ); + + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result ); } // wrapper function for command vkAllocateDescriptorSets, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkAllocateDescriptorSets.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE detail::CreateReturnType>::Type - Device::allocateDescriptorSets( DescriptorSetAllocateInfo const & allocateInfo ) const + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type + Device::allocateDescriptorSets( DescriptorSetAllocateInfo const & allocateInfo ) const { std::vector descriptorSets( allocateInfo.descriptorSetCount ); Result result = static_cast( getDispatcher()->vkAllocateDescriptorSets( static_cast( m_device ), reinterpret_cast( &allocateInfo ), reinterpret_cast( descriptorSets.data() ) ) ); - if ( result != Result::eSuccess ) - { -# if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) - return VULKAN_HPP_UNEXPECTED( result ); -# else - VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::allocateDescriptorSets" ); -# endif - } - + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::allocateDescriptorSets" ); std::vector descriptorSetsRAII; - descriptorSetsRAII.reserve( descriptorSets.size() ); - for ( auto & descriptorSet : descriptorSets ) + if ( result == Result::eSuccess ) { - descriptorSetsRAII.emplace_back( - *this, *reinterpret_cast( &descriptorSet ), static_cast( allocateInfo.descriptorPool ) ); + descriptorSetsRAII.reserve( descriptorSets.size() ); + for ( auto & descriptorSet : descriptorSets ) + { + descriptorSetsRAII.emplace_back( + *this, *reinterpret_cast( &descriptorSet ), static_cast( allocateInfo.descriptorPool ) ); + } } - return descriptorSetsRAII; + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( descriptorSetsRAII ) ); } // wrapper function for command vkUpdateDescriptorSets, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkUpdateDescriptorSets.html @@ -15945,45 +15863,31 @@ namespace VULKAN_HPP_NAMESPACE } // wrapper function for command vkCreateFramebuffer, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateFramebuffer.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE detail::CreateReturnType::Type - Device::createFramebuffer( FramebufferCreateInfo const & createInfo, Optional allocator ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType::type + Device::createFramebuffer( FramebufferCreateInfo const & createInfo, + Optional allocator ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS { VULKAN_HPP_NAMESPACE::Framebuffer framebuffer; Result result = static_cast( getDispatcher()->vkCreateFramebuffer( static_cast( m_device ), reinterpret_cast( &createInfo ), reinterpret_cast( allocator.get() ), reinterpret_cast( &framebuffer ) ) ); - if ( result != Result::eSuccess ) - { -# if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) - return VULKAN_HPP_UNEXPECTED( result ); -# else - VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createFramebuffer" ); -# endif - } - - return Framebuffer( *this, *reinterpret_cast( &framebuffer ), allocator ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::createFramebuffer" ); + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, Framebuffer( *this, *reinterpret_cast( &framebuffer ), allocator ) ); } // wrapper function for command vkCreateRenderPass, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateRenderPass.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE detail::CreateReturnType::Type - Device::createRenderPass( RenderPassCreateInfo const & createInfo, Optional allocator ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType::type + Device::createRenderPass( RenderPassCreateInfo const & createInfo, + Optional allocator ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS { VULKAN_HPP_NAMESPACE::RenderPass renderPass; Result result = static_cast( getDispatcher()->vkCreateRenderPass( static_cast( m_device ), reinterpret_cast( &createInfo ), reinterpret_cast( allocator.get() ), reinterpret_cast( &renderPass ) ) ); - if ( result != Result::eSuccess ) - { -# if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) - return VULKAN_HPP_UNEXPECTED( result ); -# else - VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createRenderPass" ); -# endif - } - - return RenderPass( *this, *reinterpret_cast( &renderPass ), allocator ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::createRenderPass" ); + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, RenderPass( *this, *reinterpret_cast( &renderPass ), allocator ) ); } // wrapper function for command vkGetRenderAreaGranularity, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetRenderAreaGranularity.html @@ -15999,90 +15903,86 @@ namespace VULKAN_HPP_NAMESPACE } // wrapper function for command vkCreateCommandPool, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateCommandPool.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE detail::CreateReturnType::Type - Device::createCommandPool( CommandPoolCreateInfo const & createInfo, Optional allocator ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType::type + Device::createCommandPool( CommandPoolCreateInfo const & createInfo, + Optional allocator ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS { VULKAN_HPP_NAMESPACE::CommandPool commandPool; Result result = static_cast( getDispatcher()->vkCreateCommandPool( static_cast( m_device ), reinterpret_cast( &createInfo ), reinterpret_cast( allocator.get() ), reinterpret_cast( &commandPool ) ) ); - if ( result != Result::eSuccess ) - { -# if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) - return VULKAN_HPP_UNEXPECTED( result ); -# else - VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createCommandPool" ); -# endif - } - - return CommandPool( *this, *reinterpret_cast( &commandPool ), allocator ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::createCommandPool" ); + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, CommandPool( *this, *reinterpret_cast( &commandPool ), allocator ) ); } // wrapper function for command vkResetCommandPool, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkResetCommandPool.html - VULKAN_HPP_INLINE void CommandPool::reset( CommandPoolResetFlags flags ) const + VULKAN_HPP_INLINE typename ResultValueType::type CommandPool::reset( CommandPoolResetFlags flags ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkResetCommandPool && "Function requires " ); Result result = static_cast( getDispatcher()->vkResetCommandPool( static_cast( m_device ), static_cast( m_commandPool ), static_cast( flags ) ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::CommandPool::reset" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::CommandPool::reset" ); + + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result ); } // wrapper function for command vkAllocateCommandBuffers, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkAllocateCommandBuffers.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE detail::CreateReturnType>::Type - Device::allocateCommandBuffers( CommandBufferAllocateInfo const & allocateInfo ) const + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type + Device::allocateCommandBuffers( CommandBufferAllocateInfo const & allocateInfo ) const { std::vector commandBuffers( allocateInfo.commandBufferCount ); Result result = static_cast( getDispatcher()->vkAllocateCommandBuffers( static_cast( m_device ), reinterpret_cast( &allocateInfo ), reinterpret_cast( commandBuffers.data() ) ) ); - if ( result != Result::eSuccess ) - { -# if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) - return VULKAN_HPP_UNEXPECTED( result ); -# else - VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::allocateCommandBuffers" ); -# endif - } - + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::allocateCommandBuffers" ); std::vector commandBuffersRAII; - commandBuffersRAII.reserve( commandBuffers.size() ); - for ( auto & commandBuffer : commandBuffers ) + if ( result == Result::eSuccess ) { - commandBuffersRAII.emplace_back( - *this, *reinterpret_cast( &commandBuffer ), static_cast( allocateInfo.commandPool ) ); + commandBuffersRAII.reserve( commandBuffers.size() ); + for ( auto & commandBuffer : commandBuffers ) + { + commandBuffersRAII.emplace_back( + *this, *reinterpret_cast( &commandBuffer ), static_cast( allocateInfo.commandPool ) ); + } } - return commandBuffersRAII; + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( commandBuffersRAII ) ); } // wrapper function for command vkBeginCommandBuffer, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkBeginCommandBuffer.html - VULKAN_HPP_INLINE void CommandBuffer::begin( const CommandBufferBeginInfo & beginInfo ) const + VULKAN_HPP_INLINE typename ResultValueType::type CommandBuffer::begin( const CommandBufferBeginInfo & beginInfo ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkBeginCommandBuffer && "Function requires " ); Result result = static_cast( getDispatcher()->vkBeginCommandBuffer( static_cast( m_commandBuffer ), reinterpret_cast( &beginInfo ) ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::begin" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::CommandBuffer::begin" ); + + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result ); } // wrapper function for command vkEndCommandBuffer, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkEndCommandBuffer.html - VULKAN_HPP_INLINE void CommandBuffer::end() const + VULKAN_HPP_INLINE typename ResultValueType::type CommandBuffer::end() const { VULKAN_HPP_ASSERT( getDispatcher()->vkEndCommandBuffer && "Function requires " ); Result result = static_cast( getDispatcher()->vkEndCommandBuffer( static_cast( m_commandBuffer ) ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::end" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::CommandBuffer::end" ); + + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result ); } // wrapper function for command vkResetCommandBuffer, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkResetCommandBuffer.html - VULKAN_HPP_INLINE void CommandBuffer::reset( CommandBufferResetFlags flags ) const + VULKAN_HPP_INLINE typename ResultValueType::type CommandBuffer::reset( CommandBufferResetFlags flags ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkResetCommandBuffer && "Function requires " ); Result result = static_cast( getDispatcher()->vkResetCommandBuffer( static_cast( m_commandBuffer ), static_cast( flags ) ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::reset" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::CommandBuffer::reset" ); + + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result ); } // wrapper function for command vkCmdBindPipeline, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdBindPipeline.html @@ -16631,35 +16531,39 @@ namespace VULKAN_HPP_NAMESPACE //=== VK_VERSION_1_1 === // wrapper function for command vkEnumerateInstanceVersion, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkEnumerateInstanceVersion.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE uint32_t Context::enumerateInstanceVersion() const + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType::type Context::enumerateInstanceVersion() const { VULKAN_HPP_ASSERT( getDispatcher()->vkEnumerateInstanceVersion && "Function requires " ); uint32_t apiVersion; Result result = static_cast( getDispatcher()->vkEnumerateInstanceVersion( &apiVersion ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Context::enumerateInstanceVersion" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Context::enumerateInstanceVersion" ); - return apiVersion; + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( apiVersion ) ); } // wrapper function for command vkBindBufferMemory2, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkBindBufferMemory2.html - VULKAN_HPP_INLINE void Device::bindBufferMemory2( ArrayProxy const & bindInfos ) const + VULKAN_HPP_INLINE typename ResultValueType::type Device::bindBufferMemory2( ArrayProxy const & bindInfos ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkBindBufferMemory2 && "Function requires or " ); Result result = static_cast( getDispatcher()->vkBindBufferMemory2( static_cast( m_device ), bindInfos.size(), reinterpret_cast( bindInfos.data() ) ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::bindBufferMemory2" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::bindBufferMemory2" ); + + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result ); } // wrapper function for command vkBindImageMemory2, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkBindImageMemory2.html - VULKAN_HPP_INLINE void Device::bindImageMemory2( ArrayProxy const & bindInfos ) const + VULKAN_HPP_INLINE typename ResultValueType::type Device::bindImageMemory2( ArrayProxy const & bindInfos ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkBindImageMemory2 && "Function requires or " ); Result result = static_cast( getDispatcher()->vkBindImageMemory2( static_cast( m_device ), bindInfos.size(), reinterpret_cast( bindInfos.data() ) ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::bindImageMemory2" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::bindImageMemory2" ); + + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result ); } // wrapper function for command vkGetDeviceGroupPeerMemoryFeatures, see @@ -16705,7 +16609,8 @@ namespace VULKAN_HPP_NAMESPACE // wrapper function for command vkEnumeratePhysicalDeviceGroups, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkEnumeratePhysicalDeviceGroups.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector Instance::enumeratePhysicalDeviceGroups() const + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type + Instance::enumeratePhysicalDeviceGroups() const { VULKAN_HPP_ASSERT( getDispatcher()->vkEnumeratePhysicalDeviceGroups && "Function requires or " ); @@ -16726,13 +16631,13 @@ namespace VULKAN_HPP_NAMESPACE reinterpret_cast( physicalDeviceGroupProperties.data() ) ) ); } } while ( result == Result::eIncomplete ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Instance::enumeratePhysicalDeviceGroups" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Instance::enumeratePhysicalDeviceGroups" ); VULKAN_HPP_ASSERT( physicalDeviceGroupCount <= physicalDeviceGroupProperties.size() ); if ( physicalDeviceGroupCount < physicalDeviceGroupProperties.size() ) { physicalDeviceGroupProperties.resize( physicalDeviceGroupCount ); } - return physicalDeviceGroupProperties; + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( physicalDeviceGroupProperties ) ); } // wrapper function for command vkGetImageMemoryRequirements2, see @@ -16921,8 +16826,8 @@ namespace VULKAN_HPP_NAMESPACE // wrapper function for command vkGetPhysicalDeviceImageFormatProperties2, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceImageFormatProperties2.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ImageFormatProperties2 - PhysicalDevice::getImageFormatProperties2( const PhysicalDeviceImageFormatInfo2 & imageFormatInfo ) const + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType::type + PhysicalDevice::getImageFormatProperties2( const PhysicalDeviceImageFormatInfo2 & imageFormatInfo ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceImageFormatProperties2 && "Function requires or " ); @@ -16932,16 +16837,16 @@ namespace VULKAN_HPP_NAMESPACE getDispatcher()->vkGetPhysicalDeviceImageFormatProperties2( static_cast( m_physicalDevice ), reinterpret_cast( &imageFormatInfo ), reinterpret_cast( &imageFormatProperties ) ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getImageFormatProperties2" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::PhysicalDevice::getImageFormatProperties2" ); - return imageFormatProperties; + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( imageFormatProperties ) ); } // wrapper function for command vkGetPhysicalDeviceImageFormatProperties2, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceImageFormatProperties2.html template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain - PhysicalDevice::getImageFormatProperties2( const PhysicalDeviceImageFormatInfo2 & imageFormatInfo ) const + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type + PhysicalDevice::getImageFormatProperties2( const PhysicalDeviceImageFormatInfo2 & imageFormatInfo ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceImageFormatProperties2 && "Function requires or " ); @@ -16952,9 +16857,9 @@ namespace VULKAN_HPP_NAMESPACE getDispatcher()->vkGetPhysicalDeviceImageFormatProperties2( static_cast( m_physicalDevice ), reinterpret_cast( &imageFormatInfo ), reinterpret_cast( &imageFormatProperties ) ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getImageFormatProperties2" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::PhysicalDevice::getImageFormatProperties2" ); - return structureChain; + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( structureChain ) ); } // wrapper function for command vkGetPhysicalDeviceQueueFamilyProperties2, see @@ -17082,8 +16987,7 @@ namespace VULKAN_HPP_NAMESPACE } // wrapper function for command vkGetDeviceQueue2, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDeviceQueue2.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE detail::CreateReturnType::Type - Device::getQueue2( DeviceQueueInfo2 const & queueInfo ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Queue Device::getQueue2( DeviceQueueInfo2 const & queueInfo ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS { VULKAN_HPP_NAMESPACE::Queue queue; getDispatcher()->vkGetDeviceQueue2( @@ -17094,9 +16998,9 @@ namespace VULKAN_HPP_NAMESPACE // wrapper function for command vkCreateSamplerYcbcrConversion, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateSamplerYcbcrConversion.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE detail::CreateReturnType::Type - Device::createSamplerYcbcrConversion( SamplerYcbcrConversionCreateInfo const & createInfo, - Optional allocator ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType::type + Device::createSamplerYcbcrConversion( SamplerYcbcrConversionCreateInfo const & createInfo, + Optional allocator ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS { VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion; Result result = @@ -17104,23 +17008,16 @@ namespace VULKAN_HPP_NAMESPACE reinterpret_cast( &createInfo ), reinterpret_cast( allocator.get() ), reinterpret_cast( &ycbcrConversion ) ) ); - if ( result != Result::eSuccess ) - { -# if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) - return VULKAN_HPP_UNEXPECTED( result ); -# else - VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createSamplerYcbcrConversion" ); -# endif - } - - return SamplerYcbcrConversion( *this, *reinterpret_cast( &ycbcrConversion ), allocator ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::createSamplerYcbcrConversion" ); + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( + result, SamplerYcbcrConversion( *this, *reinterpret_cast( &ycbcrConversion ), allocator ) ); } // wrapper function for command vkCreateDescriptorUpdateTemplate, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateDescriptorUpdateTemplate.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE detail::CreateReturnType::Type - Device::createDescriptorUpdateTemplate( DescriptorUpdateTemplateCreateInfo const & createInfo, - Optional allocator ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType::type + Device::createDescriptorUpdateTemplate( DescriptorUpdateTemplateCreateInfo const & createInfo, + Optional allocator ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS { VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate; Result result = @@ -17128,16 +17025,9 @@ namespace VULKAN_HPP_NAMESPACE reinterpret_cast( &createInfo ), reinterpret_cast( allocator.get() ), reinterpret_cast( &descriptorUpdateTemplate ) ) ); - if ( result != Result::eSuccess ) - { -# if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) - return VULKAN_HPP_UNEXPECTED( result ); -# else - VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createDescriptorUpdateTemplate" ); -# endif - } - - return DescriptorUpdateTemplate( *this, *reinterpret_cast( &descriptorUpdateTemplate ), allocator ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::createDescriptorUpdateTemplate" ); + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( + result, DescriptorUpdateTemplate( *this, *reinterpret_cast( &descriptorUpdateTemplate ), allocator ) ); } // wrapper function for command vkUpdateDescriptorSetWithTemplate, see @@ -17282,24 +17172,17 @@ namespace VULKAN_HPP_NAMESPACE } // wrapper function for command vkCreateRenderPass2, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateRenderPass2.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE detail::CreateReturnType::Type - Device::createRenderPass2( RenderPassCreateInfo2 const & createInfo, Optional allocator ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType::type + Device::createRenderPass2( RenderPassCreateInfo2 const & createInfo, + Optional allocator ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS { VULKAN_HPP_NAMESPACE::RenderPass renderPass; Result result = static_cast( getDispatcher()->vkCreateRenderPass2( static_cast( m_device ), reinterpret_cast( &createInfo ), reinterpret_cast( allocator.get() ), reinterpret_cast( &renderPass ) ) ); - if ( result != Result::eSuccess ) - { -# if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) - return VULKAN_HPP_UNEXPECTED( result ); -# else - VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createRenderPass2" ); -# endif - } - - return RenderPass( *this, *reinterpret_cast( &renderPass ), allocator ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::createRenderPass2" ); + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, RenderPass( *this, *reinterpret_cast( &renderPass ), allocator ) ); } // wrapper function for command vkCmdBeginRenderPass2, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdBeginRenderPass2.html @@ -17342,7 +17225,7 @@ namespace VULKAN_HPP_NAMESPACE } // wrapper function for command vkGetSemaphoreCounterValue, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetSemaphoreCounterValue.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE uint64_t Semaphore::getCounterValue() const + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType::type Semaphore::getCounterValue() const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetSemaphoreCounterValue && "Function requires or " ); @@ -17350,9 +17233,9 @@ namespace VULKAN_HPP_NAMESPACE uint64_t value; Result result = static_cast( getDispatcher()->vkGetSemaphoreCounterValue( static_cast( m_device ), static_cast( m_semaphore ), &value ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Semaphore::getCounterValue" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Semaphore::getCounterValue" ); - return value; + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( value ) ); } // wrapper function for command vkWaitSemaphores, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkWaitSemaphores.html @@ -17362,19 +17245,21 @@ namespace VULKAN_HPP_NAMESPACE Result result = static_cast( getDispatcher()->vkWaitSemaphores( static_cast( m_device ), reinterpret_cast( &waitInfo ), timeout ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::waitSemaphores", { Result::eSuccess, Result::eTimeout } ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::waitSemaphores", { Result::eSuccess, Result::eTimeout } ); return static_cast( result ); } // wrapper function for command vkSignalSemaphore, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkSignalSemaphore.html - VULKAN_HPP_INLINE void Device::signalSemaphore( const SemaphoreSignalInfo & signalInfo ) const + VULKAN_HPP_INLINE typename ResultValueType::type Device::signalSemaphore( const SemaphoreSignalInfo & signalInfo ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkSignalSemaphore && "Function requires or " ); Result result = static_cast( getDispatcher()->vkSignalSemaphore( static_cast( m_device ), reinterpret_cast( &signalInfo ) ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::signalSemaphore" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::signalSemaphore" ); + + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result ); } // wrapper function for command vkGetBufferDeviceAddress, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetBufferDeviceAddress.html @@ -17420,7 +17305,7 @@ namespace VULKAN_HPP_NAMESPACE // wrapper function for command vkGetPhysicalDeviceToolProperties, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceToolProperties.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector PhysicalDevice::getToolProperties() const + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type PhysicalDevice::getToolProperties() const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceToolProperties && "Function requires or " ); @@ -17439,46 +17324,41 @@ namespace VULKAN_HPP_NAMESPACE static_cast( m_physicalDevice ), &toolCount, reinterpret_cast( toolProperties.data() ) ) ); } } while ( result == Result::eIncomplete ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getToolProperties" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::PhysicalDevice::getToolProperties" ); VULKAN_HPP_ASSERT( toolCount <= toolProperties.size() ); if ( toolCount < toolProperties.size() ) { toolProperties.resize( toolCount ); } - return toolProperties; + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( toolProperties ) ); } // wrapper function for command vkCreatePrivateDataSlot, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreatePrivateDataSlot.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE detail::CreateReturnType::Type - Device::createPrivateDataSlot( PrivateDataSlotCreateInfo const & createInfo, - Optional allocator ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType::type + Device::createPrivateDataSlot( PrivateDataSlotCreateInfo const & createInfo, + Optional allocator ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS { VULKAN_HPP_NAMESPACE::PrivateDataSlot privateDataSlot; Result result = static_cast( getDispatcher()->vkCreatePrivateDataSlot( static_cast( m_device ), reinterpret_cast( &createInfo ), reinterpret_cast( allocator.get() ), reinterpret_cast( &privateDataSlot ) ) ); - if ( result != Result::eSuccess ) - { -# if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) - return VULKAN_HPP_UNEXPECTED( result ); -# else - VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createPrivateDataSlot" ); -# endif - } - - return PrivateDataSlot( *this, *reinterpret_cast( &privateDataSlot ), allocator ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::createPrivateDataSlot" ); + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( + result, PrivateDataSlot( *this, *reinterpret_cast( &privateDataSlot ), allocator ) ); } // wrapper function for command vkSetPrivateData, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkSetPrivateData.html - VULKAN_HPP_INLINE void + VULKAN_HPP_INLINE typename ResultValueType::type Device::setPrivateData( ObjectType objectType_, uint64_t objectHandle, VULKAN_HPP_NAMESPACE::PrivateDataSlot privateDataSlot, uint64_t data ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkSetPrivateData && "Function requires or " ); Result result = static_cast( getDispatcher()->vkSetPrivateData( static_cast( m_device ), static_cast( objectType_ ), objectHandle, static_cast( privateDataSlot ), data ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::setPrivateData" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::setPrivateData" ); + + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result ); } // wrapper function for command vkGetPrivateData, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPrivateData.html @@ -17552,13 +17432,16 @@ namespace VULKAN_HPP_NAMESPACE } // wrapper function for command vkQueueSubmit2, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkQueueSubmit2.html - VULKAN_HPP_INLINE void Queue::submit2( ArrayProxy const & submits, VULKAN_HPP_NAMESPACE::Fence fence ) const + VULKAN_HPP_INLINE typename ResultValueType::type Queue::submit2( ArrayProxy const & submits, + VULKAN_HPP_NAMESPACE::Fence fence ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkQueueSubmit2 && "Function requires or " ); Result result = static_cast( getDispatcher()->vkQueueSubmit2( static_cast( m_queue ), submits.size(), reinterpret_cast( submits.data() ), static_cast( fence ) ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Queue::submit2" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Queue::submit2" ); + + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result ); } // wrapper function for command vkCmdCopyBuffer2, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdCopyBuffer2.html @@ -17910,26 +17793,28 @@ namespace VULKAN_HPP_NAMESPACE } // wrapper function for command vkMapMemory2, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkMapMemory2.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE void * Device::mapMemory2( const MemoryMapInfo & memoryMapInfo ) const + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType::type Device::mapMemory2( const MemoryMapInfo & memoryMapInfo ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkMapMemory2 && "Function requires or " ); void * pData; Result result = static_cast( getDispatcher()->vkMapMemory2( static_cast( m_device ), reinterpret_cast( &memoryMapInfo ), &pData ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::mapMemory2" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::mapMemory2" ); - return pData; + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( pData ) ); } // wrapper function for command vkUnmapMemory2, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkUnmapMemory2.html - VULKAN_HPP_INLINE void Device::unmapMemory2( const MemoryUnmapInfo & memoryUnmapInfo ) const + VULKAN_HPP_INLINE typename ResultValueType::type Device::unmapMemory2( const MemoryUnmapInfo & memoryUnmapInfo ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkUnmapMemory2 && "Function requires or " ); Result result = static_cast( getDispatcher()->vkUnmapMemory2( static_cast( m_device ), reinterpret_cast( &memoryUnmapInfo ) ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::unmapMemory2" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::unmapMemory2" ); + + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result ); } // wrapper function for command vkCmdBindIndexBuffer2, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdBindIndexBuffer2.html @@ -18130,52 +18015,61 @@ namespace VULKAN_HPP_NAMESPACE } // wrapper function for command vkCopyMemoryToImage, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCopyMemoryToImage.html - VULKAN_HPP_INLINE void Device::copyMemoryToImage( const CopyMemoryToImageInfo & copyMemoryToImageInfo ) const + VULKAN_HPP_INLINE typename ResultValueType::type Device::copyMemoryToImage( const CopyMemoryToImageInfo & copyMemoryToImageInfo ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkCopyMemoryToImage && "Function requires or " ); Result result = static_cast( getDispatcher()->vkCopyMemoryToImage( static_cast( m_device ), reinterpret_cast( ©MemoryToImageInfo ) ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::copyMemoryToImage" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::copyMemoryToImage" ); + + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result ); } // wrapper function for command vkCopyImageToMemory, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCopyImageToMemory.html - VULKAN_HPP_INLINE void Device::copyImageToMemory( const CopyImageToMemoryInfo & copyImageToMemoryInfo ) const + VULKAN_HPP_INLINE typename ResultValueType::type Device::copyImageToMemory( const CopyImageToMemoryInfo & copyImageToMemoryInfo ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkCopyImageToMemory && "Function requires or " ); Result result = static_cast( getDispatcher()->vkCopyImageToMemory( static_cast( m_device ), reinterpret_cast( ©ImageToMemoryInfo ) ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::copyImageToMemory" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::copyImageToMemory" ); + + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result ); } // wrapper function for command vkCopyImageToImage, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCopyImageToImage.html - VULKAN_HPP_INLINE void Device::copyImageToImage( const CopyImageToImageInfo & copyImageToImageInfo ) const + VULKAN_HPP_INLINE typename ResultValueType::type Device::copyImageToImage( const CopyImageToImageInfo & copyImageToImageInfo ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkCopyImageToImage && "Function requires or " ); Result result = static_cast( getDispatcher()->vkCopyImageToImage( static_cast( m_device ), reinterpret_cast( ©ImageToImageInfo ) ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::copyImageToImage" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::copyImageToImage" ); + + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result ); } // wrapper function for command vkTransitionImageLayout, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkTransitionImageLayout.html - VULKAN_HPP_INLINE void Device::transitionImageLayout( ArrayProxy const & transitions ) const + VULKAN_HPP_INLINE typename ResultValueType::type + Device::transitionImageLayout( ArrayProxy const & transitions ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkTransitionImageLayout && "Function requires or " ); Result result = static_cast( getDispatcher()->vkTransitionImageLayout( static_cast( m_device ), transitions.size(), reinterpret_cast( transitions.data() ) ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::transitionImageLayout" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::transitionImageLayout" ); + + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result ); } //=== VK_KHR_surface === // wrapper function for command vkGetPhysicalDeviceSurfaceSupportKHR, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceSurfaceSupportKHR.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Bool32 PhysicalDevice::getSurfaceSupportKHR( uint32_t queueFamilyIndex, - VULKAN_HPP_NAMESPACE::SurfaceKHR surface ) const + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType::type + PhysicalDevice::getSurfaceSupportKHR( uint32_t queueFamilyIndex, VULKAN_HPP_NAMESPACE::SurfaceKHR surface ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceSurfaceSupportKHR && "Function requires " ); @@ -18184,14 +18078,15 @@ namespace VULKAN_HPP_NAMESPACE queueFamilyIndex, static_cast( surface ), reinterpret_cast( &supported ) ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSurfaceSupportKHR" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::PhysicalDevice::getSurfaceSupportKHR" ); - return supported; + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( supported ) ); } // wrapper function for command vkGetPhysicalDeviceSurfaceCapabilitiesKHR, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceSurfaceCapabilitiesKHR.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE SurfaceCapabilitiesKHR PhysicalDevice::getSurfaceCapabilitiesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface ) const + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType::type + PhysicalDevice::getSurfaceCapabilitiesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceSurfaceCapabilitiesKHR && "Function requires " ); @@ -18201,14 +18096,15 @@ namespace VULKAN_HPP_NAMESPACE getDispatcher()->vkGetPhysicalDeviceSurfaceCapabilitiesKHR( static_cast( m_physicalDevice ), static_cast( surface ), reinterpret_cast( &surfaceCapabilities ) ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSurfaceCapabilitiesKHR" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::PhysicalDevice::getSurfaceCapabilitiesKHR" ); - return surfaceCapabilities; + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( surfaceCapabilities ) ); } // wrapper function for command vkGetPhysicalDeviceSurfaceFormatsKHR, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceSurfaceFormatsKHR.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector PhysicalDevice::getSurfaceFormatsKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface ) const + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type + PhysicalDevice::getSurfaceFormatsKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceSurfaceFormatsKHR && "Function requires " ); @@ -18229,19 +18125,19 @@ namespace VULKAN_HPP_NAMESPACE reinterpret_cast( surfaceFormats.data() ) ) ); } } while ( result == Result::eIncomplete ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSurfaceFormatsKHR" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::PhysicalDevice::getSurfaceFormatsKHR" ); VULKAN_HPP_ASSERT( surfaceFormatCount <= surfaceFormats.size() ); if ( surfaceFormatCount < surfaceFormats.size() ) { surfaceFormats.resize( surfaceFormatCount ); } - return surfaceFormats; + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( surfaceFormats ) ); } // wrapper function for command vkGetPhysicalDeviceSurfacePresentModesKHR, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceSurfacePresentModesKHR.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector - PhysicalDevice::getSurfacePresentModesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface ) const + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type + PhysicalDevice::getSurfacePresentModesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceSurfacePresentModesKHR && "Function requires " ); @@ -18263,41 +18159,33 @@ namespace VULKAN_HPP_NAMESPACE reinterpret_cast( presentModes.data() ) ) ); } } while ( result == Result::eIncomplete ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSurfacePresentModesKHR" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::PhysicalDevice::getSurfacePresentModesKHR" ); VULKAN_HPP_ASSERT( presentModeCount <= presentModes.size() ); if ( presentModeCount < presentModes.size() ) { presentModes.resize( presentModeCount ); } - return presentModes; + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( presentModes ) ); } //=== VK_KHR_swapchain === // wrapper function for command vkCreateSwapchainKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateSwapchainKHR.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE detail::CreateReturnType::Type - Device::createSwapchainKHR( SwapchainCreateInfoKHR const & createInfo, - Optional allocator ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType::type + Device::createSwapchainKHR( SwapchainCreateInfoKHR const & createInfo, + Optional allocator ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS { VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain; Result result = static_cast( getDispatcher()->vkCreateSwapchainKHR( static_cast( m_device ), reinterpret_cast( &createInfo ), reinterpret_cast( allocator.get() ), reinterpret_cast( &swapchain ) ) ); - if ( result != Result::eSuccess ) - { -# if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) - return VULKAN_HPP_UNEXPECTED( result ); -# else - VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createSwapchainKHR" ); -# endif - } - - return SwapchainKHR( *this, *reinterpret_cast( &swapchain ), allocator ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::createSwapchainKHR" ); + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, SwapchainKHR( *this, *reinterpret_cast( &swapchain ), allocator ) ); } // wrapper function for command vkGetSwapchainImagesKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetSwapchainImagesKHR.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector SwapchainKHR::getImages() const + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type SwapchainKHR::getImages() const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetSwapchainImagesKHR && "Function requires " ); @@ -18317,17 +18205,17 @@ namespace VULKAN_HPP_NAMESPACE reinterpret_cast( swapchainImages.data() ) ) ); } } while ( result == Result::eIncomplete ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::SwapchainKHR::getImages" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::SwapchainKHR::getImages" ); VULKAN_HPP_ASSERT( swapchainImageCount <= swapchainImages.size() ); if ( swapchainImageCount < swapchainImages.size() ) { swapchainImages.resize( swapchainImageCount ); } - return swapchainImages; + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( swapchainImages ) ); } // wrapper function for command vkAcquireNextImageKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkAcquireNextImageKHR.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::pair + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue SwapchainKHR::acquireNextImage( uint64_t timeout, VULKAN_HPP_NAMESPACE::Semaphore semaphore, VULKAN_HPP_NAMESPACE::Fence fence ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkAcquireNextImageKHR && "Function requires " ); @@ -18340,10 +18228,10 @@ namespace VULKAN_HPP_NAMESPACE static_cast( fence ), &imageIndex ) ); VULKAN_HPP_NAMESPACE::detail::resultCheck( result, - VULKAN_HPP_NAMESPACE_STRING "::SwapchainKHR::acquireNextImage", + VULKAN_HPP_RAII_NAMESPACE_STRING "::SwapchainKHR::acquireNextImage", { Result::eSuccess, Result::eTimeout, Result::eNotReady, Result::eSuboptimalKHR } ); - return std::make_pair( result, std::move( imageIndex ) ); + return ResultValue( result, std::move( imageIndex ) ); } // wrapper function for command vkQueuePresentKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkQueuePresentKHR.html @@ -18353,14 +18241,14 @@ namespace VULKAN_HPP_NAMESPACE Result result = static_cast( getDispatcher()->vkQueuePresentKHR( static_cast( m_queue ), reinterpret_cast( &presentInfo ) ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Queue::presentKHR", { Result::eSuccess, Result::eSuboptimalKHR } ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Queue::presentKHR", { Result::eSuccess, Result::eSuboptimalKHR } ); return static_cast( result ); } // wrapper function for command vkGetDeviceGroupPresentCapabilitiesKHR, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDeviceGroupPresentCapabilitiesKHR.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE DeviceGroupPresentCapabilitiesKHR Device::getGroupPresentCapabilitiesKHR() const + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType::type Device::getGroupPresentCapabilitiesKHR() const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetDeviceGroupPresentCapabilitiesKHR && "Function requires or " ); @@ -18368,15 +18256,15 @@ namespace VULKAN_HPP_NAMESPACE DeviceGroupPresentCapabilitiesKHR deviceGroupPresentCapabilities; Result result = static_cast( getDispatcher()->vkGetDeviceGroupPresentCapabilitiesKHR( static_cast( m_device ), reinterpret_cast( &deviceGroupPresentCapabilities ) ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getGroupPresentCapabilitiesKHR" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::getGroupPresentCapabilitiesKHR" ); - return deviceGroupPresentCapabilities; + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( deviceGroupPresentCapabilities ) ); } // wrapper function for command vkGetDeviceGroupSurfacePresentModesKHR, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDeviceGroupSurfacePresentModesKHR.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE DeviceGroupPresentModeFlagsKHR - Device::getGroupSurfacePresentModesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface ) const + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType::type + Device::getGroupSurfacePresentModesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetDeviceGroupSurfacePresentModesKHR && "Function requires or " ); @@ -18384,14 +18272,15 @@ namespace VULKAN_HPP_NAMESPACE DeviceGroupPresentModeFlagsKHR modes; Result result = static_cast( getDispatcher()->vkGetDeviceGroupSurfacePresentModesKHR( static_cast( m_device ), static_cast( surface ), reinterpret_cast( &modes ) ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getGroupSurfacePresentModesKHR" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::getGroupSurfacePresentModesKHR" ); - return modes; + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( modes ) ); } // wrapper function for command vkGetPhysicalDevicePresentRectanglesKHR, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDevicePresentRectanglesKHR.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector PhysicalDevice::getPresentRectanglesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface ) const + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type + PhysicalDevice::getPresentRectanglesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDevicePresentRectanglesKHR && "Function requires or " ); @@ -18412,17 +18301,17 @@ namespace VULKAN_HPP_NAMESPACE reinterpret_cast( rects.data() ) ) ); } } while ( result == Result::eIncomplete ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getPresentRectanglesKHR" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::PhysicalDevice::getPresentRectanglesKHR" ); VULKAN_HPP_ASSERT( rectCount <= rects.size() ); if ( rectCount < rects.size() ) { rects.resize( rectCount ); } - return rects; + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( rects ) ); } // wrapper function for command vkAcquireNextImage2KHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkAcquireNextImage2KHR.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::pair Device::acquireNextImage2KHR( const AcquireNextImageInfoKHR & acquireInfo ) const + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue Device::acquireNextImage2KHR( const AcquireNextImageInfoKHR & acquireInfo ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkAcquireNextImage2KHR && "Function requires or " ); @@ -18430,17 +18319,17 @@ namespace VULKAN_HPP_NAMESPACE Result result = static_cast( getDispatcher()->vkAcquireNextImage2KHR( static_cast( m_device ), reinterpret_cast( &acquireInfo ), &imageIndex ) ); VULKAN_HPP_NAMESPACE::detail::resultCheck( result, - VULKAN_HPP_NAMESPACE_STRING "::Device::acquireNextImage2KHR", + VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::acquireNextImage2KHR", { Result::eSuccess, Result::eTimeout, Result::eNotReady, Result::eSuboptimalKHR } ); - return std::make_pair( result, std::move( imageIndex ) ); + return ResultValue( result, std::move( imageIndex ) ); } //=== VK_KHR_display === // wrapper function for command vkGetPhysicalDeviceDisplayPropertiesKHR, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceDisplayPropertiesKHR.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector PhysicalDevice::getDisplayPropertiesKHR() const + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type PhysicalDevice::getDisplayPropertiesKHR() const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceDisplayPropertiesKHR && "Function requires " ); @@ -18459,18 +18348,19 @@ namespace VULKAN_HPP_NAMESPACE static_cast( m_physicalDevice ), &propertyCount, reinterpret_cast( properties.data() ) ) ); } } while ( result == Result::eIncomplete ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getDisplayPropertiesKHR" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::PhysicalDevice::getDisplayPropertiesKHR" ); VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); if ( propertyCount < properties.size() ) { properties.resize( propertyCount ); } - return properties; + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( properties ) ); } // wrapper function for command vkGetPhysicalDeviceDisplayPlanePropertiesKHR, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceDisplayPlanePropertiesKHR.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector PhysicalDevice::getDisplayPlanePropertiesKHR() const + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type + PhysicalDevice::getDisplayPlanePropertiesKHR() const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceDisplayPlanePropertiesKHR && "Function requires " ); @@ -18489,19 +18379,19 @@ namespace VULKAN_HPP_NAMESPACE static_cast( m_physicalDevice ), &propertyCount, reinterpret_cast( properties.data() ) ) ); } } while ( result == Result::eIncomplete ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getDisplayPlanePropertiesKHR" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::PhysicalDevice::getDisplayPlanePropertiesKHR" ); VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); if ( propertyCount < properties.size() ) { properties.resize( propertyCount ); } - return properties; + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( properties ) ); } // wrapper function for command vkGetDisplayPlaneSupportedDisplaysKHR, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDisplayPlaneSupportedDisplaysKHR.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE detail::CreateReturnType>::Type - PhysicalDevice::getDisplayPlaneSupportedDisplaysKHR( uint32_t planeIndex ) const + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type + PhysicalDevice::getDisplayPlaneSupportedDisplaysKHR( uint32_t planeIndex ) const { std::vector displays; uint32_t displayCount; @@ -18517,27 +18407,22 @@ namespace VULKAN_HPP_NAMESPACE static_cast( m_physicalDevice ), planeIndex, &displayCount, reinterpret_cast( displays.data() ) ) ); } } while ( result == Result::eIncomplete ); - if ( ( result != Result::eSuccess ) && ( result != Result::eIncomplete ) ) - { -# if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) - return VULKAN_HPP_UNEXPECTED( result ); -# else - VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "PhysicalDevice::getDisplayPlaneSupportedDisplaysKHR" ); -# endif - } - + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::PhysicalDevice::getDisplayPlaneSupportedDisplaysKHR" ); std::vector displaysRAII; - displaysRAII.reserve( displays.size() ); - for ( auto & display : displays ) + if ( result == Result::eSuccess ) { - displaysRAII.emplace_back( *this, *reinterpret_cast( &display ) ); + displaysRAII.reserve( displays.size() ); + for ( auto & display : displays ) + { + displaysRAII.emplace_back( *this, *reinterpret_cast( &display ) ); + } } - return displaysRAII; + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( displaysRAII ) ); } // wrapper function for command vkGetDisplayModePropertiesKHR, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDisplayModePropertiesKHR.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector DisplayKHR::getModeProperties() const + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type DisplayKHR::getModeProperties() const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetDisplayModePropertiesKHR && "Function requires " ); @@ -18557,18 +18442,19 @@ namespace VULKAN_HPP_NAMESPACE reinterpret_cast( properties.data() ) ) ); } } while ( result == Result::eIncomplete ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::DisplayKHR::getModeProperties" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::DisplayKHR::getModeProperties" ); VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); if ( propertyCount < properties.size() ) { properties.resize( propertyCount ); } - return properties; + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( properties ) ); } // wrapper function for command vkCreateDisplayModeKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateDisplayModeKHR.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE detail::CreateReturnType::Type - DisplayKHR::createMode( DisplayModeCreateInfoKHR const & createInfo, Optional allocator ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType::type + DisplayKHR::createMode( DisplayModeCreateInfoKHR const & createInfo, + Optional allocator ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS { VULKAN_HPP_NAMESPACE::DisplayModeKHR mode; Result result = static_cast( getDispatcher()->vkCreateDisplayModeKHR( static_cast( m_physicalDevice ), @@ -18576,21 +18462,14 @@ namespace VULKAN_HPP_NAMESPACE reinterpret_cast( &createInfo ), reinterpret_cast( allocator.get() ), reinterpret_cast( &mode ) ) ); - if ( result != Result::eSuccess ) - { -# if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) - return VULKAN_HPP_UNEXPECTED( result ); -# else - VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "DisplayKHR::createMode" ); -# endif - } - - return DisplayModeKHR( *this, *reinterpret_cast( &mode ) ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::DisplayKHR::createMode" ); + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, DisplayModeKHR( *this, *reinterpret_cast( &mode ) ) ); } // wrapper function for command vkGetDisplayPlaneCapabilitiesKHR, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDisplayPlaneCapabilitiesKHR.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE DisplayPlaneCapabilitiesKHR DisplayModeKHR::getDisplayPlaneCapabilities( uint32_t planeIndex ) const + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType::type + DisplayModeKHR::getDisplayPlaneCapabilities( uint32_t planeIndex ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetDisplayPlaneCapabilitiesKHR && "Function requires " ); @@ -18600,16 +18479,16 @@ namespace VULKAN_HPP_NAMESPACE static_cast( m_displayModeKHR ), planeIndex, reinterpret_cast( &capabilities ) ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::DisplayModeKHR::getDisplayPlaneCapabilities" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::DisplayModeKHR::getDisplayPlaneCapabilities" ); - return capabilities; + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( capabilities ) ); } // wrapper function for command vkCreateDisplayPlaneSurfaceKHR, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateDisplayPlaneSurfaceKHR.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE detail::CreateReturnType::Type - Instance::createDisplayPlaneSurfaceKHR( DisplaySurfaceCreateInfoKHR const & createInfo, - Optional allocator ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType::type + Instance::createDisplayPlaneSurfaceKHR( DisplaySurfaceCreateInfoKHR const & createInfo, + Optional allocator ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS { VULKAN_HPP_NAMESPACE::SurfaceKHR surface; Result result = @@ -18617,22 +18496,14 @@ namespace VULKAN_HPP_NAMESPACE reinterpret_cast( &createInfo ), reinterpret_cast( allocator.get() ), reinterpret_cast( &surface ) ) ); - if ( result != Result::eSuccess ) - { -# if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) - return VULKAN_HPP_UNEXPECTED( result ); -# else - VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Instance::createDisplayPlaneSurfaceKHR" ); -# endif - } - - return SurfaceKHR( *this, *reinterpret_cast( &surface ), allocator ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Instance::createDisplayPlaneSurfaceKHR" ); + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, SurfaceKHR( *this, *reinterpret_cast( &surface ), allocator ) ); } //=== VK_KHR_display_swapchain === // wrapper function for command vkCreateSharedSwapchainsKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateSharedSwapchainsKHR.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE detail::CreateReturnType>::Type + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type Device::createSharedSwapchainsKHR( ArrayProxy const & createInfos, Optional allocator ) const { std::vector swapchains( createInfos.size() ); @@ -18642,28 +18513,23 @@ namespace VULKAN_HPP_NAMESPACE reinterpret_cast( createInfos.data() ), reinterpret_cast( allocator.get() ), reinterpret_cast( swapchains.data() ) ) ); - if ( result != Result::eSuccess ) - { -# if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) - return VULKAN_HPP_UNEXPECTED( result ); -# else - VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createSharedSwapchainsKHR" ); -# endif - } - + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::createSharedSwapchainsKHR" ); std::vector swapchainsRAII; - swapchainsRAII.reserve( swapchains.size() ); - for ( auto & swapchain : swapchains ) + if ( result == Result::eSuccess ) { - swapchainsRAII.emplace_back( *this, *reinterpret_cast( &swapchain ), allocator ); + swapchainsRAII.reserve( swapchains.size() ); + for ( auto & swapchain : swapchains ) + { + swapchainsRAII.emplace_back( *this, *reinterpret_cast( &swapchain ), allocator ); + } } - return swapchainsRAII; + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( swapchainsRAII ) ); } // wrapper function for command vkCreateSharedSwapchainsKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateSharedSwapchainsKHR.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE detail::CreateReturnType::Type - Device::createSharedSwapchainKHR( SwapchainCreateInfoKHR const & createInfo, - Optional allocator ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType::type + Device::createSharedSwapchainKHR( SwapchainCreateInfoKHR const & createInfo, + Optional allocator ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS { VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain; Result result = static_cast( getDispatcher()->vkCreateSharedSwapchainsKHR( static_cast( m_device ), @@ -18671,41 +18537,25 @@ namespace VULKAN_HPP_NAMESPACE reinterpret_cast( &createInfo ), reinterpret_cast( allocator.get() ), reinterpret_cast( &swapchain ) ) ); - if ( result != Result::eSuccess ) - { -# if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) - return VULKAN_HPP_UNEXPECTED( result ); -# else - VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createSharedSwapchainKHR" ); -# endif - } - - return SwapchainKHR( *this, *reinterpret_cast( &swapchain ), allocator ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::createSharedSwapchainKHR" ); + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, SwapchainKHR( *this, *reinterpret_cast( &swapchain ), allocator ) ); } # if defined( VK_USE_PLATFORM_XLIB_KHR ) //=== VK_KHR_xlib_surface === // wrapper function for command vkCreateXlibSurfaceKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateXlibSurfaceKHR.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE detail::CreateReturnType::Type - Instance::createXlibSurfaceKHR( XlibSurfaceCreateInfoKHR const & createInfo, - Optional allocator ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType::type + Instance::createXlibSurfaceKHR( XlibSurfaceCreateInfoKHR const & createInfo, + Optional allocator ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS { VULKAN_HPP_NAMESPACE::SurfaceKHR surface; Result result = static_cast( getDispatcher()->vkCreateXlibSurfaceKHR( static_cast( m_instance ), reinterpret_cast( &createInfo ), reinterpret_cast( allocator.get() ), reinterpret_cast( &surface ) ) ); - if ( result != Result::eSuccess ) - { -# if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) - return VULKAN_HPP_UNEXPECTED( result ); -# else - VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Instance::createXlibSurfaceKHR" ); -# endif - } - - return SurfaceKHR( *this, *reinterpret_cast( &surface ), allocator ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Instance::createXlibSurfaceKHR" ); + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, SurfaceKHR( *this, *reinterpret_cast( &surface ), allocator ) ); } // wrapper function for command vkGetPhysicalDeviceXlibPresentationSupportKHR, see @@ -18728,25 +18578,17 @@ namespace VULKAN_HPP_NAMESPACE //=== VK_KHR_xcb_surface === // wrapper function for command vkCreateXcbSurfaceKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateXcbSurfaceKHR.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE detail::CreateReturnType::Type - Instance::createXcbSurfaceKHR( XcbSurfaceCreateInfoKHR const & createInfo, - Optional allocator ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType::type + Instance::createXcbSurfaceKHR( XcbSurfaceCreateInfoKHR const & createInfo, + Optional allocator ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS { VULKAN_HPP_NAMESPACE::SurfaceKHR surface; Result result = static_cast( getDispatcher()->vkCreateXcbSurfaceKHR( static_cast( m_instance ), reinterpret_cast( &createInfo ), reinterpret_cast( allocator.get() ), reinterpret_cast( &surface ) ) ); - if ( result != Result::eSuccess ) - { -# if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) - return VULKAN_HPP_UNEXPECTED( result ); -# else - VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Instance::createXcbSurfaceKHR" ); -# endif - } - - return SurfaceKHR( *this, *reinterpret_cast( &surface ), allocator ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Instance::createXcbSurfaceKHR" ); + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, SurfaceKHR( *this, *reinterpret_cast( &surface ), allocator ) ); } // wrapper function for command vkGetPhysicalDeviceXcbPresentationSupportKHR, see @@ -18769,25 +18611,17 @@ namespace VULKAN_HPP_NAMESPACE //=== VK_KHR_wayland_surface === // wrapper function for command vkCreateWaylandSurfaceKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateWaylandSurfaceKHR.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE detail::CreateReturnType::Type - Instance::createWaylandSurfaceKHR( WaylandSurfaceCreateInfoKHR const & createInfo, - Optional allocator ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType::type + Instance::createWaylandSurfaceKHR( WaylandSurfaceCreateInfoKHR const & createInfo, + Optional allocator ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS { VULKAN_HPP_NAMESPACE::SurfaceKHR surface; Result result = static_cast( getDispatcher()->vkCreateWaylandSurfaceKHR( static_cast( m_instance ), reinterpret_cast( &createInfo ), reinterpret_cast( allocator.get() ), reinterpret_cast( &surface ) ) ); - if ( result != Result::eSuccess ) - { -# if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) - return VULKAN_HPP_UNEXPECTED( result ); -# else - VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Instance::createWaylandSurfaceKHR" ); -# endif - } - - return SurfaceKHR( *this, *reinterpret_cast( &surface ), allocator ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Instance::createWaylandSurfaceKHR" ); + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, SurfaceKHR( *this, *reinterpret_cast( &surface ), allocator ) ); } // wrapper function for command vkGetPhysicalDeviceWaylandPresentationSupportKHR, see @@ -18809,25 +18643,17 @@ namespace VULKAN_HPP_NAMESPACE //=== VK_KHR_android_surface === // wrapper function for command vkCreateAndroidSurfaceKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateAndroidSurfaceKHR.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE detail::CreateReturnType::Type - Instance::createAndroidSurfaceKHR( AndroidSurfaceCreateInfoKHR const & createInfo, - Optional allocator ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType::type + Instance::createAndroidSurfaceKHR( AndroidSurfaceCreateInfoKHR const & createInfo, + Optional allocator ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS { VULKAN_HPP_NAMESPACE::SurfaceKHR surface; Result result = static_cast( getDispatcher()->vkCreateAndroidSurfaceKHR( static_cast( m_instance ), reinterpret_cast( &createInfo ), reinterpret_cast( allocator.get() ), reinterpret_cast( &surface ) ) ); - if ( result != Result::eSuccess ) - { -# if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) - return VULKAN_HPP_UNEXPECTED( result ); -# else - VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Instance::createAndroidSurfaceKHR" ); -# endif - } - - return SurfaceKHR( *this, *reinterpret_cast( &surface ), allocator ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Instance::createAndroidSurfaceKHR" ); + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, SurfaceKHR( *this, *reinterpret_cast( &surface ), allocator ) ); } # endif /*VK_USE_PLATFORM_ANDROID_KHR*/ @@ -18835,25 +18661,17 @@ namespace VULKAN_HPP_NAMESPACE //=== VK_KHR_win32_surface === // wrapper function for command vkCreateWin32SurfaceKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateWin32SurfaceKHR.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE detail::CreateReturnType::Type - Instance::createWin32SurfaceKHR( Win32SurfaceCreateInfoKHR const & createInfo, - Optional allocator ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType::type + Instance::createWin32SurfaceKHR( Win32SurfaceCreateInfoKHR const & createInfo, + Optional allocator ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS { VULKAN_HPP_NAMESPACE::SurfaceKHR surface; Result result = static_cast( getDispatcher()->vkCreateWin32SurfaceKHR( static_cast( m_instance ), reinterpret_cast( &createInfo ), reinterpret_cast( allocator.get() ), reinterpret_cast( &surface ) ) ); - if ( result != Result::eSuccess ) - { -# if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) - return VULKAN_HPP_UNEXPECTED( result ); -# else - VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Instance::createWin32SurfaceKHR" ); -# endif - } - - return SurfaceKHR( *this, *reinterpret_cast( &surface ), allocator ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Instance::createWin32SurfaceKHR" ); + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, SurfaceKHR( *this, *reinterpret_cast( &surface ), allocator ) ); } // wrapper function for command vkGetPhysicalDeviceWin32PresentationSupportKHR, see @@ -18873,9 +18691,9 @@ namespace VULKAN_HPP_NAMESPACE // wrapper function for command vkCreateDebugReportCallbackEXT, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateDebugReportCallbackEXT.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE detail::CreateReturnType::Type - Instance::createDebugReportCallbackEXT( DebugReportCallbackCreateInfoEXT const & createInfo, - Optional allocator ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType::type + Instance::createDebugReportCallbackEXT( DebugReportCallbackCreateInfoEXT const & createInfo, + Optional allocator ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS { VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT callback; Result result = @@ -18883,16 +18701,9 @@ namespace VULKAN_HPP_NAMESPACE reinterpret_cast( &createInfo ), reinterpret_cast( allocator.get() ), reinterpret_cast( &callback ) ) ); - if ( result != Result::eSuccess ) - { -# if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) - return VULKAN_HPP_UNEXPECTED( result ); -# else - VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Instance::createDebugReportCallbackEXT" ); -# endif - } - - return DebugReportCallbackEXT( *this, *reinterpret_cast( &callback ), allocator ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Instance::createDebugReportCallbackEXT" ); + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( + result, DebugReportCallbackEXT( *this, *reinterpret_cast( &callback ), allocator ) ); } // wrapper function for command vkDebugReportMessageEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDebugReportMessageEXT.html @@ -18920,24 +18731,28 @@ namespace VULKAN_HPP_NAMESPACE // wrapper function for command vkDebugMarkerSetObjectTagEXT, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkDebugMarkerSetObjectTagEXT.html - VULKAN_HPP_INLINE void Device::debugMarkerSetObjectTagEXT( const DebugMarkerObjectTagInfoEXT & tagInfo ) const + VULKAN_HPP_INLINE typename ResultValueType::type Device::debugMarkerSetObjectTagEXT( const DebugMarkerObjectTagInfoEXT & tagInfo ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkDebugMarkerSetObjectTagEXT && "Function requires " ); Result result = static_cast( getDispatcher()->vkDebugMarkerSetObjectTagEXT( static_cast( m_device ), reinterpret_cast( &tagInfo ) ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::debugMarkerSetObjectTagEXT" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::debugMarkerSetObjectTagEXT" ); + + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result ); } // wrapper function for command vkDebugMarkerSetObjectNameEXT, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkDebugMarkerSetObjectNameEXT.html - VULKAN_HPP_INLINE void Device::debugMarkerSetObjectNameEXT( const DebugMarkerObjectNameInfoEXT & nameInfo ) const + VULKAN_HPP_INLINE typename ResultValueType::type Device::debugMarkerSetObjectNameEXT( const DebugMarkerObjectNameInfoEXT & nameInfo ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkDebugMarkerSetObjectNameEXT && "Function requires " ); Result result = static_cast( getDispatcher()->vkDebugMarkerSetObjectNameEXT( static_cast( m_device ), reinterpret_cast( &nameInfo ) ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::debugMarkerSetObjectNameEXT" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::debugMarkerSetObjectNameEXT" ); + + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result ); } // wrapper function for command vkCmdDebugMarkerBeginEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdDebugMarkerBeginEXT.html @@ -18970,7 +18785,8 @@ namespace VULKAN_HPP_NAMESPACE // wrapper function for command vkGetPhysicalDeviceVideoCapabilitiesKHR, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceVideoCapabilitiesKHR.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VideoCapabilitiesKHR PhysicalDevice::getVideoCapabilitiesKHR( const VideoProfileInfoKHR & videoProfile ) const + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType::type + PhysicalDevice::getVideoCapabilitiesKHR( const VideoProfileInfoKHR & videoProfile ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceVideoCapabilitiesKHR && "Function requires " ); @@ -18980,15 +18796,16 @@ namespace VULKAN_HPP_NAMESPACE static_cast( getDispatcher()->vkGetPhysicalDeviceVideoCapabilitiesKHR( static_cast( m_physicalDevice ), reinterpret_cast( &videoProfile ), reinterpret_cast( &capabilities ) ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getVideoCapabilitiesKHR" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::PhysicalDevice::getVideoCapabilitiesKHR" ); - return capabilities; + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( capabilities ) ); } // wrapper function for command vkGetPhysicalDeviceVideoCapabilitiesKHR, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceVideoCapabilitiesKHR.html template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain PhysicalDevice::getVideoCapabilitiesKHR( const VideoProfileInfoKHR & videoProfile ) const + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type + PhysicalDevice::getVideoCapabilitiesKHR( const VideoProfileInfoKHR & videoProfile ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceVideoCapabilitiesKHR && "Function requires " ); @@ -18999,15 +18816,15 @@ namespace VULKAN_HPP_NAMESPACE static_cast( getDispatcher()->vkGetPhysicalDeviceVideoCapabilitiesKHR( static_cast( m_physicalDevice ), reinterpret_cast( &videoProfile ), reinterpret_cast( &capabilities ) ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getVideoCapabilitiesKHR" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::PhysicalDevice::getVideoCapabilitiesKHR" ); - return structureChain; + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( structureChain ) ); } // wrapper function for command vkGetPhysicalDeviceVideoFormatPropertiesKHR, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceVideoFormatPropertiesKHR.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector - PhysicalDevice::getVideoFormatPropertiesKHR( const PhysicalDeviceVideoFormatInfoKHR & videoFormatInfo ) const + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type + PhysicalDevice::getVideoFormatPropertiesKHR( const PhysicalDeviceVideoFormatInfoKHR & videoFormatInfo ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceVideoFormatPropertiesKHR && "Function requires " ); @@ -19032,20 +18849,20 @@ namespace VULKAN_HPP_NAMESPACE reinterpret_cast( videoFormatProperties.data() ) ) ); } } while ( result == Result::eIncomplete ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getVideoFormatPropertiesKHR" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::PhysicalDevice::getVideoFormatPropertiesKHR" ); VULKAN_HPP_ASSERT( videoFormatPropertyCount <= videoFormatProperties.size() ); if ( videoFormatPropertyCount < videoFormatProperties.size() ) { videoFormatProperties.resize( videoFormatPropertyCount ); } - return videoFormatProperties; + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( videoFormatProperties ) ); } // wrapper function for command vkGetPhysicalDeviceVideoFormatPropertiesKHR, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceVideoFormatPropertiesKHR.html template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector - PhysicalDevice::getVideoFormatPropertiesKHR( const PhysicalDeviceVideoFormatInfoKHR & videoFormatInfo ) const + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type + PhysicalDevice::getVideoFormatPropertiesKHR( const PhysicalDeviceVideoFormatInfoKHR & videoFormatInfo ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceVideoFormatPropertiesKHR && "Function requires " ); @@ -19076,7 +18893,7 @@ namespace VULKAN_HPP_NAMESPACE reinterpret_cast( videoFormatProperties.data() ) ) ); } } while ( result == Result::eIncomplete ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getVideoFormatPropertiesKHR" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::PhysicalDevice::getVideoFormatPropertiesKHR" ); VULKAN_HPP_ASSERT( videoFormatPropertyCount <= videoFormatProperties.size() ); if ( videoFormatPropertyCount < videoFormatProperties.size() ) { @@ -19086,34 +18903,28 @@ namespace VULKAN_HPP_NAMESPACE { structureChains[i].template get() = videoFormatProperties[i]; } - return structureChains; + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( structureChains ) ); } // wrapper function for command vkCreateVideoSessionKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateVideoSessionKHR.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE detail::CreateReturnType::Type - Device::createVideoSessionKHR( VideoSessionCreateInfoKHR const & createInfo, - Optional allocator ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType::type + Device::createVideoSessionKHR( VideoSessionCreateInfoKHR const & createInfo, + Optional allocator ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS { VULKAN_HPP_NAMESPACE::VideoSessionKHR videoSession; Result result = static_cast( getDispatcher()->vkCreateVideoSessionKHR( static_cast( m_device ), reinterpret_cast( &createInfo ), reinterpret_cast( allocator.get() ), reinterpret_cast( &videoSession ) ) ); - if ( result != Result::eSuccess ) - { -# if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) - return VULKAN_HPP_UNEXPECTED( result ); -# else - VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createVideoSessionKHR" ); -# endif - } - - return VideoSessionKHR( *this, *reinterpret_cast( &videoSession ), allocator ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::createVideoSessionKHR" ); + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( + result, VideoSessionKHR( *this, *reinterpret_cast( &videoSession ), allocator ) ); } // wrapper function for command vkGetVideoSessionMemoryRequirementsKHR, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetVideoSessionMemoryRequirementsKHR.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector VideoSessionKHR::getMemoryRequirements() const + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type + VideoSessionKHR::getMemoryRequirements() const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetVideoSessionMemoryRequirementsKHR && "Function requires " ); @@ -19135,17 +18946,18 @@ namespace VULKAN_HPP_NAMESPACE reinterpret_cast( memoryRequirements.data() ) ) ); } } while ( result == Result::eIncomplete ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::VideoSessionKHR::getMemoryRequirements" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::VideoSessionKHR::getMemoryRequirements" ); VULKAN_HPP_ASSERT( memoryRequirementsCount <= memoryRequirements.size() ); if ( memoryRequirementsCount < memoryRequirements.size() ) { memoryRequirements.resize( memoryRequirementsCount ); } - return memoryRequirements; + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( memoryRequirements ) ); } // wrapper function for command vkBindVideoSessionMemoryKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkBindVideoSessionMemoryKHR.html - VULKAN_HPP_INLINE void VideoSessionKHR::bindMemory( ArrayProxy const & bindSessionMemoryInfos ) const + VULKAN_HPP_INLINE typename ResultValueType::type + VideoSessionKHR::bindMemory( ArrayProxy const & bindSessionMemoryInfos ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkBindVideoSessionMemoryKHR && "Function requires " ); @@ -19154,14 +18966,16 @@ namespace VULKAN_HPP_NAMESPACE static_cast( m_videoSessionKHR ), bindSessionMemoryInfos.size(), reinterpret_cast( bindSessionMemoryInfos.data() ) ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::VideoSessionKHR::bindMemory" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::VideoSessionKHR::bindMemory" ); + + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result ); } // wrapper function for command vkCreateVideoSessionParametersKHR, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateVideoSessionParametersKHR.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE detail::CreateReturnType::Type - Device::createVideoSessionParametersKHR( VideoSessionParametersCreateInfoKHR const & createInfo, - Optional allocator ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType::type + Device::createVideoSessionParametersKHR( VideoSessionParametersCreateInfoKHR const & createInfo, + Optional allocator ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS { VULKAN_HPP_NAMESPACE::VideoSessionParametersKHR videoSessionParameters; Result result = @@ -19169,21 +18983,14 @@ namespace VULKAN_HPP_NAMESPACE reinterpret_cast( &createInfo ), reinterpret_cast( allocator.get() ), reinterpret_cast( &videoSessionParameters ) ) ); - if ( result != Result::eSuccess ) - { -# if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) - return VULKAN_HPP_UNEXPECTED( result ); -# else - VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createVideoSessionParametersKHR" ); -# endif - } - - return VideoSessionParametersKHR( *this, *reinterpret_cast( &videoSessionParameters ), allocator ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::createVideoSessionParametersKHR" ); + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( + result, VideoSessionParametersKHR( *this, *reinterpret_cast( &videoSessionParameters ), allocator ) ); } // wrapper function for command vkUpdateVideoSessionParametersKHR, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkUpdateVideoSessionParametersKHR.html - VULKAN_HPP_INLINE void VideoSessionParametersKHR::update( const VideoSessionParametersUpdateInfoKHR & updateInfo ) const + VULKAN_HPP_INLINE typename ResultValueType::type VideoSessionParametersKHR::update( const VideoSessionParametersUpdateInfoKHR & updateInfo ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkUpdateVideoSessionParametersKHR && "Function requires " ); @@ -19191,7 +18998,9 @@ namespace VULKAN_HPP_NAMESPACE getDispatcher()->vkUpdateVideoSessionParametersKHR( static_cast( m_device ), static_cast( m_videoSessionParametersKHR ), reinterpret_cast( &updateInfo ) ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::VideoSessionParametersKHR::update" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::VideoSessionParametersKHR::update" ); + + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result ); } // wrapper function for command vkCmdBeginVideoCodingKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdBeginVideoCodingKHR.html @@ -19354,46 +19163,32 @@ namespace VULKAN_HPP_NAMESPACE //=== VK_NVX_binary_import === // wrapper function for command vkCreateCuModuleNVX, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateCuModuleNVX.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE detail::CreateReturnType::Type - Device::createCuModuleNVX( CuModuleCreateInfoNVX const & createInfo, Optional allocator ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType::type + Device::createCuModuleNVX( CuModuleCreateInfoNVX const & createInfo, + Optional allocator ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS { VULKAN_HPP_NAMESPACE::CuModuleNVX module; Result result = static_cast( getDispatcher()->vkCreateCuModuleNVX( static_cast( m_device ), reinterpret_cast( &createInfo ), reinterpret_cast( allocator.get() ), reinterpret_cast( &module ) ) ); - if ( result != Result::eSuccess ) - { -# if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) - return VULKAN_HPP_UNEXPECTED( result ); -# else - VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createCuModuleNVX" ); -# endif - } - - return CuModuleNVX( *this, *reinterpret_cast( &module ), allocator ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::createCuModuleNVX" ); + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, CuModuleNVX( *this, *reinterpret_cast( &module ), allocator ) ); } // wrapper function for command vkCreateCuFunctionNVX, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateCuFunctionNVX.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE detail::CreateReturnType::Type - Device::createCuFunctionNVX( CuFunctionCreateInfoNVX const & createInfo, - Optional allocator ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType::type + Device::createCuFunctionNVX( CuFunctionCreateInfoNVX const & createInfo, + Optional allocator ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS { VULKAN_HPP_NAMESPACE::CuFunctionNVX function; Result result = static_cast( getDispatcher()->vkCreateCuFunctionNVX( static_cast( m_device ), reinterpret_cast( &createInfo ), reinterpret_cast( allocator.get() ), reinterpret_cast( &function ) ) ); - if ( result != Result::eSuccess ) - { -# if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) - return VULKAN_HPP_UNEXPECTED( result ); -# else - VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createCuFunctionNVX" ); -# endif - } - - return CuFunctionNVX( *this, *reinterpret_cast( &function ), allocator ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::createCuFunctionNVX" ); + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, + CuFunctionNVX( *this, *reinterpret_cast( &function ), allocator ) ); } // wrapper function for command vkCmdCuLaunchKernelNVX, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdCuLaunchKernelNVX.html @@ -19429,16 +19224,16 @@ namespace VULKAN_HPP_NAMESPACE } // wrapper function for command vkGetImageViewAddressNVX, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetImageViewAddressNVX.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ImageViewAddressPropertiesNVX ImageView::getAddressNVX() const + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType::type ImageView::getAddressNVX() const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetImageViewAddressNVX && "Function requires " ); ImageViewAddressPropertiesNVX properties; Result result = static_cast( getDispatcher()->vkGetImageViewAddressNVX( static_cast( m_device ), static_cast( m_imageView ), reinterpret_cast( &properties ) ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::ImageView::getAddressNVX" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::ImageView::getAddressNVX" ); - return properties; + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( properties ) ); } //=== VK_AMD_draw_indirect_count === @@ -19488,7 +19283,8 @@ namespace VULKAN_HPP_NAMESPACE //=== VK_AMD_shader_info === // wrapper function for command vkGetShaderInfoAMD, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetShaderInfoAMD.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector Pipeline::getShaderInfoAMD( ShaderStageFlagBits shaderStage, ShaderInfoTypeAMD infoType ) const + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type Pipeline::getShaderInfoAMD( ShaderStageFlagBits shaderStage, + ShaderInfoTypeAMD infoType ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetShaderInfoAMD && "Function requires " ); @@ -19514,13 +19310,13 @@ namespace VULKAN_HPP_NAMESPACE reinterpret_cast( info.data() ) ) ); } } while ( result == Result::eIncomplete ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Pipeline::getShaderInfoAMD" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Pipeline::getShaderInfoAMD" ); VULKAN_HPP_ASSERT( infoSize <= info.size() ); if ( infoSize < info.size() ) { info.resize( infoSize ); } - return info; + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( info ) ); } //=== VK_KHR_dynamic_rendering === @@ -19547,9 +19343,9 @@ namespace VULKAN_HPP_NAMESPACE // wrapper function for command vkCreateStreamDescriptorSurfaceGGP, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateStreamDescriptorSurfaceGGP.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE detail::CreateReturnType::Type - Instance::createStreamDescriptorSurfaceGGP( StreamDescriptorSurfaceCreateInfoGGP const & createInfo, - Optional allocator ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType::type + Instance::createStreamDescriptorSurfaceGGP( StreamDescriptorSurfaceCreateInfoGGP const & createInfo, + Optional allocator ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS { VULKAN_HPP_NAMESPACE::SurfaceKHR surface; Result result = static_cast( @@ -19557,16 +19353,8 @@ namespace VULKAN_HPP_NAMESPACE reinterpret_cast( &createInfo ), reinterpret_cast( allocator.get() ), reinterpret_cast( &surface ) ) ); - if ( result != Result::eSuccess ) - { -# if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) - return VULKAN_HPP_UNEXPECTED( result ); -# else - VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Instance::createStreamDescriptorSurfaceGGP" ); -# endif - } - - return SurfaceKHR( *this, *reinterpret_cast( &surface ), allocator ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Instance::createStreamDescriptorSurfaceGGP" ); + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, SurfaceKHR( *this, *reinterpret_cast( &surface ), allocator ) ); } # endif /*VK_USE_PLATFORM_GGP*/ @@ -19574,9 +19362,13 @@ namespace VULKAN_HPP_NAMESPACE // wrapper function for command vkGetPhysicalDeviceExternalImageFormatPropertiesNV, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceExternalImageFormatPropertiesNV.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ExternalImageFormatPropertiesNV PhysicalDevice::getExternalImageFormatPropertiesNV( - Format format, ImageType type, ImageTiling tiling, ImageUsageFlags usage, ImageCreateFlags flags, ExternalMemoryHandleTypeFlagsNV externalHandleType ) - const + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType::type + PhysicalDevice::getExternalImageFormatPropertiesNV( Format format, + ImageType type, + ImageTiling tiling, + ImageUsageFlags usage, + ImageCreateFlags flags, + ExternalMemoryHandleTypeFlagsNV externalHandleType ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceExternalImageFormatPropertiesNV && "Function requires " ); @@ -19591,16 +19383,17 @@ namespace VULKAN_HPP_NAMESPACE static_cast( flags ), static_cast( externalHandleType ), reinterpret_cast( &externalImageFormatProperties ) ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getExternalImageFormatPropertiesNV" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::PhysicalDevice::getExternalImageFormatPropertiesNV" ); - return externalImageFormatProperties; + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( externalImageFormatProperties ) ); } # if defined( VK_USE_PLATFORM_WIN32_KHR ) //=== VK_NV_external_memory_win32 === // wrapper function for command vkGetMemoryWin32HandleNV, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetMemoryWin32HandleNV.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE HANDLE DeviceMemory::getMemoryWin32HandleNV( ExternalMemoryHandleTypeFlagsNV handleType ) const + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType::type + DeviceMemory::getMemoryWin32HandleNV( ExternalMemoryHandleTypeFlagsNV handleType ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetMemoryWin32HandleNV && "Function requires " ); @@ -19609,9 +19402,9 @@ namespace VULKAN_HPP_NAMESPACE static_cast( m_deviceMemory ), static_cast( handleType ), &handle ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::DeviceMemory::getMemoryWin32HandleNV" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::DeviceMemory::getMemoryWin32HandleNV" ); - return handle; + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( handle ) ); } # endif /*VK_USE_PLATFORM_WIN32_KHR*/ @@ -19709,8 +19502,8 @@ namespace VULKAN_HPP_NAMESPACE // wrapper function for command vkGetPhysicalDeviceImageFormatProperties2KHR, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceImageFormatProperties2KHR.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ImageFormatProperties2 - PhysicalDevice::getImageFormatProperties2KHR( const PhysicalDeviceImageFormatInfo2 & imageFormatInfo ) const + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType::type + PhysicalDevice::getImageFormatProperties2KHR( const PhysicalDeviceImageFormatInfo2 & imageFormatInfo ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceImageFormatProperties2KHR && "Function requires or " ); @@ -19720,16 +19513,16 @@ namespace VULKAN_HPP_NAMESPACE getDispatcher()->vkGetPhysicalDeviceImageFormatProperties2KHR( static_cast( m_physicalDevice ), reinterpret_cast( &imageFormatInfo ), reinterpret_cast( &imageFormatProperties ) ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getImageFormatProperties2KHR" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::PhysicalDevice::getImageFormatProperties2KHR" ); - return imageFormatProperties; + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( imageFormatProperties ) ); } // wrapper function for command vkGetPhysicalDeviceImageFormatProperties2KHR, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceImageFormatProperties2KHR.html template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain - PhysicalDevice::getImageFormatProperties2KHR( const PhysicalDeviceImageFormatInfo2 & imageFormatInfo ) const + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type + PhysicalDevice::getImageFormatProperties2KHR( const PhysicalDeviceImageFormatInfo2 & imageFormatInfo ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceImageFormatProperties2KHR && "Function requires or " ); @@ -19740,9 +19533,9 @@ namespace VULKAN_HPP_NAMESPACE getDispatcher()->vkGetPhysicalDeviceImageFormatProperties2KHR( static_cast( m_physicalDevice ), reinterpret_cast( &imageFormatInfo ), reinterpret_cast( &imageFormatProperties ) ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getImageFormatProperties2KHR" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::PhysicalDevice::getImageFormatProperties2KHR" ); - return structureChain; + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( structureChain ) ); } // wrapper function for command vkGetPhysicalDeviceQueueFamilyProperties2KHR, see @@ -19908,25 +19701,17 @@ namespace VULKAN_HPP_NAMESPACE //=== VK_NN_vi_surface === // wrapper function for command vkCreateViSurfaceNN, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateViSurfaceNN.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE detail::CreateReturnType::Type - Instance::createViSurfaceNN( ViSurfaceCreateInfoNN const & createInfo, - Optional allocator ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType::type + Instance::createViSurfaceNN( ViSurfaceCreateInfoNN const & createInfo, + Optional allocator ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS { VULKAN_HPP_NAMESPACE::SurfaceKHR surface; Result result = static_cast( getDispatcher()->vkCreateViSurfaceNN( static_cast( m_instance ), reinterpret_cast( &createInfo ), reinterpret_cast( allocator.get() ), reinterpret_cast( &surface ) ) ); - if ( result != Result::eSuccess ) - { -# if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) - return VULKAN_HPP_UNEXPECTED( result ); -# else - VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Instance::createViSurfaceNN" ); -# endif - } - - return SurfaceKHR( *this, *reinterpret_cast( &surface ), allocator ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Instance::createViSurfaceNN" ); + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, SurfaceKHR( *this, *reinterpret_cast( &surface ), allocator ) ); } # endif /*VK_USE_PLATFORM_VI_NN*/ @@ -19945,7 +19730,8 @@ namespace VULKAN_HPP_NAMESPACE // wrapper function for command vkEnumeratePhysicalDeviceGroupsKHR, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkEnumeratePhysicalDeviceGroupsKHR.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector Instance::enumeratePhysicalDeviceGroupsKHR() const + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type + Instance::enumeratePhysicalDeviceGroupsKHR() const { VULKAN_HPP_ASSERT( getDispatcher()->vkEnumeratePhysicalDeviceGroupsKHR && "Function requires or " ); @@ -19966,13 +19752,13 @@ namespace VULKAN_HPP_NAMESPACE reinterpret_cast( physicalDeviceGroupProperties.data() ) ) ); } } while ( result == Result::eIncomplete ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Instance::enumeratePhysicalDeviceGroupsKHR" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Instance::enumeratePhysicalDeviceGroupsKHR" ); VULKAN_HPP_ASSERT( physicalDeviceGroupCount <= physicalDeviceGroupProperties.size() ); if ( physicalDeviceGroupCount < physicalDeviceGroupProperties.size() ) { physicalDeviceGroupProperties.resize( physicalDeviceGroupCount ); } - return physicalDeviceGroupProperties; + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( physicalDeviceGroupProperties ) ); } //=== VK_KHR_external_memory_capabilities === @@ -19997,22 +19783,23 @@ namespace VULKAN_HPP_NAMESPACE //=== VK_KHR_external_memory_win32 === // wrapper function for command vkGetMemoryWin32HandleKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetMemoryWin32HandleKHR.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE HANDLE Device::getMemoryWin32HandleKHR( const MemoryGetWin32HandleInfoKHR & getWin32HandleInfo ) const + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType::type + Device::getMemoryWin32HandleKHR( const MemoryGetWin32HandleInfoKHR & getWin32HandleInfo ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetMemoryWin32HandleKHR && "Function requires " ); HANDLE handle; Result result = static_cast( getDispatcher()->vkGetMemoryWin32HandleKHR( static_cast( m_device ), reinterpret_cast( &getWin32HandleInfo ), &handle ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getMemoryWin32HandleKHR" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::getMemoryWin32HandleKHR" ); - return handle; + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( handle ) ); } // wrapper function for command vkGetMemoryWin32HandlePropertiesKHR, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetMemoryWin32HandlePropertiesKHR.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE MemoryWin32HandlePropertiesKHR - Device::getMemoryWin32HandlePropertiesKHR( ExternalMemoryHandleTypeFlagBits handleType, HANDLE handle ) const + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType::type + Device::getMemoryWin32HandlePropertiesKHR( ExternalMemoryHandleTypeFlagBits handleType, HANDLE handle ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetMemoryWin32HandlePropertiesKHR && "Function requires " ); @@ -20023,29 +19810,30 @@ namespace VULKAN_HPP_NAMESPACE static_cast( handleType ), handle, reinterpret_cast( &memoryWin32HandleProperties ) ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getMemoryWin32HandlePropertiesKHR" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::getMemoryWin32HandlePropertiesKHR" ); - return memoryWin32HandleProperties; + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( memoryWin32HandleProperties ) ); } # endif /*VK_USE_PLATFORM_WIN32_KHR*/ //=== VK_KHR_external_memory_fd === // wrapper function for command vkGetMemoryFdKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetMemoryFdKHR.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE int Device::getMemoryFdKHR( const MemoryGetFdInfoKHR & getFdInfo ) const + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType::type Device::getMemoryFdKHR( const MemoryGetFdInfoKHR & getFdInfo ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetMemoryFdKHR && "Function requires " ); int fd; Result result = static_cast( getDispatcher()->vkGetMemoryFdKHR( static_cast( m_device ), reinterpret_cast( &getFdInfo ), &fd ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getMemoryFdKHR" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::getMemoryFdKHR" ); - return fd; + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( fd ) ); } // wrapper function for command vkGetMemoryFdPropertiesKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetMemoryFdPropertiesKHR.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE MemoryFdPropertiesKHR Device::getMemoryFdPropertiesKHR( ExternalMemoryHandleTypeFlagBits handleType, int fd ) const + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType::type + Device::getMemoryFdPropertiesKHR( ExternalMemoryHandleTypeFlagBits handleType, int fd ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetMemoryFdPropertiesKHR && "Function requires " ); @@ -20054,9 +19842,9 @@ namespace VULKAN_HPP_NAMESPACE static_cast( handleType ), fd, reinterpret_cast( &memoryFdProperties ) ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getMemoryFdPropertiesKHR" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::getMemoryFdPropertiesKHR" ); - return memoryFdProperties; + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( memoryFdProperties ) ); } //=== VK_KHR_external_semaphore_capabilities === @@ -20083,19 +19871,23 @@ namespace VULKAN_HPP_NAMESPACE // wrapper function for command vkImportSemaphoreWin32HandleKHR, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkImportSemaphoreWin32HandleKHR.html - VULKAN_HPP_INLINE void Device::importSemaphoreWin32HandleKHR( const ImportSemaphoreWin32HandleInfoKHR & importSemaphoreWin32HandleInfo ) const + VULKAN_HPP_INLINE typename ResultValueType::type + Device::importSemaphoreWin32HandleKHR( const ImportSemaphoreWin32HandleInfoKHR & importSemaphoreWin32HandleInfo ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkImportSemaphoreWin32HandleKHR && "Function requires " ); Result result = static_cast( getDispatcher()->vkImportSemaphoreWin32HandleKHR( static_cast( m_device ), reinterpret_cast( &importSemaphoreWin32HandleInfo ) ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::importSemaphoreWin32HandleKHR" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::importSemaphoreWin32HandleKHR" ); + + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result ); } // wrapper function for command vkGetSemaphoreWin32HandleKHR, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetSemaphoreWin32HandleKHR.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE HANDLE Device::getSemaphoreWin32HandleKHR( const SemaphoreGetWin32HandleInfoKHR & getWin32HandleInfo ) const + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType::type + Device::getSemaphoreWin32HandleKHR( const SemaphoreGetWin32HandleInfoKHR & getWin32HandleInfo ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetSemaphoreWin32HandleKHR && "Function requires " ); @@ -20103,35 +19895,37 @@ namespace VULKAN_HPP_NAMESPACE HANDLE handle; Result result = static_cast( getDispatcher()->vkGetSemaphoreWin32HandleKHR( static_cast( m_device ), reinterpret_cast( &getWin32HandleInfo ), &handle ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getSemaphoreWin32HandleKHR" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::getSemaphoreWin32HandleKHR" ); - return handle; + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( handle ) ); } # endif /*VK_USE_PLATFORM_WIN32_KHR*/ //=== VK_KHR_external_semaphore_fd === // wrapper function for command vkImportSemaphoreFdKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkImportSemaphoreFdKHR.html - VULKAN_HPP_INLINE void Device::importSemaphoreFdKHR( const ImportSemaphoreFdInfoKHR & importSemaphoreFdInfo ) const + VULKAN_HPP_INLINE typename ResultValueType::type Device::importSemaphoreFdKHR( const ImportSemaphoreFdInfoKHR & importSemaphoreFdInfo ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkImportSemaphoreFdKHR && "Function requires " ); Result result = static_cast( getDispatcher()->vkImportSemaphoreFdKHR( static_cast( m_device ), reinterpret_cast( &importSemaphoreFdInfo ) ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::importSemaphoreFdKHR" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::importSemaphoreFdKHR" ); + + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result ); } // wrapper function for command vkGetSemaphoreFdKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetSemaphoreFdKHR.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE int Device::getSemaphoreFdKHR( const SemaphoreGetFdInfoKHR & getFdInfo ) const + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType::type Device::getSemaphoreFdKHR( const SemaphoreGetFdInfoKHR & getFdInfo ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetSemaphoreFdKHR && "Function requires " ); int fd; Result result = static_cast( getDispatcher()->vkGetSemaphoreFdKHR( static_cast( m_device ), reinterpret_cast( &getFdInfo ), &fd ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getSemaphoreFdKHR" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::getSemaphoreFdKHR" ); - return fd; + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( fd ) ); } //=== VK_KHR_push_descriptor === @@ -20200,9 +19994,9 @@ namespace VULKAN_HPP_NAMESPACE // wrapper function for command vkCreateDescriptorUpdateTemplateKHR, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateDescriptorUpdateTemplateKHR.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE detail::CreateReturnType::Type - Device::createDescriptorUpdateTemplateKHR( DescriptorUpdateTemplateCreateInfo const & createInfo, - Optional allocator ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType::type + Device::createDescriptorUpdateTemplateKHR( DescriptorUpdateTemplateCreateInfo const & createInfo, + Optional allocator ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS { VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate; Result result = static_cast( @@ -20210,16 +20004,9 @@ namespace VULKAN_HPP_NAMESPACE reinterpret_cast( &createInfo ), reinterpret_cast( allocator.get() ), reinterpret_cast( &descriptorUpdateTemplate ) ) ); - if ( result != Result::eSuccess ) - { -# if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) - return VULKAN_HPP_UNEXPECTED( result ); -# else - VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createDescriptorUpdateTemplateKHR" ); -# endif - } - - return DescriptorUpdateTemplate( *this, *reinterpret_cast( &descriptorUpdateTemplate ), allocator ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::createDescriptorUpdateTemplateKHR" ); + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( + result, DescriptorUpdateTemplate( *this, *reinterpret_cast( &descriptorUpdateTemplate ), allocator ) ); } // wrapper function for command vkDestroyDescriptorUpdateTemplateKHR, see @@ -20268,32 +20055,27 @@ namespace VULKAN_HPP_NAMESPACE //=== VK_EXT_acquire_xlib_display === // wrapper function for command vkAcquireXlibDisplayEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkAcquireXlibDisplayEXT.html - VULKAN_HPP_INLINE void PhysicalDevice::acquireXlibDisplayEXT( Display & dpy, VULKAN_HPP_NAMESPACE::DisplayKHR display ) const + VULKAN_HPP_INLINE typename ResultValueType::type PhysicalDevice::acquireXlibDisplayEXT( Display & dpy, + VULKAN_HPP_NAMESPACE::DisplayKHR display ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkAcquireXlibDisplayEXT && "Function requires " ); Result result = static_cast( getDispatcher()->vkAcquireXlibDisplayEXT( static_cast( m_physicalDevice ), &dpy, static_cast( display ) ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::acquireXlibDisplayEXT" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::PhysicalDevice::acquireXlibDisplayEXT" ); + + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result ); } // wrapper function for command vkGetRandROutputDisplayEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetRandROutputDisplayEXT.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE detail::CreateReturnType::Type - PhysicalDevice::getRandROutputDisplayEXT( Display & dpy, RROutput rrOutput ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType::type + PhysicalDevice::getRandROutputDisplayEXT( Display & dpy, RROutput rrOutput ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS { VULKAN_HPP_NAMESPACE::DisplayKHR display; Result result = static_cast( getDispatcher()->vkGetRandROutputDisplayEXT( static_cast( m_physicalDevice ), &dpy, rrOutput, reinterpret_cast( &display ) ) ); - if ( result != Result::eSuccess ) - { -# if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) - return VULKAN_HPP_UNEXPECTED( result ); -# else - VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "PhysicalDevice::getRandROutputDisplayEXT" ); -# endif - } - - return DisplayKHR( *this, *reinterpret_cast( &display ) ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::PhysicalDevice::getRandROutputDisplayEXT" ); + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, DisplayKHR( *this, *reinterpret_cast( &display ) ) ); } # endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/ @@ -20301,7 +20083,8 @@ namespace VULKAN_HPP_NAMESPACE // wrapper function for command vkGetPhysicalDeviceSurfaceCapabilities2EXT, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceSurfaceCapabilities2EXT.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE SurfaceCapabilities2EXT PhysicalDevice::getSurfaceCapabilities2EXT( VULKAN_HPP_NAMESPACE::SurfaceKHR surface ) const + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType::type + PhysicalDevice::getSurfaceCapabilities2EXT( VULKAN_HPP_NAMESPACE::SurfaceKHR surface ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceSurfaceCapabilities2EXT && "Function requires " ); @@ -20311,50 +20094,45 @@ namespace VULKAN_HPP_NAMESPACE getDispatcher()->vkGetPhysicalDeviceSurfaceCapabilities2EXT( static_cast( m_physicalDevice ), static_cast( surface ), reinterpret_cast( &surfaceCapabilities ) ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSurfaceCapabilities2EXT" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::PhysicalDevice::getSurfaceCapabilities2EXT" ); - return surfaceCapabilities; + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( surfaceCapabilities ) ); } //=== VK_EXT_display_control === // wrapper function for command vkDisplayPowerControlEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDisplayPowerControlEXT.html - VULKAN_HPP_INLINE void Device::displayPowerControlEXT( VULKAN_HPP_NAMESPACE::DisplayKHR display, const DisplayPowerInfoEXT & displayPowerInfo ) const + VULKAN_HPP_INLINE typename ResultValueType::type Device::displayPowerControlEXT( VULKAN_HPP_NAMESPACE::DisplayKHR display, + const DisplayPowerInfoEXT & displayPowerInfo ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkDisplayPowerControlEXT && "Function requires " ); Result result = static_cast( getDispatcher()->vkDisplayPowerControlEXT( static_cast( m_device ), static_cast( display ), reinterpret_cast( &displayPowerInfo ) ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::displayPowerControlEXT" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::displayPowerControlEXT" ); + + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result ); } // wrapper function for command vkRegisterDeviceEventEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkRegisterDeviceEventEXT.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE detail::CreateReturnType::Type - Device::registerEventEXT( DeviceEventInfoEXT const & deviceEventInfo, - Optional allocator ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType::type + Device::registerEventEXT( DeviceEventInfoEXT const & deviceEventInfo, + Optional allocator ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS { VULKAN_HPP_NAMESPACE::Fence fence; Result result = static_cast( getDispatcher()->vkRegisterDeviceEventEXT( static_cast( m_device ), reinterpret_cast( &deviceEventInfo ), reinterpret_cast( allocator.get() ), reinterpret_cast( &fence ) ) ); - if ( result != Result::eSuccess ) - { -# if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) - return VULKAN_HPP_UNEXPECTED( result ); -# else - VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::registerEventEXT" ); -# endif - } - - return Fence( *this, *reinterpret_cast( &fence ), allocator ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::registerEventEXT" ); + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, Fence( *this, *reinterpret_cast( &fence ), allocator ) ); } // wrapper function for command vkRegisterDisplayEventEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkRegisterDisplayEventEXT.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE detail::CreateReturnType::Type - Device::registerDisplayEventEXT( DisplayKHR const & display, + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType::type + Device::registerDisplayEventEXT( DisplayKHR const & display, DisplayEventInfoEXT const & displayEventInfo, - Optional allocator ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT + Optional allocator ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS { VULKAN_HPP_NAMESPACE::Fence fence; Result result = static_cast( getDispatcher()->vkRegisterDisplayEventEXT( static_cast( m_device ), @@ -20362,20 +20140,12 @@ namespace VULKAN_HPP_NAMESPACE reinterpret_cast( &displayEventInfo ), reinterpret_cast( allocator.get() ), reinterpret_cast( &fence ) ) ); - if ( result != Result::eSuccess ) - { -# if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) - return VULKAN_HPP_UNEXPECTED( result ); -# else - VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::registerDisplayEventEXT" ); -# endif - } - - return Fence( *this, *reinterpret_cast( &fence ), allocator ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::registerDisplayEventEXT" ); + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, Fence( *this, *reinterpret_cast( &fence ), allocator ) ); } // wrapper function for command vkGetSwapchainCounterEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetSwapchainCounterEXT.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE uint64_t SwapchainKHR::getCounterEXT( SurfaceCounterFlagBitsEXT counter ) const + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType::type SwapchainKHR::getCounterEXT( SurfaceCounterFlagBitsEXT counter ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetSwapchainCounterEXT && "Function requires " ); @@ -20384,16 +20154,16 @@ namespace VULKAN_HPP_NAMESPACE static_cast( m_swapchainKHR ), static_cast( counter ), &counterValue ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::SwapchainKHR::getCounterEXT" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::SwapchainKHR::getCounterEXT" ); - return counterValue; + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( counterValue ) ); } //=== VK_GOOGLE_display_timing === // wrapper function for command vkGetRefreshCycleDurationGOOGLE, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetRefreshCycleDurationGOOGLE.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE RefreshCycleDurationGOOGLE SwapchainKHR::getRefreshCycleDurationGOOGLE() const + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType::type SwapchainKHR::getRefreshCycleDurationGOOGLE() const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetRefreshCycleDurationGOOGLE && "Function requires " ); @@ -20402,14 +20172,15 @@ namespace VULKAN_HPP_NAMESPACE static_cast( getDispatcher()->vkGetRefreshCycleDurationGOOGLE( static_cast( m_device ), static_cast( m_swapchainKHR ), reinterpret_cast( &displayTimingProperties ) ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::SwapchainKHR::getRefreshCycleDurationGOOGLE" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::SwapchainKHR::getRefreshCycleDurationGOOGLE" ); - return displayTimingProperties; + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( displayTimingProperties ) ); } // wrapper function for command vkGetPastPresentationTimingGOOGLE, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPastPresentationTimingGOOGLE.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector SwapchainKHR::getPastPresentationTimingGOOGLE() const + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type + SwapchainKHR::getPastPresentationTimingGOOGLE() const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetPastPresentationTimingGOOGLE && "Function requires " ); @@ -20431,13 +20202,13 @@ namespace VULKAN_HPP_NAMESPACE reinterpret_cast( presentationTimings.data() ) ) ); } } while ( result == Result::eIncomplete ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::SwapchainKHR::getPastPresentationTimingGOOGLE" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::SwapchainKHR::getPastPresentationTimingGOOGLE" ); VULKAN_HPP_ASSERT( presentationTimingCount <= presentationTimings.size() ); if ( presentationTimingCount < presentationTimings.size() ) { presentationTimings.resize( presentationTimingCount ); } - return presentationTimings; + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( presentationTimings ) ); } //=== VK_EXT_discard_rectangles === @@ -20500,25 +20271,17 @@ namespace VULKAN_HPP_NAMESPACE //=== VK_KHR_create_renderpass2 === // wrapper function for command vkCreateRenderPass2KHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateRenderPass2KHR.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE detail::CreateReturnType::Type - Device::createRenderPass2KHR( RenderPassCreateInfo2 const & createInfo, - Optional allocator ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType::type + Device::createRenderPass2KHR( RenderPassCreateInfo2 const & createInfo, + Optional allocator ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS { VULKAN_HPP_NAMESPACE::RenderPass renderPass; Result result = static_cast( getDispatcher()->vkCreateRenderPass2KHR( static_cast( m_device ), reinterpret_cast( &createInfo ), reinterpret_cast( allocator.get() ), reinterpret_cast( &renderPass ) ) ); - if ( result != Result::eSuccess ) - { -# if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) - return VULKAN_HPP_UNEXPECTED( result ); -# else - VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createRenderPass2KHR" ); -# endif - } - - return RenderPass( *this, *reinterpret_cast( &renderPass ), allocator ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::createRenderPass2KHR" ); + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, RenderPass( *this, *reinterpret_cast( &renderPass ), allocator ) ); } // wrapper function for command vkCmdBeginRenderPass2KHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdBeginRenderPass2KHR.html @@ -20563,7 +20326,7 @@ namespace VULKAN_HPP_NAMESPACE Result result = static_cast( getDispatcher()->vkGetSwapchainStatusKHR( static_cast( m_device ), static_cast( m_swapchainKHR ) ) ); VULKAN_HPP_NAMESPACE::detail::resultCheck( - result, VULKAN_HPP_NAMESPACE_STRING "::SwapchainKHR::getStatus", { Result::eSuccess, Result::eSuboptimalKHR } ); + result, VULKAN_HPP_RAII_NAMESPACE_STRING "::SwapchainKHR::getStatus", { Result::eSuccess, Result::eSuboptimalKHR } ); return static_cast( result ); } @@ -20590,60 +20353,67 @@ namespace VULKAN_HPP_NAMESPACE //=== VK_KHR_external_fence_win32 === // wrapper function for command vkImportFenceWin32HandleKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkImportFenceWin32HandleKHR.html - VULKAN_HPP_INLINE void Device::importFenceWin32HandleKHR( const ImportFenceWin32HandleInfoKHR & importFenceWin32HandleInfo ) const + VULKAN_HPP_INLINE typename ResultValueType::type + Device::importFenceWin32HandleKHR( const ImportFenceWin32HandleInfoKHR & importFenceWin32HandleInfo ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkImportFenceWin32HandleKHR && "Function requires " ); Result result = static_cast( getDispatcher()->vkImportFenceWin32HandleKHR( static_cast( m_device ), reinterpret_cast( &importFenceWin32HandleInfo ) ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::importFenceWin32HandleKHR" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::importFenceWin32HandleKHR" ); + + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result ); } // wrapper function for command vkGetFenceWin32HandleKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetFenceWin32HandleKHR.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE HANDLE Device::getFenceWin32HandleKHR( const FenceGetWin32HandleInfoKHR & getWin32HandleInfo ) const + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType::type + Device::getFenceWin32HandleKHR( const FenceGetWin32HandleInfoKHR & getWin32HandleInfo ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetFenceWin32HandleKHR && "Function requires " ); HANDLE handle; Result result = static_cast( getDispatcher()->vkGetFenceWin32HandleKHR( static_cast( m_device ), reinterpret_cast( &getWin32HandleInfo ), &handle ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getFenceWin32HandleKHR" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::getFenceWin32HandleKHR" ); - return handle; + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( handle ) ); } # endif /*VK_USE_PLATFORM_WIN32_KHR*/ //=== VK_KHR_external_fence_fd === // wrapper function for command vkImportFenceFdKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkImportFenceFdKHR.html - VULKAN_HPP_INLINE void Device::importFenceFdKHR( const ImportFenceFdInfoKHR & importFenceFdInfo ) const + VULKAN_HPP_INLINE typename ResultValueType::type Device::importFenceFdKHR( const ImportFenceFdInfoKHR & importFenceFdInfo ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkImportFenceFdKHR && "Function requires " ); Result result = static_cast( getDispatcher()->vkImportFenceFdKHR( static_cast( m_device ), reinterpret_cast( &importFenceFdInfo ) ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::importFenceFdKHR" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::importFenceFdKHR" ); + + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result ); } // wrapper function for command vkGetFenceFdKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetFenceFdKHR.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE int Device::getFenceFdKHR( const FenceGetFdInfoKHR & getFdInfo ) const + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType::type Device::getFenceFdKHR( const FenceGetFdInfoKHR & getFdInfo ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetFenceFdKHR && "Function requires " ); int fd; Result result = static_cast( getDispatcher()->vkGetFenceFdKHR( static_cast( m_device ), reinterpret_cast( &getFdInfo ), &fd ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getFenceFdKHR" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::getFenceFdKHR" ); - return fd; + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( fd ) ); } //=== VK_KHR_performance_query === // wrapper function for command vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::pair, std::vector> - PhysicalDevice::enumerateQueueFamilyPerformanceQueryCountersKHR( uint32_t queueFamilyIndex ) const + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE + typename ResultValueType, std::vector>>::type + PhysicalDevice::enumerateQueueFamilyPerformanceQueryCountersKHR( uint32_t queueFamilyIndex ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR && "Function requires " ); @@ -20669,14 +20439,14 @@ namespace VULKAN_HPP_NAMESPACE reinterpret_cast( counterDescriptions.data() ) ) ); } } while ( result == Result::eIncomplete ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::enumerateQueueFamilyPerformanceQueryCountersKHR" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::PhysicalDevice::enumerateQueueFamilyPerformanceQueryCountersKHR" ); VULKAN_HPP_ASSERT( counterCount <= counters.size() ); if ( counterCount < counters.size() ) { counters.resize( counterCount ); counterDescriptions.resize( counterCount ); } - return data_; + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( data_ ) ); } // wrapper function for command vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR, see @@ -20697,13 +20467,15 @@ namespace VULKAN_HPP_NAMESPACE } // wrapper function for command vkAcquireProfilingLockKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkAcquireProfilingLockKHR.html - VULKAN_HPP_INLINE void Device::acquireProfilingLockKHR( const AcquireProfilingLockInfoKHR & info ) const + VULKAN_HPP_INLINE typename ResultValueType::type Device::acquireProfilingLockKHR( const AcquireProfilingLockInfoKHR & info ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkAcquireProfilingLockKHR && "Function requires " ); Result result = static_cast( getDispatcher()->vkAcquireProfilingLockKHR( static_cast( m_device ), reinterpret_cast( &info ) ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::acquireProfilingLockKHR" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::acquireProfilingLockKHR" ); + + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result ); } // wrapper function for command vkReleaseProfilingLockKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkReleaseProfilingLockKHR.html @@ -20718,8 +20490,8 @@ namespace VULKAN_HPP_NAMESPACE // wrapper function for command vkGetPhysicalDeviceSurfaceCapabilities2KHR, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceSurfaceCapabilities2KHR.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE SurfaceCapabilities2KHR - PhysicalDevice::getSurfaceCapabilities2KHR( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo ) const + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType::type + PhysicalDevice::getSurfaceCapabilities2KHR( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceSurfaceCapabilities2KHR && "Function requires " ); @@ -20729,16 +20501,16 @@ namespace VULKAN_HPP_NAMESPACE getDispatcher()->vkGetPhysicalDeviceSurfaceCapabilities2KHR( static_cast( m_physicalDevice ), reinterpret_cast( &surfaceInfo ), reinterpret_cast( &surfaceCapabilities ) ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSurfaceCapabilities2KHR" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::PhysicalDevice::getSurfaceCapabilities2KHR" ); - return surfaceCapabilities; + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( surfaceCapabilities ) ); } // wrapper function for command vkGetPhysicalDeviceSurfaceCapabilities2KHR, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceSurfaceCapabilities2KHR.html template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain - PhysicalDevice::getSurfaceCapabilities2KHR( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo ) const + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type + PhysicalDevice::getSurfaceCapabilities2KHR( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceSurfaceCapabilities2KHR && "Function requires " ); @@ -20749,15 +20521,15 @@ namespace VULKAN_HPP_NAMESPACE getDispatcher()->vkGetPhysicalDeviceSurfaceCapabilities2KHR( static_cast( m_physicalDevice ), reinterpret_cast( &surfaceInfo ), reinterpret_cast( &surfaceCapabilities ) ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSurfaceCapabilities2KHR" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::PhysicalDevice::getSurfaceCapabilities2KHR" ); - return structureChain; + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( structureChain ) ); } // wrapper function for command vkGetPhysicalDeviceSurfaceFormats2KHR, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceSurfaceFormats2KHR.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector - PhysicalDevice::getSurfaceFormats2KHR( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo ) const + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type + PhysicalDevice::getSurfaceFormats2KHR( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceSurfaceFormats2KHR && "Function requires " ); @@ -20782,20 +20554,20 @@ namespace VULKAN_HPP_NAMESPACE reinterpret_cast( surfaceFormats.data() ) ) ); } } while ( result == Result::eIncomplete ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSurfaceFormats2KHR" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::PhysicalDevice::getSurfaceFormats2KHR" ); VULKAN_HPP_ASSERT( surfaceFormatCount <= surfaceFormats.size() ); if ( surfaceFormatCount < surfaceFormats.size() ) { surfaceFormats.resize( surfaceFormatCount ); } - return surfaceFormats; + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( surfaceFormats ) ); } // wrapper function for command vkGetPhysicalDeviceSurfaceFormats2KHR, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceSurfaceFormats2KHR.html template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector - PhysicalDevice::getSurfaceFormats2KHR( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo ) const + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type + PhysicalDevice::getSurfaceFormats2KHR( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceSurfaceFormats2KHR && "Function requires " ); @@ -20826,7 +20598,7 @@ namespace VULKAN_HPP_NAMESPACE reinterpret_cast( surfaceFormats.data() ) ) ); } } while ( result == Result::eIncomplete ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSurfaceFormats2KHR" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::PhysicalDevice::getSurfaceFormats2KHR" ); VULKAN_HPP_ASSERT( surfaceFormatCount <= surfaceFormats.size() ); if ( surfaceFormatCount < surfaceFormats.size() ) { @@ -20836,14 +20608,14 @@ namespace VULKAN_HPP_NAMESPACE { structureChains[i].template get() = surfaceFormats[i]; } - return structureChains; + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( structureChains ) ); } //=== VK_KHR_get_display_properties2 === // wrapper function for command vkGetPhysicalDeviceDisplayProperties2KHR, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceDisplayProperties2KHR.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector PhysicalDevice::getDisplayProperties2KHR() const + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type PhysicalDevice::getDisplayProperties2KHR() const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceDisplayProperties2KHR && "Function requires " ); @@ -20862,18 +20634,19 @@ namespace VULKAN_HPP_NAMESPACE static_cast( m_physicalDevice ), &propertyCount, reinterpret_cast( properties.data() ) ) ); } } while ( result == Result::eIncomplete ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getDisplayProperties2KHR" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::PhysicalDevice::getDisplayProperties2KHR" ); VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); if ( propertyCount < properties.size() ) { properties.resize( propertyCount ); } - return properties; + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( properties ) ); } // wrapper function for command vkGetPhysicalDeviceDisplayPlaneProperties2KHR, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceDisplayPlaneProperties2KHR.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector PhysicalDevice::getDisplayPlaneProperties2KHR() const + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type + PhysicalDevice::getDisplayPlaneProperties2KHR() const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceDisplayPlaneProperties2KHR && "Function requires " ); @@ -20892,18 +20665,18 @@ namespace VULKAN_HPP_NAMESPACE static_cast( m_physicalDevice ), &propertyCount, reinterpret_cast( properties.data() ) ) ); } } while ( result == Result::eIncomplete ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getDisplayPlaneProperties2KHR" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::PhysicalDevice::getDisplayPlaneProperties2KHR" ); VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); if ( propertyCount < properties.size() ) { properties.resize( propertyCount ); } - return properties; + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( properties ) ); } // wrapper function for command vkGetDisplayModeProperties2KHR, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDisplayModeProperties2KHR.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector DisplayKHR::getModeProperties2() const + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type DisplayKHR::getModeProperties2() const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetDisplayModeProperties2KHR && "Function requires " ); @@ -20925,19 +20698,19 @@ namespace VULKAN_HPP_NAMESPACE reinterpret_cast( properties.data() ) ) ); } } while ( result == Result::eIncomplete ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::DisplayKHR::getModeProperties2" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::DisplayKHR::getModeProperties2" ); VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); if ( propertyCount < properties.size() ) { properties.resize( propertyCount ); } - return properties; + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( properties ) ); } // wrapper function for command vkGetDisplayModeProperties2KHR, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDisplayModeProperties2KHR.html template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector DisplayKHR::getModeProperties2() const + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type DisplayKHR::getModeProperties2() const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetDisplayModeProperties2KHR && "Function requires " ); @@ -20965,7 +20738,7 @@ namespace VULKAN_HPP_NAMESPACE reinterpret_cast( properties.data() ) ) ); } } while ( result == Result::eIncomplete ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::DisplayKHR::getModeProperties2" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::DisplayKHR::getModeProperties2" ); VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); if ( propertyCount < properties.size() ) { @@ -20975,13 +20748,13 @@ namespace VULKAN_HPP_NAMESPACE { structureChains[i].template get() = properties[i]; } - return structureChains; + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( structureChains ) ); } // wrapper function for command vkGetDisplayPlaneCapabilities2KHR, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDisplayPlaneCapabilities2KHR.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE DisplayPlaneCapabilities2KHR - PhysicalDevice::getDisplayPlaneCapabilities2KHR( const DisplayPlaneInfo2KHR & displayPlaneInfo ) const + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType::type + PhysicalDevice::getDisplayPlaneCapabilities2KHR( const DisplayPlaneInfo2KHR & displayPlaneInfo ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetDisplayPlaneCapabilities2KHR && "Function requires " ); @@ -20991,34 +20764,26 @@ namespace VULKAN_HPP_NAMESPACE static_cast( getDispatcher()->vkGetDisplayPlaneCapabilities2KHR( static_cast( m_physicalDevice ), reinterpret_cast( &displayPlaneInfo ), reinterpret_cast( &capabilities ) ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getDisplayPlaneCapabilities2KHR" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::PhysicalDevice::getDisplayPlaneCapabilities2KHR" ); - return capabilities; + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( capabilities ) ); } # if defined( VK_USE_PLATFORM_IOS_MVK ) //=== VK_MVK_ios_surface === // wrapper function for command vkCreateIOSSurfaceMVK, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateIOSSurfaceMVK.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE detail::CreateReturnType::Type - Instance::createIOSSurfaceMVK( IOSSurfaceCreateInfoMVK const & createInfo, - Optional allocator ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType::type + Instance::createIOSSurfaceMVK( IOSSurfaceCreateInfoMVK const & createInfo, + Optional allocator ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS { VULKAN_HPP_NAMESPACE::SurfaceKHR surface; Result result = static_cast( getDispatcher()->vkCreateIOSSurfaceMVK( static_cast( m_instance ), reinterpret_cast( &createInfo ), reinterpret_cast( allocator.get() ), reinterpret_cast( &surface ) ) ); - if ( result != Result::eSuccess ) - { -# if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) - return VULKAN_HPP_UNEXPECTED( result ); -# else - VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Instance::createIOSSurfaceMVK" ); -# endif - } - - return SurfaceKHR( *this, *reinterpret_cast( &surface ), allocator ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Instance::createIOSSurfaceMVK" ); + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, SurfaceKHR( *this, *reinterpret_cast( &surface ), allocator ) ); } # endif /*VK_USE_PLATFORM_IOS_MVK*/ @@ -21026,25 +20791,17 @@ namespace VULKAN_HPP_NAMESPACE //=== VK_MVK_macos_surface === // wrapper function for command vkCreateMacOSSurfaceMVK, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateMacOSSurfaceMVK.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE detail::CreateReturnType::Type - Instance::createMacOSSurfaceMVK( MacOSSurfaceCreateInfoMVK const & createInfo, - Optional allocator ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType::type + Instance::createMacOSSurfaceMVK( MacOSSurfaceCreateInfoMVK const & createInfo, + Optional allocator ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS { VULKAN_HPP_NAMESPACE::SurfaceKHR surface; Result result = static_cast( getDispatcher()->vkCreateMacOSSurfaceMVK( static_cast( m_instance ), reinterpret_cast( &createInfo ), reinterpret_cast( allocator.get() ), reinterpret_cast( &surface ) ) ); - if ( result != Result::eSuccess ) - { -# if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) - return VULKAN_HPP_UNEXPECTED( result ); -# else - VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Instance::createMacOSSurfaceMVK" ); -# endif - } - - return SurfaceKHR( *this, *reinterpret_cast( &surface ), allocator ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Instance::createMacOSSurfaceMVK" ); + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, SurfaceKHR( *this, *reinterpret_cast( &surface ), allocator ) ); } # endif /*VK_USE_PLATFORM_MACOS_MVK*/ @@ -21052,23 +20809,27 @@ namespace VULKAN_HPP_NAMESPACE // wrapper function for command vkSetDebugUtilsObjectNameEXT, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkSetDebugUtilsObjectNameEXT.html - VULKAN_HPP_INLINE void Device::setDebugUtilsObjectNameEXT( const DebugUtilsObjectNameInfoEXT & nameInfo ) const + VULKAN_HPP_INLINE typename ResultValueType::type Device::setDebugUtilsObjectNameEXT( const DebugUtilsObjectNameInfoEXT & nameInfo ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkSetDebugUtilsObjectNameEXT && "Function requires " ); Result result = static_cast( getDispatcher()->vkSetDebugUtilsObjectNameEXT( static_cast( m_device ), reinterpret_cast( &nameInfo ) ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::setDebugUtilsObjectNameEXT" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::setDebugUtilsObjectNameEXT" ); + + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result ); } // wrapper function for command vkSetDebugUtilsObjectTagEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkSetDebugUtilsObjectTagEXT.html - VULKAN_HPP_INLINE void Device::setDebugUtilsObjectTagEXT( const DebugUtilsObjectTagInfoEXT & tagInfo ) const + VULKAN_HPP_INLINE typename ResultValueType::type Device::setDebugUtilsObjectTagEXT( const DebugUtilsObjectTagInfoEXT & tagInfo ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkSetDebugUtilsObjectTagEXT && "Function requires " ); Result result = static_cast( getDispatcher()->vkSetDebugUtilsObjectTagEXT( static_cast( m_device ), reinterpret_cast( &tagInfo ) ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::setDebugUtilsObjectTagEXT" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::setDebugUtilsObjectTagEXT" ); + + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result ); } // wrapper function for command vkQueueBeginDebugUtilsLabelEXT, see @@ -21128,9 +20889,9 @@ namespace VULKAN_HPP_NAMESPACE // wrapper function for command vkCreateDebugUtilsMessengerEXT, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateDebugUtilsMessengerEXT.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE detail::CreateReturnType::Type - Instance::createDebugUtilsMessengerEXT( DebugUtilsMessengerCreateInfoEXT const & createInfo, - Optional allocator ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType::type + Instance::createDebugUtilsMessengerEXT( DebugUtilsMessengerCreateInfoEXT const & createInfo, + Optional allocator ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS { VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT messenger; Result result = @@ -21138,16 +20899,9 @@ namespace VULKAN_HPP_NAMESPACE reinterpret_cast( &createInfo ), reinterpret_cast( allocator.get() ), reinterpret_cast( &messenger ) ) ); - if ( result != Result::eSuccess ) - { -# if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) - return VULKAN_HPP_UNEXPECTED( result ); -# else - VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Instance::createDebugUtilsMessengerEXT" ); -# endif - } - - return DebugUtilsMessengerEXT( *this, *reinterpret_cast( &messenger ), allocator ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Instance::createDebugUtilsMessengerEXT" ); + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( + result, DebugUtilsMessengerEXT( *this, *reinterpret_cast( &messenger ), allocator ) ); } // wrapper function for command vkSubmitDebugUtilsMessageEXT, see @@ -21169,8 +20923,8 @@ namespace VULKAN_HPP_NAMESPACE // wrapper function for command vkGetAndroidHardwareBufferPropertiesANDROID, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetAndroidHardwareBufferPropertiesANDROID.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE AndroidHardwareBufferPropertiesANDROID - Device::getAndroidHardwareBufferPropertiesANDROID( const struct AHardwareBuffer & buffer ) const + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType::type + Device::getAndroidHardwareBufferPropertiesANDROID( const struct AHardwareBuffer & buffer ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetAndroidHardwareBufferPropertiesANDROID && "Function requires " ); @@ -21178,16 +20932,16 @@ namespace VULKAN_HPP_NAMESPACE AndroidHardwareBufferPropertiesANDROID properties; Result result = static_cast( getDispatcher()->vkGetAndroidHardwareBufferPropertiesANDROID( static_cast( m_device ), &buffer, reinterpret_cast( &properties ) ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getAndroidHardwareBufferPropertiesANDROID" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::getAndroidHardwareBufferPropertiesANDROID" ); - return properties; + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( properties ) ); } // wrapper function for command vkGetAndroidHardwareBufferPropertiesANDROID, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetAndroidHardwareBufferPropertiesANDROID.html template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain - Device::getAndroidHardwareBufferPropertiesANDROID( const struct AHardwareBuffer & buffer ) const + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type + Device::getAndroidHardwareBufferPropertiesANDROID( const struct AHardwareBuffer & buffer ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetAndroidHardwareBufferPropertiesANDROID && "Function requires " ); @@ -21196,15 +20950,15 @@ namespace VULKAN_HPP_NAMESPACE AndroidHardwareBufferPropertiesANDROID & properties = structureChain.template get(); Result result = static_cast( getDispatcher()->vkGetAndroidHardwareBufferPropertiesANDROID( static_cast( m_device ), &buffer, reinterpret_cast( &properties ) ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getAndroidHardwareBufferPropertiesANDROID" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::getAndroidHardwareBufferPropertiesANDROID" ); - return structureChain; + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( structureChain ) ); } // wrapper function for command vkGetMemoryAndroidHardwareBufferANDROID, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetMemoryAndroidHardwareBufferANDROID.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE struct AHardwareBuffer * - Device::getMemoryAndroidHardwareBufferANDROID( const MemoryGetAndroidHardwareBufferInfoANDROID & info ) const + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType::type + Device::getMemoryAndroidHardwareBufferANDROID( const MemoryGetAndroidHardwareBufferInfoANDROID & info ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetMemoryAndroidHardwareBufferANDROID && "Function requires " ); @@ -21212,9 +20966,9 @@ namespace VULKAN_HPP_NAMESPACE struct AHardwareBuffer * buffer; Result result = static_cast( getDispatcher()->vkGetMemoryAndroidHardwareBufferANDROID( static_cast( m_device ), reinterpret_cast( &info ), &buffer ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getMemoryAndroidHardwareBufferANDROID" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::getMemoryAndroidHardwareBufferANDROID" ); - return buffer; + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( buffer ) ); } # endif /*VK_USE_PLATFORM_ANDROID_KHR*/ @@ -21223,8 +20977,8 @@ namespace VULKAN_HPP_NAMESPACE // wrapper function for command vkCreateExecutionGraphPipelinesAMDX, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateExecutionGraphPipelinesAMDX.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE detail::CreateReturnType>::Type - Device::createExecutionGraphPipelinesAMDX( Optional const & pipelineCache, + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type + Device::createExecutionGraphPipelinesAMDX( Optional const & pipelineCache, ArrayProxy const & createInfos, Optional allocator ) const { @@ -21236,30 +20990,26 @@ namespace VULKAN_HPP_NAMESPACE reinterpret_cast( createInfos.data() ), reinterpret_cast( allocator.get() ), reinterpret_cast( pipelines.data() ) ) ); - if ( ( result != Result::eSuccess ) && ( result != Result::ePipelineCompileRequiredEXT ) ) - { -# if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) - return VULKAN_HPP_UNEXPECTED( result ); -# else - VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createExecutionGraphPipelinesAMDX" ); -# endif - } - + VULKAN_HPP_NAMESPACE::detail::resultCheck( + result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::createExecutionGraphPipelinesAMDX", { Result::eSuccess, Result::ePipelineCompileRequiredEXT } ); std::vector pipelinesRAII; - pipelinesRAII.reserve( pipelines.size() ); - for ( auto & pipeline : pipelines ) + if ( result == Result::eSuccess ) { - pipelinesRAII.emplace_back( *this, *reinterpret_cast( &pipeline ), allocator, result ); + pipelinesRAII.reserve( pipelines.size() ); + for ( auto & pipeline : pipelines ) + { + pipelinesRAII.emplace_back( *this, *reinterpret_cast( &pipeline ), allocator, result ); + } } - return pipelinesRAII; + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( pipelinesRAII ) ); } // wrapper function for command vkCreateExecutionGraphPipelinesAMDX, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateExecutionGraphPipelinesAMDX.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE detail::CreateReturnType::Type - Device::createExecutionGraphPipelineAMDX( Optional const & pipelineCache, + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType::type + Device::createExecutionGraphPipelineAMDX( Optional const & pipelineCache, ExecutionGraphPipelineCreateInfoAMDX const & createInfo, - Optional allocator ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT + Optional allocator ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS { VULKAN_HPP_NAMESPACE::Pipeline pipeline; Result result = static_cast( @@ -21269,21 +21019,15 @@ namespace VULKAN_HPP_NAMESPACE reinterpret_cast( &createInfo ), reinterpret_cast( allocator.get() ), reinterpret_cast( &pipeline ) ) ); - if ( ( result != Result::eSuccess ) && ( result != Result::ePipelineCompileRequiredEXT ) ) - { -# if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) - return VULKAN_HPP_UNEXPECTED( result ); -# else - VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createExecutionGraphPipelineAMDX" ); -# endif - } - - return Pipeline( *this, *reinterpret_cast( &pipeline ), allocator, result ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( + result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::createExecutionGraphPipelineAMDX", { Result::eSuccess, Result::ePipelineCompileRequiredEXT } ); + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, Pipeline( *this, *reinterpret_cast( &pipeline ), allocator, result ) ); } // wrapper function for command vkGetExecutionGraphPipelineScratchSizeAMDX, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetExecutionGraphPipelineScratchSizeAMDX.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ExecutionGraphPipelineScratchSizeAMDX Pipeline::getExecutionGraphScratchSizeAMDX() const + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType::type + Pipeline::getExecutionGraphScratchSizeAMDX() const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetExecutionGraphPipelineScratchSizeAMDX && "Function requires " ); @@ -21291,14 +21035,15 @@ namespace VULKAN_HPP_NAMESPACE ExecutionGraphPipelineScratchSizeAMDX sizeInfo; Result result = static_cast( getDispatcher()->vkGetExecutionGraphPipelineScratchSizeAMDX( static_cast( m_device ), static_cast( m_pipeline ), reinterpret_cast( &sizeInfo ) ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Pipeline::getExecutionGraphScratchSizeAMDX" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Pipeline::getExecutionGraphScratchSizeAMDX" ); - return sizeInfo; + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( sizeInfo ) ); } // wrapper function for command vkGetExecutionGraphPipelineNodeIndexAMDX, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetExecutionGraphPipelineNodeIndexAMDX.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE uint32_t Pipeline::getExecutionGraphNodeIndexAMDX( const PipelineShaderStageNodeCreateInfoAMDX & nodeInfo ) const + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType::type + Pipeline::getExecutionGraphNodeIndexAMDX( const PipelineShaderStageNodeCreateInfoAMDX & nodeInfo ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetExecutionGraphPipelineNodeIndexAMDX && "Function requires " ); @@ -21309,9 +21054,9 @@ namespace VULKAN_HPP_NAMESPACE static_cast( m_pipeline ), reinterpret_cast( &nodeInfo ), &nodeIndex ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Pipeline::getExecutionGraphNodeIndexAMDX" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Pipeline::getExecutionGraphNodeIndexAMDX" ); - return nodeIndex; + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( nodeIndex ) ); } // wrapper function for command vkCmdInitializeGraphScratchMemoryAMDX, see @@ -21497,9 +21242,9 @@ namespace VULKAN_HPP_NAMESPACE // wrapper function for command vkCreateAccelerationStructureKHR, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateAccelerationStructureKHR.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE detail::CreateReturnType::Type - Device::createAccelerationStructureKHR( AccelerationStructureCreateInfoKHR const & createInfo, - Optional allocator ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType::type + Device::createAccelerationStructureKHR( AccelerationStructureCreateInfoKHR const & createInfo, + Optional allocator ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS { VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure; Result result = @@ -21507,16 +21252,9 @@ namespace VULKAN_HPP_NAMESPACE reinterpret_cast( &createInfo ), reinterpret_cast( allocator.get() ), reinterpret_cast( &accelerationStructure ) ) ); - if ( result != Result::eSuccess ) - { -# if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) - return VULKAN_HPP_UNEXPECTED( result ); -# else - VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createAccelerationStructureKHR" ); -# endif - } - - return AccelerationStructureKHR( *this, *reinterpret_cast( &accelerationStructure ), allocator ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::createAccelerationStructureKHR" ); + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( + result, AccelerationStructureKHR( *this, *reinterpret_cast( &accelerationStructure ), allocator ) ); } // wrapper function for command vkCmdBuildAccelerationStructuresKHR, see @@ -21605,7 +21343,7 @@ namespace VULKAN_HPP_NAMESPACE reinterpret_cast( infos.data() ), reinterpret_cast( pBuildRangeInfos.data() ) ) ); VULKAN_HPP_NAMESPACE::detail::resultCheck( result, - VULKAN_HPP_NAMESPACE_STRING "::Device::buildAccelerationStructuresKHR", + VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::buildAccelerationStructuresKHR", { Result::eSuccess, Result::eOperationDeferredKHR, Result::eOperationNotDeferredKHR } ); return static_cast( result ); @@ -21624,7 +21362,7 @@ namespace VULKAN_HPP_NAMESPACE static_cast( deferredOperation ), reinterpret_cast( &info ) ) ); VULKAN_HPP_NAMESPACE::detail::resultCheck( result, - VULKAN_HPP_NAMESPACE_STRING "::Device::copyAccelerationStructureKHR", + VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::copyAccelerationStructureKHR", { Result::eSuccess, Result::eOperationDeferredKHR, Result::eOperationNotDeferredKHR } ); return static_cast( result ); @@ -21643,7 +21381,7 @@ namespace VULKAN_HPP_NAMESPACE static_cast( deferredOperation ), reinterpret_cast( &info ) ) ); VULKAN_HPP_NAMESPACE::detail::resultCheck( result, - VULKAN_HPP_NAMESPACE_STRING "::Device::copyAccelerationStructureToMemoryKHR", + VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::copyAccelerationStructureToMemoryKHR", { Result::eSuccess, Result::eOperationDeferredKHR, Result::eOperationNotDeferredKHR } ); return static_cast( result ); @@ -21662,7 +21400,7 @@ namespace VULKAN_HPP_NAMESPACE static_cast( deferredOperation ), reinterpret_cast( &info ) ) ); VULKAN_HPP_NAMESPACE::detail::resultCheck( result, - VULKAN_HPP_NAMESPACE_STRING "::Device::copyMemoryToAccelerationStructureKHR", + VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::copyMemoryToAccelerationStructureKHR", { Result::eSuccess, Result::eOperationDeferredKHR, Result::eOperationNotDeferredKHR } ); return static_cast( result ); @@ -21671,7 +21409,7 @@ namespace VULKAN_HPP_NAMESPACE // wrapper function for command vkWriteAccelerationStructuresPropertiesKHR, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkWriteAccelerationStructuresPropertiesKHR.html template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type Device::writeAccelerationStructuresPropertiesKHR( ArrayProxy const & accelerationStructures, QueryType queryType, size_t dataSize, @@ -21690,15 +21428,15 @@ namespace VULKAN_HPP_NAMESPACE data.size() * sizeof( DataType ), reinterpret_cast( data.data() ), stride ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::writeAccelerationStructuresPropertiesKHR" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::writeAccelerationStructuresPropertiesKHR" ); - return data; + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( data ) ); } // wrapper function for command vkWriteAccelerationStructuresPropertiesKHR, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkWriteAccelerationStructuresPropertiesKHR.html template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE DataType Device::writeAccelerationStructuresPropertyKHR( + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType::type Device::writeAccelerationStructuresPropertyKHR( ArrayProxy const & accelerationStructures, QueryType queryType, size_t stride ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkWriteAccelerationStructuresPropertiesKHR && @@ -21713,9 +21451,9 @@ namespace VULKAN_HPP_NAMESPACE sizeof( DataType ), reinterpret_cast( &data ), stride ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::writeAccelerationStructuresPropertyKHR" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::writeAccelerationStructuresPropertyKHR" ); - return data; + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( data ) ); } // wrapper function for command vkCmdCopyAccelerationStructureKHR, see @@ -21855,8 +21593,8 @@ namespace VULKAN_HPP_NAMESPACE // wrapper function for command vkCreateRayTracingPipelinesKHR, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateRayTracingPipelinesKHR.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE detail::CreateReturnType>::Type - Device::createRayTracingPipelinesKHR( Optional const & deferredOperation, + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type + Device::createRayTracingPipelinesKHR( Optional const & deferredOperation, Optional const & pipelineCache, ArrayProxy const & createInfos, Optional allocator ) const @@ -21870,32 +21608,29 @@ namespace VULKAN_HPP_NAMESPACE reinterpret_cast( createInfos.data() ), reinterpret_cast( allocator.get() ), reinterpret_cast( pipelines.data() ) ) ); - if ( ( result != Result::eSuccess ) && ( result != Result::eOperationDeferredKHR ) && ( result != Result::eOperationNotDeferredKHR ) && - ( result != Result::ePipelineCompileRequiredEXT ) ) - { -# if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) - return VULKAN_HPP_UNEXPECTED( result ); -# else - VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createRayTracingPipelinesKHR" ); -# endif - } - + VULKAN_HPP_NAMESPACE::detail::resultCheck( + result, + VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::createRayTracingPipelinesKHR", + { Result::eSuccess, Result::eOperationDeferredKHR, Result::eOperationNotDeferredKHR, Result::ePipelineCompileRequiredEXT } ); std::vector pipelinesRAII; - pipelinesRAII.reserve( pipelines.size() ); - for ( auto & pipeline : pipelines ) + if ( result == Result::eSuccess ) { - pipelinesRAII.emplace_back( *this, *reinterpret_cast( &pipeline ), allocator, result ); + pipelinesRAII.reserve( pipelines.size() ); + for ( auto & pipeline : pipelines ) + { + pipelinesRAII.emplace_back( *this, *reinterpret_cast( &pipeline ), allocator, result ); + } } - return pipelinesRAII; + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( pipelinesRAII ) ); } // wrapper function for command vkCreateRayTracingPipelinesKHR, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateRayTracingPipelinesKHR.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE detail::CreateReturnType::Type - Device::createRayTracingPipelineKHR( Optional const & deferredOperation, + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType::type + Device::createRayTracingPipelineKHR( Optional const & deferredOperation, Optional const & pipelineCache, RayTracingPipelineCreateInfoKHR const & createInfo, - Optional allocator ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT + Optional allocator ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS { VULKAN_HPP_NAMESPACE::Pipeline pipeline; Result result = static_cast( @@ -21906,24 +21641,18 @@ namespace VULKAN_HPP_NAMESPACE reinterpret_cast( &createInfo ), reinterpret_cast( allocator.get() ), reinterpret_cast( &pipeline ) ) ); - if ( ( result != Result::eSuccess ) && ( result != Result::eOperationDeferredKHR ) && ( result != Result::eOperationNotDeferredKHR ) && - ( result != Result::ePipelineCompileRequiredEXT ) ) - { -# if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) - return VULKAN_HPP_UNEXPECTED( result ); -# else - VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createRayTracingPipelineKHR" ); -# endif - } - - return Pipeline( *this, *reinterpret_cast( &pipeline ), allocator, result ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( + result, + VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::createRayTracingPipelineKHR", + { Result::eSuccess, Result::eOperationDeferredKHR, Result::eOperationNotDeferredKHR, Result::ePipelineCompileRequiredEXT } ); + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, Pipeline( *this, *reinterpret_cast( &pipeline ), allocator, result ) ); } // wrapper function for command vkGetRayTracingShaderGroupHandlesKHR, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetRayTracingShaderGroupHandlesKHR.html template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector - Pipeline::getRayTracingShaderGroupHandlesKHR( uint32_t firstGroup, uint32_t groupCount, size_t dataSize ) const + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type + Pipeline::getRayTracingShaderGroupHandlesKHR( uint32_t firstGroup, uint32_t groupCount, size_t dataSize ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetRayTracingShaderGroupHandlesKHR && "Function requires or " ); @@ -21936,15 +21665,16 @@ namespace VULKAN_HPP_NAMESPACE groupCount, data.size() * sizeof( DataType ), reinterpret_cast( data.data() ) ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Pipeline::getRayTracingShaderGroupHandlesKHR" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Pipeline::getRayTracingShaderGroupHandlesKHR" ); - return data; + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( data ) ); } // wrapper function for command vkGetRayTracingShaderGroupHandlesKHR, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetRayTracingShaderGroupHandlesKHR.html template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE DataType Pipeline::getRayTracingShaderGroupHandleKHR( uint32_t firstGroup, uint32_t groupCount ) const + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType::type Pipeline::getRayTracingShaderGroupHandleKHR( uint32_t firstGroup, + uint32_t groupCount ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetRayTracingShaderGroupHandlesKHR && "Function requires or " ); @@ -21956,16 +21686,16 @@ namespace VULKAN_HPP_NAMESPACE groupCount, sizeof( DataType ), reinterpret_cast( &data ) ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Pipeline::getRayTracingShaderGroupHandleKHR" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Pipeline::getRayTracingShaderGroupHandleKHR" ); - return data; + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( data ) ); } // wrapper function for command vkGetRayTracingCaptureReplayShaderGroupHandlesKHR, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetRayTracingCaptureReplayShaderGroupHandlesKHR.html template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector - Pipeline::getRayTracingCaptureReplayShaderGroupHandlesKHR( uint32_t firstGroup, uint32_t groupCount, size_t dataSize ) const + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type + Pipeline::getRayTracingCaptureReplayShaderGroupHandlesKHR( uint32_t firstGroup, uint32_t groupCount, size_t dataSize ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetRayTracingCaptureReplayShaderGroupHandlesKHR && "Function requires " ); @@ -21978,15 +21708,16 @@ namespace VULKAN_HPP_NAMESPACE groupCount, data.size() * sizeof( DataType ), reinterpret_cast( data.data() ) ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Pipeline::getRayTracingCaptureReplayShaderGroupHandlesKHR" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Pipeline::getRayTracingCaptureReplayShaderGroupHandlesKHR" ); - return data; + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( data ) ); } // wrapper function for command vkGetRayTracingCaptureReplayShaderGroupHandlesKHR, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetRayTracingCaptureReplayShaderGroupHandlesKHR.html template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE DataType Pipeline::getRayTracingCaptureReplayShaderGroupHandleKHR( uint32_t firstGroup, uint32_t groupCount ) const + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType::type + Pipeline::getRayTracingCaptureReplayShaderGroupHandleKHR( uint32_t firstGroup, uint32_t groupCount ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetRayTracingCaptureReplayShaderGroupHandlesKHR && "Function requires " ); @@ -21998,9 +21729,9 @@ namespace VULKAN_HPP_NAMESPACE groupCount, sizeof( DataType ), reinterpret_cast( &data ) ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Pipeline::getRayTracingCaptureReplayShaderGroupHandleKHR" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Pipeline::getRayTracingCaptureReplayShaderGroupHandleKHR" ); - return data; + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( data ) ); } // wrapper function for command vkCmdTraceRaysIndirectKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdTraceRaysIndirectKHR.html @@ -22048,9 +21779,9 @@ namespace VULKAN_HPP_NAMESPACE // wrapper function for command vkCreateSamplerYcbcrConversionKHR, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateSamplerYcbcrConversionKHR.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE detail::CreateReturnType::Type - Device::createSamplerYcbcrConversionKHR( SamplerYcbcrConversionCreateInfo const & createInfo, - Optional allocator ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType::type + Device::createSamplerYcbcrConversionKHR( SamplerYcbcrConversionCreateInfo const & createInfo, + Optional allocator ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS { VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion; Result result = @@ -22058,16 +21789,9 @@ namespace VULKAN_HPP_NAMESPACE reinterpret_cast( &createInfo ), reinterpret_cast( allocator.get() ), reinterpret_cast( &ycbcrConversion ) ) ); - if ( result != Result::eSuccess ) - { -# if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) - return VULKAN_HPP_UNEXPECTED( result ); -# else - VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createSamplerYcbcrConversionKHR" ); -# endif - } - - return SamplerYcbcrConversion( *this, *reinterpret_cast( &ycbcrConversion ), allocator ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::createSamplerYcbcrConversionKHR" ); + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( + result, SamplerYcbcrConversion( *this, *reinterpret_cast( &ycbcrConversion ), allocator ) ); } // wrapper function for command vkDestroySamplerYcbcrConversionKHR, see @@ -22086,30 +21810,34 @@ namespace VULKAN_HPP_NAMESPACE //=== VK_KHR_bind_memory2 === // wrapper function for command vkBindBufferMemory2KHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkBindBufferMemory2KHR.html - VULKAN_HPP_INLINE void Device::bindBufferMemory2KHR( ArrayProxy const & bindInfos ) const + VULKAN_HPP_INLINE typename ResultValueType::type Device::bindBufferMemory2KHR( ArrayProxy const & bindInfos ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkBindBufferMemory2KHR && "Function requires or " ); Result result = static_cast( getDispatcher()->vkBindBufferMemory2KHR( static_cast( m_device ), bindInfos.size(), reinterpret_cast( bindInfos.data() ) ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::bindBufferMemory2KHR" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::bindBufferMemory2KHR" ); + + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result ); } // wrapper function for command vkBindImageMemory2KHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkBindImageMemory2KHR.html - VULKAN_HPP_INLINE void Device::bindImageMemory2KHR( ArrayProxy const & bindInfos ) const + VULKAN_HPP_INLINE typename ResultValueType::type Device::bindImageMemory2KHR( ArrayProxy const & bindInfos ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkBindImageMemory2KHR && "Function requires or " ); Result result = static_cast( getDispatcher()->vkBindImageMemory2KHR( static_cast( m_device ), bindInfos.size(), reinterpret_cast( bindInfos.data() ) ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::bindImageMemory2KHR" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::bindImageMemory2KHR" ); + + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result ); } //=== VK_EXT_image_drm_format_modifier === // wrapper function for command vkGetImageDrmFormatModifierPropertiesEXT, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetImageDrmFormatModifierPropertiesEXT.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ImageDrmFormatModifierPropertiesEXT Image::getDrmFormatModifierPropertiesEXT() const + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType::type Image::getDrmFormatModifierPropertiesEXT() const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetImageDrmFormatModifierPropertiesEXT && "Function requires " ); @@ -22117,37 +21845,31 @@ namespace VULKAN_HPP_NAMESPACE ImageDrmFormatModifierPropertiesEXT properties; Result result = static_cast( getDispatcher()->vkGetImageDrmFormatModifierPropertiesEXT( static_cast( m_device ), static_cast( m_image ), reinterpret_cast( &properties ) ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Image::getDrmFormatModifierPropertiesEXT" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Image::getDrmFormatModifierPropertiesEXT" ); - return properties; + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( properties ) ); } //=== VK_EXT_validation_cache === // wrapper function for command vkCreateValidationCacheEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateValidationCacheEXT.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE detail::CreateReturnType::Type - Device::createValidationCacheEXT( ValidationCacheCreateInfoEXT const & createInfo, - Optional allocator ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType::type + Device::createValidationCacheEXT( ValidationCacheCreateInfoEXT const & createInfo, + Optional allocator ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS { VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache; Result result = static_cast( getDispatcher()->vkCreateValidationCacheEXT( static_cast( m_device ), reinterpret_cast( &createInfo ), reinterpret_cast( allocator.get() ), reinterpret_cast( &validationCache ) ) ); - if ( result != Result::eSuccess ) - { -# if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) - return VULKAN_HPP_UNEXPECTED( result ); -# else - VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createValidationCacheEXT" ); -# endif - } - - return ValidationCacheEXT( *this, *reinterpret_cast( &validationCache ), allocator ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::createValidationCacheEXT" ); + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( + result, ValidationCacheEXT( *this, *reinterpret_cast( &validationCache ), allocator ) ); } // wrapper function for command vkMergeValidationCachesEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkMergeValidationCachesEXT.html - VULKAN_HPP_INLINE void ValidationCacheEXT::merge( ArrayProxy const & srcCaches ) const + VULKAN_HPP_INLINE typename ResultValueType::type + ValidationCacheEXT::merge( ArrayProxy const & srcCaches ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkMergeValidationCachesEXT && "Function requires " ); @@ -22155,11 +21877,13 @@ namespace VULKAN_HPP_NAMESPACE static_cast( m_validationCacheEXT ), srcCaches.size(), reinterpret_cast( srcCaches.data() ) ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::ValidationCacheEXT::merge" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::ValidationCacheEXT::merge" ); + + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result ); } // wrapper function for command vkGetValidationCacheDataEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetValidationCacheDataEXT.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector ValidationCacheEXT::getData() const + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type ValidationCacheEXT::getData() const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetValidationCacheDataEXT && "Function requires " ); @@ -22179,13 +21903,13 @@ namespace VULKAN_HPP_NAMESPACE reinterpret_cast( data.data() ) ) ); } } while ( result == Result::eIncomplete ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::ValidationCacheEXT::getData" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::ValidationCacheEXT::getData" ); VULKAN_HPP_ASSERT( dataSize <= data.size() ); if ( dataSize < data.size() ) { data.resize( dataSize ); } - return data; + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( data ) ); } //=== VK_NV_shading_rate_image === @@ -22231,9 +21955,9 @@ namespace VULKAN_HPP_NAMESPACE // wrapper function for command vkCreateAccelerationStructureNV, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateAccelerationStructureNV.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE detail::CreateReturnType::Type - Device::createAccelerationStructureNV( AccelerationStructureCreateInfoNV const & createInfo, - Optional allocator ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType::type + Device::createAccelerationStructureNV( AccelerationStructureCreateInfoNV const & createInfo, + Optional allocator ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS { VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure; Result result = @@ -22241,16 +21965,9 @@ namespace VULKAN_HPP_NAMESPACE reinterpret_cast( &createInfo ), reinterpret_cast( allocator.get() ), reinterpret_cast( &accelerationStructure ) ) ); - if ( result != Result::eSuccess ) - { -# if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) - return VULKAN_HPP_UNEXPECTED( result ); -# else - VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createAccelerationStructureNV" ); -# endif - } - - return AccelerationStructureNV( *this, *reinterpret_cast( &accelerationStructure ), allocator ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::createAccelerationStructureNV" ); + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( + result, AccelerationStructureNV( *this, *reinterpret_cast( &accelerationStructure ), allocator ) ); } // wrapper function for command vkGetAccelerationStructureMemoryRequirementsNV, see @@ -22289,14 +22006,17 @@ namespace VULKAN_HPP_NAMESPACE // wrapper function for command vkBindAccelerationStructureMemoryNV, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkBindAccelerationStructureMemoryNV.html - VULKAN_HPP_INLINE void Device::bindAccelerationStructureMemoryNV( ArrayProxy const & bindInfos ) const + VULKAN_HPP_INLINE typename ResultValueType::type + Device::bindAccelerationStructureMemoryNV( ArrayProxy const & bindInfos ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkBindAccelerationStructureMemoryNV && "Function requires " ); Result result = static_cast( getDispatcher()->vkBindAccelerationStructureMemoryNV( static_cast( m_device ), bindInfos.size(), reinterpret_cast( bindInfos.data() ) ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::bindAccelerationStructureMemoryNV" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::bindAccelerationStructureMemoryNV" ); + + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result ); } // wrapper function for command vkCmdBuildAccelerationStructureNV, see @@ -22374,8 +22094,8 @@ namespace VULKAN_HPP_NAMESPACE // wrapper function for command vkCreateRayTracingPipelinesNV, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateRayTracingPipelinesNV.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE detail::CreateReturnType>::Type - Device::createRayTracingPipelinesNV( Optional const & pipelineCache, + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type + Device::createRayTracingPipelinesNV( Optional const & pipelineCache, ArrayProxy const & createInfos, Optional allocator ) const { @@ -22387,30 +22107,26 @@ namespace VULKAN_HPP_NAMESPACE reinterpret_cast( createInfos.data() ), reinterpret_cast( allocator.get() ), reinterpret_cast( pipelines.data() ) ) ); - if ( ( result != Result::eSuccess ) && ( result != Result::ePipelineCompileRequiredEXT ) ) - { -# if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) - return VULKAN_HPP_UNEXPECTED( result ); -# else - VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createRayTracingPipelinesNV" ); -# endif - } - + VULKAN_HPP_NAMESPACE::detail::resultCheck( + result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::createRayTracingPipelinesNV", { Result::eSuccess, Result::ePipelineCompileRequiredEXT } ); std::vector pipelinesRAII; - pipelinesRAII.reserve( pipelines.size() ); - for ( auto & pipeline : pipelines ) + if ( result == Result::eSuccess ) { - pipelinesRAII.emplace_back( *this, *reinterpret_cast( &pipeline ), allocator, result ); + pipelinesRAII.reserve( pipelines.size() ); + for ( auto & pipeline : pipelines ) + { + pipelinesRAII.emplace_back( *this, *reinterpret_cast( &pipeline ), allocator, result ); + } } - return pipelinesRAII; + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( pipelinesRAII ) ); } // wrapper function for command vkCreateRayTracingPipelinesNV, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateRayTracingPipelinesNV.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE detail::CreateReturnType::Type - Device::createRayTracingPipelineNV( Optional const & pipelineCache, + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType::type + Device::createRayTracingPipelineNV( Optional const & pipelineCache, RayTracingPipelineCreateInfoNV const & createInfo, - Optional allocator ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT + Optional allocator ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS { VULKAN_HPP_NAMESPACE::Pipeline pipeline; Result result = @@ -22420,23 +22136,16 @@ namespace VULKAN_HPP_NAMESPACE reinterpret_cast( &createInfo ), reinterpret_cast( allocator.get() ), reinterpret_cast( &pipeline ) ) ); - if ( ( result != Result::eSuccess ) && ( result != Result::ePipelineCompileRequiredEXT ) ) - { -# if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) - return VULKAN_HPP_UNEXPECTED( result ); -# else - VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createRayTracingPipelineNV" ); -# endif - } - - return Pipeline( *this, *reinterpret_cast( &pipeline ), allocator, result ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( + result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::createRayTracingPipelineNV", { Result::eSuccess, Result::ePipelineCompileRequiredEXT } ); + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, Pipeline( *this, *reinterpret_cast( &pipeline ), allocator, result ) ); } // wrapper function for command vkGetRayTracingShaderGroupHandlesNV, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetRayTracingShaderGroupHandlesNV.html template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector - Pipeline::getRayTracingShaderGroupHandlesNV( uint32_t firstGroup, uint32_t groupCount, size_t dataSize ) const + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type + Pipeline::getRayTracingShaderGroupHandlesNV( uint32_t firstGroup, uint32_t groupCount, size_t dataSize ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetRayTracingShaderGroupHandlesNV && "Function requires or " ); @@ -22449,15 +22158,16 @@ namespace VULKAN_HPP_NAMESPACE groupCount, data.size() * sizeof( DataType ), reinterpret_cast( data.data() ) ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Pipeline::getRayTracingShaderGroupHandlesNV" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Pipeline::getRayTracingShaderGroupHandlesNV" ); - return data; + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( data ) ); } // wrapper function for command vkGetRayTracingShaderGroupHandlesNV, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetRayTracingShaderGroupHandlesNV.html template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE DataType Pipeline::getRayTracingShaderGroupHandleNV( uint32_t firstGroup, uint32_t groupCount ) const + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType::type Pipeline::getRayTracingShaderGroupHandleNV( uint32_t firstGroup, + uint32_t groupCount ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetRayTracingShaderGroupHandlesNV && "Function requires or " ); @@ -22469,15 +22179,15 @@ namespace VULKAN_HPP_NAMESPACE groupCount, sizeof( DataType ), reinterpret_cast( &data ) ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Pipeline::getRayTracingShaderGroupHandleNV" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Pipeline::getRayTracingShaderGroupHandleNV" ); - return data; + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( data ) ); } // wrapper function for command vkGetAccelerationStructureHandleNV, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetAccelerationStructureHandleNV.html template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector AccelerationStructureNV::getHandle( size_t dataSize ) const + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type AccelerationStructureNV::getHandle( size_t dataSize ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetAccelerationStructureHandleNV && "Function requires " ); @@ -22488,15 +22198,15 @@ namespace VULKAN_HPP_NAMESPACE static_cast( m_accelerationStructureNV ), data.size() * sizeof( DataType ), reinterpret_cast( data.data() ) ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::AccelerationStructureNV::getHandle" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::AccelerationStructureNV::getHandle" ); - return data; + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( data ) ); } // wrapper function for command vkGetAccelerationStructureHandleNV, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetAccelerationStructureHandleNV.html template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE DataType AccelerationStructureNV::getHandle() const + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType::type AccelerationStructureNV::getHandle() const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetAccelerationStructureHandleNV && "Function requires " ); @@ -22506,9 +22216,9 @@ namespace VULKAN_HPP_NAMESPACE static_cast( m_accelerationStructureNV ), sizeof( DataType ), reinterpret_cast( &data ) ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::AccelerationStructureNV::getHandle" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::AccelerationStructureNV::getHandle" ); - return data; + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( data ) ); } // wrapper function for command vkCmdWriteAccelerationStructuresPropertiesNV, see @@ -22531,13 +22241,15 @@ namespace VULKAN_HPP_NAMESPACE } // wrapper function for command vkCompileDeferredNV, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCompileDeferredNV.html - VULKAN_HPP_INLINE void Pipeline::compileDeferredNV( uint32_t shader ) const + VULKAN_HPP_INLINE typename ResultValueType::type Pipeline::compileDeferredNV( uint32_t shader ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkCompileDeferredNV && "Function requires " ); Result result = static_cast( getDispatcher()->vkCompileDeferredNV( static_cast( m_device ), static_cast( m_pipeline ), shader ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Pipeline::compileDeferredNV" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Pipeline::compileDeferredNV" ); + + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result ); } //=== VK_KHR_maintenance3 === @@ -22624,8 +22336,8 @@ namespace VULKAN_HPP_NAMESPACE // wrapper function for command vkGetMemoryHostPointerPropertiesEXT, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetMemoryHostPointerPropertiesEXT.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE MemoryHostPointerPropertiesEXT - Device::getMemoryHostPointerPropertiesEXT( ExternalMemoryHandleTypeFlagBits handleType, const void * pHostPointer ) const + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType::type + Device::getMemoryHostPointerPropertiesEXT( ExternalMemoryHandleTypeFlagBits handleType, const void * pHostPointer ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetMemoryHostPointerPropertiesEXT && "Function requires " ); @@ -22636,9 +22348,9 @@ namespace VULKAN_HPP_NAMESPACE static_cast( handleType ), pHostPointer, reinterpret_cast( &memoryHostPointerProperties ) ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getMemoryHostPointerPropertiesEXT" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::getMemoryHostPointerPropertiesEXT" ); - return memoryHostPointerProperties; + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( memoryHostPointerProperties ) ); } //=== VK_AMD_buffer_marker === @@ -22677,7 +22389,7 @@ namespace VULKAN_HPP_NAMESPACE // wrapper function for command vkGetPhysicalDeviceCalibrateableTimeDomainsEXT, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceCalibrateableTimeDomainsEXT.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector PhysicalDevice::getCalibrateableTimeDomainsEXT() const + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type PhysicalDevice::getCalibrateableTimeDomainsEXT() const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceCalibrateableTimeDomainsEXT && @@ -22697,19 +22409,19 @@ namespace VULKAN_HPP_NAMESPACE static_cast( m_physicalDevice ), &timeDomainCount, reinterpret_cast( timeDomains.data() ) ) ); } } while ( result == Result::eIncomplete ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getCalibrateableTimeDomainsEXT" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::PhysicalDevice::getCalibrateableTimeDomainsEXT" ); VULKAN_HPP_ASSERT( timeDomainCount <= timeDomains.size() ); if ( timeDomainCount < timeDomains.size() ) { timeDomains.resize( timeDomainCount ); } - return timeDomains; + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( timeDomains ) ); } // wrapper function for command vkGetCalibratedTimestampsEXT, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetCalibratedTimestampsEXT.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::pair, uint64_t> - Device::getCalibratedTimestampsEXT( ArrayProxy const & timestampInfos ) const + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType, uint64_t>>::type + Device::getCalibratedTimestampsEXT( ArrayProxy const & timestampInfos ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetCalibratedTimestampsEXT && "Function requires or " ); @@ -22723,15 +22435,15 @@ namespace VULKAN_HPP_NAMESPACE reinterpret_cast( timestampInfos.data() ), timestamps.data(), &maxDeviation ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getCalibratedTimestampsEXT" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::getCalibratedTimestampsEXT" ); - return data_; + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( data_ ) ); } // wrapper function for command vkGetCalibratedTimestampsEXT, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetCalibratedTimestampsEXT.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::pair - Device::getCalibratedTimestampEXT( const CalibratedTimestampInfoKHR & timestampInfo ) const + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type + Device::getCalibratedTimestampEXT( const CalibratedTimestampInfoKHR & timestampInfo ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetCalibratedTimestampsEXT && "Function requires or " ); @@ -22741,9 +22453,9 @@ namespace VULKAN_HPP_NAMESPACE uint64_t & maxDeviation = data_.second; Result result = static_cast( getDispatcher()->vkGetCalibratedTimestampsEXT( static_cast( m_device ), 1, reinterpret_cast( ×tampInfo ), ×tamp, &maxDeviation ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getCalibratedTimestampEXT" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::getCalibratedTimestampEXT" ); - return data_; + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( data_ ) ); } //=== VK_NV_mesh_shader === @@ -22874,7 +22586,7 @@ namespace VULKAN_HPP_NAMESPACE // wrapper function for command vkGetSemaphoreCounterValueKHR, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetSemaphoreCounterValueKHR.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE uint64_t Semaphore::getCounterValueKHR() const + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType::type Semaphore::getCounterValueKHR() const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetSemaphoreCounterValueKHR && "Function requires or " ); @@ -22882,9 +22594,9 @@ namespace VULKAN_HPP_NAMESPACE uint64_t value; Result result = static_cast( getDispatcher()->vkGetSemaphoreCounterValueKHR( static_cast( m_device ), static_cast( m_semaphore ), &value ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Semaphore::getCounterValueKHR" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Semaphore::getCounterValueKHR" ); - return value; + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( value ) ); } // wrapper function for command vkWaitSemaphoresKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkWaitSemaphoresKHR.html @@ -22894,33 +22606,39 @@ namespace VULKAN_HPP_NAMESPACE Result result = static_cast( getDispatcher()->vkWaitSemaphoresKHR( static_cast( m_device ), reinterpret_cast( &waitInfo ), timeout ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::waitSemaphoresKHR", { Result::eSuccess, Result::eTimeout } ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( + result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::waitSemaphoresKHR", { Result::eSuccess, Result::eTimeout } ); return static_cast( result ); } // wrapper function for command vkSignalSemaphoreKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkSignalSemaphoreKHR.html - VULKAN_HPP_INLINE void Device::signalSemaphoreKHR( const SemaphoreSignalInfo & signalInfo ) const + VULKAN_HPP_INLINE typename ResultValueType::type Device::signalSemaphoreKHR( const SemaphoreSignalInfo & signalInfo ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkSignalSemaphoreKHR && "Function requires or " ); Result result = static_cast( getDispatcher()->vkSignalSemaphoreKHR( static_cast( m_device ), reinterpret_cast( &signalInfo ) ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::signalSemaphoreKHR" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::signalSemaphoreKHR" ); + + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result ); } //=== VK_INTEL_performance_query === // wrapper function for command vkInitializePerformanceApiINTEL, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkInitializePerformanceApiINTEL.html - VULKAN_HPP_INLINE void Device::initializePerformanceApiINTEL( const InitializePerformanceApiInfoINTEL & initializeInfo ) const + VULKAN_HPP_INLINE typename ResultValueType::type + Device::initializePerformanceApiINTEL( const InitializePerformanceApiInfoINTEL & initializeInfo ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkInitializePerformanceApiINTEL && "Function requires " ); Result result = static_cast( getDispatcher()->vkInitializePerformanceApiINTEL( static_cast( m_device ), reinterpret_cast( &initializeInfo ) ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::initializePerformanceApiINTEL" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::initializePerformanceApiINTEL" ); + + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result ); } // wrapper function for command vkUninitializePerformanceApiINTEL, see @@ -22935,85 +22653,89 @@ namespace VULKAN_HPP_NAMESPACE // wrapper function for command vkCmdSetPerformanceMarkerINTEL, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetPerformanceMarkerINTEL.html - VULKAN_HPP_INLINE void CommandBuffer::setPerformanceMarkerINTEL( const PerformanceMarkerInfoINTEL & markerInfo ) const + VULKAN_HPP_INLINE typename ResultValueType::type CommandBuffer::setPerformanceMarkerINTEL( const PerformanceMarkerInfoINTEL & markerInfo ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetPerformanceMarkerINTEL && "Function requires " ); Result result = static_cast( getDispatcher()->vkCmdSetPerformanceMarkerINTEL( static_cast( m_commandBuffer ), reinterpret_cast( &markerInfo ) ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::setPerformanceMarkerINTEL" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::CommandBuffer::setPerformanceMarkerINTEL" ); + + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result ); } // wrapper function for command vkCmdSetPerformanceStreamMarkerINTEL, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetPerformanceStreamMarkerINTEL.html - VULKAN_HPP_INLINE void CommandBuffer::setPerformanceStreamMarkerINTEL( const PerformanceStreamMarkerInfoINTEL & markerInfo ) const + VULKAN_HPP_INLINE typename ResultValueType::type + CommandBuffer::setPerformanceStreamMarkerINTEL( const PerformanceStreamMarkerInfoINTEL & markerInfo ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetPerformanceStreamMarkerINTEL && "Function requires " ); Result result = static_cast( getDispatcher()->vkCmdSetPerformanceStreamMarkerINTEL( static_cast( m_commandBuffer ), reinterpret_cast( &markerInfo ) ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::setPerformanceStreamMarkerINTEL" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::CommandBuffer::setPerformanceStreamMarkerINTEL" ); + + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result ); } // wrapper function for command vkCmdSetPerformanceOverrideINTEL, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetPerformanceOverrideINTEL.html - VULKAN_HPP_INLINE void CommandBuffer::setPerformanceOverrideINTEL( const PerformanceOverrideInfoINTEL & overrideInfo ) const + VULKAN_HPP_INLINE typename ResultValueType::type CommandBuffer::setPerformanceOverrideINTEL( const PerformanceOverrideInfoINTEL & overrideInfo ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetPerformanceOverrideINTEL && "Function requires " ); Result result = static_cast( getDispatcher()->vkCmdSetPerformanceOverrideINTEL( static_cast( m_commandBuffer ), reinterpret_cast( &overrideInfo ) ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::setPerformanceOverrideINTEL" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::CommandBuffer::setPerformanceOverrideINTEL" ); + + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result ); } // wrapper function for command vkAcquirePerformanceConfigurationINTEL, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkAcquirePerformanceConfigurationINTEL.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE detail::CreateReturnType::Type - Device::acquirePerformanceConfigurationINTEL( PerformanceConfigurationAcquireInfoINTEL const & acquireInfo ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType::type + Device::acquirePerformanceConfigurationINTEL( PerformanceConfigurationAcquireInfoINTEL const & acquireInfo ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS { VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration; Result result = static_cast( getDispatcher()->vkAcquirePerformanceConfigurationINTEL( static_cast( m_device ), reinterpret_cast( &acquireInfo ), reinterpret_cast( &configuration ) ) ); - if ( result != Result::eSuccess ) - { -# if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) - return VULKAN_HPP_UNEXPECTED( result ); -# else - VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::acquirePerformanceConfigurationINTEL" ); -# endif - } - - return PerformanceConfigurationINTEL( *this, *reinterpret_cast( &configuration ) ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::acquirePerformanceConfigurationINTEL" ); + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( + result, PerformanceConfigurationINTEL( *this, *reinterpret_cast( &configuration ) ) ); } // wrapper function for command vkQueueSetPerformanceConfigurationINTEL, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkQueueSetPerformanceConfigurationINTEL.html - VULKAN_HPP_INLINE void Queue::setPerformanceConfigurationINTEL( VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration ) const + VULKAN_HPP_INLINE typename ResultValueType::type + Queue::setPerformanceConfigurationINTEL( VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkQueueSetPerformanceConfigurationINTEL && "Function requires " ); Result result = static_cast( getDispatcher()->vkQueueSetPerformanceConfigurationINTEL( static_cast( m_queue ), static_cast( configuration ) ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Queue::setPerformanceConfigurationINTEL" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Queue::setPerformanceConfigurationINTEL" ); + + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result ); } // wrapper function for command vkGetPerformanceParameterINTEL, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPerformanceParameterINTEL.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE PerformanceValueINTEL Device::getPerformanceParameterINTEL( PerformanceParameterTypeINTEL parameter ) const + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType::type + Device::getPerformanceParameterINTEL( PerformanceParameterTypeINTEL parameter ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetPerformanceParameterINTEL && "Function requires " ); PerformanceValueINTEL value; Result result = static_cast( getDispatcher()->vkGetPerformanceParameterINTEL( static_cast( m_device ), static_cast( parameter ), reinterpret_cast( &value ) ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getPerformanceParameterINTEL" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::getPerformanceParameterINTEL" ); - return value; + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( value ) ); } //=== VK_AMD_display_native_hdr === @@ -23032,9 +22754,9 @@ namespace VULKAN_HPP_NAMESPACE // wrapper function for command vkCreateImagePipeSurfaceFUCHSIA, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateImagePipeSurfaceFUCHSIA.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE detail::CreateReturnType::Type - Instance::createImagePipeSurfaceFUCHSIA( ImagePipeSurfaceCreateInfoFUCHSIA const & createInfo, - Optional allocator ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType::type + Instance::createImagePipeSurfaceFUCHSIA( ImagePipeSurfaceCreateInfoFUCHSIA const & createInfo, + Optional allocator ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS { VULKAN_HPP_NAMESPACE::SurfaceKHR surface; Result result = @@ -23042,16 +22764,8 @@ namespace VULKAN_HPP_NAMESPACE reinterpret_cast( &createInfo ), reinterpret_cast( allocator.get() ), reinterpret_cast( &surface ) ) ); - if ( result != Result::eSuccess ) - { -# if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) - return VULKAN_HPP_UNEXPECTED( result ); -# else - VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Instance::createImagePipeSurfaceFUCHSIA" ); -# endif - } - - return SurfaceKHR( *this, *reinterpret_cast( &surface ), allocator ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Instance::createImagePipeSurfaceFUCHSIA" ); + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, SurfaceKHR( *this, *reinterpret_cast( &surface ), allocator ) ); } # endif /*VK_USE_PLATFORM_FUCHSIA*/ @@ -23059,25 +22773,17 @@ namespace VULKAN_HPP_NAMESPACE //=== VK_EXT_metal_surface === // wrapper function for command vkCreateMetalSurfaceEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateMetalSurfaceEXT.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE detail::CreateReturnType::Type - Instance::createMetalSurfaceEXT( MetalSurfaceCreateInfoEXT const & createInfo, - Optional allocator ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType::type + Instance::createMetalSurfaceEXT( MetalSurfaceCreateInfoEXT const & createInfo, + Optional allocator ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS { VULKAN_HPP_NAMESPACE::SurfaceKHR surface; Result result = static_cast( getDispatcher()->vkCreateMetalSurfaceEXT( static_cast( m_instance ), reinterpret_cast( &createInfo ), reinterpret_cast( allocator.get() ), reinterpret_cast( &surface ) ) ); - if ( result != Result::eSuccess ) - { -# if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) - return VULKAN_HPP_UNEXPECTED( result ); -# else - VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Instance::createMetalSurfaceEXT" ); -# endif - } - - return SurfaceKHR( *this, *reinterpret_cast( &surface ), allocator ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Instance::createMetalSurfaceEXT" ); + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, SurfaceKHR( *this, *reinterpret_cast( &surface ), allocator ) ); } # endif /*VK_USE_PLATFORM_METAL_EXT*/ @@ -23085,7 +22791,8 @@ namespace VULKAN_HPP_NAMESPACE // wrapper function for command vkGetPhysicalDeviceFragmentShadingRatesKHR, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceFragmentShadingRatesKHR.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector PhysicalDevice::getFragmentShadingRatesKHR() const + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type + PhysicalDevice::getFragmentShadingRatesKHR() const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceFragmentShadingRatesKHR && "Function requires " ); @@ -23106,13 +22813,13 @@ namespace VULKAN_HPP_NAMESPACE reinterpret_cast( fragmentShadingRates.data() ) ) ); } } while ( result == Result::eIncomplete ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getFragmentShadingRatesKHR" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::PhysicalDevice::getFragmentShadingRatesKHR" ); VULKAN_HPP_ASSERT( fragmentShadingRateCount <= fragmentShadingRates.size() ); if ( fragmentShadingRateCount < fragmentShadingRates.size() ) { fragmentShadingRates.resize( fragmentShadingRateCount ); } - return fragmentShadingRates; + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( fragmentShadingRates ) ); } // wrapper function for command vkCmdSetFragmentShadingRateKHR, see @@ -23172,7 +22879,8 @@ namespace VULKAN_HPP_NAMESPACE // wrapper function for command vkGetPhysicalDeviceToolPropertiesEXT, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceToolPropertiesEXT.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector PhysicalDevice::getToolPropertiesEXT() const + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type + PhysicalDevice::getToolPropertiesEXT() const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceToolPropertiesEXT && "Function requires or " ); @@ -23191,13 +22899,13 @@ namespace VULKAN_HPP_NAMESPACE static_cast( m_physicalDevice ), &toolCount, reinterpret_cast( toolProperties.data() ) ) ); } } while ( result == Result::eIncomplete ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getToolPropertiesEXT" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::PhysicalDevice::getToolPropertiesEXT" ); VULKAN_HPP_ASSERT( toolCount <= toolProperties.size() ); if ( toolCount < toolProperties.size() ) { toolProperties.resize( toolCount ); } - return toolProperties; + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( toolProperties ) ); } //=== VK_KHR_present_wait === @@ -23210,7 +22918,7 @@ namespace VULKAN_HPP_NAMESPACE Result result = static_cast( getDispatcher()->vkWaitForPresentKHR( static_cast( m_device ), static_cast( m_swapchainKHR ), presentId, timeout ) ); VULKAN_HPP_NAMESPACE::detail::resultCheck( - result, VULKAN_HPP_NAMESPACE_STRING "::SwapchainKHR::waitForPresent", { Result::eSuccess, Result::eTimeout, Result::eSuboptimalKHR } ); + result, VULKAN_HPP_RAII_NAMESPACE_STRING "::SwapchainKHR::waitForPresent", { Result::eSuccess, Result::eTimeout, Result::eSuboptimalKHR } ); return static_cast( result ); } @@ -23219,7 +22927,8 @@ namespace VULKAN_HPP_NAMESPACE // wrapper function for command vkGetPhysicalDeviceCooperativeMatrixPropertiesNV, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceCooperativeMatrixPropertiesNV.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector PhysicalDevice::getCooperativeMatrixPropertiesNV() const + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type + PhysicalDevice::getCooperativeMatrixPropertiesNV() const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceCooperativeMatrixPropertiesNV && "Function requires " ); @@ -23238,21 +22947,21 @@ namespace VULKAN_HPP_NAMESPACE static_cast( m_physicalDevice ), &propertyCount, reinterpret_cast( properties.data() ) ) ); } } while ( result == Result::eIncomplete ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getCooperativeMatrixPropertiesNV" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::PhysicalDevice::getCooperativeMatrixPropertiesNV" ); VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); if ( propertyCount < properties.size() ) { properties.resize( propertyCount ); } - return properties; + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( properties ) ); } //=== VK_NV_coverage_reduction_mode === // wrapper function for command vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector - PhysicalDevice::getSupportedFramebufferMixedSamplesCombinationsNV() const + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type + PhysicalDevice::getSupportedFramebufferMixedSamplesCombinationsNV() const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV && "Function requires " ); @@ -23273,13 +22982,14 @@ namespace VULKAN_HPP_NAMESPACE reinterpret_cast( combinations.data() ) ) ); } } while ( result == Result::eIncomplete ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSupportedFramebufferMixedSamplesCombinationsNV" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, + VULKAN_HPP_RAII_NAMESPACE_STRING "::PhysicalDevice::getSupportedFramebufferMixedSamplesCombinationsNV" ); VULKAN_HPP_ASSERT( combinationCount <= combinations.size() ); if ( combinationCount < combinations.size() ) { combinations.resize( combinationCount ); } - return combinations; + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( combinations ) ); } # if defined( VK_USE_PLATFORM_WIN32_KHR ) @@ -23287,8 +22997,8 @@ namespace VULKAN_HPP_NAMESPACE // wrapper function for command vkGetPhysicalDeviceSurfacePresentModes2EXT, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceSurfacePresentModes2EXT.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector - PhysicalDevice::getSurfacePresentModes2EXT( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo ) const + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type + PhysicalDevice::getSurfacePresentModes2EXT( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceSurfacePresentModes2EXT && "Function requires " ); @@ -23313,43 +23023,47 @@ namespace VULKAN_HPP_NAMESPACE reinterpret_cast( presentModes.data() ) ) ); } } while ( result == Result::eIncomplete ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSurfacePresentModes2EXT" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::PhysicalDevice::getSurfacePresentModes2EXT" ); VULKAN_HPP_ASSERT( presentModeCount <= presentModes.size() ); if ( presentModeCount < presentModes.size() ) { presentModes.resize( presentModeCount ); } - return presentModes; + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( presentModes ) ); } // wrapper function for command vkAcquireFullScreenExclusiveModeEXT, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkAcquireFullScreenExclusiveModeEXT.html - VULKAN_HPP_INLINE void SwapchainKHR::acquireFullScreenExclusiveModeEXT() const + VULKAN_HPP_INLINE typename ResultValueType::type SwapchainKHR::acquireFullScreenExclusiveModeEXT() const { VULKAN_HPP_ASSERT( getDispatcher()->vkAcquireFullScreenExclusiveModeEXT && "Function requires " ); Result result = static_cast( getDispatcher()->vkAcquireFullScreenExclusiveModeEXT( static_cast( m_device ), static_cast( m_swapchainKHR ) ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::SwapchainKHR::acquireFullScreenExclusiveModeEXT" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::SwapchainKHR::acquireFullScreenExclusiveModeEXT" ); + + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result ); } // wrapper function for command vkReleaseFullScreenExclusiveModeEXT, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkReleaseFullScreenExclusiveModeEXT.html - VULKAN_HPP_INLINE void SwapchainKHR::releaseFullScreenExclusiveModeEXT() const + VULKAN_HPP_INLINE typename ResultValueType::type SwapchainKHR::releaseFullScreenExclusiveModeEXT() const { VULKAN_HPP_ASSERT( getDispatcher()->vkReleaseFullScreenExclusiveModeEXT && "Function requires " ); Result result = static_cast( getDispatcher()->vkReleaseFullScreenExclusiveModeEXT( static_cast( m_device ), static_cast( m_swapchainKHR ) ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::SwapchainKHR::releaseFullScreenExclusiveModeEXT" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::SwapchainKHR::releaseFullScreenExclusiveModeEXT" ); + + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result ); } // wrapper function for command vkGetDeviceGroupSurfacePresentModes2EXT, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDeviceGroupSurfacePresentModes2EXT.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE DeviceGroupPresentModeFlagsKHR - Device::getGroupSurfacePresentModes2EXT( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo ) const + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType::type + Device::getGroupSurfacePresentModes2EXT( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetDeviceGroupSurfacePresentModes2EXT && "Function requires " ); @@ -23359,34 +23073,26 @@ namespace VULKAN_HPP_NAMESPACE getDispatcher()->vkGetDeviceGroupSurfacePresentModes2EXT( static_cast( m_device ), reinterpret_cast( &surfaceInfo ), reinterpret_cast( &modes ) ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getGroupSurfacePresentModes2EXT" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::getGroupSurfacePresentModes2EXT" ); - return modes; + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( modes ) ); } # endif /*VK_USE_PLATFORM_WIN32_KHR*/ //=== VK_EXT_headless_surface === // wrapper function for command vkCreateHeadlessSurfaceEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateHeadlessSurfaceEXT.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE detail::CreateReturnType::Type - Instance::createHeadlessSurfaceEXT( HeadlessSurfaceCreateInfoEXT const & createInfo, - Optional allocator ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType::type + Instance::createHeadlessSurfaceEXT( HeadlessSurfaceCreateInfoEXT const & createInfo, + Optional allocator ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS { VULKAN_HPP_NAMESPACE::SurfaceKHR surface; Result result = static_cast( getDispatcher()->vkCreateHeadlessSurfaceEXT( static_cast( m_instance ), reinterpret_cast( &createInfo ), reinterpret_cast( allocator.get() ), reinterpret_cast( &surface ) ) ); - if ( result != Result::eSuccess ) - { -# if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) - return VULKAN_HPP_UNEXPECTED( result ); -# else - VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Instance::createHeadlessSurfaceEXT" ); -# endif - } - - return SurfaceKHR( *this, *reinterpret_cast( &surface ), allocator ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Instance::createHeadlessSurfaceEXT" ); + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, SurfaceKHR( *this, *reinterpret_cast( &surface ), allocator ) ); } //=== VK_KHR_buffer_device_address === @@ -23606,23 +23312,16 @@ namespace VULKAN_HPP_NAMESPACE // wrapper function for command vkCreateDeferredOperationKHR, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateDeferredOperationKHR.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE detail::CreateReturnType::Type - Device::createDeferredOperationKHR( Optional allocator ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType::type + Device::createDeferredOperationKHR( Optional allocator ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS { VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation; Result result = static_cast( getDispatcher()->vkCreateDeferredOperationKHR( static_cast( m_device ), reinterpret_cast( allocator.get() ), reinterpret_cast( &deferredOperation ) ) ); - if ( result != Result::eSuccess ) - { -# if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) - return VULKAN_HPP_UNEXPECTED( result ); -# else - VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createDeferredOperationKHR" ); -# endif - } - - return DeferredOperationKHR( *this, *reinterpret_cast( &deferredOperation ), allocator ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::createDeferredOperationKHR" ); + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( + result, DeferredOperationKHR( *this, *reinterpret_cast( &deferredOperation ), allocator ) ); } // wrapper function for command vkGetDeferredOperationMaxConcurrencyKHR, see @@ -23648,7 +23347,7 @@ namespace VULKAN_HPP_NAMESPACE Result result = static_cast( getDispatcher()->vkGetDeferredOperationResultKHR( static_cast( m_device ), static_cast( m_deferredOperationKHR ) ) ); VULKAN_HPP_NAMESPACE::detail::resultCheck( - result, VULKAN_HPP_NAMESPACE_STRING "::DeferredOperationKHR::getResult", { Result::eSuccess, Result::eNotReady } ); + result, VULKAN_HPP_RAII_NAMESPACE_STRING "::DeferredOperationKHR::getResult", { Result::eSuccess, Result::eNotReady } ); return static_cast( result ); } @@ -23661,7 +23360,7 @@ namespace VULKAN_HPP_NAMESPACE Result result = static_cast( getDispatcher()->vkDeferredOperationJoinKHR( static_cast( m_device ), static_cast( m_deferredOperationKHR ) ) ); VULKAN_HPP_NAMESPACE::detail::resultCheck( - result, VULKAN_HPP_NAMESPACE_STRING "::DeferredOperationKHR::join", { Result::eSuccess, Result::eThreadDoneKHR, Result::eThreadIdleKHR } ); + result, VULKAN_HPP_RAII_NAMESPACE_STRING "::DeferredOperationKHR::join", { Result::eSuccess, Result::eThreadDoneKHR, Result::eThreadIdleKHR } ); return static_cast( result ); } @@ -23670,8 +23369,8 @@ namespace VULKAN_HPP_NAMESPACE // wrapper function for command vkGetPipelineExecutablePropertiesKHR, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPipelineExecutablePropertiesKHR.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector - Device::getPipelineExecutablePropertiesKHR( const PipelineInfoKHR & pipelineInfo ) const + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type + Device::getPipelineExecutablePropertiesKHR( const PipelineInfoKHR & pipelineInfo ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetPipelineExecutablePropertiesKHR && "Function requires " ); @@ -23693,19 +23392,19 @@ namespace VULKAN_HPP_NAMESPACE reinterpret_cast( properties.data() ) ) ); } } while ( result == Result::eIncomplete ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getPipelineExecutablePropertiesKHR" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::getPipelineExecutablePropertiesKHR" ); VULKAN_HPP_ASSERT( executableCount <= properties.size() ); if ( executableCount < properties.size() ) { properties.resize( executableCount ); } - return properties; + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( properties ) ); } // wrapper function for command vkGetPipelineExecutableStatisticsKHR, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPipelineExecutableStatisticsKHR.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector - Device::getPipelineExecutableStatisticsKHR( const PipelineExecutableInfoKHR & executableInfo ) const + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type + Device::getPipelineExecutableStatisticsKHR( const PipelineExecutableInfoKHR & executableInfo ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetPipelineExecutableStatisticsKHR && "Function requires " ); @@ -23727,19 +23426,19 @@ namespace VULKAN_HPP_NAMESPACE reinterpret_cast( statistics.data() ) ) ); } } while ( result == Result::eIncomplete ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getPipelineExecutableStatisticsKHR" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::getPipelineExecutableStatisticsKHR" ); VULKAN_HPP_ASSERT( statisticCount <= statistics.size() ); if ( statisticCount < statistics.size() ) { statistics.resize( statisticCount ); } - return statistics; + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( statistics ) ); } // wrapper function for command vkGetPipelineExecutableInternalRepresentationsKHR, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPipelineExecutableInternalRepresentationsKHR.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector - Device::getPipelineExecutableInternalRepresentationsKHR( const PipelineExecutableInfoKHR & executableInfo ) const + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type + Device::getPipelineExecutableInternalRepresentationsKHR( const PipelineExecutableInfoKHR & executableInfo ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetPipelineExecutableInternalRepresentationsKHR && "Function requires " ); @@ -23764,56 +23463,65 @@ namespace VULKAN_HPP_NAMESPACE reinterpret_cast( internalRepresentations.data() ) ) ); } } while ( result == Result::eIncomplete ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getPipelineExecutableInternalRepresentationsKHR" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::getPipelineExecutableInternalRepresentationsKHR" ); VULKAN_HPP_ASSERT( internalRepresentationCount <= internalRepresentations.size() ); if ( internalRepresentationCount < internalRepresentations.size() ) { internalRepresentations.resize( internalRepresentationCount ); } - return internalRepresentations; + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( internalRepresentations ) ); } //=== VK_EXT_host_image_copy === // wrapper function for command vkCopyMemoryToImageEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCopyMemoryToImageEXT.html - VULKAN_HPP_INLINE void Device::copyMemoryToImageEXT( const CopyMemoryToImageInfo & copyMemoryToImageInfo ) const + VULKAN_HPP_INLINE typename ResultValueType::type Device::copyMemoryToImageEXT( const CopyMemoryToImageInfo & copyMemoryToImageInfo ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkCopyMemoryToImageEXT && "Function requires or " ); Result result = static_cast( getDispatcher()->vkCopyMemoryToImageEXT( static_cast( m_device ), reinterpret_cast( ©MemoryToImageInfo ) ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::copyMemoryToImageEXT" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::copyMemoryToImageEXT" ); + + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result ); } // wrapper function for command vkCopyImageToMemoryEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCopyImageToMemoryEXT.html - VULKAN_HPP_INLINE void Device::copyImageToMemoryEXT( const CopyImageToMemoryInfo & copyImageToMemoryInfo ) const + VULKAN_HPP_INLINE typename ResultValueType::type Device::copyImageToMemoryEXT( const CopyImageToMemoryInfo & copyImageToMemoryInfo ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkCopyImageToMemoryEXT && "Function requires or " ); Result result = static_cast( getDispatcher()->vkCopyImageToMemoryEXT( static_cast( m_device ), reinterpret_cast( ©ImageToMemoryInfo ) ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::copyImageToMemoryEXT" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::copyImageToMemoryEXT" ); + + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result ); } // wrapper function for command vkCopyImageToImageEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCopyImageToImageEXT.html - VULKAN_HPP_INLINE void Device::copyImageToImageEXT( const CopyImageToImageInfo & copyImageToImageInfo ) const + VULKAN_HPP_INLINE typename ResultValueType::type Device::copyImageToImageEXT( const CopyImageToImageInfo & copyImageToImageInfo ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkCopyImageToImageEXT && "Function requires or " ); Result result = static_cast( getDispatcher()->vkCopyImageToImageEXT( static_cast( m_device ), reinterpret_cast( ©ImageToImageInfo ) ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::copyImageToImageEXT" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::copyImageToImageEXT" ); + + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result ); } // wrapper function for command vkTransitionImageLayoutEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkTransitionImageLayoutEXT.html - VULKAN_HPP_INLINE void Device::transitionImageLayoutEXT( ArrayProxy const & transitions ) const + VULKAN_HPP_INLINE typename ResultValueType::type + Device::transitionImageLayoutEXT( ArrayProxy const & transitions ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkTransitionImageLayoutEXT && "Function requires or " ); Result result = static_cast( getDispatcher()->vkTransitionImageLayoutEXT( static_cast( m_device ), transitions.size(), reinterpret_cast( transitions.data() ) ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::transitionImageLayoutEXT" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::transitionImageLayoutEXT" ); + + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result ); } // wrapper function for command vkGetImageSubresourceLayout2EXT, see @@ -23856,39 +23564,43 @@ namespace VULKAN_HPP_NAMESPACE //=== VK_KHR_map_memory2 === // wrapper function for command vkMapMemory2KHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkMapMemory2KHR.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE void * Device::mapMemory2KHR( const MemoryMapInfo & memoryMapInfo ) const + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType::type Device::mapMemory2KHR( const MemoryMapInfo & memoryMapInfo ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkMapMemory2KHR && "Function requires or " ); void * pData; Result result = static_cast( getDispatcher()->vkMapMemory2KHR( static_cast( m_device ), reinterpret_cast( &memoryMapInfo ), &pData ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::mapMemory2KHR" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::mapMemory2KHR" ); - return pData; + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( pData ) ); } // wrapper function for command vkUnmapMemory2KHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkUnmapMemory2KHR.html - VULKAN_HPP_INLINE void Device::unmapMemory2KHR( const MemoryUnmapInfo & memoryUnmapInfo ) const + VULKAN_HPP_INLINE typename ResultValueType::type Device::unmapMemory2KHR( const MemoryUnmapInfo & memoryUnmapInfo ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkUnmapMemory2KHR && "Function requires or " ); Result result = static_cast( getDispatcher()->vkUnmapMemory2KHR( static_cast( m_device ), reinterpret_cast( &memoryUnmapInfo ) ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::unmapMemory2KHR" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::unmapMemory2KHR" ); + + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result ); } //=== VK_EXT_swapchain_maintenance1 === // wrapper function for command vkReleaseSwapchainImagesEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkReleaseSwapchainImagesEXT.html - VULKAN_HPP_INLINE void Device::releaseSwapchainImagesEXT( const ReleaseSwapchainImagesInfoKHR & releaseInfo ) const + VULKAN_HPP_INLINE typename ResultValueType::type Device::releaseSwapchainImagesEXT( const ReleaseSwapchainImagesInfoKHR & releaseInfo ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkReleaseSwapchainImagesEXT && "Function requires or " ); Result result = static_cast( getDispatcher()->vkReleaseSwapchainImagesEXT( static_cast( m_device ), reinterpret_cast( &releaseInfo ) ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::releaseSwapchainImagesEXT" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::releaseSwapchainImagesEXT" ); + + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result ); } //=== VK_NV_device_generated_commands === @@ -23968,9 +23680,9 @@ namespace VULKAN_HPP_NAMESPACE // wrapper function for command vkCreateIndirectCommandsLayoutNV, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateIndirectCommandsLayoutNV.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE detail::CreateReturnType::Type - Device::createIndirectCommandsLayoutNV( IndirectCommandsLayoutCreateInfoNV const & createInfo, - Optional allocator ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType::type + Device::createIndirectCommandsLayoutNV( IndirectCommandsLayoutCreateInfoNV const & createInfo, + Optional allocator ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS { VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout; Result result = @@ -23978,16 +23690,9 @@ namespace VULKAN_HPP_NAMESPACE reinterpret_cast( &createInfo ), reinterpret_cast( allocator.get() ), reinterpret_cast( &indirectCommandsLayout ) ) ); - if ( result != Result::eSuccess ) - { -# if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) - return VULKAN_HPP_UNEXPECTED( result ); -# else - VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createIndirectCommandsLayoutNV" ); -# endif - } - - return IndirectCommandsLayoutNV( *this, *reinterpret_cast( &indirectCommandsLayout ), allocator ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::createIndirectCommandsLayoutNV" ); + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( + result, IndirectCommandsLayoutNV( *this, *reinterpret_cast( &indirectCommandsLayout ), allocator ) ); } //=== VK_EXT_depth_bias_control === @@ -24003,56 +23708,43 @@ namespace VULKAN_HPP_NAMESPACE //=== VK_EXT_acquire_drm_display === // wrapper function for command vkAcquireDrmDisplayEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkAcquireDrmDisplayEXT.html - VULKAN_HPP_INLINE void PhysicalDevice::acquireDrmDisplayEXT( int32_t drmFd, VULKAN_HPP_NAMESPACE::DisplayKHR display ) const + VULKAN_HPP_INLINE typename ResultValueType::type PhysicalDevice::acquireDrmDisplayEXT( int32_t drmFd, VULKAN_HPP_NAMESPACE::DisplayKHR display ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkAcquireDrmDisplayEXT && "Function requires " ); Result result = static_cast( getDispatcher()->vkAcquireDrmDisplayEXT( static_cast( m_physicalDevice ), drmFd, static_cast( display ) ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::acquireDrmDisplayEXT" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::PhysicalDevice::acquireDrmDisplayEXT" ); + + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result ); } // wrapper function for command vkGetDrmDisplayEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDrmDisplayEXT.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE detail::CreateReturnType::Type - PhysicalDevice::getDrmDisplayEXT( int32_t drmFd, uint32_t connectorId ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType::type + PhysicalDevice::getDrmDisplayEXT( int32_t drmFd, uint32_t connectorId ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS { VULKAN_HPP_NAMESPACE::DisplayKHR display; Result result = static_cast( getDispatcher()->vkGetDrmDisplayEXT( static_cast( m_physicalDevice ), drmFd, connectorId, reinterpret_cast( &display ) ) ); - if ( result != Result::eSuccess ) - { -# if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) - return VULKAN_HPP_UNEXPECTED( result ); -# else - VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "PhysicalDevice::getDrmDisplayEXT" ); -# endif - } - - return DisplayKHR( *this, *reinterpret_cast( &display ) ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::PhysicalDevice::getDrmDisplayEXT" ); + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, DisplayKHR( *this, *reinterpret_cast( &display ) ) ); } //=== VK_EXT_private_data === // wrapper function for command vkCreatePrivateDataSlotEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreatePrivateDataSlotEXT.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE detail::CreateReturnType::Type - Device::createPrivateDataSlotEXT( PrivateDataSlotCreateInfo const & createInfo, - Optional allocator ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType::type + Device::createPrivateDataSlotEXT( PrivateDataSlotCreateInfo const & createInfo, + Optional allocator ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS { VULKAN_HPP_NAMESPACE::PrivateDataSlot privateDataSlot; Result result = static_cast( getDispatcher()->vkCreatePrivateDataSlotEXT( static_cast( m_device ), reinterpret_cast( &createInfo ), reinterpret_cast( allocator.get() ), reinterpret_cast( &privateDataSlot ) ) ); - if ( result != Result::eSuccess ) - { -# if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) - return VULKAN_HPP_UNEXPECTED( result ); -# else - VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createPrivateDataSlotEXT" ); -# endif - } - - return PrivateDataSlot( *this, *reinterpret_cast( &privateDataSlot ), allocator ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::createPrivateDataSlotEXT" ); + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( + result, PrivateDataSlot( *this, *reinterpret_cast( &privateDataSlot ), allocator ) ); } // wrapper function for command vkDestroyPrivateDataSlotEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyPrivateDataSlotEXT.html @@ -24068,14 +23760,16 @@ namespace VULKAN_HPP_NAMESPACE } // wrapper function for command vkSetPrivateDataEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkSetPrivateDataEXT.html - VULKAN_HPP_INLINE void + VULKAN_HPP_INLINE typename ResultValueType::type Device::setPrivateDataEXT( ObjectType objectType_, uint64_t objectHandle, VULKAN_HPP_NAMESPACE::PrivateDataSlot privateDataSlot, uint64_t data ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkSetPrivateDataEXT && "Function requires or " ); Result result = static_cast( getDispatcher()->vkSetPrivateDataEXT( static_cast( m_device ), static_cast( objectType_ ), objectHandle, static_cast( privateDataSlot ), data ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::setPrivateDataEXT" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::setPrivateDataEXT" ); + + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result ); } // wrapper function for command vkGetPrivateDataEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPrivateDataEXT.html @@ -24096,8 +23790,8 @@ namespace VULKAN_HPP_NAMESPACE // wrapper function for command vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VideoEncodeQualityLevelPropertiesKHR - PhysicalDevice::getVideoEncodeQualityLevelPropertiesKHR( const PhysicalDeviceVideoEncodeQualityLevelInfoKHR & qualityLevelInfo ) const + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType::type + PhysicalDevice::getVideoEncodeQualityLevelPropertiesKHR( const PhysicalDeviceVideoEncodeQualityLevelInfoKHR & qualityLevelInfo ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR && "Function requires " ); @@ -24107,16 +23801,16 @@ namespace VULKAN_HPP_NAMESPACE static_cast( m_physicalDevice ), reinterpret_cast( &qualityLevelInfo ), reinterpret_cast( &qualityLevelProperties ) ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getVideoEncodeQualityLevelPropertiesKHR" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::PhysicalDevice::getVideoEncodeQualityLevelPropertiesKHR" ); - return qualityLevelProperties; + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( qualityLevelProperties ) ); } // wrapper function for command vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR.html template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain - PhysicalDevice::getVideoEncodeQualityLevelPropertiesKHR( const PhysicalDeviceVideoEncodeQualityLevelInfoKHR & qualityLevelInfo ) const + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type + PhysicalDevice::getVideoEncodeQualityLevelPropertiesKHR( const PhysicalDeviceVideoEncodeQualityLevelInfoKHR & qualityLevelInfo ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR && "Function requires " ); @@ -24127,15 +23821,15 @@ namespace VULKAN_HPP_NAMESPACE static_cast( m_physicalDevice ), reinterpret_cast( &qualityLevelInfo ), reinterpret_cast( &qualityLevelProperties ) ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getVideoEncodeQualityLevelPropertiesKHR" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::PhysicalDevice::getVideoEncodeQualityLevelPropertiesKHR" ); - return structureChain; + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( structureChain ) ); } // wrapper function for command vkGetEncodedVideoSessionParametersKHR, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetEncodedVideoSessionParametersKHR.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::pair> - Device::getEncodedVideoSessionParametersKHR( const VideoEncodeSessionParametersGetInfoKHR & videoSessionParametersInfo ) const + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>>::type + Device::getEncodedVideoSessionParametersKHR( const VideoEncodeSessionParametersGetInfoKHR & videoSessionParametersInfo ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetEncodedVideoSessionParametersKHR && "Function requires " ); @@ -24164,16 +23858,16 @@ namespace VULKAN_HPP_NAMESPACE reinterpret_cast( data.data() ) ) ); } } while ( result == Result::eIncomplete ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getEncodedVideoSessionParametersKHR" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::getEncodedVideoSessionParametersKHR" ); - return data_; + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( data_ ) ); } // wrapper function for command vkGetEncodedVideoSessionParametersKHR, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetEncodedVideoSessionParametersKHR.html template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::pair, std::vector> - Device::getEncodedVideoSessionParametersKHR( const VideoEncodeSessionParametersGetInfoKHR & videoSessionParametersInfo ) const + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType, std::vector>>::type + Device::getEncodedVideoSessionParametersKHR( const VideoEncodeSessionParametersGetInfoKHR & videoSessionParametersInfo ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetEncodedVideoSessionParametersKHR && "Function requires " ); @@ -24202,9 +23896,9 @@ namespace VULKAN_HPP_NAMESPACE reinterpret_cast( data.data() ) ) ); } } while ( result == Result::eIncomplete ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getEncodedVideoSessionParametersKHR" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::getEncodedVideoSessionParametersKHR" ); - return data_; + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( data_ ) ); } // wrapper function for command vkCmdEncodeVideoKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdEncodeVideoKHR.html @@ -24219,29 +23913,21 @@ namespace VULKAN_HPP_NAMESPACE //=== VK_NV_cuda_kernel_launch === // wrapper function for command vkCreateCudaModuleNV, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateCudaModuleNV.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE detail::CreateReturnType::Type - Device::createCudaModuleNV( CudaModuleCreateInfoNV const & createInfo, - Optional allocator ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType::type + Device::createCudaModuleNV( CudaModuleCreateInfoNV const & createInfo, + Optional allocator ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS { VULKAN_HPP_NAMESPACE::CudaModuleNV module; Result result = static_cast( getDispatcher()->vkCreateCudaModuleNV( static_cast( m_device ), reinterpret_cast( &createInfo ), reinterpret_cast( allocator.get() ), reinterpret_cast( &module ) ) ); - if ( result != Result::eSuccess ) - { -# if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) - return VULKAN_HPP_UNEXPECTED( result ); -# else - VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createCudaModuleNV" ); -# endif - } - - return CudaModuleNV( *this, *reinterpret_cast( &module ), allocator ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::createCudaModuleNV" ); + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, CudaModuleNV( *this, *reinterpret_cast( &module ), allocator ) ); } // wrapper function for command vkGetCudaModuleCacheNV, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetCudaModuleCacheNV.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector CudaModuleNV::getCache() const + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type CudaModuleNV::getCache() const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetCudaModuleCacheNV && "Function requires " ); @@ -24259,35 +23945,28 @@ namespace VULKAN_HPP_NAMESPACE static_cast( m_device ), static_cast( m_cudaModuleNV ), &cacheSize, reinterpret_cast( cacheData.data() ) ) ); } } while ( result == Result::eIncomplete ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::CudaModuleNV::getCache" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::CudaModuleNV::getCache" ); VULKAN_HPP_ASSERT( cacheSize <= cacheData.size() ); if ( cacheSize < cacheData.size() ) { cacheData.resize( cacheSize ); } - return cacheData; + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( cacheData ) ); } // wrapper function for command vkCreateCudaFunctionNV, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateCudaFunctionNV.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE detail::CreateReturnType::Type - Device::createCudaFunctionNV( CudaFunctionCreateInfoNV const & createInfo, - Optional allocator ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType::type + Device::createCudaFunctionNV( CudaFunctionCreateInfoNV const & createInfo, + Optional allocator ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS { VULKAN_HPP_NAMESPACE::CudaFunctionNV function; Result result = static_cast( getDispatcher()->vkCreateCudaFunctionNV( static_cast( m_device ), reinterpret_cast( &createInfo ), reinterpret_cast( allocator.get() ), reinterpret_cast( &function ) ) ); - if ( result != Result::eSuccess ) - { -# if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) - return VULKAN_HPP_UNEXPECTED( result ); -# else - VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createCudaFunctionNV" ); -# endif - } - - return CudaFunctionNV( *this, *reinterpret_cast( &function ), allocator ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::createCudaFunctionNV" ); + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, + CudaFunctionNV( *this, *reinterpret_cast( &function ), allocator ) ); } // wrapper function for command vkCmdCudaLaunchKernelNV, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdCudaLaunchKernelNV.html @@ -24404,13 +24083,16 @@ namespace VULKAN_HPP_NAMESPACE } // wrapper function for command vkQueueSubmit2KHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkQueueSubmit2KHR.html - VULKAN_HPP_INLINE void Queue::submit2KHR( ArrayProxy const & submits, VULKAN_HPP_NAMESPACE::Fence fence ) const + VULKAN_HPP_INLINE typename ResultValueType::type Queue::submit2KHR( ArrayProxy const & submits, + VULKAN_HPP_NAMESPACE::Fence fence ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkQueueSubmit2KHR && "Function requires or " ); Result result = static_cast( getDispatcher()->vkQueueSubmit2KHR( static_cast( m_queue ), submits.size(), reinterpret_cast( submits.data() ), static_cast( fence ) ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Queue::submit2KHR" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Queue::submit2KHR" ); + + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result ); } //=== VK_EXT_descriptor_buffer === @@ -24524,7 +24206,8 @@ namespace VULKAN_HPP_NAMESPACE // wrapper function for command vkGetBufferOpaqueCaptureDescriptorDataEXT, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetBufferOpaqueCaptureDescriptorDataEXT.html template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE DataType Device::getBufferOpaqueCaptureDescriptorDataEXT( const BufferCaptureDescriptorDataInfoEXT & info ) const + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType::type + Device::getBufferOpaqueCaptureDescriptorDataEXT( const BufferCaptureDescriptorDataInfoEXT & info ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetBufferOpaqueCaptureDescriptorDataEXT && "Function requires " ); @@ -24532,15 +24215,16 @@ namespace VULKAN_HPP_NAMESPACE DataType data; Result result = static_cast( getDispatcher()->vkGetBufferOpaqueCaptureDescriptorDataEXT( static_cast( m_device ), reinterpret_cast( &info ), &data ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getBufferOpaqueCaptureDescriptorDataEXT" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::getBufferOpaqueCaptureDescriptorDataEXT" ); - return data; + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( data ) ); } // wrapper function for command vkGetImageOpaqueCaptureDescriptorDataEXT, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetImageOpaqueCaptureDescriptorDataEXT.html template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE DataType Device::getImageOpaqueCaptureDescriptorDataEXT( const ImageCaptureDescriptorDataInfoEXT & info ) const + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType::type + Device::getImageOpaqueCaptureDescriptorDataEXT( const ImageCaptureDescriptorDataInfoEXT & info ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetImageOpaqueCaptureDescriptorDataEXT && "Function requires " ); @@ -24548,16 +24232,16 @@ namespace VULKAN_HPP_NAMESPACE DataType data; Result result = static_cast( getDispatcher()->vkGetImageOpaqueCaptureDescriptorDataEXT( static_cast( m_device ), reinterpret_cast( &info ), &data ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getImageOpaqueCaptureDescriptorDataEXT" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::getImageOpaqueCaptureDescriptorDataEXT" ); - return data; + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( data ) ); } // wrapper function for command vkGetImageViewOpaqueCaptureDescriptorDataEXT, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetImageViewOpaqueCaptureDescriptorDataEXT.html template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE DataType - Device::getImageViewOpaqueCaptureDescriptorDataEXT( const ImageViewCaptureDescriptorDataInfoEXT & info ) const + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType::type + Device::getImageViewOpaqueCaptureDescriptorDataEXT( const ImageViewCaptureDescriptorDataInfoEXT & info ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetImageViewOpaqueCaptureDescriptorDataEXT && "Function requires " ); @@ -24565,15 +24249,16 @@ namespace VULKAN_HPP_NAMESPACE DataType data; Result result = static_cast( getDispatcher()->vkGetImageViewOpaqueCaptureDescriptorDataEXT( static_cast( m_device ), reinterpret_cast( &info ), &data ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getImageViewOpaqueCaptureDescriptorDataEXT" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::getImageViewOpaqueCaptureDescriptorDataEXT" ); - return data; + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( data ) ); } // wrapper function for command vkGetSamplerOpaqueCaptureDescriptorDataEXT, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetSamplerOpaqueCaptureDescriptorDataEXT.html template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE DataType Device::getSamplerOpaqueCaptureDescriptorDataEXT( const SamplerCaptureDescriptorDataInfoEXT & info ) const + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType::type + Device::getSamplerOpaqueCaptureDescriptorDataEXT( const SamplerCaptureDescriptorDataInfoEXT & info ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetSamplerOpaqueCaptureDescriptorDataEXT && "Function requires " ); @@ -24581,16 +24266,16 @@ namespace VULKAN_HPP_NAMESPACE DataType data; Result result = static_cast( getDispatcher()->vkGetSamplerOpaqueCaptureDescriptorDataEXT( static_cast( m_device ), reinterpret_cast( &info ), &data ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getSamplerOpaqueCaptureDescriptorDataEXT" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::getSamplerOpaqueCaptureDescriptorDataEXT" ); - return data; + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( data ) ); } // wrapper function for command vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT.html template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE DataType - Device::getAccelerationStructureOpaqueCaptureDescriptorDataEXT( const AccelerationStructureCaptureDescriptorDataInfoEXT & info ) const + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType::type + Device::getAccelerationStructureOpaqueCaptureDescriptorDataEXT( const AccelerationStructureCaptureDescriptorDataInfoEXT & info ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT && "Function requires " ); @@ -24598,9 +24283,9 @@ namespace VULKAN_HPP_NAMESPACE DataType data; Result result = static_cast( getDispatcher()->vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT( static_cast( m_device ), reinterpret_cast( &info ), &data ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getAccelerationStructureOpaqueCaptureDescriptorDataEXT" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::getAccelerationStructureOpaqueCaptureDescriptorDataEXT" ); - return data; + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( data ) ); } //=== VK_NV_fragment_shading_rate_enums === @@ -24732,32 +24417,26 @@ namespace VULKAN_HPP_NAMESPACE //=== VK_NV_acquire_winrt_display === // wrapper function for command vkAcquireWinrtDisplayNV, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkAcquireWinrtDisplayNV.html - VULKAN_HPP_INLINE void DisplayKHR::acquireWinrtNV() const + VULKAN_HPP_INLINE typename ResultValueType::type DisplayKHR::acquireWinrtNV() const { VULKAN_HPP_ASSERT( getDispatcher()->vkAcquireWinrtDisplayNV && "Function requires " ); Result result = static_cast( getDispatcher()->vkAcquireWinrtDisplayNV( static_cast( m_physicalDevice ), static_cast( m_displayKHR ) ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::DisplayKHR::acquireWinrtNV" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::DisplayKHR::acquireWinrtNV" ); + + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result ); } // wrapper function for command vkGetWinrtDisplayNV, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetWinrtDisplayNV.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE detail::CreateReturnType::Type - PhysicalDevice::getWinrtDisplayNV( uint32_t deviceRelativeId ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType::type + PhysicalDevice::getWinrtDisplayNV( uint32_t deviceRelativeId ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS { VULKAN_HPP_NAMESPACE::DisplayKHR display; Result result = static_cast( getDispatcher()->vkGetWinrtDisplayNV( static_cast( m_physicalDevice ), deviceRelativeId, reinterpret_cast( &display ) ) ); - if ( result != Result::eSuccess ) - { -# if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) - return VULKAN_HPP_UNEXPECTED( result ); -# else - VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "PhysicalDevice::getWinrtDisplayNV" ); -# endif - } - - return DisplayKHR( *this, *reinterpret_cast( &display ) ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::PhysicalDevice::getWinrtDisplayNV" ); + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, DisplayKHR( *this, *reinterpret_cast( &display ) ) ); } # endif /*VK_USE_PLATFORM_WIN32_KHR*/ @@ -24765,25 +24444,17 @@ namespace VULKAN_HPP_NAMESPACE //=== VK_EXT_directfb_surface === // wrapper function for command vkCreateDirectFBSurfaceEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateDirectFBSurfaceEXT.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE detail::CreateReturnType::Type - Instance::createDirectFBSurfaceEXT( DirectFBSurfaceCreateInfoEXT const & createInfo, - Optional allocator ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType::type + Instance::createDirectFBSurfaceEXT( DirectFBSurfaceCreateInfoEXT const & createInfo, + Optional allocator ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS { VULKAN_HPP_NAMESPACE::SurfaceKHR surface; Result result = static_cast( getDispatcher()->vkCreateDirectFBSurfaceEXT( static_cast( m_instance ), reinterpret_cast( &createInfo ), reinterpret_cast( allocator.get() ), reinterpret_cast( &surface ) ) ); - if ( result != Result::eSuccess ) - { -# if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) - return VULKAN_HPP_UNEXPECTED( result ); -# else - VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Instance::createDirectFBSurfaceEXT" ); -# endif - } - - return SurfaceKHR( *this, *reinterpret_cast( &surface ), allocator ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Instance::createDirectFBSurfaceEXT" ); + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, SurfaceKHR( *this, *reinterpret_cast( &surface ), allocator ) ); } // wrapper function for command vkGetPhysicalDeviceDirectFBPresentationSupportEXT, see @@ -24823,23 +24494,23 @@ namespace VULKAN_HPP_NAMESPACE // wrapper function for command vkGetMemoryZirconHandleFUCHSIA, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetMemoryZirconHandleFUCHSIA.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE zx_handle_t - Device::getMemoryZirconHandleFUCHSIA( const MemoryGetZirconHandleInfoFUCHSIA & getZirconHandleInfo ) const + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType::type + Device::getMemoryZirconHandleFUCHSIA( const MemoryGetZirconHandleInfoFUCHSIA & getZirconHandleInfo ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetMemoryZirconHandleFUCHSIA && "Function requires " ); zx_handle_t zirconHandle; Result result = static_cast( getDispatcher()->vkGetMemoryZirconHandleFUCHSIA( static_cast( m_device ), reinterpret_cast( &getZirconHandleInfo ), &zirconHandle ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getMemoryZirconHandleFUCHSIA" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::getMemoryZirconHandleFUCHSIA" ); - return zirconHandle; + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( zirconHandle ) ); } // wrapper function for command vkGetMemoryZirconHandlePropertiesFUCHSIA, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetMemoryZirconHandlePropertiesFUCHSIA.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE MemoryZirconHandlePropertiesFUCHSIA - Device::getMemoryZirconHandlePropertiesFUCHSIA( ExternalMemoryHandleTypeFlagBits handleType, zx_handle_t zirconHandle ) const + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType::type + Device::getMemoryZirconHandlePropertiesFUCHSIA( ExternalMemoryHandleTypeFlagBits handleType, zx_handle_t zirconHandle ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetMemoryZirconHandlePropertiesFUCHSIA && "Function requires " ); @@ -24850,9 +24521,9 @@ namespace VULKAN_HPP_NAMESPACE static_cast( handleType ), zirconHandle, reinterpret_cast( &memoryZirconHandleProperties ) ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getMemoryZirconHandlePropertiesFUCHSIA" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::getMemoryZirconHandlePropertiesFUCHSIA" ); - return memoryZirconHandleProperties; + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( memoryZirconHandleProperties ) ); } # endif /*VK_USE_PLATFORM_FUCHSIA*/ @@ -24861,20 +24532,23 @@ namespace VULKAN_HPP_NAMESPACE // wrapper function for command vkImportSemaphoreZirconHandleFUCHSIA, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkImportSemaphoreZirconHandleFUCHSIA.html - VULKAN_HPP_INLINE void Device::importSemaphoreZirconHandleFUCHSIA( const ImportSemaphoreZirconHandleInfoFUCHSIA & importSemaphoreZirconHandleInfo ) const + VULKAN_HPP_INLINE typename ResultValueType::type + Device::importSemaphoreZirconHandleFUCHSIA( const ImportSemaphoreZirconHandleInfoFUCHSIA & importSemaphoreZirconHandleInfo ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkImportSemaphoreZirconHandleFUCHSIA && "Function requires " ); Result result = static_cast( getDispatcher()->vkImportSemaphoreZirconHandleFUCHSIA( static_cast( m_device ), reinterpret_cast( &importSemaphoreZirconHandleInfo ) ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::importSemaphoreZirconHandleFUCHSIA" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::importSemaphoreZirconHandleFUCHSIA" ); + + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result ); } // wrapper function for command vkGetSemaphoreZirconHandleFUCHSIA, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetSemaphoreZirconHandleFUCHSIA.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE zx_handle_t - Device::getSemaphoreZirconHandleFUCHSIA( const SemaphoreGetZirconHandleInfoFUCHSIA & getZirconHandleInfo ) const + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType::type + Device::getSemaphoreZirconHandleFUCHSIA( const SemaphoreGetZirconHandleInfoFUCHSIA & getZirconHandleInfo ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetSemaphoreZirconHandleFUCHSIA && "Function requires " ); @@ -24882,9 +24556,9 @@ namespace VULKAN_HPP_NAMESPACE zx_handle_t zirconHandle; Result result = static_cast( getDispatcher()->vkGetSemaphoreZirconHandleFUCHSIA( static_cast( m_device ), reinterpret_cast( &getZirconHandleInfo ), &zirconHandle ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getSemaphoreZirconHandleFUCHSIA" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::getSemaphoreZirconHandleFUCHSIA" ); - return zirconHandle; + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( zirconHandle ) ); } # endif /*VK_USE_PLATFORM_FUCHSIA*/ @@ -24893,9 +24567,9 @@ namespace VULKAN_HPP_NAMESPACE // wrapper function for command vkCreateBufferCollectionFUCHSIA, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateBufferCollectionFUCHSIA.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE detail::CreateReturnType::Type - Device::createBufferCollectionFUCHSIA( BufferCollectionCreateInfoFUCHSIA const & createInfo, - Optional allocator ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType::type + Device::createBufferCollectionFUCHSIA( BufferCollectionCreateInfoFUCHSIA const & createInfo, + Optional allocator ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS { VULKAN_HPP_NAMESPACE::BufferCollectionFUCHSIA collection; Result result = @@ -24903,21 +24577,15 @@ namespace VULKAN_HPP_NAMESPACE reinterpret_cast( &createInfo ), reinterpret_cast( allocator.get() ), reinterpret_cast( &collection ) ) ); - if ( result != Result::eSuccess ) - { -# if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) - return VULKAN_HPP_UNEXPECTED( result ); -# else - VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createBufferCollectionFUCHSIA" ); -# endif - } - - return BufferCollectionFUCHSIA( *this, *reinterpret_cast( &collection ), allocator ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::createBufferCollectionFUCHSIA" ); + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( + result, BufferCollectionFUCHSIA( *this, *reinterpret_cast( &collection ), allocator ) ); } // wrapper function for command vkSetBufferCollectionImageConstraintsFUCHSIA, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkSetBufferCollectionImageConstraintsFUCHSIA.html - VULKAN_HPP_INLINE void BufferCollectionFUCHSIA::setImageConstraints( const ImageConstraintsInfoFUCHSIA & imageConstraintsInfo ) const + VULKAN_HPP_INLINE typename ResultValueType::type + BufferCollectionFUCHSIA::setImageConstraints( const ImageConstraintsInfoFUCHSIA & imageConstraintsInfo ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkSetBufferCollectionImageConstraintsFUCHSIA && "Function requires " ); @@ -24926,12 +24594,15 @@ namespace VULKAN_HPP_NAMESPACE getDispatcher()->vkSetBufferCollectionImageConstraintsFUCHSIA( static_cast( m_device ), static_cast( m_bufferCollectionFUCHSIA ), reinterpret_cast( &imageConstraintsInfo ) ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::BufferCollectionFUCHSIA::setImageConstraints" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::BufferCollectionFUCHSIA::setImageConstraints" ); + + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result ); } // wrapper function for command vkSetBufferCollectionBufferConstraintsFUCHSIA, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkSetBufferCollectionBufferConstraintsFUCHSIA.html - VULKAN_HPP_INLINE void BufferCollectionFUCHSIA::setBufferConstraints( const BufferConstraintsInfoFUCHSIA & bufferConstraintsInfo ) const + VULKAN_HPP_INLINE typename ResultValueType::type + BufferCollectionFUCHSIA::setBufferConstraints( const BufferConstraintsInfoFUCHSIA & bufferConstraintsInfo ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkSetBufferCollectionBufferConstraintsFUCHSIA && "Function requires " ); @@ -24940,12 +24611,14 @@ namespace VULKAN_HPP_NAMESPACE getDispatcher()->vkSetBufferCollectionBufferConstraintsFUCHSIA( static_cast( m_device ), static_cast( m_bufferCollectionFUCHSIA ), reinterpret_cast( &bufferConstraintsInfo ) ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::BufferCollectionFUCHSIA::setBufferConstraints" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::BufferCollectionFUCHSIA::setBufferConstraints" ); + + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result ); } // wrapper function for command vkGetBufferCollectionPropertiesFUCHSIA, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetBufferCollectionPropertiesFUCHSIA.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE BufferCollectionPropertiesFUCHSIA BufferCollectionFUCHSIA::getProperties() const + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType::type BufferCollectionFUCHSIA::getProperties() const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetBufferCollectionPropertiesFUCHSIA && "Function requires " ); @@ -24955,9 +24628,9 @@ namespace VULKAN_HPP_NAMESPACE getDispatcher()->vkGetBufferCollectionPropertiesFUCHSIA( static_cast( m_device ), static_cast( m_bufferCollectionFUCHSIA ), reinterpret_cast( &properties ) ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::BufferCollectionFUCHSIA::getProperties" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::BufferCollectionFUCHSIA::getProperties" ); - return properties; + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( properties ) ); } # endif /*VK_USE_PLATFORM_FUCHSIA*/ @@ -24965,7 +24638,7 @@ namespace VULKAN_HPP_NAMESPACE // wrapper function for command vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Extent2D RenderPass::getSubpassShadingMaxWorkgroupSizeHUAWEI() const + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType::type RenderPass::getSubpassShadingMaxWorkgroupSizeHUAWEI() const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI && "Function requires " ); @@ -24973,9 +24646,9 @@ namespace VULKAN_HPP_NAMESPACE Extent2D maxWorkgroupSize; Result result = static_cast( getDispatcher()->vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI( static_cast( m_device ), static_cast( m_renderPass ), reinterpret_cast( &maxWorkgroupSize ) ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::RenderPass::getSubpassShadingMaxWorkgroupSizeHUAWEI" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::RenderPass::getSubpassShadingMaxWorkgroupSizeHUAWEI" ); - return maxWorkgroupSize; + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( maxWorkgroupSize ) ); } // wrapper function for command vkCmdSubpassShadingHUAWEI, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSubpassShadingHUAWEI.html @@ -25002,8 +24675,8 @@ namespace VULKAN_HPP_NAMESPACE //=== VK_NV_external_memory_rdma === // wrapper function for command vkGetMemoryRemoteAddressNV, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetMemoryRemoteAddressNV.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE RemoteAddressNV - Device::getMemoryRemoteAddressNV( const MemoryGetRemoteAddressInfoNV & memoryGetRemoteAddressInfo ) const + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType::type + Device::getMemoryRemoteAddressNV( const MemoryGetRemoteAddressInfoNV & memoryGetRemoteAddressInfo ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetMemoryRemoteAddressNV && "Function requires " ); @@ -25012,15 +24685,16 @@ namespace VULKAN_HPP_NAMESPACE getDispatcher()->vkGetMemoryRemoteAddressNV( static_cast( m_device ), reinterpret_cast( &memoryGetRemoteAddressInfo ), reinterpret_cast( &address ) ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getMemoryRemoteAddressNV" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::getMemoryRemoteAddressNV" ); - return address; + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( address ) ); } //=== VK_EXT_pipeline_properties === // wrapper function for command vkGetPipelinePropertiesEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPipelinePropertiesEXT.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE BaseOutStructure Device::getPipelinePropertiesEXT( const PipelineInfoEXT & pipelineInfo ) const + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType::type + Device::getPipelinePropertiesEXT( const PipelineInfoEXT & pipelineInfo ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetPipelinePropertiesEXT && "Function requires " ); @@ -25028,9 +24702,9 @@ namespace VULKAN_HPP_NAMESPACE Result result = static_cast( getDispatcher()->vkGetPipelinePropertiesEXT( static_cast( m_device ), reinterpret_cast( &pipelineInfo ), reinterpret_cast( &pipelineProperties ) ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getPipelinePropertiesEXT" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::getPipelinePropertiesEXT" ); - return pipelineProperties; + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( pipelineProperties ) ); } //=== VK_EXT_extended_dynamic_state2 === @@ -25089,25 +24763,17 @@ namespace VULKAN_HPP_NAMESPACE //=== VK_QNX_screen_surface === // wrapper function for command vkCreateScreenSurfaceQNX, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateScreenSurfaceQNX.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE detail::CreateReturnType::Type - Instance::createScreenSurfaceQNX( ScreenSurfaceCreateInfoQNX const & createInfo, - Optional allocator ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType::type + Instance::createScreenSurfaceQNX( ScreenSurfaceCreateInfoQNX const & createInfo, + Optional allocator ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS { VULKAN_HPP_NAMESPACE::SurfaceKHR surface; Result result = static_cast( getDispatcher()->vkCreateScreenSurfaceQNX( static_cast( m_instance ), reinterpret_cast( &createInfo ), reinterpret_cast( allocator.get() ), reinterpret_cast( &surface ) ) ); - if ( result != Result::eSuccess ) - { -# if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) - return VULKAN_HPP_UNEXPECTED( result ); -# else - VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Instance::createScreenSurfaceQNX" ); -# endif - } - - return SurfaceKHR( *this, *reinterpret_cast( &surface ), allocator ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Instance::createScreenSurfaceQNX" ); + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, SurfaceKHR( *this, *reinterpret_cast( &surface ), allocator ) ); } // wrapper function for command vkGetPhysicalDeviceScreenPresentationSupportQNX, see @@ -25183,24 +24849,17 @@ namespace VULKAN_HPP_NAMESPACE //=== VK_EXT_opacity_micromap === // wrapper function for command vkCreateMicromapEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateMicromapEXT.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE detail::CreateReturnType::Type - Device::createMicromapEXT( MicromapCreateInfoEXT const & createInfo, Optional allocator ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType::type + Device::createMicromapEXT( MicromapCreateInfoEXT const & createInfo, + Optional allocator ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS { VULKAN_HPP_NAMESPACE::MicromapEXT micromap; Result result = static_cast( getDispatcher()->vkCreateMicromapEXT( static_cast( m_device ), reinterpret_cast( &createInfo ), reinterpret_cast( allocator.get() ), reinterpret_cast( µmap ) ) ); - if ( result != Result::eSuccess ) - { -# if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) - return VULKAN_HPP_UNEXPECTED( result ); -# else - VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createMicromapEXT" ); -# endif - } - - return MicromapEXT( *this, *reinterpret_cast( µmap ), allocator ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::createMicromapEXT" ); + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, MicromapEXT( *this, *reinterpret_cast( µmap ), allocator ) ); } // wrapper function for command vkCmdBuildMicromapsEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdBuildMicromapsEXT.html @@ -25223,7 +24882,7 @@ namespace VULKAN_HPP_NAMESPACE infos.size(), reinterpret_cast( infos.data() ) ) ); VULKAN_HPP_NAMESPACE::detail::resultCheck( result, - VULKAN_HPP_NAMESPACE_STRING "::Device::buildMicromapsEXT", + VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::buildMicromapsEXT", { Result::eSuccess, Result::eOperationDeferredKHR, Result::eOperationNotDeferredKHR } ); return static_cast( result ); @@ -25239,7 +24898,7 @@ namespace VULKAN_HPP_NAMESPACE static_cast( deferredOperation ), reinterpret_cast( &info ) ) ); VULKAN_HPP_NAMESPACE::detail::resultCheck( result, - VULKAN_HPP_NAMESPACE_STRING "::Device::copyMicromapEXT", + VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::copyMicromapEXT", { Result::eSuccess, Result::eOperationDeferredKHR, Result::eOperationNotDeferredKHR } ); return static_cast( result ); @@ -25255,7 +24914,7 @@ namespace VULKAN_HPP_NAMESPACE static_cast( deferredOperation ), reinterpret_cast( &info ) ) ); VULKAN_HPP_NAMESPACE::detail::resultCheck( result, - VULKAN_HPP_NAMESPACE_STRING "::Device::copyMicromapToMemoryEXT", + VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::copyMicromapToMemoryEXT", { Result::eSuccess, Result::eOperationDeferredKHR, Result::eOperationNotDeferredKHR } ); return static_cast( result ); @@ -25271,7 +24930,7 @@ namespace VULKAN_HPP_NAMESPACE static_cast( deferredOperation ), reinterpret_cast( &info ) ) ); VULKAN_HPP_NAMESPACE::detail::resultCheck( result, - VULKAN_HPP_NAMESPACE_STRING "::Device::copyMemoryToMicromapEXT", + VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::copyMemoryToMicromapEXT", { Result::eSuccess, Result::eOperationDeferredKHR, Result::eOperationNotDeferredKHR } ); return static_cast( result ); @@ -25280,7 +24939,7 @@ namespace VULKAN_HPP_NAMESPACE // wrapper function for command vkWriteMicromapsPropertiesEXT, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkWriteMicromapsPropertiesEXT.html template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector Device::writeMicromapsPropertiesEXT( + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type Device::writeMicromapsPropertiesEXT( ArrayProxy const & micromaps, QueryType queryType, size_t dataSize, size_t stride ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkWriteMicromapsPropertiesEXT && "Function requires " ); @@ -25294,17 +24953,16 @@ namespace VULKAN_HPP_NAMESPACE data.size() * sizeof( DataType ), reinterpret_cast( data.data() ), stride ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::writeMicromapsPropertiesEXT" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::writeMicromapsPropertiesEXT" ); - return data; + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( data ) ); } // wrapper function for command vkWriteMicromapsPropertiesEXT, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkWriteMicromapsPropertiesEXT.html template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE DataType Device::writeMicromapsPropertyEXT( ArrayProxy const & micromaps, - QueryType queryType, - size_t stride ) const + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType::type + Device::writeMicromapsPropertyEXT( ArrayProxy const & micromaps, QueryType queryType, size_t stride ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkWriteMicromapsPropertiesEXT && "Function requires " ); @@ -25316,9 +24974,9 @@ namespace VULKAN_HPP_NAMESPACE sizeof( DataType ), reinterpret_cast( &data ), stride ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::writeMicromapsPropertyEXT" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::writeMicromapsPropertyEXT" ); - return data; + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( data ) ); } // wrapper function for command vkCmdCopyMicromapEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdCopyMicromapEXT.html @@ -26030,46 +25688,31 @@ namespace VULKAN_HPP_NAMESPACE //=== VK_ARM_tensors === // wrapper function for command vkCreateTensorARM, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateTensorARM.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE detail::CreateReturnType::Type - Device::createTensorARM( TensorCreateInfoARM const & createInfo, Optional allocator ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType::type + Device::createTensorARM( TensorCreateInfoARM const & createInfo, + Optional allocator ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS { VULKAN_HPP_NAMESPACE::TensorARM tensor; Result result = static_cast( getDispatcher()->vkCreateTensorARM( static_cast( m_device ), reinterpret_cast( &createInfo ), reinterpret_cast( allocator.get() ), reinterpret_cast( &tensor ) ) ); - if ( result != Result::eSuccess ) - { -# if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) - return VULKAN_HPP_UNEXPECTED( result ); -# else - VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createTensorARM" ); -# endif - } - - return TensorARM( *this, *reinterpret_cast( &tensor ), allocator ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::createTensorARM" ); + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, TensorARM( *this, *reinterpret_cast( &tensor ), allocator ) ); } // wrapper function for command vkCreateTensorViewARM, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateTensorViewARM.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE detail::CreateReturnType::Type - Device::createTensorViewARM( TensorViewCreateInfoARM const & createInfo, - Optional allocator ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType::type + Device::createTensorViewARM( TensorViewCreateInfoARM const & createInfo, + Optional allocator ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS { VULKAN_HPP_NAMESPACE::TensorViewARM view; Result result = static_cast( getDispatcher()->vkCreateTensorViewARM( static_cast( m_device ), reinterpret_cast( &createInfo ), reinterpret_cast( allocator.get() ), reinterpret_cast( &view ) ) ); - if ( result != Result::eSuccess ) - { -# if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) - return VULKAN_HPP_UNEXPECTED( result ); -# else - VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createTensorViewARM" ); -# endif - } - - return TensorViewARM( *this, *reinterpret_cast( &view ), allocator ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::createTensorViewARM" ); + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, TensorViewARM( *this, *reinterpret_cast( &view ), allocator ) ); } // wrapper function for command vkGetTensorMemoryRequirementsARM, see @@ -26105,13 +25748,15 @@ namespace VULKAN_HPP_NAMESPACE } // wrapper function for command vkBindTensorMemoryARM, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkBindTensorMemoryARM.html - VULKAN_HPP_INLINE void Device::bindTensorMemoryARM( ArrayProxy const & bindInfos ) const + VULKAN_HPP_INLINE typename ResultValueType::type Device::bindTensorMemoryARM( ArrayProxy const & bindInfos ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkBindTensorMemoryARM && "Function requires " ); Result result = static_cast( getDispatcher()->vkBindTensorMemoryARM( static_cast( m_device ), bindInfos.size(), reinterpret_cast( bindInfos.data() ) ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::bindTensorMemoryARM" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::bindTensorMemoryARM" ); + + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result ); } // wrapper function for command vkGetDeviceTensorMemoryRequirementsARM, see @@ -26175,7 +25820,8 @@ namespace VULKAN_HPP_NAMESPACE // wrapper function for command vkGetTensorOpaqueCaptureDescriptorDataARM, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetTensorOpaqueCaptureDescriptorDataARM.html template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE DataType Device::getTensorOpaqueCaptureDescriptorDataARM( const TensorCaptureDescriptorDataInfoARM & info ) const + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType::type + Device::getTensorOpaqueCaptureDescriptorDataARM( const TensorCaptureDescriptorDataInfoARM & info ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetTensorOpaqueCaptureDescriptorDataARM && "Function requires " ); @@ -26183,16 +25829,16 @@ namespace VULKAN_HPP_NAMESPACE DataType data; Result result = static_cast( getDispatcher()->vkGetTensorOpaqueCaptureDescriptorDataARM( static_cast( m_device ), reinterpret_cast( &info ), &data ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getTensorOpaqueCaptureDescriptorDataARM" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::getTensorOpaqueCaptureDescriptorDataARM" ); - return data; + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( data ) ); } // wrapper function for command vkGetTensorViewOpaqueCaptureDescriptorDataARM, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetTensorViewOpaqueCaptureDescriptorDataARM.html template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE DataType - Device::getTensorViewOpaqueCaptureDescriptorDataARM( const TensorViewCaptureDescriptorDataInfoARM & info ) const + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType::type + Device::getTensorViewOpaqueCaptureDescriptorDataARM( const TensorViewCaptureDescriptorDataInfoARM & info ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetTensorViewOpaqueCaptureDescriptorDataARM && "Function requires " ); @@ -26200,9 +25846,9 @@ namespace VULKAN_HPP_NAMESPACE DataType data; Result result = static_cast( getDispatcher()->vkGetTensorViewOpaqueCaptureDescriptorDataARM( static_cast( m_device ), reinterpret_cast( &info ), &data ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getTensorViewOpaqueCaptureDescriptorDataARM" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::getTensorViewOpaqueCaptureDescriptorDataARM" ); - return data; + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( data ) ); } //=== VK_EXT_shader_module_identifier === @@ -26241,8 +25887,8 @@ namespace VULKAN_HPP_NAMESPACE // wrapper function for command vkGetPhysicalDeviceOpticalFlowImageFormatsNV, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceOpticalFlowImageFormatsNV.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector - PhysicalDevice::getOpticalFlowImageFormatsNV( const OpticalFlowImageFormatInfoNV & opticalFlowImageFormatInfo ) const + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type + PhysicalDevice::getOpticalFlowImageFormatsNV( const OpticalFlowImageFormatInfoNV & opticalFlowImageFormatInfo ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceOpticalFlowImageFormatsNV && "Function requires " ); @@ -26267,20 +25913,20 @@ namespace VULKAN_HPP_NAMESPACE reinterpret_cast( imageFormatProperties.data() ) ) ); } } while ( result == Result::eIncomplete ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getOpticalFlowImageFormatsNV" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::PhysicalDevice::getOpticalFlowImageFormatsNV" ); VULKAN_HPP_ASSERT( formatCount <= imageFormatProperties.size() ); if ( formatCount < imageFormatProperties.size() ) { imageFormatProperties.resize( formatCount ); } - return imageFormatProperties; + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( imageFormatProperties ) ); } // wrapper function for command vkCreateOpticalFlowSessionNV, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateOpticalFlowSessionNV.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE detail::CreateReturnType::Type - Device::createOpticalFlowSessionNV( OpticalFlowSessionCreateInfoNV const & createInfo, - Optional allocator ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType::type + Device::createOpticalFlowSessionNV( OpticalFlowSessionCreateInfoNV const & createInfo, + Optional allocator ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS { VULKAN_HPP_NAMESPACE::OpticalFlowSessionNV session; Result result = @@ -26288,21 +25934,14 @@ namespace VULKAN_HPP_NAMESPACE reinterpret_cast( &createInfo ), reinterpret_cast( allocator.get() ), reinterpret_cast( &session ) ) ); - if ( result != Result::eSuccess ) - { -# if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) - return VULKAN_HPP_UNEXPECTED( result ); -# else - VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createOpticalFlowSessionNV" ); -# endif - } - - return OpticalFlowSessionNV( *this, *reinterpret_cast( &session ), allocator ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::createOpticalFlowSessionNV" ); + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( + result, OpticalFlowSessionNV( *this, *reinterpret_cast( &session ), allocator ) ); } // wrapper function for command vkBindOpticalFlowSessionImageNV, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkBindOpticalFlowSessionImageNV.html - VULKAN_HPP_INLINE void + VULKAN_HPP_INLINE typename ResultValueType::type OpticalFlowSessionNV::bindImage( OpticalFlowSessionBindingPointNV bindingPoint, VULKAN_HPP_NAMESPACE::ImageView view, ImageLayout layout ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkBindOpticalFlowSessionImageNV && "Function requires " ); @@ -26312,7 +25951,9 @@ namespace VULKAN_HPP_NAMESPACE static_cast( bindingPoint ), static_cast( view ), static_cast( layout ) ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::OpticalFlowSessionNV::bindImage" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::OpticalFlowSessionNV::bindImage" ); + + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result ); } // wrapper function for command vkCmdOpticalFlowExecuteNV, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdOpticalFlowExecuteNV.html @@ -26452,7 +26093,7 @@ namespace VULKAN_HPP_NAMESPACE static_cast( m_swapchainKHR ), reinterpret_cast( &presentWait2Info ) ) ); VULKAN_HPP_NAMESPACE::detail::resultCheck( - result, VULKAN_HPP_NAMESPACE_STRING "::SwapchainKHR::waitForPresent2", { Result::eSuccess, Result::eTimeout, Result::eSuboptimalKHR } ); + result, VULKAN_HPP_RAII_NAMESPACE_STRING "::SwapchainKHR::waitForPresent2", { Result::eSuccess, Result::eTimeout, Result::eSuboptimalKHR } ); return static_cast( result ); } @@ -26460,8 +26101,8 @@ namespace VULKAN_HPP_NAMESPACE //=== VK_EXT_shader_object === // wrapper function for command vkCreateShadersEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateShadersEXT.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE detail::CreateReturnType>::Type - Device::createShadersEXT( ArrayProxy const & createInfos, Optional allocator ) const + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type + Device::createShadersEXT( ArrayProxy const & createInfos, Optional allocator ) const { std::vector shaders( createInfos.size() ); Result result = static_cast( getDispatcher()->vkCreateShadersEXT( static_cast( m_device ), @@ -26469,27 +26110,24 @@ namespace VULKAN_HPP_NAMESPACE reinterpret_cast( createInfos.data() ), reinterpret_cast( allocator.get() ), reinterpret_cast( shaders.data() ) ) ); - if ( ( result != Result::eSuccess ) && ( result != Result::eIncompatibleShaderBinaryEXT ) ) - { -# if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) - return VULKAN_HPP_UNEXPECTED( result ); -# else - VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createShadersEXT" ); -# endif - } - + VULKAN_HPP_NAMESPACE::detail::resultCheck( + result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::createShadersEXT", { Result::eSuccess, Result::eIncompatibleShaderBinaryEXT } ); std::vector shadersRAII; - shadersRAII.reserve( shaders.size() ); - for ( auto & shader : shaders ) + if ( result == Result::eSuccess ) { - shadersRAII.emplace_back( *this, *reinterpret_cast( &shader ), allocator, result ); + shadersRAII.reserve( shaders.size() ); + for ( auto & shader : shaders ) + { + shadersRAII.emplace_back( *this, *reinterpret_cast( &shader ), allocator, result ); + } } - return shadersRAII; + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( shadersRAII ) ); } // wrapper function for command vkCreateShadersEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateShadersEXT.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE detail::CreateReturnType::Type - Device::createShaderEXT( ShaderCreateInfoEXT const & createInfo, Optional allocator ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType::type + Device::createShaderEXT( ShaderCreateInfoEXT const & createInfo, + Optional allocator ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS { VULKAN_HPP_NAMESPACE::ShaderEXT shader; Result result = static_cast( getDispatcher()->vkCreateShadersEXT( static_cast( m_device ), @@ -26497,20 +26135,13 @@ namespace VULKAN_HPP_NAMESPACE reinterpret_cast( &createInfo ), reinterpret_cast( allocator.get() ), reinterpret_cast( &shader ) ) ); - if ( ( result != Result::eSuccess ) && ( result != Result::eIncompatibleShaderBinaryEXT ) ) - { -# if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) - return VULKAN_HPP_UNEXPECTED( result ); -# else - VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createShaderEXT" ); -# endif - } - - return ShaderEXT( *this, *reinterpret_cast( &shader ), allocator, result ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( + result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::createShaderEXT", { Result::eSuccess, Result::eIncompatibleShaderBinaryEXT } ); + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, ShaderEXT( *this, *reinterpret_cast( &shader ), allocator, result ) ); } // wrapper function for command vkGetShaderBinaryDataEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetShaderBinaryDataEXT.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector ShaderEXT::getBinaryData() const + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type ShaderEXT::getBinaryData() const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetShaderBinaryDataEXT && "Function requires " ); @@ -26528,13 +26159,13 @@ namespace VULKAN_HPP_NAMESPACE static_cast( m_device ), static_cast( m_shaderEXT ), &dataSize, reinterpret_cast( data.data() ) ) ); } } while ( result == Result::eIncomplete ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::ShaderEXT::getBinaryData" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::ShaderEXT::getBinaryData" ); VULKAN_HPP_ASSERT( dataSize <= data.size() ); if ( dataSize < data.size() ) { data.resize( dataSize ); } - return data; + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( data ) ); } // wrapper function for command vkCmdBindShadersEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdBindShadersEXT.html @@ -26572,7 +26203,7 @@ namespace VULKAN_HPP_NAMESPACE //=== VK_KHR_pipeline_binary === // wrapper function for command vkCreatePipelineBinariesKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreatePipelineBinariesKHR.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE detail::CreateReturnType>::Type + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type Device::createPipelineBinariesKHR( PipelineBinaryCreateInfoKHR const & createInfo, Optional allocator ) const { std::vector pipelineBinaries; @@ -26607,26 +26238,24 @@ namespace VULKAN_HPP_NAMESPACE } } - if ( ( result != Result::eSuccess ) && ( result != Result::eIncomplete ) && ( result != Result::ePipelineBinaryMissingKHR ) ) - { -# if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) - return VULKAN_HPP_UNEXPECTED( result ); -# else - VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createPipelineBinariesKHR" ); -# endif - } - + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, + VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::createPipelineBinariesKHR", + { Result::eSuccess, Result::eIncomplete, Result::ePipelineBinaryMissingKHR } ); std::vector pipelineBinariesRAII; - pipelineBinariesRAII.reserve( pipelineBinaries.size() ); - for ( auto & pipelineBinary : pipelineBinaries ) + if ( result == Result::eSuccess ) { - pipelineBinariesRAII.emplace_back( *this, *reinterpret_cast( &pipelineBinary ), allocator, result ); + pipelineBinariesRAII.reserve( pipelineBinaries.size() ); + for ( auto & pipelineBinary : pipelineBinaries ) + { + pipelineBinariesRAII.emplace_back( *this, *reinterpret_cast( &pipelineBinary ), allocator, result ); + } } - return pipelineBinariesRAII; + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( pipelineBinariesRAII ) ); } // wrapper function for command vkGetPipelineKeyKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPipelineKeyKHR.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE PipelineBinaryKeyKHR Device::getPipelineKeyKHR( Optional pipelineCreateInfo ) const + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType::type + Device::getPipelineKeyKHR( Optional pipelineCreateInfo ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetPipelineKeyKHR && "Function requires " ); @@ -26634,14 +26263,14 @@ namespace VULKAN_HPP_NAMESPACE Result result = static_cast( getDispatcher()->vkGetPipelineKeyKHR( static_cast( m_device ), reinterpret_cast( pipelineCreateInfo.get() ), reinterpret_cast( &pipelineKey ) ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getPipelineKeyKHR" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::getPipelineKeyKHR" ); - return pipelineKey; + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( pipelineKey ) ); } // wrapper function for command vkGetPipelineBinaryDataKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPipelineBinaryDataKHR.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::pair> - Device::getPipelineBinaryDataKHR( const PipelineBinaryDataInfoKHR & info ) const + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>>::type + Device::getPipelineBinaryDataKHR( const PipelineBinaryDataInfoKHR & info ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetPipelineBinaryDataKHR && "Function requires " ); @@ -26664,15 +26293,15 @@ namespace VULKAN_HPP_NAMESPACE reinterpret_cast( pipelineBinaryData.data() ) ) ); } - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getPipelineBinaryDataKHR" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::getPipelineBinaryDataKHR" ); - return data_; + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( data_ ) ); } // wrapper function for command vkReleaseCapturedPipelineDataKHR, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkReleaseCapturedPipelineDataKHR.html - VULKAN_HPP_INLINE void Device::releaseCapturedPipelineDataKHR( const ReleaseCapturedPipelineDataInfoKHR & info, - Optional allocator ) const + VULKAN_HPP_INLINE typename ResultValueType::type Device::releaseCapturedPipelineDataKHR( const ReleaseCapturedPipelineDataInfoKHR & info, + Optional allocator ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkReleaseCapturedPipelineDataKHR && "Function requires " ); @@ -26680,14 +26309,16 @@ namespace VULKAN_HPP_NAMESPACE static_cast( getDispatcher()->vkReleaseCapturedPipelineDataKHR( static_cast( m_device ), reinterpret_cast( &info ), reinterpret_cast( allocator.get() ) ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::releaseCapturedPipelineDataKHR" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::releaseCapturedPipelineDataKHR" ); + + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result ); } //=== VK_QCOM_tile_properties === // wrapper function for command vkGetFramebufferTilePropertiesQCOM, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetFramebufferTilePropertiesQCOM.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector Framebuffer::getTilePropertiesQCOM() const + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type Framebuffer::getTilePropertiesQCOM() const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetFramebufferTilePropertiesQCOM && "Function requires " ); @@ -26708,18 +26339,19 @@ namespace VULKAN_HPP_NAMESPACE reinterpret_cast( properties.data() ) ) ); } } while ( result == Result::eIncomplete ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Framebuffer::getTilePropertiesQCOM" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Framebuffer::getTilePropertiesQCOM" ); VULKAN_HPP_ASSERT( propertiesCount <= properties.size() ); if ( propertiesCount < properties.size() ) { properties.resize( propertiesCount ); } - return properties; + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( properties ) ); } // wrapper function for command vkGetDynamicRenderingTilePropertiesQCOM, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDynamicRenderingTilePropertiesQCOM.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE TilePropertiesQCOM Device::getDynamicRenderingTilePropertiesQCOM( const RenderingInfo & renderingInfo ) const + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType::type + Device::getDynamicRenderingTilePropertiesQCOM( const RenderingInfo & renderingInfo ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetDynamicRenderingTilePropertiesQCOM && "Function requires " ); @@ -26729,29 +26361,32 @@ namespace VULKAN_HPP_NAMESPACE static_cast( getDispatcher()->vkGetDynamicRenderingTilePropertiesQCOM( static_cast( m_device ), reinterpret_cast( &renderingInfo ), reinterpret_cast( &properties ) ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getDynamicRenderingTilePropertiesQCOM" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::getDynamicRenderingTilePropertiesQCOM" ); - return properties; + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( properties ) ); } //=== VK_KHR_swapchain_maintenance1 === // wrapper function for command vkReleaseSwapchainImagesKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkReleaseSwapchainImagesKHR.html - VULKAN_HPP_INLINE void Device::releaseSwapchainImagesKHR( const ReleaseSwapchainImagesInfoKHR & releaseInfo ) const + VULKAN_HPP_INLINE typename ResultValueType::type Device::releaseSwapchainImagesKHR( const ReleaseSwapchainImagesInfoKHR & releaseInfo ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkReleaseSwapchainImagesKHR && "Function requires or " ); Result result = static_cast( getDispatcher()->vkReleaseSwapchainImagesKHR( static_cast( m_device ), reinterpret_cast( &releaseInfo ) ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::releaseSwapchainImagesKHR" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::releaseSwapchainImagesKHR" ); + + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result ); } //=== VK_NV_cooperative_vector === // wrapper function for command vkGetPhysicalDeviceCooperativeVectorPropertiesNV, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceCooperativeVectorPropertiesNV.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector PhysicalDevice::getCooperativeVectorPropertiesNV() const + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type + PhysicalDevice::getCooperativeVectorPropertiesNV() const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceCooperativeVectorPropertiesNV && "Function requires " ); @@ -26770,13 +26405,13 @@ namespace VULKAN_HPP_NAMESPACE static_cast( m_physicalDevice ), &propertyCount, reinterpret_cast( properties.data() ) ) ); } } while ( result == Result::eIncomplete ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getCooperativeVectorPropertiesNV" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::PhysicalDevice::getCooperativeVectorPropertiesNV" ); VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); if ( propertyCount < properties.size() ) { properties.resize( propertyCount ); } - return properties; + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( properties ) ); } // wrapper function for command vkConvertCooperativeVectorMatrixNV, see @@ -26789,7 +26424,7 @@ namespace VULKAN_HPP_NAMESPACE Result result = static_cast( getDispatcher()->vkConvertCooperativeVectorMatrixNV( static_cast( m_device ), reinterpret_cast( &info ) ) ); VULKAN_HPP_NAMESPACE::detail::resultCheck( - result, VULKAN_HPP_NAMESPACE_STRING "::Device::convertCooperativeVectorMatrixNV", { Result::eSuccess, Result::eIncomplete } ); + result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::convertCooperativeVectorMatrixNV", { Result::eSuccess, Result::eIncomplete } ); return static_cast( result ); } @@ -26809,24 +26444,28 @@ namespace VULKAN_HPP_NAMESPACE //=== VK_NV_low_latency2 === // wrapper function for command vkSetLatencySleepModeNV, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkSetLatencySleepModeNV.html - VULKAN_HPP_INLINE void SwapchainKHR::setLatencySleepModeNV( const LatencySleepModeInfoNV & sleepModeInfo ) const + VULKAN_HPP_INLINE typename ResultValueType::type SwapchainKHR::setLatencySleepModeNV( const LatencySleepModeInfoNV & sleepModeInfo ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkSetLatencySleepModeNV && "Function requires " ); Result result = static_cast( getDispatcher()->vkSetLatencySleepModeNV( static_cast( m_device ), static_cast( m_swapchainKHR ), reinterpret_cast( &sleepModeInfo ) ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::SwapchainKHR::setLatencySleepModeNV" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::SwapchainKHR::setLatencySleepModeNV" ); + + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result ); } // wrapper function for command vkLatencySleepNV, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkLatencySleepNV.html - VULKAN_HPP_INLINE void SwapchainKHR::latencySleepNV( const LatencySleepInfoNV & sleepInfo ) const + VULKAN_HPP_INLINE typename ResultValueType::type SwapchainKHR::latencySleepNV( const LatencySleepInfoNV & sleepInfo ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkLatencySleepNV && "Function requires " ); Result result = static_cast( getDispatcher()->vkLatencySleepNV( static_cast( m_device ), static_cast( m_swapchainKHR ), reinterpret_cast( &sleepInfo ) ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::SwapchainKHR::latencySleepNV" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::SwapchainKHR::latencySleepNV" ); + + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result ); } // wrapper function for command vkSetLatencyMarkerNV, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkSetLatencyMarkerNV.html @@ -26868,7 +26507,8 @@ namespace VULKAN_HPP_NAMESPACE // wrapper function for command vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector PhysicalDevice::getCooperativeMatrixPropertiesKHR() const + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type + PhysicalDevice::getCooperativeMatrixPropertiesKHR() const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR && "Function requires " ); @@ -26887,21 +26527,21 @@ namespace VULKAN_HPP_NAMESPACE static_cast( m_physicalDevice ), &propertyCount, reinterpret_cast( properties.data() ) ) ); } } while ( result == Result::eIncomplete ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getCooperativeMatrixPropertiesKHR" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::PhysicalDevice::getCooperativeMatrixPropertiesKHR" ); VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); if ( propertyCount < properties.size() ) { properties.resize( propertyCount ); } - return properties; + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( properties ) ); } //=== VK_ARM_data_graph === // wrapper function for command vkCreateDataGraphPipelinesARM, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateDataGraphPipelinesARM.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE detail::CreateReturnType>::Type - Device::createDataGraphPipelinesARM( Optional const & deferredOperation, + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type + Device::createDataGraphPipelinesARM( Optional const & deferredOperation, Optional const & pipelineCache, ArrayProxy const & createInfos, Optional allocator ) const @@ -26915,31 +26555,27 @@ namespace VULKAN_HPP_NAMESPACE reinterpret_cast( createInfos.data() ), reinterpret_cast( allocator.get() ), reinterpret_cast( pipelines.data() ) ) ); - if ( ( result != Result::eSuccess ) && ( result != Result::ePipelineCompileRequiredEXT ) ) - { -# if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) - return VULKAN_HPP_UNEXPECTED( result ); -# else - VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createDataGraphPipelinesARM" ); -# endif - } - + VULKAN_HPP_NAMESPACE::detail::resultCheck( + result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::createDataGraphPipelinesARM", { Result::eSuccess, Result::ePipelineCompileRequiredEXT } ); std::vector pipelinesRAII; - pipelinesRAII.reserve( pipelines.size() ); - for ( auto & pipeline : pipelines ) + if ( result == Result::eSuccess ) { - pipelinesRAII.emplace_back( *this, *reinterpret_cast( &pipeline ), allocator, result ); + pipelinesRAII.reserve( pipelines.size() ); + for ( auto & pipeline : pipelines ) + { + pipelinesRAII.emplace_back( *this, *reinterpret_cast( &pipeline ), allocator, result ); + } } - return pipelinesRAII; + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( pipelinesRAII ) ); } // wrapper function for command vkCreateDataGraphPipelinesARM, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateDataGraphPipelinesARM.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE detail::CreateReturnType::Type - Device::createDataGraphPipelineARM( Optional const & deferredOperation, + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType::type + Device::createDataGraphPipelineARM( Optional const & deferredOperation, Optional const & pipelineCache, DataGraphPipelineCreateInfoARM const & createInfo, - Optional allocator ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT + Optional allocator ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS { VULKAN_HPP_NAMESPACE::Pipeline pipeline; Result result = @@ -26950,23 +26586,16 @@ namespace VULKAN_HPP_NAMESPACE reinterpret_cast( &createInfo ), reinterpret_cast( allocator.get() ), reinterpret_cast( &pipeline ) ) ); - if ( ( result != Result::eSuccess ) && ( result != Result::ePipelineCompileRequiredEXT ) ) - { -# if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) - return VULKAN_HPP_UNEXPECTED( result ); -# else - VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createDataGraphPipelineARM" ); -# endif - } - - return Pipeline( *this, *reinterpret_cast( &pipeline ), allocator, result ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( + result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::createDataGraphPipelineARM", { Result::eSuccess, Result::ePipelineCompileRequiredEXT } ); + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, Pipeline( *this, *reinterpret_cast( &pipeline ), allocator, result ) ); } // wrapper function for command vkCreateDataGraphPipelineSessionARM, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateDataGraphPipelineSessionARM.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE detail::CreateReturnType::Type - Device::createDataGraphPipelineSessionARM( DataGraphPipelineSessionCreateInfoARM const & createInfo, - Optional allocator ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType::type + Device::createDataGraphPipelineSessionARM( DataGraphPipelineSessionCreateInfoARM const & createInfo, + Optional allocator ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS { VULKAN_HPP_NAMESPACE::DataGraphPipelineSessionARM session; Result result = static_cast( @@ -26974,22 +26603,15 @@ namespace VULKAN_HPP_NAMESPACE reinterpret_cast( &createInfo ), reinterpret_cast( allocator.get() ), reinterpret_cast( &session ) ) ); - if ( result != Result::eSuccess ) - { -# if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) - return VULKAN_HPP_UNEXPECTED( result ); -# else - VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createDataGraphPipelineSessionARM" ); -# endif - } - - return DataGraphPipelineSessionARM( *this, *reinterpret_cast( &session ), allocator ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::createDataGraphPipelineSessionARM" ); + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( + result, DataGraphPipelineSessionARM( *this, *reinterpret_cast( &session ), allocator ) ); } // wrapper function for command vkGetDataGraphPipelineSessionBindPointRequirementsARM, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDataGraphPipelineSessionBindPointRequirementsARM.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector - Device::getDataGraphPipelineSessionBindPointRequirementsARM( const DataGraphPipelineSessionBindPointRequirementsInfoARM & info ) const + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type + Device::getDataGraphPipelineSessionBindPointRequirementsARM( const DataGraphPipelineSessionBindPointRequirementsInfoARM & info ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetDataGraphPipelineSessionBindPointRequirementsARM && "Function requires " ); @@ -27014,13 +26636,13 @@ namespace VULKAN_HPP_NAMESPACE reinterpret_cast( bindPointRequirements.data() ) ) ); } } while ( result == Result::eIncomplete ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getDataGraphPipelineSessionBindPointRequirementsARM" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::getDataGraphPipelineSessionBindPointRequirementsARM" ); VULKAN_HPP_ASSERT( bindPointRequirementCount <= bindPointRequirements.size() ); if ( bindPointRequirementCount < bindPointRequirements.size() ) { bindPointRequirements.resize( bindPointRequirementCount ); } - return bindPointRequirements; + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( bindPointRequirements ) ); } // wrapper function for command vkGetDataGraphPipelineSessionMemoryRequirementsARM, see @@ -27061,14 +26683,17 @@ namespace VULKAN_HPP_NAMESPACE // wrapper function for command vkBindDataGraphPipelineSessionMemoryARM, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkBindDataGraphPipelineSessionMemoryARM.html - VULKAN_HPP_INLINE void Device::bindDataGraphPipelineSessionMemoryARM( ArrayProxy const & bindInfos ) const + VULKAN_HPP_INLINE typename ResultValueType::type + Device::bindDataGraphPipelineSessionMemoryARM( ArrayProxy const & bindInfos ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkBindDataGraphPipelineSessionMemoryARM && "Function requires " ); Result result = static_cast( getDispatcher()->vkBindDataGraphPipelineSessionMemoryARM( static_cast( m_device ), bindInfos.size(), reinterpret_cast( bindInfos.data() ) ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::bindDataGraphPipelineSessionMemoryARM" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::bindDataGraphPipelineSessionMemoryARM" ); + + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result ); } // wrapper function for command vkCmdDispatchDataGraphARM, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdDispatchDataGraphARM.html @@ -27084,8 +26709,8 @@ namespace VULKAN_HPP_NAMESPACE // wrapper function for command vkGetDataGraphPipelineAvailablePropertiesARM, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDataGraphPipelineAvailablePropertiesARM.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector - Device::getDataGraphPipelineAvailablePropertiesARM( const DataGraphPipelineInfoARM & pipelineInfo ) const + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type + Device::getDataGraphPipelineAvailablePropertiesARM( const DataGraphPipelineInfoARM & pipelineInfo ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetDataGraphPipelineAvailablePropertiesARM && "Function requires " ); @@ -27107,13 +26732,13 @@ namespace VULKAN_HPP_NAMESPACE reinterpret_cast( properties.data() ) ) ); } } while ( result == Result::eIncomplete ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getDataGraphPipelineAvailablePropertiesARM" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::getDataGraphPipelineAvailablePropertiesARM" ); VULKAN_HPP_ASSERT( propertiesCount <= properties.size() ); if ( propertiesCount < properties.size() ) { properties.resize( propertiesCount ); } - return properties; + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( properties ) ); } // wrapper function for command vkGetDataGraphPipelinePropertiesARM, see @@ -27134,8 +26759,8 @@ namespace VULKAN_HPP_NAMESPACE // wrapper function for command vkGetPhysicalDeviceQueueFamilyDataGraphPropertiesARM, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceQueueFamilyDataGraphPropertiesARM.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector - PhysicalDevice::getQueueFamilyDataGraphPropertiesARM( uint32_t queueFamilyIndex ) const + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type + PhysicalDevice::getQueueFamilyDataGraphPropertiesARM( uint32_t queueFamilyIndex ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceQueueFamilyDataGraphPropertiesARM && "Function requires " ); @@ -27157,13 +26782,13 @@ namespace VULKAN_HPP_NAMESPACE reinterpret_cast( queueFamilyDataGraphProperties.data() ) ) ); } } while ( result == Result::eIncomplete ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getQueueFamilyDataGraphPropertiesARM" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::PhysicalDevice::getQueueFamilyDataGraphPropertiesARM" ); VULKAN_HPP_ASSERT( queueFamilyDataGraphPropertyCount <= queueFamilyDataGraphProperties.size() ); if ( queueFamilyDataGraphPropertyCount < queueFamilyDataGraphProperties.size() ) { queueFamilyDataGraphProperties.resize( queueFamilyDataGraphPropertyCount ); } - return queueFamilyDataGraphProperties; + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( queueFamilyDataGraphProperties ) ); } // wrapper function for command vkGetPhysicalDeviceQueueFamilyDataGraphProcessingEnginePropertiesARM, see @@ -27202,7 +26827,8 @@ namespace VULKAN_HPP_NAMESPACE // wrapper function for command vkGetScreenBufferPropertiesQNX, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetScreenBufferPropertiesQNX.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ScreenBufferPropertiesQNX Device::getScreenBufferPropertiesQNX( const struct _screen_buffer & buffer ) const + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType::type + Device::getScreenBufferPropertiesQNX( const struct _screen_buffer & buffer ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetScreenBufferPropertiesQNX && "Function requires " ); @@ -27210,15 +26836,16 @@ namespace VULKAN_HPP_NAMESPACE ScreenBufferPropertiesQNX properties; Result result = static_cast( getDispatcher()->vkGetScreenBufferPropertiesQNX( static_cast( m_device ), &buffer, reinterpret_cast( &properties ) ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getScreenBufferPropertiesQNX" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::getScreenBufferPropertiesQNX" ); - return properties; + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( properties ) ); } // wrapper function for command vkGetScreenBufferPropertiesQNX, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetScreenBufferPropertiesQNX.html template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain Device::getScreenBufferPropertiesQNX( const struct _screen_buffer & buffer ) const + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type + Device::getScreenBufferPropertiesQNX( const struct _screen_buffer & buffer ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetScreenBufferPropertiesQNX && "Function requires " ); @@ -27227,9 +26854,9 @@ namespace VULKAN_HPP_NAMESPACE ScreenBufferPropertiesQNX & properties = structureChain.template get(); Result result = static_cast( getDispatcher()->vkGetScreenBufferPropertiesQNX( static_cast( m_device ), &buffer, reinterpret_cast( &properties ) ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getScreenBufferPropertiesQNX" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::getScreenBufferPropertiesQNX" ); - return structureChain; + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( structureChain ) ); } # endif /*VK_USE_PLATFORM_SCREEN_QNX*/ @@ -27248,7 +26875,7 @@ namespace VULKAN_HPP_NAMESPACE // wrapper function for command vkGetPhysicalDeviceCalibrateableTimeDomainsKHR, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceCalibrateableTimeDomainsKHR.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector PhysicalDevice::getCalibrateableTimeDomainsKHR() const + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type PhysicalDevice::getCalibrateableTimeDomainsKHR() const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceCalibrateableTimeDomainsKHR && @@ -27268,19 +26895,19 @@ namespace VULKAN_HPP_NAMESPACE static_cast( m_physicalDevice ), &timeDomainCount, reinterpret_cast( timeDomains.data() ) ) ); } } while ( result == Result::eIncomplete ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getCalibrateableTimeDomainsKHR" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::PhysicalDevice::getCalibrateableTimeDomainsKHR" ); VULKAN_HPP_ASSERT( timeDomainCount <= timeDomains.size() ); if ( timeDomainCount < timeDomains.size() ) { timeDomains.resize( timeDomainCount ); } - return timeDomains; + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( timeDomains ) ); } // wrapper function for command vkGetCalibratedTimestampsKHR, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetCalibratedTimestampsKHR.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::pair, uint64_t> - Device::getCalibratedTimestampsKHR( ArrayProxy const & timestampInfos ) const + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType, uint64_t>>::type + Device::getCalibratedTimestampsKHR( ArrayProxy const & timestampInfos ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetCalibratedTimestampsKHR && "Function requires or " ); @@ -27294,15 +26921,15 @@ namespace VULKAN_HPP_NAMESPACE reinterpret_cast( timestampInfos.data() ), timestamps.data(), &maxDeviation ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getCalibratedTimestampsKHR" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::getCalibratedTimestampsKHR" ); - return data_; + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( data_ ) ); } // wrapper function for command vkGetCalibratedTimestampsKHR, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetCalibratedTimestampsKHR.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::pair - Device::getCalibratedTimestampKHR( const CalibratedTimestampInfoKHR & timestampInfo ) const + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type + Device::getCalibratedTimestampKHR( const CalibratedTimestampInfoKHR & timestampInfo ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetCalibratedTimestampsKHR && "Function requires or " ); @@ -27312,9 +26939,9 @@ namespace VULKAN_HPP_NAMESPACE uint64_t & maxDeviation = data_.second; Result result = static_cast( getDispatcher()->vkGetCalibratedTimestampsKHR( static_cast( m_device ), 1, reinterpret_cast( ×tampInfo ), ×tamp, &maxDeviation ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getCalibratedTimestampKHR" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::getCalibratedTimestampKHR" ); - return data_; + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( data_ ) ); } //=== VK_KHR_maintenance6 === @@ -27400,9 +27027,9 @@ namespace VULKAN_HPP_NAMESPACE // wrapper function for command vkCreateExternalComputeQueueNV, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateExternalComputeQueueNV.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE detail::CreateReturnType::Type - Device::createExternalComputeQueueNV( ExternalComputeQueueCreateInfoNV const & createInfo, - Optional allocator ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType::type + Device::createExternalComputeQueueNV( ExternalComputeQueueCreateInfoNV const & createInfo, + Optional allocator ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS { VULKAN_HPP_NAMESPACE::ExternalComputeQueueNV externalQueue; Result result = @@ -27410,16 +27037,9 @@ namespace VULKAN_HPP_NAMESPACE reinterpret_cast( &createInfo ), reinterpret_cast( allocator.get() ), reinterpret_cast( &externalQueue ) ) ); - if ( result != Result::eSuccess ) - { -# if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) - return VULKAN_HPP_UNEXPECTED( result ); -# else - VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createExternalComputeQueueNV" ); -# endif - } - - return ExternalComputeQueueNV( *this, *reinterpret_cast( &externalQueue ), allocator ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::createExternalComputeQueueNV" ); + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( + result, ExternalComputeQueueNV( *this, *reinterpret_cast( &externalQueue ), allocator ) ); } // wrapper function for command vkGetExternalComputeQueueDataNV, see @@ -27564,9 +27184,9 @@ namespace VULKAN_HPP_NAMESPACE // wrapper function for command vkCreateIndirectCommandsLayoutEXT, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateIndirectCommandsLayoutEXT.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE detail::CreateReturnType::Type - Device::createIndirectCommandsLayoutEXT( IndirectCommandsLayoutCreateInfoEXT const & createInfo, - Optional allocator ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType::type + Device::createIndirectCommandsLayoutEXT( IndirectCommandsLayoutCreateInfoEXT const & createInfo, + Optional allocator ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS { VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutEXT indirectCommandsLayout; Result result = @@ -27574,23 +27194,16 @@ namespace VULKAN_HPP_NAMESPACE reinterpret_cast( &createInfo ), reinterpret_cast( allocator.get() ), reinterpret_cast( &indirectCommandsLayout ) ) ); - if ( result != Result::eSuccess ) - { -# if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) - return VULKAN_HPP_UNEXPECTED( result ); -# else - VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createIndirectCommandsLayoutEXT" ); -# endif - } - - return IndirectCommandsLayoutEXT( *this, *reinterpret_cast( &indirectCommandsLayout ), allocator ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::createIndirectCommandsLayoutEXT" ); + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( + result, IndirectCommandsLayoutEXT( *this, *reinterpret_cast( &indirectCommandsLayout ), allocator ) ); } // wrapper function for command vkCreateIndirectExecutionSetEXT, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateIndirectExecutionSetEXT.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE detail::CreateReturnType::Type - Device::createIndirectExecutionSetEXT( IndirectExecutionSetCreateInfoEXT const & createInfo, - Optional allocator ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType::type + Device::createIndirectExecutionSetEXT( IndirectExecutionSetCreateInfoEXT const & createInfo, + Optional allocator ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS { VULKAN_HPP_NAMESPACE::IndirectExecutionSetEXT indirectExecutionSet; Result result = @@ -27598,16 +27211,9 @@ namespace VULKAN_HPP_NAMESPACE reinterpret_cast( &createInfo ), reinterpret_cast( allocator.get() ), reinterpret_cast( &indirectExecutionSet ) ) ); - if ( result != Result::eSuccess ) - { -# if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) - return VULKAN_HPP_UNEXPECTED( result ); -# else - VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createIndirectExecutionSetEXT" ); -# endif - } - - return IndirectExecutionSetEXT( *this, *reinterpret_cast( &indirectExecutionSet ), allocator ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::createIndirectExecutionSetEXT" ); + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( + result, IndirectExecutionSetEXT( *this, *reinterpret_cast( &indirectExecutionSet ), allocator ) ); } // wrapper function for command vkUpdateIndirectExecutionSetPipelineEXT, see @@ -27642,25 +27248,17 @@ namespace VULKAN_HPP_NAMESPACE //=== VK_OHOS_surface === // wrapper function for command vkCreateSurfaceOHOS, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateSurfaceOHOS.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE detail::CreateReturnType::Type - Instance::createSurfaceOHOS( SurfaceCreateInfoOHOS const & createInfo, - Optional allocator ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType::type + Instance::createSurfaceOHOS( SurfaceCreateInfoOHOS const & createInfo, + Optional allocator ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS { VULKAN_HPP_NAMESPACE::SurfaceKHR surface; Result result = static_cast( getDispatcher()->vkCreateSurfaceOHOS( static_cast( m_instance ), reinterpret_cast( &createInfo ), reinterpret_cast( allocator.get() ), reinterpret_cast( &surface ) ) ); - if ( result != Result::eSuccess ) - { -# if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) - return VULKAN_HPP_UNEXPECTED( result ); -# else - VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Instance::createSurfaceOHOS" ); -# endif - } - - return SurfaceKHR( *this, *reinterpret_cast( &surface ), allocator ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Instance::createSurfaceOHOS" ); + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, SurfaceKHR( *this, *reinterpret_cast( &surface ), allocator ) ); } # endif /*VK_USE_PLATFORM_OHOS*/ @@ -27668,8 +27266,8 @@ namespace VULKAN_HPP_NAMESPACE // wrapper function for command vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector - PhysicalDevice::getCooperativeMatrixFlexibleDimensionsPropertiesNV() const + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type + PhysicalDevice::getCooperativeMatrixFlexibleDimensionsPropertiesNV() const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV && "Function requires " ); @@ -27690,36 +27288,38 @@ namespace VULKAN_HPP_NAMESPACE reinterpret_cast( properties.data() ) ) ); } } while ( result == Result::eIncomplete ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getCooperativeMatrixFlexibleDimensionsPropertiesNV" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, + VULKAN_HPP_RAII_NAMESPACE_STRING "::PhysicalDevice::getCooperativeMatrixFlexibleDimensionsPropertiesNV" ); VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); if ( propertyCount < properties.size() ) { properties.resize( propertyCount ); } - return properties; + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( properties ) ); } # if defined( VK_USE_PLATFORM_METAL_EXT ) //=== VK_EXT_external_memory_metal === // wrapper function for command vkGetMemoryMetalHandleEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetMemoryMetalHandleEXT.html - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE void * Device::getMemoryMetalHandleEXT( const MemoryGetMetalHandleInfoEXT & getMetalHandleInfo ) const + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType::type + Device::getMemoryMetalHandleEXT( const MemoryGetMetalHandleInfoEXT & getMetalHandleInfo ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetMemoryMetalHandleEXT && "Function requires " ); void * handle; Result result = static_cast( getDispatcher()->vkGetMemoryMetalHandleEXT( static_cast( m_device ), reinterpret_cast( &getMetalHandleInfo ), &handle ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getMemoryMetalHandleEXT" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::getMemoryMetalHandleEXT" ); - return handle; + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( handle ) ); } // wrapper function for command vkGetMemoryMetalHandlePropertiesEXT, see // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetMemoryMetalHandlePropertiesEXT.html template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE MemoryMetalHandlePropertiesEXT - Device::getMemoryMetalHandlePropertiesEXT( ExternalMemoryHandleTypeFlagBits handleType, HandleType const & handle ) const + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType::type + Device::getMemoryMetalHandlePropertiesEXT( ExternalMemoryHandleTypeFlagBits handleType, HandleType const & handle ) const { VULKAN_HPP_ASSERT( getDispatcher()->vkGetMemoryMetalHandlePropertiesEXT && "Function requires " ); @@ -27730,9 +27330,9 @@ namespace VULKAN_HPP_NAMESPACE static_cast( handleType ), reinterpret_cast( &handle ), reinterpret_cast( &memoryMetalHandleProperties ) ) ); - VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getMemoryMetalHandlePropertiesEXT" ); + VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_RAII_NAMESPACE_STRING "::Device::getMemoryMetalHandlePropertiesEXT" ); - return memoryMetalHandleProperties; + return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( memoryMetalHandleProperties ) ); } # endif /*VK_USE_PLATFORM_METAL_EXT*/ diff --git a/include/vulkan/vulkan_static_assertions.hpp b/include/vulkan/vulkan_static_assertions.hpp index 1f8c4c5..074ded5 100644 --- a/include/vulkan/vulkan_static_assertions.hpp +++ b/include/vulkan/vulkan_static_assertions.hpp @@ -7136,6 +7136,26 @@ VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout::value, "AntiLagPresentationInfoAMD is not nothrow_move_constructible!" ); +#if defined( VK_ENABLE_BETA_EXTENSIONS ) +//=== VK_AMDX_dense_geometry_format === + +VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceDenseGeometryFormatFeaturesAMDX ) == + sizeof( VkPhysicalDeviceDenseGeometryFormatFeaturesAMDX ), + "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, + "PhysicalDeviceDenseGeometryFormatFeaturesAMDX is not nothrow_move_constructible!" ); + +VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::AccelerationStructureDenseGeometryFormatTrianglesDataAMDX ) == + sizeof( VkAccelerationStructureDenseGeometryFormatTrianglesDataAMDX ), + "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, + "AccelerationStructureDenseGeometryFormatTrianglesDataAMDX is not nothrow_move_constructible!" ); +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + //=== VK_KHR_present_id2 === VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesPresentId2KHR ) == sizeof( VkSurfaceCapabilitiesPresentId2KHR ), @@ -8871,6 +8891,12 @@ 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, + "MemoryBarrierAccessFlags3KHR is not nothrow_move_constructible!" ); + VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance8FeaturesKHR ) == sizeof( VkPhysicalDeviceMaintenance8FeaturesKHR ), "struct and wrapper have different size!" ); VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout::value, @@ -8878,12 +8904,6 @@ VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout::value, "PhysicalDeviceMaintenance8FeaturesKHR is not nothrow_move_constructible!" ); -VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::MemoryBarrierAccessFlags3KHR ) == sizeof( VkMemoryBarrierAccessFlags3KHR ), - "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, - "MemoryBarrierAccessFlags3KHR is not nothrow_move_constructible!" ); - //=== VK_MESA_image_alignment_control === VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceImageAlignmentControlFeaturesMESA ) == diff --git a/include/vulkan/vulkan_structs.hpp b/include/vulkan/vulkan_structs.hpp index 6480a9f..13b00ba 100644 --- a/include/vulkan/vulkan_structs.hpp +++ b/include/vulkan/vulkan_structs.hpp @@ -2357,6 +2357,167 @@ namespace VULKAN_HPP_NAMESPACE using Type = AccelerationStructureCreateInfoNV; }; +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + // wrapper struct for struct VkAccelerationStructureDenseGeometryFormatTrianglesDataAMDX, see + // https://registry.khronos.org/vulkan/specs/latest/man/html/VkAccelerationStructureDenseGeometryFormatTrianglesDataAMDX.html + struct AccelerationStructureDenseGeometryFormatTrianglesDataAMDX + { + using NativeType = VkAccelerationStructureDenseGeometryFormatTrianglesDataAMDX; + + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAccelerationStructureDenseGeometryFormatTrianglesDataAMDX; + +# if !defined( VULKAN_HPP_NO_CONSTRUCTORS ) && !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR_14 + AccelerationStructureDenseGeometryFormatTrianglesDataAMDX( DeviceOrHostAddressConstKHR compressedData_ = {}, + DeviceSize dataSize_ = {}, + uint32_t numTriangles_ = {}, + uint32_t numVertices_ = {}, + uint32_t maxPrimitiveIndex_ = {}, + uint32_t maxGeometryIndex_ = {}, + CompressedTriangleFormatAMDX format_ = CompressedTriangleFormatAMDX::eDgf1, + const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT + : pNext{ pNext_ } + , compressedData{ compressedData_ } + , dataSize{ dataSize_ } + , numTriangles{ numTriangles_ } + , numVertices{ numVertices_ } + , maxPrimitiveIndex{ maxPrimitiveIndex_ } + , maxGeometryIndex{ maxGeometryIndex_ } + , format{ format_ } + { + } + + VULKAN_HPP_CONSTEXPR_14 AccelerationStructureDenseGeometryFormatTrianglesDataAMDX( AccelerationStructureDenseGeometryFormatTrianglesDataAMDX const & rhs ) + VULKAN_HPP_NOEXCEPT = default; + + AccelerationStructureDenseGeometryFormatTrianglesDataAMDX( VkAccelerationStructureDenseGeometryFormatTrianglesDataAMDX const & rhs ) VULKAN_HPP_NOEXCEPT + : AccelerationStructureDenseGeometryFormatTrianglesDataAMDX( + *reinterpret_cast( &rhs ) ) + { + } + + AccelerationStructureDenseGeometryFormatTrianglesDataAMDX & + operator=( AccelerationStructureDenseGeometryFormatTrianglesDataAMDX const & rhs ) VULKAN_HPP_NOEXCEPT = default; +# endif /*VULKAN_HPP_NO_CONSTRUCTORS*/ + + AccelerationStructureDenseGeometryFormatTrianglesDataAMDX & + operator=( VkAccelerationStructureDenseGeometryFormatTrianglesDataAMDX 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 AccelerationStructureDenseGeometryFormatTrianglesDataAMDX & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 AccelerationStructureDenseGeometryFormatTrianglesDataAMDX & + setCompressedData( DeviceOrHostAddressConstKHR const & compressedData_ ) VULKAN_HPP_NOEXCEPT + { + compressedData = compressedData_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 AccelerationStructureDenseGeometryFormatTrianglesDataAMDX & setDataSize( DeviceSize dataSize_ ) VULKAN_HPP_NOEXCEPT + { + dataSize = dataSize_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 AccelerationStructureDenseGeometryFormatTrianglesDataAMDX & setNumTriangles( uint32_t numTriangles_ ) VULKAN_HPP_NOEXCEPT + { + numTriangles = numTriangles_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 AccelerationStructureDenseGeometryFormatTrianglesDataAMDX & setNumVertices( uint32_t numVertices_ ) VULKAN_HPP_NOEXCEPT + { + numVertices = numVertices_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 AccelerationStructureDenseGeometryFormatTrianglesDataAMDX & setMaxPrimitiveIndex( uint32_t maxPrimitiveIndex_ ) VULKAN_HPP_NOEXCEPT + { + maxPrimitiveIndex = maxPrimitiveIndex_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 AccelerationStructureDenseGeometryFormatTrianglesDataAMDX & setMaxGeometryIndex( uint32_t maxGeometryIndex_ ) VULKAN_HPP_NOEXCEPT + { + maxGeometryIndex = maxGeometryIndex_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 AccelerationStructureDenseGeometryFormatTrianglesDataAMDX & setFormat( CompressedTriangleFormatAMDX format_ ) VULKAN_HPP_NOEXCEPT + { + format = format_; + return *this; + } +# endif /*VULKAN_HPP_NO_SETTERS*/ + + operator VkAccelerationStructureDenseGeometryFormatTrianglesDataAMDX const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkAccelerationStructureDenseGeometryFormatTrianglesDataAMDX &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkAccelerationStructureDenseGeometryFormatTrianglesDataAMDX const *() const VULKAN_HPP_NOEXCEPT + { + return reinterpret_cast( this ); + } + + operator VkAccelerationStructureDenseGeometryFormatTrianglesDataAMDX *() VULKAN_HPP_NOEXCEPT + { + return reinterpret_cast( this ); + } + +# if defined( VULKAN_HPP_USE_REFLECT ) +# if 14 <= VULKAN_HPP_CPP_VERSION + auto +# else + std::tuple +# endif + reflect() const VULKAN_HPP_NOEXCEPT + { + return std::tie( sType, pNext, compressedData, dataSize, numTriangles, numVertices, maxPrimitiveIndex, maxGeometryIndex, format ); + } +# endif + + public: + StructureType sType = StructureType::eAccelerationStructureDenseGeometryFormatTrianglesDataAMDX; + const void * pNext = {}; + DeviceOrHostAddressConstKHR compressedData = {}; + DeviceSize dataSize = {}; + uint32_t numTriangles = {}; + uint32_t numVertices = {}; + uint32_t maxPrimitiveIndex = {}; + uint32_t maxGeometryIndex = {}; + CompressedTriangleFormatAMDX format = CompressedTriangleFormatAMDX::eDgf1; + }; + + template <> + struct CppType + { + using Type = AccelerationStructureDenseGeometryFormatTrianglesDataAMDX; + }; +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + // wrapper struct for struct VkAccelerationStructureDeviceAddressInfoKHR, see // https://registry.khronos.org/vulkan/specs/latest/man/html/VkAccelerationStructureDeviceAddressInfoKHR.html struct AccelerationStructureDeviceAddressInfoKHR @@ -35995,28 +36156,48 @@ namespace VULKAN_HPP_NAMESPACE static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceCreateInfo; #if !defined( VULKAN_HPP_NO_CONSTRUCTORS ) && !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR DeviceCreateInfo( DeviceCreateFlags flags_ = {}, - uint32_t queueCreateInfoCount_ = {}, - const DeviceQueueCreateInfo * pQueueCreateInfos_ = {}, - uint32_t enabledLayerCount_ = {}, - const char * const * ppEnabledLayerNames_ = {}, - uint32_t enabledExtensionCount_ = {}, - const char * const * ppEnabledExtensionNames_ = {}, - const PhysicalDeviceFeatures * pEnabledFeatures_ = {}, - const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT + +# if defined( _MSC_VER ) +// no need to ignore this warning with MSVC +# elif defined( __clang__ ) +// no need to ignore this warning with clang +# elif defined( __GNUC__ ) +# pragma GCC diagnostic push +# pragma GCC diagnostic ignored "-Wdeprecated-declarations" +# else +// unknown compiler... just ignore the warnings for yourselves ;) +# endif + VULKAN_HPP_CONSTEXPR_17 DeviceCreateInfo( DeviceCreateFlags flags_ = {}, + uint32_t queueCreateInfoCount_ = {}, + const DeviceQueueCreateInfo * pQueueCreateInfos_ = {}, + uint32_t enabledLayerCount_ = {}, + const char * const * ppEnabledLayerNames_ = {}, + uint32_t enabledExtensionCount_ = {}, + const char * const * ppEnabledExtensionNames_ = {}, + const PhysicalDeviceFeatures * pEnabledFeatures_ = {}, + const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT : pNext{ pNext_ } , flags{ flags_ } , queueCreateInfoCount{ queueCreateInfoCount_ } , pQueueCreateInfos{ pQueueCreateInfos_ } - , enabledLayerCount{ enabledLayerCount_ } - , ppEnabledLayerNames{ ppEnabledLayerNames_ } , enabledExtensionCount{ enabledExtensionCount_ } , ppEnabledExtensionNames{ ppEnabledExtensionNames_ } , pEnabledFeatures{ pEnabledFeatures_ } { + detail::ignore( enabledLayerCount_ ); + detail::ignore( ppEnabledLayerNames_ ); } - VULKAN_HPP_CONSTEXPR DeviceCreateInfo( DeviceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; + VULKAN_HPP_CONSTEXPR_17 DeviceCreateInfo( DeviceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT + : pNext{ rhs.pNext } + , flags{ rhs.flags } + , queueCreateInfoCount{ rhs.queueCreateInfoCount } + , pQueueCreateInfos{ rhs.pQueueCreateInfos } + , enabledExtensionCount{ rhs.enabledExtensionCount } + , ppEnabledExtensionNames{ rhs.ppEnabledExtensionNames } + , pEnabledFeatures{ rhs.pEnabledFeatures } + { + } DeviceCreateInfo( VkDeviceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT : DeviceCreateInfo( *reinterpret_cast( &rhs ) ) {} @@ -36031,21 +36212,49 @@ namespace VULKAN_HPP_NAMESPACE , flags( flags_ ) , queueCreateInfoCount( static_cast( queueCreateInfos_.size() ) ) , pQueueCreateInfos( queueCreateInfos_.data() ) - , enabledLayerCount( static_cast( pEnabledLayerNames_.size() ) ) - , ppEnabledLayerNames( pEnabledLayerNames_.data() ) , enabledExtensionCount( static_cast( pEnabledExtensionNames_.size() ) ) , ppEnabledExtensionNames( pEnabledExtensionNames_.data() ) , pEnabledFeatures( pEnabledFeatures_ ) { + detail::ignore( pEnabledLayerNames_ ); } # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - DeviceCreateInfo & operator=( DeviceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; +# if defined( _MSC_VER ) +// no need to ignore this warning with MSVC +# elif defined( __clang__ ) +// no need to ignore this warning with clang +# elif defined( __GNUC__ ) +# pragma GCC diagnostic pop +# else +// unknown compiler... just ignore the warnings for yourselves ;) +# endif + + DeviceCreateInfo & operator=( DeviceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT + { + if ( this != &rhs ) + { + pNext = rhs.pNext; + flags = rhs.flags; + queueCreateInfoCount = rhs.queueCreateInfoCount; + pQueueCreateInfos = rhs.pQueueCreateInfos; + enabledExtensionCount = rhs.enabledExtensionCount; + ppEnabledExtensionNames = rhs.ppEnabledExtensionNames; + pEnabledFeatures = rhs.pEnabledFeatures; + } + return *this; + } #endif /*VULKAN_HPP_NO_CONSTRUCTORS*/ DeviceCreateInfo & operator=( VkDeviceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT { - *this = *reinterpret_cast( &rhs ); + pNext = rhs.pNext; + flags = static_cast( rhs.flags ); + queueCreateInfoCount = rhs.queueCreateInfoCount; + pQueueCreateInfos = reinterpret_cast( rhs.pQueueCreateInfos ); + enabledExtensionCount = rhs.enabledExtensionCount; + ppEnabledExtensionNames = rhs.ppEnabledExtensionNames; + pEnabledFeatures = reinterpret_cast( rhs.pEnabledFeatures ); return *this; } @@ -36083,23 +36292,24 @@ namespace VULKAN_HPP_NAMESPACE } # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - VULKAN_HPP_CONSTEXPR_14 DeviceCreateInfo & setEnabledLayerCount( uint32_t enabledLayerCount_ ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_DEPRECATED( "ignored" ) VULKAN_HPP_CONSTEXPR_14 DeviceCreateInfo & setEnabledLayerCount( uint32_t enabledLayerCount_ ) VULKAN_HPP_NOEXCEPT { - enabledLayerCount = enabledLayerCount_; + detail::ignore( enabledLayerCount_ ); return *this; } + VULKAN_HPP_DEPRECATED( "ignored" ) VULKAN_HPP_CONSTEXPR_14 DeviceCreateInfo & setPpEnabledLayerNames( const char * const * ppEnabledLayerNames_ ) VULKAN_HPP_NOEXCEPT { - ppEnabledLayerNames = ppEnabledLayerNames_; + detail::ignore( ppEnabledLayerNames_ ); return *this; } # if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + VULKAN_HPP_DEPRECATED( "ignored" ) DeviceCreateInfo & setPEnabledLayerNames( ArrayProxyNoTemporaries const & pEnabledLayerNames_ ) VULKAN_HPP_NOEXCEPT { - enabledLayerCount = static_cast( pEnabledLayerNames_.size() ); - ppEnabledLayerNames = pEnabledLayerNames_.data(); + detail::ignore( pEnabledLayerNames_ ); return *this; } # endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ @@ -36195,14 +36405,6 @@ namespace VULKAN_HPP_NAMESPACE return cmp; if ( auto cmp = pQueueCreateInfos <=> rhs.pQueueCreateInfos; cmp != 0 ) return cmp; - if ( auto cmp = enabledLayerCount <=> rhs.enabledLayerCount; cmp != 0 ) - return cmp; - for ( size_t i = 0; i < enabledLayerCount; ++i ) - { - if ( ppEnabledLayerNames[i] != rhs.ppEnabledLayerNames[i] ) - if ( auto cmp = strcmp( ppEnabledLayerNames[i], rhs.ppEnabledLayerNames[i] ); cmp != 0 ) - return cmp < 0 ? std::strong_ordering::less : std::strong_ordering::greater; - } if ( auto cmp = enabledExtensionCount <=> rhs.enabledExtensionCount; cmp != 0 ) return cmp; for ( size_t i = 0; i < enabledExtensionCount; ++i ) @@ -36221,12 +36423,7 @@ namespace VULKAN_HPP_NAMESPACE bool operator==( DeviceCreateInfo const & rhs ) const VULKAN_HPP_NOEXCEPT { return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( queueCreateInfoCount == rhs.queueCreateInfoCount ) && - ( pQueueCreateInfos == rhs.pQueueCreateInfos ) && ( enabledLayerCount == rhs.enabledLayerCount ) && - std::equal( ppEnabledLayerNames, - ppEnabledLayerNames + enabledLayerCount, - rhs.ppEnabledLayerNames, - []( char const * left, char const * right ) { return ( left == right ) || ( strcmp( left, right ) == 0 ); } ) && - ( enabledExtensionCount == rhs.enabledExtensionCount ) && + ( pQueueCreateInfos == rhs.pQueueCreateInfos ) && ( enabledExtensionCount == rhs.enabledExtensionCount ) && std::equal( ppEnabledExtensionNames, ppEnabledExtensionNames + enabledExtensionCount, rhs.ppEnabledExtensionNames, @@ -36240,13 +36437,13 @@ namespace VULKAN_HPP_NAMESPACE } public: - StructureType sType = StructureType::eDeviceCreateInfo; - const void * pNext = {}; - DeviceCreateFlags flags = {}; - uint32_t queueCreateInfoCount = {}; - const DeviceQueueCreateInfo * pQueueCreateInfos = {}; - uint32_t enabledLayerCount = {}; - const char * const * ppEnabledLayerNames = {}; + StructureType sType = StructureType::eDeviceCreateInfo; + const void * pNext = {}; + DeviceCreateFlags flags = {}; + uint32_t queueCreateInfoCount = {}; + const DeviceQueueCreateInfo * pQueueCreateInfos = {}; + VULKAN_HPP_DEPRECATED( "ignored" ) uint32_t enabledLayerCount; + VULKAN_HPP_DEPRECATED( "ignored" ) const char * const * ppEnabledLayerNames; uint32_t enabledExtensionCount = {}; const char * const * ppEnabledExtensionNames = {}; const PhysicalDeviceFeatures * pEnabledFeatures = {}; @@ -78730,6 +78927,117 @@ namespace VULKAN_HPP_NAMESPACE using Type = PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV; }; +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + // wrapper struct for struct VkPhysicalDeviceDenseGeometryFormatFeaturesAMDX, see + // https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceDenseGeometryFormatFeaturesAMDX.html + struct PhysicalDeviceDenseGeometryFormatFeaturesAMDX + { + using NativeType = VkPhysicalDeviceDenseGeometryFormatFeaturesAMDX; + + static const bool allowDuplicate = false; + static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceDenseGeometryFormatFeaturesAMDX; + +# if !defined( VULKAN_HPP_NO_CONSTRUCTORS ) && !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) + VULKAN_HPP_CONSTEXPR PhysicalDeviceDenseGeometryFormatFeaturesAMDX( Bool32 denseGeometryFormat_ = {}, void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT + : pNext{ pNext_ } + , denseGeometryFormat{ denseGeometryFormat_ } + { + } + + VULKAN_HPP_CONSTEXPR + PhysicalDeviceDenseGeometryFormatFeaturesAMDX( PhysicalDeviceDenseGeometryFormatFeaturesAMDX const & rhs ) VULKAN_HPP_NOEXCEPT = default; + + PhysicalDeviceDenseGeometryFormatFeaturesAMDX( VkPhysicalDeviceDenseGeometryFormatFeaturesAMDX const & rhs ) VULKAN_HPP_NOEXCEPT + : PhysicalDeviceDenseGeometryFormatFeaturesAMDX( *reinterpret_cast( &rhs ) ) + { + } + + PhysicalDeviceDenseGeometryFormatFeaturesAMDX & operator=( PhysicalDeviceDenseGeometryFormatFeaturesAMDX const & rhs ) VULKAN_HPP_NOEXCEPT = default; +# endif /*VULKAN_HPP_NO_CONSTRUCTORS*/ + + PhysicalDeviceDenseGeometryFormatFeaturesAMDX & operator=( VkPhysicalDeviceDenseGeometryFormatFeaturesAMDX 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 PhysicalDeviceDenseGeometryFormatFeaturesAMDX & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT + { + pNext = pNext_; + return *this; + } + + VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDenseGeometryFormatFeaturesAMDX & setDenseGeometryFormat( Bool32 denseGeometryFormat_ ) VULKAN_HPP_NOEXCEPT + { + denseGeometryFormat = denseGeometryFormat_; + return *this; + } +# endif /*VULKAN_HPP_NO_SETTERS*/ + + operator VkPhysicalDeviceDenseGeometryFormatFeaturesAMDX const &() const VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkPhysicalDeviceDenseGeometryFormatFeaturesAMDX &() VULKAN_HPP_NOEXCEPT + { + return *reinterpret_cast( this ); + } + + operator VkPhysicalDeviceDenseGeometryFormatFeaturesAMDX const *() const VULKAN_HPP_NOEXCEPT + { + return reinterpret_cast( this ); + } + + operator VkPhysicalDeviceDenseGeometryFormatFeaturesAMDX *() VULKAN_HPP_NOEXCEPT + { + return reinterpret_cast( this ); + } + +# if defined( VULKAN_HPP_USE_REFLECT ) +# if 14 <= VULKAN_HPP_CPP_VERSION + auto +# else + std::tuple +# endif + reflect() const VULKAN_HPP_NOEXCEPT + { + return std::tie( sType, pNext, denseGeometryFormat ); + } +# endif + +# if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) + auto operator<=>( PhysicalDeviceDenseGeometryFormatFeaturesAMDX const & ) const = default; +# else + bool operator==( PhysicalDeviceDenseGeometryFormatFeaturesAMDX 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 ) && ( denseGeometryFormat == rhs.denseGeometryFormat ); +# endif + } + + bool operator!=( PhysicalDeviceDenseGeometryFormatFeaturesAMDX const & rhs ) const VULKAN_HPP_NOEXCEPT + { + return !operator==( rhs ); + } +# endif + + public: + StructureType sType = StructureType::ePhysicalDeviceDenseGeometryFormatFeaturesAMDX; + void * pNext = {}; + Bool32 denseGeometryFormat = {}; + }; + + template <> + struct CppType + { + using Type = PhysicalDeviceDenseGeometryFormatFeaturesAMDX; + }; +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + // wrapper struct for struct VkPhysicalDeviceDepthBiasControlFeaturesEXT, see // https://registry.khronos.org/vulkan/specs/latest/man/html/VkPhysicalDeviceDepthBiasControlFeaturesEXT.html struct PhysicalDeviceDepthBiasControlFeaturesEXT diff --git a/include/vulkan/vulkan_to_string.hpp b/include/vulkan/vulkan_to_string.hpp index e4ae96d..ba89c4d 100644 --- a/include/vulkan/vulkan_to_string.hpp +++ b/include/vulkan/vulkan_to_string.hpp @@ -2159,6 +2159,10 @@ namespace VULKAN_HPP_NAMESPACE result += " MicromapBuildInputReadOnlyEXT |"; if ( value & BufferUsageFlagBits2::eMicromapStorageEXT ) result += " MicromapStorageEXT |"; +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + if ( value & BufferUsageFlagBits2::eCompressedDataDgf1AMDX ) + result += " CompressedDataDgf1AMDX |"; +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ if ( value & BufferUsageFlagBits2::eDataGraphForeignDescriptorARM ) result += " DataGraphForeignDescriptorARM |"; if ( value & BufferUsageFlagBits2::eTileMemoryQCOM ) @@ -5117,9 +5121,13 @@ namespace VULKAN_HPP_NAMESPACE case StructureType::ePhysicalDeviceExternalFormatResolvePropertiesANDROID: return "PhysicalDeviceExternalFormatResolvePropertiesANDROID"; case StructureType::eAndroidHardwareBufferFormatResolvePropertiesANDROID : return "AndroidHardwareBufferFormatResolvePropertiesANDROID"; #endif /*VK_USE_PLATFORM_ANDROID_KHR*/ - case StructureType::ePhysicalDeviceAntiLagFeaturesAMD : return "PhysicalDeviceAntiLagFeaturesAMD"; - case StructureType::eAntiLagDataAMD : return "AntiLagDataAMD"; - case StructureType::eAntiLagPresentationInfoAMD : return "AntiLagPresentationInfoAMD"; + case StructureType::ePhysicalDeviceAntiLagFeaturesAMD: return "PhysicalDeviceAntiLagFeaturesAMD"; + case StructureType::eAntiLagDataAMD : return "AntiLagDataAMD"; + case StructureType::eAntiLagPresentationInfoAMD : return "AntiLagPresentationInfoAMD"; +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + case StructureType::ePhysicalDeviceDenseGeometryFormatFeaturesAMDX : return "PhysicalDeviceDenseGeometryFormatFeaturesAMDX"; + case StructureType::eAccelerationStructureDenseGeometryFormatTrianglesDataAMDX: return "AccelerationStructureDenseGeometryFormatTrianglesDataAMDX"; +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ case StructureType::eSurfaceCapabilitiesPresentId2KHR : return "SurfaceCapabilitiesPresentId2KHR"; case StructureType::ePresentId2KHR : return "PresentId2KHR"; case StructureType::ePhysicalDevicePresentId2FeaturesKHR : return "PhysicalDevicePresentId2FeaturesKHR"; @@ -7779,10 +7787,13 @@ namespace VULKAN_HPP_NAMESPACE case BufferUsageFlagBits2::ePushDescriptorsDescriptorBufferEXT : return "PushDescriptorsDescriptorBufferEXT"; case BufferUsageFlagBits2::eMicromapBuildInputReadOnlyEXT : return "MicromapBuildInputReadOnlyEXT"; case BufferUsageFlagBits2::eMicromapStorageEXT : return "MicromapStorageEXT"; - case BufferUsageFlagBits2::eDataGraphForeignDescriptorARM : return "DataGraphForeignDescriptorARM"; - case BufferUsageFlagBits2::eTileMemoryQCOM : return "TileMemoryQCOM"; - case BufferUsageFlagBits2::ePreprocessBufferEXT : return "PreprocessBufferEXT"; - default : return "invalid ( " + toHexString( static_cast( value ) ) + " )"; +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + case BufferUsageFlagBits2::eCompressedDataDgf1AMDX: return "CompressedDataDgf1AMDX"; +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + case BufferUsageFlagBits2::eDataGraphForeignDescriptorARM: return "DataGraphForeignDescriptorARM"; + case BufferUsageFlagBits2::eTileMemoryQCOM : return "TileMemoryQCOM"; + case BufferUsageFlagBits2::ePreprocessBufferEXT : return "PreprocessBufferEXT"; + default : return "invalid ( " + toHexString( static_cast( value ) ) + " )"; } } @@ -8785,7 +8796,10 @@ namespace VULKAN_HPP_NAMESPACE case GeometryTypeKHR::eInstances : return "Instances"; case GeometryTypeKHR::eSpheresNV : return "SpheresNV"; case GeometryTypeKHR::eLinearSweptSpheresNV: return "LinearSweptSpheresNV"; - default : return "invalid ( " + toHexString( static_cast( value ) ) + " )"; +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + case GeometryTypeKHR::eDenseGeometryFormatTrianglesAMDX: return "DenseGeometryFormatTrianglesAMDX"; +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + default: return "invalid ( " + toHexString( static_cast( value ) ) + " )"; } } @@ -9886,6 +9900,19 @@ namespace VULKAN_HPP_NAMESPACE } } +#if defined( VK_ENABLE_BETA_EXTENSIONS ) + //=== VK_AMDX_dense_geometry_format === + + VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR_20 std::string to_string( CompressedTriangleFormatAMDX value ) + { + switch ( value ) + { + case CompressedTriangleFormatAMDX::eDgf1: return "Dgf1"; + default : return "invalid ( " + toHexString( static_cast( value ) ) + " )"; + } + } +#endif /*VK_ENABLE_BETA_EXTENSIONS*/ + //=== VK_EXT_shader_object === VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR_20 std::string to_string( ShaderCreateFlagBitsEXT value ) diff --git a/include/vulkan/vulkan_video.cppm b/include/vulkan/vulkan_video.cppm index 04cd62f..f3f097e 100644 --- a/include/vulkan/vulkan_video.cppm +++ b/include/vulkan/vulkan_video.cppm @@ -24,22 +24,102 @@ export namespace VULKAN_HPP_NAMESPACE namespace VULKAN_HPP_VIDEO_NAMESPACE { + //================= + //=== CONSTANTs === + //================= + +#if defined( VULKAN_VIDEO_CODEC_H264STD_H_ ) + //=== vulkan_video_codec_h264std === + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264CpbCntListSize; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264MaxChromaPlanes; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264MaxNumListRef; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264NoReferencePicture; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264ScalingList4X4NumElements; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264ScalingList4X4NumLists; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264ScalingList8X8NumElements; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264ScalingList8X8NumLists; +#endif + +#if defined( VULKAN_VIDEO_CODEC_H264STD_DECODE_H_ ) + //=== vulkan_video_codec_h264std_decode === + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::DecodeH264FieldOrderCountListSize; +#endif + +#if defined( VULKAN_VIDEO_CODEC_H265STD_H_ ) + //=== vulkan_video_codec_h265std === + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265ChromaQpOffsetListSize; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265ChromaQpOffsetTileColsListSize; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265ChromaQpOffsetTileRowsListSize; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265CpbCntListSize; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265MaxChromaPlanes; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265MaxDeltaPoc; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265MaxDpbSize; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265MaxLongTermPics; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265MaxLongTermRefPicsSps; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265MaxNumListRef; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265MaxShortTermRefPicSets; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265NoReferencePicture; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265PredictorPaletteCompEntriesListSize; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265PredictorPaletteComponentsListSize; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265ScalingList16X16NumElements; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265ScalingList16X16NumLists; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265ScalingList32X32NumElements; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265ScalingList32X32NumLists; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265ScalingList4X4NumElements; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265ScalingList4X4NumLists; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265ScalingList8X8NumElements; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265ScalingList8X8NumLists; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265SublayersListSize; +#endif + +#if defined( VULKAN_VIDEO_CODEC_H265STD_DECODE_H_ ) + //=== vulkan_video_codec_h265std_decode === + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::DecodeH265RefPicSetListSize; +#endif + +#if defined( VULKAN_VIDEO_CODEC_VP9STD_H_ ) + //=== vulkan_video_codec_vp9std === + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::Vp9LoopFilterAdjustments; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::Vp9MaxRefFrames; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::Vp9MaxSegmentationPredProb; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::Vp9MaxSegmentationTreeProbs; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::Vp9MaxSegments; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::Vp9NumRefFrames; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::Vp9RefsPerFrame; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::Vp9SegLvlMax; +#endif + +#if defined( VULKAN_VIDEO_CODEC_AV1STD_H_ ) + //=== vulkan_video_codec_av1std === + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::Av1GlobalMotionParams; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::Av1LoopFilterAdjustments; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::Av1MaxCdefFilterStrengths; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::Av1MaxLoopFilterStrengths; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::Av1MaxNumCbPoints; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::Av1MaxNumCrPoints; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::Av1MaxNumPlanes; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::Av1MaxNumPosChroma; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::Av1MaxNumPosLuma; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::Av1MaxNumYPoints; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::Av1MaxSegments; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::Av1MaxTileCols; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::Av1MaxTileRows; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::Av1NumRefFrames; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::Av1PrimaryRefNone; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::Av1RefsPerFrame; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::Av1SegLvlMax; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::Av1SelectIntegerMv; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::Av1SelectScreenContentTools; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::Av1SkipModeFrames; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::Av1TotalRefsPerFrame; +#endif + //============= //=== ENUMs === //============= - using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1ChromaSamplePosition; - using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1ColorPrimaries; - using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1FrameRestorationType; - using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1FrameType; - using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1InterpolationFilter; - using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1Level; - using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1MatrixCoefficients; - using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1Profile; - using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1ReferenceName; - using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1TransferCharacteristics; - using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1TxMode; - using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::DecodeH264FieldOrderCount; +#if defined( VULKAN_VIDEO_CODEC_H264STD_H_ ) + //=== vulkan_video_codec_h264std === using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264AspectRatioIdc; using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264CabacInitIdc; using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264ChromaFormatIdc; @@ -53,63 +133,74 @@ export namespace VULKAN_HPP_NAMESPACE using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264ProfileIdc; using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264SliceType; using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264WeightedBipredIdc; +#endif + +#if defined( VULKAN_VIDEO_CODEC_H264STD_DECODE_H_ ) + //=== vulkan_video_codec_h264std_decode === + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::DecodeH264FieldOrderCount; +#endif + +#if defined( VULKAN_VIDEO_CODEC_H265STD_H_ ) + //=== vulkan_video_codec_h265std === using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265AspectRatioIdc; using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265ChromaFormatIdc; using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265LevelIdc; using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265PictureType; using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265ProfileIdc; using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265SliceType; +#endif + +#if defined( VULKAN_VIDEO_CODEC_VP9STD_H_ ) + //=== vulkan_video_codec_vp9std === using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::VP9ColorSpace; using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::VP9FrameType; using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::VP9InterpolationFilter; using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::VP9Level; using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::VP9Profile; using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::VP9ReferenceName; +#endif + +#if defined( VULKAN_VIDEO_CODEC_AV1STD_H_ ) + //=== vulkan_video_codec_av1std === + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1ChromaSamplePosition; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1ColorPrimaries; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1FrameRestorationType; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1FrameType; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1InterpolationFilter; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1Level; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1MatrixCoefficients; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1Profile; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1ReferenceName; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1TransferCharacteristics; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1TxMode; +#endif //=============== //=== STRUCTS === //=============== - using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1CDEF; - using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1ColorConfig; - using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1ColorConfigFlags; - using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1FilmGrain; - using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1FilmGrainFlags; - using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1GlobalMotion; - using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1LoopFilter; - using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1LoopFilterFlags; - using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1LoopRestoration; - using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1Quantization; - using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1QuantizationFlags; - using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1Segmentation; - using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1SequenceHeader; - using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1SequenceHeaderFlags; - using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1TileInfo; - using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1TileInfoFlags; - using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1TimingInfo; - using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1TimingInfoFlags; - using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::DecodeAV1PictureInfo; - using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::DecodeAV1PictureInfoFlags; - using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::DecodeAV1ReferenceInfo; - using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::DecodeAV1ReferenceInfoFlags; +#if defined( VULKAN_VIDEO_CODEC_H264STD_H_ ) + //=== vulkan_video_codec_h264std === + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264HrdParameters; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264PictureParameterSet; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264PpsFlags; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264ScalingLists; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264SequenceParameterSet; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264SequenceParameterSetVui; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264SpsFlags; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264SpsVuiFlags; +#endif + +#if defined( VULKAN_VIDEO_CODEC_H264STD_DECODE_H_ ) + //=== vulkan_video_codec_h264std_decode === using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::DecodeH264PictureInfo; using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::DecodeH264PictureInfoFlags; using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::DecodeH264ReferenceInfo; using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::DecodeH264ReferenceInfoFlags; - using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::DecodeH265PictureInfo; - using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::DecodeH265PictureInfoFlags; - using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::DecodeH265ReferenceInfo; - using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::DecodeH265ReferenceInfoFlags; - using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::DecodeVP9PictureInfo; - using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::DecodeVP9PictureInfoFlags; - using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeAV1DecoderModelInfo; - using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeAV1ExtensionHeader; - using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeAV1OperatingPointInfo; - using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeAV1OperatingPointInfoFlags; - using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeAV1PictureInfo; - using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeAV1PictureInfoFlags; - using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeAV1ReferenceInfo; - using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeAV1ReferenceInfoFlags; +#endif + +#if defined( VULKAN_VIDEO_CODEC_H264STD_ENCODE_H_ ) + //=== vulkan_video_codec_h264std_encode === using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeH264PictureInfo; using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeH264PictureInfoFlags; using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeH264ReferenceInfo; @@ -122,25 +213,10 @@ export namespace VULKAN_HPP_NAMESPACE using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeH264SliceHeaderFlags; using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeH264WeightTable; using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeH264WeightTableFlags; - using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeH265LongTermRefPics; - using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeH265PictureInfo; - using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeH265PictureInfoFlags; - using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeH265ReferenceInfo; - using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeH265ReferenceInfoFlags; - using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeH265ReferenceListsInfo; - using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeH265ReferenceListsInfoFlags; - using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeH265SliceSegmentHeader; - using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeH265SliceSegmentHeaderFlags; - using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeH265WeightTable; - using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeH265WeightTableFlags; - using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264HrdParameters; - using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264PictureParameterSet; - using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264PpsFlags; - using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264ScalingLists; - using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264SequenceParameterSet; - using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264SequenceParameterSetVui; - using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264SpsFlags; - using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H264SpsVuiFlags; +#endif + +#if defined( VULKAN_VIDEO_CODEC_H265STD_H_ ) + //=== vulkan_video_codec_h265std === using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265DecPicBufMgr; using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265HrdFlags; using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265HrdParameters; @@ -160,12 +236,88 @@ export namespace VULKAN_HPP_NAMESPACE using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265SubLayerHrdParameters; using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265VideoParameterSet; using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::H265VpsFlags; +#endif + +#if defined( VULKAN_VIDEO_CODEC_H265STD_DECODE_H_ ) + //=== vulkan_video_codec_h265std_decode === + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::DecodeH265PictureInfo; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::DecodeH265PictureInfoFlags; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::DecodeH265ReferenceInfo; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::DecodeH265ReferenceInfoFlags; +#endif + +#if defined( VULKAN_VIDEO_CODEC_H265STD_ENCODE_H_ ) + //=== vulkan_video_codec_h265std_encode === + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeH265LongTermRefPics; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeH265PictureInfo; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeH265PictureInfoFlags; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeH265ReferenceInfo; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeH265ReferenceInfoFlags; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeH265ReferenceListsInfo; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeH265ReferenceListsInfoFlags; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeH265SliceSegmentHeader; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeH265SliceSegmentHeaderFlags; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeH265WeightTable; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeH265WeightTableFlags; +#endif + +#if defined( VULKAN_VIDEO_CODEC_VP9STD_H_ ) + //=== vulkan_video_codec_vp9std === using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::VP9ColorConfig; using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::VP9ColorConfigFlags; using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::VP9LoopFilter; using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::VP9LoopFilterFlags; using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::VP9Segmentation; using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::VP9SegmentationFlags; +#endif + +#if defined( VULKAN_VIDEO_CODEC_VP9STD_DECODE_H_ ) + //=== vulkan_video_codec_vp9std_decode === + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::DecodeVP9PictureInfo; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::DecodeVP9PictureInfoFlags; +#endif + +#if defined( VULKAN_VIDEO_CODEC_AV1STD_H_ ) + //=== vulkan_video_codec_av1std === + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1CDEF; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1ColorConfig; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1ColorConfigFlags; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1FilmGrain; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1FilmGrainFlags; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1GlobalMotion; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1LoopFilter; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1LoopFilterFlags; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1LoopRestoration; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1Quantization; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1QuantizationFlags; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1Segmentation; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1SequenceHeader; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1SequenceHeaderFlags; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1TileInfo; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1TileInfoFlags; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1TimingInfo; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::AV1TimingInfoFlags; +#endif + +#if defined( VULKAN_VIDEO_CODEC_AV1STD_DECODE_H_ ) + //=== vulkan_video_codec_av1std_decode === + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::DecodeAV1PictureInfo; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::DecodeAV1PictureInfoFlags; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::DecodeAV1ReferenceInfo; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::DecodeAV1ReferenceInfoFlags; +#endif + +#if defined( VULKAN_VIDEO_CODEC_AV1STD_ENCODE_H_ ) + //=== vulkan_video_codec_av1std_encode === + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeAV1DecoderModelInfo; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeAV1ExtensionHeader; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeAV1OperatingPointInfo; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeAV1OperatingPointInfoFlags; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeAV1PictureInfo; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeAV1PictureInfoFlags; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeAV1ReferenceInfo; + using VULKAN_HPP_NAMESPACE::VULKAN_HPP_VIDEO_NAMESPACE::EncodeAV1ReferenceInfoFlags; +#endif } // namespace VULKAN_HPP_VIDEO_NAMESPACE } // namespace VULKAN_HPP_NAMESPACE diff --git a/include/vulkan/vulkan_video.hpp b/include/vulkan/vulkan_video.hpp index 833aabc..311b0c3 100644 --- a/include/vulkan/vulkan_video.hpp +++ b/include/vulkan/vulkan_video.hpp @@ -63,6 +63,96 @@ namespace VULKAN_HPP_NAMESPACE namespace VULKAN_HPP_VIDEO_NAMESPACE { + //================= + //=== CONSTANTs === + //================= + +#if defined( VULKAN_VIDEO_CODEC_H264STD_H_ ) + //=== vulkan_video_codec_h264std === + VULKAN_HPP_CONSTEXPR_INLINE uint32_t H264CpbCntListSize = 32; + VULKAN_HPP_CONSTEXPR_INLINE uint32_t H264MaxChromaPlanes = 2; + VULKAN_HPP_CONSTEXPR_INLINE uint32_t H264MaxNumListRef = 32; + VULKAN_HPP_CONSTEXPR_INLINE uint8_t H264NoReferencePicture = 0xFF; + VULKAN_HPP_CONSTEXPR_INLINE uint32_t H264ScalingList4X4NumElements = 16; + VULKAN_HPP_CONSTEXPR_INLINE uint32_t H264ScalingList4X4NumLists = 6; + VULKAN_HPP_CONSTEXPR_INLINE uint32_t H264ScalingList8X8NumElements = 64; + VULKAN_HPP_CONSTEXPR_INLINE uint32_t H264ScalingList8X8NumLists = 6; +#endif + +#if defined( VULKAN_VIDEO_CODEC_H264STD_DECODE_H_ ) + //=== vulkan_video_codec_h264std_decode === + VULKAN_HPP_CONSTEXPR_INLINE uint32_t DecodeH264FieldOrderCountListSize = 2; +#endif + +#if defined( VULKAN_VIDEO_CODEC_H265STD_H_ ) + //=== vulkan_video_codec_h265std === + VULKAN_HPP_CONSTEXPR_INLINE uint32_t H265ChromaQpOffsetListSize = 6; + VULKAN_HPP_CONSTEXPR_INLINE uint32_t H265ChromaQpOffsetTileColsListSize = 19; + VULKAN_HPP_CONSTEXPR_INLINE uint32_t H265ChromaQpOffsetTileRowsListSize = 21; + VULKAN_HPP_CONSTEXPR_INLINE uint32_t H265CpbCntListSize = 32; + VULKAN_HPP_CONSTEXPR_INLINE uint32_t H265MaxChromaPlanes = 2; + VULKAN_HPP_CONSTEXPR_INLINE uint32_t H265MaxDeltaPoc = 48; + VULKAN_HPP_CONSTEXPR_INLINE uint32_t H265MaxDpbSize = 16; + VULKAN_HPP_CONSTEXPR_INLINE uint32_t H265MaxLongTermPics = 16; + VULKAN_HPP_CONSTEXPR_INLINE uint32_t H265MaxLongTermRefPicsSps = 32; + VULKAN_HPP_CONSTEXPR_INLINE uint32_t H265MaxNumListRef = 15; + VULKAN_HPP_CONSTEXPR_INLINE uint32_t H265MaxShortTermRefPicSets = 64; + VULKAN_HPP_CONSTEXPR_INLINE uint8_t H265NoReferencePicture = 0xFF; + VULKAN_HPP_CONSTEXPR_INLINE uint32_t H265PredictorPaletteComponentsListSize = 3; + VULKAN_HPP_CONSTEXPR_INLINE uint32_t H265PredictorPaletteCompEntriesListSize = 128; + VULKAN_HPP_CONSTEXPR_INLINE uint32_t H265ScalingList16X16NumElements = 64; + VULKAN_HPP_CONSTEXPR_INLINE uint32_t H265ScalingList16X16NumLists = 6; + VULKAN_HPP_CONSTEXPR_INLINE uint32_t H265ScalingList32X32NumElements = 64; + VULKAN_HPP_CONSTEXPR_INLINE uint32_t H265ScalingList32X32NumLists = 2; + VULKAN_HPP_CONSTEXPR_INLINE uint32_t H265ScalingList4X4NumElements = 16; + VULKAN_HPP_CONSTEXPR_INLINE uint32_t H265ScalingList4X4NumLists = 6; + VULKAN_HPP_CONSTEXPR_INLINE uint32_t H265ScalingList8X8NumElements = 64; + VULKAN_HPP_CONSTEXPR_INLINE uint32_t H265ScalingList8X8NumLists = 6; + VULKAN_HPP_CONSTEXPR_INLINE uint32_t H265SublayersListSize = 7; +#endif + +#if defined( VULKAN_VIDEO_CODEC_H265STD_DECODE_H_ ) + //=== vulkan_video_codec_h265std_decode === + VULKAN_HPP_CONSTEXPR_INLINE uint32_t DecodeH265RefPicSetListSize = 8; +#endif + +#if defined( VULKAN_VIDEO_CODEC_VP9STD_H_ ) + //=== vulkan_video_codec_vp9std === + VULKAN_HPP_CONSTEXPR_INLINE uint32_t Vp9LoopFilterAdjustments = 2; + VULKAN_HPP_CONSTEXPR_INLINE uint32_t Vp9MaxRefFrames = 4; + VULKAN_HPP_CONSTEXPR_INLINE uint32_t Vp9MaxSegmentationPredProb = 3; + VULKAN_HPP_CONSTEXPR_INLINE uint32_t Vp9MaxSegmentationTreeProbs = 7; + VULKAN_HPP_CONSTEXPR_INLINE uint32_t Vp9MaxSegments = 8; + VULKAN_HPP_CONSTEXPR_INLINE uint32_t Vp9NumRefFrames = 8; + VULKAN_HPP_CONSTEXPR_INLINE uint32_t Vp9RefsPerFrame = 3; + VULKAN_HPP_CONSTEXPR_INLINE uint32_t Vp9SegLvlMax = 4; +#endif + +#if defined( VULKAN_VIDEO_CODEC_AV1STD_H_ ) + //=== vulkan_video_codec_av1std === + VULKAN_HPP_CONSTEXPR_INLINE uint32_t Av1GlobalMotionParams = 6; + VULKAN_HPP_CONSTEXPR_INLINE uint32_t Av1LoopFilterAdjustments = 2; + VULKAN_HPP_CONSTEXPR_INLINE uint32_t Av1MaxCdefFilterStrengths = 8; + VULKAN_HPP_CONSTEXPR_INLINE uint32_t Av1MaxLoopFilterStrengths = 4; + VULKAN_HPP_CONSTEXPR_INLINE uint32_t Av1MaxNumCbPoints = 10; + VULKAN_HPP_CONSTEXPR_INLINE uint32_t Av1MaxNumCrPoints = 10; + VULKAN_HPP_CONSTEXPR_INLINE uint32_t Av1MaxNumPlanes = 3; + VULKAN_HPP_CONSTEXPR_INLINE uint32_t Av1MaxNumPosChroma = 25; + VULKAN_HPP_CONSTEXPR_INLINE uint32_t Av1MaxNumPosLuma = 24; + VULKAN_HPP_CONSTEXPR_INLINE uint32_t Av1MaxNumYPoints = 14; + VULKAN_HPP_CONSTEXPR_INLINE uint32_t Av1MaxSegments = 8; + VULKAN_HPP_CONSTEXPR_INLINE uint32_t Av1MaxTileCols = 64; + VULKAN_HPP_CONSTEXPR_INLINE uint32_t Av1MaxTileRows = 64; + VULKAN_HPP_CONSTEXPR_INLINE uint32_t Av1NumRefFrames = 8; + VULKAN_HPP_CONSTEXPR_INLINE uint8_t Av1PrimaryRefNone = 7; + VULKAN_HPP_CONSTEXPR_INLINE uint32_t Av1RefsPerFrame = 7; + VULKAN_HPP_CONSTEXPR_INLINE uint32_t Av1SegLvlMax = 8; + VULKAN_HPP_CONSTEXPR_INLINE uint8_t Av1SelectIntegerMv = 2; + VULKAN_HPP_CONSTEXPR_INLINE uint32_t Av1SelectScreenContentTools = 2; + VULKAN_HPP_CONSTEXPR_INLINE uint32_t Av1SkipModeFrames = 2; + VULKAN_HPP_CONSTEXPR_INLINE uint32_t Av1TotalRefsPerFrame = 8; +#endif + //============= //=== ENUMs === //============= diff --git a/registry/base_generator.py b/registry/base_generator.py index 6981535..d0c7aea 100644 --- a/registry/base_generator.py +++ b/registry/base_generator.py @@ -243,6 +243,7 @@ class BaseGenerator(OutputGenerator): self.vk.queueBits[Queues.OPTICAL_FLOW] = 'VK_QUEUE_OPTICAL_FLOW_BIT_NV' self.vk.queueBits[Queues.DECODE] = 'VK_QUEUE_VIDEO_DECODE_BIT_KHR' self.vk.queueBits[Queues.ENCODE] = 'VK_QUEUE_VIDEO_ENCODE_BIT_KHR' + self.vk.queueBits[Queues.DATA_GRAPH] = 'VK_QUEUE_DATA_GRAPH_BIT_ARM' # If the video.xml path is provided then we need to load and parse it using # the private video std generator diff --git a/registry/validusage.json b/registry/validusage.json index 2923fda..4df50a0 100644 --- a/registry/validusage.json +++ b/registry/validusage.json @@ -1,11 +1,25 @@ { "version info": { "schema version": 2, - "api version": "1.4.323", - "comment": "from git branch: github-main commit: 5d386163f25cca10d2af7be2bbea07d1e6fb52ba", - "date": "2025-07-18 10:07:35Z" + "api version": "1.4.324", + "comment": "from git branch: github-main commit: f8cc250718793afb6c15db69980ba5ff7c24920f", + "date": "2025-08-01 03:03:51Z" }, "validation": { + "VkDeviceAddress": { + "core": [ + { + "vuid": "VUID-VkDeviceAddress-size-11364", + "text": "A valid VkDeviceAddress must be equal to the sum of an address retrieved from a VkBuffer via vkGetBufferDeviceAddress, and any offset in the range [0, size), where size is the value of VkBufferCreateInfo::size used to create that VkBuffer", + "page": "chapters/fundamentals.html" + }, + { + "vuid": "VUID-VkDeviceAddress-None-10894", + "text": "If a VkDeviceAddress was retrieved from a non-sparse buffer, that buffer must be bound completely and contiguously to a single VkDeviceMemory object", + "page": "chapters/fundamentals.html" + } + ] + }, "vkGetInstanceProcAddr": { "core": [ { @@ -924,7 +938,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, 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, VkPhysicalDeviceShadingRateImageFeaturesNV, VkPhysicalDeviceSubgroupSizeControlFeatures, VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT, VkPhysicalDeviceSubpassShadingFeaturesHUAWEI, VkPhysicalDeviceSwapchainMaintenance1FeaturesKHR, VkPhysicalDeviceSynchronization2Features, VkPhysicalDeviceTensorFeaturesARM, VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT, VkPhysicalDeviceTextureCompressionASTCHDRFeatures, VkPhysicalDeviceTileMemoryHeapFeaturesQCOM, VkPhysicalDeviceTilePropertiesFeaturesQCOM, VkPhysicalDeviceTileShadingFeaturesQCOM, VkPhysicalDeviceTimelineSemaphoreFeatures, VkPhysicalDeviceTransformFeedbackFeaturesEXT, VkPhysicalDeviceUnifiedImageLayoutsFeaturesKHR, VkPhysicalDeviceUniformBufferStandardLayoutFeatures, VkPhysicalDeviceVariablePointersFeatures, VkPhysicalDeviceVertexAttributeDivisorFeatures, VkPhysicalDeviceVertexAttributeRobustnessFeaturesEXT, VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT, VkPhysicalDeviceVideoDecodeVP9FeaturesKHR, VkPhysicalDeviceVideoEncodeAV1FeaturesKHR, VkPhysicalDeviceVideoEncodeIntraRefreshFeaturesKHR, VkPhysicalDeviceVideoEncodeQuantizationMapFeaturesKHR, 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, 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, VkPhysicalDeviceShadingRateImageFeaturesNV, VkPhysicalDeviceSubgroupSizeControlFeatures, VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT, VkPhysicalDeviceSubpassShadingFeaturesHUAWEI, VkPhysicalDeviceSwapchainMaintenance1FeaturesKHR, VkPhysicalDeviceSynchronization2Features, VkPhysicalDeviceTensorFeaturesARM, VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT, VkPhysicalDeviceTextureCompressionASTCHDRFeatures, VkPhysicalDeviceTileMemoryHeapFeaturesQCOM, VkPhysicalDeviceTilePropertiesFeaturesQCOM, VkPhysicalDeviceTileShadingFeaturesQCOM, VkPhysicalDeviceTimelineSemaphoreFeatures, VkPhysicalDeviceTransformFeedbackFeaturesEXT, VkPhysicalDeviceUnifiedImageLayoutsFeaturesKHR, VkPhysicalDeviceUniformBufferStandardLayoutFeatures, VkPhysicalDeviceVariablePointersFeatures, VkPhysicalDeviceVertexAttributeDivisorFeatures, VkPhysicalDeviceVertexAttributeRobustnessFeaturesEXT, VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT, VkPhysicalDeviceVideoDecodeVP9FeaturesKHR, VkPhysicalDeviceVideoEncodeAV1FeaturesKHR, VkPhysicalDeviceVideoEncodeIntraRefreshFeaturesKHR, VkPhysicalDeviceVideoEncodeQuantizationMapFeaturesKHR, VkPhysicalDeviceVideoMaintenance1FeaturesKHR, VkPhysicalDeviceVideoMaintenance2FeaturesKHR, VkPhysicalDeviceVulkan11Features, VkPhysicalDeviceVulkan12Features, VkPhysicalDeviceVulkan13Features, VkPhysicalDeviceVulkan14Features, VkPhysicalDeviceVulkanMemoryModelFeatures, VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR, VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT, VkPhysicalDeviceYcbcrDegammaFeaturesQCOM, VkPhysicalDeviceYcbcrImageArraysFeaturesEXT, VkPhysicalDeviceZeroInitializeDeviceMemoryFeaturesEXT, or VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures", "page": "chapters/devsandqueues.html" }, { @@ -15410,7 +15424,12 @@ "core": [ { "vuid": "VUID-vkCmdConvertCooperativeVectorMatrixNV-pInfo-10083", - "text": "For each element of pInfo, srcData::deviceAddress and dstData::deviceAddress must be valid device addresses", + "text": "For each element of pInfo, srcData::deviceAddress must be a valid VkDeviceAddress", + "page": "chapters/shaders.html" + }, + { + "vuid": "VUID-vkCmdConvertCooperativeVectorMatrixNV-pInfo-10895", + "text": "For each element of pInfo, dstData::deviceAddress must be a valid VkDeviceAddress", "page": "chapters/shaders.html" }, { @@ -15828,6 +15847,25 @@ } ] }, + "VkPipelineCreateFlags2CreateInfo": { + "core": [ + { + "vuid": "VUID-VkPipelineCreateFlags2CreateInfo-sType-sType", + "text": "sType must be VK_STRUCTURE_TYPE_PIPELINE_CREATE_FLAGS_2_CREATE_INFO", + "page": "chapters/pipelines.html" + }, + { + "vuid": "VUID-VkPipelineCreateFlags2CreateInfo-flags-parameter", + "text": "flags must be a valid combination of VkPipelineCreateFlagBits2 values", + "page": "chapters/pipelines.html" + }, + { + "vuid": "VUID-VkPipelineCreateFlags2CreateInfo-flags-requiredbitmask", + "text": "flags must not be 0", + "page": "chapters/pipelines.html" + } + ] + }, "vkCreateComputePipelines": { "core": [ { @@ -16546,6 +16584,16 @@ "vuid": "VUID-VkComputePipelineIndirectBufferInfoNV-sType-sType", "text": "sType must be VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_INDIRECT_BUFFER_INFO_NV", "page": "chapters/pipelines.html" + }, + { + "vuid": "VUID-VkComputePipelineIndirectBufferInfoNV-deviceAddress-parameter", + "text": "deviceAddress must be a valid VkDeviceAddress value", + "page": "chapters/pipelines.html" + }, + { + "vuid": "VUID-VkComputePipelineIndirectBufferInfoNV-pipelineDeviceAddressCaptureReplay-parameter", + "text": "pipelineDeviceAddressCaptureReplay must be a valid VkDeviceAddress value", + "page": "chapters/pipelines.html" } ] }, @@ -18404,25 +18452,6 @@ } ] }, - "VkPipelineCreateFlags2CreateInfo": { - "core": [ - { - "vuid": "VUID-VkPipelineCreateFlags2CreateInfo-sType-sType", - "text": "sType must be VK_STRUCTURE_TYPE_PIPELINE_CREATE_FLAGS_2_CREATE_INFO", - "page": "chapters/pipelines.html" - }, - { - "vuid": "VUID-VkPipelineCreateFlags2CreateInfo-flags-parameter", - "text": "flags must be a valid combination of VkPipelineCreateFlagBits2 values", - "page": "chapters/pipelines.html" - }, - { - "vuid": "VUID-VkPipelineCreateFlags2CreateInfo-flags-requiredbitmask", - "text": "flags must not be 0", - "page": "chapters/pipelines.html" - } - ] - }, "VkPipelineBinaryInfoKHR": { "core": [ { @@ -20331,7 +20360,7 @@ }, { "vuid": "VUID-vkCmdBindPipeline-variableSampleLocations-01525", - "text": "If VkPhysicalDeviceSampleLocationsPropertiesEXT::variableSampleLocations is VK_FALSE, and pipeline is a graphics pipeline created with a VkPipelineSampleLocationsStateCreateInfoEXT structure having its sampleLocationsEnable member set to VK_TRUE but without VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT enabled then the current render pass instance must have been begun by specifying a VkRenderPassSampleLocationsBeginInfoEXT structure whose pPostSubpassSampleLocations member contains an element with a subpassIndex matching the current subpass index and the sampleLocationsInfo member of that element must match the sampleLocationsInfo specified in VkPipelineSampleLocationsStateCreateInfoEXT when the pipeline was created", + "text": "If VkPhysicalDeviceSampleLocationsPropertiesEXT::variableSampleLocations is VK_FALSE, and pipeline is a graphics pipeline created with a renderPass that is not VK_NULL_HANDLE and with a VkPipelineSampleLocationsStateCreateInfoEXT structure having its sampleLocationsEnable member set to VK_TRUE but without VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT enabled then the current render pass instance must have been begun by specifying a VkRenderPassSampleLocationsBeginInfoEXT structure whose pPostSubpassSampleLocations member contains an element with a subpassIndex matching the current subpass index and the sampleLocationsInfo member of that element must match the sampleLocationsInfo specified in VkPipelineSampleLocationsStateCreateInfoEXT when the pipeline was created", "page": "chapters/pipelines.html" }, { @@ -23715,6 +23744,11 @@ "vuid": "VUID-VkBufferDeviceAddressCreateInfoEXT-sType-sType", "text": "sType must be VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT", "page": "chapters/resources.html" + }, + { + "vuid": "VUID-VkBufferDeviceAddressCreateInfoEXT-deviceAddress-parameter", + "text": "deviceAddress must be a valid VkDeviceAddress value", + "page": "chapters/resources.html" } ] }, @@ -24051,6 +24085,11 @@ "vuid": "VUID-VkStridedDeviceAddressRegionKHR-size-04632", "text": "If size is not zero, stride must be less than or equal to the size of the buffer from which deviceAddress was queried", "page": "chapters/resources.html" + }, + { + "vuid": "VUID-VkStridedDeviceAddressRegionKHR-deviceAddress-parameter", + "text": "If deviceAddress is not 0, deviceAddress must be a valid VkDeviceAddress value", + "page": "chapters/resources.html" } ] }, @@ -26533,11 +26572,6 @@ "text": "If deviceAddress is not zero, buffer must have been created with a VkBufferOpaqueCaptureAddressCreateInfo::opaqueCaptureAddress that was retrieved from vkGetBufferOpaqueCaptureAddress for the buffer that was used to create the acceleration structure from which deviceAddress was retrieved", "page": "chapters/resources.html" }, - { - "vuid": "VUID-VkAccelerationStructureCreateInfoKHR-deviceAddress-10393", - "text": "If deviceAddress is not zero, it must be a valid device address obtained from vkGetAccelerationStructureDeviceAddressKHR", - "page": "chapters/resources.html" - }, { "vuid": "VUID-VkAccelerationStructureCreateInfoKHR-createFlags-03613", "text": "If createFlags includes VK_ACCELERATION_STRUCTURE_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR, VkPhysicalDeviceAccelerationStructureFeaturesKHR::accelerationStructureCaptureReplay must be VK_TRUE", @@ -26612,6 +26646,11 @@ "vuid": "VUID-VkAccelerationStructureCreateInfoKHR-type-parameter", "text": "type must be a valid VkAccelerationStructureTypeKHR value", "page": "chapters/resources.html" + }, + { + "vuid": "VUID-VkAccelerationStructureCreateInfoKHR-deviceAddress-parameter", + "text": "If deviceAddress is not 0, deviceAddress must be a valid VkDeviceAddress value", + "page": "chapters/resources.html" } ] }, @@ -27411,6 +27450,11 @@ "vuid": "VUID-VkMicromapCreateInfoEXT-type-parameter", "text": "type must be a valid VkMicromapTypeEXT value", "page": "chapters/resources.html" + }, + { + "vuid": "VUID-VkMicromapCreateInfoEXT-deviceAddress-parameter", + "text": "If deviceAddress is not 0, deviceAddress must be a valid VkDeviceAddress value", + "page": "chapters/resources.html" } ] }, @@ -29685,11 +29729,6 @@ "vuid": "VUID-vkCreateSampler-pSampler-parameter", "text": "pSampler must be a valid pointer to a VkSampler handle", "page": "chapters/samplers.html" - }, - { - "vuid": "VUID-vkCreateSampler-device-queuecount", - "text": "The device must have been created with at least 1 queue", - "page": "chapters/samplers.html" } ] }, @@ -30064,11 +30103,6 @@ "vuid": "VUID-vkCreateSamplerYcbcrConversion-pYcbcrConversion-parameter", "text": "pYcbcrConversion must be a valid pointer to a VkSamplerYcbcrConversion handle", "page": "chapters/samplers.html" - }, - { - "vuid": "VUID-vkCreateSamplerYcbcrConversion-device-queuecount", - "text": "The device must have been created with at least 1 queue", - "page": "chapters/samplers.html" } ] }, @@ -33543,31 +33577,16 @@ "vuid": "VUID-VkDescriptorGetInfoEXT-pStorageBuffer-parameter", "text": "If type is VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, and if pStorageBuffer is not NULL, the pStorageBuffer member of data must be a valid pointer to a valid VkDescriptorAddressInfoEXT structure", "page": "chapters/descriptorsets.html" + }, + { + "vuid": "VUID-VkDescriptorGetInfoEXT-accelerationStructure-parameter", + "text": "If type is VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR or VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV, the accelerationStructure member of data must be a valid VkDeviceAddress value", + "page": "chapters/descriptorsets.html" } ] }, "VkDescriptorDataEXT": { "core": [ - { - "vuid": "VUID-VkDescriptorDataEXT-type-08030", - "text": "If VkDescriptorGetInfoEXT::type is VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, and pUniformBuffer->address is the address of a non-sparse buffer, then that buffer must be bound completely and contiguously to a single VkDeviceMemory object", - "page": "chapters/descriptorsets.html" - }, - { - "vuid": "VUID-VkDescriptorDataEXT-type-08031", - "text": "If VkDescriptorGetInfoEXT::type is VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, and pStorageBuffer->address is the address of a non-sparse buffer, then that buffer must be bound completely and contiguously to a single VkDeviceMemory object", - "page": "chapters/descriptorsets.html" - }, - { - "vuid": "VUID-VkDescriptorDataEXT-type-08032", - "text": "If VkDescriptorGetInfoEXT::type is VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER, and pUniformTexelBuffer->address is the address of a non-sparse buffer, then that buffer must be bound completely and contiguously to a single VkDeviceMemory object", - "page": "chapters/descriptorsets.html" - }, - { - "vuid": "VUID-VkDescriptorDataEXT-type-08033", - "text": "If VkDescriptorGetInfoEXT::type is VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER, and pStorageTexelBuffer->address is the address of a non-sparse buffer, then that buffer must be bound completely and contiguously to a single VkDeviceMemory object", - "page": "chapters/descriptorsets.html" - }, { "vuid": "VUID-VkDescriptorDataEXT-type-08034", "text": "If VkDescriptorGetInfoEXT::type is VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, and the nullDescriptor feature is not enabled, pCombinedImageSampler->imageView must not be VK_NULL_HANDLE", @@ -33639,7 +33658,7 @@ }, { "vuid": "VUID-VkDescriptorAddressInfoEXT-None-08044", - "text": "If address is not zero, address must be a valid device address at an offset within a VkBuffer", + "text": "If address is not zero, address must be a valid VkDeviceAddress", "page": "chapters/descriptorsets.html" }, { @@ -33662,6 +33681,11 @@ "text": "pNext must be NULL", "page": "chapters/descriptorsets.html" }, + { + "vuid": "VUID-VkDescriptorAddressInfoEXT-address-parameter", + "text": "address must be a valid VkDeviceAddress value", + "page": "chapters/descriptorsets.html" + }, { "vuid": "VUID-VkDescriptorAddressInfoEXT-format-parameter", "text": "format must be a valid VkFormat value", @@ -33715,11 +33739,6 @@ "text": "bufferCount must be less than or equal to VkPhysicalDeviceDescriptorBufferPropertiesEXT::maxDescriptorBufferBindings", "page": "chapters/descriptorsets.html" }, - { - "vuid": "VUID-vkCmdBindDescriptorBuffersEXT-pBindingInfos-08052", - "text": "For any element of pBindingInfos, if the buffer from which address was queried is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object", - "page": "chapters/descriptorsets.html" - }, { "vuid": "VUID-vkCmdBindDescriptorBuffersEXT-pBindingInfos-08053", "text": "For any element of pBindingInfos, the buffer from which address was queried must have been created with the VK_BUFFER_USAGE_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT bit set if it contains sampler descriptor data", @@ -33818,6 +33837,11 @@ "vuid": "VUID-VkDescriptorBufferBindingInfoEXT-sType-unique", "text": "The sType value of each structure in the pNext chain must be unique", "page": "chapters/descriptorsets.html" + }, + { + "vuid": "VUID-VkDescriptorBufferBindingInfoEXT-address-parameter", + "text": "address must be a valid VkDeviceAddress value", + "page": "chapters/descriptorsets.html" } ] }, @@ -34567,7 +34591,7 @@ "core": [ { "vuid": "VUID-vkGetTensorOpaqueCaptureDescriptorDataARM-descriptorBufferCaptureReplay-09702", - "text": "The descriptorBufferCaptureReplay and pname::descriptorBufferTensorDescriptors features must be enabled", + "text": "The descriptorBufferCaptureReplay and descriptorBufferTensorDescriptors features must be enabled", "page": "chapters/descriptorsets.html" }, { @@ -34625,7 +34649,7 @@ "core": [ { "vuid": "VUID-vkGetTensorViewOpaqueCaptureDescriptorDataARM-descriptorBufferCaptureReplay-09706", - "text": "The descriptorBufferCaptureReplay and pname::descriptorBufferTensorDescriptors features must be enabled", + "text": "The descriptorBufferCaptureReplay and descriptorBufferTensorDescriptors features must be enabled", "page": "chapters/descriptorsets.html" }, { @@ -35846,7 +35870,7 @@ }, { "vuid": "VUID-Layer-Layer-10593", - "text": "If Layer is declared as an array of boolean values, the size of the array must match the value specified by OutputPrimitivesEXT", + "text": "If Layer is declared as an array of 32-bit integer values, within the MeshEXT Execution Model, size of the array must match the value specified by OutputPrimitivesEXT", "page": "chapters/interfaces.html" }, { @@ -36434,7 +36458,7 @@ }, { "vuid": "VUID-PrimitiveShadingRateKHR-PrimitiveShadingRateKHR-10599", - "text": "If PrimitiveShadingRateKHR is declared as an array of boolean values, the size of the array must match the value specified by OutputPrimitivesEXT", + "text": "If PrimitiveShadingRateKHR is declared as an array of 32-bit integer values, within the MeshEXT Execution Model, size of the array must match the value specified by OutputPrimitivesEXT", "page": "chapters/interfaces.html" }, { @@ -36965,12 +36989,12 @@ }, { "vuid": "VUID-ViewportIndex-ViewportIndex-10601", - "text": "ViewportIndex within the MeshEXT Execution Model must decorate a scalar boolean member of a structure decorated as Block, or decorate a variable of type OpTypeArray of boolean values", + "text": "ViewportIndex within the MeshEXT Execution Model must decorate a scalar 32-bit integer member of a structure decorated as Block, or decorate a variable of type OpTypeArray of scalar 32-bit integer values", "page": "chapters/interfaces.html" }, { "vuid": "VUID-ViewportIndex-ViewportIndex-10602", - "text": "If ViewportIndex is declared as an array of boolean values, the size of the array must match the value specified by OutputPrimitivesEXT", + "text": "If ViewportIndex is declared as an array of 32-bit integer values, within the MeshEXT Execution Model, size of the array must match the value specified by OutputPrimitivesEXT", "page": "chapters/interfaces.html" }, { @@ -40250,7 +40274,12 @@ }, { "vuid": "VUID-vkCmdCopyImage-dstImage-01786", - "text": "If dstImage is of type VK_IMAGE_TYPE_1D, then for each element of pRegions, dstOffset.z must be 0 and extent.depth must be 1", + "text": "If dstImage is of type VK_IMAGE_TYPE_1D, then for each element of pRegions, dstOffset.z must be 0", + "page": "chapters/copies.html" + }, + { + "vuid": "VUID-vkCmdCopyImage-srcImage-10907", + "text": "If either the VkFormat of each of srcImage and dstImage is not a compressed image format, and dstImage is of type VK_IMAGE_TYPE_1D, then for each element of pRegions, extent.depth must be 1", "page": "chapters/copies.html" }, { @@ -40315,7 +40344,12 @@ }, { "vuid": "VUID-vkCmdCopyImage-dstImage-00152", - "text": "If dstImage is of type VK_IMAGE_TYPE_1D, then for each element of pRegions, dstOffset.y must be 0 and extent.height must be 1, where extent is adjusted for size-compatibility", + "text": "If dstImage is of type VK_IMAGE_TYPE_1D, then for each element of pRegions, dstOffset.y must be 0", + "page": "chapters/copies.html" + }, + { + "vuid": "VUID-vkCmdCopyImage-srcImage-10908", + "text": "If either the VkFormat of each of srcImage and dstImage is not a compressed image format, and dstImage is of type VK_IMAGE_TYPE_1D, then for each element of pRegions, extent.height must be 1, where extent is adjusted for size-compatibility", "page": "chapters/copies.html" }, { @@ -40796,7 +40830,12 @@ }, { "vuid": "VUID-VkCopyImageInfo2-dstImage-01786", - "text": "If dstImage is of type VK_IMAGE_TYPE_1D, then for each element of pRegions, dstOffset.z must be 0 and extent.depth must be 1", + "text": "If dstImage is of type VK_IMAGE_TYPE_1D, then for each element of pRegions, dstOffset.z must be 0", + "page": "chapters/copies.html" + }, + { + "vuid": "VUID-VkCopyImageInfo2-srcImage-10907", + "text": "If either the VkFormat of each of srcImage and dstImage is not a compressed image format, and dstImage is of type VK_IMAGE_TYPE_1D, then for each element of pRegions, extent.depth must be 1", "page": "chapters/copies.html" }, { @@ -40861,7 +40900,12 @@ }, { "vuid": "VUID-VkCopyImageInfo2-dstImage-00152", - "text": "If dstImage is of type VK_IMAGE_TYPE_1D, then for each element of pRegions, dstOffset.y must be 0 and extent.height must be 1, where extent is adjusted for size-compatibility", + "text": "If dstImage is of type VK_IMAGE_TYPE_1D, then for each element of pRegions, dstOffset.y must be 0", + "page": "chapters/copies.html" + }, + { + "vuid": "VUID-VkCopyImageInfo2-srcImage-10908", + "text": "If either the VkFormat of each of srcImage and dstImage is not a compressed image format, and dstImage is of type VK_IMAGE_TYPE_1D, then for each element of pRegions, extent.height must be 1, where extent is adjusted for size-compatibility", "page": "chapters/copies.html" }, { @@ -43515,6 +43559,11 @@ "text": "commandBuffer must be a valid VkCommandBuffer handle", "page": "chapters/copies.html" }, + { + "vuid": "VUID-vkCmdCopyMemoryIndirectNV-copyBufferAddress-parameter", + "text": "copyBufferAddress must be a valid VkDeviceAddress value", + "page": "chapters/copies.html" + }, { "vuid": "VUID-vkCmdCopyMemoryIndirectNV-commandBuffer-recording", "text": "commandBuffer must be in the recording state", @@ -43553,6 +43602,16 @@ "vuid": "VUID-VkCopyMemoryIndirectCommandNV-size-07659", "text": "The size must be 4 byte aligned", "page": "chapters/copies.html" + }, + { + "vuid": "VUID-VkCopyMemoryIndirectCommandNV-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", + "page": "chapters/copies.html" } ] }, @@ -43648,6 +43707,11 @@ "text": "commandBuffer must be a valid VkCommandBuffer handle", "page": "chapters/copies.html" }, + { + "vuid": "VUID-vkCmdCopyMemoryToImageIndirectNV-copyBufferAddress-parameter", + "text": "copyBufferAddress must be a valid VkDeviceAddress value", + "page": "chapters/copies.html" + }, { "vuid": "VUID-vkCmdCopyMemoryToImageIndirectNV-dstImage-parameter", "text": "dstImage must be a valid VkImage handle", @@ -43722,6 +43786,11 @@ "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", @@ -46247,7 +46316,7 @@ }, { "vuid": "VUID-vkCmdDraw-sampleLocationsEnable-02689", - "text": "If the bound graphics pipeline was created with VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable set to VK_TRUE and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set", + "text": "If the bound graphics pipeline was created with VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable set to VK_TRUE, then the active depth attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set", "page": "chapters/drawing.html" }, { @@ -46762,7 +46831,7 @@ }, { "vuid": "VUID-vkCmdDraw-None-10608", - "text": "If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic state enabled, and the current lineRasterizationMode is VK_LINE_RASTERIZATION_MODE_BRESENHAM or VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH, then the current alphaToCoverageEnable, alphaToOneEnable and sampleShadingEnable states must all be VK_FALSE", + "text": "If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic state enabled, the effective rasterization input topology is in line topology class, and the current lineRasterizationMode is VK_LINE_RASTERIZATION_MODE_BRESENHAM or VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH, then the current alphaToCoverageEnable, alphaToOneEnable and sampleShadingEnable states must all be VK_FALSE", "page": "chapters/drawing.html" }, { @@ -46902,7 +46971,7 @@ }, { "vuid": "VUID-vkCmdDraw-sampleLocationsEnable-07484", - "text": "If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, or the bound graphics pipeline was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set", + "text": "If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, or the bound graphics pipeline was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT then the current active depth attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set", "page": "chapters/drawing.html" }, { @@ -46937,7 +47006,7 @@ }, { "vuid": "VUID-vkCmdDraw-coverageModulationTableEnable-07488", - "text": "If a shader object is bound to any graphics stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV state enabled, and the last call to vkCmdSetCoverageModulationTableEnableNV set coverageModulationTableEnable to VK_TRUE, then the coverageModulationTableCount parameter in the last call to vkCmdSetCoverageModulationTableNV must equal the current rasterizationSamples divided by the number of color samples in the current subpass", + "text": "If a shader object is bound to any graphics stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV state enabled, and the last call to vkCmdSetCoverageModulationTableEnableNV set coverageModulationTableEnable to VK_TRUE, then the coverageModulationTableCount parameter in the last call to vkCmdSetCoverageModulationTableNV must equal the current rasterizationSamples divided by the number of color samples in the current active color attachment", "page": "chapters/drawing.html" }, { @@ -46947,12 +47016,12 @@ }, { "vuid": "VUID-vkCmdDraw-coverageToColorEnable-07490", - "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV state enabled and the last call to vkCmdSetCoverageToColorEnableNV set the coverageToColorEnable to VK_TRUE, then the current subpass must have a color attachment at the location selected by the last call to vkCmdSetCoverageToColorLocationNV coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT", + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV state enabled and the last call to vkCmdSetCoverageToColorEnableNV set the coverageToColorEnable to VK_TRUE, then there must be an active color attachment at the location selected by the last call to vkCmdSetCoverageToColorLocationNV coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDraw-rasterizerDiscardEnable-09420", - "text": "If the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the last call to vkCmdSetCoverageToColorEnableNV set the coverageToColorEnable to VK_TRUE, then the current subpass must have a color attachment at the location selected by the last call to vkCmdSetCoverageToColorLocationNV coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT", + "text": "If the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the last call to vkCmdSetCoverageToColorEnableNV set the coverageToColorEnable to VK_TRUE, then there must be an active color attachment at the location selected by the last call to vkCmdSetCoverageToColorLocationNV coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT", "page": "chapters/drawing.html" }, { @@ -47252,7 +47321,12 @@ }, { "vuid": "VUID-vkCmdDraw-None-09637", - "text": "If the primitiveTopologyListRestart feature is not enabled, the topology is VK_PRIMITIVE_TOPOLOGY_POINT_LIST, VK_PRIMITIVE_TOPOLOGY_LINE_LIST, VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST, VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY, or VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY, there is a shader object bound to the VK_SHADER_STAGE_VERTEX_BIT stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE dynamic state enabled then vkCmdSetPrimitiveRestartEnable must be VK_FALSE", + "text": "If the primitiveTopologyListRestart feature is not enabled, the input assembly is VK_PRIMITIVE_TOPOLOGY_POINT_LIST, VK_PRIMITIVE_TOPOLOGY_LINE_LIST, VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST, VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY, or VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY, there is a shader object bound to the VK_SHADER_STAGE_VERTEX_BIT stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE dynamic state enabled, then vkCmdSetPrimitiveRestartEnable must be VK_FALSE", + "page": "chapters/drawing.html" + }, + { + "vuid": "VUID-vkCmdDraw-None-10909", + "text": "If the primitiveTopologyPatchListRestart feature is not enabled, the input assembly is VK_PRIMITIVE_TOPOLOGY_PATCH_LIST, there is a shader object bound to the VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE dynamic state enabled then vkCmdSetPrimitiveRestartEnable must be VK_FALSE", "page": "chapters/drawing.html" }, { @@ -47796,7 +47870,7 @@ }, { "vuid": "VUID-vkCmdDrawIndexed-sampleLocationsEnable-02689", - "text": "If the bound graphics pipeline was created with VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable set to VK_TRUE and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set", + "text": "If the bound graphics pipeline was created with VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable set to VK_TRUE, then the active depth attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set", "page": "chapters/drawing.html" }, { @@ -48311,7 +48385,7 @@ }, { "vuid": "VUID-vkCmdDrawIndexed-None-10608", - "text": "If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic state enabled, and the current lineRasterizationMode is VK_LINE_RASTERIZATION_MODE_BRESENHAM or VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH, then the current alphaToCoverageEnable, alphaToOneEnable and sampleShadingEnable states must all be VK_FALSE", + "text": "If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic state enabled, the effective rasterization input topology is in line topology class, and the current lineRasterizationMode is VK_LINE_RASTERIZATION_MODE_BRESENHAM or VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH, then the current alphaToCoverageEnable, alphaToOneEnable and sampleShadingEnable states must all be VK_FALSE", "page": "chapters/drawing.html" }, { @@ -48451,7 +48525,7 @@ }, { "vuid": "VUID-vkCmdDrawIndexed-sampleLocationsEnable-07484", - "text": "If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, or the bound graphics pipeline was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set", + "text": "If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, or the bound graphics pipeline was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT then the current active depth attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set", "page": "chapters/drawing.html" }, { @@ -48486,7 +48560,7 @@ }, { "vuid": "VUID-vkCmdDrawIndexed-coverageModulationTableEnable-07488", - "text": "If a shader object is bound to any graphics stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV state enabled, and the last call to vkCmdSetCoverageModulationTableEnableNV set coverageModulationTableEnable to VK_TRUE, then the coverageModulationTableCount parameter in the last call to vkCmdSetCoverageModulationTableNV must equal the current rasterizationSamples divided by the number of color samples in the current subpass", + "text": "If a shader object is bound to any graphics stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV state enabled, and the last call to vkCmdSetCoverageModulationTableEnableNV set coverageModulationTableEnable to VK_TRUE, then the coverageModulationTableCount parameter in the last call to vkCmdSetCoverageModulationTableNV must equal the current rasterizationSamples divided by the number of color samples in the current active color attachment", "page": "chapters/drawing.html" }, { @@ -48496,12 +48570,12 @@ }, { "vuid": "VUID-vkCmdDrawIndexed-coverageToColorEnable-07490", - "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV state enabled and the last call to vkCmdSetCoverageToColorEnableNV set the coverageToColorEnable to VK_TRUE, then the current subpass must have a color attachment at the location selected by the last call to vkCmdSetCoverageToColorLocationNV coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT", + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV state enabled and the last call to vkCmdSetCoverageToColorEnableNV set the coverageToColorEnable to VK_TRUE, then there must be an active color attachment at the location selected by the last call to vkCmdSetCoverageToColorLocationNV coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDrawIndexed-rasterizerDiscardEnable-09420", - "text": "If the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the last call to vkCmdSetCoverageToColorEnableNV set the coverageToColorEnable to VK_TRUE, then the current subpass must have a color attachment at the location selected by the last call to vkCmdSetCoverageToColorLocationNV coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT", + "text": "If the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the last call to vkCmdSetCoverageToColorEnableNV set the coverageToColorEnable to VK_TRUE, then there must be an active color attachment at the location selected by the last call to vkCmdSetCoverageToColorLocationNV coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT", "page": "chapters/drawing.html" }, { @@ -48801,7 +48875,12 @@ }, { "vuid": "VUID-vkCmdDrawIndexed-None-09637", - "text": "If the primitiveTopologyListRestart feature is not enabled, the topology is VK_PRIMITIVE_TOPOLOGY_POINT_LIST, VK_PRIMITIVE_TOPOLOGY_LINE_LIST, VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST, VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY, or VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY, there is a shader object bound to the VK_SHADER_STAGE_VERTEX_BIT stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE dynamic state enabled then vkCmdSetPrimitiveRestartEnable must be VK_FALSE", + "text": "If the primitiveTopologyListRestart feature is not enabled, the input assembly is VK_PRIMITIVE_TOPOLOGY_POINT_LIST, VK_PRIMITIVE_TOPOLOGY_LINE_LIST, VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST, VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY, or VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY, there is a shader object bound to the VK_SHADER_STAGE_VERTEX_BIT stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE dynamic state enabled, then vkCmdSetPrimitiveRestartEnable must be VK_FALSE", + "page": "chapters/drawing.html" + }, + { + "vuid": "VUID-vkCmdDrawIndexed-None-10909", + "text": "If the primitiveTopologyPatchListRestart feature is not enabled, the input assembly is VK_PRIMITIVE_TOPOLOGY_PATCH_LIST, there is a shader object bound to the VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE dynamic state enabled then vkCmdSetPrimitiveRestartEnable must be VK_FALSE", "page": "chapters/drawing.html" }, { @@ -49355,7 +49434,7 @@ }, { "vuid": "VUID-vkCmdDrawMultiEXT-sampleLocationsEnable-02689", - "text": "If the bound graphics pipeline was created with VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable set to VK_TRUE and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set", + "text": "If the bound graphics pipeline was created with VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable set to VK_TRUE, then the active depth attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set", "page": "chapters/drawing.html" }, { @@ -49870,7 +49949,7 @@ }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-10608", - "text": "If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic state enabled, and the current lineRasterizationMode is VK_LINE_RASTERIZATION_MODE_BRESENHAM or VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH, then the current alphaToCoverageEnable, alphaToOneEnable and sampleShadingEnable states must all be VK_FALSE", + "text": "If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic state enabled, the effective rasterization input topology is in line topology class, and the current lineRasterizationMode is VK_LINE_RASTERIZATION_MODE_BRESENHAM or VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH, then the current alphaToCoverageEnable, alphaToOneEnable and sampleShadingEnable states must all be VK_FALSE", "page": "chapters/drawing.html" }, { @@ -50010,7 +50089,7 @@ }, { "vuid": "VUID-vkCmdDrawMultiEXT-sampleLocationsEnable-07484", - "text": "If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, or the bound graphics pipeline was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set", + "text": "If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, or the bound graphics pipeline was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT then the current active depth attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set", "page": "chapters/drawing.html" }, { @@ -50045,7 +50124,7 @@ }, { "vuid": "VUID-vkCmdDrawMultiEXT-coverageModulationTableEnable-07488", - "text": "If a shader object is bound to any graphics stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV state enabled, and the last call to vkCmdSetCoverageModulationTableEnableNV set coverageModulationTableEnable to VK_TRUE, then the coverageModulationTableCount parameter in the last call to vkCmdSetCoverageModulationTableNV must equal the current rasterizationSamples divided by the number of color samples in the current subpass", + "text": "If a shader object is bound to any graphics stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV state enabled, and the last call to vkCmdSetCoverageModulationTableEnableNV set coverageModulationTableEnable to VK_TRUE, then the coverageModulationTableCount parameter in the last call to vkCmdSetCoverageModulationTableNV must equal the current rasterizationSamples divided by the number of color samples in the current active color attachment", "page": "chapters/drawing.html" }, { @@ -50055,12 +50134,12 @@ }, { "vuid": "VUID-vkCmdDrawMultiEXT-coverageToColorEnable-07490", - "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV state enabled and the last call to vkCmdSetCoverageToColorEnableNV set the coverageToColorEnable to VK_TRUE, then the current subpass must have a color attachment at the location selected by the last call to vkCmdSetCoverageToColorLocationNV coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT", + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV state enabled and the last call to vkCmdSetCoverageToColorEnableNV set the coverageToColorEnable to VK_TRUE, then there must be an active color attachment at the location selected by the last call to vkCmdSetCoverageToColorLocationNV coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDrawMultiEXT-rasterizerDiscardEnable-09420", - "text": "If the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the last call to vkCmdSetCoverageToColorEnableNV set the coverageToColorEnable to VK_TRUE, then the current subpass must have a color attachment at the location selected by the last call to vkCmdSetCoverageToColorLocationNV coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT", + "text": "If the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the last call to vkCmdSetCoverageToColorEnableNV set the coverageToColorEnable to VK_TRUE, then there must be an active color attachment at the location selected by the last call to vkCmdSetCoverageToColorLocationNV coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT", "page": "chapters/drawing.html" }, { @@ -50360,7 +50439,12 @@ }, { "vuid": "VUID-vkCmdDrawMultiEXT-None-09637", - "text": "If the primitiveTopologyListRestart feature is not enabled, the topology is VK_PRIMITIVE_TOPOLOGY_POINT_LIST, VK_PRIMITIVE_TOPOLOGY_LINE_LIST, VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST, VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY, or VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY, there is a shader object bound to the VK_SHADER_STAGE_VERTEX_BIT stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE dynamic state enabled then vkCmdSetPrimitiveRestartEnable must be VK_FALSE", + "text": "If the primitiveTopologyListRestart feature is not enabled, the input assembly is VK_PRIMITIVE_TOPOLOGY_POINT_LIST, VK_PRIMITIVE_TOPOLOGY_LINE_LIST, VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST, VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY, or VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY, there is a shader object bound to the VK_SHADER_STAGE_VERTEX_BIT stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE dynamic state enabled, then vkCmdSetPrimitiveRestartEnable must be VK_FALSE", + "page": "chapters/drawing.html" + }, + { + "vuid": "VUID-vkCmdDrawMultiEXT-None-10909", + "text": "If the primitiveTopologyPatchListRestart feature is not enabled, the input assembly is VK_PRIMITIVE_TOPOLOGY_PATCH_LIST, there is a shader object bound to the VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE dynamic state enabled then vkCmdSetPrimitiveRestartEnable must be VK_FALSE", "page": "chapters/drawing.html" }, { @@ -50924,7 +51008,7 @@ }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-sampleLocationsEnable-02689", - "text": "If the bound graphics pipeline was created with VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable set to VK_TRUE and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set", + "text": "If the bound graphics pipeline was created with VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable set to VK_TRUE, then the active depth attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set", "page": "chapters/drawing.html" }, { @@ -51439,7 +51523,7 @@ }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-10608", - "text": "If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic state enabled, and the current lineRasterizationMode is VK_LINE_RASTERIZATION_MODE_BRESENHAM or VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH, then the current alphaToCoverageEnable, alphaToOneEnable and sampleShadingEnable states must all be VK_FALSE", + "text": "If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic state enabled, the effective rasterization input topology is in line topology class, and the current lineRasterizationMode is VK_LINE_RASTERIZATION_MODE_BRESENHAM or VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH, then the current alphaToCoverageEnable, alphaToOneEnable and sampleShadingEnable states must all be VK_FALSE", "page": "chapters/drawing.html" }, { @@ -51579,7 +51663,7 @@ }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-sampleLocationsEnable-07484", - "text": "If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, or the bound graphics pipeline was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set", + "text": "If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, or the bound graphics pipeline was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT then the current active depth attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set", "page": "chapters/drawing.html" }, { @@ -51614,7 +51698,7 @@ }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-coverageModulationTableEnable-07488", - "text": "If a shader object is bound to any graphics stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV state enabled, and the last call to vkCmdSetCoverageModulationTableEnableNV set coverageModulationTableEnable to VK_TRUE, then the coverageModulationTableCount parameter in the last call to vkCmdSetCoverageModulationTableNV must equal the current rasterizationSamples divided by the number of color samples in the current subpass", + "text": "If a shader object is bound to any graphics stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV state enabled, and the last call to vkCmdSetCoverageModulationTableEnableNV set coverageModulationTableEnable to VK_TRUE, then the coverageModulationTableCount parameter in the last call to vkCmdSetCoverageModulationTableNV must equal the current rasterizationSamples divided by the number of color samples in the current active color attachment", "page": "chapters/drawing.html" }, { @@ -51624,12 +51708,12 @@ }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-coverageToColorEnable-07490", - "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV state enabled and the last call to vkCmdSetCoverageToColorEnableNV set the coverageToColorEnable to VK_TRUE, then the current subpass must have a color attachment at the location selected by the last call to vkCmdSetCoverageToColorLocationNV coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT", + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV state enabled and the last call to vkCmdSetCoverageToColorEnableNV set the coverageToColorEnable to VK_TRUE, then there must be an active color attachment at the location selected by the last call to vkCmdSetCoverageToColorLocationNV coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-rasterizerDiscardEnable-09420", - "text": "If the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the last call to vkCmdSetCoverageToColorEnableNV set the coverageToColorEnable to VK_TRUE, then the current subpass must have a color attachment at the location selected by the last call to vkCmdSetCoverageToColorLocationNV coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT", + "text": "If the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the last call to vkCmdSetCoverageToColorEnableNV set the coverageToColorEnable to VK_TRUE, then there must be an active color attachment at the location selected by the last call to vkCmdSetCoverageToColorLocationNV coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT", "page": "chapters/drawing.html" }, { @@ -51929,7 +52013,12 @@ }, { "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-09637", - "text": "If the primitiveTopologyListRestart feature is not enabled, the topology is VK_PRIMITIVE_TOPOLOGY_POINT_LIST, VK_PRIMITIVE_TOPOLOGY_LINE_LIST, VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST, VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY, or VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY, there is a shader object bound to the VK_SHADER_STAGE_VERTEX_BIT stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE dynamic state enabled then vkCmdSetPrimitiveRestartEnable must be VK_FALSE", + "text": "If the primitiveTopologyListRestart feature is not enabled, the input assembly is VK_PRIMITIVE_TOPOLOGY_POINT_LIST, VK_PRIMITIVE_TOPOLOGY_LINE_LIST, VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST, VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY, or VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY, there is a shader object bound to the VK_SHADER_STAGE_VERTEX_BIT stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE dynamic state enabled, then vkCmdSetPrimitiveRestartEnable must be VK_FALSE", + "page": "chapters/drawing.html" + }, + { + "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-10909", + "text": "If the primitiveTopologyPatchListRestart feature is not enabled, the input assembly is VK_PRIMITIVE_TOPOLOGY_PATCH_LIST, there is a shader object bound to the VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE dynamic state enabled then vkCmdSetPrimitiveRestartEnable must be VK_FALSE", "page": "chapters/drawing.html" }, { @@ -52508,7 +52597,7 @@ }, { "vuid": "VUID-vkCmdDrawIndirect-sampleLocationsEnable-02689", - "text": "If the bound graphics pipeline was created with VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable set to VK_TRUE and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set", + "text": "If the bound graphics pipeline was created with VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable set to VK_TRUE, then the active depth attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set", "page": "chapters/drawing.html" }, { @@ -53023,7 +53112,7 @@ }, { "vuid": "VUID-vkCmdDrawIndirect-None-10608", - "text": "If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic state enabled, and the current lineRasterizationMode is VK_LINE_RASTERIZATION_MODE_BRESENHAM or VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH, then the current alphaToCoverageEnable, alphaToOneEnable and sampleShadingEnable states must all be VK_FALSE", + "text": "If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic state enabled, the effective rasterization input topology is in line topology class, and the current lineRasterizationMode is VK_LINE_RASTERIZATION_MODE_BRESENHAM or VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH, then the current alphaToCoverageEnable, alphaToOneEnable and sampleShadingEnable states must all be VK_FALSE", "page": "chapters/drawing.html" }, { @@ -53163,7 +53252,7 @@ }, { "vuid": "VUID-vkCmdDrawIndirect-sampleLocationsEnable-07484", - "text": "If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, or the bound graphics pipeline was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set", + "text": "If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, or the bound graphics pipeline was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT then the current active depth attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set", "page": "chapters/drawing.html" }, { @@ -53198,7 +53287,7 @@ }, { "vuid": "VUID-vkCmdDrawIndirect-coverageModulationTableEnable-07488", - "text": "If a shader object is bound to any graphics stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV state enabled, and the last call to vkCmdSetCoverageModulationTableEnableNV set coverageModulationTableEnable to VK_TRUE, then the coverageModulationTableCount parameter in the last call to vkCmdSetCoverageModulationTableNV must equal the current rasterizationSamples divided by the number of color samples in the current subpass", + "text": "If a shader object is bound to any graphics stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV state enabled, and the last call to vkCmdSetCoverageModulationTableEnableNV set coverageModulationTableEnable to VK_TRUE, then the coverageModulationTableCount parameter in the last call to vkCmdSetCoverageModulationTableNV must equal the current rasterizationSamples divided by the number of color samples in the current active color attachment", "page": "chapters/drawing.html" }, { @@ -53208,12 +53297,12 @@ }, { "vuid": "VUID-vkCmdDrawIndirect-coverageToColorEnable-07490", - "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV state enabled and the last call to vkCmdSetCoverageToColorEnableNV set the coverageToColorEnable to VK_TRUE, then the current subpass must have a color attachment at the location selected by the last call to vkCmdSetCoverageToColorLocationNV coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT", + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV state enabled and the last call to vkCmdSetCoverageToColorEnableNV set the coverageToColorEnable to VK_TRUE, then there must be an active color attachment at the location selected by the last call to vkCmdSetCoverageToColorLocationNV coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDrawIndirect-rasterizerDiscardEnable-09420", - "text": "If the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the last call to vkCmdSetCoverageToColorEnableNV set the coverageToColorEnable to VK_TRUE, then the current subpass must have a color attachment at the location selected by the last call to vkCmdSetCoverageToColorLocationNV coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT", + "text": "If the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the last call to vkCmdSetCoverageToColorEnableNV set the coverageToColorEnable to VK_TRUE, then there must be an active color attachment at the location selected by the last call to vkCmdSetCoverageToColorLocationNV coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT", "page": "chapters/drawing.html" }, { @@ -53498,7 +53587,12 @@ }, { "vuid": "VUID-vkCmdDrawIndirect-None-09637", - "text": "If the primitiveTopologyListRestart feature is not enabled, the topology is VK_PRIMITIVE_TOPOLOGY_POINT_LIST, VK_PRIMITIVE_TOPOLOGY_LINE_LIST, VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST, VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY, or VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY, there is a shader object bound to the VK_SHADER_STAGE_VERTEX_BIT stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE dynamic state enabled then vkCmdSetPrimitiveRestartEnable must be VK_FALSE", + "text": "If the primitiveTopologyListRestart feature is not enabled, the input assembly is VK_PRIMITIVE_TOPOLOGY_POINT_LIST, VK_PRIMITIVE_TOPOLOGY_LINE_LIST, VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST, VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY, or VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY, there is a shader object bound to the VK_SHADER_STAGE_VERTEX_BIT stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE dynamic state enabled, then vkCmdSetPrimitiveRestartEnable must be VK_FALSE", + "page": "chapters/drawing.html" + }, + { + "vuid": "VUID-vkCmdDrawIndirect-None-10909", + "text": "If the primitiveTopologyPatchListRestart feature is not enabled, the input assembly is VK_PRIMITIVE_TOPOLOGY_PATCH_LIST, there is a shader object bound to the VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE dynamic state enabled then vkCmdSetPrimitiveRestartEnable must be VK_FALSE", "page": "chapters/drawing.html" }, { @@ -54106,7 +54200,7 @@ }, { "vuid": "VUID-vkCmdDrawIndirectCount-sampleLocationsEnable-02689", - "text": "If the bound graphics pipeline was created with VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable set to VK_TRUE and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set", + "text": "If the bound graphics pipeline was created with VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable set to VK_TRUE, then the active depth attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set", "page": "chapters/drawing.html" }, { @@ -54621,7 +54715,7 @@ }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-10608", - "text": "If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic state enabled, and the current lineRasterizationMode is VK_LINE_RASTERIZATION_MODE_BRESENHAM or VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH, then the current alphaToCoverageEnable, alphaToOneEnable and sampleShadingEnable states must all be VK_FALSE", + "text": "If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic state enabled, the effective rasterization input topology is in line topology class, and the current lineRasterizationMode is VK_LINE_RASTERIZATION_MODE_BRESENHAM or VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH, then the current alphaToCoverageEnable, alphaToOneEnable and sampleShadingEnable states must all be VK_FALSE", "page": "chapters/drawing.html" }, { @@ -54761,7 +54855,7 @@ }, { "vuid": "VUID-vkCmdDrawIndirectCount-sampleLocationsEnable-07484", - "text": "If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, or the bound graphics pipeline was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set", + "text": "If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, or the bound graphics pipeline was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT then the current active depth attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set", "page": "chapters/drawing.html" }, { @@ -54796,7 +54890,7 @@ }, { "vuid": "VUID-vkCmdDrawIndirectCount-coverageModulationTableEnable-07488", - "text": "If a shader object is bound to any graphics stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV state enabled, and the last call to vkCmdSetCoverageModulationTableEnableNV set coverageModulationTableEnable to VK_TRUE, then the coverageModulationTableCount parameter in the last call to vkCmdSetCoverageModulationTableNV must equal the current rasterizationSamples divided by the number of color samples in the current subpass", + "text": "If a shader object is bound to any graphics stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV state enabled, and the last call to vkCmdSetCoverageModulationTableEnableNV set coverageModulationTableEnable to VK_TRUE, then the coverageModulationTableCount parameter in the last call to vkCmdSetCoverageModulationTableNV must equal the current rasterizationSamples divided by the number of color samples in the current active color attachment", "page": "chapters/drawing.html" }, { @@ -54806,12 +54900,12 @@ }, { "vuid": "VUID-vkCmdDrawIndirectCount-coverageToColorEnable-07490", - "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV state enabled and the last call to vkCmdSetCoverageToColorEnableNV set the coverageToColorEnable to VK_TRUE, then the current subpass must have a color attachment at the location selected by the last call to vkCmdSetCoverageToColorLocationNV coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT", + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV state enabled and the last call to vkCmdSetCoverageToColorEnableNV set the coverageToColorEnable to VK_TRUE, then there must be an active color attachment at the location selected by the last call to vkCmdSetCoverageToColorLocationNV coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDrawIndirectCount-rasterizerDiscardEnable-09420", - "text": "If the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the last call to vkCmdSetCoverageToColorEnableNV set the coverageToColorEnable to VK_TRUE, then the current subpass must have a color attachment at the location selected by the last call to vkCmdSetCoverageToColorLocationNV coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT", + "text": "If the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the last call to vkCmdSetCoverageToColorEnableNV set the coverageToColorEnable to VK_TRUE, then there must be an active color attachment at the location selected by the last call to vkCmdSetCoverageToColorLocationNV coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT", "page": "chapters/drawing.html" }, { @@ -55096,7 +55190,12 @@ }, { "vuid": "VUID-vkCmdDrawIndirectCount-None-09637", - "text": "If the primitiveTopologyListRestart feature is not enabled, the topology is VK_PRIMITIVE_TOPOLOGY_POINT_LIST, VK_PRIMITIVE_TOPOLOGY_LINE_LIST, VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST, VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY, or VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY, there is a shader object bound to the VK_SHADER_STAGE_VERTEX_BIT stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE dynamic state enabled then vkCmdSetPrimitiveRestartEnable must be VK_FALSE", + "text": "If the primitiveTopologyListRestart feature is not enabled, the input assembly is VK_PRIMITIVE_TOPOLOGY_POINT_LIST, VK_PRIMITIVE_TOPOLOGY_LINE_LIST, VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST, VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY, or VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY, there is a shader object bound to the VK_SHADER_STAGE_VERTEX_BIT stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE dynamic state enabled, then vkCmdSetPrimitiveRestartEnable must be VK_FALSE", + "page": "chapters/drawing.html" + }, + { + "vuid": "VUID-vkCmdDrawIndirectCount-None-10909", + "text": "If the primitiveTopologyPatchListRestart feature is not enabled, the input assembly is VK_PRIMITIVE_TOPOLOGY_PATCH_LIST, there is a shader object bound to the VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE dynamic state enabled then vkCmdSetPrimitiveRestartEnable must be VK_FALSE", "page": "chapters/drawing.html" }, { @@ -55705,7 +55804,7 @@ }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-sampleLocationsEnable-02689", - "text": "If the bound graphics pipeline was created with VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable set to VK_TRUE and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set", + "text": "If the bound graphics pipeline was created with VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable set to VK_TRUE, then the active depth attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set", "page": "chapters/drawing.html" }, { @@ -56220,7 +56319,7 @@ }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-10608", - "text": "If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic state enabled, and the current lineRasterizationMode is VK_LINE_RASTERIZATION_MODE_BRESENHAM or VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH, then the current alphaToCoverageEnable, alphaToOneEnable and sampleShadingEnable states must all be VK_FALSE", + "text": "If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic state enabled, the effective rasterization input topology is in line topology class, and the current lineRasterizationMode is VK_LINE_RASTERIZATION_MODE_BRESENHAM or VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH, then the current alphaToCoverageEnable, alphaToOneEnable and sampleShadingEnable states must all be VK_FALSE", "page": "chapters/drawing.html" }, { @@ -56360,7 +56459,7 @@ }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-sampleLocationsEnable-07484", - "text": "If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, or the bound graphics pipeline was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set", + "text": "If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, or the bound graphics pipeline was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT then the current active depth attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set", "page": "chapters/drawing.html" }, { @@ -56395,7 +56494,7 @@ }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-coverageModulationTableEnable-07488", - "text": "If a shader object is bound to any graphics stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV state enabled, and the last call to vkCmdSetCoverageModulationTableEnableNV set coverageModulationTableEnable to VK_TRUE, then the coverageModulationTableCount parameter in the last call to vkCmdSetCoverageModulationTableNV must equal the current rasterizationSamples divided by the number of color samples in the current subpass", + "text": "If a shader object is bound to any graphics stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV state enabled, and the last call to vkCmdSetCoverageModulationTableEnableNV set coverageModulationTableEnable to VK_TRUE, then the coverageModulationTableCount parameter in the last call to vkCmdSetCoverageModulationTableNV must equal the current rasterizationSamples divided by the number of color samples in the current active color attachment", "page": "chapters/drawing.html" }, { @@ -56405,12 +56504,12 @@ }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-coverageToColorEnable-07490", - "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV state enabled and the last call to vkCmdSetCoverageToColorEnableNV set the coverageToColorEnable to VK_TRUE, then the current subpass must have a color attachment at the location selected by the last call to vkCmdSetCoverageToColorLocationNV coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT", + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV state enabled and the last call to vkCmdSetCoverageToColorEnableNV set the coverageToColorEnable to VK_TRUE, then there must be an active color attachment at the location selected by the last call to vkCmdSetCoverageToColorLocationNV coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-rasterizerDiscardEnable-09420", - "text": "If the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the last call to vkCmdSetCoverageToColorEnableNV set the coverageToColorEnable to VK_TRUE, then the current subpass must have a color attachment at the location selected by the last call to vkCmdSetCoverageToColorLocationNV coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT", + "text": "If the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the last call to vkCmdSetCoverageToColorEnableNV set the coverageToColorEnable to VK_TRUE, then there must be an active color attachment at the location selected by the last call to vkCmdSetCoverageToColorLocationNV coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT", "page": "chapters/drawing.html" }, { @@ -56695,7 +56794,12 @@ }, { "vuid": "VUID-vkCmdDrawIndexedIndirect-None-09637", - "text": "If the primitiveTopologyListRestart feature is not enabled, the topology is VK_PRIMITIVE_TOPOLOGY_POINT_LIST, VK_PRIMITIVE_TOPOLOGY_LINE_LIST, VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST, VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY, or VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY, there is a shader object bound to the VK_SHADER_STAGE_VERTEX_BIT stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE dynamic state enabled then vkCmdSetPrimitiveRestartEnable must be VK_FALSE", + "text": "If the primitiveTopologyListRestart feature is not enabled, the input assembly is VK_PRIMITIVE_TOPOLOGY_POINT_LIST, VK_PRIMITIVE_TOPOLOGY_LINE_LIST, VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST, VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY, or VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY, there is a shader object bound to the VK_SHADER_STAGE_VERTEX_BIT stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE dynamic state enabled, then vkCmdSetPrimitiveRestartEnable must be VK_FALSE", + "page": "chapters/drawing.html" + }, + { + "vuid": "VUID-vkCmdDrawIndexedIndirect-None-10909", + "text": "If the primitiveTopologyPatchListRestart feature is not enabled, the input assembly is VK_PRIMITIVE_TOPOLOGY_PATCH_LIST, there is a shader object bound to the VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE dynamic state enabled then vkCmdSetPrimitiveRestartEnable must be VK_FALSE", "page": "chapters/drawing.html" }, { @@ -57313,7 +57417,7 @@ }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-sampleLocationsEnable-02689", - "text": "If the bound graphics pipeline was created with VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable set to VK_TRUE and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set", + "text": "If the bound graphics pipeline was created with VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable set to VK_TRUE, then the active depth attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set", "page": "chapters/drawing.html" }, { @@ -57828,7 +57932,7 @@ }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-10608", - "text": "If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic state enabled, and the current lineRasterizationMode is VK_LINE_RASTERIZATION_MODE_BRESENHAM or VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH, then the current alphaToCoverageEnable, alphaToOneEnable and sampleShadingEnable states must all be VK_FALSE", + "text": "If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic state enabled, the effective rasterization input topology is in line topology class, and the current lineRasterizationMode is VK_LINE_RASTERIZATION_MODE_BRESENHAM or VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH, then the current alphaToCoverageEnable, alphaToOneEnable and sampleShadingEnable states must all be VK_FALSE", "page": "chapters/drawing.html" }, { @@ -57968,7 +58072,7 @@ }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-sampleLocationsEnable-07484", - "text": "If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, or the bound graphics pipeline was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set", + "text": "If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, or the bound graphics pipeline was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT then the current active depth attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set", "page": "chapters/drawing.html" }, { @@ -58003,7 +58107,7 @@ }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-coverageModulationTableEnable-07488", - "text": "If a shader object is bound to any graphics stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV state enabled, and the last call to vkCmdSetCoverageModulationTableEnableNV set coverageModulationTableEnable to VK_TRUE, then the coverageModulationTableCount parameter in the last call to vkCmdSetCoverageModulationTableNV must equal the current rasterizationSamples divided by the number of color samples in the current subpass", + "text": "If a shader object is bound to any graphics stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV state enabled, and the last call to vkCmdSetCoverageModulationTableEnableNV set coverageModulationTableEnable to VK_TRUE, then the coverageModulationTableCount parameter in the last call to vkCmdSetCoverageModulationTableNV must equal the current rasterizationSamples divided by the number of color samples in the current active color attachment", "page": "chapters/drawing.html" }, { @@ -58013,12 +58117,12 @@ }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-coverageToColorEnable-07490", - "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV state enabled and the last call to vkCmdSetCoverageToColorEnableNV set the coverageToColorEnable to VK_TRUE, then the current subpass must have a color attachment at the location selected by the last call to vkCmdSetCoverageToColorLocationNV coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT", + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV state enabled and the last call to vkCmdSetCoverageToColorEnableNV set the coverageToColorEnable to VK_TRUE, then there must be an active color attachment at the location selected by the last call to vkCmdSetCoverageToColorLocationNV coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-rasterizerDiscardEnable-09420", - "text": "If the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the last call to vkCmdSetCoverageToColorEnableNV set the coverageToColorEnable to VK_TRUE, then the current subpass must have a color attachment at the location selected by the last call to vkCmdSetCoverageToColorLocationNV coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT", + "text": "If the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the last call to vkCmdSetCoverageToColorEnableNV set the coverageToColorEnable to VK_TRUE, then there must be an active color attachment at the location selected by the last call to vkCmdSetCoverageToColorLocationNV coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT", "page": "chapters/drawing.html" }, { @@ -58303,7 +58407,12 @@ }, { "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-09637", - "text": "If the primitiveTopologyListRestart feature is not enabled, the topology is VK_PRIMITIVE_TOPOLOGY_POINT_LIST, VK_PRIMITIVE_TOPOLOGY_LINE_LIST, VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST, VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY, or VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY, there is a shader object bound to the VK_SHADER_STAGE_VERTEX_BIT stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE dynamic state enabled then vkCmdSetPrimitiveRestartEnable must be VK_FALSE", + "text": "If the primitiveTopologyListRestart feature is not enabled, the input assembly is VK_PRIMITIVE_TOPOLOGY_POINT_LIST, VK_PRIMITIVE_TOPOLOGY_LINE_LIST, VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST, VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY, or VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY, there is a shader object bound to the VK_SHADER_STAGE_VERTEX_BIT stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE dynamic state enabled, then vkCmdSetPrimitiveRestartEnable must be VK_FALSE", + "page": "chapters/drawing.html" + }, + { + "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-10909", + "text": "If the primitiveTopologyPatchListRestart feature is not enabled, the input assembly is VK_PRIMITIVE_TOPOLOGY_PATCH_LIST, there is a shader object bound to the VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE dynamic state enabled then vkCmdSetPrimitiveRestartEnable must be VK_FALSE", "page": "chapters/drawing.html" }, { @@ -58917,7 +59026,7 @@ }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-sampleLocationsEnable-02689", - "text": "If the bound graphics pipeline was created with VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable set to VK_TRUE and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set", + "text": "If the bound graphics pipeline was created with VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable set to VK_TRUE, then the active depth attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set", "page": "chapters/drawing.html" }, { @@ -59432,7 +59541,7 @@ }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-10608", - "text": "If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic state enabled, and the current lineRasterizationMode is VK_LINE_RASTERIZATION_MODE_BRESENHAM or VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH, then the current alphaToCoverageEnable, alphaToOneEnable and sampleShadingEnable states must all be VK_FALSE", + "text": "If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic state enabled, the effective rasterization input topology is in line topology class, and the current lineRasterizationMode is VK_LINE_RASTERIZATION_MODE_BRESENHAM or VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH, then the current alphaToCoverageEnable, alphaToOneEnable and sampleShadingEnable states must all be VK_FALSE", "page": "chapters/drawing.html" }, { @@ -59572,7 +59681,7 @@ }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-sampleLocationsEnable-07484", - "text": "If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, or the bound graphics pipeline was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set", + "text": "If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, or the bound graphics pipeline was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT then the current active depth attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set", "page": "chapters/drawing.html" }, { @@ -59607,7 +59716,7 @@ }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-coverageModulationTableEnable-07488", - "text": "If a shader object is bound to any graphics stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV state enabled, and the last call to vkCmdSetCoverageModulationTableEnableNV set coverageModulationTableEnable to VK_TRUE, then the coverageModulationTableCount parameter in the last call to vkCmdSetCoverageModulationTableNV must equal the current rasterizationSamples divided by the number of color samples in the current subpass", + "text": "If a shader object is bound to any graphics stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV state enabled, and the last call to vkCmdSetCoverageModulationTableEnableNV set coverageModulationTableEnable to VK_TRUE, then the coverageModulationTableCount parameter in the last call to vkCmdSetCoverageModulationTableNV must equal the current rasterizationSamples divided by the number of color samples in the current active color attachment", "page": "chapters/drawing.html" }, { @@ -59617,12 +59726,12 @@ }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-coverageToColorEnable-07490", - "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV state enabled and the last call to vkCmdSetCoverageToColorEnableNV set the coverageToColorEnable to VK_TRUE, then the current subpass must have a color attachment at the location selected by the last call to vkCmdSetCoverageToColorLocationNV coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT", + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV state enabled and the last call to vkCmdSetCoverageToColorEnableNV set the coverageToColorEnable to VK_TRUE, then there must be an active color attachment at the location selected by the last call to vkCmdSetCoverageToColorLocationNV coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-rasterizerDiscardEnable-09420", - "text": "If the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the last call to vkCmdSetCoverageToColorEnableNV set the coverageToColorEnable to VK_TRUE, then the current subpass must have a color attachment at the location selected by the last call to vkCmdSetCoverageToColorLocationNV coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT", + "text": "If the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the last call to vkCmdSetCoverageToColorEnableNV set the coverageToColorEnable to VK_TRUE, then there must be an active color attachment at the location selected by the last call to vkCmdSetCoverageToColorLocationNV coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT", "page": "chapters/drawing.html" }, { @@ -59907,7 +60016,12 @@ }, { "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-09637", - "text": "If the primitiveTopologyListRestart feature is not enabled, the topology is VK_PRIMITIVE_TOPOLOGY_POINT_LIST, VK_PRIMITIVE_TOPOLOGY_LINE_LIST, VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST, VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY, or VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY, there is a shader object bound to the VK_SHADER_STAGE_VERTEX_BIT stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE dynamic state enabled then vkCmdSetPrimitiveRestartEnable must be VK_FALSE", + "text": "If the primitiveTopologyListRestart feature is not enabled, the input assembly is VK_PRIMITIVE_TOPOLOGY_POINT_LIST, VK_PRIMITIVE_TOPOLOGY_LINE_LIST, VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST, VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY, or VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY, there is a shader object bound to the VK_SHADER_STAGE_VERTEX_BIT stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE dynamic state enabled, then vkCmdSetPrimitiveRestartEnable must be VK_FALSE", + "page": "chapters/drawing.html" + }, + { + "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-10909", + "text": "If the primitiveTopologyPatchListRestart feature is not enabled, the input assembly is VK_PRIMITIVE_TOPOLOGY_PATCH_LIST, there is a shader object bound to the VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE dynamic state enabled then vkCmdSetPrimitiveRestartEnable must be VK_FALSE", "page": "chapters/drawing.html" }, { @@ -60623,7 +60737,7 @@ }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-sampleLocationsEnable-02689", - "text": "If the bound graphics pipeline was created with VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable set to VK_TRUE and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set", + "text": "If the bound graphics pipeline was created with VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable set to VK_TRUE, then the active depth attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set", "page": "chapters/drawing.html" }, { @@ -61138,7 +61252,7 @@ }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-None-10608", - "text": "If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic state enabled, and the current lineRasterizationMode is VK_LINE_RASTERIZATION_MODE_BRESENHAM or VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH, then the current alphaToCoverageEnable, alphaToOneEnable and sampleShadingEnable states must all be VK_FALSE", + "text": "If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic state enabled, the effective rasterization input topology is in line topology class, and the current lineRasterizationMode is VK_LINE_RASTERIZATION_MODE_BRESENHAM or VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH, then the current alphaToCoverageEnable, alphaToOneEnable and sampleShadingEnable states must all be VK_FALSE", "page": "chapters/drawing.html" }, { @@ -61278,7 +61392,7 @@ }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-sampleLocationsEnable-07484", - "text": "If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, or the bound graphics pipeline was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set", + "text": "If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, or the bound graphics pipeline was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT then the current active depth attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set", "page": "chapters/drawing.html" }, { @@ -61313,7 +61427,7 @@ }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-coverageModulationTableEnable-07488", - "text": "If a shader object is bound to any graphics stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV state enabled, and the last call to vkCmdSetCoverageModulationTableEnableNV set coverageModulationTableEnable to VK_TRUE, then the coverageModulationTableCount parameter in the last call to vkCmdSetCoverageModulationTableNV must equal the current rasterizationSamples divided by the number of color samples in the current subpass", + "text": "If a shader object is bound to any graphics stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV state enabled, and the last call to vkCmdSetCoverageModulationTableEnableNV set coverageModulationTableEnable to VK_TRUE, then the coverageModulationTableCount parameter in the last call to vkCmdSetCoverageModulationTableNV must equal the current rasterizationSamples divided by the number of color samples in the current active color attachment", "page": "chapters/drawing.html" }, { @@ -61323,12 +61437,12 @@ }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-coverageToColorEnable-07490", - "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV state enabled and the last call to vkCmdSetCoverageToColorEnableNV set the coverageToColorEnable to VK_TRUE, then the current subpass must have a color attachment at the location selected by the last call to vkCmdSetCoverageToColorLocationNV coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT", + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV state enabled and the last call to vkCmdSetCoverageToColorEnableNV set the coverageToColorEnable to VK_TRUE, then there must be an active color attachment at the location selected by the last call to vkCmdSetCoverageToColorLocationNV coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDrawMeshTasksNV-rasterizerDiscardEnable-09420", - "text": "If the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the last call to vkCmdSetCoverageToColorEnableNV set the coverageToColorEnable to VK_TRUE, then the current subpass must have a color attachment at the location selected by the last call to vkCmdSetCoverageToColorLocationNV coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT", + "text": "If the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the last call to vkCmdSetCoverageToColorEnableNV set the coverageToColorEnable to VK_TRUE, then there must be an active color attachment at the location selected by the last call to vkCmdSetCoverageToColorLocationNV coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT", "page": "chapters/drawing.html" }, { @@ -62077,7 +62191,7 @@ }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-sampleLocationsEnable-02689", - "text": "If the bound graphics pipeline was created with VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable set to VK_TRUE and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set", + "text": "If the bound graphics pipeline was created with VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable set to VK_TRUE, then the active depth attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set", "page": "chapters/drawing.html" }, { @@ -62592,7 +62706,7 @@ }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-10608", - "text": "If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic state enabled, and the current lineRasterizationMode is VK_LINE_RASTERIZATION_MODE_BRESENHAM or VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH, then the current alphaToCoverageEnable, alphaToOneEnable and sampleShadingEnable states must all be VK_FALSE", + "text": "If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic state enabled, the effective rasterization input topology is in line topology class, and the current lineRasterizationMode is VK_LINE_RASTERIZATION_MODE_BRESENHAM or VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH, then the current alphaToCoverageEnable, alphaToOneEnable and sampleShadingEnable states must all be VK_FALSE", "page": "chapters/drawing.html" }, { @@ -62732,7 +62846,7 @@ }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-sampleLocationsEnable-07484", - "text": "If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, or the bound graphics pipeline was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set", + "text": "If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, or the bound graphics pipeline was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT then the current active depth attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set", "page": "chapters/drawing.html" }, { @@ -62767,7 +62881,7 @@ }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-coverageModulationTableEnable-07488", - "text": "If a shader object is bound to any graphics stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV state enabled, and the last call to vkCmdSetCoverageModulationTableEnableNV set coverageModulationTableEnable to VK_TRUE, then the coverageModulationTableCount parameter in the last call to vkCmdSetCoverageModulationTableNV must equal the current rasterizationSamples divided by the number of color samples in the current subpass", + "text": "If a shader object is bound to any graphics stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV state enabled, and the last call to vkCmdSetCoverageModulationTableEnableNV set coverageModulationTableEnable to VK_TRUE, then the coverageModulationTableCount parameter in the last call to vkCmdSetCoverageModulationTableNV must equal the current rasterizationSamples divided by the number of color samples in the current active color attachment", "page": "chapters/drawing.html" }, { @@ -62777,12 +62891,12 @@ }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-coverageToColorEnable-07490", - "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV state enabled and the last call to vkCmdSetCoverageToColorEnableNV set the coverageToColorEnable to VK_TRUE, then the current subpass must have a color attachment at the location selected by the last call to vkCmdSetCoverageToColorLocationNV coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT", + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV state enabled and the last call to vkCmdSetCoverageToColorEnableNV set the coverageToColorEnable to VK_TRUE, then there must be an active color attachment at the location selected by the last call to vkCmdSetCoverageToColorLocationNV coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-rasterizerDiscardEnable-09420", - "text": "If the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the last call to vkCmdSetCoverageToColorEnableNV set the coverageToColorEnable to VK_TRUE, then the current subpass must have a color attachment at the location selected by the last call to vkCmdSetCoverageToColorLocationNV coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT", + "text": "If the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the last call to vkCmdSetCoverageToColorEnableNV set the coverageToColorEnable to VK_TRUE, then there must be an active color attachment at the location selected by the last call to vkCmdSetCoverageToColorLocationNV coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT", "page": "chapters/drawing.html" }, { @@ -63590,7 +63704,7 @@ }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-sampleLocationsEnable-02689", - "text": "If the bound graphics pipeline was created with VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable set to VK_TRUE and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set", + "text": "If the bound graphics pipeline was created with VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable set to VK_TRUE, then the active depth attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set", "page": "chapters/drawing.html" }, { @@ -64105,7 +64219,7 @@ }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-10608", - "text": "If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic state enabled, and the current lineRasterizationMode is VK_LINE_RASTERIZATION_MODE_BRESENHAM or VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH, then the current alphaToCoverageEnable, alphaToOneEnable and sampleShadingEnable states must all be VK_FALSE", + "text": "If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic state enabled, the effective rasterization input topology is in line topology class, and the current lineRasterizationMode is VK_LINE_RASTERIZATION_MODE_BRESENHAM or VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH, then the current alphaToCoverageEnable, alphaToOneEnable and sampleShadingEnable states must all be VK_FALSE", "page": "chapters/drawing.html" }, { @@ -64245,7 +64359,7 @@ }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-sampleLocationsEnable-07484", - "text": "If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, or the bound graphics pipeline was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set", + "text": "If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, or the bound graphics pipeline was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT then the current active depth attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set", "page": "chapters/drawing.html" }, { @@ -64280,7 +64394,7 @@ }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-coverageModulationTableEnable-07488", - "text": "If a shader object is bound to any graphics stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV state enabled, and the last call to vkCmdSetCoverageModulationTableEnableNV set coverageModulationTableEnable to VK_TRUE, then the coverageModulationTableCount parameter in the last call to vkCmdSetCoverageModulationTableNV must equal the current rasterizationSamples divided by the number of color samples in the current subpass", + "text": "If a shader object is bound to any graphics stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV state enabled, and the last call to vkCmdSetCoverageModulationTableEnableNV set coverageModulationTableEnable to VK_TRUE, then the coverageModulationTableCount parameter in the last call to vkCmdSetCoverageModulationTableNV must equal the current rasterizationSamples divided by the number of color samples in the current active color attachment", "page": "chapters/drawing.html" }, { @@ -64290,12 +64404,12 @@ }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-coverageToColorEnable-07490", - "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV state enabled and the last call to vkCmdSetCoverageToColorEnableNV set the coverageToColorEnable to VK_TRUE, then the current subpass must have a color attachment at the location selected by the last call to vkCmdSetCoverageToColorLocationNV coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT", + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV state enabled and the last call to vkCmdSetCoverageToColorEnableNV set the coverageToColorEnable to VK_TRUE, then there must be an active color attachment at the location selected by the last call to vkCmdSetCoverageToColorLocationNV coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-rasterizerDiscardEnable-09420", - "text": "If the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the last call to vkCmdSetCoverageToColorEnableNV set the coverageToColorEnable to VK_TRUE, then the current subpass must have a color attachment at the location selected by the last call to vkCmdSetCoverageToColorLocationNV coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT", + "text": "If the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the last call to vkCmdSetCoverageToColorEnableNV set the coverageToColorEnable to VK_TRUE, then there must be an active color attachment at the location selected by the last call to vkCmdSetCoverageToColorLocationNV coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT", "page": "chapters/drawing.html" }, { @@ -65114,7 +65228,7 @@ }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-sampleLocationsEnable-02689", - "text": "If the bound graphics pipeline was created with VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable set to VK_TRUE and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set", + "text": "If the bound graphics pipeline was created with VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable set to VK_TRUE, then the active depth attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set", "page": "chapters/drawing.html" }, { @@ -65629,7 +65743,7 @@ }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-None-10608", - "text": "If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic state enabled, and the current lineRasterizationMode is VK_LINE_RASTERIZATION_MODE_BRESENHAM or VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH, then the current alphaToCoverageEnable, alphaToOneEnable and sampleShadingEnable states must all be VK_FALSE", + "text": "If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic state enabled, the effective rasterization input topology is in line topology class, and the current lineRasterizationMode is VK_LINE_RASTERIZATION_MODE_BRESENHAM or VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH, then the current alphaToCoverageEnable, alphaToOneEnable and sampleShadingEnable states must all be VK_FALSE", "page": "chapters/drawing.html" }, { @@ -65769,7 +65883,7 @@ }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-sampleLocationsEnable-07484", - "text": "If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, or the bound graphics pipeline was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set", + "text": "If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, or the bound graphics pipeline was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT then the current active depth attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set", "page": "chapters/drawing.html" }, { @@ -65804,7 +65918,7 @@ }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-coverageModulationTableEnable-07488", - "text": "If a shader object is bound to any graphics stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV state enabled, and the last call to vkCmdSetCoverageModulationTableEnableNV set coverageModulationTableEnable to VK_TRUE, then the coverageModulationTableCount parameter in the last call to vkCmdSetCoverageModulationTableNV must equal the current rasterizationSamples divided by the number of color samples in the current subpass", + "text": "If a shader object is bound to any graphics stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV state enabled, and the last call to vkCmdSetCoverageModulationTableEnableNV set coverageModulationTableEnable to VK_TRUE, then the coverageModulationTableCount parameter in the last call to vkCmdSetCoverageModulationTableNV must equal the current rasterizationSamples divided by the number of color samples in the current active color attachment", "page": "chapters/drawing.html" }, { @@ -65814,12 +65928,12 @@ }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-coverageToColorEnable-07490", - "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV state enabled and the last call to vkCmdSetCoverageToColorEnableNV set the coverageToColorEnable to VK_TRUE, then the current subpass must have a color attachment at the location selected by the last call to vkCmdSetCoverageToColorLocationNV coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT", + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV state enabled and the last call to vkCmdSetCoverageToColorEnableNV set the coverageToColorEnable to VK_TRUE, then there must be an active color attachment at the location selected by the last call to vkCmdSetCoverageToColorLocationNV coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDrawMeshTasksEXT-rasterizerDiscardEnable-09420", - "text": "If the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the last call to vkCmdSetCoverageToColorEnableNV set the coverageToColorEnable to VK_TRUE, then the current subpass must have a color attachment at the location selected by the last call to vkCmdSetCoverageToColorLocationNV coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT", + "text": "If the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the last call to vkCmdSetCoverageToColorEnableNV set the coverageToColorEnable to VK_TRUE, then there must be an active color attachment at the location selected by the last call to vkCmdSetCoverageToColorLocationNV coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT", "page": "chapters/drawing.html" }, { @@ -66603,7 +66717,7 @@ }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-sampleLocationsEnable-02689", - "text": "If the bound graphics pipeline was created with VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable set to VK_TRUE and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set", + "text": "If the bound graphics pipeline was created with VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable set to VK_TRUE, then the active depth attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set", "page": "chapters/drawing.html" }, { @@ -67118,7 +67232,7 @@ }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-None-10608", - "text": "If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic state enabled, and the current lineRasterizationMode is VK_LINE_RASTERIZATION_MODE_BRESENHAM or VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH, then the current alphaToCoverageEnable, alphaToOneEnable and sampleShadingEnable states must all be VK_FALSE", + "text": "If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic state enabled, the effective rasterization input topology is in line topology class, and the current lineRasterizationMode is VK_LINE_RASTERIZATION_MODE_BRESENHAM or VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH, then the current alphaToCoverageEnable, alphaToOneEnable and sampleShadingEnable states must all be VK_FALSE", "page": "chapters/drawing.html" }, { @@ -67258,7 +67372,7 @@ }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-sampleLocationsEnable-07484", - "text": "If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, or the bound graphics pipeline was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set", + "text": "If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, or the bound graphics pipeline was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT then the current active depth attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set", "page": "chapters/drawing.html" }, { @@ -67293,7 +67407,7 @@ }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-coverageModulationTableEnable-07488", - "text": "If a shader object is bound to any graphics stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV state enabled, and the last call to vkCmdSetCoverageModulationTableEnableNV set coverageModulationTableEnable to VK_TRUE, then the coverageModulationTableCount parameter in the last call to vkCmdSetCoverageModulationTableNV must equal the current rasterizationSamples divided by the number of color samples in the current subpass", + "text": "If a shader object is bound to any graphics stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV state enabled, and the last call to vkCmdSetCoverageModulationTableEnableNV set coverageModulationTableEnable to VK_TRUE, then the coverageModulationTableCount parameter in the last call to vkCmdSetCoverageModulationTableNV must equal the current rasterizationSamples divided by the number of color samples in the current active color attachment", "page": "chapters/drawing.html" }, { @@ -67303,12 +67417,12 @@ }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-coverageToColorEnable-07490", - "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV state enabled and the last call to vkCmdSetCoverageToColorEnableNV set the coverageToColorEnable to VK_TRUE, then the current subpass must have a color attachment at the location selected by the last call to vkCmdSetCoverageToColorLocationNV coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT", + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV state enabled and the last call to vkCmdSetCoverageToColorEnableNV set the coverageToColorEnable to VK_TRUE, then there must be an active color attachment at the location selected by the last call to vkCmdSetCoverageToColorLocationNV coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectEXT-rasterizerDiscardEnable-09420", - "text": "If the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the last call to vkCmdSetCoverageToColorEnableNV set the coverageToColorEnable to VK_TRUE, then the current subpass must have a color attachment at the location selected by the last call to vkCmdSetCoverageToColorLocationNV coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT", + "text": "If the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the last call to vkCmdSetCoverageToColorEnableNV set the coverageToColorEnable to VK_TRUE, then there must be an active color attachment at the location selected by the last call to vkCmdSetCoverageToColorLocationNV coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT", "page": "chapters/drawing.html" }, { @@ -68151,7 +68265,7 @@ }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-sampleLocationsEnable-02689", - "text": "If the bound graphics pipeline was created with VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable set to VK_TRUE and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set", + "text": "If the bound graphics pipeline was created with VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable set to VK_TRUE, then the active depth attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set", "page": "chapters/drawing.html" }, { @@ -68666,7 +68780,7 @@ }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-10608", - "text": "If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic state enabled, and the current lineRasterizationMode is VK_LINE_RASTERIZATION_MODE_BRESENHAM or VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH, then the current alphaToCoverageEnable, alphaToOneEnable and sampleShadingEnable states must all be VK_FALSE", + "text": "If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic state enabled, the effective rasterization input topology is in line topology class, and the current lineRasterizationMode is VK_LINE_RASTERIZATION_MODE_BRESENHAM or VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH, then the current alphaToCoverageEnable, alphaToOneEnable and sampleShadingEnable states must all be VK_FALSE", "page": "chapters/drawing.html" }, { @@ -68806,7 +68920,7 @@ }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-sampleLocationsEnable-07484", - "text": "If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, or the bound graphics pipeline was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set", + "text": "If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, or the bound graphics pipeline was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT then the current active depth attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set", "page": "chapters/drawing.html" }, { @@ -68841,7 +68955,7 @@ }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-coverageModulationTableEnable-07488", - "text": "If a shader object is bound to any graphics stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV state enabled, and the last call to vkCmdSetCoverageModulationTableEnableNV set coverageModulationTableEnable to VK_TRUE, then the coverageModulationTableCount parameter in the last call to vkCmdSetCoverageModulationTableNV must equal the current rasterizationSamples divided by the number of color samples in the current subpass", + "text": "If a shader object is bound to any graphics stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV state enabled, and the last call to vkCmdSetCoverageModulationTableEnableNV set coverageModulationTableEnable to VK_TRUE, then the coverageModulationTableCount parameter in the last call to vkCmdSetCoverageModulationTableNV must equal the current rasterizationSamples divided by the number of color samples in the current active color attachment", "page": "chapters/drawing.html" }, { @@ -68851,12 +68965,12 @@ }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-coverageToColorEnable-07490", - "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV state enabled and the last call to vkCmdSetCoverageToColorEnableNV set the coverageToColorEnable to VK_TRUE, then the current subpass must have a color attachment at the location selected by the last call to vkCmdSetCoverageToColorLocationNV coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT", + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV state enabled and the last call to vkCmdSetCoverageToColorEnableNV set the coverageToColorEnable to VK_TRUE, then there must be an active color attachment at the location selected by the last call to vkCmdSetCoverageToColorLocationNV coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountEXT-rasterizerDiscardEnable-09420", - "text": "If the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the last call to vkCmdSetCoverageToColorEnableNV set the coverageToColorEnable to VK_TRUE, then the current subpass must have a color attachment at the location selected by the last call to vkCmdSetCoverageToColorLocationNV coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT", + "text": "If the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the last call to vkCmdSetCoverageToColorEnableNV set the coverageToColorEnable to VK_TRUE, then there must be an active color attachment at the location selected by the last call to vkCmdSetCoverageToColorLocationNV coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT", "page": "chapters/drawing.html" }, { @@ -69675,7 +69789,7 @@ }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-sampleLocationsEnable-02689", - "text": "If the bound graphics pipeline was created with VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable set to VK_TRUE and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set", + "text": "If the bound graphics pipeline was created with VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable set to VK_TRUE, then the active depth attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set", "page": "chapters/drawing.html" }, { @@ -70190,7 +70304,7 @@ }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-None-10608", - "text": "If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic state enabled, and the current lineRasterizationMode is VK_LINE_RASTERIZATION_MODE_BRESENHAM or VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH, then the current alphaToCoverageEnable, alphaToOneEnable and sampleShadingEnable states must all be VK_FALSE", + "text": "If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic state enabled, the effective rasterization input topology is in line topology class, and the current lineRasterizationMode is VK_LINE_RASTERIZATION_MODE_BRESENHAM or VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH, then the current alphaToCoverageEnable, alphaToOneEnable and sampleShadingEnable states must all be VK_FALSE", "page": "chapters/drawing.html" }, { @@ -70330,7 +70444,7 @@ }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-sampleLocationsEnable-07484", - "text": "If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, or the bound graphics pipeline was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set", + "text": "If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, or the bound graphics pipeline was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT then the current active depth attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set", "page": "chapters/drawing.html" }, { @@ -70365,7 +70479,7 @@ }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-coverageModulationTableEnable-07488", - "text": "If a shader object is bound to any graphics stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV state enabled, and the last call to vkCmdSetCoverageModulationTableEnableNV set coverageModulationTableEnable to VK_TRUE, then the coverageModulationTableCount parameter in the last call to vkCmdSetCoverageModulationTableNV must equal the current rasterizationSamples divided by the number of color samples in the current subpass", + "text": "If a shader object is bound to any graphics stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV state enabled, and the last call to vkCmdSetCoverageModulationTableEnableNV set coverageModulationTableEnable to VK_TRUE, then the coverageModulationTableCount parameter in the last call to vkCmdSetCoverageModulationTableNV must equal the current rasterizationSamples divided by the number of color samples in the current active color attachment", "page": "chapters/drawing.html" }, { @@ -70375,12 +70489,12 @@ }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-coverageToColorEnable-07490", - "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV state enabled and the last call to vkCmdSetCoverageToColorEnableNV set the coverageToColorEnable to VK_TRUE, then the current subpass must have a color attachment at the location selected by the last call to vkCmdSetCoverageToColorLocationNV coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT", + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV state enabled and the last call to vkCmdSetCoverageToColorEnableNV set the coverageToColorEnable to VK_TRUE, then there must be an active color attachment at the location selected by the last call to vkCmdSetCoverageToColorLocationNV coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDrawClusterHUAWEI-rasterizerDiscardEnable-09420", - "text": "If the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the last call to vkCmdSetCoverageToColorEnableNV set the coverageToColorEnable to VK_TRUE, then the current subpass must have a color attachment at the location selected by the last call to vkCmdSetCoverageToColorLocationNV coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT", + "text": "If the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the last call to vkCmdSetCoverageToColorEnableNV set the coverageToColorEnable to VK_TRUE, then there must be an active color attachment at the location selected by the last call to vkCmdSetCoverageToColorLocationNV coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT", "page": "chapters/drawing.html" }, { @@ -71144,7 +71258,7 @@ }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-sampleLocationsEnable-02689", - "text": "If the bound graphics pipeline was created with VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable set to VK_TRUE and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set", + "text": "If the bound graphics pipeline was created with VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable set to VK_TRUE, then the active depth attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set", "page": "chapters/drawing.html" }, { @@ -71659,7 +71773,7 @@ }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-None-10608", - "text": "If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic state enabled, and the current lineRasterizationMode is VK_LINE_RASTERIZATION_MODE_BRESENHAM or VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH, then the current alphaToCoverageEnable, alphaToOneEnable and sampleShadingEnable states must all be VK_FALSE", + "text": "If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic state enabled, the effective rasterization input topology is in line topology class, and the current lineRasterizationMode is VK_LINE_RASTERIZATION_MODE_BRESENHAM or VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH, then the current alphaToCoverageEnable, alphaToOneEnable and sampleShadingEnable states must all be VK_FALSE", "page": "chapters/drawing.html" }, { @@ -71799,7 +71913,7 @@ }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-sampleLocationsEnable-07484", - "text": "If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, or the bound graphics pipeline was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set", + "text": "If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, or the bound graphics pipeline was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT then the current active depth attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set", "page": "chapters/drawing.html" }, { @@ -71834,7 +71948,7 @@ }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-coverageModulationTableEnable-07488", - "text": "If a shader object is bound to any graphics stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV state enabled, and the last call to vkCmdSetCoverageModulationTableEnableNV set coverageModulationTableEnable to VK_TRUE, then the coverageModulationTableCount parameter in the last call to vkCmdSetCoverageModulationTableNV must equal the current rasterizationSamples divided by the number of color samples in the current subpass", + "text": "If a shader object is bound to any graphics stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV state enabled, and the last call to vkCmdSetCoverageModulationTableEnableNV set coverageModulationTableEnable to VK_TRUE, then the coverageModulationTableCount parameter in the last call to vkCmdSetCoverageModulationTableNV must equal the current rasterizationSamples divided by the number of color samples in the current active color attachment", "page": "chapters/drawing.html" }, { @@ -71844,12 +71958,12 @@ }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-coverageToColorEnable-07490", - "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV state enabled and the last call to vkCmdSetCoverageToColorEnableNV set the coverageToColorEnable to VK_TRUE, then the current subpass must have a color attachment at the location selected by the last call to vkCmdSetCoverageToColorLocationNV coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT", + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV state enabled and the last call to vkCmdSetCoverageToColorEnableNV set the coverageToColorEnable to VK_TRUE, then there must be an active color attachment at the location selected by the last call to vkCmdSetCoverageToColorLocationNV coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT", "page": "chapters/drawing.html" }, { "vuid": "VUID-vkCmdDrawClusterIndirectHUAWEI-rasterizerDiscardEnable-09420", - "text": "If the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the last call to vkCmdSetCoverageToColorEnableNV set the coverageToColorEnable to VK_TRUE, then the current subpass must have a color attachment at the location selected by the last call to vkCmdSetCoverageToColorLocationNV coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT", + "text": "If the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the last call to vkCmdSetCoverageToColorEnableNV set the coverageToColorEnable to VK_TRUE, then there must be an active color attachment at the location selected by the last call to vkCmdSetCoverageToColorLocationNV coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT", "page": "chapters/drawing.html" }, { @@ -79762,8 +79876,8 @@ "page": "chapters/device_generated_commands/generatedcommands.html" }, { - "vuid": "VUID-VkBindIndexBufferIndirectCommandEXT-None-11119", - "text": "Each element of the buffer from which the address was acquired and that is non-sparse must be bound completely and contiguously to a single VkDeviceMemory object", + "vuid": "VUID-VkBindIndexBufferIndirectCommandEXT-bufferAddress-parameter", + "text": "bufferAddress must be a valid VkDeviceAddress value", "page": "chapters/device_generated_commands/generatedcommands.html" }, { @@ -79781,8 +79895,8 @@ "page": "chapters/device_generated_commands/generatedcommands.html" }, { - "vuid": "VUID-VkBindVertexBufferIndirectCommandEXT-None-11121", - "text": "Each element of the buffer from which the address was acquired and that is non-sparse must be bound completely and contiguously to a single VkDeviceMemory object", + "vuid": "VUID-VkBindVertexBufferIndirectCommandEXT-bufferAddress-parameter", + "text": "bufferAddress must be a valid VkDeviceAddress value", "page": "chapters/device_generated_commands/generatedcommands.html" } ] @@ -79795,8 +79909,8 @@ "page": "chapters/device_generated_commands/generatedcommands.html" }, { - "vuid": "VUID-VkDrawIndirectCountIndirectCommandEXT-None-11123", - "text": "Each element of the buffer from which the address was acquired and that is non-sparse must be bound completely and contiguously to a single VkDeviceMemory object", + "vuid": "VUID-VkDrawIndirectCountIndirectCommandEXT-bufferAddress-parameter", + "text": "bufferAddress must be a valid VkDeviceAddress value", "page": "chapters/device_generated_commands/generatedcommands.html" } ] @@ -79852,8 +79966,8 @@ "page": "chapters/device_generated_commands/generatedcommands.html" }, { - "vuid": "VUID-VkBindIndexBufferIndirectCommandNV-None-02948", - "text": "Each element of the buffer from which the address was acquired and that is non-sparse must be bound completely and contiguously to a single VkDeviceMemory object", + "vuid": "VUID-VkBindIndexBufferIndirectCommandNV-bufferAddress-parameter", + "text": "bufferAddress must be a valid VkDeviceAddress value", "page": "chapters/device_generated_commands/generatedcommands.html" }, { @@ -79871,8 +79985,8 @@ "page": "chapters/device_generated_commands/generatedcommands.html" }, { - "vuid": "VUID-VkBindVertexBufferIndirectCommandNV-None-02950", - "text": "Each element of the buffer from which the address was acquired and that is non-sparse must be bound completely and contiguously to a single VkDeviceMemory object", + "vuid": "VUID-VkBindVertexBufferIndirectCommandNV-bufferAddress-parameter", + "text": "bufferAddress must be a valid VkDeviceAddress value", "page": "chapters/device_generated_commands/generatedcommands.html" } ] @@ -79898,6 +80012,11 @@ "vuid": "VUID-VkBindPipelineIndirectCommandNV-None-09094", "text": "The referenced pipeline’s address must have been queried with vkGetPipelineIndirectDeviceAddressNV", "page": "chapters/device_generated_commands/generatedcommands.html" + }, + { + "vuid": "VUID-VkBindPipelineIndirectCommandNV-pipelineAddress-parameter", + "text": "pipelineAddress must be a valid VkDeviceAddress value", + "page": "chapters/device_generated_commands/generatedcommands.html" } ] }, @@ -81360,7 +81479,7 @@ }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-sampleLocationsEnable-02689", - "text": "If the bound graphics pipeline was created with VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable set to VK_TRUE and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set", + "text": "If the bound graphics pipeline was created with VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable set to VK_TRUE, then the active depth attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set", "page": "chapters/device_generated_commands/generatedcommands.html" }, { @@ -81875,7 +81994,7 @@ }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-10608", - "text": "If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic state enabled, and the current lineRasterizationMode is VK_LINE_RASTERIZATION_MODE_BRESENHAM or VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH, then the current alphaToCoverageEnable, alphaToOneEnable and sampleShadingEnable states must all be VK_FALSE", + "text": "If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic state enabled, the effective rasterization input topology is in line topology class, and the current lineRasterizationMode is VK_LINE_RASTERIZATION_MODE_BRESENHAM or VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH, then the current alphaToCoverageEnable, alphaToOneEnable and sampleShadingEnable states must all be VK_FALSE", "page": "chapters/device_generated_commands/generatedcommands.html" }, { @@ -82015,7 +82134,7 @@ }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-sampleLocationsEnable-07484", - "text": "If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, or the bound graphics pipeline was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set", + "text": "If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, or the bound graphics pipeline was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT then the current active depth attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set", "page": "chapters/device_generated_commands/generatedcommands.html" }, { @@ -82050,7 +82169,7 @@ }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-coverageModulationTableEnable-07488", - "text": "If a shader object is bound to any graphics stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV state enabled, and the last call to vkCmdSetCoverageModulationTableEnableNV set coverageModulationTableEnable to VK_TRUE, then the coverageModulationTableCount parameter in the last call to vkCmdSetCoverageModulationTableNV must equal the current rasterizationSamples divided by the number of color samples in the current subpass", + "text": "If a shader object is bound to any graphics stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV state enabled, and the last call to vkCmdSetCoverageModulationTableEnableNV set coverageModulationTableEnable to VK_TRUE, then the coverageModulationTableCount parameter in the last call to vkCmdSetCoverageModulationTableNV must equal the current rasterizationSamples divided by the number of color samples in the current active color attachment", "page": "chapters/device_generated_commands/generatedcommands.html" }, { @@ -82060,12 +82179,12 @@ }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-coverageToColorEnable-07490", - "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV state enabled and the last call to vkCmdSetCoverageToColorEnableNV set the coverageToColorEnable to VK_TRUE, then the current subpass must have a color attachment at the location selected by the last call to vkCmdSetCoverageToColorLocationNV coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT", + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV state enabled and the last call to vkCmdSetCoverageToColorEnableNV set the coverageToColorEnable to VK_TRUE, then there must be an active color attachment at the location selected by the last call to vkCmdSetCoverageToColorLocationNV coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT", "page": "chapters/device_generated_commands/generatedcommands.html" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-rasterizerDiscardEnable-09420", - "text": "If the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the last call to vkCmdSetCoverageToColorEnableNV set the coverageToColorEnable to VK_TRUE, then the current subpass must have a color attachment at the location selected by the last call to vkCmdSetCoverageToColorLocationNV coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT", + "text": "If the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the last call to vkCmdSetCoverageToColorEnableNV set the coverageToColorEnable to VK_TRUE, then there must be an active color attachment at the location selected by the last call to vkCmdSetCoverageToColorLocationNV coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT", "page": "chapters/device_generated_commands/generatedcommands.html" }, { @@ -82350,7 +82469,12 @@ }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-09637", - "text": "If the primitiveTopologyListRestart feature is not enabled, the topology is VK_PRIMITIVE_TOPOLOGY_POINT_LIST, VK_PRIMITIVE_TOPOLOGY_LINE_LIST, VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST, VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY, or VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY, there is a shader object bound to the VK_SHADER_STAGE_VERTEX_BIT stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE dynamic state enabled then vkCmdSetPrimitiveRestartEnable must be VK_FALSE", + "text": "If the primitiveTopologyListRestart feature is not enabled, the input assembly is VK_PRIMITIVE_TOPOLOGY_POINT_LIST, VK_PRIMITIVE_TOPOLOGY_LINE_LIST, VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST, VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY, or VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY, there is a shader object bound to the VK_SHADER_STAGE_VERTEX_BIT stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE dynamic state enabled, then vkCmdSetPrimitiveRestartEnable must be VK_FALSE", + "page": "chapters/device_generated_commands/generatedcommands.html" + }, + { + "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-10909", + "text": "If the primitiveTopologyPatchListRestart feature is not enabled, the input assembly is VK_PRIMITIVE_TOPOLOGY_PATCH_LIST, there is a shader object bound to the VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE dynamic state enabled then vkCmdSetPrimitiveRestartEnable must be VK_FALSE", "page": "chapters/device_generated_commands/generatedcommands.html" }, { @@ -82613,7 +82737,7 @@ }, { "vuid": "VUID-vkCmdPreprocessGeneratedCommandsNV-pGeneratedCommandsInfo-02927", - "text": "pGeneratedCommandsInfo`s indirectCommandsLayout must have been created with the VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_NV bit set", + "text": "pGeneratedCommandsInfo->indirectCommandsLayout must have been created with the VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_NV bit set", "page": "chapters/device_generated_commands/generatedcommands.html" }, { @@ -83142,7 +83266,7 @@ }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-sampleLocationsEnable-02689", - "text": "If the bound graphics pipeline was created with VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable set to VK_TRUE and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set", + "text": "If the bound graphics pipeline was created with VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable set to VK_TRUE, then the active depth attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set", "page": "chapters/device_generated_commands/generatedcommands.html" }, { @@ -83657,7 +83781,7 @@ }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-None-10608", - "text": "If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic state enabled, and the current lineRasterizationMode is VK_LINE_RASTERIZATION_MODE_BRESENHAM or VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH, then the current alphaToCoverageEnable, alphaToOneEnable and sampleShadingEnable states must all be VK_FALSE", + "text": "If a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic state enabled, the effective rasterization input topology is in line topology class, and the current lineRasterizationMode is VK_LINE_RASTERIZATION_MODE_BRESENHAM or VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH, then the current alphaToCoverageEnable, alphaToOneEnable and sampleShadingEnable states must all be VK_FALSE", "page": "chapters/device_generated_commands/generatedcommands.html" }, { @@ -83797,7 +83921,7 @@ }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-sampleLocationsEnable-07484", - "text": "If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, or the bound graphics pipeline was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT, and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set", + "text": "If a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, or the bound graphics pipeline was created with the VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and sampleLocationsEnable was VK_TRUE in the last call to vkCmdSetSampleLocationsEnableEXT then the current active depth attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set", "page": "chapters/device_generated_commands/generatedcommands.html" }, { @@ -83832,7 +83956,7 @@ }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-coverageModulationTableEnable-07488", - "text": "If a shader object is bound to any graphics stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV state enabled, and the last call to vkCmdSetCoverageModulationTableEnableNV set coverageModulationTableEnable to VK_TRUE, then the coverageModulationTableCount parameter in the last call to vkCmdSetCoverageModulationTableNV must equal the current rasterizationSamples divided by the number of color samples in the current subpass", + "text": "If a shader object is bound to any graphics stage or the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV state enabled, and the last call to vkCmdSetCoverageModulationTableEnableNV set coverageModulationTableEnable to VK_TRUE, then the coverageModulationTableCount parameter in the last call to vkCmdSetCoverageModulationTableNV must equal the current rasterizationSamples divided by the number of color samples in the current active color attachment", "page": "chapters/device_generated_commands/generatedcommands.html" }, { @@ -83842,12 +83966,12 @@ }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-coverageToColorEnable-07490", - "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV state enabled and the last call to vkCmdSetCoverageToColorEnableNV set the coverageToColorEnable to VK_TRUE, then the current subpass must have a color attachment at the location selected by the last call to vkCmdSetCoverageToColorLocationNV coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT", + "text": "If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV state enabled and the last call to vkCmdSetCoverageToColorEnableNV set the coverageToColorEnable to VK_TRUE, then there must be an active color attachment at the location selected by the last call to vkCmdSetCoverageToColorLocationNV coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT", "page": "chapters/device_generated_commands/generatedcommands.html" }, { "vuid": "VUID-vkCmdExecuteGeneratedCommandsEXT-rasterizerDiscardEnable-09420", - "text": "If the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the last call to vkCmdSetCoverageToColorEnableNV set the coverageToColorEnable to VK_TRUE, then the current subpass must have a color attachment at the location selected by the last call to vkCmdSetCoverageToColorLocationNV coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT", + "text": "If the VK_NV_fragment_coverage_to_color extension is enabled, and a shader object is bound to the VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to vkCmdSetRasterizerDiscardEnable in the current command buffer set rasterizerDiscardEnable to VK_FALSE, and the last call to vkCmdSetCoverageToColorEnableNV set the coverageToColorEnable to VK_TRUE, then there must be an active color attachment at the location selected by the last call to vkCmdSetCoverageToColorLocationNV coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT", "page": "chapters/device_generated_commands/generatedcommands.html" }, { @@ -84191,7 +84315,7 @@ "core": [ { "vuid": "VUID-VkGeneratedCommandsInfoEXT-preprocessAddress-11063", - "text": "If vkGetGeneratedCommandsMemoryRequirementsEXT returns a non-zero size, preprocessAddress must not be NULL", + "text": "If vkGetGeneratedCommandsMemoryRequirementsEXT returns a non-zero size, preprocessAddress must not be 0", "page": "chapters/device_generated_commands/generatedcommands.html" }, { @@ -84229,11 +84353,6 @@ "text": "The underlying buffer for preprocessAddress must have the VK_BUFFER_USAGE_2_PREPROCESS_BUFFER_BIT_EXT bit set in its usage flag", "page": "chapters/device_generated_commands/generatedcommands.html" }, - { - "vuid": "VUID-VkGeneratedCommandsInfoEXT-preprocessAddress-11070", - "text": "If the underlying buffer for preprocessAddress is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object", - "page": "chapters/device_generated_commands/generatedcommands.html" - }, { "vuid": "VUID-VkGeneratedCommandsInfoEXT-indirectCommandsLayout-11144", "text": "If the indirectCommandsLayout contains a VK_INDIRECT_COMMANDS_TOKEN_TYPE_EXECUTION_SET_EXT token, then the descriptor and push constant layout info provided either by pipelineLayout or through a VkPipelineLayoutCreateInfo in pNext of the VkIndirectCommandsLayoutCreateInfoEXT used to create indirectCommandsLayout must be compatible with the descriptor and push constant layout info used by indirectExecutionSet", @@ -84264,16 +84383,6 @@ "text": "indirectAddress must be aligned to 4", "page": "chapters/device_generated_commands/generatedcommands.html" }, - { - "vuid": "VUID-VkGeneratedCommandsInfoEXT-sequenceCountAddress-11075", - "text": "If the underlying buffer for sequenceCountAddress is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object", - "page": "chapters/device_generated_commands/generatedcommands.html" - }, - { - "vuid": "VUID-VkGeneratedCommandsInfoEXT-indirectAddress-11076", - "text": "indirectAddress must not be NULL", - "page": "chapters/device_generated_commands/generatedcommands.html" - }, { "vuid": "VUID-VkGeneratedCommandsInfoEXT-indirectAddressSize-11077", "text": "indirectAddressSize must be greater than zero", @@ -84329,6 +84438,21 @@ "text": "indirectCommandsLayout must be a valid VkIndirectCommandsLayoutEXT handle", "page": "chapters/device_generated_commands/generatedcommands.html" }, + { + "vuid": "VUID-VkGeneratedCommandsInfoEXT-indirectAddress-parameter", + "text": "indirectAddress must be a valid VkDeviceAddress value", + "page": "chapters/device_generated_commands/generatedcommands.html" + }, + { + "vuid": "VUID-VkGeneratedCommandsInfoEXT-preprocessAddress-parameter", + "text": "If preprocessAddress is not 0, preprocessAddress must be a valid VkDeviceAddress value", + "page": "chapters/device_generated_commands/generatedcommands.html" + }, + { + "vuid": "VUID-VkGeneratedCommandsInfoEXT-sequenceCountAddress-parameter", + "text": "If sequenceCountAddress is not 0, sequenceCountAddress must be a valid VkDeviceAddress value", + "page": "chapters/device_generated_commands/generatedcommands.html" + }, { "vuid": "VUID-VkGeneratedCommandsInfoEXT-commonparent", "text": "Both of indirectCommandsLayout, and indirectExecutionSet that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice", @@ -89362,130 +89486,6 @@ } ] }, - "vkCmdBuildAccelerationStructureNV": { - "core": [ - { - "vuid": "VUID-vkCmdBuildAccelerationStructureNV-geometryCount-02241", - "text": "geometryCount must be less than or equal to VkPhysicalDeviceRayTracingPropertiesNV::maxGeometryCount", - "page": "chapters/accelstructures.html" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructureNV-dst-02488", - "text": "dst must have been created with compatible VkAccelerationStructureInfoNV where VkAccelerationStructureInfoNV::type and VkAccelerationStructureInfoNV::flags are identical, VkAccelerationStructureInfoNV::instanceCount and VkAccelerationStructureInfoNV::geometryCount for dst are greater than or equal to the build size and each geometry in VkAccelerationStructureInfoNV::pGeometries for dst has greater than or equal to the number of vertices, indices, and AABBs", - "page": "chapters/accelstructures.html" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructureNV-update-02489", - "text": "If update is VK_TRUE, src must not be VK_NULL_HANDLE", - "page": "chapters/accelstructures.html" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructureNV-update-02490", - "text": "If update is VK_TRUE, src must have previously been constructed with VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_NV set in VkAccelerationStructureInfoNV::flags in the original build", - "page": "chapters/accelstructures.html" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructureNV-update-02491", - "text": "If update is VK_FALSE, the size member of the VkMemoryRequirements structure returned from a call to vkGetAccelerationStructureMemoryRequirementsNV with VkAccelerationStructureMemoryRequirementsInfoNV::accelerationStructure set to dst and VkAccelerationStructureMemoryRequirementsInfoNV::type set to VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_NV must be less than or equal to the size of scratch minus scratchOffset", - "page": "chapters/accelstructures.html" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructureNV-update-02492", - "text": "If update is VK_TRUE, the size member of the VkMemoryRequirements structure returned from a call to vkGetAccelerationStructureMemoryRequirementsNV with VkAccelerationStructureMemoryRequirementsInfoNV::accelerationStructure set to dst and VkAccelerationStructureMemoryRequirementsInfoNV::type set to VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV must be less than or equal to the size of scratch minus scratchOffset", - "page": "chapters/accelstructures.html" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructureNV-scratch-03522", - "text": "scratch must have been created with VK_BUFFER_USAGE_RAY_TRACING_BIT_NV usage flag", - "page": "chapters/accelstructures.html" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructureNV-instanceData-03523", - "text": "If instanceData is not VK_NULL_HANDLE, instanceData must have been created with VK_BUFFER_USAGE_RAY_TRACING_BIT_NV usage flag", - "page": "chapters/accelstructures.html" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructureNV-accelerationStructureReference-03786", - "text": "Each VkAccelerationStructureInstanceKHR::accelerationStructureReference value in instanceData must be a valid device address containing a value obtained from vkGetAccelerationStructureHandleNV", - "page": "chapters/accelstructures.html" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructureNV-update-03524", - "text": "If update is VK_TRUE, then objects that were previously active must not be made inactive as per Inactive Primitives and Instances", - "page": "chapters/accelstructures.html" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructureNV-update-03525", - "text": "If update is VK_TRUE, then objects that were previously inactive must not be made active as per Inactive Primitives and Instances", - "page": "chapters/accelstructures.html" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructureNV-update-03526", - "text": "If update is VK_TRUE, the src and dst objects must either be the same object or not have any memory aliasing", - "page": "chapters/accelstructures.html" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructureNV-dst-07787", - "text": "dst must be bound completely and contiguously to a single VkDeviceMemory object via vkBindAccelerationStructureMemoryNV", - "page": "chapters/accelstructures.html" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructureNV-commandBuffer-parameter", - "text": "commandBuffer must be a valid VkCommandBuffer handle", - "page": "chapters/accelstructures.html" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructureNV-pInfo-parameter", - "text": "pInfo must be a valid pointer to a valid VkAccelerationStructureInfoNV structure", - "page": "chapters/accelstructures.html" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructureNV-instanceData-parameter", - "text": "If instanceData is not VK_NULL_HANDLE, instanceData must be a valid VkBuffer handle", - "page": "chapters/accelstructures.html" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructureNV-dst-parameter", - "text": "dst must be a valid VkAccelerationStructureNV handle", - "page": "chapters/accelstructures.html" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructureNV-src-parameter", - "text": "If src is not VK_NULL_HANDLE, src must be a valid VkAccelerationStructureNV handle", - "page": "chapters/accelstructures.html" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructureNV-scratch-parameter", - "text": "scratch must be a valid VkBuffer handle", - "page": "chapters/accelstructures.html" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructureNV-commandBuffer-recording", - "text": "commandBuffer must be in the recording state", - "page": "chapters/accelstructures.html" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructureNV-commandBuffer-cmdpool", - "text": "The VkCommandPool that commandBuffer was allocated from must support compute operations", - "page": "chapters/accelstructures.html" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructureNV-renderpass", - "text": "This command must only be called outside of a render pass instance", - "page": "chapters/accelstructures.html" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructureNV-videocoding", - "text": "This command must only be called outside of a video coding scope", - "page": "chapters/accelstructures.html" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructureNV-commonparent", - "text": "Each of commandBuffer, dst, instanceData, scratch, and src that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice", - "page": "chapters/accelstructures.html" - } - ] - }, "vkCmdBuildAccelerationStructuresKHR": { "core": [ { @@ -89638,6 +89638,36 @@ "text": "For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for each VkAccelerationStructureGeometryKHR structure referred to by its pGeometries or ppGeometries members, if geometryType is VK_GEOMETRY_TYPE_TRIANGLES_KHR, if its geometry.triangles.transformData address was not NULL when srcAccelerationStructure was last built, then it must not be NULL", "page": "chapters/accelstructures.html" }, + { + "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-10898", + "text": "For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for each VkAccelerationStructureGeometryKHR structure referred to by its pGeometries or ppGeometries members, if geometryType is VK_GEOMETRY_TYPE_DENSE_GEOMETRY_FORMAT_TRIANGLES_AMDX, the numTriangles member of the VkAccelerationStructureDenseGeometryFormatTrianglesDataAMDX structure in the pNext chain must have the same value which was specified when srcAccelerationStructure was last built", + "page": "chapters/accelstructures.html" + }, + { + "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-10899", + "text": "For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for each VkAccelerationStructureGeometryKHR structure referred to by its pGeometries or ppGeometries members, if geometryType is VK_GEOMETRY_TYPE_DENSE_GEOMETRY_FORMAT_TRIANGLES_AMDX, the numVertices member of the VkAccelerationStructureDenseGeometryFormatTrianglesDataAMDX structure in the pNext chain must have the same value which was specified when srcAccelerationStructure was last built", + "page": "chapters/accelstructures.html" + }, + { + "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-10900", + "text": "For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for each VkAccelerationStructureGeometryKHR structure referred to by its pGeometries or ppGeometries members, if geometryType is VK_GEOMETRY_TYPE_DENSE_GEOMETRY_FORMAT_TRIANGLES_AMDX, the maxPrimitiveIndex member of the VkAccelerationStructureDenseGeometryFormatTrianglesDataAMDX structure in the pNext chain must have the same value which was specified when srcAccelerationStructure was last built", + "page": "chapters/accelstructures.html" + }, + { + "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-10901", + "text": "For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for each VkAccelerationStructureGeometryKHR structure referred to by its pGeometries or ppGeometries members, if geometryType is VK_GEOMETRY_TYPE_DENSE_GEOMETRY_FORMAT_TRIANGLES_AMDX, the maxGeometryIndex member of the VkAccelerationStructureDenseGeometryFormatTrianglesDataAMDX structure in the pNext chain must have the same value which was specified when srcAccelerationStructure was last built", + "page": "chapters/accelstructures.html" + }, + { + "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-10902", + "text": "For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for each VkAccelerationStructureGeometryKHR structure referred to by its pGeometries or ppGeometries members, if geometryType is VK_GEOMETRY_TYPE_DENSE_GEOMETRY_FORMAT_TRIANGLES_AMDX, the format member of the VkAccelerationStructureDenseGeometryFormatTrianglesDataAMDX structure in the pNext chain must have the same value which was specified when srcAccelerationStructure was last built", + "page": "chapters/accelstructures.html" + }, + { + "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-10903", + "text": "For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for each VkAccelerationStructureGeometryKHR structure referred to by its pGeometries or ppGeometries members, if geometryType is VK_GEOMETRY_TYPE_DENSE_GEOMETRY_FORMAT_TRIANGLES_AMDX, the dataSize member of the VkAccelerationStructureDenseGeometryFormatTrianglesDataAMDX structure in the pNext chain must have the same value which was specified when srcAccelerationStructure was last built", + "page": "chapters/accelstructures.html" + }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03768", "text": "For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for each VkAccelerationStructureGeometryKHR structure referred to by its pGeometries or ppGeometries members, if geometryType is VK_GEOMETRY_TYPE_TRIANGLES_KHR, and geometry.triangles.indexType is not VK_INDEX_TYPE_NONE_KHR, then the value of each index referenced must be the same as the corresponding index value when srcAccelerationStructure was last built", @@ -89690,12 +89720,7 @@ }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03802", - "text": "For each element of pInfos, its scratchData.deviceAddress member must be a valid device address obtained from vkGetBufferDeviceAddress", - "page": "chapters/accelstructures.html" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03803", - "text": "For each element of pInfos, if scratchData.deviceAddress is the address of a non-sparse buffer then it must be bound completely and contiguously to a single VkDeviceMemory object", + "text": "For each element of pInfos, its scratchData.deviceAddress member must be a valid VkDeviceAddress", "page": "chapters/accelstructures.html" }, { @@ -89705,12 +89730,7 @@ }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03804", - "text": "For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_TRIANGLES_KHR, geometry.triangles.vertexData.deviceAddress must be a valid device address obtained from vkGetBufferDeviceAddress", - "page": "chapters/accelstructures.html" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03805", - "text": "For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_TRIANGLES_KHR, if geometry.triangles.vertexData.deviceAddress is the address of a non-sparse buffer then it must be bound completely and contiguously to a single VkDeviceMemory object", + "text": "For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_TRIANGLES_KHR, geometry.triangles.vertexData.deviceAddress must be a valid VkDeviceAddress", "page": "chapters/accelstructures.html" }, { @@ -89720,12 +89740,7 @@ }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03806", - "text": "For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_TRIANGLES_KHR, if geometry.triangles.indexType is not VK_INDEX_TYPE_NONE_KHR, geometry.triangles.indexData.deviceAddress must be a valid device address obtained from vkGetBufferDeviceAddress", - "page": "chapters/accelstructures.html" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03807", - "text": "For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_TRIANGLES_KHR, if geometry.triangles.indexType is not VK_INDEX_TYPE_NONE_KHR, if geometry.triangles.indexData.deviceAddress is the address of a non-sparse buffer then it must be bound completely and contiguously to a single VkDeviceMemory object", + "text": "For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_TRIANGLES_KHR, if geometry.triangles.indexType is not VK_INDEX_TYPE_NONE_KHR, geometry.triangles.indexData.deviceAddress must be a valid VkDeviceAddress", "page": "chapters/accelstructures.html" }, { @@ -89735,12 +89750,7 @@ }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03808", - "text": "For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_TRIANGLES_KHR, if geometry.triangles.transformData.deviceAddress is not 0, it must be a valid device address obtained from vkGetBufferDeviceAddress", - "page": "chapters/accelstructures.html" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03809", - "text": "For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_TRIANGLES_KHR, if geometry.triangles.transformData.deviceAddress is the address of a non-sparse buffer then it must be bound completely and contiguously to a single VkDeviceMemory object", + "text": "For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_TRIANGLES_KHR, if geometry.triangles.transformData.deviceAddress is not 0, it must be a valid VkDeviceAddress", "page": "chapters/accelstructures.html" }, { @@ -89750,12 +89760,7 @@ }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03811", - "text": "For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_AABBS_KHR, geometry.aabbs.data.deviceAddress must be a valid device address obtained from vkGetBufferDeviceAddress", - "page": "chapters/accelstructures.html" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03812", - "text": "For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_AABBS_KHR, if geometry.aabbs.data.deviceAddress is the address of a non-sparse buffer then it must be bound completely and contiguously to a single VkDeviceMemory object", + "text": "For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_AABBS_KHR, geometry.aabbs.data.deviceAddress must be a valid VkDeviceAddress", "page": "chapters/accelstructures.html" }, { @@ -89780,17 +89785,12 @@ }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03813", - "text": "For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_INSTANCES_KHR, geometry.instances.data.deviceAddress must be a valid device address obtained from vkGetBufferDeviceAddress", - "page": "chapters/accelstructures.html" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03814", - "text": "For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_INSTANCES_KHR, if geometry.instances.data.deviceAddress is the address of a non-sparse buffer then it must be bound completely and contiguously to a single VkDeviceMemory object", + "text": "For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_INSTANCES_KHR, geometry.instances.data.deviceAddress must be a valid VkDeviceAddress", "page": "chapters/accelstructures.html" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-06707", - "text": "For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_INSTANCES_KHR, each VkAccelerationStructureInstanceKHR::accelerationStructureReference value in geometry.instances.data.deviceAddress must be a valid device address containing a value obtained from vkGetAccelerationStructureDeviceAddressKHR or 0", + "text": "For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_INSTANCES_KHR, each VkAccelerationStructureInstanceKHR::accelerationStructureReference value in geometry.instances.data.deviceAddress must be 0 or a value obtained from vkGetAccelerationStructureDeviceAddressKHR for a valid acceleration structure", "page": "chapters/accelstructures.html" }, { @@ -89803,6 +89803,16 @@ "text": "commandBuffer must not be a protected command buffer", "page": "chapters/accelstructures.html" }, + { + "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-10904", + "text": "For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_TRIANGLES_KHR, if there is an instance of VkAccelerationStructureTrianglesOpacityMicromapEXT in the geometry.triangles.pNext chain, and its indexType is VK_INDEX_TYPE_NONE_KHR, then its indexBuffer.deviceAddress must be 0", + "page": "chapters/accelstructures.html" + }, + { + "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-10905", + "text": "For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_TRIANGLES_KHR, if there is an instance of VkAccelerationStructureTrianglesOpacityMicromapEXT in the geometry.triangles.pNext chain, and its indexType is not VK_INDEX_TYPE_NONE_KHR, then its indexBuffer.deviceAddress must be a valid VkDeviceAddress", + "page": "chapters/accelstructures.html" + }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-10126", "text": "For each pInfos[i], dstAccelerationStructure must have been created with a value of VkAccelerationStructureCreateInfoKHR::size greater than or equal to either:
\n
    \n
  • \n

    the memory size required by the build operation, as returned by\nvkGetAccelerationStructureBuildSizesKHR with\npBuildInfo = pInfos[i] and with each element of the\npMaxPrimitiveCounts array greater than or equal to the equivalent\nppBuildRangeInfos[i][j].primitiveCount values for j in\n[0,pInfos[i].geometryCount) or,

    \n
  • \n
  • \n

    the result of querying the corresponding\nVK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR, if\nupdating a compacted acceleration structure

    \n
  • \n
\n
", @@ -89810,7 +89820,12 @@ }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-ppBuildRangeInfos-03676", - "text": "Each element of ppBuildRangeInfos[i] must be a valid pointer to an array of pInfos[i].geometryCount VkAccelerationStructureBuildRangeInfoKHR structures", + "text": "Each element of ppBuildRangeInfos[i] must be a valid pointer to an array of pInfos[i].geometryCount VkAccelerationStructureBuildRangeInfoKHR structures , or NULL", + "page": "chapters/accelstructures.html" + }, + { + "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-10906", + "text": "For each element of pInfos[i] whose pGeometries or ppGeometries members have a geometryType of VK_GEOMETRY_TYPE_DENSE_GEOMETRY_FORMAT_TRIANGLES_AMDX, ppBuildRangeInfos[i] must be NULL", "page": "chapters/accelstructures.html" }, { @@ -90007,6 +90022,36 @@ "text": "For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for each VkAccelerationStructureGeometryKHR structure referred to by its pGeometries or ppGeometries members, if geometryType is VK_GEOMETRY_TYPE_TRIANGLES_KHR, if its geometry.triangles.transformData address was not NULL when srcAccelerationStructure was last built, then it must not be NULL", "page": "chapters/accelstructures.html" }, + { + "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-10898", + "text": "For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for each VkAccelerationStructureGeometryKHR structure referred to by its pGeometries or ppGeometries members, if geometryType is VK_GEOMETRY_TYPE_DENSE_GEOMETRY_FORMAT_TRIANGLES_AMDX, the numTriangles member of the VkAccelerationStructureDenseGeometryFormatTrianglesDataAMDX structure in the pNext chain must have the same value which was specified when srcAccelerationStructure was last built", + "page": "chapters/accelstructures.html" + }, + { + "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-10899", + "text": "For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for each VkAccelerationStructureGeometryKHR structure referred to by its pGeometries or ppGeometries members, if geometryType is VK_GEOMETRY_TYPE_DENSE_GEOMETRY_FORMAT_TRIANGLES_AMDX, the numVertices member of the VkAccelerationStructureDenseGeometryFormatTrianglesDataAMDX structure in the pNext chain must have the same value which was specified when srcAccelerationStructure was last built", + "page": "chapters/accelstructures.html" + }, + { + "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-10900", + "text": "For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for each VkAccelerationStructureGeometryKHR structure referred to by its pGeometries or ppGeometries members, if geometryType is VK_GEOMETRY_TYPE_DENSE_GEOMETRY_FORMAT_TRIANGLES_AMDX, the maxPrimitiveIndex member of the VkAccelerationStructureDenseGeometryFormatTrianglesDataAMDX structure in the pNext chain must have the same value which was specified when srcAccelerationStructure was last built", + "page": "chapters/accelstructures.html" + }, + { + "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-10901", + "text": "For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for each VkAccelerationStructureGeometryKHR structure referred to by its pGeometries or ppGeometries members, if geometryType is VK_GEOMETRY_TYPE_DENSE_GEOMETRY_FORMAT_TRIANGLES_AMDX, the maxGeometryIndex member of the VkAccelerationStructureDenseGeometryFormatTrianglesDataAMDX structure in the pNext chain must have the same value which was specified when srcAccelerationStructure was last built", + "page": "chapters/accelstructures.html" + }, + { + "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-10902", + "text": "For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for each VkAccelerationStructureGeometryKHR structure referred to by its pGeometries or ppGeometries members, if geometryType is VK_GEOMETRY_TYPE_DENSE_GEOMETRY_FORMAT_TRIANGLES_AMDX, the format member of the VkAccelerationStructureDenseGeometryFormatTrianglesDataAMDX structure in the pNext chain must have the same value which was specified when srcAccelerationStructure was last built", + "page": "chapters/accelstructures.html" + }, + { + "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-10903", + "text": "For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for each VkAccelerationStructureGeometryKHR structure referred to by its pGeometries or ppGeometries members, if geometryType is VK_GEOMETRY_TYPE_DENSE_GEOMETRY_FORMAT_TRIANGLES_AMDX, the dataSize member of the VkAccelerationStructureDenseGeometryFormatTrianglesDataAMDX structure in the pNext chain must have the same value which was specified when srcAccelerationStructure was last built", + "page": "chapters/accelstructures.html" + }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03768", "text": "For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for each VkAccelerationStructureGeometryKHR structure referred to by its pGeometries or ppGeometries members, if geometryType is VK_GEOMETRY_TYPE_TRIANGLES_KHR, and geometry.triangles.indexType is not VK_INDEX_TYPE_NONE_KHR, then the value of each index referenced must be the same as the corresponding index value when srcAccelerationStructure was last built", @@ -90059,12 +90104,7 @@ }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03802", - "text": "For each element of pInfos, its scratchData.deviceAddress member must be a valid device address obtained from vkGetBufferDeviceAddress", - "page": "chapters/accelstructures.html" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03803", - "text": "For each element of pInfos, if scratchData.deviceAddress is the address of a non-sparse buffer then it must be bound completely and contiguously to a single VkDeviceMemory object", + "text": "For each element of pInfos, its scratchData.deviceAddress member must be a valid VkDeviceAddress", "page": "chapters/accelstructures.html" }, { @@ -90074,12 +90114,7 @@ }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03804", - "text": "For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_TRIANGLES_KHR, geometry.triangles.vertexData.deviceAddress must be a valid device address obtained from vkGetBufferDeviceAddress", - "page": "chapters/accelstructures.html" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03805", - "text": "For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_TRIANGLES_KHR, if geometry.triangles.vertexData.deviceAddress is the address of a non-sparse buffer then it must be bound completely and contiguously to a single VkDeviceMemory object", + "text": "For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_TRIANGLES_KHR, geometry.triangles.vertexData.deviceAddress must be a valid VkDeviceAddress", "page": "chapters/accelstructures.html" }, { @@ -90089,12 +90124,7 @@ }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03806", - "text": "For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_TRIANGLES_KHR, if geometry.triangles.indexType is not VK_INDEX_TYPE_NONE_KHR, geometry.triangles.indexData.deviceAddress must be a valid device address obtained from vkGetBufferDeviceAddress", - "page": "chapters/accelstructures.html" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03807", - "text": "For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_TRIANGLES_KHR, if geometry.triangles.indexType is not VK_INDEX_TYPE_NONE_KHR, if geometry.triangles.indexData.deviceAddress is the address of a non-sparse buffer then it must be bound completely and contiguously to a single VkDeviceMemory object", + "text": "For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_TRIANGLES_KHR, if geometry.triangles.indexType is not VK_INDEX_TYPE_NONE_KHR, geometry.triangles.indexData.deviceAddress must be a valid VkDeviceAddress", "page": "chapters/accelstructures.html" }, { @@ -90104,12 +90134,7 @@ }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03808", - "text": "For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_TRIANGLES_KHR, if geometry.triangles.transformData.deviceAddress is not 0, it must be a valid device address obtained from vkGetBufferDeviceAddress", - "page": "chapters/accelstructures.html" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03809", - "text": "For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_TRIANGLES_KHR, if geometry.triangles.transformData.deviceAddress is the address of a non-sparse buffer then it must be bound completely and contiguously to a single VkDeviceMemory object", + "text": "For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_TRIANGLES_KHR, if geometry.triangles.transformData.deviceAddress is not 0, it must be a valid VkDeviceAddress", "page": "chapters/accelstructures.html" }, { @@ -90119,12 +90144,7 @@ }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03811", - "text": "For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_AABBS_KHR, geometry.aabbs.data.deviceAddress must be a valid device address obtained from vkGetBufferDeviceAddress", - "page": "chapters/accelstructures.html" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03812", - "text": "For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_AABBS_KHR, if geometry.aabbs.data.deviceAddress is the address of a non-sparse buffer then it must be bound completely and contiguously to a single VkDeviceMemory object", + "text": "For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_AABBS_KHR, geometry.aabbs.data.deviceAddress must be a valid VkDeviceAddress", "page": "chapters/accelstructures.html" }, { @@ -90149,17 +90169,12 @@ }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03813", - "text": "For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_INSTANCES_KHR, geometry.instances.data.deviceAddress must be a valid device address obtained from vkGetBufferDeviceAddress", - "page": "chapters/accelstructures.html" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03814", - "text": "For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_INSTANCES_KHR, if geometry.instances.data.deviceAddress is the address of a non-sparse buffer then it must be bound completely and contiguously to a single VkDeviceMemory object", + "text": "For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_INSTANCES_KHR, geometry.instances.data.deviceAddress must be a valid VkDeviceAddress", "page": "chapters/accelstructures.html" }, { "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-06707", - "text": "For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_INSTANCES_KHR, each VkAccelerationStructureInstanceKHR::accelerationStructureReference value in geometry.instances.data.deviceAddress must be a valid device address containing a value obtained from vkGetAccelerationStructureDeviceAddressKHR or 0", + "text": "For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_INSTANCES_KHR, each VkAccelerationStructureInstanceKHR::accelerationStructureReference value in geometry.instances.data.deviceAddress must be 0 or a value obtained from vkGetAccelerationStructureDeviceAddressKHR for a valid acceleration structure", "page": "chapters/accelstructures.html" }, { @@ -90173,8 +90188,13 @@ "page": "chapters/accelstructures.html" }, { - "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pIndirectDeviceAddresses-03645", - "text": "For any element of pIndirectDeviceAddresses, if the buffer from which it was queried is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object", + "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-10904", + "text": "For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_TRIANGLES_KHR, if there is an instance of VkAccelerationStructureTrianglesOpacityMicromapEXT in the geometry.triangles.pNext chain, and its indexType is VK_INDEX_TYPE_NONE_KHR, then its indexBuffer.deviceAddress must be 0", + "page": "chapters/accelstructures.html" + }, + { + "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-10905", + "text": "For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_TRIANGLES_KHR, if there is an instance of VkAccelerationStructureTrianglesOpacityMicromapEXT in the geometry.triangles.pNext chain, and its indexType is not VK_INDEX_TYPE_NONE_KHR, then its indexBuffer.deviceAddress must be a valid VkDeviceAddress", "page": "chapters/accelstructures.html" }, { @@ -90301,6 +90321,11 @@ "text": "If type is VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR then geometryCount must be less than or equal to VkPhysicalDeviceAccelerationStructurePropertiesKHR::maxGeometryCount", "page": "chapters/accelstructures.html" }, + { + "vuid": "VUID-VkAccelerationStructureBuildGeometryInfoKHR-type-10884", + "text": "If type is VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR and the geometryType member of either pGeometries or ppGeometries is VK_GEOMETRY_TYPE_DENSE_GEOMETRY_FORMAT_TRIANGLES_AMDX, then geometryCount must be 1", + "page": "chapters/accelstructures.html" + }, { "vuid": "VUID-VkAccelerationStructureBuildGeometryInfoKHR-type-03794", "text": "If type is VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR and the geometryType member of either pGeometries or ppGeometries is VK_GEOMETRY_TYPE_AABBS_KHR, the total number of AABBs in all geometries must be less than or equal to VkPhysicalDeviceAccelerationStructurePropertiesKHR::maxPrimitiveCount", @@ -90382,7 +90407,7 @@ }, { "vuid": "VUID-VkAccelerationStructureGeometryKHR-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 VkAccelerationStructureGeometryLinearSweptSpheresDataNV or VkAccelerationStructureGeometrySpheresDataNV", + "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 VkAccelerationStructureDenseGeometryFormatTrianglesDataAMDX, VkAccelerationStructureGeometryLinearSweptSpheresDataNV, or VkAccelerationStructureGeometrySpheresDataNV", "page": "chapters/accelstructures.html" }, { @@ -90487,16 +90512,6 @@ "text": "indexType must be VK_INDEX_TYPE_UINT16, VK_INDEX_TYPE_UINT32, or VK_INDEX_TYPE_NONE_KHR", "page": "chapters/accelstructures.html" }, - { - "vuid": "VUID-VkAccelerationStructureTrianglesOpacityMicromapEXT-indexType-10720", - "text": "If indexType is VK_INDEX_TYPE_NONE_KHR, then indexBuffer must be NULL", - "page": "chapters/accelstructures.html" - }, - { - "vuid": "VUID-VkAccelerationStructureTrianglesOpacityMicromapEXT-indexType-10721", - "text": "If indexType is not VK_INDEX_TYPE_NONE_KHR, then indexBuffer must be a valid device address obtained from vkGetBufferDeviceAddress", - "page": "chapters/accelstructures.html" - }, { "vuid": "VUID-VkAccelerationStructureTrianglesOpacityMicromapEXT-indexType-10722", "text": "If indexType is not VK_INDEX_TYPE_NONE_KHR, then indexStride must be a multiple of the size in bytes of indexType", @@ -90588,6 +90603,130 @@ } ] }, + "vkCmdBuildAccelerationStructureNV": { + "core": [ + { + "vuid": "VUID-vkCmdBuildAccelerationStructureNV-geometryCount-02241", + "text": "geometryCount must be less than or equal to VkPhysicalDeviceRayTracingPropertiesNV::maxGeometryCount", + "page": "chapters/accelstructures.html" + }, + { + "vuid": "VUID-vkCmdBuildAccelerationStructureNV-dst-02488", + "text": "dst must have been created with compatible VkAccelerationStructureInfoNV where VkAccelerationStructureInfoNV::type and VkAccelerationStructureInfoNV::flags are identical, VkAccelerationStructureInfoNV::instanceCount and VkAccelerationStructureInfoNV::geometryCount for dst are greater than or equal to the build size and each geometry in VkAccelerationStructureInfoNV::pGeometries for dst has greater than or equal to the number of vertices, indices, and AABBs", + "page": "chapters/accelstructures.html" + }, + { + "vuid": "VUID-vkCmdBuildAccelerationStructureNV-update-02489", + "text": "If update is VK_TRUE, src must not be VK_NULL_HANDLE", + "page": "chapters/accelstructures.html" + }, + { + "vuid": "VUID-vkCmdBuildAccelerationStructureNV-update-02490", + "text": "If update is VK_TRUE, src must have previously been constructed with VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_NV set in VkAccelerationStructureInfoNV::flags in the original build", + "page": "chapters/accelstructures.html" + }, + { + "vuid": "VUID-vkCmdBuildAccelerationStructureNV-update-02491", + "text": "If update is VK_FALSE, the size member of the VkMemoryRequirements structure returned from a call to vkGetAccelerationStructureMemoryRequirementsNV with VkAccelerationStructureMemoryRequirementsInfoNV::accelerationStructure set to dst and VkAccelerationStructureMemoryRequirementsInfoNV::type set to VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_NV must be less than or equal to the size of scratch minus scratchOffset", + "page": "chapters/accelstructures.html" + }, + { + "vuid": "VUID-vkCmdBuildAccelerationStructureNV-update-02492", + "text": "If update is VK_TRUE, the size member of the VkMemoryRequirements structure returned from a call to vkGetAccelerationStructureMemoryRequirementsNV with VkAccelerationStructureMemoryRequirementsInfoNV::accelerationStructure set to dst and VkAccelerationStructureMemoryRequirementsInfoNV::type set to VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV must be less than or equal to the size of scratch minus scratchOffset", + "page": "chapters/accelstructures.html" + }, + { + "vuid": "VUID-vkCmdBuildAccelerationStructureNV-scratch-03522", + "text": "scratch must have been created with VK_BUFFER_USAGE_RAY_TRACING_BIT_NV usage flag", + "page": "chapters/accelstructures.html" + }, + { + "vuid": "VUID-vkCmdBuildAccelerationStructureNV-instanceData-03523", + "text": "If instanceData is not VK_NULL_HANDLE, instanceData must have been created with VK_BUFFER_USAGE_RAY_TRACING_BIT_NV usage flag", + "page": "chapters/accelstructures.html" + }, + { + "vuid": "VUID-vkCmdBuildAccelerationStructureNV-accelerationStructureReference-03786", + "text": "Each VkAccelerationStructureInstanceKHR::accelerationStructureReference value in instanceData must be a value obtained from vkGetAccelerationStructureHandleNV", + "page": "chapters/accelstructures.html" + }, + { + "vuid": "VUID-vkCmdBuildAccelerationStructureNV-update-03524", + "text": "If update is VK_TRUE, then objects that were previously active must not be made inactive as per Inactive Primitives and Instances", + "page": "chapters/accelstructures.html" + }, + { + "vuid": "VUID-vkCmdBuildAccelerationStructureNV-update-03525", + "text": "If update is VK_TRUE, then objects that were previously inactive must not be made active as per Inactive Primitives and Instances", + "page": "chapters/accelstructures.html" + }, + { + "vuid": "VUID-vkCmdBuildAccelerationStructureNV-update-03526", + "text": "If update is VK_TRUE, the src and dst objects must either be the same object or not have any memory aliasing", + "page": "chapters/accelstructures.html" + }, + { + "vuid": "VUID-vkCmdBuildAccelerationStructureNV-dst-07787", + "text": "dst must be bound completely and contiguously to a single VkDeviceMemory object via vkBindAccelerationStructureMemoryNV", + "page": "chapters/accelstructures.html" + }, + { + "vuid": "VUID-vkCmdBuildAccelerationStructureNV-commandBuffer-parameter", + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "chapters/accelstructures.html" + }, + { + "vuid": "VUID-vkCmdBuildAccelerationStructureNV-pInfo-parameter", + "text": "pInfo must be a valid pointer to a valid VkAccelerationStructureInfoNV structure", + "page": "chapters/accelstructures.html" + }, + { + "vuid": "VUID-vkCmdBuildAccelerationStructureNV-instanceData-parameter", + "text": "If instanceData is not VK_NULL_HANDLE, instanceData must be a valid VkBuffer handle", + "page": "chapters/accelstructures.html" + }, + { + "vuid": "VUID-vkCmdBuildAccelerationStructureNV-dst-parameter", + "text": "dst must be a valid VkAccelerationStructureNV handle", + "page": "chapters/accelstructures.html" + }, + { + "vuid": "VUID-vkCmdBuildAccelerationStructureNV-src-parameter", + "text": "If src is not VK_NULL_HANDLE, src must be a valid VkAccelerationStructureNV handle", + "page": "chapters/accelstructures.html" + }, + { + "vuid": "VUID-vkCmdBuildAccelerationStructureNV-scratch-parameter", + "text": "scratch must be a valid VkBuffer handle", + "page": "chapters/accelstructures.html" + }, + { + "vuid": "VUID-vkCmdBuildAccelerationStructureNV-commandBuffer-recording", + "text": "commandBuffer must be in the recording state", + "page": "chapters/accelstructures.html" + }, + { + "vuid": "VUID-vkCmdBuildAccelerationStructureNV-commandBuffer-cmdpool", + "text": "The VkCommandPool that commandBuffer was allocated from must support compute operations", + "page": "chapters/accelstructures.html" + }, + { + "vuid": "VUID-vkCmdBuildAccelerationStructureNV-renderpass", + "text": "This command must only be called outside of a render pass instance", + "page": "chapters/accelstructures.html" + }, + { + "vuid": "VUID-vkCmdBuildAccelerationStructureNV-videocoding", + "text": "This command must only be called outside of a video coding scope", + "page": "chapters/accelstructures.html" + }, + { + "vuid": "VUID-vkCmdBuildAccelerationStructureNV-commonparent", + "text": "Each of commandBuffer, dst, instanceData, scratch, and src that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice", + "page": "chapters/accelstructures.html" + } + ] + }, "VkTransformMatrixKHR": { "core": [ { @@ -90710,6 +90849,55 @@ } ] }, + "VkAccelerationStructureDenseGeometryFormatTrianglesDataAMDX": { + "core": [ + { + "vuid": "VUID-VkAccelerationStructureDenseGeometryFormatTrianglesDataAMDX-compressedData-10885", + "text": "The buffer from which compressedData.deviceAddress is queried must have been created with the VK_BUFFER_USAGE_2_COMPRESSED_DATA_DGF1_BIT_AMDX usage flag", + "page": "chapters/accelstructures.html" + }, + { + "vuid": "VUID-VkAccelerationStructureDenseGeometryFormatTrianglesDataAMDX-denseGeometryFormat-10886", + "text": "The VkPhysicalDeviceDenseGeometryFormatFeaturesAMDX::denseGeometryFormat feature must be enabled", + "page": "chapters/accelstructures.html" + }, + { + "vuid": "VUID-VkAccelerationStructureDenseGeometryFormatTrianglesDataAMDX-format-10887", + "text": "If format is VK_COMPRESSED_TRIANGLE_FORMAT_DGF1_AMDX, then compressedData.address must be aligned to 128 bytes", + "page": "chapters/accelstructures.html" + }, + { + "vuid": "VUID-VkAccelerationStructureDenseGeometryFormatTrianglesDataAMDX-format-10888", + "text": "If format is VK_COMPRESSED_TRIANGLE_FORMAT_DGF1_AMDX, then dataSize must be aligned to 128 bytes", + "page": "chapters/accelstructures.html" + }, + { + "vuid": "VUID-VkAccelerationStructureDenseGeometryFormatTrianglesDataAMDX-pNext-10890", + "text": "pNext must be NULL or a pointer to a valid VkAccelerationStructureTrianglesOpacityMicromapEXT structure", + "page": "chapters/accelstructures.html" + }, + { + "vuid": "VUID-VkAccelerationStructureDenseGeometryFormatTrianglesDataAMDX-pNext-10891", + "text": "If pNext is a pointer to a valid VkAccelerationStructureTrianglesOpacityMicromapEXT structure, the micromap feature must be enabled", + "page": "chapters/accelstructures.html" + }, + { + "vuid": "VUID-VkAccelerationStructureDenseGeometryFormatTrianglesDataAMDX-sType-sType", + "text": "sType must be VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DENSE_GEOMETRY_FORMAT_TRIANGLES_DATA_AMDX", + "page": "chapters/accelstructures.html" + }, + { + "vuid": "VUID-VkAccelerationStructureDenseGeometryFormatTrianglesDataAMDX-compressedData-parameter", + "text": "compressedData must be a valid VkDeviceOrHostAddressConstKHR union", + "page": "chapters/accelstructures.html" + }, + { + "vuid": "VUID-VkAccelerationStructureDenseGeometryFormatTrianglesDataAMDX-format-parameter", + "text": "format must be a valid VkCompressedTriangleFormatAMDX value", + "page": "chapters/accelstructures.html" + } + ] + }, "VkAccelerationStructureBuildRangeInfoKHR": { "core": [ { @@ -91115,90 +91303,6 @@ } ] }, - "vkCmdCopyAccelerationStructureNV": { - "core": [ - { - "vuid": "VUID-vkCmdCopyAccelerationStructureNV-mode-03410", - "text": "mode must be VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR or VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR", - "page": "chapters/accelstructures.html" - }, - { - "vuid": "VUID-vkCmdCopyAccelerationStructureNV-src-04963", - "text": "The source acceleration structure src must have been constructed prior to the execution of this command", - "page": "chapters/accelstructures.html" - }, - { - "vuid": "VUID-vkCmdCopyAccelerationStructureNV-src-03411", - "text": "If mode is VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR, src must have been constructed with VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR in the build", - "page": "chapters/accelstructures.html" - }, - { - "vuid": "VUID-vkCmdCopyAccelerationStructureNV-buffer-03718", - "text": "The buffer used to create src must be bound to device memory", - "page": "chapters/accelstructures.html" - }, - { - "vuid": "VUID-vkCmdCopyAccelerationStructureNV-buffer-03719", - "text": "The buffer used to create dst must be bound to device memory", - "page": "chapters/accelstructures.html" - }, - { - "vuid": "VUID-vkCmdCopyAccelerationStructureNV-dst-07791", - "text": "The range of memory backing dst that is accessed by this command must not overlap the memory backing src that is accessed by this command", - "page": "chapters/accelstructures.html" - }, - { - "vuid": "VUID-vkCmdCopyAccelerationStructureNV-dst-07792", - "text": "dst must be bound completely and contiguously to a single VkDeviceMemory object via vkBindAccelerationStructureMemoryNV", - "page": "chapters/accelstructures.html" - }, - { - "vuid": "VUID-vkCmdCopyAccelerationStructureNV-commandBuffer-parameter", - "text": "commandBuffer must be a valid VkCommandBuffer handle", - "page": "chapters/accelstructures.html" - }, - { - "vuid": "VUID-vkCmdCopyAccelerationStructureNV-dst-parameter", - "text": "dst must be a valid VkAccelerationStructureNV handle", - "page": "chapters/accelstructures.html" - }, - { - "vuid": "VUID-vkCmdCopyAccelerationStructureNV-src-parameter", - "text": "src must be a valid VkAccelerationStructureNV handle", - "page": "chapters/accelstructures.html" - }, - { - "vuid": "VUID-vkCmdCopyAccelerationStructureNV-mode-parameter", - "text": "mode must be a valid VkCopyAccelerationStructureModeKHR value", - "page": "chapters/accelstructures.html" - }, - { - "vuid": "VUID-vkCmdCopyAccelerationStructureNV-commandBuffer-recording", - "text": "commandBuffer must be in the recording state", - "page": "chapters/accelstructures.html" - }, - { - "vuid": "VUID-vkCmdCopyAccelerationStructureNV-commandBuffer-cmdpool", - "text": "The VkCommandPool that commandBuffer was allocated from must support compute operations", - "page": "chapters/accelstructures.html" - }, - { - "vuid": "VUID-vkCmdCopyAccelerationStructureNV-renderpass", - "text": "This command must only be called outside of a render pass instance", - "page": "chapters/accelstructures.html" - }, - { - "vuid": "VUID-vkCmdCopyAccelerationStructureNV-videocoding", - "text": "This command must only be called outside of a video coding scope", - "page": "chapters/accelstructures.html" - }, - { - "vuid": "VUID-vkCmdCopyAccelerationStructureNV-commonparent", - "text": "Each of commandBuffer, dst, and src must have been created, allocated, or retrieved from the same VkDevice", - "page": "chapters/accelstructures.html" - } - ] - }, "vkCmdCopyAccelerationStructureKHR": { "core": [ { @@ -91312,6 +91416,90 @@ } ] }, + "vkCmdCopyAccelerationStructureNV": { + "core": [ + { + "vuid": "VUID-vkCmdCopyAccelerationStructureNV-mode-03410", + "text": "mode must be VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR or VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR", + "page": "chapters/accelstructures.html" + }, + { + "vuid": "VUID-vkCmdCopyAccelerationStructureNV-src-04963", + "text": "The source acceleration structure src must have been constructed prior to the execution of this command", + "page": "chapters/accelstructures.html" + }, + { + "vuid": "VUID-vkCmdCopyAccelerationStructureNV-src-03411", + "text": "If mode is VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR, src must have been constructed with VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR in the build", + "page": "chapters/accelstructures.html" + }, + { + "vuid": "VUID-vkCmdCopyAccelerationStructureNV-buffer-03718", + "text": "The buffer used to create src must be bound to device memory", + "page": "chapters/accelstructures.html" + }, + { + "vuid": "VUID-vkCmdCopyAccelerationStructureNV-buffer-03719", + "text": "The buffer used to create dst must be bound to device memory", + "page": "chapters/accelstructures.html" + }, + { + "vuid": "VUID-vkCmdCopyAccelerationStructureNV-dst-07791", + "text": "The range of memory backing dst that is accessed by this command must not overlap the memory backing src that is accessed by this command", + "page": "chapters/accelstructures.html" + }, + { + "vuid": "VUID-vkCmdCopyAccelerationStructureNV-dst-07792", + "text": "dst must be bound completely and contiguously to a single VkDeviceMemory object via vkBindAccelerationStructureMemoryNV", + "page": "chapters/accelstructures.html" + }, + { + "vuid": "VUID-vkCmdCopyAccelerationStructureNV-commandBuffer-parameter", + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "chapters/accelstructures.html" + }, + { + "vuid": "VUID-vkCmdCopyAccelerationStructureNV-dst-parameter", + "text": "dst must be a valid VkAccelerationStructureNV handle", + "page": "chapters/accelstructures.html" + }, + { + "vuid": "VUID-vkCmdCopyAccelerationStructureNV-src-parameter", + "text": "src must be a valid VkAccelerationStructureNV handle", + "page": "chapters/accelstructures.html" + }, + { + "vuid": "VUID-vkCmdCopyAccelerationStructureNV-mode-parameter", + "text": "mode must be a valid VkCopyAccelerationStructureModeKHR value", + "page": "chapters/accelstructures.html" + }, + { + "vuid": "VUID-vkCmdCopyAccelerationStructureNV-commandBuffer-recording", + "text": "commandBuffer must be in the recording state", + "page": "chapters/accelstructures.html" + }, + { + "vuid": "VUID-vkCmdCopyAccelerationStructureNV-commandBuffer-cmdpool", + "text": "The VkCommandPool that commandBuffer was allocated from must support compute operations", + "page": "chapters/accelstructures.html" + }, + { + "vuid": "VUID-vkCmdCopyAccelerationStructureNV-renderpass", + "text": "This command must only be called outside of a render pass instance", + "page": "chapters/accelstructures.html" + }, + { + "vuid": "VUID-vkCmdCopyAccelerationStructureNV-videocoding", + "text": "This command must only be called outside of a video coding scope", + "page": "chapters/accelstructures.html" + }, + { + "vuid": "VUID-vkCmdCopyAccelerationStructureNV-commonparent", + "text": "Each of commandBuffer, dst, and src must have been created, allocated, or retrieved from the same VkDevice", + "page": "chapters/accelstructures.html" + } + ] + }, "vkCmdCopyAccelerationStructureToMemoryKHR": { "core": [ { @@ -91321,7 +91509,7 @@ }, { "vuid": "VUID-vkCmdCopyAccelerationStructureToMemoryKHR-pInfo-03739", - "text": "pInfo->dst.deviceAddress must be a valid device address for a buffer bound to device memory", + "text": "pInfo->dst.deviceAddress must be a valid VkDeviceAddress", "page": "chapters/accelstructures.html" }, { @@ -91329,11 +91517,6 @@ "text": "pInfo->dst.deviceAddress must be aligned to 256 bytes", "page": "chapters/accelstructures.html" }, - { - "vuid": "VUID-vkCmdCopyAccelerationStructureToMemoryKHR-pInfo-03741", - "text": "If the buffer pointed to by pInfo->dst.deviceAddress is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object", - "page": "chapters/accelstructures.html" - }, { "vuid": "VUID-vkCmdCopyAccelerationStructureToMemoryKHR-None-03559", "text": "The buffer used to create pInfo->src must be bound to device memory", @@ -91419,7 +91602,7 @@ }, { "vuid": "VUID-vkCmdCopyMemoryToAccelerationStructureKHR-pInfo-03742", - "text": "pInfo->src.deviceAddress must be a valid device address for a buffer bound to device memory", + "text": "pInfo->src.deviceAddress must be a valid VkDeviceAddress", "page": "chapters/accelstructures.html" }, { @@ -91427,11 +91610,6 @@ "text": "pInfo->src.deviceAddress must be aligned to 256 bytes", "page": "chapters/accelstructures.html" }, - { - "vuid": "VUID-vkCmdCopyMemoryToAccelerationStructureKHR-pInfo-03744", - "text": "If the buffer pointed to by pInfo->src.deviceAddress is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object", - "page": "chapters/accelstructures.html" - }, { "vuid": "VUID-vkCmdCopyMemoryToAccelerationStructureKHR-buffer-03745", "text": "The buffer used to create pInfo->dst must be bound to device memory", @@ -91788,36 +91966,6 @@ "text": "The buffers from which the buffer device addresses for pCommandInfos->dstImplicitData and pCommandInfos->dstAddressesArray are queried must have been created with the VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR usage flag", "page": "chapters/accelstructures.html" }, - { - "vuid": "VUID-vkCmdBuildClusterAccelerationStructureIndirectNV-pCommandInfos-10460", - "text": "If pCommandInfos->dstImplicitData is the address of a non-sparse buffer then it must be bound completely and contiguously to a single VkDeviceMemory object", - "page": "chapters/accelstructures.html" - }, - { - "vuid": "VUID-vkCmdBuildClusterAccelerationStructureIndirectNV-pCommandInfos-10461", - "text": "If pCommandInfos->scratchData is the address of a non-sparse buffer then it must be bound completely and contiguously to a single VkDeviceMemory object", - "page": "chapters/accelstructures.html" - }, - { - "vuid": "VUID-vkCmdBuildClusterAccelerationStructureIndirectNV-pCommandInfos-10462", - "text": "If pCommandInfos->srcInfosCount is the address of a non-sparse buffer then it must be bound completely and contiguously to a single VkDeviceMemory object", - "page": "chapters/accelstructures.html" - }, - { - "vuid": "VUID-vkCmdBuildClusterAccelerationStructureIndirectNV-pCommandInfos-10463", - "text": "If the addresses specified in pCommandInfos->dstAddressesArray are the address of a non-sparse buffer then they each must be bound completely and contiguously to a single VkDeviceMemory object", - "page": "chapters/accelstructures.html" - }, - { - "vuid": "VUID-vkCmdBuildClusterAccelerationStructureIndirectNV-pCommandInfos-10464", - "text": "If the addresses specified in pCommandInfos->dstSizesArray are the address of a non-sparse buffer then they each must be bound completely and contiguously to a single VkDeviceMemory object", - "page": "chapters/accelstructures.html" - }, - { - "vuid": "VUID-vkCmdBuildClusterAccelerationStructureIndirectNV-pCommandInfos-10465", - "text": "If the addresses specified in pCommandInfos->srcInfosArray are the address of a non-sparse buffer then they each must be bound completely and contiguously to a single VkDeviceMemory object", - "page": "chapters/accelstructures.html" - }, { "vuid": "VUID-vkCmdBuildClusterAccelerationStructureIndirectNV-commandBuffer-parameter", "text": "commandBuffer must be a valid VkCommandBuffer handle", @@ -91952,6 +92100,21 @@ "text": "input must be a valid VkClusterAccelerationStructureInputInfoNV structure", "page": "chapters/accelstructures.html" }, + { + "vuid": "VUID-VkClusterAccelerationStructureCommandsInfoNV-dstImplicitData-parameter", + "text": "dstImplicitData must be a valid VkDeviceAddress value", + "page": "chapters/accelstructures.html" + }, + { + "vuid": "VUID-VkClusterAccelerationStructureCommandsInfoNV-scratchData-parameter", + "text": "scratchData must be a valid VkDeviceAddress value", + "page": "chapters/accelstructures.html" + }, + { + "vuid": "VUID-VkClusterAccelerationStructureCommandsInfoNV-srcInfosCount-parameter", + "text": "srcInfosCount must be a valid VkDeviceAddress value", + "page": "chapters/accelstructures.html" + }, { "vuid": "VUID-VkClusterAccelerationStructureCommandsInfoNV-addressResolutionFlags-parameter", "text": "addressResolutionFlags must be a valid combination of VkClusterAccelerationStructureAddressResolutionFlagBitsNV values", @@ -91965,6 +92128,11 @@ "vuid": "VUID-VkClusterAccelerationStructureMoveObjectsInfoNV-srcAccelerationStructure-10483", "text": "srcAccelerationStructure must be a type of cluster acceleration structure", "page": "chapters/accelstructures.html" + }, + { + "vuid": "VUID-VkClusterAccelerationStructureMoveObjectsInfoNV-srcAccelerationStructure-parameter", + "text": "srcAccelerationStructure must be a valid VkDeviceAddress value", + "page": "chapters/accelstructures.html" } ] }, @@ -91984,6 +92152,11 @@ "vuid": "VUID-VkClusterAccelerationStructureBuildClustersBottomLevelInfoNV-clusterReferencesStride-10486", "text": "clusterReferencesStride must be greater than or equal to 8", "page": "chapters/accelstructures.html" + }, + { + "vuid": "VUID-VkClusterAccelerationStructureBuildClustersBottomLevelInfoNV-clusterReferences-parameter", + "text": "clusterReferences must be a valid VkDeviceAddress value", + "page": "chapters/accelstructures.html" } ] }, @@ -92052,6 +92225,31 @@ "vuid": "VUID-VkClusterAccelerationStructureBuildTriangleClusterInfoNV-clusterFlags-parameter", "text": "clusterFlags must be a valid combination of VkClusterAccelerationStructureClusterFlagBitsNV values", "page": "chapters/accelstructures.html" + }, + { + "vuid": "VUID-VkClusterAccelerationStructureBuildTriangleClusterInfoNV-indexBuffer-parameter", + "text": "indexBuffer must be a valid VkDeviceAddress value", + "page": "chapters/accelstructures.html" + }, + { + "vuid": "VUID-VkClusterAccelerationStructureBuildTriangleClusterInfoNV-vertexBuffer-parameter", + "text": "vertexBuffer must be a valid VkDeviceAddress value", + "page": "chapters/accelstructures.html" + }, + { + "vuid": "VUID-VkClusterAccelerationStructureBuildTriangleClusterInfoNV-geometryIndexAndFlagsBuffer-parameter", + "text": "geometryIndexAndFlagsBuffer must be a valid VkDeviceAddress value", + "page": "chapters/accelstructures.html" + }, + { + "vuid": "VUID-VkClusterAccelerationStructureBuildTriangleClusterInfoNV-opacityMicromapArray-parameter", + "text": "opacityMicromapArray must be a valid VkDeviceAddress value", + "page": "chapters/accelstructures.html" + }, + { + "vuid": "VUID-VkClusterAccelerationStructureBuildTriangleClusterInfoNV-opacityMicromapIndexBuffer-parameter", + "text": "opacityMicromapIndexBuffer must be a valid VkDeviceAddress value", + "page": "chapters/accelstructures.html" } ] }, @@ -92116,6 +92314,36 @@ "vuid": "VUID-VkClusterAccelerationStructureBuildTriangleClusterTemplateInfoNV-clusterFlags-parameter", "text": "clusterFlags must be a valid combination of VkClusterAccelerationStructureClusterFlagBitsNV values", "page": "chapters/accelstructures.html" + }, + { + "vuid": "VUID-VkClusterAccelerationStructureBuildTriangleClusterTemplateInfoNV-indexBuffer-parameter", + "text": "indexBuffer must be a valid VkDeviceAddress value", + "page": "chapters/accelstructures.html" + }, + { + "vuid": "VUID-VkClusterAccelerationStructureBuildTriangleClusterTemplateInfoNV-vertexBuffer-parameter", + "text": "vertexBuffer must be a valid VkDeviceAddress value", + "page": "chapters/accelstructures.html" + }, + { + "vuid": "VUID-VkClusterAccelerationStructureBuildTriangleClusterTemplateInfoNV-geometryIndexAndFlagsBuffer-parameter", + "text": "geometryIndexAndFlagsBuffer must be a valid VkDeviceAddress value", + "page": "chapters/accelstructures.html" + }, + { + "vuid": "VUID-VkClusterAccelerationStructureBuildTriangleClusterTemplateInfoNV-opacityMicromapArray-parameter", + "text": "opacityMicromapArray must be a valid VkDeviceAddress value", + "page": "chapters/accelstructures.html" + }, + { + "vuid": "VUID-VkClusterAccelerationStructureBuildTriangleClusterTemplateInfoNV-opacityMicromapIndexBuffer-parameter", + "text": "opacityMicromapIndexBuffer must be a valid VkDeviceAddress value", + "page": "chapters/accelstructures.html" + }, + { + "vuid": "VUID-VkClusterAccelerationStructureBuildTriangleClusterTemplateInfoNV-instantiationBoundingBoxLimit-parameter", + "text": "instantiationBoundingBoxLimit must be a valid VkDeviceAddress value", + "page": "chapters/accelstructures.html" } ] }, @@ -92140,6 +92368,11 @@ "vuid": "VUID-VkClusterAccelerationStructureInstantiateClusterInfoNV-geometryIndexOffset-10510", "text": "The maximum geometry index after using the value in geometryIndexOffset must be less than VkPhysicalDeviceClusterAccelerationStructurePropertiesNV::maxClusterGeometryIndex", "page": "chapters/accelstructures.html" + }, + { + "vuid": "VUID-VkClusterAccelerationStructureInstantiateClusterInfoNV-clusterTemplateAddress-parameter", + "text": "clusterTemplateAddress must be a valid VkDeviceAddress value", + "page": "chapters/accelstructures.html" } ] }, @@ -92149,6 +92382,20 @@ "vuid": "VUID-VkClusterAccelerationStructureGetTemplateIndicesInfoNV-clusterTemplateAddress-10833", "text": "clusterTemplateAddress must be a template cluster acceleration structure", "page": "chapters/accelstructures.html" + }, + { + "vuid": "VUID-VkClusterAccelerationStructureGetTemplateIndicesInfoNV-clusterTemplateAddress-parameter", + "text": "clusterTemplateAddress must be a valid VkDeviceAddress value", + "page": "chapters/accelstructures.html" + } + ] + }, + "VkStridedDeviceAddressNV": { + "core": [ + { + "vuid": "VUID-VkStridedDeviceAddressNV-startAddress-parameter", + "text": "startAddress must be a valid VkDeviceAddress value", + "page": "chapters/accelstructures.html" } ] }, @@ -92301,31 +92548,6 @@ "text": "The buffers from which the buffer device addresses for pBuildInfo->srcAccelerationStructureData and pBuildInfo->dstAccelerationStructureData are queried must have been created with the VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR usage flag", "page": "chapters/accelstructures.html" }, - { - "vuid": "VUID-vkCmdBuildPartitionedAccelerationStructuresNV-pBuildInfo-10553", - "text": "If pBuildInfo->srcAccelerationStructureData is the address of a non-sparse buffer then it must be bound completely and contiguously to a single VkDeviceMemory object", - "page": "chapters/accelstructures.html" - }, - { - "vuid": "VUID-vkCmdBuildPartitionedAccelerationStructuresNV-pBuildInfo-10554", - "text": "If pBuildInfo->dstAccelerationStructureData is the address of a non-sparse buffer then it must be bound completely and contiguously to a single VkDeviceMemory object", - "page": "chapters/accelstructures.html" - }, - { - "vuid": "VUID-vkCmdBuildPartitionedAccelerationStructuresNV-pBuildInfo-10555", - "text": "If pBuildInfo->scratchData is the address of a non-sparse buffer then it must be bound completely and contiguously to a single VkDeviceMemory object", - "page": "chapters/accelstructures.html" - }, - { - "vuid": "VUID-vkCmdBuildPartitionedAccelerationStructuresNV-pBuildInfo-10556", - "text": "If pBuildInfo->srcInfos is the address of a non-sparse buffer then it must be bound completely and contiguously to a single VkDeviceMemory object", - "page": "chapters/accelstructures.html" - }, - { - "vuid": "VUID-vkCmdBuildPartitionedAccelerationStructuresNV-pBuildInfo-10557", - "text": "If pBuildInfo->srcInfosCount is the address of a non-sparse buffer then it must be bound completely and contiguously to a single VkDeviceMemory object", - "page": "chapters/accelstructures.html" - }, { "vuid": "VUID-vkCmdBuildPartitionedAccelerationStructuresNV-commandBuffer-parameter", "text": "commandBuffer must be a valid VkCommandBuffer handle", @@ -92409,6 +92631,31 @@ "vuid": "VUID-VkBuildPartitionedAccelerationStructureInfoNV-input-parameter", "text": "input must be a valid VkPartitionedAccelerationStructureInstancesInputNV structure", "page": "chapters/accelstructures.html" + }, + { + "vuid": "VUID-VkBuildPartitionedAccelerationStructureInfoNV-srcAccelerationStructureData-parameter", + "text": "srcAccelerationStructureData must be a valid VkDeviceAddress value", + "page": "chapters/accelstructures.html" + }, + { + "vuid": "VUID-VkBuildPartitionedAccelerationStructureInfoNV-dstAccelerationStructureData-parameter", + "text": "dstAccelerationStructureData must be a valid VkDeviceAddress value", + "page": "chapters/accelstructures.html" + }, + { + "vuid": "VUID-VkBuildPartitionedAccelerationStructureInfoNV-scratchData-parameter", + "text": "scratchData must be a valid VkDeviceAddress value", + "page": "chapters/accelstructures.html" + }, + { + "vuid": "VUID-VkBuildPartitionedAccelerationStructureInfoNV-srcInfos-parameter", + "text": "srcInfos must be a valid VkDeviceAddress value", + "page": "chapters/accelstructures.html" + }, + { + "vuid": "VUID-VkBuildPartitionedAccelerationStructureInfoNV-srcInfosCount-parameter", + "text": "srcInfosCount must be a valid VkDeviceAddress value", + "page": "chapters/accelstructures.html" } ] }, @@ -92457,6 +92704,11 @@ "vuid": "VUID-VkPartitionedAccelerationStructureWriteInstanceDataNV-instanceFlags-parameter", "text": "instanceFlags must be a valid combination of VkPartitionedAccelerationStructureInstanceFlagBitsNV values", "page": "chapters/accelstructures.html" + }, + { + "vuid": "VUID-VkPartitionedAccelerationStructureWriteInstanceDataNV-accelerationStructure-parameter", + "text": "accelerationStructure must be a valid VkDeviceAddress value", + "page": "chapters/accelstructures.html" } ] }, @@ -92476,6 +92728,11 @@ "vuid": "VUID-VkPartitionedAccelerationStructureUpdateInstanceDataNV-instanceIndex-10573", "text": "instanceIndex must be less than VkBuildPartitionedAccelerationStructureInfoNV::input::instanceCount", "page": "chapters/accelstructures.html" + }, + { + "vuid": "VUID-VkPartitionedAccelerationStructureUpdateInstanceDataNV-accelerationStructure-parameter", + "text": "accelerationStructure must be a valid VkDeviceAddress value", + "page": "chapters/accelstructures.html" } ] }, @@ -92645,6 +92902,36 @@ "text": "For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for each VkAccelerationStructureGeometryKHR structure referred to by its pGeometries or ppGeometries members, if geometryType is VK_GEOMETRY_TYPE_TRIANGLES_KHR, if its geometry.triangles.transformData address was not NULL when srcAccelerationStructure was last built, then it must not be NULL", "page": "chapters/accelstructures.html" }, + { + "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-10898", + "text": "For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for each VkAccelerationStructureGeometryKHR structure referred to by its pGeometries or ppGeometries members, if geometryType is VK_GEOMETRY_TYPE_DENSE_GEOMETRY_FORMAT_TRIANGLES_AMDX, the numTriangles member of the VkAccelerationStructureDenseGeometryFormatTrianglesDataAMDX structure in the pNext chain must have the same value which was specified when srcAccelerationStructure was last built", + "page": "chapters/accelstructures.html" + }, + { + "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-10899", + "text": "For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for each VkAccelerationStructureGeometryKHR structure referred to by its pGeometries or ppGeometries members, if geometryType is VK_GEOMETRY_TYPE_DENSE_GEOMETRY_FORMAT_TRIANGLES_AMDX, the numVertices member of the VkAccelerationStructureDenseGeometryFormatTrianglesDataAMDX structure in the pNext chain must have the same value which was specified when srcAccelerationStructure was last built", + "page": "chapters/accelstructures.html" + }, + { + "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-10900", + "text": "For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for each VkAccelerationStructureGeometryKHR structure referred to by its pGeometries or ppGeometries members, if geometryType is VK_GEOMETRY_TYPE_DENSE_GEOMETRY_FORMAT_TRIANGLES_AMDX, the maxPrimitiveIndex member of the VkAccelerationStructureDenseGeometryFormatTrianglesDataAMDX structure in the pNext chain must have the same value which was specified when srcAccelerationStructure was last built", + "page": "chapters/accelstructures.html" + }, + { + "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-10901", + "text": "For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for each VkAccelerationStructureGeometryKHR structure referred to by its pGeometries or ppGeometries members, if geometryType is VK_GEOMETRY_TYPE_DENSE_GEOMETRY_FORMAT_TRIANGLES_AMDX, the maxGeometryIndex member of the VkAccelerationStructureDenseGeometryFormatTrianglesDataAMDX structure in the pNext chain must have the same value which was specified when srcAccelerationStructure was last built", + "page": "chapters/accelstructures.html" + }, + { + "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-10902", + "text": "For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for each VkAccelerationStructureGeometryKHR structure referred to by its pGeometries or ppGeometries members, if geometryType is VK_GEOMETRY_TYPE_DENSE_GEOMETRY_FORMAT_TRIANGLES_AMDX, the format member of the VkAccelerationStructureDenseGeometryFormatTrianglesDataAMDX structure in the pNext chain must have the same value which was specified when srcAccelerationStructure was last built", + "page": "chapters/accelstructures.html" + }, + { + "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-10903", + "text": "For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for each VkAccelerationStructureGeometryKHR structure referred to by its pGeometries or ppGeometries members, if geometryType is VK_GEOMETRY_TYPE_DENSE_GEOMETRY_FORMAT_TRIANGLES_AMDX, the dataSize member of the VkAccelerationStructureDenseGeometryFormatTrianglesDataAMDX structure in the pNext chain must have the same value which was specified when srcAccelerationStructure was last built", + "page": "chapters/accelstructures.html" + }, { "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-03768", "text": "For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for each VkAccelerationStructureGeometryKHR structure referred to by its pGeometries or ppGeometries members, if geometryType is VK_GEOMETRY_TYPE_TRIANGLES_KHR, and geometry.triangles.indexType is not VK_INDEX_TYPE_NONE_KHR, then the value of each index referenced must be the same as the corresponding index value when srcAccelerationStructure was last built", @@ -92667,7 +92954,12 @@ }, { "vuid": "VUID-vkBuildAccelerationStructuresKHR-ppBuildRangeInfos-03676", - "text": "Each element of ppBuildRangeInfos[i] must be a valid pointer to an array of pInfos[i].geometryCount VkAccelerationStructureBuildRangeInfoKHR structures", + "text": "Each element of ppBuildRangeInfos[i] must be a valid pointer to an array of pInfos[i].geometryCount VkAccelerationStructureBuildRangeInfoKHR structures , or NULL", + "page": "chapters/accelstructures.html" + }, + { + "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-10906", + "text": "For each element of pInfos[i] whose pGeometries or ppGeometries members have a geometryType of VK_GEOMETRY_TYPE_DENSE_GEOMETRY_FORMAT_TRIANGLES_AMDX, ppBuildRangeInfos[i] must be NULL", "page": "chapters/accelstructures.html" }, { @@ -92750,6 +93042,16 @@ "text": "For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_INSTANCES_KHR with VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV set, each accelerationStructureReference in any structure in VkAccelerationStructureMotionInstanceNV value in geometry.instances.data.hostAddress must be a valid VkAccelerationStructureKHR object", "page": "chapters/accelstructures.html" }, + { + "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-10892", + "text": "For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_TRIANGLES_KHR, if there is an instance of VkAccelerationStructureTrianglesOpacityMicromapEXT in the geometry.triangles.pNext chain, and its indexType is VK_INDEX_TYPE_NONE_KHR, then its indexBuffer.hostAddress must be 0", + "page": "chapters/accelstructures.html" + }, + { + "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-10893", + "text": "For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries, geometryType must not be VK_GEOMETRY_TYPE_DENSE_GEOMETRY_FORMAT_TRIANGLES_AMDX", + "page": "chapters/accelstructures.html" + }, { "vuid": "VUID-vkBuildAccelerationStructuresKHR-device-parameter", "text": "device must be a valid VkDevice handle", @@ -93117,12 +93419,17 @@ }, { "vuid": "VUID-vkCmdBuildMicromapsEXT-pInfos-07512", - "text": "For each element of pInfos, its scratchData.deviceAddress, data.deviceAddress, and triangleArray.deviceAddress members must be valid device addresses obtained from vkGetBufferDeviceAddress", + "text": "For each element of pInfos, scratchData.deviceAddress must be a valid VkDeviceAddress", "page": "chapters/VK_EXT_opacity_micromap/micromaps.html" }, { - "vuid": "VUID-vkCmdBuildMicromapsEXT-pInfos-07513", - "text": "For each element of pInfos, if scratchData.deviceAddress, data.deviceAddress, or triangleArray.deviceAddress is the address of a non-sparse buffer then it must be bound completely and contiguously to a single VkDeviceMemory object", + "vuid": "VUID-vkCmdBuildMicromapsEXT-pInfos-10896", + "text": "For each element of pInfos, data.deviceAddress must be a valid VkDeviceAddress", + "page": "chapters/VK_EXT_opacity_micromap/micromaps.html" + }, + { + "vuid": "VUID-vkCmdBuildMicromapsEXT-pInfos-10897", + "text": "For each element of pInfos, triangleArray.deviceAddress must be a valid VkDeviceAddress", "page": "chapters/VK_EXT_opacity_micromap/micromaps.html" }, { @@ -93485,7 +93792,7 @@ "core": [ { "vuid": "VUID-vkCmdCopyMicromapToMemoryEXT-pInfo-07536", - "text": "pInfo->dst.deviceAddress must be a valid device address for a buffer bound to device memory", + "text": "pInfo->dst.deviceAddress must be a valid VkDeviceAddress", "page": "chapters/VK_EXT_opacity_micromap/micromaps.html" }, { @@ -93578,7 +93885,7 @@ "core": [ { "vuid": "VUID-vkCmdCopyMemoryToMicromapEXT-pInfo-07543", - "text": "pInfo->src.deviceAddress must be a valid device address for a buffer bound to device memory", + "text": "pInfo->src.deviceAddress must be a valid VkDeviceAddress", "page": "chapters/VK_EXT_opacity_micromap/micromaps.html" }, { @@ -94055,545 +94362,6 @@ } ] }, - "vkCmdTraceRaysNV": { - "core": [ - { - "vuid": "VUID-vkCmdTraceRaysNV-magFilter-04553", - "text": "If a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR, reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE, and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", - "page": "chapters/raytracing.html" - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-magFilter-09598", - "text": "If a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and reductionMode equal to either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT", - "page": "chapters/raytracing.html" - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-mipmapMode-04770", - "text": "If a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR, reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE, and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", - "page": "chapters/raytracing.html" - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-mipmapMode-09599", - "text": "If a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and reductionMode equal to either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT", - "page": "chapters/raytracing.html" - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-unnormalizedCoordinates-09635", - "text": "If a VkSampler created with unnormalizedCoordinates equal to VK_TRUE is used to sample a VkImageView as a result of this command, then the image view’s levelCount and layerCount must be 1", - "page": "chapters/raytracing.html" - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-None-08609", - "text": "If a VkSampler created with unnormalizedCoordinates equal to VK_TRUE is used to sample a VkImageView as a result of this command, then the image view’s viewType must be VK_IMAGE_VIEW_TYPE_1D or VK_IMAGE_VIEW_TYPE_2D", - "page": "chapters/raytracing.html" - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-None-08610", - "text": "If a VkSampler created with unnormalizedCoordinates equal to VK_TRUE is used to sample a VkImageView as a result of this command, then the sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name", - "page": "chapters/raytracing.html" - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-None-08611", - "text": "If a VkSampler created with unnormalizedCoordinates equal to VK_TRUE is used to sample a VkImageView as a result of this command, then the sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values", - "page": "chapters/raytracing.html" - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-None-06479", - "text": "If a VkImageView is sampled with depth comparison, the image view’s format features must contain VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT", - "page": "chapters/raytracing.html" - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-None-02691", - "text": "If a VkImageView is accessed using atomic operations as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT", - "page": "chapters/raytracing.html" - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-None-07888", - "text": "If a VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer’s format features must contain VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT", - "page": "chapters/raytracing.html" - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-None-02692", - "text": "If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT", - "page": "chapters/raytracing.html" - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-None-02693", - "text": "If the VK_EXT_filter_cubic extension is not enabled and any VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, it must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY", - "page": "chapters/raytracing.html" - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-filterCubic-02694", - "text": "Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have a VkImageViewType and format that supports cubic filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubic returned by vkGetPhysicalDeviceImageFormatProperties2", - "page": "chapters/raytracing.html" - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-filterCubicMinmax-02695", - "text": "Any VkImageView being sampled with VK_FILTER_CUBIC_EXT with a reduction mode of either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX as a result of this command must have a VkImageViewType and format that supports cubic filtering together with minmax filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubicMinmax returned by vkGetPhysicalDeviceImageFormatProperties2", - "page": "chapters/raytracing.html" - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-cubicRangeClamp-09212", - "text": "If the cubicRangeClamp feature is not enabled, then any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must not have a VkSamplerReductionModeCreateInfo::reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM", - "page": "chapters/raytracing.html" - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-reductionMode-09213", - "text": "Any VkImageView being sampled with a VkSamplerReductionModeCreateInfo::reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM as a result of this command must sample with VK_FILTER_CUBIC_EXT", - "page": "chapters/raytracing.html" - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-selectableCubicWeights-09214", - "text": "If the selectableCubicWeights feature is not enabled, then any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have VkSamplerCubicWeightsCreateInfoQCOM::cubicWeights equal to VK_CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM", - "page": "chapters/raytracing.html" - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-flags-02696", - "text": "Any VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE", - "page": "chapters/raytracing.html" - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-OpTypeImage-07027", - "text": "For any VkImageView being written as a storage image where the image format field of the OpTypeImage is Unknown, the view’s format features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT", - "page": "chapters/raytracing.html" - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-OpTypeImage-07028", - "text": "For any VkImageView being read as a storage image where the image format field of the OpTypeImage is Unknown, the view’s format features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT", - "page": "chapters/raytracing.html" - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-OpTypeImage-07029", - "text": "For any VkBufferView being written as a storage texel buffer where the image format field of the OpTypeImage is Unknown, the view’s buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT", - "page": "chapters/raytracing.html" - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-OpTypeImage-07030", - "text": "Any VkBufferView being read as a storage texel buffer where the image format field of the OpTypeImage is Unknown then the view’s buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT", - "page": "chapters/raytracing.html" - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-None-08600", - "text": "For each set n that is statically used by a bound shader, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout used to create the current VkPipeline or the VkDescriptorSetLayout array used to create the current VkShaderEXT , as described in Pipeline Layout Compatibility", - "page": "chapters/raytracing.html" - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-None-08601", - "text": "For each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline or the VkDescriptorSetLayout array used to create the current VkShaderEXT , as described in Pipeline Layout Compatibility", - "page": "chapters/raytracing.html" - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-None-10068", - "text": "For each array of resources that is used by a bound shader, the indices used to access members of the array must be less than the descriptor count for the identified binding in the descriptor sets used by this command", - "page": "chapters/raytracing.html" - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-maintenance4-08602", - "text": "If the maintenance4 feature is not enabled, then for each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline or the VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkShaderEXT , as described in Pipeline Layout Compatibility", - "page": "chapters/raytracing.html" - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-None-08114", - "text": "Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid as described by descriptor validity if they are statically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was not created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", - "page": "chapters/raytracing.html" - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-None-08115", - "text": "If the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdBindDescriptorSets, the bound VkPipeline must have been created without VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", - "page": "chapters/raytracing.html" - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-None-08116", - "text": "Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", - "page": "chapters/raytracing.html" - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-None-08604", - "text": "Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command", - "page": "chapters/raytracing.html" - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-None-08117", - "text": "If the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdSetDescriptorBufferOffsetsEXT, the bound VkPipeline must have been created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", - "page": "chapters/raytracing.html" - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-None-08119", - "text": "If a descriptor is dynamically used with a VkPipeline created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident", - "page": "chapters/raytracing.html" - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-None-08605", - "text": "If a descriptor is dynamically used with a VkShaderEXT created with a VkDescriptorSetLayout that was created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident", - "page": "chapters/raytracing.html" - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-None-08606", - "text": "If the shaderObject feature is not enabled, a valid pipeline must be bound to the pipeline bind point used by this command", - "page": "chapters/raytracing.html" - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-None-08608", - "text": "If a pipeline is bound to the pipeline bind point used by this command, there must not have been any calls to dynamic state setting commands for any state specified statically in the VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound", - "page": "chapters/raytracing.html" - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-uniformBuffers-06935", - "text": "If any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2 for uniformBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", - "page": "chapters/raytracing.html" - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-None-08612", - "text": "If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", - "page": "chapters/raytracing.html" - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-storageBuffers-06936", - "text": "If any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2 for storageBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", - "page": "chapters/raytracing.html" - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-None-08613", - "text": "If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", - "page": "chapters/raytracing.html" - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-commandBuffer-02707", - "text": "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by bound shaders must not be a protected resource", - "page": "chapters/raytracing.html" - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-viewType-07752", - "text": "If a VkImageView is accessed as a result of this command, then the image view’s viewType must match the Dim operand of the OpTypeImage as described in Compatibility Between SPIR-V Image Dimensions and Vulkan ImageView Types", - "page": "chapters/raytracing.html" - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-format-07753", - "text": "If a VkImageView or VkBufferView is accessed as a result of this command, then the numeric type of the view’s format and the Sampled Type operand of the OpTypeImage must match", - "page": "chapters/raytracing.html" - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-OpImageWrite-08795", - "text": "If a VkImageView created with a format other than VK_FORMAT_A8_UNORM is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view’s format", - "page": "chapters/raytracing.html" - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-OpImageWrite-08796", - "text": "If a VkImageView created with the format VK_FORMAT_A8_UNORM is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have four components", - "page": "chapters/raytracing.html" - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-OpImageWrite-04469", - "text": "If a VkBufferView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the buffer view’s format", - "page": "chapters/raytracing.html" - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-SampledType-04470", - "text": "If a VkImageView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64", - "page": "chapters/raytracing.html" - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-SampledType-04471", - "text": "If a VkImageView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32", - "page": "chapters/raytracing.html" - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-SampledType-04472", - "text": "If a VkBufferView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64", - "page": "chapters/raytracing.html" - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-SampledType-04473", - "text": "If a VkBufferView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32", - "page": "chapters/raytracing.html" - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-sparseImageInt64Atomics-04474", - "text": "If the sparseImageInt64Atomics feature is not enabled, VkImage objects created with the VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command", - "page": "chapters/raytracing.html" - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-sparseImageInt64Atomics-04475", - "text": "If the sparseImageInt64Atomics feature is not enabled, VkBuffer objects created with the VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command", - "page": "chapters/raytracing.html" - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-OpImageWeightedSampleQCOM-06971", - "text": "If OpImageWeightedSampleQCOM is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM", - "page": "chapters/raytracing.html" - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-OpImageWeightedSampleQCOM-06972", - "text": "If OpImageWeightedSampleQCOM uses a VkImageView as a sample weight image as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM", - "page": "chapters/raytracing.html" - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-OpImageBoxFilterQCOM-06973", - "text": "If OpImageBoxFilterQCOM is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM", - "page": "chapters/raytracing.html" - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-OpImageBlockMatchSSDQCOM-06974", - "text": "If OpImageBlockMatchSSDQCOM is used to read from an VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", - "page": "chapters/raytracing.html" - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-OpImageBlockMatchSADQCOM-06975", - "text": "If OpImageBlockMatchSADQCOM is used to read from an VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", - "page": "chapters/raytracing.html" - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-OpImageBlockMatchSADQCOM-06976", - "text": "If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation", - "page": "chapters/raytracing.html" - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-OpImageWeightedSampleQCOM-06977", - "text": "If OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM", - "page": "chapters/raytracing.html" - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-OpImageWeightedSampleQCOM-06978", - "text": "If any command other than OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must not have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM", - "page": "chapters/raytracing.html" - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-OpImageBlockMatchWindow-09215", - "text": "If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM instruction is used to read from an VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", - "page": "chapters/raytracing.html" - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-OpImageBlockMatchWindow-09216", - "text": "If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM instruction is used to read from an VkImageView as a result of this command, then the image view’s format must be a single-component format", - "page": "chapters/raytracing.html" - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-OpImageBlockMatchWindow-09217", - "text": "If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation", - "page": "chapters/raytracing.html" - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-None-07288", - "text": "Any shader invocation executed by this command must terminate", - "page": "chapters/raytracing.html" - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-None-09600", - "text": "If a descriptor with type equal to any of VK_DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM, VK_DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM, VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, or VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT is accessed as a result of this command, all image subresources identified by that descriptor must be in the image layout identified when the descriptor was written", - "page": "chapters/raytracing.html" - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-commandBuffer-10746", - "text": "The VkDeviceMemory object allocated from a VkMemoryHeap with the VK_MEMORY_HEAP_TILE_MEMORY_BIT_QCOM property that is bound to a resource accessed as a result of this command must be the active bound bound tile memory object in commandBuffer", - "page": "chapters/raytracing.html" - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-None-10678", - "text": "If this command is recorded inside a tile shading render pass instance, the stages corresponding to the pipeline bind point used by this command must only include VK_SHADER_STAGE_VERTEX_BIT, VK_SHADER_STAGE_FRAGMENT_BIT, and/or VK_SHADER_STAGE_COMPUTE_BIT", - "page": "chapters/raytracing.html" - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-None-10679", - "text": "If this command is recorded where per-tile execution model is enabled, there must be no access to any image while the image was be transitioned to the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT layout", - "page": "chapters/raytracing.html" - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-pDescription-09900", - "text": "If a VK_DESCRIPTOR_TYPE_TENSOR_ARM descriptor is accessed as a result of this command, then the underlying VkTensorARM object must have been created with a VkTensorCreateInfoARM::pDescription whose usage member contained VK_TENSOR_USAGE_SHADER_BIT_ARM", - "page": "chapters/raytracing.html" - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-dimensionCount-09905", - "text": "If a VK_DESCRIPTOR_TYPE_TENSOR_ARM descriptor is accessed as a result of this command, then the Rank of the OpTypeTensorARM of the tensor resource variable must be equal to the dimensionCount provided via VkTensorCreateInfoARM::pDescription when creating the underlying VkTensorARM object", - "page": "chapters/raytracing.html" - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-OpTypeTensorARM-09906", - "text": "If a VK_DESCRIPTOR_TYPE_TENSOR_ARM descriptor is accessed as a result of this command, then the element type of the OpTypeTensorARM of the tensor resource variable must be compatible with the VkFormat of the VkTensorViewARM used for the access", - "page": "chapters/raytracing.html" - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-None-03429", - "text": "Any shader group handle referenced by this call must have been queried from the bound ray tracing pipeline", - "page": "chapters/raytracing.html" - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-None-09458", - "text": "If the bound ray tracing pipeline state was created with the VK_DYNAMIC_STATE_RAY_TRACING_PIPELINE_STACK_SIZE_KHR dynamic state enabled then vkCmdSetRayTracingPipelineStackSizeKHR must have been called in the current command buffer prior to this trace command", - "page": "chapters/raytracing.html" - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-commandBuffer-04624", - "text": "commandBuffer must not be a protected command buffer", - "page": "chapters/raytracing.html" - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-maxRecursionDepth-03625", - "text": "This command must not cause a pipeline trace ray instruction to be executed from a shader invocation with a recursion depth greater than the value of maxRecursionDepth used to create the bound ray tracing pipeline", - "page": "chapters/raytracing.html" - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-raygenShaderBindingTableBuffer-04042", - "text": "If raygenShaderBindingTableBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object", - "page": "chapters/raytracing.html" - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-raygenShaderBindingOffset-02455", - "text": "raygenShaderBindingOffset must be less than the size of raygenShaderBindingTableBuffer", - "page": "chapters/raytracing.html" - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-raygenShaderBindingOffset-02456", - "text": "raygenShaderBindingOffset must be a multiple of VkPhysicalDeviceRayTracingPropertiesNV::shaderGroupBaseAlignment", - "page": "chapters/raytracing.html" - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-missShaderBindingTableBuffer-04043", - "text": "If missShaderBindingTableBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object", - "page": "chapters/raytracing.html" - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-missShaderBindingOffset-02457", - "text": "missShaderBindingOffset must be less than the size of missShaderBindingTableBuffer", - "page": "chapters/raytracing.html" - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-missShaderBindingOffset-02458", - "text": "missShaderBindingOffset must be a multiple of VkPhysicalDeviceRayTracingPropertiesNV::shaderGroupBaseAlignment", - "page": "chapters/raytracing.html" - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-hitShaderBindingTableBuffer-04044", - "text": "If hitShaderBindingTableBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object", - "page": "chapters/raytracing.html" - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-hitShaderBindingOffset-02459", - "text": "hitShaderBindingOffset must be less than the size of hitShaderBindingTableBuffer", - "page": "chapters/raytracing.html" - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-hitShaderBindingOffset-02460", - "text": "hitShaderBindingOffset must be a multiple of VkPhysicalDeviceRayTracingPropertiesNV::shaderGroupBaseAlignment", - "page": "chapters/raytracing.html" - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-callableShaderBindingTableBuffer-04045", - "text": "If callableShaderBindingTableBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object", - "page": "chapters/raytracing.html" - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-callableShaderBindingOffset-02461", - "text": "callableShaderBindingOffset must be less than the size of callableShaderBindingTableBuffer", - "page": "chapters/raytracing.html" - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-callableShaderBindingOffset-02462", - "text": "callableShaderBindingOffset must be a multiple of VkPhysicalDeviceRayTracingPropertiesNV::shaderGroupBaseAlignment", - "page": "chapters/raytracing.html" - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-missShaderBindingStride-02463", - "text": "missShaderBindingStride must be a multiple of VkPhysicalDeviceRayTracingPropertiesNV::shaderGroupHandleSize", - "page": "chapters/raytracing.html" - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-hitShaderBindingStride-02464", - "text": "hitShaderBindingStride must be a multiple of VkPhysicalDeviceRayTracingPropertiesNV::shaderGroupHandleSize", - "page": "chapters/raytracing.html" - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-callableShaderBindingStride-02465", - "text": "callableShaderBindingStride must be a multiple of VkPhysicalDeviceRayTracingPropertiesNV::shaderGroupHandleSize", - "page": "chapters/raytracing.html" - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-missShaderBindingStride-02466", - "text": "missShaderBindingStride must be less than or equal to VkPhysicalDeviceRayTracingPropertiesNV::maxShaderGroupStride", - "page": "chapters/raytracing.html" - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-hitShaderBindingStride-02467", - "text": "hitShaderBindingStride must be less than or equal to VkPhysicalDeviceRayTracingPropertiesNV::maxShaderGroupStride", - "page": "chapters/raytracing.html" - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-callableShaderBindingStride-02468", - "text": "callableShaderBindingStride must be less than or equal to VkPhysicalDeviceRayTracingPropertiesNV::maxShaderGroupStride", - "page": "chapters/raytracing.html" - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-width-02469", - "text": "width must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[0]", - "page": "chapters/raytracing.html" - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-height-02470", - "text": "height must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[1]", - "page": "chapters/raytracing.html" - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-depth-02471", - "text": "depth must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[2]", - "page": "chapters/raytracing.html" - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-allowClusterAccelerationStructure-10577", - "text": "If the traced geometry contains a cluster acceleration structure, then VkRayTracingPipelineClusterAccelerationStructureCreateInfoNV::allowClusterAccelerationStructure must have been set for that pipeline", - "page": "chapters/raytracing.html" - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-commandBuffer-parameter", - "text": "commandBuffer must be a valid VkCommandBuffer handle", - "page": "chapters/raytracing.html" - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-raygenShaderBindingTableBuffer-parameter", - "text": "raygenShaderBindingTableBuffer must be a valid VkBuffer handle", - "page": "chapters/raytracing.html" - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-missShaderBindingTableBuffer-parameter", - "text": "If missShaderBindingTableBuffer is not VK_NULL_HANDLE, missShaderBindingTableBuffer must be a valid VkBuffer handle", - "page": "chapters/raytracing.html" - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-hitShaderBindingTableBuffer-parameter", - "text": "If hitShaderBindingTableBuffer is not VK_NULL_HANDLE, hitShaderBindingTableBuffer must be a valid VkBuffer handle", - "page": "chapters/raytracing.html" - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-callableShaderBindingTableBuffer-parameter", - "text": "If callableShaderBindingTableBuffer is not VK_NULL_HANDLE, callableShaderBindingTableBuffer must be a valid VkBuffer handle", - "page": "chapters/raytracing.html" - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-commandBuffer-recording", - "text": "commandBuffer must be in the recording state", - "page": "chapters/raytracing.html" - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-commandBuffer-cmdpool", - "text": "The VkCommandPool that commandBuffer was allocated from must support compute operations", - "page": "chapters/raytracing.html" - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-renderpass", - "text": "This command must only be called outside of a render pass instance", - "page": "chapters/raytracing.html" - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-videocoding", - "text": "This command must only be called outside of a video coding scope", - "page": "chapters/raytracing.html" - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-commonparent", - "text": "Each of callableShaderBindingTableBuffer, commandBuffer, hitShaderBindingTableBuffer, missShaderBindingTableBuffer, and raygenShaderBindingTableBuffer that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice", - "page": "chapters/raytracing.html" - } - ] - }, "vkCmdTraceRaysKHR": { "core": [ { @@ -94976,11 +94744,6 @@ "text": "The size member of pRayGenShaderBindingTable must be equal to its stride member", "page": "chapters/raytracing.html" }, - { - "vuid": "VUID-vkCmdTraceRaysKHR-pRayGenShaderBindingTable-03680", - "text": "If the buffer from which pRayGenShaderBindingTable->deviceAddress was queried is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object", - "page": "chapters/raytracing.html" - }, { "vuid": "VUID-vkCmdTraceRaysKHR-pRayGenShaderBindingTable-03681", "text": "The buffer from which the pRayGenShaderBindingTable->deviceAddress is queried must have been created with the VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR usage flag", @@ -94991,11 +94754,6 @@ "text": "pRayGenShaderBindingTable->deviceAddress must be a multiple of VkPhysicalDeviceRayTracingPipelinePropertiesKHR::shaderGroupBaseAlignment", "page": "chapters/raytracing.html" }, - { - "vuid": "VUID-vkCmdTraceRaysKHR-pMissShaderBindingTable-03683", - "text": "If the buffer from which pMissShaderBindingTable->deviceAddress was queried is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object", - "page": "chapters/raytracing.html" - }, { "vuid": "VUID-vkCmdTraceRaysKHR-pMissShaderBindingTable-03684", "text": "The buffer from which the pMissShaderBindingTable->deviceAddress is queried must have been created with the VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR usage flag", @@ -95016,11 +94774,6 @@ "text": "pMissShaderBindingTable->stride must be less than or equal to VkPhysicalDeviceRayTracingPipelinePropertiesKHR::maxShaderGroupStride", "page": "chapters/raytracing.html" }, - { - "vuid": "VUID-vkCmdTraceRaysKHR-pHitShaderBindingTable-03687", - "text": "If the buffer from which pHitShaderBindingTable->deviceAddress was queried is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object", - "page": "chapters/raytracing.html" - }, { "vuid": "VUID-vkCmdTraceRaysKHR-pHitShaderBindingTable-03688", "text": "The buffer from which the pHitShaderBindingTable->deviceAddress is queried must have been created with the VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR usage flag", @@ -95041,11 +94794,6 @@ "text": "pHitShaderBindingTable->stride must be less than or equal to VkPhysicalDeviceRayTracingPipelinePropertiesKHR::maxShaderGroupStride", "page": "chapters/raytracing.html" }, - { - "vuid": "VUID-vkCmdTraceRaysKHR-pCallableShaderBindingTable-03691", - "text": "If the buffer from which pCallableShaderBindingTable->deviceAddress was queried is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object", - "page": "chapters/raytracing.html" - }, { "vuid": "VUID-vkCmdTraceRaysKHR-pCallableShaderBindingTable-03692", "text": "The buffer from which the pCallableShaderBindingTable->deviceAddress is queried must have been created with the VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR usage flag", @@ -95644,11 +95392,6 @@ "text": "The size member of pRayGenShaderBindingTable must be equal to its stride member", "page": "chapters/raytracing.html" }, - { - "vuid": "VUID-vkCmdTraceRaysIndirectKHR-pRayGenShaderBindingTable-03680", - "text": "If the buffer from which pRayGenShaderBindingTable->deviceAddress was queried is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object", - "page": "chapters/raytracing.html" - }, { "vuid": "VUID-vkCmdTraceRaysIndirectKHR-pRayGenShaderBindingTable-03681", "text": "The buffer from which the pRayGenShaderBindingTable->deviceAddress is queried must have been created with the VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR usage flag", @@ -95659,11 +95402,6 @@ "text": "pRayGenShaderBindingTable->deviceAddress must be a multiple of VkPhysicalDeviceRayTracingPipelinePropertiesKHR::shaderGroupBaseAlignment", "page": "chapters/raytracing.html" }, - { - "vuid": "VUID-vkCmdTraceRaysIndirectKHR-pMissShaderBindingTable-03683", - "text": "If the buffer from which pMissShaderBindingTable->deviceAddress was queried is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object", - "page": "chapters/raytracing.html" - }, { "vuid": "VUID-vkCmdTraceRaysIndirectKHR-pMissShaderBindingTable-03684", "text": "The buffer from which the pMissShaderBindingTable->deviceAddress is queried must have been created with the VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR usage flag", @@ -95684,11 +95422,6 @@ "text": "pMissShaderBindingTable->stride must be less than or equal to VkPhysicalDeviceRayTracingPipelinePropertiesKHR::maxShaderGroupStride", "page": "chapters/raytracing.html" }, - { - "vuid": "VUID-vkCmdTraceRaysIndirectKHR-pHitShaderBindingTable-03687", - "text": "If the buffer from which pHitShaderBindingTable->deviceAddress was queried is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object", - "page": "chapters/raytracing.html" - }, { "vuid": "VUID-vkCmdTraceRaysIndirectKHR-pHitShaderBindingTable-03688", "text": "The buffer from which the pHitShaderBindingTable->deviceAddress is queried must have been created with the VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR usage flag", @@ -95709,11 +95442,6 @@ "text": "pHitShaderBindingTable->stride must be less than or equal to VkPhysicalDeviceRayTracingPipelinePropertiesKHR::maxShaderGroupStride", "page": "chapters/raytracing.html" }, - { - "vuid": "VUID-vkCmdTraceRaysIndirectKHR-pCallableShaderBindingTable-03691", - "text": "If the buffer from which pCallableShaderBindingTable->deviceAddress was queried is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object", - "page": "chapters/raytracing.html" - }, { "vuid": "VUID-vkCmdTraceRaysIndirectKHR-pCallableShaderBindingTable-03692", "text": "The buffer from which the pCallableShaderBindingTable->deviceAddress is queried must have been created with the VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR usage flag", @@ -95774,11 +95502,6 @@ "text": "Any non-zero hit shader group entries in the table identified by pHitShaderBindingTable->deviceAddress accessed by this call from a geometry with a geometryType of VK_GEOMETRY_TYPE_AABBS_KHR must have been created with VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR", "page": "chapters/raytracing.html" }, - { - "vuid": "VUID-vkCmdTraceRaysIndirectKHR-indirectDeviceAddress-03632", - "text": "If the buffer from which indirectDeviceAddress was queried is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object", - "page": "chapters/raytracing.html" - }, { "vuid": "VUID-vkCmdTraceRaysIndirectKHR-indirectDeviceAddress-03633", "text": "The buffer from which indirectDeviceAddress was queried must have been created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set", @@ -95829,6 +95552,11 @@ "text": "pCallableShaderBindingTable must be a valid pointer to a valid VkStridedDeviceAddressRegionKHR structure", "page": "chapters/raytracing.html" }, + { + "vuid": "VUID-vkCmdTraceRaysIndirectKHR-indirectDeviceAddress-parameter", + "text": "indirectDeviceAddress must be a valid VkDeviceAddress value", + "page": "chapters/raytracing.html" + }, { "vuid": "VUID-vkCmdTraceRaysIndirectKHR-commandBuffer-recording", "text": "commandBuffer must be in the recording state", @@ -96252,11 +95980,6 @@ "text": "commandBuffer must not be a protected command buffer", "page": "chapters/raytracing.html" }, - { - "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-indirectDeviceAddress-03632", - "text": "If the buffer from which indirectDeviceAddress was queried is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object", - "page": "chapters/raytracing.html" - }, { "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-indirectDeviceAddress-03633", "text": "The buffer from which indirectDeviceAddress was queried must have been created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set", @@ -96287,6 +96010,11 @@ "text": "commandBuffer must be a valid VkCommandBuffer handle", "page": "chapters/raytracing.html" }, + { + "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-indirectDeviceAddress-parameter", + "text": "indirectDeviceAddress must be a valid VkDeviceAddress value", + "page": "chapters/raytracing.html" + }, { "vuid": "VUID-vkCmdTraceRaysIndirect2KHR-commandBuffer-recording", "text": "commandBuffer must be in the recording state", @@ -96311,11 +96039,6 @@ }, "VkTraceRaysIndirectCommand2KHR": { "core": [ - { - "vuid": "VUID-VkTraceRaysIndirectCommand2KHR-pRayGenShaderBindingTable-03680", - "text": "If the buffer from which raygenShaderRecordAddress was queried is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object", - "page": "chapters/raytracing.html" - }, { "vuid": "VUID-VkTraceRaysIndirectCommand2KHR-pRayGenShaderBindingTable-03681", "text": "The buffer from which the raygenShaderRecordAddress is queried must have been created with the VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR usage flag", @@ -96326,11 +96049,6 @@ "text": "raygenShaderRecordAddress must be a multiple of VkPhysicalDeviceRayTracingPipelinePropertiesKHR::shaderGroupBaseAlignment", "page": "chapters/raytracing.html" }, - { - "vuid": "VUID-VkTraceRaysIndirectCommand2KHR-pMissShaderBindingTable-03683", - "text": "If the buffer from which missShaderBindingTableAddress was queried is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object", - "page": "chapters/raytracing.html" - }, { "vuid": "VUID-VkTraceRaysIndirectCommand2KHR-pMissShaderBindingTable-03684", "text": "The buffer from which the missShaderBindingTableAddress is queried must have been created with the VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR usage flag", @@ -96351,11 +96069,6 @@ "text": "missShaderBindingTableStride must be less than or equal to VkPhysicalDeviceRayTracingPipelinePropertiesKHR::maxShaderGroupStride", "page": "chapters/raytracing.html" }, - { - "vuid": "VUID-VkTraceRaysIndirectCommand2KHR-pHitShaderBindingTable-03687", - "text": "If the buffer from which hitShaderBindingTableAddress was queried is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object", - "page": "chapters/raytracing.html" - }, { "vuid": "VUID-VkTraceRaysIndirectCommand2KHR-pHitShaderBindingTable-03688", "text": "The buffer from which the hitShaderBindingTableAddress is queried must have been created with the VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR usage flag", @@ -96376,11 +96089,6 @@ "text": "hitShaderBindingTableStride must be less than or equal to VkPhysicalDeviceRayTracingPipelinePropertiesKHR::maxShaderGroupStride", "page": "chapters/raytracing.html" }, - { - "vuid": "VUID-VkTraceRaysIndirectCommand2KHR-pCallableShaderBindingTable-03691", - "text": "If the buffer from which callableShaderBindingTableAddress was queried is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object", - "page": "chapters/raytracing.html" - }, { "vuid": "VUID-VkTraceRaysIndirectCommand2KHR-pCallableShaderBindingTable-03692", "text": "The buffer from which the callableShaderBindingTableAddress is queried must have been created with the VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR usage flag", @@ -96460,6 +96168,565 @@ "vuid": "VUID-VkTraceRaysIndirectCommand2KHR-width-03641", "text": "width × height × depth must be less than or equal to VkPhysicalDeviceRayTracingPipelinePropertiesKHR::maxRayDispatchInvocationCount", "page": "chapters/raytracing.html" + }, + { + "vuid": "VUID-VkTraceRaysIndirectCommand2KHR-raygenShaderRecordAddress-parameter", + "text": "raygenShaderRecordAddress must be a valid VkDeviceAddress value", + "page": "chapters/raytracing.html" + }, + { + "vuid": "VUID-VkTraceRaysIndirectCommand2KHR-missShaderBindingTableAddress-parameter", + "text": "missShaderBindingTableAddress must be a valid VkDeviceAddress value", + "page": "chapters/raytracing.html" + }, + { + "vuid": "VUID-VkTraceRaysIndirectCommand2KHR-hitShaderBindingTableAddress-parameter", + "text": "hitShaderBindingTableAddress must be a valid VkDeviceAddress value", + "page": "chapters/raytracing.html" + }, + { + "vuid": "VUID-VkTraceRaysIndirectCommand2KHR-callableShaderBindingTableAddress-parameter", + "text": "callableShaderBindingTableAddress must be a valid VkDeviceAddress value", + "page": "chapters/raytracing.html" + } + ] + }, + "vkCmdTraceRaysNV": { + "core": [ + { + "vuid": "VUID-vkCmdTraceRaysNV-magFilter-04553", + "text": "If a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR, reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE, and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "page": "chapters/raytracing.html" + }, + { + "vuid": "VUID-vkCmdTraceRaysNV-magFilter-09598", + "text": "If a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and reductionMode equal to either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT", + "page": "chapters/raytracing.html" + }, + { + "vuid": "VUID-vkCmdTraceRaysNV-mipmapMode-04770", + "text": "If a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR, reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE, and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "page": "chapters/raytracing.html" + }, + { + "vuid": "VUID-vkCmdTraceRaysNV-mipmapMode-09599", + "text": "If a VkSampler created with mipmapMode equal to VK_SAMPLER_MIPMAP_MODE_LINEAR and reductionMode equal to either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT", + "page": "chapters/raytracing.html" + }, + { + "vuid": "VUID-vkCmdTraceRaysNV-unnormalizedCoordinates-09635", + "text": "If a VkSampler created with unnormalizedCoordinates equal to VK_TRUE is used to sample a VkImageView as a result of this command, then the image view’s levelCount and layerCount must be 1", + "page": "chapters/raytracing.html" + }, + { + "vuid": "VUID-vkCmdTraceRaysNV-None-08609", + "text": "If a VkSampler created with unnormalizedCoordinates equal to VK_TRUE is used to sample a VkImageView as a result of this command, then the image view’s viewType must be VK_IMAGE_VIEW_TYPE_1D or VK_IMAGE_VIEW_TYPE_2D", + "page": "chapters/raytracing.html" + }, + { + "vuid": "VUID-vkCmdTraceRaysNV-None-08610", + "text": "If a VkSampler created with unnormalizedCoordinates equal to VK_TRUE is used to sample a VkImageView as a result of this command, then the sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name", + "page": "chapters/raytracing.html" + }, + { + "vuid": "VUID-vkCmdTraceRaysNV-None-08611", + "text": "If a VkSampler created with unnormalizedCoordinates equal to VK_TRUE is used to sample a VkImageView as a result of this command, then the sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values", + "page": "chapters/raytracing.html" + }, + { + "vuid": "VUID-vkCmdTraceRaysNV-None-06479", + "text": "If a VkImageView is sampled with depth comparison, the image view’s format features must contain VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT", + "page": "chapters/raytracing.html" + }, + { + "vuid": "VUID-vkCmdTraceRaysNV-None-02691", + "text": "If a VkImageView is accessed using atomic operations as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT", + "page": "chapters/raytracing.html" + }, + { + "vuid": "VUID-vkCmdTraceRaysNV-None-07888", + "text": "If a VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER descriptor is accessed using atomic operations as a result of this command, then the storage texel buffer’s format features must contain VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT", + "page": "chapters/raytracing.html" + }, + { + "vuid": "VUID-vkCmdTraceRaysNV-None-02692", + "text": "If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT", + "page": "chapters/raytracing.html" + }, + { + "vuid": "VUID-vkCmdTraceRaysNV-None-02693", + "text": "If the VK_EXT_filter_cubic extension is not enabled and any VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, it must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY", + "page": "chapters/raytracing.html" + }, + { + "vuid": "VUID-vkCmdTraceRaysNV-filterCubic-02694", + "text": "Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have a VkImageViewType and format that supports cubic filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubic returned by vkGetPhysicalDeviceImageFormatProperties2", + "page": "chapters/raytracing.html" + }, + { + "vuid": "VUID-vkCmdTraceRaysNV-filterCubicMinmax-02695", + "text": "Any VkImageView being sampled with VK_FILTER_CUBIC_EXT with a reduction mode of either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX as a result of this command must have a VkImageViewType and format that supports cubic filtering together with minmax filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubicMinmax returned by vkGetPhysicalDeviceImageFormatProperties2", + "page": "chapters/raytracing.html" + }, + { + "vuid": "VUID-vkCmdTraceRaysNV-cubicRangeClamp-09212", + "text": "If the cubicRangeClamp feature is not enabled, then any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must not have a VkSamplerReductionModeCreateInfo::reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM", + "page": "chapters/raytracing.html" + }, + { + "vuid": "VUID-vkCmdTraceRaysNV-reductionMode-09213", + "text": "Any VkImageView being sampled with a VkSamplerReductionModeCreateInfo::reductionMode equal to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM as a result of this command must sample with VK_FILTER_CUBIC_EXT", + "page": "chapters/raytracing.html" + }, + { + "vuid": "VUID-vkCmdTraceRaysNV-selectableCubicWeights-09214", + "text": "If the selectableCubicWeights feature is not enabled, then any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have VkSamplerCubicWeightsCreateInfoQCOM::cubicWeights equal to VK_CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM", + "page": "chapters/raytracing.html" + }, + { + "vuid": "VUID-vkCmdTraceRaysNV-flags-02696", + "text": "Any VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE", + "page": "chapters/raytracing.html" + }, + { + "vuid": "VUID-vkCmdTraceRaysNV-OpTypeImage-07027", + "text": "For any VkImageView being written as a storage image where the image format field of the OpTypeImage is Unknown, the view’s format features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT", + "page": "chapters/raytracing.html" + }, + { + "vuid": "VUID-vkCmdTraceRaysNV-OpTypeImage-07028", + "text": "For any VkImageView being read as a storage image where the image format field of the OpTypeImage is Unknown, the view’s format features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT", + "page": "chapters/raytracing.html" + }, + { + "vuid": "VUID-vkCmdTraceRaysNV-OpTypeImage-07029", + "text": "For any VkBufferView being written as a storage texel buffer where the image format field of the OpTypeImage is Unknown, the view’s buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT", + "page": "chapters/raytracing.html" + }, + { + "vuid": "VUID-vkCmdTraceRaysNV-OpTypeImage-07030", + "text": "Any VkBufferView being read as a storage texel buffer where the image format field of the OpTypeImage is Unknown then the view’s buffer features must contain VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT", + "page": "chapters/raytracing.html" + }, + { + "vuid": "VUID-vkCmdTraceRaysNV-None-08600", + "text": "For each set n that is statically used by a bound shader, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout used to create the current VkPipeline or the VkDescriptorSetLayout array used to create the current VkShaderEXT , as described in Pipeline Layout Compatibility", + "page": "chapters/raytracing.html" + }, + { + "vuid": "VUID-vkCmdTraceRaysNV-None-08601", + "text": "For each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline or the VkDescriptorSetLayout array used to create the current VkShaderEXT , as described in Pipeline Layout Compatibility", + "page": "chapters/raytracing.html" + }, + { + "vuid": "VUID-vkCmdTraceRaysNV-None-10068", + "text": "For each array of resources that is used by a bound shader, the indices used to access members of the array must be less than the descriptor count for the identified binding in the descriptor sets used by this command", + "page": "chapters/raytracing.html" + }, + { + "vuid": "VUID-vkCmdTraceRaysNV-maintenance4-08602", + "text": "If the maintenance4 feature is not enabled, then for each push constant that is statically used by a bound shader, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline or the VkDescriptorSetLayout and VkPushConstantRange arrays used to create the current VkShaderEXT , as described in Pipeline Layout Compatibility", + "page": "chapters/raytracing.html" + }, + { + "vuid": "VUID-vkCmdTraceRaysNV-None-08114", + "text": "Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid as described by descriptor validity if they are statically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was not created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", + "page": "chapters/raytracing.html" + }, + { + "vuid": "VUID-vkCmdTraceRaysNV-None-08115", + "text": "If the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdBindDescriptorSets, the bound VkPipeline must have been created without VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", + "page": "chapters/raytracing.html" + }, + { + "vuid": "VUID-vkCmdTraceRaysNV-None-08116", + "text": "Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by the VkPipeline bound to the pipeline bind point used by this command and the bound VkPipeline was created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", + "page": "chapters/raytracing.html" + }, + { + "vuid": "VUID-vkCmdTraceRaysNV-None-08604", + "text": "Descriptors in bound descriptor buffers, specified via vkCmdSetDescriptorBufferOffsetsEXT, must be valid if they are dynamically used by any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command", + "page": "chapters/raytracing.html" + }, + { + "vuid": "VUID-vkCmdTraceRaysNV-None-08117", + "text": "If the descriptors used by the VkPipeline bound to the pipeline bind point were specified via vkCmdSetDescriptorBufferOffsetsEXT, the bound VkPipeline must have been created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT", + "page": "chapters/raytracing.html" + }, + { + "vuid": "VUID-vkCmdTraceRaysNV-None-08119", + "text": "If a descriptor is dynamically used with a VkPipeline created with VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident", + "page": "chapters/raytracing.html" + }, + { + "vuid": "VUID-vkCmdTraceRaysNV-None-08605", + "text": "If a descriptor is dynamically used with a VkShaderEXT created with a VkDescriptorSetLayout that was created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT, the descriptor memory must be resident", + "page": "chapters/raytracing.html" + }, + { + "vuid": "VUID-vkCmdTraceRaysNV-None-08606", + "text": "If the shaderObject feature is not enabled, a valid pipeline must be bound to the pipeline bind point used by this command", + "page": "chapters/raytracing.html" + }, + { + "vuid": "VUID-vkCmdTraceRaysNV-None-08608", + "text": "If a pipeline is bound to the pipeline bind point used by this command, there must not have been any calls to dynamic state setting commands for any state specified statically in the VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound", + "page": "chapters/raytracing.html" + }, + { + "vuid": "VUID-vkCmdTraceRaysNV-uniformBuffers-06935", + "text": "If any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a uniform buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2 for uniformBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", + "page": "chapters/raytracing.html" + }, + { + "vuid": "VUID-vkCmdTraceRaysNV-None-08612", + "text": "If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", + "page": "chapters/raytracing.html" + }, + { + "vuid": "VUID-vkCmdTraceRaysNV-storageBuffers-06936", + "text": "If any stage of the VkPipeline object bound to the pipeline bind point used by this command accesses a storage buffer, and that stage was created without enabling either VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS or VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2 for storageBuffers, and the robustBufferAccess feature is not enabled, that stage must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", + "page": "chapters/raytracing.html" + }, + { + "vuid": "VUID-vkCmdTraceRaysNV-None-08613", + "text": "If the robustBufferAccess feature is not enabled, and any VkShaderEXT bound to a stage corresponding to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point", + "page": "chapters/raytracing.html" + }, + { + "vuid": "VUID-vkCmdTraceRaysNV-commandBuffer-02707", + "text": "If commandBuffer is an unprotected command buffer and protectedNoFault is not supported, any resource accessed by bound shaders must not be a protected resource", + "page": "chapters/raytracing.html" + }, + { + "vuid": "VUID-vkCmdTraceRaysNV-viewType-07752", + "text": "If a VkImageView is accessed as a result of this command, then the image view’s viewType must match the Dim operand of the OpTypeImage as described in Compatibility Between SPIR-V Image Dimensions and Vulkan ImageView Types", + "page": "chapters/raytracing.html" + }, + { + "vuid": "VUID-vkCmdTraceRaysNV-format-07753", + "text": "If a VkImageView or VkBufferView is accessed as a result of this command, then the numeric type of the view’s format and the Sampled Type operand of the OpTypeImage must match", + "page": "chapters/raytracing.html" + }, + { + "vuid": "VUID-vkCmdTraceRaysNV-OpImageWrite-08795", + "text": "If a VkImageView created with a format other than VK_FORMAT_A8_UNORM is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view’s format", + "page": "chapters/raytracing.html" + }, + { + "vuid": "VUID-vkCmdTraceRaysNV-OpImageWrite-08796", + "text": "If a VkImageView created with the format VK_FORMAT_A8_UNORM is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have four components", + "page": "chapters/raytracing.html" + }, + { + "vuid": "VUID-vkCmdTraceRaysNV-OpImageWrite-04469", + "text": "If a VkBufferView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the buffer view’s format", + "page": "chapters/raytracing.html" + }, + { + "vuid": "VUID-vkCmdTraceRaysNV-SampledType-04470", + "text": "If a VkImageView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64", + "page": "chapters/raytracing.html" + }, + { + "vuid": "VUID-vkCmdTraceRaysNV-SampledType-04471", + "text": "If a VkImageView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32", + "page": "chapters/raytracing.html" + }, + { + "vuid": "VUID-vkCmdTraceRaysNV-SampledType-04472", + "text": "If a VkBufferView with a VkFormat that has a 64-bit component width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64", + "page": "chapters/raytracing.html" + }, + { + "vuid": "VUID-vkCmdTraceRaysNV-SampledType-04473", + "text": "If a VkBufferView with a VkFormat that has a component width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32", + "page": "chapters/raytracing.html" + }, + { + "vuid": "VUID-vkCmdTraceRaysNV-sparseImageInt64Atomics-04474", + "text": "If the sparseImageInt64Atomics feature is not enabled, VkImage objects created with the VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command", + "page": "chapters/raytracing.html" + }, + { + "vuid": "VUID-vkCmdTraceRaysNV-sparseImageInt64Atomics-04475", + "text": "If the sparseImageInt64Atomics feature is not enabled, VkBuffer objects created with the VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command", + "page": "chapters/raytracing.html" + }, + { + "vuid": "VUID-vkCmdTraceRaysNV-OpImageWeightedSampleQCOM-06971", + "text": "If OpImageWeightedSampleQCOM is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM", + "page": "chapters/raytracing.html" + }, + { + "vuid": "VUID-vkCmdTraceRaysNV-OpImageWeightedSampleQCOM-06972", + "text": "If OpImageWeightedSampleQCOM uses a VkImageView as a sample weight image as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM", + "page": "chapters/raytracing.html" + }, + { + "vuid": "VUID-vkCmdTraceRaysNV-OpImageBoxFilterQCOM-06973", + "text": "If OpImageBoxFilterQCOM is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM", + "page": "chapters/raytracing.html" + }, + { + "vuid": "VUID-vkCmdTraceRaysNV-OpImageBlockMatchSSDQCOM-06974", + "text": "If OpImageBlockMatchSSDQCOM is used to read from an VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", + "page": "chapters/raytracing.html" + }, + { + "vuid": "VUID-vkCmdTraceRaysNV-OpImageBlockMatchSADQCOM-06975", + "text": "If OpImageBlockMatchSADQCOM is used to read from an VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", + "page": "chapters/raytracing.html" + }, + { + "vuid": "VUID-vkCmdTraceRaysNV-OpImageBlockMatchSADQCOM-06976", + "text": "If OpImageBlockMatchSADQCOM or OpImageBlockMatchSSDQCOM is used to read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation", + "page": "chapters/raytracing.html" + }, + { + "vuid": "VUID-vkCmdTraceRaysNV-OpImageWeightedSampleQCOM-06977", + "text": "If OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM", + "page": "chapters/raytracing.html" + }, + { + "vuid": "VUID-vkCmdTraceRaysNV-OpImageWeightedSampleQCOM-06978", + "text": "If any command other than OpImageWeightedSampleQCOM, OpImageBoxFilterQCOM, OpImageBlockMatchWindowSSDQCOM, OpImageBlockMatchWindowSADQCOM, OpImageBlockMatchGatherSSDQCOM, OpImageBlockMatchGatherSADQCOM, OpImageBlockMatchSSDQCOM, or OpImageBlockMatchSADQCOM uses a VkSampler as a result of this command, then the sampler must not have been created with VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM", + "page": "chapters/raytracing.html" + }, + { + "vuid": "VUID-vkCmdTraceRaysNV-OpImageBlockMatchWindow-09215", + "text": "If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM instruction is used to read from an VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM", + "page": "chapters/raytracing.html" + }, + { + "vuid": "VUID-vkCmdTraceRaysNV-OpImageBlockMatchWindow-09216", + "text": "If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM instruction is used to read from an VkImageView as a result of this command, then the image view’s format must be a single-component format", + "page": "chapters/raytracing.html" + }, + { + "vuid": "VUID-vkCmdTraceRaysNV-OpImageBlockMatchWindow-09217", + "text": "If a OpImageBlockMatchWindow*QCOM or OpImageBlockMatchGather*QCOM read from a reference image as result of this command, then the specified reference coordinates must not fail integer texel coordinate validation", + "page": "chapters/raytracing.html" + }, + { + "vuid": "VUID-vkCmdTraceRaysNV-None-07288", + "text": "Any shader invocation executed by this command must terminate", + "page": "chapters/raytracing.html" + }, + { + "vuid": "VUID-vkCmdTraceRaysNV-None-09600", + "text": "If a descriptor with type equal to any of VK_DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM, VK_DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM, VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, or VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT is accessed as a result of this command, all image subresources identified by that descriptor must be in the image layout identified when the descriptor was written", + "page": "chapters/raytracing.html" + }, + { + "vuid": "VUID-vkCmdTraceRaysNV-commandBuffer-10746", + "text": "The VkDeviceMemory object allocated from a VkMemoryHeap with the VK_MEMORY_HEAP_TILE_MEMORY_BIT_QCOM property that is bound to a resource accessed as a result of this command must be the active bound bound tile memory object in commandBuffer", + "page": "chapters/raytracing.html" + }, + { + "vuid": "VUID-vkCmdTraceRaysNV-None-10678", + "text": "If this command is recorded inside a tile shading render pass instance, the stages corresponding to the pipeline bind point used by this command must only include VK_SHADER_STAGE_VERTEX_BIT, VK_SHADER_STAGE_FRAGMENT_BIT, and/or VK_SHADER_STAGE_COMPUTE_BIT", + "page": "chapters/raytracing.html" + }, + { + "vuid": "VUID-vkCmdTraceRaysNV-None-10679", + "text": "If this command is recorded where per-tile execution model is enabled, there must be no access to any image while the image was be transitioned to the VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT layout", + "page": "chapters/raytracing.html" + }, + { + "vuid": "VUID-vkCmdTraceRaysNV-pDescription-09900", + "text": "If a VK_DESCRIPTOR_TYPE_TENSOR_ARM descriptor is accessed as a result of this command, then the underlying VkTensorARM object must have been created with a VkTensorCreateInfoARM::pDescription whose usage member contained VK_TENSOR_USAGE_SHADER_BIT_ARM", + "page": "chapters/raytracing.html" + }, + { + "vuid": "VUID-vkCmdTraceRaysNV-dimensionCount-09905", + "text": "If a VK_DESCRIPTOR_TYPE_TENSOR_ARM descriptor is accessed as a result of this command, then the Rank of the OpTypeTensorARM of the tensor resource variable must be equal to the dimensionCount provided via VkTensorCreateInfoARM::pDescription when creating the underlying VkTensorARM object", + "page": "chapters/raytracing.html" + }, + { + "vuid": "VUID-vkCmdTraceRaysNV-OpTypeTensorARM-09906", + "text": "If a VK_DESCRIPTOR_TYPE_TENSOR_ARM descriptor is accessed as a result of this command, then the element type of the OpTypeTensorARM of the tensor resource variable must be compatible with the VkFormat of the VkTensorViewARM used for the access", + "page": "chapters/raytracing.html" + }, + { + "vuid": "VUID-vkCmdTraceRaysNV-None-03429", + "text": "Any shader group handle referenced by this call must have been queried from the bound ray tracing pipeline", + "page": "chapters/raytracing.html" + }, + { + "vuid": "VUID-vkCmdTraceRaysNV-None-09458", + "text": "If the bound ray tracing pipeline state was created with the VK_DYNAMIC_STATE_RAY_TRACING_PIPELINE_STACK_SIZE_KHR dynamic state enabled then vkCmdSetRayTracingPipelineStackSizeKHR must have been called in the current command buffer prior to this trace command", + "page": "chapters/raytracing.html" + }, + { + "vuid": "VUID-vkCmdTraceRaysNV-commandBuffer-04624", + "text": "commandBuffer must not be a protected command buffer", + "page": "chapters/raytracing.html" + }, + { + "vuid": "VUID-vkCmdTraceRaysNV-maxRecursionDepth-03625", + "text": "This command must not cause a pipeline trace ray instruction to be executed from a shader invocation with a recursion depth greater than the value of maxRecursionDepth used to create the bound ray tracing pipeline", + "page": "chapters/raytracing.html" + }, + { + "vuid": "VUID-vkCmdTraceRaysNV-raygenShaderBindingTableBuffer-04042", + "text": "If raygenShaderBindingTableBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object", + "page": "chapters/raytracing.html" + }, + { + "vuid": "VUID-vkCmdTraceRaysNV-raygenShaderBindingOffset-02455", + "text": "raygenShaderBindingOffset must be less than the size of raygenShaderBindingTableBuffer", + "page": "chapters/raytracing.html" + }, + { + "vuid": "VUID-vkCmdTraceRaysNV-raygenShaderBindingOffset-02456", + "text": "raygenShaderBindingOffset must be a multiple of VkPhysicalDeviceRayTracingPropertiesNV::shaderGroupBaseAlignment", + "page": "chapters/raytracing.html" + }, + { + "vuid": "VUID-vkCmdTraceRaysNV-missShaderBindingTableBuffer-04043", + "text": "If missShaderBindingTableBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object", + "page": "chapters/raytracing.html" + }, + { + "vuid": "VUID-vkCmdTraceRaysNV-missShaderBindingOffset-02457", + "text": "missShaderBindingOffset must be less than the size of missShaderBindingTableBuffer", + "page": "chapters/raytracing.html" + }, + { + "vuid": "VUID-vkCmdTraceRaysNV-missShaderBindingOffset-02458", + "text": "missShaderBindingOffset must be a multiple of VkPhysicalDeviceRayTracingPropertiesNV::shaderGroupBaseAlignment", + "page": "chapters/raytracing.html" + }, + { + "vuid": "VUID-vkCmdTraceRaysNV-hitShaderBindingTableBuffer-04044", + "text": "If hitShaderBindingTableBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object", + "page": "chapters/raytracing.html" + }, + { + "vuid": "VUID-vkCmdTraceRaysNV-hitShaderBindingOffset-02459", + "text": "hitShaderBindingOffset must be less than the size of hitShaderBindingTableBuffer", + "page": "chapters/raytracing.html" + }, + { + "vuid": "VUID-vkCmdTraceRaysNV-hitShaderBindingOffset-02460", + "text": "hitShaderBindingOffset must be a multiple of VkPhysicalDeviceRayTracingPropertiesNV::shaderGroupBaseAlignment", + "page": "chapters/raytracing.html" + }, + { + "vuid": "VUID-vkCmdTraceRaysNV-callableShaderBindingTableBuffer-04045", + "text": "If callableShaderBindingTableBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object", + "page": "chapters/raytracing.html" + }, + { + "vuid": "VUID-vkCmdTraceRaysNV-callableShaderBindingOffset-02461", + "text": "callableShaderBindingOffset must be less than the size of callableShaderBindingTableBuffer", + "page": "chapters/raytracing.html" + }, + { + "vuid": "VUID-vkCmdTraceRaysNV-callableShaderBindingOffset-02462", + "text": "callableShaderBindingOffset must be a multiple of VkPhysicalDeviceRayTracingPropertiesNV::shaderGroupBaseAlignment", + "page": "chapters/raytracing.html" + }, + { + "vuid": "VUID-vkCmdTraceRaysNV-missShaderBindingStride-02463", + "text": "missShaderBindingStride must be a multiple of VkPhysicalDeviceRayTracingPropertiesNV::shaderGroupHandleSize", + "page": "chapters/raytracing.html" + }, + { + "vuid": "VUID-vkCmdTraceRaysNV-hitShaderBindingStride-02464", + "text": "hitShaderBindingStride must be a multiple of VkPhysicalDeviceRayTracingPropertiesNV::shaderGroupHandleSize", + "page": "chapters/raytracing.html" + }, + { + "vuid": "VUID-vkCmdTraceRaysNV-callableShaderBindingStride-02465", + "text": "callableShaderBindingStride must be a multiple of VkPhysicalDeviceRayTracingPropertiesNV::shaderGroupHandleSize", + "page": "chapters/raytracing.html" + }, + { + "vuid": "VUID-vkCmdTraceRaysNV-missShaderBindingStride-02466", + "text": "missShaderBindingStride must be less than or equal to VkPhysicalDeviceRayTracingPropertiesNV::maxShaderGroupStride", + "page": "chapters/raytracing.html" + }, + { + "vuid": "VUID-vkCmdTraceRaysNV-hitShaderBindingStride-02467", + "text": "hitShaderBindingStride must be less than or equal to VkPhysicalDeviceRayTracingPropertiesNV::maxShaderGroupStride", + "page": "chapters/raytracing.html" + }, + { + "vuid": "VUID-vkCmdTraceRaysNV-callableShaderBindingStride-02468", + "text": "callableShaderBindingStride must be less than or equal to VkPhysicalDeviceRayTracingPropertiesNV::maxShaderGroupStride", + "page": "chapters/raytracing.html" + }, + { + "vuid": "VUID-vkCmdTraceRaysNV-width-02469", + "text": "width must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[0]", + "page": "chapters/raytracing.html" + }, + { + "vuid": "VUID-vkCmdTraceRaysNV-height-02470", + "text": "height must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[1]", + "page": "chapters/raytracing.html" + }, + { + "vuid": "VUID-vkCmdTraceRaysNV-depth-02471", + "text": "depth must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[2]", + "page": "chapters/raytracing.html" + }, + { + "vuid": "VUID-vkCmdTraceRaysNV-allowClusterAccelerationStructure-10577", + "text": "If the traced geometry contains a cluster acceleration structure, then VkRayTracingPipelineClusterAccelerationStructureCreateInfoNV::allowClusterAccelerationStructure must have been set for that pipeline", + "page": "chapters/raytracing.html" + }, + { + "vuid": "VUID-vkCmdTraceRaysNV-commandBuffer-parameter", + "text": "commandBuffer must be a valid VkCommandBuffer handle", + "page": "chapters/raytracing.html" + }, + { + "vuid": "VUID-vkCmdTraceRaysNV-raygenShaderBindingTableBuffer-parameter", + "text": "raygenShaderBindingTableBuffer must be a valid VkBuffer handle", + "page": "chapters/raytracing.html" + }, + { + "vuid": "VUID-vkCmdTraceRaysNV-missShaderBindingTableBuffer-parameter", + "text": "If missShaderBindingTableBuffer is not VK_NULL_HANDLE, missShaderBindingTableBuffer must be a valid VkBuffer handle", + "page": "chapters/raytracing.html" + }, + { + "vuid": "VUID-vkCmdTraceRaysNV-hitShaderBindingTableBuffer-parameter", + "text": "If hitShaderBindingTableBuffer is not VK_NULL_HANDLE, hitShaderBindingTableBuffer must be a valid VkBuffer handle", + "page": "chapters/raytracing.html" + }, + { + "vuid": "VUID-vkCmdTraceRaysNV-callableShaderBindingTableBuffer-parameter", + "text": "If callableShaderBindingTableBuffer is not VK_NULL_HANDLE, callableShaderBindingTableBuffer must be a valid VkBuffer handle", + "page": "chapters/raytracing.html" + }, + { + "vuid": "VUID-vkCmdTraceRaysNV-commandBuffer-recording", + "text": "commandBuffer must be in the recording state", + "page": "chapters/raytracing.html" + }, + { + "vuid": "VUID-vkCmdTraceRaysNV-commandBuffer-cmdpool", + "text": "The VkCommandPool that commandBuffer was allocated from must support compute operations", + "page": "chapters/raytracing.html" + }, + { + "vuid": "VUID-vkCmdTraceRaysNV-renderpass", + "text": "This command must only be called outside of a render pass instance", + "page": "chapters/raytracing.html" + }, + { + "vuid": "VUID-vkCmdTraceRaysNV-videocoding", + "text": "This command must only be called outside of a video coding scope", + "page": "chapters/raytracing.html" + }, + { + "vuid": "VUID-vkCmdTraceRaysNV-commonparent", + "text": "Each of callableShaderBindingTableBuffer, commandBuffer, hitShaderBindingTableBuffer, missShaderBindingTableBuffer, and raygenShaderBindingTableBuffer that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice", + "page": "chapters/raytracing.html" } ] }, @@ -96549,6 +96816,16 @@ "text": "The srcAddress to srcAddress + compressedSize region must not overlap with the dstAddress and dstAddress + decompressedSize region", "page": "chapters/VK_NV_memory_decompression.html" }, + { + "vuid": "VUID-VkDecompressMemoryRegionNV-srcAddress-parameter", + "text": "srcAddress must be a valid VkDeviceAddress value", + "page": "chapters/VK_NV_memory_decompression.html" + }, + { + "vuid": "VUID-VkDecompressMemoryRegionNV-dstAddress-parameter", + "text": "dstAddress must be a valid VkDeviceAddress value", + "page": "chapters/VK_NV_memory_decompression.html" + }, { "vuid": "VUID-VkDecompressMemoryRegionNV-decompressionMethod-parameter", "text": "decompressionMethod must be a valid combination of VkMemoryDecompressionMethodFlagBitsNV values", @@ -96568,11 +96845,6 @@ "text": "The memoryDecompression feature must be enabled", "page": "chapters/VK_NV_memory_decompression.html" }, - { - "vuid": "VUID-vkCmdDecompressMemoryIndirectCountNV-indirectCommandsAddress-07693", - "text": "If indirectCommandsAddress comes from a non-sparse buffer then it must be bound completely and contiguously to a single VkDeviceMemory object", - "page": "chapters/VK_NV_memory_decompression.html" - }, { "vuid": "VUID-vkCmdDecompressMemoryIndirectCountNV-indirectCommandsAddress-07694", "text": "The VkBuffer that indirectCommandsAddress comes from must have been created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set", @@ -96583,11 +96855,6 @@ "text": "offset must be a multiple of 4", "page": "chapters/VK_NV_memory_decompression.html" }, - { - "vuid": "VUID-vkCmdDecompressMemoryIndirectCountNV-indirectCommandsCountAddress-07696", - "text": "If indirectCommandsCountAddress comes from a non-sparse buffer then it must be bound completely and contiguously to a single VkDeviceMemory object", - "page": "chapters/VK_NV_memory_decompression.html" - }, { "vuid": "VUID-vkCmdDecompressMemoryIndirectCountNV-indirectCommandsCountAddress-07697", "text": "The VkBuffer that indirectCommandsCountAddress comes from must have been created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set", @@ -96623,6 +96890,16 @@ "text": "commandBuffer must be a valid VkCommandBuffer handle", "page": "chapters/VK_NV_memory_decompression.html" }, + { + "vuid": "VUID-vkCmdDecompressMemoryIndirectCountNV-indirectCommandsAddress-parameter", + "text": "indirectCommandsAddress must be a valid VkDeviceAddress value", + "page": "chapters/VK_NV_memory_decompression.html" + }, + { + "vuid": "VUID-vkCmdDecompressMemoryIndirectCountNV-indirectCommandsCountAddress-parameter", + "text": "indirectCommandsCountAddress must be a valid VkDeviceAddress value", + "page": "chapters/VK_NV_memory_decompression.html" + }, { "vuid": "VUID-vkCmdDecompressMemoryIndirectCountNV-commandBuffer-recording", "text": "commandBuffer must be in the recording state", @@ -101992,6 +102269,11 @@ "text": "executionGraph must be a valid VkPipeline handle", "page": "chapters/executiongraphs.html" }, + { + "vuid": "VUID-vkCmdInitializeGraphScratchMemoryAMDX-scratch-parameter", + "text": "scratch must be a valid VkDeviceAddress value", + "page": "chapters/executiongraphs.html" + }, { "vuid": "VUID-vkCmdInitializeGraphScratchMemoryAMDX-commandBuffer-recording", "text": "commandBuffer must be in the recording state", @@ -102456,6 +102738,11 @@ "text": "commandBuffer must be a valid VkCommandBuffer handle", "page": "chapters/executiongraphs.html" }, + { + "vuid": "VUID-vkCmdDispatchGraphAMDX-scratch-parameter", + "text": "scratch must be a valid VkDeviceAddress value", + "page": "chapters/executiongraphs.html" + }, { "vuid": "VUID-vkCmdDispatchGraphAMDX-pCountInfo-parameter", "text": "pCountInfo must be a valid pointer to a valid VkDispatchGraphCountInfoAMDX structure", @@ -102940,6 +103227,11 @@ "text": "commandBuffer must be a valid VkCommandBuffer handle", "page": "chapters/executiongraphs.html" }, + { + "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-scratch-parameter", + "text": "scratch must be a valid VkDeviceAddress value", + "page": "chapters/executiongraphs.html" + }, { "vuid": "VUID-vkCmdDispatchGraphIndirectAMDX-pCountInfo-parameter", "text": "pCountInfo must be a valid pointer to a valid VkDispatchGraphCountInfoAMDX structure", @@ -103439,6 +103731,16 @@ "text": "commandBuffer must be a valid VkCommandBuffer handle", "page": "chapters/executiongraphs.html" }, + { + "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-scratch-parameter", + "text": "scratch must be a valid VkDeviceAddress value", + "page": "chapters/executiongraphs.html" + }, + { + "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-countInfo-parameter", + "text": "countInfo must be a valid VkDeviceAddress value", + "page": "chapters/executiongraphs.html" + }, { "vuid": "VUID-vkCmdDispatchGraphIndirectCountAMDX-commandBuffer-recording", "text": "commandBuffer must be in the recording state", @@ -106863,6 +107165,15 @@ } ] }, + "VkPhysicalDeviceDenseGeometryFormatFeaturesAMDX": { + "core": [ + { + "vuid": "VUID-VkPhysicalDeviceDenseGeometryFormatFeaturesAMDX-sType-sType", + "text": "sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DENSE_GEOMETRY_FORMAT_FEATURES_AMDX", + "page": "chapters/features.html" + } + ] + }, "VkPhysicalDeviceVertexAttributeRobustnessFeaturesEXT": { "core": [ { @@ -108937,6 +109248,11 @@ "text": "flags must be a valid combination of VkDeviceAddressBindingFlagBitsEXT values", "page": "chapters/debugging.html" }, + { + "vuid": "VUID-VkDeviceAddressBindingCallbackDataEXT-baseAddress-parameter", + "text": "baseAddress must be a valid VkDeviceAddress value", + "page": "chapters/debugging.html" + }, { "vuid": "VUID-VkDeviceAddressBindingCallbackDataEXT-bindingType-parameter", "text": "bindingType must be a valid VkDeviceAddressBindingTypeEXT value", @@ -109523,6 +109839,11 @@ "vuid": "VUID-VkDeviceFaultAddressInfoEXT-addressType-parameter", "text": "addressType must be a valid VkDeviceFaultAddressTypeEXT value", "page": "chapters/debugging.html" + }, + { + "vuid": "VUID-VkDeviceFaultAddressInfoEXT-reportedAddress-parameter", + "text": "reportedAddress must be a valid VkDeviceAddress value", + "page": "chapters/debugging.html" } ] }, diff --git a/registry/vk.xml b/registry/vk.xml index 0cd1cf5..a2a5116 100644 --- a/registry/vk.xml +++ b/registry/vk.xml @@ -182,7 +182,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 323 +#define VK_HEADER_VERSION 324 // Complete version of this file #define VK_HEADER_VERSION_COMPLETE VK_MAKE_API_VERSION(0, 1, 4, VK_HEADER_VERSION) // Version of this file @@ -866,6 +866,7 @@ typedef void* MTLSharedEvent_id; + @@ -9143,7 +9144,7 @@ typedef void* MTLSharedEvent_id; uint32_t maxOpacity2StateSubdivisionLevel uint32_t maxOpacity4StateSubdivisionLevel - + VkStructureType sType void* pNext VkIndexType indexType @@ -10334,6 +10335,22 @@ typedef void* MTLSharedEvent_id; void* pNext VkBool32 vertexAttributeRobustness + + VkStructureType sType + void* pNext + VkBool32 denseGeometryFormat + + + VkStructureType sType + const void* pNext + VkDeviceOrHostAddressConstKHR compressedData + VkDeviceSize dataSize + uint32_t numTriangles + uint32_t numVertices + uint32_t maxPrimitiveIndex + uint32_t maxGeometryIndex + VkCompressedTriangleFormatAMDX format + VkStructureType sType void* pNext @@ -10842,6 +10859,8 @@ typedef void* MTLSharedEvent_id; + + @@ -13012,6 +13031,9 @@ typedef void* MTLSharedEvent_id; + + + @@ -13623,7 +13645,7 @@ typedef void* MTLSharedEvent_id; VkPipelineLayout pipelineLayout const VkAllocationCallbacks* pAllocator - + VkResult vkCreateSampler VkDevice device const VkSamplerCreateInfo* pCreateInfo @@ -15182,7 +15204,7 @@ typedef void* MTLSharedEvent_id; VkSparseImageMemoryRequirements2* pSparseMemoryRequirements - + VkResult vkCreateSamplerYcbcrConversion VkDevice device const VkSamplerYcbcrConversionCreateInfo* pCreateInfo @@ -18279,11 +18301,11 @@ typedef void* MTLSharedEvent_id; - + @@ -18791,6 +18813,7 @@ typedef void* MTLSharedEvent_id; + @@ -19325,7 +19348,6 @@ typedef void* MTLSharedEvent_id; - @@ -19359,7 +19381,7 @@ typedef void* MTLSharedEvent_id; - + @@ -23906,13 +23928,13 @@ typedef void* MTLSharedEvent_id; - - + + @@ -26581,11 +26603,20 @@ typedef void* MTLSharedEvent_id; - + - - - + + + + + + + + + + + + @@ -27746,8 +27777,8 @@ typedef void* MTLSharedEvent_id; - - + + @@ -28087,11 +28118,12 @@ typedef void* MTLSharedEvent_id; - + + @@ -28667,6 +28699,7 @@ typedef void* MTLSharedEvent_id; + @@ -28681,6 +28714,18 @@ typedef void* MTLSharedEvent_id; + + + + + + + + + + + + @@ -30368,9 +30413,6 @@ typedef void* MTLSharedEvent_id; - - -