Update for Vulkan-Docs 1.3.271

This commit is contained in:
Jon Leech 2023-11-26 21:52:30 -08:00 committed by Jon Leech
parent 7d92fe7b68
commit 9d27c893cd
17 changed files with 272 additions and 267 deletions

View File

@ -9,8 +9,9 @@
#define VULKAN_HPP #define VULKAN_HPP
#include <algorithm> #include <algorithm>
#include <array> // ArrayWrapperND #include <array> // ArrayWrapperND
#include <string> // std::string #include <string.h> // strnlen
#include <string> // std::string
#include <vulkan/vulkan.h> #include <vulkan/vulkan.h>
#include <vulkan/vulkan_hpp_macros.hpp> #include <vulkan/vulkan_hpp_macros.hpp>
@ -55,7 +56,7 @@ extern "C" __declspec( dllimport ) FARPROC __stdcall GetProcAddress( HINSTANCE h
# include <span> # include <span>
#endif #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 // <tuple> includes <sys/sysmacros.h> through some other header
// this results in major(x) being resolved to gnu_dev_major(x) // 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> template <typename B = T, typename std::enable_if<std::is_same<B, char>::value, int>::type = 0>
operator std::string() const 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 #if 17 <= VULKAN_HPP_CPP_VERSION
template <typename B = T, typename std::enable_if<std::is_same<B, char>::value, int>::type = 0> template <typename B = T, typename std::enable_if<std::is_same<B, char>::value, int>::type = 0>
operator std::string_view() const operator std::string_view() const
{ {
return std::string_view( this->data(), N ); return std::string_view( this->data(), strnlen( this->data(), N ) );
} }
#endif #endif
@ -5796,12 +5797,9 @@ namespace VULKAN_HPP_NAMESPACE
return ::vkSetLatencyMarkerNV( device, swapchain, pLatencyMarkerInfo ); return ::vkSetLatencyMarkerNV( device, swapchain, pLatencyMarkerInfo );
} }
void vkGetLatencyTimingsNV( VkDevice device, void vkGetLatencyTimingsNV( VkDevice device, VkSwapchainKHR swapchain, VkGetLatencyMarkerInfoNV * pLatencyMarkerInfo ) const VULKAN_HPP_NOEXCEPT
VkSwapchainKHR swapchain,
uint32_t * pTimingCount,
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 void vkQueueNotifyOutOfBandNV( VkQueue queue, const VkOutOfBandQueueTypeInfoNV * pQueueTypeInfo ) const VULKAN_HPP_NOEXCEPT

View File

@ -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 #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 // Version of this file
#define VK_HEADER_VERSION 270 #define VK_HEADER_VERSION 271
// Complete version of this file // Complete version of this file
#define VK_HEADER_VERSION_COMPLETE VK_MAKE_API_VERSION(0, 1, 3, VK_HEADER_VERSION) #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_CU_FUNCTION_NVX_EXT = 1000029001,
VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT = 1000150000, 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_ACCELERATION_STRUCTURE_NV_EXT = 1000165000,
VK_DEBUG_REPORT_OBJECT_TYPE_CUDA_MODULE_NV = 1000307000, VK_DEBUG_REPORT_OBJECT_TYPE_CUDA_MODULE_NV_EXT = 1000307000,
VK_DEBUG_REPORT_OBJECT_TYPE_CUDA_FUNCTION_NV = 1000307001, 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_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_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, 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. // 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_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" #define VK_NV_LOW_LATENCY_2_EXTENSION_NAME "VK_NV_low_latency2"
typedef enum VkLatencyMarkerNV { typedef enum VkLatencyMarkerNV {
@ -17858,6 +17858,7 @@ typedef struct VkLatencyTimingsFrameReportNV {
typedef struct VkGetLatencyMarkerInfoNV { typedef struct VkGetLatencyMarkerInfoNV {
VkStructureType sType; VkStructureType sType;
const void* pNext; const void* pNext;
uint32_t timingCount;
VkLatencyTimingsFrameReportNV* pTimings; VkLatencyTimingsFrameReportNV* pTimings;
} VkGetLatencyMarkerInfoNV; } 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_vkSetLatencySleepModeNV)(VkDevice device, VkSwapchainKHR swapchain, const VkLatencySleepModeInfoNV* pSleepModeInfo);
typedef VkResult (VKAPI_PTR *PFN_vkLatencySleepNV)(VkDevice device, VkSwapchainKHR swapchain, const VkLatencySleepInfoNV* pSleepInfo); 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_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); typedef void (VKAPI_PTR *PFN_vkQueueNotifyOutOfBandNV)(VkQueue queue, const VkOutOfBandQueueTypeInfoNV* pQueueTypeInfo);
#ifndef VK_NO_PROTOTYPES #ifndef VK_NO_PROTOTYPES
@ -17911,7 +17912,6 @@ VKAPI_ATTR void VKAPI_CALL vkSetLatencyMarkerNV(
VKAPI_ATTR void VKAPI_CALL vkGetLatencyTimingsNV( VKAPI_ATTR void VKAPI_CALL vkGetLatencyTimingsNV(
VkDevice device, VkDevice device,
VkSwapchainKHR swapchain, VkSwapchainKHR swapchain,
uint32_t* pTimingCount,
VkGetLatencyMarkerInfoNV* pLatencyMarkerInfo); VkGetLatencyMarkerInfoNV* pLatencyMarkerInfo);
VKAPI_ATTR void VKAPI_CALL vkQueueNotifyOutOfBandNV( VKAPI_ATTR void VKAPI_CALL vkQueueNotifyOutOfBandNV(

View File

@ -4676,8 +4676,8 @@ namespace VULKAN_HPP_NAMESPACE
eSamplerYcbcrConversionKHR = VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR_EXT, eSamplerYcbcrConversionKHR = VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR_EXT,
eAccelerationStructureNV = VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT, eAccelerationStructureNV = VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT,
#if defined( VK_ENABLE_BETA_EXTENSIONS ) #if defined( VK_ENABLE_BETA_EXTENSIONS )
eCudaModuleNV = VK_DEBUG_REPORT_OBJECT_TYPE_CUDA_MODULE_NV, eCudaModuleNV = VK_DEBUG_REPORT_OBJECT_TYPE_CUDA_MODULE_NV_EXT,
eCudaFunctionNV = VK_DEBUG_REPORT_OBJECT_TYPE_CUDA_FUNCTION_NV, eCudaFunctionNV = VK_DEBUG_REPORT_OBJECT_TYPE_CUDA_FUNCTION_NV_EXT,
#endif /*VK_ENABLE_BETA_EXTENSIONS*/ #endif /*VK_ENABLE_BETA_EXTENSIONS*/
#if defined( VK_USE_PLATFORM_FUCHSIA ) #if defined( VK_USE_PLATFORM_FUCHSIA )
eBufferCollectionFUCHSIA = VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA_EXT eBufferCollectionFUCHSIA = VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA_EXT
@ -7326,8 +7326,8 @@ namespace VULKAN_HPP_NAMESPACE
#if defined( VK_ENABLE_BETA_EXTENSIONS ) #if defined( VK_ENABLE_BETA_EXTENSIONS )
//=== VK_NV_cuda_kernel_launch === //=== VK_NV_cuda_kernel_launch ===
case VULKAN_HPP_NAMESPACE::ObjectType::eCudaModuleNV: 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::eUnknown; case VULKAN_HPP_NAMESPACE::ObjectType::eCudaFunctionNV: return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eCudaFunctionNV;
#endif /*VK_ENABLE_BETA_EXTENSIONS*/ #endif /*VK_ENABLE_BETA_EXTENSIONS*/
#if defined( VK_USE_PLATFORM_FUCHSIA ) #if defined( VK_USE_PLATFORM_FUCHSIA )

View File

@ -10,6 +10,8 @@
#include <map> #include <map>
#include <set> #include <set>
#include <string>
#include <vector>
#include <vulkan/vulkan.hpp> #include <vulkan/vulkan.hpp>
namespace VULKAN_HPP_NAMESPACE namespace VULKAN_HPP_NAMESPACE

View File

@ -23170,29 +23170,24 @@ namespace VULKAN_HPP_NAMESPACE
template <typename Dispatch> template <typename Dispatch>
VULKAN_HPP_INLINE void Device::getLatencyTimingsNV( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, VULKAN_HPP_INLINE void Device::getLatencyTimingsNV( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,
uint32_t * pTimingCount,
VULKAN_HPP_NAMESPACE::GetLatencyMarkerInfoNV * pLatencyMarkerInfo, VULKAN_HPP_NAMESPACE::GetLatencyMarkerInfoNV * pLatencyMarkerInfo,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{ {
VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION ); VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
d.vkGetLatencyTimingsNV( d.vkGetLatencyTimingsNV( m_device, static_cast<VkSwapchainKHR>( swapchain ), reinterpret_cast<VkGetLatencyMarkerInfoNV *>( pLatencyMarkerInfo ) );
m_device, static_cast<VkSwapchainKHR>( swapchain ), pTimingCount, reinterpret_cast<VkGetLatencyMarkerInfoNV *>( pLatencyMarkerInfo ) );
} }
#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
template <typename Dispatch> 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 Device::getLatencyTimingsNV( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{ {
VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION ); VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
std::pair<uint32_t, VULKAN_HPP_NAMESPACE::GetLatencyMarkerInfoNV> data_; VULKAN_HPP_NAMESPACE::GetLatencyMarkerInfoNV latencyMarkerInfo;
uint32_t & timingCount = data_.first; d.vkGetLatencyTimingsNV( m_device, static_cast<VkSwapchainKHR>( swapchain ), reinterpret_cast<VkGetLatencyMarkerInfoNV *>( &latencyMarkerInfo ) );
VULKAN_HPP_NAMESPACE::GetLatencyMarkerInfoNV & latencyMarkerInfo = data_.second;
d.vkGetLatencyTimingsNV(
m_device, static_cast<VkSwapchainKHR>( swapchain ), &timingCount, reinterpret_cast<VkGetLatencyMarkerInfoNV *>( &latencyMarkerInfo ) );
return data_; return latencyMarkerInfo;
} }
#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */ #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */

View File

@ -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::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eCudaFunctionNV;
static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType =
VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown; VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eCudaFunctionNV;
public: public:
VULKAN_HPP_CONSTEXPR CudaFunctionNV() = default; VULKAN_HPP_CONSTEXPR CudaFunctionNV() = default;
@ -7244,6 +7244,12 @@ namespace VULKAN_HPP_NAMESPACE
using Type = VULKAN_HPP_NAMESPACE::CudaFunctionNV; using Type = VULKAN_HPP_NAMESPACE::CudaFunctionNV;
}; };
template <>
struct CppType<VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eCudaFunctionNV>
{
using Type = VULKAN_HPP_NAMESPACE::CudaFunctionNV;
};
template <> template <>
struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::CudaFunctionNV> struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::CudaFunctionNV>
{ {
@ -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::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eCudaModuleNV;
static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType =
VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown; VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eCudaModuleNV;
public: public:
VULKAN_HPP_CONSTEXPR CudaModuleNV() = default; VULKAN_HPP_CONSTEXPR CudaModuleNV() = default;
@ -7325,6 +7331,12 @@ namespace VULKAN_HPP_NAMESPACE
using Type = VULKAN_HPP_NAMESPACE::CudaModuleNV; using Type = VULKAN_HPP_NAMESPACE::CudaModuleNV;
}; };
template <>
struct CppType<VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eCudaModuleNV>
{
using Type = VULKAN_HPP_NAMESPACE::CudaModuleNV;
};
template <> template <>
struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::CudaModuleNV> struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::CudaModuleNV>
{ {
@ -13562,12 +13574,11 @@ namespace VULKAN_HPP_NAMESPACE
template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
void getLatencyTimingsNV( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, void getLatencyTimingsNV( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,
uint32_t * pTimingCount,
VULKAN_HPP_NAMESPACE::GetLatencyMarkerInfoNV * pLatencyMarkerInfo, VULKAN_HPP_NAMESPACE::GetLatencyMarkerInfoNV * pLatencyMarkerInfo,
Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> 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, getLatencyTimingsNV( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,
Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */ #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */

View File

@ -5191,6 +5191,7 @@ namespace std
std::size_t seed = 0; std::size_t seed = 0;
VULKAN_HPP_HASH_COMBINE( seed, getLatencyMarkerInfoNV.sType ); VULKAN_HPP_HASH_COMBINE( seed, getLatencyMarkerInfoNV.sType );
VULKAN_HPP_HASH_COMBINE( seed, getLatencyMarkerInfoNV.pNext ); VULKAN_HPP_HASH_COMBINE( seed, getLatencyMarkerInfoNV.pNext );
VULKAN_HPP_HASH_COMBINE( seed, getLatencyMarkerInfoNV.timingCount );
VULKAN_HPP_HASH_COMBINE( seed, getLatencyMarkerInfoNV.pTimings ); VULKAN_HPP_HASH_COMBINE( seed, getLatencyMarkerInfoNV.pTimings );
return seed; return seed;
} }

View File

@ -28,6 +28,13 @@
# error "vulkan.hpp needs at least c++ standard version 11" # error "vulkan.hpp needs at least c++ standard version 11"
#endif #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_DISABLE_ENHANCED_MODE )
# if !defined( VULKAN_HPP_NO_SMART_HANDLE ) # if !defined( VULKAN_HPP_NO_SMART_HANDLE )
# define VULKAN_HPP_NO_SMART_HANDLE # define VULKAN_HPP_NO_SMART_HANDLE

View File

@ -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::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eCudaFunctionNV;
static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType =
VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown; VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eCudaFunctionNV;
public: public:
CudaFunctionNV( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 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::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eCudaModuleNV;
static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType =
VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown; VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eCudaModuleNV;
public: public:
CudaModuleNV( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 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; 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: private:
VULKAN_HPP_NAMESPACE::Device m_device = {}; VULKAN_HPP_NAMESPACE::Device m_device = {};
@ -21106,20 +21106,15 @@ namespace VULKAN_HPP_NAMESPACE
reinterpret_cast<const VkSetLatencyMarkerInfoNV *>( &latencyMarkerInfo ) ); reinterpret_cast<const VkSetLatencyMarkerInfoNV *>( &latencyMarkerInfo ) );
} }
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::pair<uint32_t, VULKAN_HPP_NAMESPACE::GetLatencyMarkerInfoNV> VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::GetLatencyMarkerInfoNV SwapchainKHR::getLatencyTimingsNV() const VULKAN_HPP_NOEXCEPT
SwapchainKHR::getLatencyTimingsNV() const VULKAN_HPP_NOEXCEPT
{ {
VULKAN_HPP_ASSERT( getDispatcher()->vkGetLatencyTimingsNV && "Function <vkGetLatencyTimingsNV> requires <VK_NV_low_latency2>" ); VULKAN_HPP_ASSERT( getDispatcher()->vkGetLatencyTimingsNV && "Function <vkGetLatencyTimingsNV> requires <VK_NV_low_latency2>" );
std::pair<uint32_t, VULKAN_HPP_NAMESPACE::GetLatencyMarkerInfoNV> data_; VULKAN_HPP_NAMESPACE::GetLatencyMarkerInfoNV latencyMarkerInfo;
uint32_t & timingCount = data_.first; getDispatcher()->vkGetLatencyTimingsNV(
VULKAN_HPP_NAMESPACE::GetLatencyMarkerInfoNV & latencyMarkerInfo = data_.second; static_cast<VkDevice>( m_device ), static_cast<VkSwapchainKHR>( m_swapchain ), reinterpret_cast<VkGetLatencyMarkerInfoNV *>( &latencyMarkerInfo ) );
getDispatcher()->vkGetLatencyTimingsNV( static_cast<VkDevice>( m_device ),
static_cast<VkSwapchainKHR>( m_swapchain ),
&timingCount,
reinterpret_cast<VkGetLatencyMarkerInfoNV *>( &latencyMarkerInfo ) );
return data_; return latencyMarkerInfo;
} }
VULKAN_HPP_INLINE void Queue::notifyOutOfBandNV( const VULKAN_HPP_NAMESPACE::OutOfBandQueueTypeInfoNV & queueTypeInfo ) const VULKAN_HPP_NOEXCEPT VULKAN_HPP_INLINE void Queue::notifyOutOfBandNV( const VULKAN_HPP_NAMESPACE::OutOfBandQueueTypeInfoNV & queueTypeInfo ) const VULKAN_HPP_NOEXCEPT

View File

@ -38980,9 +38980,11 @@ namespace VULKAN_HPP_NAMESPACE
static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eGetLatencyMarkerInfoNV; static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eGetLatencyMarkerInfoNV;
#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) #if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
VULKAN_HPP_CONSTEXPR GetLatencyMarkerInfoNV( VULKAN_HPP_NAMESPACE::LatencyTimingsFrameReportNV * pTimings_ = {}, VULKAN_HPP_CONSTEXPR GetLatencyMarkerInfoNV( uint32_t timingCount_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT VULKAN_HPP_NAMESPACE::LatencyTimingsFrameReportNV * pTimings_ = {},
const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
: pNext( pNext_ ) : pNext( pNext_ )
, timingCount( timingCount_ )
, pTimings( pTimings_ ) , 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; GetLatencyMarkerInfoNV & operator=( GetLatencyMarkerInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default;
#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/ #endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
@ -39010,12 +39020,28 @@ namespace VULKAN_HPP_NAMESPACE
return *this; 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 VULKAN_HPP_CONSTEXPR_14 GetLatencyMarkerInfoNV & setPTimings( VULKAN_HPP_NAMESPACE::LatencyTimingsFrameReportNV * pTimings_ ) VULKAN_HPP_NOEXCEPT
{ {
pTimings = pTimings_; pTimings = pTimings_;
return *this; 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 operator VkGetLatencyMarkerInfoNV const &() const VULKAN_HPP_NOEXCEPT
{ {
@ -39031,11 +39057,11 @@ namespace VULKAN_HPP_NAMESPACE
# if 14 <= VULKAN_HPP_CPP_VERSION # if 14 <= VULKAN_HPP_CPP_VERSION
auto auto
# else # 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 # endif
reflect() const VULKAN_HPP_NOEXCEPT reflect() const VULKAN_HPP_NOEXCEPT
{ {
return std::tie( sType, pNext, pTimings ); return std::tie( sType, pNext, timingCount, pTimings );
} }
#endif #endif
@ -39047,7 +39073,7 @@ namespace VULKAN_HPP_NAMESPACE
# if defined( VULKAN_HPP_USE_REFLECT ) # if defined( VULKAN_HPP_USE_REFLECT )
return this->reflect() == rhs.reflect(); return this->reflect() == rhs.reflect();
# else # 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 # endif
} }
@ -39058,9 +39084,10 @@ namespace VULKAN_HPP_NAMESPACE
#endif #endif
public: public:
VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eGetLatencyMarkerInfoNV; VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eGetLatencyMarkerInfoNV;
const void * pNext = {}; const void * pNext = {};
VULKAN_HPP_NAMESPACE::LatencyTimingsFrameReportNV * pTimings = {}; uint32_t timingCount = {};
VULKAN_HPP_NAMESPACE::LatencyTimingsFrameReportNV * pTimings = {};
}; };
template <> template <>

View File

@ -64,9 +64,8 @@ def regSortCategoryKey(feature):
return 0.5 return 0.5
else: else:
return 0 return 0
if (feature.category == 'ARB'
or feature.category == 'KHR' if feature.category.upper() in ['ARB', 'KHR', 'OES']:
or feature.category == 'OES'):
return 1 return 1
return 2 return 2

View File

@ -52,45 +52,20 @@ import operator
import pyparsing as pp import pyparsing as pp
import re import re
from apiconventions import APIConventions as APIConventions
conventions = APIConventions()
def markupPassthrough(name): def markupPassthrough(name):
"""Pass a name (leaf or operator) through without applying markup""" """Pass a name (leaf or operator) through without applying markup"""
return name 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): def leafMarkupAsciidoc(name):
"""Markup a leaf name as an asciidoc link to an API version or extension """Markup a leaf name as an asciidoc link to an API version or extension
anchor. anchor.
- name - version or extension name""" - name - version or extension name"""
(apivariant, major, minor) = apiVersionNameMatch(name) return conventions.formatVersionOrExtension(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}'
def leafMarkupC(name): def leafMarkupC(name):
"""Markup a leaf name as a C expression, using conventions of the """Markup a leaf name as a C expression, using conventions of the
@ -344,6 +319,10 @@ def dependencyMarkup(dependency):
return markupTraverse(parsed) return markupTraverse(parsed)
if __name__ == "__main__": 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 = { termdict = {
'VK_VERSION_1_1' : True, 'VK_VERSION_1_1' : True,

View File

@ -32,12 +32,12 @@ TYPES_KNOWN_ALWAYS_VALID = set(('char',
)) ))
# Split an extension name into vendor ID and name portions # 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 an API version name.
# Match object includes API prefix, major, and minor version numbers.
# This could be refined further for specific APIs. # 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): class ProseListFormats(Enum):
"""A connective, possibly with a quantifier.""" """A connective, possibly with a quantifier."""
@ -80,10 +80,39 @@ class ConventionsBase(abc.ABC):
self._command_prefix = None self._command_prefix = None
self._type_prefix = None self._type_prefix = None
def formatExtension(self, name): def formatVersionOrExtension(self, name):
"""Mark up an extension name as a link the spec.""" """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) return '`<<{}>>`'.format(name)
def formatExtension(self, name):
"""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 @property
@abc.abstractmethod @abc.abstractmethod
def null(self): def null(self):
@ -260,6 +289,42 @@ class ConventionsBase(abc.ABC):
Must implement.""" Must implement."""
raise NotImplementedError 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 @property
def api_version_prefix(self): def api_version_prefix(self):
"""Return API core version token prefix. """Return API core version token prefix.
@ -375,6 +440,16 @@ class ConventionsBase(abc.ABC):
documentation includes.""" documentation includes."""
return False 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 @abc.abstractmethod
def extension_file_path(self, name): def extension_file_path(self, name):
"""Return file path to an extension appendix relative to a directory """Return file path to an extension appendix relative to a directory

View File

@ -1,7 +1,6 @@
"""Utility functions not closely tied to other spec_tools types.""" """Utility functions not closely tied to other spec_tools types."""
# Copyright (c) 2018-2019 Collabora, Ltd. # Copyright (c) 2018-2019 Collabora, Ltd.
# Copyright 2013-2023 The Khronos Group Inc. # Copyright 2013-2023 The Khronos Group Inc.
#
# SPDX-License-Identifier: Apache-2.0 # SPDX-License-Identifier: Apache-2.0

View File

@ -1,9 +1,9 @@
{ {
"version info": { "version info": {
"schema version": 2, "schema version": 2,
"api version": "1.3.270", "api version": "1.3.271",
"comment": "from git branch: github-main commit: b4792eab92a1d132ef95b56a7681cc6af69b570e", "comment": "from git branch: github-main commit: dbad946f7edc9137dbb972ea8e271592e3fb9746",
"date": "2023-11-10 11:37:06Z" "date": "2023-11-27 05:16:04Z"
}, },
"validation": { "validation": {
"vkGetInstanceProcAddr": { "vkGetInstanceProcAddr": {
@ -3892,8 +3892,8 @@
"vkDestroySemaphore": { "vkDestroySemaphore": {
"core": [ "core": [
{ {
"vuid": "VUID-vkDestroySemaphore-semaphore-01137", "vuid": "VUID-vkDestroySemaphore-semaphore-05149",
"text": "All submitted batches that refer to <code>semaphore</code> <strong class=\"purple\">must</strong> have completed execution", "text": "All submitted batches that refer to <code>semaphore</code> <strong class=\"purple\">must</strong> have completed execution",
"page": "vkspec" "page": "vkspec"
}, },
{ {
@ -7646,13 +7646,13 @@
"page": "vkspec" "page": "vkspec"
}, },
{ {
"vuid": "VUID-VkImageMemoryBarrier2-image-03319", "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 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>", "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" "page": "vkspec"
}, },
{ {
"vuid": "VUID-VkImageMemoryBarrier2-image-03320", "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 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>", "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" "page": "vkspec"
}, },
{ {
@ -7945,13 +7945,13 @@
"page": "vkspec" "page": "vkspec"
}, },
{ {
"vuid": "VUID-VkImageMemoryBarrier-image-03319", "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 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>", "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" "page": "vkspec"
}, },
{ {
"vuid": "VUID-VkImageMemoryBarrier-image-03320", "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 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>", "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" "page": "vkspec"
}, },
{ {
@ -8083,13 +8083,13 @@
"page": "vkspec" "page": "vkspec"
}, },
{ {
"vuid": "VUID-VkHostImageLayoutTransitionInfoEXT-image-03319", "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 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>", "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" "page": "vkspec"
}, },
{ {
"vuid": "VUID-VkHostImageLayoutTransitionInfoEXT-image-03320", "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 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>", "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" "page": "vkspec"
}, },
{ {
@ -11977,12 +11977,12 @@
}, },
{ {
"vuid": "VUID-VkRenderPassBeginInfo-None-08996", "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" "page": "vkspec"
}, },
{ {
"vuid": "VUID-VkRenderPassBeginInfo-None-08997", "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" "page": "vkspec"
}, },
{ {
@ -14068,16 +14068,6 @@
}, },
"vkGetCudaModuleCacheNV": { "vkGetCudaModuleCacheNV": {
"core": [ "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", "vuid": "VUID-vkGetCudaModuleCacheNV-device-parameter",
"text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle", "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
@ -22164,12 +22154,12 @@
}, },
{ {
"vuid": "VUID-vkGetImageSubresourceLayout-mipLevel-01716", "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" "page": "vkspec"
}, },
{ {
"vuid": "VUID-vkGetImageSubresourceLayout-arrayLayer-01717", "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" "page": "vkspec"
}, },
{ {
@ -22198,12 +22188,12 @@
"page": "vkspec" "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", "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" "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&#8217;s <code>format</code> and <a href=\"#VkImageDrmFormatModifierPropertiesEXT\">VkImageDrmFormatModifierPropertiesEXT</a>::<code>drmFormatModifier</code>", "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&#8217;s <code>format</code> and <a href=\"#VkImageDrmFormatModifierPropertiesEXT\">VkImageDrmFormatModifierPropertiesEXT</a>::<code>drmFormatModifier</code>",
"page": "vkspec" "page": "vkspec"
}, },
@ -22257,12 +22247,12 @@
}, },
{ {
"vuid": "VUID-vkGetImageSubresourceLayout2KHR-mipLevel-01716", "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" "page": "vkspec"
}, },
{ {
"vuid": "VUID-vkGetImageSubresourceLayout2KHR-arrayLayer-01717", "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" "page": "vkspec"
}, },
{ {
@ -22291,12 +22281,12 @@
"page": "vkspec" "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", "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" "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&#8217;s <code>format</code> and <a href=\"#VkImageDrmFormatModifierPropertiesEXT\">VkImageDrmFormatModifierPropertiesEXT</a>::<code>drmFormatModifier</code>", "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&#8217;s <code>format</code> and <a href=\"#VkImageDrmFormatModifierPropertiesEXT\">VkImageDrmFormatModifierPropertiesEXT</a>::<code>drmFormatModifier</code>",
"page": "vkspec" "page": "vkspec"
}, },
@ -22402,47 +22392,37 @@
}, },
{ {
"vuid": "VUID-VkDeviceImageSubresourceInfoKHR-mipLevel-01716", "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" "page": "vkspec"
}, },
{ {
"vuid": "VUID-VkDeviceImageSubresourceInfoKHR-arrayLayer-01717", "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" "page": "vkspec"
}, },
{ {
"vuid": "VUID-VkDeviceImageSubresourceInfoKHR-format-08886", "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" "page": "vkspec"
}, },
{ {
"vuid": "VUID-VkDeviceImageSubresourceInfoKHR-format-04462", "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" "page": "vkspec"
}, },
{ {
"vuid": "VUID-VkDeviceImageSubresourceInfoKHR-format-04463", "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" "page": "vkspec"
}, },
{ {
"vuid": "VUID-VkDeviceImageSubresourceInfoKHR-format-04464", "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" "page": "vkspec"
}, },
{ {
"vuid": "VUID-VkDeviceImageSubresourceInfoKHR-tiling-08717", "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", "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"
},
{
"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&#8217;s <code>format</code> and <a href=\"#VkImageDrmFormatModifierPropertiesEXT\">VkImageDrmFormatModifierPropertiesEXT</a>::<code>drmFormatModifier</code>",
"page": "vkspec" "page": "vkspec"
}, },
{ {
@ -32364,16 +32344,6 @@
}, },
"vkCmdResetQueryPool": { "vkCmdResetQueryPool": {
"core": [ "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", "vuid": "VUID-vkCmdResetQueryPool-None-02841",
"text": "All queries used by the command <strong class=\"purple\">must</strong> not be active", "text": "All queries used by the command <strong class=\"purple\">must</strong> not be active",
@ -32428,16 +32398,6 @@
"text": "The <a href=\"#features-hostQueryReset\"><code>hostQueryReset</code></a> feature <strong class=\"purple\">must</strong> be enabled", "text": "The <a href=\"#features-hostQueryReset\"><code>hostQueryReset</code></a> feature <strong class=\"purple\">must</strong> be enabled",
"page": "vkspec" "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", "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", "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",
@ -33023,11 +32983,6 @@
"text": "All queries used by the command <strong class=\"purple\">must</strong> not be uninitialized", "text": "All queries used by the command <strong class=\"purple\">must</strong> not be uninitialized",
"page": "vkspec" "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", "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>", "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>",
@ -33053,41 +33008,11 @@
"text": "If the <code>queryType</code> used to create <code>queryPool</code> was <code>VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR</code>, then <code>stride</code> <strong class=\"purple\">must</strong> be large enough to contain the <a href=\"#VkQueryPoolPerformanceCreateInfoKHR\">VkQueryPoolPerformanceCreateInfoKHR</a>::<code>counterIndexCount</code> used to create <code>queryPool</code> times the size of <a href=\"#VkPerformanceCounterResultKHR\">VkPerformanceCounterResultKHR</a>", "text": "If the <code>queryType</code> used to create <code>queryPool</code> was <code>VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR</code>, then <code>stride</code> <strong class=\"purple\">must</strong> be large enough to contain the <a href=\"#VkQueryPoolPerformanceCreateInfoKHR\">VkQueryPoolPerformanceCreateInfoKHR</a>::<code>counterIndexCount</code> used to create <code>queryPool</code> times the size of <a href=\"#VkPerformanceCounterResultKHR\">VkPerformanceCounterResultKHR</a>",
"page": "vkspec" "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", "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>", "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" "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", "vuid": "VUID-vkGetQueryPoolResults-device-parameter",
"text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle", "text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
@ -33132,16 +33057,6 @@
"text": "<code>dstOffset</code> <strong class=\"purple\">must</strong> be less than the size of <code>dstBuffer</code>", "text": "<code>dstOffset</code> <strong class=\"purple\">must</strong> be less than the size of <code>dstBuffer</code>",
"page": "vkspec" "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", "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>", "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>",
@ -33167,41 +33082,16 @@
"text": "If <code>dstBuffer</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object", "text": "If <code>dstBuffer</code> is non-sparse then it <strong class=\"purple\">must</strong> be bound completely and contiguously to a single <code>VkDeviceMemory</code> object",
"page": "vkspec" "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", "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>", "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" "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", "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>", "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" "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", "vuid": "VUID-vkCmdCopyQueryPoolResults-None-07429",
"text": "All queries used by the command <strong class=\"purple\">must</strong> not be active", "text": "All queries used by the command <strong class=\"purple\">must</strong> not be active",
@ -71346,7 +71236,7 @@
}, },
{ {
"vuid": "VUID-vkCmdBeginTransformFeedbackEXT-None-06233", "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" "page": "vkspec"
}, },
{ {
@ -94723,11 +94613,6 @@
"text": "<code>swapchain</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSwapchainKHR\">VkSwapchainKHR</a> handle", "text": "<code>swapchain</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSwapchainKHR\">VkSwapchainKHR</a> handle",
"page": "vkspec" "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", "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", "text": "<code>pLatencyMarkerInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkGetLatencyMarkerInfoNV\">VkGetLatencyMarkerInfoNV</a> structure",
@ -94749,7 +94634,7 @@
}, },
{ {
"vuid": "VUID-VkGetLatencyMarkerInfoNV-pTimings-parameter", "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" "page": "vkspec"
} }
] ]
@ -100820,12 +100705,7 @@
}, },
{ {
"vuid": "VUID-VkCuModuleCreateInfoNVX-pData-parameter", "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", "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"
},
{
"vuid": "VUID-VkCuModuleCreateInfoNVX-dataSize-arraylength",
"text": "<code>dataSize</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
"page": "vkspec" "page": "vkspec"
} }
] ]

View File

@ -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> #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 <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 <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> #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 <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>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>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>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> <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>
<type category="struct" name="VkPhysicalDeviceLimits" returnedonly="true"> <type category="struct" name="VkPhysicalDeviceLimits" returnedonly="true">
@ -7248,8 +7248,8 @@ typedef void* <name>MTLSharedEvent_id</name>;
<type category="struct" name="VkCuModuleCreateInfoNVX"> <type category="struct" name="VkCuModuleCreateInfoNVX">
<member values="VK_STRUCTURE_TYPE_CU_MODULE_CREATE_INFO_NVX"><type>VkStructureType</type> <name>sType</name></member> <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 optional="true">const <type>void</type>* <name>pNext</name></member>
<member><type>size_t</type> <name>dataSize</name></member> <member optional="true"><type>size_t</type> <name>dataSize</name></member>
<member len="dataSize">const <type>void</type>* <name>pData</name></member> <member len="dataSize">const <type>void</type>* <name>pData</name></member>
</type> </type>
<type category="struct" name="VkCuFunctionCreateInfoNVX"> <type category="struct" name="VkCuFunctionCreateInfoNVX">
<member values="VK_STRUCTURE_TYPE_CU_FUNCTION_CREATE_INFO_NVX"><type>VkStructureType</type> <name>sType</name></member> <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"> <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 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 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>externalFormatResolveChromaOffsetX</name></member>
<member limittype="noauto"><type>VkChromaLocation</type> <name>externalFormatResolveChromaOffsetY</name></member> <member limittype="noauto"><type>VkChromaLocation</type> <name>externalFormatResolveChromaOffsetY</name></member>
</type> </type>
@ -8770,7 +8770,8 @@ typedef void* <name>MTLSharedEvent_id</name>;
<type category="struct" name="VkGetLatencyMarkerInfoNV"> <type category="struct" name="VkGetLatencyMarkerInfoNV">
<member values="VK_STRUCTURE_TYPE_GET_LATENCY_MARKER_INFO_NV"><type>VkStructureType</type> <name>sType</name></member> <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 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>
<type category="struct" name="VkLatencyTimingsFrameReportNV"> <type category="struct" name="VkLatencyTimingsFrameReportNV">
<member values="VK_STRUCTURE_TYPE_LATENCY_TIMINGS_FRAME_REPORT_NV"><type>VkStructureType</type> <name>sType</name></member> <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> <proto><type>void</type> <name>vkGetLatencyTimingsNV</name></proto>
<param><type>VkDevice</type> <name>device</name></param> <param><type>VkDevice</type> <name>device</name></param>
<param><type>VkSwapchainKHR</type> <name>swapchain</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> <param><type>VkGetLatencyMarkerInfoNV</type>* <name>pLatencyMarkerInfo</name></param>
</command> </command>
<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"/> <enum bitpos="25" extends="VkBufferUsageFlagBits2KHR" name="VK_BUFFER_USAGE_2_EXECUTION_GRAPH_SCRATCH_BIT_AMDX"/>
</require> </require>
</extension> </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> <require>
<enum value="0" name="VK_AMD_EXTENSION_136_SPEC_VERSION"/> <enum value="0" name="VK_KHR_EXTENSION_136_SPEC_VERSION"/>
<enum value="&quot;VK_AMD_extension_136&quot;" name="VK_AMD_EXTENSION_136_EXTENSION_NAME"/> <enum value="&quot;VK_KHR_extension_136&quot;" 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> </require>
</extension> </extension>
<extension name="VK_AMD_mixed_attachment_samples" number="137" type="device" author="AMD" contact="Matthaeus G. Chajdas @anteru" supported="vulkan"> <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="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="0" extends="VkObjectType" name="VK_OBJECT_TYPE_CUDA_MODULE_NV"/>
<enum offset="1" extends="VkObjectType" name="VK_OBJECT_TYPE_CUDA_FUNCTION_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="VkCudaModuleNV"/>
<type name="VkCudaFunctionNV"/> <type name="VkCudaFunctionNV"/>
<type name="VkCudaModuleCreateInfoNV"/> <type name="VkCudaModuleCreateInfoNV"/>
@ -20831,6 +20837,10 @@ typedef void* <name>MTLSharedEvent_id</name>;
<command name="vkDestroyCudaFunctionNV"/> <command name="vkDestroyCudaFunctionNV"/>
<command name="vkCmdCudaLaunchKernelNV"/> <command name="vkCmdCudaLaunchKernelNV"/>
</require> </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>
<extension name="VK_KHR_object_refresh" number="309" type="device" author="KHR" contact="Aidan Fabius @afabius" supported="vulkansc" ratified="vulkansc"> <extension name="VK_KHR_object_refresh" number="309" type="device" author="KHR" contact="Aidan Fabius @afabius" supported="vulkansc" ratified="vulkansc">
<require> <require>
@ -22493,7 +22503,7 @@ typedef void* <name>MTLSharedEvent_id</name>;
<enum value="&quot;VK_SEC_extension_451&quot;" name="VK_SEC_EXTENSION_451_EXTENSION_NAME"/> <enum value="&quot;VK_SEC_extension_451&quot;" name="VK_SEC_EXTENSION_451_EXTENSION_NAME"/>
</require> </require>
</extension> </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> <require>
<enum value="1" name="VK_EXT_NESTED_COMMAND_BUFFER_SPEC_VERSION"/> <enum value="1" name="VK_EXT_NESTED_COMMAND_BUFFER_SPEC_VERSION"/>
<enum value="&quot;VK_EXT_nested_command_buffer&quot;" name="VK_EXT_NESTED_COMMAND_BUFFER_EXTENSION_NAME"/> <enum value="&quot;VK_EXT_nested_command_buffer&quot;" name="VK_EXT_NESTED_COMMAND_BUFFER_EXTENSION_NAME"/>
@ -23321,7 +23331,7 @@ typedef void* <name>MTLSharedEvent_id</name>;
</extension> </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"> <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> <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="&quot;VK_NV_low_latency2&quot;" name="VK_NV_LOW_LATENCY_2_EXTENSION_NAME"/> <enum value="&quot;VK_NV_low_latency2&quot;" name="VK_NV_LOW_LATENCY_2_EXTENSION_NAME"/>
<enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_LATENCY_SLEEP_MODE_INFO_NV"/> <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"/> <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="&quot;VK_KHR_extension_554&quot;" name="VK_KHR_EXTENSION_554_EXTENSION_NAME"/> <enum value="&quot;VK_KHR_extension_554&quot;" name="VK_KHR_EXTENSION_554_EXTENSION_NAME"/>
</require> </require>
</extension> </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="&quot;VK_IMG_extension_555&quot;" name="VK_IMG_EXTENSION_555_EXTENSION_NAME"/>
</require>
</extension>
</extensions> </extensions>
<formats> <formats>
<format name="VK_FORMAT_R4G4_UNORM_PACK8" class="8-bit" blockSize="1" texelsPerBlock="1" packed="8"> <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"> <spirvextension name="SPV_AMDX_shader_enqueue">
<enable extension="VK_AMDX_shader_enqueue"/> <enable extension="VK_AMDX_shader_enqueue"/>
</spirvextension> </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> </spirvextensions>
<spirvcapabilities comment="SPIR-V Capabilities allowed in Vulkan and what is required to use it"> <spirvcapabilities comment="SPIR-V Capabilities allowed in Vulkan and what is required to use it">
<spirvcapability name="Matrix"> <spirvcapability name="Matrix">

View File

@ -50,9 +50,21 @@ class VulkanConventions(ConventionsBase):
"""Preferred spelling of NULL.""" """Preferred spelling of NULL."""
return '`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): 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 '`apiext:{}`'.format(name) return f'apiext:{name}'
@property @property
def struct_macro(self): def struct_macro(self):