From 9d27c893cdfc8d96bc8ad5f6f4d88743f958305e Mon Sep 17 00:00:00 2001 From: Jon Leech Date: Sun, 26 Nov 2023 21:52:30 -0800 Subject: Update for Vulkan-Docs 1.3.271 --- include/vulkan/vulkan.hpp | 18 +-- include/vulkan/vulkan_core.h | 12 +- include/vulkan/vulkan_enums.hpp | 8 +- include/vulkan/vulkan_extension_inspection.hpp | 2 + include/vulkan/vulkan_funcs.hpp | 15 +- include/vulkan/vulkan_handles.hpp | 19 ++- include/vulkan/vulkan_hash.hpp | 1 + include/vulkan/vulkan_hpp_macros.hpp | 7 + include/vulkan/vulkan_raii.hpp | 21 +-- include/vulkan/vulkan_structs.hpp | 45 ++++-- registry/generator.py | 5 +- registry/parse_dependency.py | 37 +---- registry/spec_tools/conventions.py | 83 ++++++++++- registry/spec_tools/util.py | 1 - registry/validusage.json | 194 +++++-------------------- registry/vk.xml | 53 +++++-- 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 -#include // ArrayWrapperND -#include // std::string +#include // ArrayWrapperND +#include // strnlen +#include // std::string #include #include @@ -55,7 +56,7 @@ extern "C" __declspec( dllimport ) FARPROC __stdcall GetProcAddress( HINSTANCE h # include #endif -static_assert( VK_HEADER_VERSION == 270, "Wrong VK_HEADER_VERSION!" ); +static_assert( VK_HEADER_VERSION == 271, "Wrong VK_HEADER_VERSION!" ); // includes 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 ::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 ::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 #include +#include +#include #include 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 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( swapchain ), pTimingCount, reinterpret_cast( pLatencyMarkerInfo ) ); + d.vkGetLatencyTimingsNV( m_device, static_cast( swapchain ), reinterpret_cast( pLatencyMarkerInfo ) ); } #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::pair + 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 data_; - uint32_t & timingCount = data_.first; - VULKAN_HPP_NAMESPACE::GetLatencyMarkerInfoNV & latencyMarkerInfo = data_.second; - d.vkGetLatencyTimingsNV( - m_device, static_cast( swapchain ), &timingCount, reinterpret_cast( &latencyMarkerInfo ) ); + VULKAN_HPP_NAMESPACE::GetLatencyMarkerInfoNV latencyMarkerInfo; + d.vkGetLatencyTimingsNV( m_device, static_cast( swapchain ), reinterpret_cast( &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; @@ -7244,6 +7244,12 @@ namespace VULKAN_HPP_NAMESPACE using Type = VULKAN_HPP_NAMESPACE::CudaFunctionNV; }; + template <> + struct CppType + { + using Type = VULKAN_HPP_NAMESPACE::CudaFunctionNV; + }; + template <> struct isVulkanHandleType { @@ -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; @@ -7325,6 +7331,12 @@ namespace VULKAN_HPP_NAMESPACE using Type = VULKAN_HPP_NAMESPACE::CudaModuleNV; }; + template <> + struct CppType + { + using Type = VULKAN_HPP_NAMESPACE::CudaModuleNV; + }; + template <> struct isVulkanHandleType { @@ -13562,12 +13574,11 @@ namespace VULKAN_HPP_NAMESPACE template 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 - VULKAN_HPP_NODISCARD std::pair + 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 +#else +# include +#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 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( &latencyMarkerInfo ) ); } - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::pair - 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 requires " ); - std::pair data_; - uint32_t & timingCount = data_.first; - VULKAN_HPP_NAMESPACE::GetLatencyMarkerInfoNV & latencyMarkerInfo = data_.second; - getDispatcher()->vkGetLatencyTimingsNV( static_cast( m_device ), - static_cast( m_swapchain ), - &timingCount, - reinterpret_cast( &latencyMarkerInfo ) ); + VULKAN_HPP_NAMESPACE::GetLatencyMarkerInfoNV latencyMarkerInfo; + getDispatcher()->vkGetLatencyTimingsNV( + static_cast( m_device ), static_cast( m_swapchain ), reinterpret_cast( &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 const & timings_, + const void * pNext_ = nullptr ) + : pNext( pNext_ ), timingCount( static_cast( 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 const & timings_ ) VULKAN_HPP_NOEXCEPT + { + timingCount = static_cast( 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 + std::tuple # 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'<>' - else: - return f'<>' - 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[A-Z]+)_(?P[\w_]+)') +EXT_NAME_DECOMPOSE_RE = re.compile(r'(?P[A-Za-z]+)_(?P[A-Za-z]+)_(?P[\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[A-Za-z]+)_VERSION_(?P[0-9]+)_(?P[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): @@ -260,6 +289,42 @@ class ConventionsBase(abc.ABC): Must implement.""" 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 semaphore must have completed execution", + "vuid": "VUID-vkDestroySemaphore-semaphore-05149", + "text": "All submitted batches that refer to semaphore must have completed execution", "page": "vkspec" }, { @@ -7646,13 +7646,13 @@ "page": "vkspec" }, { - "vuid": "VUID-VkImageMemoryBarrier2-image-03319", - "text": "If image has a depth/stencil format with both depth and stencil and the separateDepthStencilLayouts feature is enabled, then the aspectMask member of subresourceRange must include either or both VK_IMAGE_ASPECT_DEPTH_BIT and VK_IMAGE_ASPECT_STENCIL_BIT", + "vuid": "VUID-VkImageMemoryBarrier2-image-03320", + "text": "If image has a depth/stencil format with both depth and stencil and the separateDepthStencilLayouts feature is not enabled, then the aspectMask member of subresourceRange must include both VK_IMAGE_ASPECT_DEPTH_BIT and VK_IMAGE_ASPECT_STENCIL_BIT", "page": "vkspec" }, { - "vuid": "VUID-VkImageMemoryBarrier2-image-03320", - "text": "If image has a depth/stencil format with both depth and stencil and the separateDepthStencilLayouts feature is not enabled, then the aspectMask member of subresourceRange must include both VK_IMAGE_ASPECT_DEPTH_BIT and VK_IMAGE_ASPECT_STENCIL_BIT", + "vuid": "VUID-VkImageMemoryBarrier2-image-03319", + "text": "If image has a depth/stencil format with both depth and stencil and the separateDepthStencilLayouts feature is enabled, then the aspectMask member of subresourceRange must include either or both VK_IMAGE_ASPECT_DEPTH_BIT and VK_IMAGE_ASPECT_STENCIL_BIT", "page": "vkspec" }, { @@ -7945,13 +7945,13 @@ "page": "vkspec" }, { - "vuid": "VUID-VkImageMemoryBarrier-image-03319", - "text": "If image has a depth/stencil format with both depth and stencil and the separateDepthStencilLayouts feature is enabled, then the aspectMask member of subresourceRange must include either or both VK_IMAGE_ASPECT_DEPTH_BIT and VK_IMAGE_ASPECT_STENCIL_BIT", + "vuid": "VUID-VkImageMemoryBarrier-image-03320", + "text": "If image has a depth/stencil format with both depth and stencil and the separateDepthStencilLayouts feature is not enabled, then the aspectMask member of subresourceRange must include both VK_IMAGE_ASPECT_DEPTH_BIT and VK_IMAGE_ASPECT_STENCIL_BIT", "page": "vkspec" }, { - "vuid": "VUID-VkImageMemoryBarrier-image-03320", - "text": "If image has a depth/stencil format with both depth and stencil and the separateDepthStencilLayouts feature is not enabled, then the aspectMask member of subresourceRange must include both VK_IMAGE_ASPECT_DEPTH_BIT and VK_IMAGE_ASPECT_STENCIL_BIT", + "vuid": "VUID-VkImageMemoryBarrier-image-03319", + "text": "If image has a depth/stencil format with both depth and stencil and the separateDepthStencilLayouts feature is enabled, then the aspectMask member of subresourceRange must include either or both VK_IMAGE_ASPECT_DEPTH_BIT and VK_IMAGE_ASPECT_STENCIL_BIT", "page": "vkspec" }, { @@ -8083,13 +8083,13 @@ "page": "vkspec" }, { - "vuid": "VUID-VkHostImageLayoutTransitionInfoEXT-image-03319", - "text": "If image has a depth/stencil format with both depth and stencil and the separateDepthStencilLayouts feature is enabled, then the aspectMask member of subresourceRange must include either or both VK_IMAGE_ASPECT_DEPTH_BIT and VK_IMAGE_ASPECT_STENCIL_BIT", + "vuid": "VUID-VkHostImageLayoutTransitionInfoEXT-image-03320", + "text": "If image has a depth/stencil format with both depth and stencil and the separateDepthStencilLayouts feature is not enabled, then the aspectMask member of subresourceRange must include both VK_IMAGE_ASPECT_DEPTH_BIT and VK_IMAGE_ASPECT_STENCIL_BIT", "page": "vkspec" }, { - "vuid": "VUID-VkHostImageLayoutTransitionInfoEXT-image-03320", - "text": "If image has a depth/stencil format with both depth and stencil and the separateDepthStencilLayouts feature is not enabled, then the aspectMask member of subresourceRange must include both VK_IMAGE_ASPECT_DEPTH_BIT and VK_IMAGE_ASPECT_STENCIL_BIT", + "vuid": "VUID-VkHostImageLayoutTransitionInfoEXT-image-03319", + "text": "If image has a depth/stencil format with both depth and stencil and the separateDepthStencilLayouts feature is enabled, then the aspectMask member of subresourceRange must include either or both VK_IMAGE_ASPECT_DEPTH_BIT and VK_IMAGE_ASPECT_STENCIL_BIT", "page": "vkspec" }, { @@ -11977,12 +11977,12 @@ }, { "vuid": "VUID-VkRenderPassBeginInfo-None-08996", - "text": "If VkDeviceGroupRenderPassBeginInfo::deviceRenderAreaCount is 0, renderArea.extent.width must be greater than 0", + "text": "If the pNext chain does not contain VkDeviceGroupRenderPassBeginInfo or its deviceRenderAreaCount member is equal to 0, renderArea.extent.width must be greater than 0", "page": "vkspec" }, { "vuid": "VUID-VkRenderPassBeginInfo-None-08997", - "text": "If VkDeviceGroupRenderPassBeginInfo::deviceRenderAreaCount is 0, renderArea.extent.height must be greater than 0", + "text": "If the pNext chain does not contain VkDeviceGroupRenderPassBeginInfo or its deviceRenderAreaCount member is equal to 0, renderArea.extent.height must be greater than 0", "page": "vkspec" }, { @@ -14068,16 +14068,6 @@ }, "vkGetCudaModuleCacheNV": { "core": [ - { - "vuid": "VUID-vkGetCudaModuleCacheNV-pCacheSize-09414", - "text": "pCacheSize must be a pointer containing the amount of bytes to be copied in pCacheData. If pCacheData is NULL, the function will return in this pointer the total amount of bytes required to later perform the copy into pCacheData.", - "page": "vkspec" - }, - { - "vuid": "VUID-vkGetCudaModuleCacheNV-pCacheData-09415", - "text": "pCacheData may 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 pCacheSize. This pointer may be NULL. In this case, the function will write the total amount of required data in pCacheSize.", - "page": "vkspec" - }, { "vuid": "VUID-vkGetCudaModuleCacheNV-device-parameter", "text": "device must be a valid VkDevice handle", @@ -22164,12 +22154,12 @@ }, { "vuid": "VUID-vkGetImageSubresourceLayout-mipLevel-01716", - "text": "The mipLevel member of pSubresource must be less than the mipLevels specified in VkImageCreateInfo when image was created", + "text": "The mipLevel member of pSubresource must be less than the mipLevels specified in image", "page": "vkspec" }, { "vuid": "VUID-vkGetImageSubresourceLayout-arrayLayer-01717", - "text": "The arrayLayer member of pSubresource must be less than the arrayLayers specified in VkImageCreateInfo when image was created", + "text": "The arrayLayer member of pSubresource must be less than the arrayLayers specified in image", "page": "vkspec" }, { @@ -22198,12 +22188,12 @@ "page": "vkspec" }, { - "vuid": "VUID-vkGetImageSubresourceLayout-image-01895", + "vuid": "VUID-vkGetImageSubresourceLayout-image-09432", "text": "If image was created with the VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID external memory handle type, then image must be bound to memory", "page": "vkspec" }, { - "vuid": "VUID-vkGetImageSubresourceLayout-tiling-02271", + "vuid": "VUID-vkGetImageSubresourceLayout-tiling-09433", "text": "If the tiling of the image is VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT, then the aspectMask member of pSubresource must be VK_IMAGE_ASPECT_MEMORY_PLANE_i_BIT_EXT and the index i must be less than the VkDrmFormatModifierPropertiesEXT::drmFormatModifierPlaneCount associated with the image’s format and VkImageDrmFormatModifierPropertiesEXT::drmFormatModifier", "page": "vkspec" }, @@ -22257,12 +22247,12 @@ }, { "vuid": "VUID-vkGetImageSubresourceLayout2KHR-mipLevel-01716", - "text": "The mipLevel member of pSubresource must be less than the mipLevels specified in VkImageCreateInfo when image was created", + "text": "The mipLevel member of pSubresource must be less than the mipLevels specified in image", "page": "vkspec" }, { "vuid": "VUID-vkGetImageSubresourceLayout2KHR-arrayLayer-01717", - "text": "The arrayLayer member of pSubresource must be less than the arrayLayers specified in VkImageCreateInfo when image was created", + "text": "The arrayLayer member of pSubresource must be less than the arrayLayers specified in image", "page": "vkspec" }, { @@ -22291,12 +22281,12 @@ "page": "vkspec" }, { - "vuid": "VUID-vkGetImageSubresourceLayout2KHR-image-01895", + "vuid": "VUID-vkGetImageSubresourceLayout2KHR-image-09434", "text": "If image was created with the VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID external memory handle type, then image must be bound to memory", "page": "vkspec" }, { - "vuid": "VUID-vkGetImageSubresourceLayout2KHR-tiling-02271", + "vuid": "VUID-vkGetImageSubresourceLayout2KHR-tiling-09435", "text": "If the tiling of the image is VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT, then the aspectMask member of pSubresource must be VK_IMAGE_ASPECT_MEMORY_PLANE_i_BIT_EXT and the index i must be less than the VkDrmFormatModifierPropertiesEXT::drmFormatModifierPlaneCount associated with the image’s format and VkImageDrmFormatModifierPropertiesEXT::drmFormatModifier", "page": "vkspec" }, @@ -22402,47 +22392,37 @@ }, { "vuid": "VUID-VkDeviceImageSubresourceInfoKHR-mipLevel-01716", - "text": "The mipLevel member of pSubresource must be less than the mipLevels specified in VkImageCreateInfo when image was created", + "text": "The mipLevel member of pSubresource must be less than the mipLevels specified in pCreateInfo", "page": "vkspec" }, { "vuid": "VUID-VkDeviceImageSubresourceInfoKHR-arrayLayer-01717", - "text": "The arrayLayer member of pSubresource must be less than the arrayLayers specified in VkImageCreateInfo when image was created", + "text": "The arrayLayer member of pSubresource must be less than the arrayLayers specified in pCreateInfo", "page": "vkspec" }, { "vuid": "VUID-VkDeviceImageSubresourceInfoKHR-format-08886", - "text": "If format of the image is a color format, tiling of the image is VK_IMAGE_TILING_LINEAR or VK_IMAGE_TILING_OPTIMAL, and does not have a multi-planar image format, the aspectMask member of pSubresource must be VK_IMAGE_ASPECT_COLOR_BIT", + "text": "If format of the pCreateInfo is a color format, tiling of the pCreateInfo is VK_IMAGE_TILING_LINEAR or VK_IMAGE_TILING_OPTIMAL, and does not have a multi-planar image format, the aspectMask member of pSubresource must be VK_IMAGE_ASPECT_COLOR_BIT", "page": "vkspec" }, { "vuid": "VUID-VkDeviceImageSubresourceInfoKHR-format-04462", - "text": "If format of the image has a depth component, the aspectMask member of pSubresource must contain VK_IMAGE_ASPECT_DEPTH_BIT", + "text": "If format of the pCreateInfo has a depth component, the aspectMask member of pSubresource must contain VK_IMAGE_ASPECT_DEPTH_BIT", "page": "vkspec" }, { "vuid": "VUID-VkDeviceImageSubresourceInfoKHR-format-04463", - "text": "If format of the image has a stencil component, the aspectMask member of pSubresource must contain VK_IMAGE_ASPECT_STENCIL_BIT", + "text": "If format of the pCreateInfo has a stencil component, the aspectMask member of pSubresource must contain VK_IMAGE_ASPECT_STENCIL_BIT", "page": "vkspec" }, { "vuid": "VUID-VkDeviceImageSubresourceInfoKHR-format-04464", - "text": "If format of the image does not contain a stencil or depth component, the aspectMask member of pSubresource must not contain VK_IMAGE_ASPECT_DEPTH_BIT or VK_IMAGE_ASPECT_STENCIL_BIT", + "text": "If format of the pCreateInfo does not contain a stencil or depth component, the aspectMask member of pSubresource must not contain VK_IMAGE_ASPECT_DEPTH_BIT or VK_IMAGE_ASPECT_STENCIL_BIT", "page": "vkspec" }, { "vuid": "VUID-VkDeviceImageSubresourceInfoKHR-tiling-08717", - "text": "If the tiling of the image is VK_IMAGE_TILING_LINEAR and has a multi-planar image format, then the aspectMask member of pSubresource must be a single valid multi-planar aspect mask bit", - "page": "vkspec" - }, - { - "vuid": "VUID-VkDeviceImageSubresourceInfoKHR-image-01895", - "text": "If image was created with the VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID external memory handle type, then image must be bound to memory", - "page": "vkspec" - }, - { - "vuid": "VUID-VkDeviceImageSubresourceInfoKHR-tiling-02271", - "text": "If the tiling of the image is VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT, then the aspectMask member of pSubresource must be VK_IMAGE_ASPECT_MEMORY_PLANE_i_BIT_EXT and the index i must be less than the VkDrmFormatModifierPropertiesEXT::drmFormatModifierPlaneCount associated with the image’s format and VkImageDrmFormatModifierPropertiesEXT::drmFormatModifier", + "text": "If the tiling of the pCreateInfo is VK_IMAGE_TILING_LINEAR and has a multi-planar image format, then the aspectMask member of pSubresource must be a single valid multi-planar aspect mask bit", "page": "vkspec" }, { @@ -32364,16 +32344,6 @@ }, "vkCmdResetQueryPool": { "core": [ - { - "vuid": "VUID-vkCmdResetQueryPool-firstQuery-00796", - "text": "firstQuery must be less than the number of queries in queryPool", - "page": "vkspec" - }, - { - "vuid": "VUID-vkCmdResetQueryPool-firstQuery-00797", - "text": "The sum of firstQuery and queryCount must be less than or equal to the number of queries in queryPool", - "page": "vkspec" - }, { "vuid": "VUID-vkCmdResetQueryPool-None-02841", "text": "All queries used by the command must not be active", @@ -32428,16 +32398,6 @@ "text": "The hostQueryReset feature must be enabled", "page": "vkspec" }, - { - "vuid": "VUID-vkResetQueryPool-firstQuery-02666", - "text": "firstQuery must be less than the number of queries in queryPool", - "page": "vkspec" - }, - { - "vuid": "VUID-vkResetQueryPool-firstQuery-02667", - "text": "The sum of firstQuery and queryCount must be less than or equal to the number of queries in queryPool", - "page": "vkspec" - }, { "vuid": "VUID-vkResetQueryPool-firstQuery-02741", "text": "Submitted commands that refer to the range specified by firstQuery and queryCount in queryPool must have completed execution", @@ -33023,11 +32983,6 @@ "text": "All queries used by the command must not be uninitialized", "page": "vkspec" }, - { - "vuid": "VUID-vkGetQueryPoolResults-firstQuery-00813", - "text": "firstQuery must be less than the number of queries in queryPool", - "page": "vkspec" - }, { "vuid": "VUID-vkGetQueryPoolResults-flags-02828", "text": "If VK_QUERY_RESULT_64_BIT is not set in flags and the queryType used to create queryPool was not VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR, then pData and stride must be multiples of 4", @@ -33053,41 +33008,11 @@ "text": "If the queryType used to create queryPool was VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR, then stride must be large enough to contain the VkQueryPoolPerformanceCreateInfoKHR::counterIndexCount used to create queryPool times the size of VkPerformanceCounterResultKHR", "page": "vkspec" }, - { - "vuid": "VUID-vkGetQueryPoolResults-firstQuery-00816", - "text": "The sum of firstQuery and queryCount must be less than or equal to the number of queries in queryPool", - "page": "vkspec" - }, { "vuid": "VUID-vkGetQueryPoolResults-dataSize-00817", "text": "dataSize must be large enough to contain the result of each query, as described here", "page": "vkspec" }, - { - "vuid": "VUID-vkGetQueryPoolResults-queryType-00818", - "text": "If the queryType used to create queryPool was VK_QUERY_TYPE_TIMESTAMP, flags must not contain VK_QUERY_RESULT_PARTIAL_BIT", - "page": "vkspec" - }, - { - "vuid": "VUID-vkGetQueryPoolResults-queryType-03230", - "text": "If the queryType used to create queryPool was VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR, flags must not contain VK_QUERY_RESULT_WITH_AVAILABILITY_BIT, VK_QUERY_RESULT_WITH_STATUS_BIT_KHR, VK_QUERY_RESULT_PARTIAL_BIT, or VK_QUERY_RESULT_64_BIT", - "page": "vkspec" - }, - { - "vuid": "VUID-vkGetQueryPoolResults-queryType-03231", - "text": "If the queryType used to create queryPool was VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR, the queryPool must have been recorded once for each pass as retrieved via a call to vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR", - "page": "vkspec" - }, - { - "vuid": "VUID-vkGetQueryPoolResults-queryType-04810", - "text": "If the queryType used to create queryPool was VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR, then flags must include VK_QUERY_RESULT_WITH_STATUS_BIT_KHR", - "page": "vkspec" - }, - { - "vuid": "VUID-vkGetQueryPoolResults-flags-04811", - "text": "If flags includes VK_QUERY_RESULT_WITH_STATUS_BIT_KHR, then it must not include VK_QUERY_RESULT_WITH_AVAILABILITY_BIT", - "page": "vkspec" - }, { "vuid": "VUID-vkGetQueryPoolResults-device-parameter", "text": "device must be a valid VkDevice handle", @@ -33132,16 +33057,6 @@ "text": "dstOffset must be less than the size of dstBuffer", "page": "vkspec" }, - { - "vuid": "VUID-vkCmdCopyQueryPoolResults-firstQuery-00820", - "text": "firstQuery must be less than the number of queries in queryPool", - "page": "vkspec" - }, - { - "vuid": "VUID-vkCmdCopyQueryPoolResults-firstQuery-00821", - "text": "The sum of firstQuery and queryCount must be less than or equal to the number of queries in queryPool", - "page": "vkspec" - }, { "vuid": "VUID-vkCmdCopyQueryPoolResults-flags-00822", "text": "If VK_QUERY_RESULT_64_BIT is not set in flags then dstOffset and stride must be multiples of 4", @@ -33167,41 +33082,16 @@ "text": "If dstBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object", "page": "vkspec" }, - { - "vuid": "VUID-vkCmdCopyQueryPoolResults-queryType-00827", - "text": "If the queryType used to create queryPool was VK_QUERY_TYPE_TIMESTAMP, flags must not contain VK_QUERY_RESULT_PARTIAL_BIT", - "page": "vkspec" - }, { "vuid": "VUID-vkCmdCopyQueryPoolResults-queryType-03232", "text": "If the queryType used to create queryPool was VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR, VkPhysicalDevicePerformanceQueryPropertiesKHR::allowCommandBufferQueryCopies must be VK_TRUE", "page": "vkspec" }, - { - "vuid": "VUID-vkCmdCopyQueryPoolResults-queryType-03233", - "text": "If the queryType used to create queryPool was VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR, flags must not contain VK_QUERY_RESULT_WITH_AVAILABILITY_BIT, VK_QUERY_RESULT_WITH_STATUS_BIT_KHR, VK_QUERY_RESULT_PARTIAL_BIT, or VK_QUERY_RESULT_64_BIT", - "page": "vkspec" - }, - { - "vuid": "VUID-vkCmdCopyQueryPoolResults-queryType-03234", - "text": "If the queryType used to create queryPool was VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR, the queryPool must have been submitted once for each pass as retrieved via a call to vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR", - "page": "vkspec" - }, { "vuid": "VUID-vkCmdCopyQueryPoolResults-queryType-02734", "text": "vkCmdCopyQueryPoolResults must not be called if the queryType used to create queryPool was VK_QUERY_TYPE_PERFORMANCE_QUERY_INTEL", "page": "vkspec" }, - { - "vuid": "VUID-vkCmdCopyQueryPoolResults-queryType-06901", - "text": "If the queryType used to create queryPool was VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR, then flags must include VK_QUERY_RESULT_WITH_STATUS_BIT_KHR", - "page": "vkspec" - }, - { - "vuid": "VUID-vkCmdCopyQueryPoolResults-flags-06902", - "text": "If flags includes VK_QUERY_RESULT_WITH_STATUS_BIT_KHR, then it must not include VK_QUERY_RESULT_WITH_AVAILABILITY_BIT", - "page": "vkspec" - }, { "vuid": "VUID-vkCmdCopyQueryPoolResults-None-07429", "text": "All queries used by the command must not be active", @@ -71346,7 +71236,7 @@ }, { "vuid": "VUID-vkCmdBeginTransformFeedbackEXT-None-06233", - "text": "A valid graphics pipeline must be bound to VK_PIPELINE_BIND_POINT_GRAPHICS", + "text": "If the shaderObject feature is not enabled, a valid graphics pipeline must be bound to VK_PIPELINE_BIND_POINT_GRAPHICS", "page": "vkspec" }, { @@ -94723,11 +94613,6 @@ "text": "swapchain must be a valid VkSwapchainKHR handle", "page": "vkspec" }, - { - "vuid": "VUID-vkGetLatencyTimingsNV-pTimingCount-parameter", - "text": "pTimingCount must be a valid pointer to a uint32_t value", - "page": "vkspec" - }, { "vuid": "VUID-vkGetLatencyTimingsNV-pLatencyMarkerInfo-parameter", "text": "pLatencyMarkerInfo must be a valid pointer to a VkGetLatencyMarkerInfoNV structure", @@ -94749,7 +94634,7 @@ }, { "vuid": "VUID-VkGetLatencyMarkerInfoNV-pTimings-parameter", - "text": "pTimings must be a valid pointer to a VkLatencyTimingsFrameReportNV structure", + "text": "If timingCount is not 0, and pTimings is not NULL, pTimings must be a valid pointer to an array of timingCount VkLatencyTimingsFrameReportNV structures", "page": "vkspec" } ] @@ -100820,12 +100705,7 @@ }, { "vuid": "VUID-VkCuModuleCreateInfoNVX-pData-parameter", - "text": "pData must be a valid pointer to an array of dataSize bytes", - "page": "vkspec" - }, - { - "vuid": "VUID-VkCuModuleCreateInfoNVX-dataSize-arraylength", - "text": "dataSize must be greater than 0", + "text": "If dataSize is not 0, pData must be a valid pointer to an array of dataSize 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 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 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) // Version of this file @@ -1861,7 +1861,7 @@ typedef void* MTLSharedEvent_id; VkBool32 residencyStandard2DBlockShapeSparse resources support: GPU will access all 2D (single sample) sparse resources using the standard sparse image block shapes (based on pixel format) VkBool32 residencyStandard2DMultisampleBlockShapeSparse resources support: GPU will access all 2D (multisample) sparse resources using the standard sparse image block shapes (based on pixel format) VkBool32 residencyStandard3DBlockShapeSparse resources support: GPU will access all 3D sparse resources using the standard sparse image block shapes (based on pixel format) - VkBool32 residencyAlignedMipSizeSparse 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 + VkBool32 residencyAlignedMipSizeSparse 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 VkBool32 residencyNonResidentStrictSparse resources support: GPU can consistently access non-resident regions of a resource, all reads return as if data is 0, writes are discarded @@ -7248,8 +7248,8 @@ typedef void* MTLSharedEvent_id; VkStructureType sType const void* pNext - size_t dataSize - const void* pData + size_t dataSize + const void* pData VkStructureType sType @@ -8739,7 +8739,7 @@ typedef void* MTLSharedEvent_id; VkStructureType sType void* pNext - VkBool32 nullColorAttachmentWithExternalFormatResolve + VkBool32 nullColorAttachmentWithExternalFormatResolve VkChromaLocation externalFormatResolveChromaOffsetX VkChromaLocation externalFormatResolveChromaOffsetY @@ -8770,7 +8770,8 @@ typedef void* MTLSharedEvent_id; VkStructureType sType const void* pNext - VkLatencyTimingsFrameReportNV* pTimings + uint32_t timingCount + VkLatencyTimingsFrameReportNV* pTimings VkStructureType sType @@ -15033,7 +15034,6 @@ typedef void* MTLSharedEvent_id; void vkGetLatencyTimingsNV VkDevice device VkSwapchainKHR swapchain - uint32_t* pTimingCount VkGetLatencyMarkerInfoNV* pLatencyMarkerInfo @@ -18438,10 +18438,18 @@ typedef void* MTLSharedEvent_id; - + - - + + + + + + + + + + @@ -20815,8 +20823,6 @@ typedef void* MTLSharedEvent_id; - - @@ -20831,6 +20837,10 @@ typedef void* MTLSharedEvent_id; + + + + @@ -22493,7 +22503,7 @@ typedef void* MTLSharedEvent_id; - + @@ -23321,7 +23331,7 @@ typedef void* MTLSharedEvent_id; - + @@ -23703,6 +23713,12 @@ typedef void* MTLSharedEvent_id; + + + + + + @@ -25322,6 +25338,15 @@ typedef void* MTLSharedEvent_id; + + + + + + + + + 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'<>' + else: + return f'<>' + 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): -- cgit v1.2.3