diff options
author | Jon Leech <[email protected]> | 2023-11-26 21:52:30 -0800 |
---|---|---|
committer | Jon Leech <[email protected]> | 2023-11-26 21:54:32 -0800 |
commit | 9d27c893cdfc8d96bc8ad5f6f4d88743f958305e (patch) | |
tree | 4c64138e76f1149bd484cfaccf9f7e9d21cdae48 | |
parent | 7d92fe7b687eb92dafb5d344d1f4c817780cd3ce (diff) | |
download | Vulkan-Headers-9d27c893cdfc8d96bc8ad5f6f4d88743f958305e.tar.gz Vulkan-Headers-9d27c893cdfc8d96bc8ad5f6f4d88743f958305e.zip |
Update for Vulkan-Docs 1.3.271v1.3.271
-rw-r--r-- | include/vulkan/vulkan.hpp | 18 | ||||
-rw-r--r-- | include/vulkan/vulkan_core.h | 12 | ||||
-rw-r--r-- | include/vulkan/vulkan_enums.hpp | 8 | ||||
-rw-r--r-- | include/vulkan/vulkan_extension_inspection.hpp | 2 | ||||
-rw-r--r-- | include/vulkan/vulkan_funcs.hpp | 15 | ||||
-rw-r--r-- | include/vulkan/vulkan_handles.hpp | 19 | ||||
-rw-r--r-- | include/vulkan/vulkan_hash.hpp | 1 | ||||
-rw-r--r-- | include/vulkan/vulkan_hpp_macros.hpp | 7 | ||||
-rw-r--r-- | include/vulkan/vulkan_raii.hpp | 21 | ||||
-rw-r--r-- | include/vulkan/vulkan_structs.hpp | 45 | ||||
-rw-r--r-- | registry/generator.py | 5 | ||||
-rwxr-xr-x | registry/parse_dependency.py | 37 | ||||
-rw-r--r-- | registry/spec_tools/conventions.py | 83 | ||||
-rw-r--r-- | registry/spec_tools/util.py | 1 | ||||
-rw-r--r-- | registry/validusage.json | 194 | ||||
-rw-r--r-- | registry/vk.xml | 53 | ||||
-rwxr-xr-x | registry/vkconventions.py | 16 |
17 files changed, 271 insertions, 266 deletions
diff --git a/include/vulkan/vulkan.hpp b/include/vulkan/vulkan.hpp index 4a8f236..f1119c2 100644 --- a/include/vulkan/vulkan.hpp +++ b/include/vulkan/vulkan.hpp @@ -9,8 +9,9 @@ #define VULKAN_HPP #include <algorithm> -#include <array> // ArrayWrapperND -#include <string> // std::string +#include <array> // ArrayWrapperND +#include <string.h> // strnlen +#include <string> // std::string #include <vulkan/vulkan.h> #include <vulkan/vulkan_hpp_macros.hpp> @@ -55,7 +56,7 @@ extern "C" __declspec( dllimport ) FARPROC __stdcall GetProcAddress( HINSTANCE h # include <span> #endif -static_assert( VK_HEADER_VERSION == 270, "Wrong VK_HEADER_VERSION!" ); +static_assert( VK_HEADER_VERSION == 271, "Wrong VK_HEADER_VERSION!" ); // <tuple> includes <sys/sysmacros.h> through some other header // this results in major(x) being resolved to gnu_dev_major(x) @@ -134,14 +135,14 @@ namespace VULKAN_HPP_NAMESPACE template <typename B = T, typename std::enable_if<std::is_same<B, char>::value, int>::type = 0> operator std::string() const { - return std::string( this->data(), N ); + return std::string( this->data(), strnlen( this->data(), N ) ); } #if 17 <= VULKAN_HPP_CPP_VERSION template <typename B = T, typename std::enable_if<std::is_same<B, char>::value, int>::type = 0> operator std::string_view() const { - return std::string_view( this->data(), N ); + return std::string_view( this->data(), strnlen( this->data(), N ) ); } #endif @@ -5796,12 +5797,9 @@ namespace VULKAN_HPP_NAMESPACE return ::vkSetLatencyMarkerNV( device, swapchain, pLatencyMarkerInfo ); } - void vkGetLatencyTimingsNV( VkDevice device, - VkSwapchainKHR swapchain, - uint32_t * pTimingCount, - VkGetLatencyMarkerInfoNV * pLatencyMarkerInfo ) const VULKAN_HPP_NOEXCEPT + void vkGetLatencyTimingsNV( VkDevice device, VkSwapchainKHR swapchain, VkGetLatencyMarkerInfoNV * pLatencyMarkerInfo ) const VULKAN_HPP_NOEXCEPT { - return ::vkGetLatencyTimingsNV( device, swapchain, pTimingCount, pLatencyMarkerInfo ); + return ::vkGetLatencyTimingsNV( device, swapchain, pLatencyMarkerInfo ); } void vkQueueNotifyOutOfBandNV( VkQueue queue, const VkOutOfBandQueueTypeInfoNV * pQueueTypeInfo ) const VULKAN_HPP_NOEXCEPT diff --git a/include/vulkan/vulkan_core.h b/include/vulkan/vulkan_core.h index 71c2874..bc0949c 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 270 +#define VK_HEADER_VERSION 271 // Complete version of this file #define VK_HEADER_VERSION_COMPLETE VK_MAKE_API_VERSION(0, 1, 3, VK_HEADER_VERSION) @@ -10779,8 +10779,8 @@ typedef enum VkDebugReportObjectTypeEXT { VK_DEBUG_REPORT_OBJECT_TYPE_CU_FUNCTION_NVX_EXT = 1000029001, VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT = 1000150000, VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT = 1000165000, - VK_DEBUG_REPORT_OBJECT_TYPE_CUDA_MODULE_NV = 1000307000, - VK_DEBUG_REPORT_OBJECT_TYPE_CUDA_FUNCTION_NV = 1000307001, + VK_DEBUG_REPORT_OBJECT_TYPE_CUDA_MODULE_NV_EXT = 1000307000, + VK_DEBUG_REPORT_OBJECT_TYPE_CUDA_FUNCTION_NV_EXT = 1000307001, VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA_EXT = 1000366000, VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT, @@ -17790,7 +17790,7 @@ typedef struct VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT { // VK_NV_low_latency2 is a preprocessor guard. Do not pass it to API calls. #define VK_NV_low_latency2 1 -#define VK_NV_LOW_LATENCY_2_SPEC_VERSION 1 +#define VK_NV_LOW_LATENCY_2_SPEC_VERSION 2 #define VK_NV_LOW_LATENCY_2_EXTENSION_NAME "VK_NV_low_latency2" typedef enum VkLatencyMarkerNV { @@ -17858,6 +17858,7 @@ typedef struct VkLatencyTimingsFrameReportNV { typedef struct VkGetLatencyMarkerInfoNV { VkStructureType sType; const void* pNext; + uint32_t timingCount; VkLatencyTimingsFrameReportNV* pTimings; } VkGetLatencyMarkerInfoNV; @@ -17889,7 +17890,7 @@ typedef struct VkLatencySurfaceCapabilitiesNV { typedef VkResult (VKAPI_PTR *PFN_vkSetLatencySleepModeNV)(VkDevice device, VkSwapchainKHR swapchain, const VkLatencySleepModeInfoNV* pSleepModeInfo); typedef VkResult (VKAPI_PTR *PFN_vkLatencySleepNV)(VkDevice device, VkSwapchainKHR swapchain, const VkLatencySleepInfoNV* pSleepInfo); typedef void (VKAPI_PTR *PFN_vkSetLatencyMarkerNV)(VkDevice device, VkSwapchainKHR swapchain, const VkSetLatencyMarkerInfoNV* pLatencyMarkerInfo); -typedef void (VKAPI_PTR *PFN_vkGetLatencyTimingsNV)(VkDevice device, VkSwapchainKHR swapchain, uint32_t* pTimingCount, VkGetLatencyMarkerInfoNV* pLatencyMarkerInfo); +typedef void (VKAPI_PTR *PFN_vkGetLatencyTimingsNV)(VkDevice device, VkSwapchainKHR swapchain, VkGetLatencyMarkerInfoNV* pLatencyMarkerInfo); typedef void (VKAPI_PTR *PFN_vkQueueNotifyOutOfBandNV)(VkQueue queue, const VkOutOfBandQueueTypeInfoNV* pQueueTypeInfo); #ifndef VK_NO_PROTOTYPES @@ -17911,7 +17912,6 @@ VKAPI_ATTR void VKAPI_CALL vkSetLatencyMarkerNV( VKAPI_ATTR void VKAPI_CALL vkGetLatencyTimingsNV( VkDevice device, VkSwapchainKHR swapchain, - uint32_t* pTimingCount, VkGetLatencyMarkerInfoNV* pLatencyMarkerInfo); VKAPI_ATTR void VKAPI_CALL vkQueueNotifyOutOfBandNV( diff --git a/include/vulkan/vulkan_enums.hpp b/include/vulkan/vulkan_enums.hpp index 78ce69d..6ca3878 100644 --- a/include/vulkan/vulkan_enums.hpp +++ b/include/vulkan/vulkan_enums.hpp @@ -4676,8 +4676,8 @@ namespace VULKAN_HPP_NAMESPACE eSamplerYcbcrConversionKHR = VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR_EXT, eAccelerationStructureNV = VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT, #if defined( VK_ENABLE_BETA_EXTENSIONS ) - eCudaModuleNV = VK_DEBUG_REPORT_OBJECT_TYPE_CUDA_MODULE_NV, - eCudaFunctionNV = VK_DEBUG_REPORT_OBJECT_TYPE_CUDA_FUNCTION_NV, + eCudaModuleNV = VK_DEBUG_REPORT_OBJECT_TYPE_CUDA_MODULE_NV_EXT, + eCudaFunctionNV = VK_DEBUG_REPORT_OBJECT_TYPE_CUDA_FUNCTION_NV_EXT, #endif /*VK_ENABLE_BETA_EXTENSIONS*/ #if defined( VK_USE_PLATFORM_FUCHSIA ) eBufferCollectionFUCHSIA = VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA_EXT @@ -7326,8 +7326,8 @@ namespace VULKAN_HPP_NAMESPACE #if defined( VK_ENABLE_BETA_EXTENSIONS ) //=== VK_NV_cuda_kernel_launch === - case VULKAN_HPP_NAMESPACE::ObjectType::eCudaModuleNV: return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown; - case VULKAN_HPP_NAMESPACE::ObjectType::eCudaFunctionNV: return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown; + case VULKAN_HPP_NAMESPACE::ObjectType::eCudaModuleNV: return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eCudaModuleNV; + case VULKAN_HPP_NAMESPACE::ObjectType::eCudaFunctionNV: return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eCudaFunctionNV; #endif /*VK_ENABLE_BETA_EXTENSIONS*/ #if defined( VK_USE_PLATFORM_FUCHSIA ) diff --git a/include/vulkan/vulkan_extension_inspection.hpp b/include/vulkan/vulkan_extension_inspection.hpp index f981350..85a05c9 100644 --- a/include/vulkan/vulkan_extension_inspection.hpp +++ b/include/vulkan/vulkan_extension_inspection.hpp @@ -10,6 +10,8 @@ #include <map> #include <set> +#include <string> +#include <vector> #include <vulkan/vulkan.hpp> namespace VULKAN_HPP_NAMESPACE diff --git a/include/vulkan/vulkan_funcs.hpp b/include/vulkan/vulkan_funcs.hpp index ae420ff..3381f6d 100644 --- a/include/vulkan/vulkan_funcs.hpp +++ b/include/vulkan/vulkan_funcs.hpp @@ -23170,29 +23170,24 @@ namespace VULKAN_HPP_NAMESPACE template <typename Dispatch> VULKAN_HPP_INLINE void Device::getLatencyTimingsNV( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, - uint32_t * pTimingCount, VULKAN_HPP_NAMESPACE::GetLatencyMarkerInfoNV * pLatencyMarkerInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT { VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION ); - d.vkGetLatencyTimingsNV( - m_device, static_cast<VkSwapchainKHR>( swapchain ), pTimingCount, reinterpret_cast<VkGetLatencyMarkerInfoNV *>( pLatencyMarkerInfo ) ); + d.vkGetLatencyTimingsNV( m_device, static_cast<VkSwapchainKHR>( swapchain ), reinterpret_cast<VkGetLatencyMarkerInfoNV *>( pLatencyMarkerInfo ) ); } #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE template <typename Dispatch> - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::pair<uint32_t, VULKAN_HPP_NAMESPACE::GetLatencyMarkerInfoNV> + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::GetLatencyMarkerInfoNV Device::getLatencyTimingsNV( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT { VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION ); - std::pair<uint32_t, VULKAN_HPP_NAMESPACE::GetLatencyMarkerInfoNV> data_; - uint32_t & timingCount = data_.first; - VULKAN_HPP_NAMESPACE::GetLatencyMarkerInfoNV & latencyMarkerInfo = data_.second; - d.vkGetLatencyTimingsNV( - m_device, static_cast<VkSwapchainKHR>( swapchain ), &timingCount, reinterpret_cast<VkGetLatencyMarkerInfoNV *>( &latencyMarkerInfo ) ); + VULKAN_HPP_NAMESPACE::GetLatencyMarkerInfoNV latencyMarkerInfo; + d.vkGetLatencyTimingsNV( m_device, static_cast<VkSwapchainKHR>( swapchain ), reinterpret_cast<VkGetLatencyMarkerInfoNV *>( &latencyMarkerInfo ) ); - return data_; + return latencyMarkerInfo; } #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */ diff --git a/include/vulkan/vulkan_handles.hpp b/include/vulkan/vulkan_handles.hpp index 266e310..22c3669 100644 --- a/include/vulkan/vulkan_handles.hpp +++ b/include/vulkan/vulkan_handles.hpp @@ -7179,7 +7179,7 @@ namespace VULKAN_HPP_NAMESPACE static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eCudaFunctionNV; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = - VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown; + VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eCudaFunctionNV; public: VULKAN_HPP_CONSTEXPR CudaFunctionNV() = default; @@ -7245,6 +7245,12 @@ namespace VULKAN_HPP_NAMESPACE }; template <> + struct CppType<VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eCudaFunctionNV> + { + using Type = VULKAN_HPP_NAMESPACE::CudaFunctionNV; + }; + + template <> struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::CudaFunctionNV> { static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true; @@ -7260,7 +7266,7 @@ namespace VULKAN_HPP_NAMESPACE static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eCudaModuleNV; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = - VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown; + VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eCudaModuleNV; public: VULKAN_HPP_CONSTEXPR CudaModuleNV() = default; @@ -7326,6 +7332,12 @@ namespace VULKAN_HPP_NAMESPACE }; template <> + struct CppType<VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eCudaModuleNV> + { + using Type = VULKAN_HPP_NAMESPACE::CudaModuleNV; + }; + + template <> struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::CudaModuleNV> { static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true; @@ -13562,12 +13574,11 @@ namespace VULKAN_HPP_NAMESPACE template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> void getLatencyTimingsNV( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, - uint32_t * pTimingCount, VULKAN_HPP_NAMESPACE::GetLatencyMarkerInfoNV * pLatencyMarkerInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - VULKAN_HPP_NODISCARD std::pair<uint32_t, VULKAN_HPP_NAMESPACE::GetLatencyMarkerInfoNV> + VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::GetLatencyMarkerInfoNV getLatencyTimingsNV( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */ diff --git a/include/vulkan/vulkan_hash.hpp b/include/vulkan/vulkan_hash.hpp index 84516ea..f9e94ee 100644 --- a/include/vulkan/vulkan_hash.hpp +++ b/include/vulkan/vulkan_hash.hpp @@ -5191,6 +5191,7 @@ namespace std std::size_t seed = 0; VULKAN_HPP_HASH_COMBINE( seed, getLatencyMarkerInfoNV.sType ); VULKAN_HPP_HASH_COMBINE( seed, getLatencyMarkerInfoNV.pNext ); + VULKAN_HPP_HASH_COMBINE( seed, getLatencyMarkerInfoNV.timingCount ); VULKAN_HPP_HASH_COMBINE( seed, getLatencyMarkerInfoNV.pTimings ); return seed; } diff --git a/include/vulkan/vulkan_hpp_macros.hpp b/include/vulkan/vulkan_hpp_macros.hpp index 506e958..7bbd187 100644 --- a/include/vulkan/vulkan_hpp_macros.hpp +++ b/include/vulkan/vulkan_hpp_macros.hpp @@ -28,6 +28,13 @@ # error "vulkan.hpp needs at least c++ standard version 11" #endif +// include headers holding feature-test macros +#if 20 <= VULKAN_HPP_CPP_VERSION +# include <version> +#else +# include <ciso646> +#endif + #if defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) # if !defined( VULKAN_HPP_NO_SMART_HANDLE ) # define VULKAN_HPP_NO_SMART_HANDLE diff --git a/include/vulkan/vulkan_raii.hpp b/include/vulkan/vulkan_raii.hpp index 99616d0..7057f12 100644 --- a/include/vulkan/vulkan_raii.hpp +++ b/include/vulkan/vulkan_raii.hpp @@ -6482,7 +6482,7 @@ namespace VULKAN_HPP_NAMESPACE static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eCudaFunctionNV; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = - VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown; + VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eCudaFunctionNV; public: CudaFunctionNV( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, @@ -6604,7 +6604,7 @@ namespace VULKAN_HPP_NAMESPACE static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eCudaModuleNV; static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = - VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown; + VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eCudaModuleNV; public: CudaModuleNV( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, @@ -11650,7 +11650,7 @@ namespace VULKAN_HPP_NAMESPACE void setLatencyMarkerNV( const VULKAN_HPP_NAMESPACE::SetLatencyMarkerInfoNV & latencyMarkerInfo ) const VULKAN_HPP_NOEXCEPT; - VULKAN_HPP_NODISCARD std::pair<uint32_t, VULKAN_HPP_NAMESPACE::GetLatencyMarkerInfoNV> getLatencyTimingsNV() const VULKAN_HPP_NOEXCEPT; + VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::GetLatencyMarkerInfoNV getLatencyTimingsNV() const VULKAN_HPP_NOEXCEPT; private: VULKAN_HPP_NAMESPACE::Device m_device = {}; @@ -21106,20 +21106,15 @@ namespace VULKAN_HPP_NAMESPACE reinterpret_cast<const VkSetLatencyMarkerInfoNV *>( &latencyMarkerInfo ) ); } - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::pair<uint32_t, VULKAN_HPP_NAMESPACE::GetLatencyMarkerInfoNV> - SwapchainKHR::getLatencyTimingsNV() const VULKAN_HPP_NOEXCEPT + VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::GetLatencyMarkerInfoNV SwapchainKHR::getLatencyTimingsNV() const VULKAN_HPP_NOEXCEPT { VULKAN_HPP_ASSERT( getDispatcher()->vkGetLatencyTimingsNV && "Function <vkGetLatencyTimingsNV> requires <VK_NV_low_latency2>" ); - std::pair<uint32_t, VULKAN_HPP_NAMESPACE::GetLatencyMarkerInfoNV> data_; - uint32_t & timingCount = data_.first; - VULKAN_HPP_NAMESPACE::GetLatencyMarkerInfoNV & latencyMarkerInfo = data_.second; - getDispatcher()->vkGetLatencyTimingsNV( static_cast<VkDevice>( m_device ), - static_cast<VkSwapchainKHR>( m_swapchain ), - &timingCount, - reinterpret_cast<VkGetLatencyMarkerInfoNV *>( &latencyMarkerInfo ) ); + VULKAN_HPP_NAMESPACE::GetLatencyMarkerInfoNV latencyMarkerInfo; + getDispatcher()->vkGetLatencyTimingsNV( + static_cast<VkDevice>( m_device ), static_cast<VkSwapchainKHR>( m_swapchain ), reinterpret_cast<VkGetLatencyMarkerInfoNV *>( &latencyMarkerInfo ) ); - return data_; + return latencyMarkerInfo; } VULKAN_HPP_INLINE void Queue::notifyOutOfBandNV( const VULKAN_HPP_NAMESPACE::OutOfBandQueueTypeInfoNV & queueTypeInfo ) const VULKAN_HPP_NOEXCEPT diff --git a/include/vulkan/vulkan_structs.hpp b/include/vulkan/vulkan_structs.hpp index d955ef3..2669391 100644 --- a/include/vulkan/vulkan_structs.hpp +++ b/include/vulkan/vulkan_structs.hpp @@ -38980,9 +38980,11 @@ namespace VULKAN_HPP_NAMESPACE static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eGetLatencyMarkerInfoNV; #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR GetLatencyMarkerInfoNV( VULKAN_HPP_NAMESPACE::LatencyTimingsFrameReportNV * pTimings_ = {}, - const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT + VULKAN_HPP_CONSTEXPR GetLatencyMarkerInfoNV( uint32_t timingCount_ = {}, + VULKAN_HPP_NAMESPACE::LatencyTimingsFrameReportNV * pTimings_ = {}, + const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT : pNext( pNext_ ) + , timingCount( timingCount_ ) , pTimings( pTimings_ ) { } @@ -38994,6 +38996,14 @@ namespace VULKAN_HPP_NAMESPACE { } +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + GetLatencyMarkerInfoNV( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<VULKAN_HPP_NAMESPACE::LatencyTimingsFrameReportNV> const & timings_, + const void * pNext_ = nullptr ) + : pNext( pNext_ ), timingCount( static_cast<uint32_t>( timings_.size() ) ), pTimings( timings_.data() ) + { + } +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ + GetLatencyMarkerInfoNV & operator=( GetLatencyMarkerInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ @@ -39010,12 +39020,28 @@ namespace VULKAN_HPP_NAMESPACE return *this; } + VULKAN_HPP_CONSTEXPR_14 GetLatencyMarkerInfoNV & setTimingCount( uint32_t timingCount_ ) VULKAN_HPP_NOEXCEPT + { + timingCount = timingCount_; + return *this; + } + VULKAN_HPP_CONSTEXPR_14 GetLatencyMarkerInfoNV & setPTimings( VULKAN_HPP_NAMESPACE::LatencyTimingsFrameReportNV * pTimings_ ) VULKAN_HPP_NOEXCEPT { pTimings = pTimings_; return *this; } -#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/ + +# if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) + GetLatencyMarkerInfoNV & + setTimings( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<VULKAN_HPP_NAMESPACE::LatencyTimingsFrameReportNV> const & timings_ ) VULKAN_HPP_NOEXCEPT + { + timingCount = static_cast<uint32_t>( timings_.size() ); + pTimings = timings_.data(); + return *this; + } +# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ +#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/ operator VkGetLatencyMarkerInfoNV const &() const VULKAN_HPP_NOEXCEPT { @@ -39031,11 +39057,11 @@ namespace VULKAN_HPP_NAMESPACE # if 14 <= VULKAN_HPP_CPP_VERSION auto # else - std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::LatencyTimingsFrameReportNV * const &> + std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &, VULKAN_HPP_NAMESPACE::LatencyTimingsFrameReportNV * const &> # endif reflect() const VULKAN_HPP_NOEXCEPT { - return std::tie( sType, pNext, pTimings ); + return std::tie( sType, pNext, timingCount, pTimings ); } #endif @@ -39047,7 +39073,7 @@ namespace VULKAN_HPP_NAMESPACE # if defined( VULKAN_HPP_USE_REFLECT ) return this->reflect() == rhs.reflect(); # else - return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( pTimings == rhs.pTimings ); + return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( timingCount == rhs.timingCount ) && ( pTimings == rhs.pTimings ); # endif } @@ -39058,9 +39084,10 @@ namespace VULKAN_HPP_NAMESPACE #endif public: - VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eGetLatencyMarkerInfoNV; - const void * pNext = {}; - VULKAN_HPP_NAMESPACE::LatencyTimingsFrameReportNV * pTimings = {}; + VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eGetLatencyMarkerInfoNV; + const void * pNext = {}; + uint32_t timingCount = {}; + VULKAN_HPP_NAMESPACE::LatencyTimingsFrameReportNV * pTimings = {}; }; template <> diff --git a/registry/generator.py b/registry/generator.py index 669e5d6..5fb6370 100644 --- a/registry/generator.py +++ b/registry/generator.py @@ -64,9 +64,8 @@ def regSortCategoryKey(feature): return 0.5 else: return 0 - if (feature.category == 'ARB' - or feature.category == 'KHR' - or feature.category == 'OES'): + + if feature.category.upper() in ['ARB', 'KHR', 'OES']: return 1 return 2 diff --git a/registry/parse_dependency.py b/registry/parse_dependency.py index 313b3c0..b3ef841 100755 --- a/registry/parse_dependency.py +++ b/registry/parse_dependency.py @@ -52,45 +52,20 @@ import operator import pyparsing as pp import re +from apiconventions import APIConventions as APIConventions +conventions = APIConventions() + def markupPassthrough(name): """Pass a name (leaf or operator) through without applying markup""" return name -# A regexp matching Vulkan and VulkanSC core version names -# The Conventions is_api_version_name() method is similar, but does not -# return the matches. -apiVersionNamePat = re.compile(r'(VK|VKSC)_VERSION_([0-9]+)_([0-9]+)') - -def apiVersionNameMatch(name): - """Return [ apivariant, major, minor ] if name is an API version name, - or [ None, None, None ] if it is not.""" - - match = apiVersionNamePat.match(name) - if match is not None: - return [ match.group(1), match.group(2), match.group(3) ] - else: - return [ None, None, None ] - def leafMarkupAsciidoc(name): """Markup a leaf name as an asciidoc link to an API version or extension anchor. - name - version or extension name""" - (apivariant, major, minor) = apiVersionNameMatch(name) - - if apivariant is not None: - version = major + '.' + minor - if apivariant == 'VKSC': - # Vulkan SC has a different anchor pattern for version appendices - if version == '1.0': - return 'Vulkan SC 1.0' - else: - return f'<<versions-sc-{version}, Version SC {version}>>' - else: - return f'<<versions-{version}, Version {version}>>' - else: - return f'apiext:{name}' + return conventions.formatVersionOrExtension(name) def leafMarkupC(name): """Markup a leaf name as a C expression, using conventions of the @@ -344,6 +319,10 @@ def dependencyMarkup(dependency): return markupTraverse(parsed) if __name__ == "__main__": + for str in [ 'VK_VERSION_1_0', 'cl_khr_extension_name', 'XR_VERSION_3_2', 'CL_VERSION_1_0' ]: + print(f'{str} -> {conventions.formatVersionOrExtension(str)}') + import sys + sys.exit(0) termdict = { 'VK_VERSION_1_1' : True, diff --git a/registry/spec_tools/conventions.py b/registry/spec_tools/conventions.py index 00d2b81..9118fea 100644 --- a/registry/spec_tools/conventions.py +++ b/registry/spec_tools/conventions.py @@ -32,12 +32,12 @@ TYPES_KNOWN_ALWAYS_VALID = set(('char', )) # Split an extension name into vendor ID and name portions -EXT_NAME_DECOMPOSE_RE = re.compile(r'[A-Z]+_(?P<vendor>[A-Z]+)_(?P<name>[\w_]+)') +EXT_NAME_DECOMPOSE_RE = re.compile(r'(?P<prefix>[A-Za-z]+)_(?P<vendor>[A-Za-z]+)_(?P<name>[\w_]+)') # Match an API version name. +# Match object includes API prefix, major, and minor version numbers. # This could be refined further for specific APIs. -API_VERSION_NAME_RE = re.compile(r'[A-Z]+_VERSION_[0-9]') - +API_VERSION_NAME_RE = re.compile(r'(?P<apivariant>[A-Za-z]+)_VERSION_(?P<major>[0-9]+)_(?P<minor>[0-9]+)') class ProseListFormats(Enum): """A connective, possibly with a quantifier.""" @@ -80,10 +80,39 @@ class ConventionsBase(abc.ABC): self._command_prefix = None self._type_prefix = None + def formatVersionOrExtension(self, name): + """Mark up an API version or extension name as a link in the spec.""" + + # Is this a version name? + match = API_VERSION_NAME_RE.match(name) + if match is not None: + return self.formatVersion(name, + match.group('apivariant'), + match.group('major'), + match.group('minor')) + else: + # If not, assumed to be an extension name. Might be worth checking. + return self.formatExtension(name) + + def formatVersion(self, name, apivariant, major, minor): + """Mark up an API version name as a link in the spec.""" + return '`<<{}>>`'.format(name) + def formatExtension(self, name): - """Mark up an extension name as a link the spec.""" + """Mark up an extension name as a link in the spec.""" return '`<<{}>>`'.format(name) + def formatSPIRVlink(self, name): + """Mark up a SPIR-V extension name as an external link in the spec. + Since these are external links, the formatting probably will be + the same for all APIs creating such links, so long as they use + the asciidoctor {spirv} attribute for the base path to the SPIR-V + extensions.""" + + (vendor, _) = self.extension_name_split(name) + + return f'{{spirv}}/{vendor}/{name}.html[{name}]' + @property @abc.abstractmethod def null(self): @@ -261,6 +290,42 @@ class ConventionsBase(abc.ABC): raise NotImplementedError @property + def extension_name_prefix(self): + """Return extension name prefix. + + Typically two uppercase letters followed by an underscore. + + Assumed to be the same as api_prefix, but some APIs use different + case conventions.""" + + return self.api_prefix + + @property + def write_contacts(self): + """Return whether contact list should be written to extension appendices""" + return False + + @property + def write_extension_type(self): + """Return whether extension type should be written to extension appendices""" + return True + + @property + def write_extension_number(self): + """Return whether extension number should be written to extension appendices""" + return True + + @property + def write_extension_revision(self): + """Return whether extension revision number should be written to extension appendices""" + return True + + @property + def write_refpage_include(self): + """Return whether refpage include should be written to extension appendices""" + return True + + @property def api_version_prefix(self): """Return API core version token prefix. @@ -375,6 +440,16 @@ class ConventionsBase(abc.ABC): documentation includes.""" return False + def extension_name_split(self, name): + """Split an extension name, returning (vendor, rest of name). + The API prefix of the name is ignored.""" + + match = EXT_NAME_DECOMPOSE_RE.match(name) + vendor = match.group('vendor') + bare_name = match.group('name') + + return (vendor, bare_name) + @abc.abstractmethod def extension_file_path(self, name): """Return file path to an extension appendix relative to a directory diff --git a/registry/spec_tools/util.py b/registry/spec_tools/util.py index bf25845..b4b4569 100644 --- a/registry/spec_tools/util.py +++ b/registry/spec_tools/util.py @@ -1,7 +1,6 @@ """Utility functions not closely tied to other spec_tools types.""" # Copyright (c) 2018-2019 Collabora, Ltd. # Copyright 2013-2023 The Khronos Group Inc. -# # SPDX-License-Identifier: Apache-2.0 diff --git a/registry/validusage.json b/registry/validusage.json index 897f41c..7c01ab7 100644 --- a/registry/validusage.json +++ b/registry/validusage.json @@ -1,9 +1,9 @@ { "version info": { "schema version": 2, - "api version": "1.3.270", - "comment": "from git branch: github-main commit: b4792eab92a1d132ef95b56a7681cc6af69b570e", - "date": "2023-11-10 11:37:06Z" + "api version": "1.3.271", + "comment": "from git branch: github-main commit: dbad946f7edc9137dbb972ea8e271592e3fb9746", + "date": "2023-11-27 05:16:04Z" }, "validation": { "vkGetInstanceProcAddr": { @@ -3892,8 +3892,8 @@ "vkDestroySemaphore": { "core": [ { - "vuid": "VUID-vkDestroySemaphore-semaphore-01137", - "text": "All submitted batches that refer to <code>semaphore</code> <strong class=\"purple\">must</strong> have completed execution", + "vuid": "VUID-vkDestroySemaphore-semaphore-05149", + "text": "All submitted batches that refer to <code>semaphore</code> <strong class=\"purple\">must</strong> have completed execution", "page": "vkspec" }, { @@ -7646,13 +7646,13 @@ "page": "vkspec" }, { - "vuid": "VUID-VkImageMemoryBarrier2-image-03319", - "text": "If <code>image</code> has a depth/stencil format with both depth and stencil and the <a href=\"#features-separateDepthStencilLayouts\"><code>separateDepthStencilLayouts</code></a> feature is enabled, then the <code>aspectMask</code> member of <code>subresourceRange</code> <strong class=\"purple\">must</strong> include either or both <code>VK_IMAGE_ASPECT_DEPTH_BIT</code> and <code>VK_IMAGE_ASPECT_STENCIL_BIT</code>", + "vuid": "VUID-VkImageMemoryBarrier2-image-03320", + "text": "If <code>image</code> has a depth/stencil format with both depth and stencil and the <a href=\"#features-separateDepthStencilLayouts\"><code>separateDepthStencilLayouts</code></a> feature is not enabled, then the <code>aspectMask</code> member of <code>subresourceRange</code> <strong class=\"purple\">must</strong> include both <code>VK_IMAGE_ASPECT_DEPTH_BIT</code> and <code>VK_IMAGE_ASPECT_STENCIL_BIT</code>", "page": "vkspec" }, { - "vuid": "VUID-VkImageMemoryBarrier2-image-03320", - "text": "If <code>image</code> has a depth/stencil format with both depth and stencil and the <a href=\"#features-separateDepthStencilLayouts\"><code>separateDepthStencilLayouts</code></a> feature is not enabled, then the <code>aspectMask</code> member of <code>subresourceRange</code> <strong class=\"purple\">must</strong> include both <code>VK_IMAGE_ASPECT_DEPTH_BIT</code> and <code>VK_IMAGE_ASPECT_STENCIL_BIT</code>", + "vuid": "VUID-VkImageMemoryBarrier2-image-03319", + "text": "If <code>image</code> has a depth/stencil format with both depth and stencil and the <a href=\"#features-separateDepthStencilLayouts\"><code>separateDepthStencilLayouts</code></a> feature is enabled, then the <code>aspectMask</code> member of <code>subresourceRange</code> <strong class=\"purple\">must</strong> include either or both <code>VK_IMAGE_ASPECT_DEPTH_BIT</code> and <code>VK_IMAGE_ASPECT_STENCIL_BIT</code>", "page": "vkspec" }, { @@ -7945,13 +7945,13 @@ "page": "vkspec" }, { - "vuid": "VUID-VkImageMemoryBarrier-image-03319", - "text": "If <code>image</code> has a depth/stencil format with both depth and stencil and the <a href=\"#features-separateDepthStencilLayouts\"><code>separateDepthStencilLayouts</code></a> feature is enabled, then the <code>aspectMask</code> member of <code>subresourceRange</code> <strong class=\"purple\">must</strong> include either or both <code>VK_IMAGE_ASPECT_DEPTH_BIT</code> and <code>VK_IMAGE_ASPECT_STENCIL_BIT</code>", + "vuid": "VUID-VkImageMemoryBarrier-image-03320", + "text": "If <code>image</code> has a depth/stencil format with both depth and stencil and the <a href=\"#features-separateDepthStencilLayouts\"><code>separateDepthStencilLayouts</code></a> feature is not enabled, then the <code>aspectMask</code> member of <code>subresourceRange</code> <strong class=\"purple\">must</strong> include both <code>VK_IMAGE_ASPECT_DEPTH_BIT</code> and <code>VK_IMAGE_ASPECT_STENCIL_BIT</code>", "page": "vkspec" }, { - "vuid": "VUID-VkImageMemoryBarrier-image-03320", - "text": "If <code>image</code> has a depth/stencil format with both depth and stencil and the <a href=\"#features-separateDepthStencilLayouts\"><code>separateDepthStencilLayouts</code></a> feature is not enabled, then the <code>aspectMask</code> member of <code>subresourceRange</code> <strong class=\"purple\">must</strong> include both <code>VK_IMAGE_ASPECT_DEPTH_BIT</code> and <code>VK_IMAGE_ASPECT_STENCIL_BIT</code>", + "vuid": "VUID-VkImageMemoryBarrier-image-03319", + "text": "If <code>image</code> has a depth/stencil format with both depth and stencil and the <a href=\"#features-separateDepthStencilLayouts\"><code>separateDepthStencilLayouts</code></a> feature is enabled, then the <code>aspectMask</code> member of <code>subresourceRange</code> <strong class=\"purple\">must</strong> include either or both <code>VK_IMAGE_ASPECT_DEPTH_BIT</code> and <code>VK_IMAGE_ASPECT_STENCIL_BIT</code>", "page": "vkspec" }, { @@ -8083,13 +8083,13 @@ "page": "vkspec" }, { - "vuid": "VUID-VkHostImageLayoutTransitionInfoEXT-image-03319", - "text": "If <code>image</code> has a depth/stencil format with both depth and stencil and the <a href=\"#features-separateDepthStencilLayouts\"><code>separateDepthStencilLayouts</code></a> feature is enabled, then the <code>aspectMask</code> member of <code>subresourceRange</code> <strong class=\"purple\">must</strong> include either or both <code>VK_IMAGE_ASPECT_DEPTH_BIT</code> and <code>VK_IMAGE_ASPECT_STENCIL_BIT</code>", + "vuid": "VUID-VkHostImageLayoutTransitionInfoEXT-image-03320", + "text": "If <code>image</code> has a depth/stencil format with both depth and stencil and the <a href=\"#features-separateDepthStencilLayouts\"><code>separateDepthStencilLayouts</code></a> feature is not enabled, then the <code>aspectMask</code> member of <code>subresourceRange</code> <strong class=\"purple\">must</strong> include both <code>VK_IMAGE_ASPECT_DEPTH_BIT</code> and <code>VK_IMAGE_ASPECT_STENCIL_BIT</code>", "page": "vkspec" }, { - "vuid": "VUID-VkHostImageLayoutTransitionInfoEXT-image-03320", - "text": "If <code>image</code> has a depth/stencil format with both depth and stencil and the <a href=\"#features-separateDepthStencilLayouts\"><code>separateDepthStencilLayouts</code></a> feature is not enabled, then the <code>aspectMask</code> member of <code>subresourceRange</code> <strong class=\"purple\">must</strong> include both <code>VK_IMAGE_ASPECT_DEPTH_BIT</code> and <code>VK_IMAGE_ASPECT_STENCIL_BIT</code>", + "vuid": "VUID-VkHostImageLayoutTransitionInfoEXT-image-03319", + "text": "If <code>image</code> has a depth/stencil format with both depth and stencil and the <a href=\"#features-separateDepthStencilLayouts\"><code>separateDepthStencilLayouts</code></a> feature is enabled, then the <code>aspectMask</code> member of <code>subresourceRange</code> <strong class=\"purple\">must</strong> include either or both <code>VK_IMAGE_ASPECT_DEPTH_BIT</code> and <code>VK_IMAGE_ASPECT_STENCIL_BIT</code>", "page": "vkspec" }, { @@ -11977,12 +11977,12 @@ }, { "vuid": "VUID-VkRenderPassBeginInfo-None-08996", - "text": "If <a href=\"#VkDeviceGroupRenderPassBeginInfo\">VkDeviceGroupRenderPassBeginInfo</a>::<code>deviceRenderAreaCount</code> is 0, <code>renderArea.extent.width</code> <strong class=\"purple\">must</strong> be greater than 0", + "text": "If the <code>pNext</code> chain does not contain <a href=\"#VkDeviceGroupRenderPassBeginInfo\">VkDeviceGroupRenderPassBeginInfo</a> or its <code>deviceRenderAreaCount</code> member is equal to 0, <code>renderArea.extent.width</code> <strong class=\"purple\">must</strong> be greater than 0", "page": "vkspec" }, { "vuid": "VUID-VkRenderPassBeginInfo-None-08997", - "text": "If <a href=\"#VkDeviceGroupRenderPassBeginInfo\">VkDeviceGroupRenderPassBeginInfo</a>::<code>deviceRenderAreaCount</code> is 0, <code>renderArea.extent.height</code> <strong class=\"purple\">must</strong> be greater than 0", + "text": "If the <code>pNext</code> chain does not contain <a href=\"#VkDeviceGroupRenderPassBeginInfo\">VkDeviceGroupRenderPassBeginInfo</a> or its <code>deviceRenderAreaCount</code> member is equal to 0, <code>renderArea.extent.height</code> <strong class=\"purple\">must</strong> be greater than 0", "page": "vkspec" }, { @@ -14069,16 +14069,6 @@ "vkGetCudaModuleCacheNV": { "core": [ { - "vuid": "VUID-vkGetCudaModuleCacheNV-pCacheSize-09414", - "text": "<code>pCacheSize</code> <strong class=\"purple\">must</strong> be a pointer containing the amount of bytes to be copied in <code>pCacheData</code>. If <code>pCacheData</code> is NULL, the function will return in this pointer the total amount of bytes required to later perform the copy into <code>pCacheData</code>.", - "page": "vkspec" - }, - { - "vuid": "VUID-vkGetCudaModuleCacheNV-pCacheData-09415", - "text": "<code>pCacheData</code> <strong class=\"purple\">may</strong> be a pointer to a buffer in which the binary cache will be copied. The amount of bytes copied is defined by the value in <code>pCacheSize</code>. This pointer <strong class=\"purple\">may</strong> be NULL. In this case, the function will write the total amount of required data in <code>pCacheSize</code>.", - "page": "vkspec" - }, - { "vuid": "VUID-vkGetCudaModuleCacheNV-device-parameter", "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle", "page": "vkspec" @@ -22164,12 +22154,12 @@ }, { "vuid": "VUID-vkGetImageSubresourceLayout-mipLevel-01716", - "text": "The <code>mipLevel</code> member of <code>pSubresource</code> <strong class=\"purple\">must</strong> be less than the <code>mipLevels</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>image</code> was created", + "text": "The <code>mipLevel</code> member of <code>pSubresource</code> <strong class=\"purple\">must</strong> be less than the <code>mipLevels</code> specified in <code>image</code>", "page": "vkspec" }, { "vuid": "VUID-vkGetImageSubresourceLayout-arrayLayer-01717", - "text": "The <code>arrayLayer</code> member of <code>pSubresource</code> <strong class=\"purple\">must</strong> be less than the <code>arrayLayers</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>image</code> was created", + "text": "The <code>arrayLayer</code> member of <code>pSubresource</code> <strong class=\"purple\">must</strong> be less than the <code>arrayLayers</code> specified in <code>image</code>", "page": "vkspec" }, { @@ -22198,12 +22188,12 @@ "page": "vkspec" }, { - "vuid": "VUID-vkGetImageSubresourceLayout-image-01895", + "vuid": "VUID-vkGetImageSubresourceLayout-image-09432", "text": "If <code>image</code> was created with the <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID</code> external memory handle type, then <code>image</code> <strong class=\"purple\">must</strong> be bound to memory", "page": "vkspec" }, { - "vuid": "VUID-vkGetImageSubresourceLayout-tiling-02271", + "vuid": "VUID-vkGetImageSubresourceLayout-tiling-09433", "text": "If the <code>tiling</code> of the <code>image</code> is <code>VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT</code>, then the <code>aspectMask</code> member of <code>pSubresource</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_ASPECT_MEMORY_PLANE<em>_i_</em>BIT_EXT</code> and the index <em>i</em> <strong class=\"purple\">must</strong> be less than the <a href=\"#VkDrmFormatModifierPropertiesEXT\">VkDrmFormatModifierPropertiesEXT</a>::<code>drmFormatModifierPlaneCount</code> associated with the image’s <code>format</code> and <a href=\"#VkImageDrmFormatModifierPropertiesEXT\">VkImageDrmFormatModifierPropertiesEXT</a>::<code>drmFormatModifier</code>", "page": "vkspec" }, @@ -22257,12 +22247,12 @@ }, { "vuid": "VUID-vkGetImageSubresourceLayout2KHR-mipLevel-01716", - "text": "The <code>mipLevel</code> member of <code>pSubresource</code> <strong class=\"purple\">must</strong> be less than the <code>mipLevels</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>image</code> was created", + "text": "The <code>mipLevel</code> member of <code>pSubresource</code> <strong class=\"purple\">must</strong> be less than the <code>mipLevels</code> specified in <code>image</code>", "page": "vkspec" }, { "vuid": "VUID-vkGetImageSubresourceLayout2KHR-arrayLayer-01717", - "text": "The <code>arrayLayer</code> member of <code>pSubresource</code> <strong class=\"purple\">must</strong> be less than the <code>arrayLayers</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>image</code> was created", + "text": "The <code>arrayLayer</code> member of <code>pSubresource</code> <strong class=\"purple\">must</strong> be less than the <code>arrayLayers</code> specified in <code>image</code>", "page": "vkspec" }, { @@ -22291,12 +22281,12 @@ "page": "vkspec" }, { - "vuid": "VUID-vkGetImageSubresourceLayout2KHR-image-01895", + "vuid": "VUID-vkGetImageSubresourceLayout2KHR-image-09434", "text": "If <code>image</code> was created with the <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID</code> external memory handle type, then <code>image</code> <strong class=\"purple\">must</strong> be bound to memory", "page": "vkspec" }, { - "vuid": "VUID-vkGetImageSubresourceLayout2KHR-tiling-02271", + "vuid": "VUID-vkGetImageSubresourceLayout2KHR-tiling-09435", "text": "If the <code>tiling</code> of the <code>image</code> is <code>VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT</code>, then the <code>aspectMask</code> member of <code>pSubresource</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_ASPECT_MEMORY_PLANE<em>_i_</em>BIT_EXT</code> and the index <em>i</em> <strong class=\"purple\">must</strong> be less than the <a href=\"#VkDrmFormatModifierPropertiesEXT\">VkDrmFormatModifierPropertiesEXT</a>::<code>drmFormatModifierPlaneCount</code> associated with the image’s <code>format</code> and <a href=\"#VkImageDrmFormatModifierPropertiesEXT\">VkImageDrmFormatModifierPropertiesEXT</a>::<code>drmFormatModifier</code>", "page": "vkspec" }, @@ -22402,47 +22392,37 @@ }, { "vuid": "VUID-VkDeviceImageSubresourceInfoKHR-mipLevel-01716", - "text": "The <code>mipLevel</code> member of <code>pSubresource</code> <strong class=\"purple\">must</strong> be less than the <code>mipLevels</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>image</code> was created", + "text": "The <code>mipLevel</code> member of <code>pSubresource</code> <strong class=\"purple\">must</strong> be less than the <code>mipLevels</code> specified in <code>pCreateInfo</code>", "page": "vkspec" }, { "vuid": "VUID-VkDeviceImageSubresourceInfoKHR-arrayLayer-01717", - "text": "The <code>arrayLayer</code> member of <code>pSubresource</code> <strong class=\"purple\">must</strong> be less than the <code>arrayLayers</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>image</code> was created", + "text": "The <code>arrayLayer</code> member of <code>pSubresource</code> <strong class=\"purple\">must</strong> be less than the <code>arrayLayers</code> specified in <code>pCreateInfo</code>", "page": "vkspec" }, { "vuid": "VUID-VkDeviceImageSubresourceInfoKHR-format-08886", - "text": "If <code>format</code> of the <code>image</code> is a color format, <code>tiling</code> of the <code>image</code> is <code>VK_IMAGE_TILING_LINEAR</code> or <code>VK_IMAGE_TILING_OPTIMAL</code>, and does not have a <a href=\"#formats-requiring-sampler-ycbcr-conversion\">multi-planar image format</a>, the <code>aspectMask</code> member of <code>pSubresource</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_ASPECT_COLOR_BIT</code>", + "text": "If <code>format</code> of the <code>pCreateInfo</code> is a color format, <code>tiling</code> of the <code>pCreateInfo</code> is <code>VK_IMAGE_TILING_LINEAR</code> or <code>VK_IMAGE_TILING_OPTIMAL</code>, and does not have a <a href=\"#formats-requiring-sampler-ycbcr-conversion\">multi-planar image format</a>, the <code>aspectMask</code> member of <code>pSubresource</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_ASPECT_COLOR_BIT</code>", "page": "vkspec" }, { "vuid": "VUID-VkDeviceImageSubresourceInfoKHR-format-04462", - "text": "If <code>format</code> of the <code>image</code> has a depth component, the <code>aspectMask</code> member of <code>pSubresource</code> <strong class=\"purple\">must</strong> contain <code>VK_IMAGE_ASPECT_DEPTH_BIT</code>", + "text": "If <code>format</code> of the <code>pCreateInfo</code> has a depth component, the <code>aspectMask</code> member of <code>pSubresource</code> <strong class=\"purple\">must</strong> contain <code>VK_IMAGE_ASPECT_DEPTH_BIT</code>", "page": "vkspec" }, { "vuid": "VUID-VkDeviceImageSubresourceInfoKHR-format-04463", - "text": "If <code>format</code> of the <code>image</code> has a stencil component, the <code>aspectMask</code> member of <code>pSubresource</code> <strong class=\"purple\">must</strong> contain <code>VK_IMAGE_ASPECT_STENCIL_BIT</code>", + "text": "If <code>format</code> of the <code>pCreateInfo</code> has a stencil component, the <code>aspectMask</code> member of <code>pSubresource</code> <strong class=\"purple\">must</strong> contain <code>VK_IMAGE_ASPECT_STENCIL_BIT</code>", "page": "vkspec" }, { "vuid": "VUID-VkDeviceImageSubresourceInfoKHR-format-04464", - "text": "If <code>format</code> of the <code>image</code> does not contain a stencil or depth component, the <code>aspectMask</code> member of <code>pSubresource</code> <strong class=\"purple\">must</strong> not contain <code>VK_IMAGE_ASPECT_DEPTH_BIT</code> or <code>VK_IMAGE_ASPECT_STENCIL_BIT</code>", + "text": "If <code>format</code> of the <code>pCreateInfo</code> does not contain a stencil or depth component, the <code>aspectMask</code> member of <code>pSubresource</code> <strong class=\"purple\">must</strong> not contain <code>VK_IMAGE_ASPECT_DEPTH_BIT</code> or <code>VK_IMAGE_ASPECT_STENCIL_BIT</code>", "page": "vkspec" }, { "vuid": "VUID-VkDeviceImageSubresourceInfoKHR-tiling-08717", - "text": "If the <code>tiling</code> of the <code>image</code> is <code>VK_IMAGE_TILING_LINEAR</code> and has a <a href=\"#formats-requiring-sampler-ycbcr-conversion\">multi-planar image format</a>, then the <code>aspectMask</code> member of <code>pSubresource</code> <strong class=\"purple\">must</strong> be a single valid <a href=\"#formats-planes-image-aspect\">multi-planar aspect mask</a> bit", - "page": "vkspec" - }, - { - "vuid": "VUID-VkDeviceImageSubresourceInfoKHR-image-01895", - "text": "If <code>image</code> was created with the <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID</code> external memory handle type, then <code>image</code> <strong class=\"purple\">must</strong> be bound to memory", - "page": "vkspec" - }, - { - "vuid": "VUID-VkDeviceImageSubresourceInfoKHR-tiling-02271", - "text": "If the <code>tiling</code> of the <code>image</code> is <code>VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT</code>, then the <code>aspectMask</code> member of <code>pSubresource</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_ASPECT_MEMORY_PLANE<em>_i_</em>BIT_EXT</code> and the index <em>i</em> <strong class=\"purple\">must</strong> be less than the <a href=\"#VkDrmFormatModifierPropertiesEXT\">VkDrmFormatModifierPropertiesEXT</a>::<code>drmFormatModifierPlaneCount</code> associated with the image’s <code>format</code> and <a href=\"#VkImageDrmFormatModifierPropertiesEXT\">VkImageDrmFormatModifierPropertiesEXT</a>::<code>drmFormatModifier</code>", + "text": "If the <code>tiling</code> of the <code>pCreateInfo</code> is <code>VK_IMAGE_TILING_LINEAR</code> and has a <a href=\"#formats-requiring-sampler-ycbcr-conversion\">multi-planar image format</a>, then the <code>aspectMask</code> member of <code>pSubresource</code> <strong class=\"purple\">must</strong> be a single valid <a href=\"#formats-planes-image-aspect\">multi-planar aspect mask</a> bit", "page": "vkspec" }, { @@ -32365,16 +32345,6 @@ "vkCmdResetQueryPool": { "core": [ { - "vuid": "VUID-vkCmdResetQueryPool-firstQuery-00796", - "text": "<code>firstQuery</code> <strong class=\"purple\">must</strong> be less than the number of queries in <code>queryPool</code>", - "page": "vkspec" - }, - { - "vuid": "VUID-vkCmdResetQueryPool-firstQuery-00797", - "text": "The sum of <code>firstQuery</code> and <code>queryCount</code> <strong class=\"purple\">must</strong> be less than or equal to the number of queries in <code>queryPool</code>", - "page": "vkspec" - }, - { "vuid": "VUID-vkCmdResetQueryPool-None-02841", "text": "All queries used by the command <strong class=\"purple\">must</strong> not be active", "page": "vkspec" @@ -32429,16 +32399,6 @@ "page": "vkspec" }, { - "vuid": "VUID-vkResetQueryPool-firstQuery-02666", - "text": "<code>firstQuery</code> <strong class=\"purple\">must</strong> be less than the number of queries in <code>queryPool</code>", - "page": "vkspec" - }, - { - "vuid": "VUID-vkResetQueryPool-firstQuery-02667", - "text": "The sum of <code>firstQuery</code> and <code>queryCount</code> <strong class=\"purple\">must</strong> be less than or equal to the number of queries in <code>queryPool</code>", - "page": "vkspec" - }, - { "vuid": "VUID-vkResetQueryPool-firstQuery-02741", "text": "Submitted commands that refer to the range specified by <code>firstQuery</code> and <code>queryCount</code> in <code>queryPool</code> <strong class=\"purple\">must</strong> have completed execution", "page": "vkspec" @@ -33024,11 +32984,6 @@ "page": "vkspec" }, { - "vuid": "VUID-vkGetQueryPoolResults-firstQuery-00813", - "text": "<code>firstQuery</code> <strong class=\"purple\">must</strong> be less than the number of queries in <code>queryPool</code>", - "page": "vkspec" - }, - { "vuid": "VUID-vkGetQueryPoolResults-flags-02828", "text": "If <code>VK_QUERY_RESULT_64_BIT</code> is not set in <code>flags</code> and the <code>queryType</code> used to create <code>queryPool</code> was not <code>VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR</code>, then <code>pData</code> and <code>stride</code> <strong class=\"purple\">must</strong> be multiples of <code>4</code>", "page": "vkspec" @@ -33054,41 +33009,11 @@ "page": "vkspec" }, { - "vuid": "VUID-vkGetQueryPoolResults-firstQuery-00816", - "text": "The sum of <code>firstQuery</code> and <code>queryCount</code> <strong class=\"purple\">must</strong> be less than or equal to the number of queries in <code>queryPool</code>", - "page": "vkspec" - }, - { "vuid": "VUID-vkGetQueryPoolResults-dataSize-00817", "text": "<code>dataSize</code> <strong class=\"purple\">must</strong> be large enough to contain the result of each query, as described <a href=\"#queries-operation-memorylayout\">here</a>", "page": "vkspec" }, { - "vuid": "VUID-vkGetQueryPoolResults-queryType-00818", - "text": "If the <code>queryType</code> used to create <code>queryPool</code> was <code>VK_QUERY_TYPE_TIMESTAMP</code>, <code>flags</code> <strong class=\"purple\">must</strong> not contain <code>VK_QUERY_RESULT_PARTIAL_BIT</code>", - "page": "vkspec" - }, - { - "vuid": "VUID-vkGetQueryPoolResults-queryType-03230", - "text": "If the <code>queryType</code> used to create <code>queryPool</code> was <code>VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR</code>, <code>flags</code> <strong class=\"purple\">must</strong> not contain <code>VK_QUERY_RESULT_WITH_AVAILABILITY_BIT</code>, <code>VK_QUERY_RESULT_WITH_STATUS_BIT_KHR</code>, <code>VK_QUERY_RESULT_PARTIAL_BIT</code>, or <code>VK_QUERY_RESULT_64_BIT</code>", - "page": "vkspec" - }, - { - "vuid": "VUID-vkGetQueryPoolResults-queryType-03231", - "text": "If the <code>queryType</code> used to create <code>queryPool</code> was <code>VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR</code>, the <code>queryPool</code> <strong class=\"purple\">must</strong> have been recorded once for each pass as retrieved via a call to <a href=\"#vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR\">vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR</a>", - "page": "vkspec" - }, - { - "vuid": "VUID-vkGetQueryPoolResults-queryType-04810", - "text": "If the <code>queryType</code> used to create <code>queryPool</code> was <code>VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR</code>, then <code>flags</code> <strong class=\"purple\">must</strong> include <code>VK_QUERY_RESULT_WITH_STATUS_BIT_KHR</code>", - "page": "vkspec" - }, - { - "vuid": "VUID-vkGetQueryPoolResults-flags-04811", - "text": "If <code>flags</code> includes <code>VK_QUERY_RESULT_WITH_STATUS_BIT_KHR</code>, then it <strong class=\"purple\">must</strong> not include <code>VK_QUERY_RESULT_WITH_AVAILABILITY_BIT</code>", - "page": "vkspec" - }, - { "vuid": "VUID-vkGetQueryPoolResults-device-parameter", "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle", "page": "vkspec" @@ -33133,16 +33058,6 @@ "page": "vkspec" }, { - "vuid": "VUID-vkCmdCopyQueryPoolResults-firstQuery-00820", - "text": "<code>firstQuery</code> <strong class=\"purple\">must</strong> be less than the number of queries in <code>queryPool</code>", - "page": "vkspec" - }, - { - "vuid": "VUID-vkCmdCopyQueryPoolResults-firstQuery-00821", - "text": "The sum of <code>firstQuery</code> and <code>queryCount</code> <strong class=\"purple\">must</strong> be less than or equal to the number of queries in <code>queryPool</code>", - "page": "vkspec" - }, - { "vuid": "VUID-vkCmdCopyQueryPoolResults-flags-00822", "text": "If <code>VK_QUERY_RESULT_64_BIT</code> is not set in <code>flags</code> then <code>dstOffset</code> and <code>stride</code> <strong class=\"purple\">must</strong> be multiples of <code>4</code>", "page": "vkspec" @@ -33168,41 +33083,16 @@ "page": "vkspec" }, { - "vuid": "VUID-vkCmdCopyQueryPoolResults-queryType-00827", - "text": "If the <code>queryType</code> used to create <code>queryPool</code> was <code>VK_QUERY_TYPE_TIMESTAMP</code>, <code>flags</code> <strong class=\"purple\">must</strong> not contain <code>VK_QUERY_RESULT_PARTIAL_BIT</code>", - "page": "vkspec" - }, - { "vuid": "VUID-vkCmdCopyQueryPoolResults-queryType-03232", "text": "If the <code>queryType</code> used to create <code>queryPool</code> was <code>VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR</code>, <a href=\"#VkPhysicalDevicePerformanceQueryPropertiesKHR\">VkPhysicalDevicePerformanceQueryPropertiesKHR</a>::<code>allowCommandBufferQueryCopies</code> <strong class=\"purple\">must</strong> be <code>VK_TRUE</code>", "page": "vkspec" }, { - "vuid": "VUID-vkCmdCopyQueryPoolResults-queryType-03233", - "text": "If the <code>queryType</code> used to create <code>queryPool</code> was <code>VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR</code>, <code>flags</code> <strong class=\"purple\">must</strong> not contain <code>VK_QUERY_RESULT_WITH_AVAILABILITY_BIT</code>, <code>VK_QUERY_RESULT_WITH_STATUS_BIT_KHR</code>, <code>VK_QUERY_RESULT_PARTIAL_BIT</code>, or <code>VK_QUERY_RESULT_64_BIT</code>", - "page": "vkspec" - }, - { - "vuid": "VUID-vkCmdCopyQueryPoolResults-queryType-03234", - "text": "If the <code>queryType</code> used to create <code>queryPool</code> was <code>VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR</code>, the <code>queryPool</code> <strong class=\"purple\">must</strong> have been submitted once for each pass as retrieved via a call to <a href=\"#vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR\">vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR</a>", - "page": "vkspec" - }, - { "vuid": "VUID-vkCmdCopyQueryPoolResults-queryType-02734", "text": "<a href=\"#vkCmdCopyQueryPoolResults\">vkCmdCopyQueryPoolResults</a> <strong class=\"purple\">must</strong> not be called if the <code>queryType</code> used to create <code>queryPool</code> was <code>VK_QUERY_TYPE_PERFORMANCE_QUERY_INTEL</code>", "page": "vkspec" }, { - "vuid": "VUID-vkCmdCopyQueryPoolResults-queryType-06901", - "text": "If the <code>queryType</code> used to create <code>queryPool</code> was <code>VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR</code>, then <code>flags</code> <strong class=\"purple\">must</strong> include <code>VK_QUERY_RESULT_WITH_STATUS_BIT_KHR</code>", - "page": "vkspec" - }, - { - "vuid": "VUID-vkCmdCopyQueryPoolResults-flags-06902", - "text": "If <code>flags</code> includes <code>VK_QUERY_RESULT_WITH_STATUS_BIT_KHR</code>, then it <strong class=\"purple\">must</strong> not include <code>VK_QUERY_RESULT_WITH_AVAILABILITY_BIT</code>", - "page": "vkspec" - }, - { "vuid": "VUID-vkCmdCopyQueryPoolResults-None-07429", "text": "All queries used by the command <strong class=\"purple\">must</strong> not be active", "page": "vkspec" @@ -71346,7 +71236,7 @@ }, { "vuid": "VUID-vkCmdBeginTransformFeedbackEXT-None-06233", - "text": "A valid graphics pipeline <strong class=\"purple\">must</strong> be bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>", + "text": "If the <a href=\"#features-shaderObject\"><code>shaderObject</code></a> feature is not enabled, a valid graphics pipeline <strong class=\"purple\">must</strong> be bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>", "page": "vkspec" }, { @@ -94724,11 +94614,6 @@ "page": "vkspec" }, { - "vuid": "VUID-vkGetLatencyTimingsNV-pTimingCount-parameter", - "text": "<code>pTimingCount</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint32_t</code> value", - "page": "vkspec" - }, - { "vuid": "VUID-vkGetLatencyTimingsNV-pLatencyMarkerInfo-parameter", "text": "<code>pLatencyMarkerInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkGetLatencyMarkerInfoNV\">VkGetLatencyMarkerInfoNV</a> structure", "page": "vkspec" @@ -94749,7 +94634,7 @@ }, { "vuid": "VUID-VkGetLatencyMarkerInfoNV-pTimings-parameter", - "text": "<code>pTimings</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkLatencyTimingsFrameReportNV\">VkLatencyTimingsFrameReportNV</a> structure", + "text": "If <code>timingCount</code> is not <code>0</code>, and <code>pTimings</code> is not <code>NULL</code>, <code>pTimings</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>timingCount</code> <a href=\"#VkLatencyTimingsFrameReportNV\">VkLatencyTimingsFrameReportNV</a> structures", "page": "vkspec" } ] @@ -100820,12 +100705,7 @@ }, { "vuid": "VUID-VkCuModuleCreateInfoNVX-pData-parameter", - "text": "<code>pData</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>dataSize</code> bytes", - "page": "vkspec" - }, - { - "vuid": "VUID-VkCuModuleCreateInfoNVX-dataSize-arraylength", - "text": "<code>dataSize</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>", + "text": "If <code>dataSize</code> is not <code>0</code>, <code>pData</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>dataSize</code> bytes", "page": "vkspec" } ] diff --git a/registry/vk.xml b/registry/vk.xml index f365b71..ab05ed3 100644 --- a/registry/vk.xml +++ b/registry/vk.xml @@ -175,7 +175,7 @@ branch of the member gitlab server. #define <name>VKSC_API_VERSION_1_0</name> <type>VK_MAKE_API_VERSION</type>(VKSC_API_VARIANT, 1, 0, 0)// Patch version should always be set to 0</type> <type api="vulkan" category="define">// Version of this file -#define <name>VK_HEADER_VERSION</name> 270</type> +#define <name>VK_HEADER_VERSION</name> 271</type> <type api="vulkan" category="define" requires="VK_HEADER_VERSION">// Complete version of this file #define <name>VK_HEADER_VERSION_COMPLETE</name> <type>VK_MAKE_API_VERSION</type>(0, 1, 3, VK_HEADER_VERSION)</type> <type api="vulkansc" category="define">// Version of this file @@ -1861,7 +1861,7 @@ typedef void* <name>MTLSharedEvent_id</name>; <member limittype="bitmask"><type>VkBool32</type> <name>residencyStandard2DBlockShape</name><comment>Sparse resources support: GPU will access all 2D (single sample) sparse resources using the standard sparse image block shapes (based on pixel format)</comment></member> <member limittype="bitmask"><type>VkBool32</type> <name>residencyStandard2DMultisampleBlockShape</name><comment>Sparse resources support: GPU will access all 2D (multisample) sparse resources using the standard sparse image block shapes (based on pixel format)</comment></member> <member limittype="bitmask"><type>VkBool32</type> <name>residencyStandard3DBlockShape</name><comment>Sparse resources support: GPU will access all 3D sparse resources using the standard sparse image block shapes (based on pixel format)</comment></member> - <member limittype="bitmask"><type>VkBool32</type> <name>residencyAlignedMipSize</name><comment>Sparse resources support: Images with mip level dimensions that are NOT a multiple of the sparse image block dimensions will be placed in the mip tail</comment></member> + <member limittype="not"><type>VkBool32</type> <name>residencyAlignedMipSize</name><comment>Sparse resources support: Images with mip level dimensions that are NOT a multiple of the sparse image block dimensions will be placed in the mip tail</comment></member> <member limittype="bitmask"><type>VkBool32</type> <name>residencyNonResidentStrict</name><comment>Sparse resources support: GPU can consistently access non-resident regions of a resource, all reads return as if data is 0, writes are discarded</comment></member> </type> <type category="struct" name="VkPhysicalDeviceLimits" returnedonly="true"> @@ -7248,8 +7248,8 @@ typedef void* <name>MTLSharedEvent_id</name>; <type category="struct" name="VkCuModuleCreateInfoNVX"> <member values="VK_STRUCTURE_TYPE_CU_MODULE_CREATE_INFO_NVX"><type>VkStructureType</type> <name>sType</name></member> <member optional="true">const <type>void</type>* <name>pNext</name></member> - <member><type>size_t</type> <name>dataSize</name></member> - <member len="dataSize">const <type>void</type>* <name>pData</name></member> + <member optional="true"><type>size_t</type> <name>dataSize</name></member> + <member len="dataSize">const <type>void</type>* <name>pData</name></member> </type> <type category="struct" name="VkCuFunctionCreateInfoNVX"> <member values="VK_STRUCTURE_TYPE_CU_FUNCTION_CREATE_INFO_NVX"><type>VkStructureType</type> <name>sType</name></member> @@ -8739,7 +8739,7 @@ typedef void* <name>MTLSharedEvent_id</name>; <type category="struct" name="VkPhysicalDeviceExternalFormatResolvePropertiesANDROID" structextends="VkPhysicalDeviceProperties2" returnedonly="true"> <member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_PROPERTIES_ANDROID"><type>VkStructureType</type> <name>sType</name></member> <member optional="true"><type>void</type>* <name>pNext</name></member> - <member limittype="noauto"><type>VkBool32</type> <name>nullColorAttachmentWithExternalFormatResolve</name></member> + <member limittype="not"><type>VkBool32</type> <name>nullColorAttachmentWithExternalFormatResolve</name></member> <member limittype="noauto"><type>VkChromaLocation</type> <name>externalFormatResolveChromaOffsetX</name></member> <member limittype="noauto"><type>VkChromaLocation</type> <name>externalFormatResolveChromaOffsetY</name></member> </type> @@ -8770,7 +8770,8 @@ typedef void* <name>MTLSharedEvent_id</name>; <type category="struct" name="VkGetLatencyMarkerInfoNV"> <member values="VK_STRUCTURE_TYPE_GET_LATENCY_MARKER_INFO_NV"><type>VkStructureType</type> <name>sType</name></member> <member optional="true" noautovalidity="true">const <type>void</type>* <name>pNext</name></member> - <member><type>VkLatencyTimingsFrameReportNV</type>* <name>pTimings</name></member> + <member optional="true"><type>uint32_t</type> <name>timingCount</name></member> + <member optional="true" len="timingCount"><type>VkLatencyTimingsFrameReportNV</type>* <name>pTimings</name></member> </type> <type category="struct" name="VkLatencyTimingsFrameReportNV"> <member values="VK_STRUCTURE_TYPE_LATENCY_TIMINGS_FRAME_REPORT_NV"><type>VkStructureType</type> <name>sType</name></member> @@ -15033,7 +15034,6 @@ typedef void* <name>MTLSharedEvent_id</name>; <proto><type>void</type> <name>vkGetLatencyTimingsNV</name></proto> <param><type>VkDevice</type> <name>device</name></param> <param><type>VkSwapchainKHR</type> <name>swapchain</name></param> - <param><type>uint32_t</type>* <name>pTimingCount</name></param> <param><type>VkGetLatencyMarkerInfoNV</type>* <name>pLatencyMarkerInfo</name></param> </command> <command> @@ -18438,10 +18438,18 @@ typedef void* <name>MTLSharedEvent_id</name>; <enum bitpos="25" extends="VkBufferUsageFlagBits2KHR" name="VK_BUFFER_USAGE_2_EXECUTION_GRAPH_SCRATCH_BIT_AMDX"/> </require> </extension> - <extension name="VK_AMD_extension_136" number="136" author="AMD" contact="Mais Alnasser @malnasse" supported="disabled"> + <extension name="VK_KHR_extension_136" number="136" type="device" author="KHR" contact="Tobias Hector @tobski" supported="disabled"> <require> - <enum value="0" name="VK_AMD_EXTENSION_136_SPEC_VERSION"/> - <enum value=""VK_AMD_extension_136"" name="VK_AMD_EXTENSION_136_EXTENSION_NAME"/> + <enum value="0" name="VK_KHR_EXTENSION_136_SPEC_VERSION"/> + <enum value=""VK_KHR_extension_136"" name="VK_KHR_EXTENSION_136_EXTENSION_NAME"/> + <enum bitpos="28" extends="VkBufferUsageFlagBits" name="VK_BUFFER_USAGE_RESERVED_28_BIT_KHR"/> + <enum bitpos="29" extends="VkBufferUsageFlagBits" name="VK_BUFFER_USAGE_RESERVED_29_BIT_KHR"/> + <enum bitpos="30" extends="VkBufferUsageFlagBits" name="VK_BUFFER_USAGE_RESERVED_30_BIT_KHR"/> + </require> + <require depends="VK_KHR_maintenance5"> + <enum bitpos="28" extends="VkBufferUsageFlagBits2KHR" name="VK_BUFFER_USAGE_2_RESERVED_28_BIT_KHR"/> + <enum bitpos="29" extends="VkBufferUsageFlagBits2KHR" name="VK_BUFFER_USAGE_2_RESERVED_29_BIT_KHR"/> + <enum bitpos="30" extends="VkBufferUsageFlagBits2KHR" name="VK_BUFFER_USAGE_2_RESERVED_30_BIT_KHR"/> </require> </extension> <extension name="VK_AMD_mixed_attachment_samples" number="137" type="device" author="AMD" contact="Matthaeus G. Chajdas @anteru" supported="vulkan"> @@ -20815,8 +20823,6 @@ typedef void* <name>MTLSharedEvent_id</name>; <enum offset="4" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUDA_KERNEL_LAUNCH_PROPERTIES_NV"/> <enum offset="0" extends="VkObjectType" name="VK_OBJECT_TYPE_CUDA_MODULE_NV"/> <enum offset="1" extends="VkObjectType" name="VK_OBJECT_TYPE_CUDA_FUNCTION_NV"/> - <enum offset="0" extends="VkDebugReportObjectTypeEXT" name="VK_DEBUG_REPORT_OBJECT_TYPE_CUDA_MODULE_NV"/> - <enum offset="1" extends="VkDebugReportObjectTypeEXT" name="VK_DEBUG_REPORT_OBJECT_TYPE_CUDA_FUNCTION_NV"/> <type name="VkCudaModuleNV"/> <type name="VkCudaFunctionNV"/> <type name="VkCudaModuleCreateInfoNV"/> @@ -20831,6 +20837,10 @@ typedef void* <name>MTLSharedEvent_id</name>; <command name="vkDestroyCudaFunctionNV"/> <command name="vkCmdCudaLaunchKernelNV"/> </require> + <require depends="VK_EXT_debug_report"> + <enum offset="0" extends="VkDebugReportObjectTypeEXT" name="VK_DEBUG_REPORT_OBJECT_TYPE_CUDA_MODULE_NV_EXT"/> + <enum offset="1" extends="VkDebugReportObjectTypeEXT" name="VK_DEBUG_REPORT_OBJECT_TYPE_CUDA_FUNCTION_NV_EXT"/> + </require> </extension> <extension name="VK_KHR_object_refresh" number="309" type="device" author="KHR" contact="Aidan Fabius @afabius" supported="vulkansc" ratified="vulkansc"> <require> @@ -22493,7 +22503,7 @@ typedef void* <name>MTLSharedEvent_id</name>; <enum value=""VK_SEC_extension_451"" name="VK_SEC_EXTENSION_451_EXTENSION_NAME"/> </require> </extension> - <extension name="VK_EXT_nested_command_buffer" number="452" type="device" depends="VK_KHR_get_physical_device_properties2" author="EXT" contact="Piers Daniell @pdaniell-nv" supported="vulkan"> + <extension name="VK_EXT_nested_command_buffer" number="452" type="device" depends="VK_KHR_get_physical_device_properties2" author="EXT" contact="Piers Daniell @pdaniell-nv" supported="vulkan" ratified="vulkan"> <require> <enum value="1" name="VK_EXT_NESTED_COMMAND_BUFFER_SPEC_VERSION"/> <enum value=""VK_EXT_nested_command_buffer"" name="VK_EXT_NESTED_COMMAND_BUFFER_EXTENSION_NAME"/> @@ -23321,7 +23331,7 @@ typedef void* <name>MTLSharedEvent_id</name>; </extension> <extension name="VK_NV_low_latency2" number="506" author="NV" depends="VK_VERSION_1_2,VK_KHR_timeline_semaphore" contact="Charles Hansen @cshansen" type="device" supported="vulkan"> <require> - <enum value="1" name="VK_NV_LOW_LATENCY_2_SPEC_VERSION"/> + <enum value="2" name="VK_NV_LOW_LATENCY_2_SPEC_VERSION"/> <enum value=""VK_NV_low_latency2"" name="VK_NV_LOW_LATENCY_2_EXTENSION_NAME"/> <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_LATENCY_SLEEP_MODE_INFO_NV"/> <enum offset="1" extends="VkStructureType" name="VK_STRUCTURE_TYPE_LATENCY_SLEEP_INFO_NV"/> @@ -23703,6 +23713,12 @@ typedef void* <name>MTLSharedEvent_id</name>; <enum value=""VK_KHR_extension_554"" name="VK_KHR_EXTENSION_554_EXTENSION_NAME"/> </require> </extension> + <extension name="VK_IMG_extension_555" number="555" author="IMG" contact="Jarred Davies" supported="disabled"> + <require> + <enum value="0" name="VK_IMG_EXTENSION_555_SPEC_VERSION"/> + <enum value=""VK_IMG_extension_555"" name="VK_IMG_EXTENSION_555_EXTENSION_NAME"/> + </require> + </extension> </extensions> <formats> <format name="VK_FORMAT_R4G4_UNORM_PACK8" class="8-bit" blockSize="1" texelsPerBlock="1" packed="8"> @@ -25322,6 +25338,15 @@ typedef void* <name>MTLSharedEvent_id</name>; <spirvextension name="SPV_AMDX_shader_enqueue"> <enable extension="VK_AMDX_shader_enqueue"/> </spirvextension> + <spirvextension name="SPV_HUAWEI_cluster_culling_shader"> + <enable extension="VK_HUAWEI_cluster_culling_shader"/> + </spirvextension> + <spirvextension name="SPV_HUAWEI_subpass_shading"> + <enable extension="VK_HUAWEI_subpass_shading"/> + </spirvextension> + <spirvextension name="SPV_NV_ray_tracing_motion_blur"> + <enable extension="VK_NV_ray_tracing_motion_blur"/> + </spirvextension> </spirvextensions> <spirvcapabilities comment="SPIR-V Capabilities allowed in Vulkan and what is required to use it"> <spirvcapability name="Matrix"> diff --git a/registry/vkconventions.py b/registry/vkconventions.py index b4e7966..6f0edd7 100755 --- a/registry/vkconventions.py +++ b/registry/vkconventions.py @@ -50,9 +50,21 @@ class VulkanConventions(ConventionsBase): """Preferred spelling of NULL.""" return '`NULL`' + def formatVersion(self, name, apivariant, major, minor): + """Mark up an API version name as a link in the spec.""" + version = f'{major}.{minor}' + if apivariant == 'VKSC': + # Vulkan SC has a different anchor pattern for version appendices + if version == '1.0': + return 'Vulkan SC 1.0' + else: + return f'<<versions-sc-{version}, Version SC {version}>>' + else: + return f'<<versions-{version}, Version {version}>>' + def formatExtension(self, name): - """Mark up an extension name as a link the spec.""" - return '`apiext:{}`'.format(name) + """Mark up an extension name as a link in the spec.""" + return f'apiext:{name}' @property def struct_macro(self): |