aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--include/vulkan/vulkan.hpp36
-rw-r--r--include/vulkan/vulkan_core.h14
-rw-r--r--include/vulkan/vulkan_enums.hpp1
-rw-r--r--include/vulkan/vulkan_extension_inspection.hpp9
-rw-r--r--include/vulkan/vulkan_handles.hpp3
-rw-r--r--include/vulkan/vulkan_hash.hpp13
-rw-r--r--include/vulkan/vulkan_static_assertions.hpp9
-rw-r--r--include/vulkan/vulkan_structs.hpp98
-rw-r--r--include/vulkan/vulkan_to_string.hpp1
-rw-r--r--registry/apiconventions.py12
-rwxr-xr-xregistry/genvk.py244
-rwxr-xr-xregistry/parse_dependency.py11
-rw-r--r--registry/reg.py26
-rw-r--r--registry/validusage.json1914
-rw-r--r--registry/vk.xml24
-rwxr-xr-x[-rw-r--r--]registry/vkconventions.py19
16 files changed, 2006 insertions, 428 deletions
diff --git a/include/vulkan/vulkan.hpp b/include/vulkan/vulkan.hpp
index 95c6513..16867fd 100644
--- a/include/vulkan/vulkan.hpp
+++ b/include/vulkan/vulkan.hpp
@@ -114,7 +114,7 @@ extern "C" __declspec( dllimport ) FARPROC __stdcall GetProcAddress( HINSTANCE h
# include <span>
#endif
-static_assert( VK_HEADER_VERSION == 251, "Wrong VK_HEADER_VERSION!" );
+static_assert( VK_HEADER_VERSION == 252, "Wrong VK_HEADER_VERSION!" );
// 32-bit vulkan is not typesafe for non-dispatchable handles, so don't allow copy constructors on this platform by default.
// To enable this feature on 32-bit platforms please define VULKAN_HPP_TYPESAFE_CONVERSION
@@ -12259,6 +12259,40 @@ namespace VULKAN_HPP_NAMESPACE
};
};
+ //=== VK_EXT_external_memory_acquire_unmodified ===
+ template <>
+ struct StructExtends<ExternalMemoryAcquireUnmodifiedEXT, BufferMemoryBarrier>
+ {
+ enum
+ {
+ value = true
+ };
+ };
+ template <>
+ struct StructExtends<ExternalMemoryAcquireUnmodifiedEXT, BufferMemoryBarrier2>
+ {
+ enum
+ {
+ value = true
+ };
+ };
+ template <>
+ struct StructExtends<ExternalMemoryAcquireUnmodifiedEXT, ImageMemoryBarrier>
+ {
+ enum
+ {
+ value = true
+ };
+ };
+ template <>
+ struct StructExtends<ExternalMemoryAcquireUnmodifiedEXT, ImageMemoryBarrier2>
+ {
+ enum
+ {
+ value = true
+ };
+ };
+
//=== VK_EXT_extended_dynamic_state3 ===
template <>
struct StructExtends<PhysicalDeviceExtendedDynamicState3FeaturesEXT, PhysicalDeviceFeatures2>
diff --git a/include/vulkan/vulkan_core.h b/include/vulkan/vulkan_core.h
index 24cbeb3..0db6741 100644
--- a/include/vulkan/vulkan_core.h
+++ b/include/vulkan/vulkan_core.h
@@ -68,7 +68,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 251
+#define VK_HEADER_VERSION 252
// Complete version of this file
#define VK_HEADER_VERSION_COMPLETE VK_MAKE_API_VERSION(0, 1, 3, VK_HEADER_VERSION)
@@ -980,6 +980,7 @@ typedef enum VkStructureType {
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_FEATURES_QCOM = 1000440000,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_PROPERTIES_QCOM = 1000440001,
VK_STRUCTURE_TYPE_IMAGE_VIEW_SAMPLE_WEIGHT_CREATE_INFO_QCOM = 1000440002,
+ VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_EXT = 1000453000,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT = 1000455000,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_PROPERTIES_EXT = 1000455001,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT = 1000458000,
@@ -15903,6 +15904,17 @@ typedef struct VkPhysicalDeviceImageProcessingPropertiesQCOM {
+#define VK_EXT_external_memory_acquire_unmodified 1
+#define VK_EXT_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_SPEC_VERSION 1
+#define VK_EXT_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_EXTENSION_NAME "VK_EXT_external_memory_acquire_unmodified"
+typedef struct VkExternalMemoryAcquireUnmodifiedEXT {
+ VkStructureType sType;
+ const void* pNext;
+ VkBool32 acquireUnmodifiedMemory;
+} VkExternalMemoryAcquireUnmodifiedEXT;
+
+
+
#define VK_EXT_extended_dynamic_state3 1
#define VK_EXT_EXTENDED_DYNAMIC_STATE_3_SPEC_VERSION 2
#define VK_EXT_EXTENDED_DYNAMIC_STATE_3_EXTENSION_NAME "VK_EXT_extended_dynamic_state3"
diff --git a/include/vulkan/vulkan_enums.hpp b/include/vulkan/vulkan_enums.hpp
index ca09d80..7061515 100644
--- a/include/vulkan/vulkan_enums.hpp
+++ b/include/vulkan/vulkan_enums.hpp
@@ -1036,6 +1036,7 @@ namespace VULKAN_HPP_NAMESPACE
ePhysicalDeviceImageProcessingFeaturesQCOM = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_FEATURES_QCOM,
ePhysicalDeviceImageProcessingPropertiesQCOM = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_PROPERTIES_QCOM,
eImageViewSampleWeightCreateInfoQCOM = VK_STRUCTURE_TYPE_IMAGE_VIEW_SAMPLE_WEIGHT_CREATE_INFO_QCOM,
+ eExternalMemoryAcquireUnmodifiedEXT = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_EXT,
ePhysicalDeviceExtendedDynamicState3FeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT,
ePhysicalDeviceExtendedDynamicState3PropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_PROPERTIES_EXT,
ePhysicalDeviceSubpassMergeFeedbackFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT,
diff --git a/include/vulkan/vulkan_extension_inspection.hpp b/include/vulkan/vulkan_extension_inspection.hpp
index 5ffa5f2..c4a56e9 100644
--- a/include/vulkan/vulkan_extension_inspection.hpp
+++ b/include/vulkan/vulkan_extension_inspection.hpp
@@ -368,6 +368,7 @@ namespace VULKAN_HPP_NAMESPACE
"VK_NV_linear_color_attachment",
"VK_EXT_image_compression_control_swapchain",
"VK_QCOM_image_processing",
+"VK_EXT_external_memory_acquire_unmodified",
"VK_EXT_extended_dynamic_state3",
"VK_EXT_subpass_merge_feedback",
"VK_EXT_shader_module_identifier",
@@ -754,6 +755,7 @@ namespace VULKAN_HPP_NAMESPACE
{ "VK_GOOGLE_surfaceless_query", { { "VK_VERSION_1_0", { { "VK_KHR_surface", } } } } },
{ "VK_EXT_image_compression_control_swapchain", { { "VK_VERSION_1_0", { { "VK_EXT_image_compression_control", } } } } },
{ "VK_QCOM_image_processing", { { "VK_VERSION_1_0", { { "VK_KHR_format_feature_flags2", } } } } },
+{ "VK_EXT_external_memory_acquire_unmodified", { { "VK_VERSION_1_0", { { "VK_KHR_external_memory", } } } } },
{ "VK_EXT_extended_dynamic_state3", { { "VK_VERSION_1_0", { { "VK_KHR_get_physical_device_properties2", } } } } },
{ "VK_EXT_subpass_merge_feedback", { { "VK_VERSION_1_0", { { "VK_KHR_get_physical_device_properties2", } } } } },
{ "VK_EXT_shader_module_identifier", { { "VK_VERSION_1_0", { { "VK_KHR_get_physical_device_properties2", "VK_EXT_pipeline_creation_cache_control", } } } } },
@@ -1470,9 +1472,10 @@ namespace VULKAN_HPP_NAMESPACE
( extension == "VK_EXT_non_seamless_cube_map" ) || ( extension == "VK_QCOM_fragment_density_map_offset" ) ||
( extension == "VK_NV_copy_memory_indirect" ) || ( extension == "VK_NV_memory_decompression" ) || ( extension == "VK_NV_linear_color_attachment" ) ||
( extension == "VK_EXT_image_compression_control_swapchain" ) || ( extension == "VK_QCOM_image_processing" ) ||
- ( extension == "VK_EXT_extended_dynamic_state3" ) || ( extension == "VK_EXT_subpass_merge_feedback" ) ||
- ( extension == "VK_EXT_shader_module_identifier" ) || ( extension == "VK_EXT_rasterization_order_attachment_access" ) ||
- ( extension == "VK_NV_optical_flow" ) || ( extension == "VK_EXT_legacy_dithering" ) || ( extension == "VK_EXT_pipeline_protected_access" ) ||
+ ( extension == "VK_EXT_external_memory_acquire_unmodified" ) || ( extension == "VK_EXT_extended_dynamic_state3" ) ||
+ ( extension == "VK_EXT_subpass_merge_feedback" ) || ( extension == "VK_EXT_shader_module_identifier" ) ||
+ ( extension == "VK_EXT_rasterization_order_attachment_access" ) || ( extension == "VK_NV_optical_flow" ) ||
+ ( extension == "VK_EXT_legacy_dithering" ) || ( extension == "VK_EXT_pipeline_protected_access" ) ||
( extension == "VK_KHR_ray_tracing_position_fetch" ) || ( extension == "VK_EXT_shader_object" ) || ( extension == "VK_QCOM_tile_properties" ) ||
( extension == "VK_SEC_amigo_profiling" ) || ( extension == "VK_QCOM_multiview_per_view_viewports" ) ||
( extension == "VK_NV_ray_tracing_invocation_reorder" ) || ( extension == "VK_EXT_mutable_descriptor_type" ) ||
diff --git a/include/vulkan/vulkan_handles.hpp b/include/vulkan/vulkan_handles.hpp
index 9df2227..3630ac9 100644
--- a/include/vulkan/vulkan_handles.hpp
+++ b/include/vulkan/vulkan_handles.hpp
@@ -1514,6 +1514,9 @@ namespace VULKAN_HPP_NAMESPACE
struct PhysicalDeviceImageProcessingFeaturesQCOM;
struct PhysicalDeviceImageProcessingPropertiesQCOM;
+ //=== VK_EXT_external_memory_acquire_unmodified ===
+ struct ExternalMemoryAcquireUnmodifiedEXT;
+
//=== VK_EXT_extended_dynamic_state3 ===
struct PhysicalDeviceExtendedDynamicState3FeaturesEXT;
struct PhysicalDeviceExtendedDynamicState3PropertiesEXT;
diff --git a/include/vulkan/vulkan_hash.hpp b/include/vulkan/vulkan_hash.hpp
index 59c8044..1c2795f 100644
--- a/include/vulkan/vulkan_hash.hpp
+++ b/include/vulkan/vulkan_hash.hpp
@@ -4437,6 +4437,19 @@ namespace std
};
template <>
+ struct hash<VULKAN_HPP_NAMESPACE::ExternalMemoryAcquireUnmodifiedEXT>
+ {
+ std::size_t operator()( VULKAN_HPP_NAMESPACE::ExternalMemoryAcquireUnmodifiedEXT const & externalMemoryAcquireUnmodifiedEXT ) const VULKAN_HPP_NOEXCEPT
+ {
+ std::size_t seed = 0;
+ VULKAN_HPP_HASH_COMBINE( seed, externalMemoryAcquireUnmodifiedEXT.sType );
+ VULKAN_HPP_HASH_COMBINE( seed, externalMemoryAcquireUnmodifiedEXT.pNext );
+ VULKAN_HPP_HASH_COMBINE( seed, externalMemoryAcquireUnmodifiedEXT.acquireUnmodifiedMemory );
+ return seed;
+ }
+ };
+
+ template <>
struct hash<VULKAN_HPP_NAMESPACE::ExternalMemoryBufferCreateInfo>
{
std::size_t operator()( VULKAN_HPP_NAMESPACE::ExternalMemoryBufferCreateInfo const & externalMemoryBufferCreateInfo ) const VULKAN_HPP_NOEXCEPT
diff --git a/include/vulkan/vulkan_static_assertions.hpp b/include/vulkan/vulkan_static_assertions.hpp
index 9991c52..e366864 100644
--- a/include/vulkan/vulkan_static_assertions.hpp
+++ b/include/vulkan/vulkan_static_assertions.hpp
@@ -6138,6 +6138,15 @@ VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::Physical
VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::PhysicalDeviceImageProcessingPropertiesQCOM>::value,
"PhysicalDeviceImageProcessingPropertiesQCOM is not nothrow_move_constructible!" );
+//=== VK_EXT_external_memory_acquire_unmodified ===
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::ExternalMemoryAcquireUnmodifiedEXT ) == sizeof( VkExternalMemoryAcquireUnmodifiedEXT ),
+ "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::ExternalMemoryAcquireUnmodifiedEXT>::value,
+ "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::ExternalMemoryAcquireUnmodifiedEXT>::value,
+ "ExternalMemoryAcquireUnmodifiedEXT is not nothrow_move_constructible!" );
+
//=== VK_EXT_extended_dynamic_state3 ===
VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedDynamicState3FeaturesEXT ) ==
diff --git a/include/vulkan/vulkan_structs.hpp b/include/vulkan/vulkan_structs.hpp
index 69a1c04..8e39452 100644
--- a/include/vulkan/vulkan_structs.hpp
+++ b/include/vulkan/vulkan_structs.hpp
@@ -32884,6 +32884,104 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV compatibleHandleTypes = {};
};
+ struct ExternalMemoryAcquireUnmodifiedEXT
+ {
+ using NativeType = VkExternalMemoryAcquireUnmodifiedEXT;
+
+ static const bool allowDuplicate = false;
+ static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExternalMemoryAcquireUnmodifiedEXT;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+ VULKAN_HPP_CONSTEXPR ExternalMemoryAcquireUnmodifiedEXT( VULKAN_HPP_NAMESPACE::Bool32 acquireUnmodifiedMemory_ = {},
+ const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
+ : pNext( pNext_ )
+ , acquireUnmodifiedMemory( acquireUnmodifiedMemory_ )
+ {
+ }
+
+ VULKAN_HPP_CONSTEXPR ExternalMemoryAcquireUnmodifiedEXT( ExternalMemoryAcquireUnmodifiedEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+ ExternalMemoryAcquireUnmodifiedEXT( VkExternalMemoryAcquireUnmodifiedEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+ : ExternalMemoryAcquireUnmodifiedEXT( *reinterpret_cast<ExternalMemoryAcquireUnmodifiedEXT const *>( &rhs ) )
+ {
+ }
+
+ ExternalMemoryAcquireUnmodifiedEXT & operator=( ExternalMemoryAcquireUnmodifiedEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+ ExternalMemoryAcquireUnmodifiedEXT & operator=( VkExternalMemoryAcquireUnmodifiedEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+ {
+ *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::ExternalMemoryAcquireUnmodifiedEXT const *>( &rhs );
+ return *this;
+ }
+
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+ VULKAN_HPP_CONSTEXPR_14 ExternalMemoryAcquireUnmodifiedEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
+ {
+ pNext = pNext_;
+ return *this;
+ }
+
+ VULKAN_HPP_CONSTEXPR_14 ExternalMemoryAcquireUnmodifiedEXT &
+ setAcquireUnmodifiedMemory( VULKAN_HPP_NAMESPACE::Bool32 acquireUnmodifiedMemory_ ) VULKAN_HPP_NOEXCEPT
+ {
+ acquireUnmodifiedMemory = acquireUnmodifiedMemory_;
+ return *this;
+ }
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+ operator VkExternalMemoryAcquireUnmodifiedEXT const &() const VULKAN_HPP_NOEXCEPT
+ {
+ return *reinterpret_cast<const VkExternalMemoryAcquireUnmodifiedEXT *>( this );
+ }
+
+ operator VkExternalMemoryAcquireUnmodifiedEXT &() VULKAN_HPP_NOEXCEPT
+ {
+ return *reinterpret_cast<VkExternalMemoryAcquireUnmodifiedEXT *>( this );
+ }
+
+#if defined( VULKAN_HPP_USE_REFLECT )
+# if 14 <= VULKAN_HPP_CPP_VERSION
+ auto
+# else
+ std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
+# endif
+ reflect() const VULKAN_HPP_NOEXCEPT
+ {
+ return std::tie( sType, pNext, acquireUnmodifiedMemory );
+ }
+#endif
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+ auto operator<=>( ExternalMemoryAcquireUnmodifiedEXT const & ) const = default;
+#else
+ bool operator==( ExternalMemoryAcquireUnmodifiedEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+ {
+# if defined( VULKAN_HPP_USE_REFLECT )
+ return this->reflect() == rhs.reflect();
+# else
+ return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( acquireUnmodifiedMemory == rhs.acquireUnmodifiedMemory );
+# endif
+ }
+
+ bool operator!=( ExternalMemoryAcquireUnmodifiedEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+ {
+ return !operator==( rhs );
+ }
+#endif
+
+ public:
+ VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExternalMemoryAcquireUnmodifiedEXT;
+ const void * pNext = {};
+ VULKAN_HPP_NAMESPACE::Bool32 acquireUnmodifiedMemory = {};
+ };
+
+ template <>
+ struct CppType<StructureType, StructureType::eExternalMemoryAcquireUnmodifiedEXT>
+ {
+ using Type = ExternalMemoryAcquireUnmodifiedEXT;
+ };
+
struct ExternalMemoryBufferCreateInfo
{
using NativeType = VkExternalMemoryBufferCreateInfo;
diff --git a/include/vulkan/vulkan_to_string.hpp b/include/vulkan/vulkan_to_string.hpp
index 656d9b4..c9fc846 100644
--- a/include/vulkan/vulkan_to_string.hpp
+++ b/include/vulkan/vulkan_to_string.hpp
@@ -4089,6 +4089,7 @@ namespace VULKAN_HPP_NAMESPACE
case StructureType::ePhysicalDeviceImageProcessingFeaturesQCOM: return "PhysicalDeviceImageProcessingFeaturesQCOM";
case StructureType::ePhysicalDeviceImageProcessingPropertiesQCOM: return "PhysicalDeviceImageProcessingPropertiesQCOM";
case StructureType::eImageViewSampleWeightCreateInfoQCOM: return "ImageViewSampleWeightCreateInfoQCOM";
+ case StructureType::eExternalMemoryAcquireUnmodifiedEXT: return "ExternalMemoryAcquireUnmodifiedEXT";
case StructureType::ePhysicalDeviceExtendedDynamicState3FeaturesEXT: return "PhysicalDeviceExtendedDynamicState3FeaturesEXT";
case StructureType::ePhysicalDeviceExtendedDynamicState3PropertiesEXT: return "PhysicalDeviceExtendedDynamicState3PropertiesEXT";
case StructureType::ePhysicalDeviceSubpassMergeFeedbackFeaturesEXT: return "PhysicalDeviceSubpassMergeFeedbackFeaturesEXT";
diff --git a/registry/apiconventions.py b/registry/apiconventions.py
index 5d9eee4..d170dd4 100644
--- a/registry/apiconventions.py
+++ b/registry/apiconventions.py
@@ -8,4 +8,14 @@
# This import should be changed at the repository / working group level to
# specify the correct API's conventions.
-from vkconventions import VulkanConventions as APIConventions
+
+import os
+
+defaultAPI = 'vulkan'
+
+VulkanAPI = os.getenv('VULKAN_API', default=defaultAPI)
+
+if VulkanAPI == 'vulkansc':
+ from vkconventions import VulkanSCConventions as APIConventions
+else:
+ from vkconventions import VulkanConventions as APIConventions
diff --git a/registry/genvk.py b/registry/genvk.py
index b31f167..98618c1 100755
--- a/registry/genvk.py
+++ b/registry/genvk.py
@@ -16,6 +16,12 @@ import xml.etree.ElementTree as etree
sys.path.append(os.path.abspath(os.path.dirname(__file__)))
from cgenerator import CGeneratorOptions, COutputGenerator
+# Vulkan SC modules
+from json_parser import JSONParserGenerator, JSONParserOptions
+from schema_generator import SchemaGeneratorOptions, SchemaOutputGenerator
+from json_generator import JSONGeneratorOptions, JSONOutputGenerator
+from json_h_generator import JSONHeaderOutputGenerator, JSONHeaderGeneratorOptions
+from json_c_generator import JSONCOutputGenerator, JSONCGeneratorOptions
from docgenerator import DocGeneratorOptions, DocOutputGenerator
from extensionmetadocgenerator import (ExtensionMetaDocGeneratorOptions,
@@ -137,6 +143,8 @@ def makeGenOpts(args):
''
]
+ vulkanLayer = args.vulkanLayer
+
# Defaults for generating re-inclusion protection wrappers (or not)
protectFile = protect
@@ -151,6 +159,8 @@ def makeGenOpts(args):
# APIs to merge
mergeApiNames = args.mergeApiNames
+ isCTS = args.isCTS
+
# API include files for spec and ref pages
# Overwrites include subdirectories in spec source tree
# The generated include files do not include the calling convention
@@ -426,6 +436,9 @@ def makeGenOpts(args):
[ 'vulkan_metal.h', [ 'VK_EXT_metal_surface',
'VK_EXT_metal_objects' ], commonSuppressExtensions ],
[ 'vulkan_screen.h', [ 'VK_QNX_screen_surface' ], commonSuppressExtensions ],
+ [ 'vulkan_sci.h', [ 'VK_NV_external_sci_sync',
+ 'VK_NV_external_sci_sync2',
+ 'VK_NV_external_memory_sci_buf'], commonSuppressExtensions ],
[ 'vulkan_beta.h', betaRequireExtensions, betaSuppressExtensions ],
]
@@ -509,6 +522,233 @@ def makeGenOpts(args):
misracppstyle = misracppstyle)
]
+ # Vulkan versions to include for SC header - SC *removes* features from 1.0/1.1/1.2
+ scVersions = makeREstring(['VK_VERSION_1_0', 'VK_VERSION_1_1', 'VK_VERSION_1_2', 'VKSC_VERSION_1_0'])
+
+ genOpts['vulkan_sc_core.h'] = [
+ COutputGenerator,
+ CGeneratorOptions(
+ conventions = conventions,
+ filename = 'vulkan_sc_core.h',
+ directory = directory,
+ apiname = 'vulkansc',
+ profile = None,
+ versions = scVersions,
+ emitversions = scVersions,
+ defaultExtensions = 'vulkansc',
+ addExtensions = addExtensionsPat,
+ removeExtensions = removeExtensionsPat,
+ emitExtensions = emitExtensionsPat,
+ prefixText = prefixStrings + vkPrefixStrings,
+ genFuncPointers = True,
+ protectFile = protectFile,
+ protectFeature = False,
+ protectProto = '#ifndef',
+ protectProtoStr = 'VK_NO_PROTOTYPES',
+ apicall = 'VKAPI_ATTR ',
+ apientry = 'VKAPI_CALL ',
+ apientryp = 'VKAPI_PTR *',
+ alignFuncParam = 48,
+ misracstyle = misracstyle,
+ misracppstyle = misracppstyle)
+ ]
+
+ genOpts['vulkan_sc_core.hpp'] = [
+ COutputGenerator,
+ CGeneratorOptions(
+ conventions = conventions,
+ filename = 'vulkan_sc_core.hpp',
+ directory = directory,
+ apiname = 'vulkansc',
+ profile = None,
+ versions = scVersions,
+ emitversions = scVersions,
+ defaultExtensions = 'vulkansc',
+ addExtensions = addExtensionsPat,
+ removeExtensions = removeExtensionsPat,
+ emitExtensions = emitExtensionsPat,
+ prefixText = prefixStrings + vkPrefixStrings,
+ genFuncPointers = True,
+ protectFile = protectFile,
+ protectFeature = False,
+ protectProto = '#ifndef',
+ protectProtoStr = 'VK_NO_PROTOTYPES',
+ apicall = 'VKAPI_ATTR ',
+ apientry = 'VKAPI_CALL ',
+ apientryp = 'VKAPI_PTR *',
+ alignFuncParam = 48,
+ misracstyle = misracstyle,
+ misracppstyle = misracppstyle)
+ ]
+
+ genOpts['vk.json'] = [
+ SchemaOutputGenerator,
+ SchemaGeneratorOptions(
+ conventions = conventions,
+ filename = 'vk.json',
+ directory = directory,
+ apiname = 'vulkansc',
+ profile = None,
+ versions = scVersions,
+ emitversions = scVersions,
+ defaultExtensions = 'vulkansc',
+ addExtensions = addExtensionsPat,
+ removeExtensions = removeExtensionsPat,
+ emitExtensions = emitExtensionsPat,
+ prefixText = prefixStrings + vkPrefixStrings,
+ genFuncPointers = True,
+ protectFile = protectFile,
+ protectFeature = False,
+ protectProto = '#ifndef',
+ protectProtoStr = 'VK_NO_PROTOTYPES',
+ apicall = 'VKAPI_ATTR ',
+ apientry = 'VKAPI_CALL ',
+ apientryp = 'VKAPI_PTR *',
+ alignFuncParam = 48)
+ ]
+
+ if vulkanLayer:
+ genOpts['vulkan_json_data.hpp'] = [
+ JSONOutputGenerator,
+ JSONGeneratorOptions(
+ conventions = conventions,
+ filename = 'vulkan_json_data.hpp',
+ directory = directory,
+ apiname = 'vulkan',
+ profile = None,
+ versions = featuresPat,
+ emitversions = featuresPat,
+ defaultExtensions = None,
+ addExtensions = addExtensionsPat,
+ removeExtensions = None,
+ emitExtensions = None,
+ vulkanLayer = vulkanLayer,
+ prefixText = prefixStrings + vkPrefixStrings,
+ genFuncPointers = True,
+ protectFile = protectFile,
+ protectFeature = False,
+ protectProto = '#ifndef',
+ protectProtoStr = 'VK_NO_PROTOTYPES',
+ apicall = 'VKAPI_ATTR ',
+ apientry = 'VKAPI_CALL ',
+ apientryp = 'VKAPI_PTR *',
+ alignFuncParam = 48)
+ ]
+ else:
+ genOpts['vulkan_json_data.hpp'] = [
+ JSONOutputGenerator,
+ JSONGeneratorOptions(
+ conventions = conventions,
+ filename = 'vulkan_json_data.hpp',
+ directory = directory,
+ apiname = 'vulkansc',
+ profile = None,
+ versions = scVersions,
+ emitversions = scVersions,
+ defaultExtensions = 'vulkansc',
+ addExtensions = addExtensionsPat,
+ removeExtensions = removeExtensionsPat,
+ emitExtensions = emitExtensionsPat,
+ vulkanLayer = vulkanLayer,
+ prefixText = prefixStrings + vkPrefixStrings,
+ genFuncPointers = True,
+ protectFile = protectFile,
+ protectFeature = False,
+ protectProto = '#ifndef',
+ protectProtoStr = 'VK_NO_PROTOTYPES',
+ apicall = 'VKAPI_ATTR ',
+ apientry = 'VKAPI_CALL ',
+ apientryp = 'VKAPI_PTR *',
+ isCTS = isCTS,
+ alignFuncParam = 48)
+ ]
+
+ # keep any relevant platform extensions for the following generators
+ # (needed for e.g. the vulkan_sci extensions)
+ explicitRemoveExtensionsPat = makeREstring(
+ removeExtensions, None, strings_are_regex=True)
+
+ # Raw C header file generator.
+ genOpts['vulkan_json_gen.h'] = [
+ JSONHeaderOutputGenerator,
+ JSONHeaderGeneratorOptions(
+ conventions = conventions,
+ filename = 'vulkan_json_gen.h',
+ directory = directory,
+ apiname = 'vulkansc',
+ profile = None,
+ versions = scVersions,
+ emitversions = scVersions,
+ defaultExtensions = 'vulkansc',
+ addExtensions = addExtensionsPat,
+ removeExtensions = explicitRemoveExtensionsPat,
+ emitExtensions = emitExtensionsPat,
+ prefixText = prefixStrings + vkPrefixStrings,
+ genFuncPointers = True,
+ protectFile = protectFile,
+ protectFeature = False,
+ protectProto = '#ifndef',
+ protectProtoStr = 'VK_NO_PROTOTYPES',
+ apicall = 'VKAPI_ATTR ',
+ apientry = 'VKAPI_CALL ',
+ apientryp = 'VKAPI_PTR *',
+ alignFuncParam = 48)
+ ]
+
+ # Raw C source file generator.
+ genOpts['vulkan_json_gen.c'] = [
+ JSONCOutputGenerator,
+ JSONCGeneratorOptions(
+ conventions = conventions,
+ filename = 'vulkan_json_gen.c',
+ directory = directory,
+ apiname = 'vulkansc',
+ profile = None,
+ versions = scVersions,
+ emitversions = scVersions,
+ defaultExtensions = 'vulkansc',
+ addExtensions = addExtensionsPat,
+ removeExtensions = explicitRemoveExtensionsPat,
+ emitExtensions = emitExtensionsPat,
+ prefixText = prefixStrings + vkPrefixStrings,
+ genFuncPointers = True,
+ protectFile = protectFile,
+ protectFeature = False,
+ protectProto = '#ifndef',
+ protectProtoStr = 'VK_NO_PROTOTYPES',
+ apicall = 'VKAPI_ATTR ',
+ apientry = 'VKAPI_CALL ',
+ apientryp = 'VKAPI_PTR *',
+ alignFuncParam = 48)
+ ]
+
+ genOpts['vulkan_json_parser.hpp'] = [
+ JSONParserGenerator,
+ JSONParserOptions(
+ conventions = conventions,
+ filename = 'vulkan_json_parser.hpp',
+ directory = directory,
+ apiname = 'vulkansc',
+ profile = None,
+ versions = scVersions,
+ emitversions = scVersions,
+ defaultExtensions = 'vulkansc',
+ addExtensions = addExtensionsPat,
+ removeExtensions = explicitRemoveExtensionsPat,
+ emitExtensions = emitExtensionsPat,
+ prefixText = prefixStrings + vkPrefixStrings,
+ genFuncPointers = True,
+ protectFile = protectFile,
+ protectFeature = False,
+ protectProto = '#ifndef',
+ protectProtoStr = 'VK_NO_PROTOTYPES',
+ apicall = 'VKAPI_ATTR ',
+ apientry = 'VKAPI_CALL ',
+ apientryp = 'VKAPI_PTR *',
+ isCTS = isCTS,
+ alignFuncParam = 48)
+ ]
+
# Unused - vulkan10.h target.
# It is possible to generate a header with just the Vulkan 1.0 +
# extension interfaces defined, but since the promoted KHR extensions
@@ -787,10 +1027,14 @@ if __name__ == '__main__':
help='Suppress script output during normal execution.')
parser.add_argument('-verbose', action='store_false', dest='quiet', default=True,
help='Enable script output during normal execution.')
+ parser.add_argument('--vulkanLayer', action='store_true', dest='vulkanLayer',
+ help='Enable scripts to generate VK specific vulkan_json_data.hpp for json_gen_layer.')
parser.add_argument('-misracstyle', dest='misracstyle', action='store_true',
help='generate MISRA C-friendly headers')
parser.add_argument('-misracppstyle', dest='misracppstyle', action='store_true',
help='generate MISRA C++-friendly headers')
+ parser.add_argument('--iscts', action='store_true', dest='isCTS',
+ help='Specify if this should generate CTS compatible code')
args = parser.parse_args()
diff --git a/registry/parse_dependency.py b/registry/parse_dependency.py
index 433c2e3..63eeabc 100755
--- a/registry/parse_dependency.py
+++ b/registry/parse_dependency.py
@@ -65,7 +65,16 @@ def nameMarkup(name):
major = match.group(1)
minor = match.group(2)
version = major + '.' + minor
- return f'<<versions-{major}.{minor}, Version {version}>>'
+
+ # Vulkan SC has a different anchor pattern for version appendices
+ scMatch = re.search("[A-Z]+SC_VERSION_([0-9]+)_([0-9]+)", name)
+ if scMatch is not None:
+ if version == '1.0':
+ return 'Vulkan SC 1.0'
+ else:
+ return f'<<versions-sc-{major}.{minor}, Version SC {version}>>'
+ else:
+ return f'<<versions-{major}.{minor}, Version {version}>>'
else:
return 'apiext:' + name
diff --git a/registry/reg.py b/registry/reg.py
index 9c2b11c..3ff580d 100644
--- a/registry/reg.py
+++ b/registry/reg.py
@@ -974,6 +974,7 @@ class Registry:
self.markTypeRequired(typeElem.get('name'), required)
for enumElem in feature.findall('enum'):
self.markEnumRequired(enumElem.get('name'), required)
+
for cmdElem in feature.findall('command'):
self.markCmdRequired(cmdElem.get('name'), required)
@@ -1402,6 +1403,30 @@ class Registry:
if stripped:
eleminfo.elem.set(attribute, ','.join(apis))
+ def stripUnsupportedAPIsFromList(self, dictionary, supportedDictionary):
+ """Strip unsupported APIs from attributes of APIs.
+ dictionary - dictionary of list of structure name strings
+ supportedDictionary - dictionary in which to look for supported
+ API elements in the attribute"""
+
+ for key in dictionary:
+ attribstring = dictionary[key]
+ if attribstring is not None:
+ apis = []
+ stripped = False
+ for api in attribstring:
+ ##print('Checking API {} referenced by {}'.format(api, key))
+ if supportedDictionary[api].required:
+ apis.append(api)
+ else:
+ stripped = True
+ ##print('\t**STRIPPING API {} from {}'.format(api, key))
+
+ # Update the attribute after stripping stuff.
+ # Could sort apis before joining, but it is not a clear win
+ if stripped:
+ dictionary[key] = apis
+
def generateFormat(self, format, dictionary):
if format is None:
self.gen.logMsg('diag', 'No entry found for format element',
@@ -1603,6 +1628,7 @@ class Registry:
self.stripUnsupportedAPIs(self.typedict, 'structextends', self.typedict)
self.stripUnsupportedAPIs(self.cmddict, 'successcodes', self.enumdict)
self.stripUnsupportedAPIs(self.cmddict, 'errorcodes', self.enumdict)
+ self.stripUnsupportedAPIsFromList(self.validextensionstructs, self.typedict)
# Construct lists of valid extension structures
self.tagValidExtensionStructs()
diff --git a/registry/validusage.json b/registry/validusage.json
index 4b0aa1b..a8c619a 100644
--- a/registry/validusage.json
+++ b/registry/validusage.json
@@ -1,9 +1,9 @@
{
"version info": {
"schema version": 2,
- "api version": "1.3.251",
- "comment": "from git branch: github-main commit: 45b5ba66f8128be493745da2d45f0bb407d9296a",
- "date": "2023-05-28 12:06:34Z"
+ "api version": "1.3.252",
+ "comment": "from git branch: github-main commit: 5718db0a370b5bd91e6cf2268a3dc2af9cfc15d1",
+ "date": "2023-06-02 12:04:26Z"
},
"validation": {
"vkGetInstanceProcAddr": {
@@ -193,11 +193,25 @@
]
},
"VkApplicationInfo": {
- "core": [
+ "!(VKSC_VERSION_1_0)": [
{
"vuid": "VUID-VkApplicationInfo-apiVersion-04010",
"text": " If <code>apiVersion</code> is not <code>0</code>, then it <strong class=\"purple\">must</strong> be greater than or equal to <a href=\"#VK_API_VERSION_1_0\">VK_API_VERSION_1_0</a>"
- },
+ }
+ ],
+ "(VKSC_VERSION_1_0)": [
+ {
+ "vuid": "VUID-VkApplicationInfo-apiVersion-05021",
+ "text": " If <code>apiVersion</code> is not <code>0</code> and its variant is <code>VKSC_API_VARIANT</code>, then it <strong class=\"purple\">must</strong> be greater than or equal to <code>VKSC_API_VERSION_1_0</code>"
+ }
+ ],
+ "(VK_EXT_application_parameters)": [
+ {
+ "vuid": "VUID-VkApplicationInfo-key-05093",
+ "text": " The <code>key</code> value of each <code>VkApplicationParametersEXT</code> structure in the <a href=\"#VkApplicationInfo\">VkApplicationInfo</a>::<code>pNext</code> chain <strong class=\"purple\">must</strong> be unique for each <code>vendorID</code> and <code>deviceID</code> pairing"
+ }
+ ],
+ "core": [
{
"vuid": "VUID-VkApplicationInfo-sType-sType",
"text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_APPLICATION_INFO</code>"
@@ -223,14 +237,6 @@
"text": " All child objects created using <code>instance</code> <strong class=\"purple\">must</strong> have been destroyed prior to destroying <code>instance</code>"
},
{
- "vuid": "VUID-vkDestroyInstance-instance-00630",
- "text": " If <code>VkAllocationCallbacks</code> were provided when <code>instance</code> was created, a compatible set of callbacks <strong class=\"purple\">must</strong> be provided here"
- },
- {
- "vuid": "VUID-vkDestroyInstance-instance-00631",
- "text": " If no <code>VkAllocationCallbacks</code> were provided when <code>instance</code> was created, <code>pAllocator</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
"vuid": "VUID-vkDestroyInstance-instance-parameter",
"text": " If <code>instance</code> is not <code>NULL</code>, <code>instance</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkInstance\">VkInstance</a> handle"
},
@@ -238,6 +244,16 @@
"vuid": "VUID-vkDestroyInstance-pAllocator-parameter",
"text": " If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure"
}
+ ],
+ "!(VKSC_VERSION_1_0)": [
+ {
+ "vuid": "VUID-vkDestroyInstance-instance-00630",
+ "text": " If <code>VkAllocationCallbacks</code> were provided when <code>instance</code> was created, a compatible set of callbacks <strong class=\"purple\">must</strong> be provided here"
+ },
+ {
+ "vuid": "VUID-vkDestroyInstance-instance-00631",
+ "text": " If no <code>VkAllocationCallbacks</code> were provided when <code>instance</code> was created, <code>pAllocator</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+ }
]
},
"vkEnumeratePhysicalDevices": {
@@ -562,6 +578,22 @@
"vuid": "VUID-vkCreateDevice-pDevice-parameter",
"text": " <code>pDevice</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkDevice\">VkDevice</a> handle"
}
+ ],
+ "(VK_EXT_application_parameters)": [
+ {
+ "vuid": "VUID-vkCreateDevice-key-05092",
+ "text": " The <code>key</code> value of each <code>VkApplicationParametersEXT</code> structure in the <a href=\"#VkDeviceCreateInfo\">VkDeviceCreateInfo</a>::<code>pNext</code> chain <strong class=\"purple\">must</strong> be unique"
+ }
+ ],
+ "(VKSC_VERSION_1_0)": [
+ {
+ "vuid": "VUID-vkCreateDevice-deviceMemoryRequestCount-05095",
+ "text": " The sum of <code>deviceMemoryRequestCount</code> over all <code>VkDeviceObjectReservationCreateInfo</code> structures <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceLimits\">VkPhysicalDeviceLimits</a>::<code>maxMemoryAllocationCount</code>"
+ },
+ {
+ "vuid": "VUID-vkCreateDevice-samplerRequestCount-05096",
+ "text": " The sum of <code>samplerRequestCount</code> over all <code>VkDeviceObjectReservationCreateInfo</code> structures <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceLimits\">VkPhysicalDeviceLimits</a>::<code>maxSamplerAllocationCount</code>"
+ }
]
},
"VkDeviceCreateInfo": {
@@ -858,8 +890,38 @@
}
]
},
+ "VkDeviceObjectReservationCreateInfo": {
+ "(VKSC_VERSION_1_0)": [
+ {
+ "vuid": "VUID-VkDeviceObjectReservationCreateInfo-maxImageViewArrayLayers-05014",
+ "text": " <code>maxImageViewArrayLayers</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#VkPhysicalDeviceLimits\">VkPhysicalDeviceLimits</a>::<code>maxImageArrayLayers</code>"
+ },
+ {
+ "vuid": "VUID-VkDeviceObjectReservationCreateInfo-maxImageViewMipLevels-05015",
+ "text": " <code>maxImageViewMipLevels</code> <strong class=\"purple\">must</strong> be less than or equal to the number of levels in the complete mipmap chain based on the maximum of <a href=\"#VkPhysicalDeviceLimits\">VkPhysicalDeviceLimits</a>::<code>maxImageDimension1D</code>, <code>maxImageDimension2D</code>, <code>maxImageDimension3D</code>, and <code>maxImageDimensionCube</code>"
+ },
+ {
+ "vuid": "VUID-VkDeviceObjectReservationCreateInfo-maxLayeredImageViewMipLevels-05016",
+ "text": " <code>maxLayeredImageViewMipLevels</code> <strong class=\"purple\">must</strong> be less than or equal to the number of levels in the complete mipmap chain based on <a href=\"#VkPhysicalDeviceLimits\">VkPhysicalDeviceLimits</a>::<code>maxImageDimension1D</code>, <code>maxImageDimension2D</code>, <code>maxImageDimension3D</code>, and <code>maxImageDimensionCube</code>"
+ },
+ {
+ "vuid": "VUID-VkDeviceObjectReservationCreateInfo-subpassDescriptionRequestCount-05017",
+ "text": " <code>subpassDescriptionRequestCount</code> <strong class=\"purple\">must</strong> be less than or equal to <code>renderPassRequestCount</code> multiplied by <code>VkPhysicalDeviceVulkanSC10Properties</code>::<code>maxRenderPassSubpasses</code>"
+ },
+ {
+ "vuid": "VUID-VkDeviceObjectReservationCreateInfo-attachmentDescriptionRequestCount-05018",
+ "text": " <code>attachmentDescriptionRequestCount</code> <strong class=\"purple\">must</strong> be less than or equal to <code>renderPassRequestCount</code> multiplied by <code>VkPhysicalDeviceVulkanSC10Properties</code>::<code>maxFramebufferAttachments</code>"
+ }
+ ]
+ },
"vkDestroyDevice": {
- "core": [
+ "(VKSC_VERSION_1_0)": [
+ {
+ "vuid": "VUID-vkDestroyDevice-device-05137",
+ "text": " All child objects created on <code>device</code>, except those with no explicit <a href=\"#fundamentals-objectmodel-no-destroy\">free or destroy command</a>, <strong class=\"purple\">must</strong> have been destroyed prior to destroying <code>device</code>"
+ }
+ ],
+ "!(VKSC_VERSION_1_0)": [
{
"vuid": "VUID-vkDestroyDevice-device-00378",
"text": " All child objects created on <code>device</code> <strong class=\"purple\">must</strong> have been destroyed prior to destroying <code>device</code>"
@@ -871,7 +933,9 @@
{
"vuid": "VUID-vkDestroyDevice-device-00380",
"text": " If no <code>VkAllocationCallbacks</code> were provided when <code>device</code> was created, <code>pAllocator</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
+ }
+ ],
+ "core": [
{
"vuid": "VUID-vkDestroyDevice-device-parameter",
"text": " If <code>device</code> is not <code>NULL</code>, <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
@@ -1034,6 +1098,12 @@
"vuid": "VUID-vkCreateCommandPool-pCommandPool-parameter",
"text": " <code>pCommandPool</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkCommandPool\">VkCommandPool</a> handle"
}
+ ],
+ "(VKSC_VERSION_1_0)": [
+ {
+ "vuid": "VUID-vkCreateCommandPool-device-05068",
+ "text": " The number of {objectnameplural} currently allocated from <code>device</code> plus {objectcount} <strong class=\"purple\">must</strong> be less than or equal to the total number of {objectnameplural} requested via <code>VkDeviceObjectReservationCreateInfo</code>::pname:{objectnamecamelcase}RequestCount specified when <code>device</code> was created"
+ }
]
},
"VkCommandPoolCreateInfo": {
@@ -1043,6 +1113,12 @@
"text": " If the <a href=\"#features-protectedMemory\"><code>protectedMemory</code></a> feature is not enabled, the <code>VK_COMMAND_POOL_CREATE_PROTECTED_BIT</code> bit of <code>flags</code> <strong class=\"purple\">must</strong> not be set"
}
],
+ "(VKSC_VERSION_1_0)": [
+ {
+ "vuid": "VUID-VkCommandPoolCreateInfo-pNext-05002",
+ "text": " The <code>pNext</code> chain <strong class=\"purple\">must</strong> include a <code>VkCommandPoolMemoryReservationCreateInfo</code> structure"
+ }
+ ],
"core": [
{
"vuid": "VUID-VkCommandPoolCreateInfo-sType-sType",
@@ -1058,8 +1134,28 @@
}
]
},
+ "VkCommandPoolMemoryReservationCreateInfo": {
+ "(VKSC_VERSION_1_0)": [
+ {
+ "vuid": "VUID-VkCommandPoolMemoryReservationCreateInfo-commandPoolReservedSize-05003",
+ "text": " <code>commandPoolReservedSize</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
+ },
+ {
+ "vuid": "VUID-VkCommandPoolMemoryReservationCreateInfo-commandPoolMaxCommandBuffers-05004",
+ "text": " <code>commandPoolMaxCommandBuffers</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
+ },
+ {
+ "vuid": "VUID-VkCommandPoolMemoryReservationCreateInfo-commandPoolMaxCommandBuffers-05090",
+ "text": " <code>commandPoolMaxCommandBuffers</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceVulkanSC10Properties</code>::<code>maxCommandPoolCommandBuffers</code>"
+ },
+ {
+ "vuid": "VUID-VkCommandPoolMemoryReservationCreateInfo-commandPoolMaxCommandBuffers-05074",
+ "text": " The number of command buffers reserved by all command pools plus <code>commandPoolMaxCommandBuffers</code> <strong class=\"purple\">must</strong> be less than or equal to the total number of command buffers requested via <code>VkDeviceObjectReservationCreateInfo</code>::<code>commandBufferRequestCount</code>"
+ }
+ ]
+ },
"vkTrimCommandPool": {
- "(VK_VERSION_1_1,VK_KHR_maintenance1)": [
+ "!(VKSC_VERSION_1_0)+(VK_VERSION_1_1,VK_KHR_maintenance1)": [
{
"vuid": "VUID-vkTrimCommandPool-device-parameter",
"text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
@@ -1100,10 +1196,16 @@
"vuid": "VUID-vkResetCommandPool-commandPool-parent",
"text": " <code>commandPool</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
}
+ ],
+ "(VKSC_VERSION_1_0)": [
+ {
+ "vuid": "VUID-vkResetCommandPool-flags-05005",
+ "text": " <code>flags</code> <strong class=\"purple\">must</strong> not contain <code>VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT</code>"
+ }
]
},
"vkDestroyCommandPool": {
- "core": [
+ "!(VKSC_VERSION_1_0)": [
{
"vuid": "VUID-vkDestroyCommandPool-commandPool-00041",
"text": " All <code>VkCommandBuffer</code> objects allocated from <code>commandPool</code> <strong class=\"purple\">must</strong> not be in the <a href=\"#commandbuffers-lifecycle\">pending state</a>"
@@ -1155,6 +1257,12 @@
]
},
"VkCommandBufferAllocateInfo": {
+ "(VKSC_VERSION_1_0)": [
+ {
+ "vuid": "VUID-VkCommandBufferAllocateInfo-commandPool-05006",
+ "text": " The number of command buffers currently allocated from <code>commandPool</code> plus <code>commandBufferCount</code> <strong class=\"purple\">must</strong> be less than or equal to the value of <code>VkCommandPoolMemoryReservationCreateInfo</code>::<code>commandPoolMaxCommandBuffers</code> specified when <code>commandPool</code> was created"
+ }
+ ],
"core": [
{
"vuid": "VUID-VkCommandBufferAllocateInfo-sType-sType",
@@ -1192,6 +1300,12 @@
"vuid": "VUID-vkResetCommandBuffer-flags-parameter",
"text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkCommandBufferResetFlagBits\">VkCommandBufferResetFlagBits</a> values"
}
+ ],
+ "(VKSC_VERSION_1_0)": [
+ {
+ "vuid": "VUID-vkResetCommandBuffer-commandPoolResetCommandBuffer-05135",
+ "text": " <a href=\"#limits-commandPoolResetCommandBuffer\"><code>commandPoolResetCommandBuffer</code></a> <strong class=\"purple\">must</strong> be supported"
+ }
]
},
"vkFreeCommandBuffers": {
@@ -1256,6 +1370,20 @@
"vuid": "VUID-vkBeginCommandBuffer-pBeginInfo-parameter",
"text": " <code>pBeginInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkCommandBufferBeginInfo\">VkCommandBufferBeginInfo</a> structure"
}
+ ],
+ "(VKSC_VERSION_1_0)": [
+ {
+ "vuid": "VUID-vkBeginCommandBuffer-commandPoolResetCommandBuffer-05136",
+ "text": " If <a href=\"#limits-commandPoolResetCommandBuffer\"><code>commandPoolResetCommandBuffer</code></a> is not supported, <code>commandBuffer</code> <strong class=\"purple\">must</strong> be in the <a href=\"#commandbuffers-lifecycle\">initial state</a>"
+ },
+ {
+ "vuid": "VUID-vkBeginCommandBuffer-commandPoolMultipleCommandBuffersRecording-05007",
+ "text": " If <a href=\"#limits-commandPoolMultipleCommandBuffersRecording\"><code>commandPoolMultipleCommandBuffersRecording</code></a> is <code>VK_FALSE</code>, then the command pool that <code>commandBuffer</code> was created from <strong class=\"purple\">must</strong> have no other command buffers in the <a href=\"#commandbuffers-lifecycle\">recording state</a>"
+ },
+ {
+ "vuid": "VUID-vkBeginCommandBuffer-commandBufferSimultaneousUse-05008",
+ "text": " If <a href=\"#limits-commandBufferSimultaneousUse\"><code>commandBufferSimultaneousUse</code></a> is <code>VK_FALSE</code>, then <code>pBeginInfo-&gt;flags</code> <strong class=\"purple\">must</strong> not include <code>VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT</code>"
+ }
]
},
"VkCommandBufferBeginInfo": {
@@ -1269,26 +1397,20 @@
"text": " If <code>flags</code> contains <code>VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT</code>, the <code>subpass</code> member of <code>pInheritanceInfo</code> <strong class=\"purple\">must</strong> be a valid subpass index within the <code>renderPass</code> member of <code>pInheritanceInfo</code>"
}
],
- "core": [
+ "!(VKSC_VERSION_1_0)": [
{
"vuid": "VUID-VkCommandBufferBeginInfo-flags-00055",
"text": " If <code>flags</code> contains <code>VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT</code>, the <code>framebuffer</code> member of <code>pInheritanceInfo</code> <strong class=\"purple\">must</strong> be either <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, or a valid <code>VkFramebuffer</code> that is compatible with the <code>renderPass</code> member of <code>pInheritanceInfo</code>"
- },
- {
- "vuid": "VUID-VkCommandBufferBeginInfo-sType-sType",
- "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO</code>"
- },
- {
- "vuid": "VUID-VkCommandBufferBeginInfo-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkDeviceGroupCommandBufferBeginInfo\">VkDeviceGroupCommandBufferBeginInfo</a>"
- },
+ }
+ ],
+ "(VKSC_VERSION_1_0)": [
{
- "vuid": "VUID-VkCommandBufferBeginInfo-sType-unique",
- "text": " The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique"
+ "vuid": "VUID-VkCommandBufferBeginInfo-flags-05009",
+ "text": " If <code>flags</code> contains <code>VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT</code> and <code>secondaryCommandBufferNullOrImagelessFramebuffer</code> is <code>VK_TRUE</code>, the <code>framebuffer</code> member of <code>pInheritanceInfo</code> <strong class=\"purple\">must</strong> be either <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, or a valid <code>VkFramebuffer</code> that is compatible with the <code>renderPass</code> member of <code>pInheritanceInfo</code>"
},
{
- "vuid": "VUID-VkCommandBufferBeginInfo-flags-parameter",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkCommandBufferUsageFlagBits\">VkCommandBufferUsageFlagBits</a> values"
+ "vuid": "VUID-VkCommandBufferBeginInfo-flags-05010",
+ "text": " If <code>flags</code> contains <code>VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT</code> and <code>secondaryCommandBufferNullOrImagelessFramebuffer</code> is <code>VK_FALSE</code>, the <code>framebuffer</code> member of <code>pInheritanceInfo</code> <strong class=\"purple\">must</strong> be a valid <code>VkFramebuffer</code> that is compatible with the <code>renderPass</code> member of <code>pInheritanceInfo</code> and <strong class=\"purple\">must</strong> not have been created with a <a href=\"#VkFramebufferCreateInfo\">VkFramebufferCreateInfo</a>::<code>flags</code> value that includes <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>"
}
],
"(VK_VERSION_1_3,VK_KHR_dynamic_rendering)": [
@@ -1310,6 +1432,24 @@
"vuid": "VUID-VkCommandBufferBeginInfo-flags-06003",
"text": " If <code>flags</code> contains <code>VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT</code>, the <code>renderPass</code> member of <code>pInheritanceInfo</code> is <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, and the <code>pNext</code> chain of <code>pInheritanceInfo</code> includes a <a href=\"#VkAttachmentSampleCountInfoAMD\">VkAttachmentSampleCountInfoAMD</a> or <a href=\"#VkAttachmentSampleCountInfoNV\">VkAttachmentSampleCountInfoNV</a> structure, the <code>colorAttachmentCount</code> member of that structure <strong class=\"purple\">must</strong> be equal to the value of <a href=\"#VkCommandBufferInheritanceRenderingInfo\">VkCommandBufferInheritanceRenderingInfo</a>::<code>colorAttachmentCount</code>"
}
+ ],
+ "core": [
+ {
+ "vuid": "VUID-VkCommandBufferBeginInfo-sType-sType",
+ "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO</code>"
+ },
+ {
+ "vuid": "VUID-VkCommandBufferBeginInfo-pNext-pNext",
+ "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkDeviceGroupCommandBufferBeginInfo\">VkDeviceGroupCommandBufferBeginInfo</a>"
+ },
+ {
+ "vuid": "VUID-VkCommandBufferBeginInfo-sType-unique",
+ "text": " The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique"
+ },
+ {
+ "vuid": "VUID-VkCommandBufferBeginInfo-flags-parameter",
+ "text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkCommandBufferUsageFlagBits\">VkCommandBufferUsageFlagBits</a> values"
+ }
]
},
"VkCommandBufferInheritanceInfo": {
@@ -1828,6 +1968,12 @@
"vuid": "VUID-VkSemaphoreSubmitInfo-device-03889",
"text": " If the <code>device</code> that <code>semaphore</code> was created on is a device group, <code>deviceIndex</code> <strong class=\"purple\">must</strong> be a valid device index"
}
+ ],
+ "(VK_VERSION_1_3,VK_KHR_synchronization2)+(VK_NV_external_sci_sync,VK_NV_external_sci_sync2)": [
+ {
+ "vuid": "VUID-VkSemaphoreSubmitInfoKHR-semaphore-05094",
+ "text": " If <code>semaphore</code> has a payload of <code>NvSciSyncObj</code>, <code>value</code> <strong class=\"purple\">must</strong> be calculated by application via <a href=\"#NvSciSync-extension-page\">NvSciSync APIs</a>."
+ }
]
},
"VkCommandBufferSubmitInfo": {
@@ -2603,6 +2749,18 @@
]
},
"vkCreateFence": {
+ "(VKSC_VERSION_1_0,VK_NV_external_sci_sync,VK_NV_external_sci_sync2)+(VKSC_VERSION_1_0)": [
+ {
+ "vuid": "VUID-vkCreateFence-device-05068",
+ "text": " The number of {objectnameplural} currently allocated from <code>device</code> plus {objectcount} <strong class=\"purple\">must</strong> be less than or equal to the total number of {objectnameplural} requested via <code>VkDeviceObjectReservationCreateInfo</code>::pname:{objectnamecamelcase}RequestCount specified when <code>device</code> was created"
+ }
+ ],
+ "(VKSC_VERSION_1_0,VK_NV_external_sci_sync,VK_NV_external_sci_sync2)+(VK_NV_external_sci_sync,VK_NV_external_sci_sync2)": [
+ {
+ "vuid": "VUID-vkCreateFence-pNext-05106",
+ "text": " If the <code>pNext</code> chain of <a href=\"#VkFenceCreateInfo\">VkFenceCreateInfo</a> includes <code>VkExportFenceSciSyncInfoNV</code>, then <a href=\"#VkFenceCreateInfo\">VkFenceCreateInfo</a>::<code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_FENCE_CREATE_SIGNALED_BIT</code>"
+ }
+ ],
"core": [
{
"vuid": "VUID-vkCreateFence-device-parameter",
@@ -2656,6 +2814,12 @@
"vuid": "VUID-VkExportFenceCreateInfo-handleTypes-parameter",
"text": " <code>handleTypes</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkExternalFenceHandleTypeFlagBits\">VkExternalFenceHandleTypeFlagBits</a> values"
}
+ ],
+ "(VK_VERSION_1_1,VK_KHR_external_fence)+(VK_NV_external_sci_sync,VK_NV_external_sci_sync2)": [
+ {
+ "vuid": "VUID-VkExportFenceCreateInfo-pNext-05107",
+ "text": " If the <code>pNext</code> chain includes a <code>VkExportFenceSciSyncInfoNV</code> structure, <code>VkPhysicalDeviceExternalSciSyncFeaturesNV</code>::<code>sciSyncFence</code> and <code>VkPhysicalDeviceExternalSciSyncFeaturesNV</code>::<code>sciSyncExport</code>, or <code>VkPhysicalDeviceExternalSciSync2FeaturesNV</code>::<code>sciSyncFence</code> and <code>VkPhysicalDeviceExternalSciSync2FeaturesNV</code>::<code>sciSyncExport</code> <strong class=\"purple\">must</strong> be enabled"
+ }
]
},
"VkExportFenceWin32HandleInfoKHR": {
@@ -2782,19 +2946,59 @@
}
]
},
- "vkDestroyFence": {
- "core": [
+ "VkExportFenceSciSyncInfoNV": {
+ "(VK_NV_external_sci_sync,VK_NV_external_sci_sync2)": [
{
- "vuid": "VUID-vkDestroyFence-fence-01120",
- "text": " All <a href=\"#devsandqueues-submission\">queue submission</a> commands that refer to <code>fence</code> <strong class=\"purple\">must</strong> have completed execution"
+ "vuid": "VUID-VkExportFenceSciSyncInfoNV-pAttributes-05108",
+ "text": " <code>pAttributes</code> <strong class=\"purple\">must</strong> be a reconciled <code>NvSciSyncAttrList</code>"
+ }
+ ]
+ },
+ "vkGetPhysicalDeviceSciSyncAttributesNV": {
+ "(VK_NV_external_sci_sync,VK_NV_external_sci_sync2)": [
+ {
+ "vuid": "VUID-vkGetPhysicalDeviceSciSyncAttributesNV-pSciSyncAttributesInfo-05109",
+ "text": " If <code>pSciSyncAttributesInfo-&gt;primitiveType</code> is <code>VK_SCI_SYNC_PRIMITIVE_TYPE_FENCE_NV</code> then <code>VkPhysicalDeviceExternalSciSyncFeaturesNV</code>::<code>sciSyncFence</code> or <code>VkPhysicalDeviceExternalSciSync2FeaturesNV</code>::<code>sciSyncFence</code> <strong class=\"purple\">must</strong> be enabled"
},
{
- "vuid": "VUID-vkDestroyFence-fence-01121",
- "text": " If <code>VkAllocationCallbacks</code> were provided when <code>fence</code> was created, a compatible set of callbacks <strong class=\"purple\">must</strong> be provided here"
+ "vuid": "VUID-vkGetPhysicalDeviceSciSyncAttributesNV-pSciSyncAttributesInfo-05110",
+ "text": " If <code>pSciSyncAttributesInfo-&gt;primitiveType</code> is <code>VK_SCI_SYNC_PRIMITIVE_TYPE_SEMAPHORE_NV</code> then <code>VkPhysicalDeviceExternalSciSyncFeaturesNV</code>::<code>sciSyncSemaphore</code> or <code>VkPhysicalDeviceExternalSciSync2FeaturesNV</code>::<code>sciSyncSemaphore2</code> <strong class=\"purple\">must</strong> be enabled"
},
{
- "vuid": "VUID-vkDestroyFence-fence-01122",
- "text": " If no <code>VkAllocationCallbacks</code> were provided when <code>fence</code> was created, <code>pAllocator</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+ "vuid": "VUID-vkGetPhysicalDeviceSciSyncAttributesNV-pAttributes-05111",
+ "text": " <code>pAttributes</code> <strong class=\"purple\">must</strong> be a valid <code>NvSciSyncAttrList</code> and <strong class=\"purple\">must</strong> not be <code>NULL</code>"
+ }
+ ]
+ },
+ "vkGetFenceSciSyncFenceNV": {
+ "(VK_NV_external_sci_sync,VK_NV_external_sci_sync2)": [
+ {
+ "vuid": "VUID-vkGetFenceSciSyncFenceNV-pGetSciSyncHandleInfo-05112",
+ "text": " <code>pGetSciSyncHandleInfo-&gt;handleType</code> <strong class=\"purple\">must</strong> be <code>VK_EXTERNAL_FENCE_HANDLE_TYPE_SCI_SYNC_FENCE_BIT_NV</code>"
+ },
+ {
+ "vuid": "VUID-vkGetFenceSciSyncFenceNV-sciSyncFence-05113",
+ "text": " <code>VkPhysicalDeviceExternalSciSyncFeaturesNV</code>::<code>sciSyncFence</code> or <code>VkPhysicalDeviceExternalSciSync2FeaturesNV</code>::<code>sciSyncFence</code> <strong class=\"purple\">must</strong> be enabled"
+ }
+ ]
+ },
+ "vkGetFenceSciSyncObjNV": {
+ "(VK_NV_external_sci_sync,VK_NV_external_sci_sync2)": [
+ {
+ "vuid": "VUID-vkGetFenceSciSyncObjNV-pGetSciSyncHandleInfo-05114",
+ "text": " <code>pGetSciSyncHandleInfo-&gt;handleType</code> <strong class=\"purple\">must</strong> be <code>VK_EXTERNAL_FENCE_HANDLE_TYPE_SCI_SYNC_OBJ_BIT_NV</code>"
+ },
+ {
+ "vuid": "VUID-vkGetFenceSciSyncObjNV-sciSyncFence-05115",
+ "text": " <code>VkPhysicalDeviceExternalSciSyncFeaturesNV</code>::<code>sciSyncFence</code> or <code>VkPhysicalDeviceExternalSciSync2FeaturesNV</code>::<code>sciSyncFence</code> <strong class=\"purple\">must</strong> be enabled"
+ }
+ ]
+ },
+ "vkDestroyFence": {
+ "core": [
+ {
+ "vuid": "VUID-vkDestroyFence-fence-01120",
+ "text": " All <a href=\"#devsandqueues-submission\">queue submission</a> commands that refer to <code>fence</code> <strong class=\"purple\">must</strong> have completed execution"
},
{
"vuid": "VUID-vkDestroyFence-device-parameter",
@@ -2812,6 +3016,16 @@
"vuid": "VUID-vkDestroyFence-fence-parent",
"text": " If <code>fence</code> is a valid handle, it <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
}
+ ],
+ "!(VKSC_VERSION_1_0)": [
+ {
+ "vuid": "VUID-vkDestroyFence-fence-01121",
+ "text": " If <code>VkAllocationCallbacks</code> were provided when <code>fence</code> was created, a compatible set of callbacks <strong class=\"purple\">must</strong> be provided here"
+ },
+ {
+ "vuid": "VUID-vkDestroyFence-fence-01122",
+ "text": " If no <code>VkAllocationCallbacks</code> were provided when <code>fence</code> was created, <code>pAllocator</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+ }
]
},
"vkGetFenceStatus": {
@@ -3070,7 +3284,45 @@
}
]
},
+ "vkImportFenceSciSyncFenceNV": {
+ "(VK_NV_external_sci_sync,VK_NV_external_sci_sync2)": [
+ {
+ "vuid": "VUID-vkImportFenceSciSyncFenceNV-sciSyncImport-05140",
+ "text": " <code>VkPhysicalDeviceExternalSciSyncFeaturesNV</code>::<code>sciSyncImport</code> and <code>VkPhysicalDeviceExternalSciSyncFeaturesNV</code>::<code>sciSyncFence</code>, or <code>VkPhysicalDeviceExternalSciSync2FeaturesNV</code>::<code>sciSyncImport</code> and <code>VkPhysicalDeviceExternalSciSync2FeaturesNV</code>::<code>sciSyncFence</code> <strong class=\"purple\">must</strong> be enabled"
+ },
+ {
+ "vuid": "VUID-vkImportFenceSciSyncFenceNV-fence-05141",
+ "text": " <code>fence</code> <strong class=\"purple\">must</strong> not be associated with any queue command that has not yet completed execution on that queue"
+ },
+ {
+ "vuid": "VUID-vkImportFenceSciSyncFenceNV-pImportFenceSciSyncInfo-05142",
+ "text": " <code>pImportFenceSciSyncInfo-&gt;handleType</code> <strong class=\"purple\">must</strong> be <code>VK_EXTERNAL_FENCE_HANDLE_TYPE_SCI_SYNC_FENCE_BIT_NV</code>"
+ }
+ ]
+ },
+ "vkImportFenceSciSyncObjNV": {
+ "(VK_NV_external_sci_sync,VK_NV_external_sci_sync2)": [
+ {
+ "vuid": "VUID-vkImportFenceSciSyncObjNV-sciSyncImport-05143",
+ "text": " <code>VkPhysicalDeviceExternalSciSyncFeaturesNV</code>::<code>sciSyncImport</code> and <code>VkPhysicalDeviceExternalSciSyncFeaturesNV</code>::<code>sciSyncFence</code>, or <code>VkPhysicalDeviceExternalSciSync2FeaturesNV</code>::<code>sciSyncImport</code> and <code>VkPhysicalDeviceExternalSciSync2FeaturesNV</code>::<code>sciSyncFence</code> <strong class=\"purple\">must</strong> be enabled"
+ },
+ {
+ "vuid": "VUID-vkImportFenceSciSyncObjNV-fence-05144",
+ "text": " <code>fence</code> <strong class=\"purple\">must</strong> not be associated with any queue command that has not yet completed execution on that queue"
+ },
+ {
+ "vuid": "VUID-vkImportFenceSciSyncObjNV-pImportFenceSciSyncInfo-05145",
+ "text": " <code>pImportFenceSciSyncInfo-&gt;handleType</code> <strong class=\"purple\">must</strong> be <code>VK_EXTERNAL_FENCE_HANDLE_TYPE_SCI_SYNC_OBJ_BIT_NV</code>"
+ }
+ ]
+ },
"vkCreateSemaphore": {
+ "(VKSC_VERSION_1_0)+(VKSC_VERSION_1_0)": [
+ {
+ "vuid": "VUID-vkCreateSemaphore-device-05068",
+ "text": " The number of {objectnameplural} currently allocated from <code>device</code> plus {objectcount} <strong class=\"purple\">must</strong> be less than or equal to the total number of {objectnameplural} requested via <code>VkDeviceObjectReservationCreateInfo</code>::pname:{objectnamecamelcase}RequestCount specified when <code>device</code> was created"
+ }
+ ],
"core": [
{
"vuid": "VUID-vkCreateSemaphore-device-parameter",
@@ -3091,12 +3343,24 @@
]
},
"VkSemaphoreCreateInfo": {
- "(VK_EXT_metal_objects)": [
+ "(VK_EXT_metal_objects,VK_NV_external_sci_sync,VK_NV_external_sci_sync2)+(VK_EXT_metal_objects)": [
{
"vuid": "VUID-VkSemaphoreCreateInfo-pNext-06789",
"text": " If the <code>pNext</code> chain includes a <a href=\"#VkExportMetalObjectCreateInfoEXT\">VkExportMetalObjectCreateInfoEXT</a> structure, its <code>exportObjectType</code> member <strong class=\"purple\">must</strong> be <code>VK_EXPORT_METAL_OBJECT_TYPE_METAL_SHARED_EVENT_BIT_EXT</code>"
}
],
+ "(VK_EXT_metal_objects,VK_NV_external_sci_sync,VK_NV_external_sci_sync2)+(VK_NV_external_sci_sync)": [
+ {
+ "vuid": "VUID-VkSemaphoreCreateInfo-pNext-05118",
+ "text": " If the <code>pNext</code> chain includes <code>VkExportSemaphoreSciSyncInfoNV</code>, it <strong class=\"purple\">must</strong> also include <a href=\"#VkSemaphoreTypeCreateInfo\">VkSemaphoreTypeCreateInfo</a> with a <a href=\"#VkSemaphoreTypeCreateInfo\">VkSemaphoreTypeCreateInfo</a>::<code>semaphoreType</code> of <code>VK_SEMAPHORE_TYPE_TIMELINE</code>"
+ }
+ ],
+ "(VK_EXT_metal_objects,VK_NV_external_sci_sync,VK_NV_external_sci_sync2)+(VK_NV_external_sci_sync2)": [
+ {
+ "vuid": "VUID-VkSemaphoreCreateInfo-pNext-05146",
+ "text": " If the <code>pNext</code> chain includes <code>VkSemaphoreSciSyncCreateInfoNV</code>, it <strong class=\"purple\">must</strong> also include <a href=\"#VkSemaphoreTypeCreateInfo\">VkSemaphoreTypeCreateInfo</a> with a <a href=\"#VkSemaphoreTypeCreateInfo\">VkSemaphoreTypeCreateInfo</a>::<code>semaphoreType</code> of <code>VK_SEMAPHORE_TYPE_TIMELINE</code>"
+ }
+ ],
"core": [
{
"vuid": "VUID-VkSemaphoreCreateInfo-sType-sType",
@@ -3134,6 +3398,12 @@
"vuid": "VUID-VkSemaphoreTypeCreateInfo-semaphoreType-parameter",
"text": " <code>semaphoreType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSemaphoreType\">VkSemaphoreType</a> value"
}
+ ],
+ "(VK_VERSION_1_2,VK_KHR_timeline_semaphore)+(VK_NV_external_sci_sync)": [
+ {
+ "vuid": "VUID-VkSemaphoreTypeCreateInfo-pNext-05119",
+ "text": " If the <code>pNext</code> chain includes <code>VkExportSemaphoreSciSyncInfoNV</code>, <code>initialValue</code> <strong class=\"purple\">must</strong> be zero."
+ }
]
},
"VkExportSemaphoreCreateInfo": {
@@ -3150,6 +3420,12 @@
"vuid": "VUID-VkExportSemaphoreCreateInfo-handleTypes-parameter",
"text": " <code>handleTypes</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkExternalSemaphoreHandleTypeFlagBits\">VkExternalSemaphoreHandleTypeFlagBits</a> values"
}
+ ],
+ "(VK_VERSION_1_1,VK_KHR_external_semaphore)+(VK_NV_external_sci_sync)": [
+ {
+ "vuid": "VUID-VkExportSemaphoreCreateInfo-pNext-05120",
+ "text": " If the <code>pNext</code> chain includes a <code>VkExportSemaphoreSciSyncInfoNV</code> structure, <code>VkPhysicalDeviceExternalSciSyncFeaturesNV</code>::<code>sciSyncSemapore</code> and <code>VkPhysicalDeviceExternalSciSyncFeaturesNV</code>::<code>sciSyncExport</code> <strong class=\"purple\">must</strong> be enabled"
+ }
]
},
"VkExportSemaphoreWin32HandleInfoKHR": {
@@ -3366,12 +3642,60 @@
}
]
},
+ "VkExportSemaphoreSciSyncInfoNV": {
+ "(VK_NV_external_sci_sync)": [
+ {
+ "vuid": "VUID-VkExportSemaphoreSciSyncInfoNV-pAttributes-05121",
+ "text": " <code>pAttributes</code> <strong class=\"purple\">must</strong> be a reconciled <code>NvSciSyncAttrList</code>"
+ }
+ ]
+ },
+ "vkGetSemaphoreSciSyncObjNV": {
+ "(VK_NV_external_sci_sync)": [
+ {
+ "vuid": "VUID-vkGetSemaphoreSciSyncObjNV-sciSyncSemaphore-05147",
+ "text": " <code>VkPhysicalDeviceExternalSciSyncFeaturesNV</code>::<code>sciSyncSemaphore</code> <strong class=\"purple\">must</strong> be enabled"
+ }
+ ]
+ },
+ "VkSemaphoreGetSciSyncInfoNV": {
+ "(VK_NV_external_sci_sync)": [
+ {
+ "vuid": "VUID-VkSemaphoreGetSciSyncInfoNV-handleType-05122",
+ "text": " <code>handleType</code> <strong class=\"purple\">must</strong> be <code>VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SCI_SYNC_OBJ_BIT_NV</code>"
+ },
+ {
+ "vuid": "VUID-VkSemaphoreGetSciSyncInfoNV-semaphore-05123",
+ "text": " <code>semaphore</code> <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkSemaphoreType\">VkSemaphoreType</a> of <code>VK_SEMAPHORE_TYPE_TIMELINE</code>"
+ },
+ {
+ "vuid": "VUID-VkSemaphoreGetSciSyncInfoNV-semaphore-05129",
+ "text": " <code>semaphore</code> <strong class=\"purple\">must</strong> have been created with <code>VkExportSemaphoreSciSyncInfoNV</code> included <code>pNext</code> chain of <a href=\"#VkSemaphoreCreateInfo\">VkSemaphoreCreateInfo</a>, or previously imported by <code>vkImportSemaphoreSciSyncObjNV</code>"
+ }
+ ]
+ },
+ "VkSemaphoreSciSyncCreateInfoNV": {
+ "(VK_NV_external_sci_sync2)": [
+ {
+ "vuid": "VUID-VkSemaphoreSciSyncCreateInfoNV-sciSyncSemaphore2-05148",
+ "text": " The <a href=\"#features-sciSyncSemaphore2\"><code>VkPhysicalDeviceExternalSciSync2FeaturesNV</code>::<code>sciSyncSemaphore2</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+ }
+ ]
+ },
"vkDestroySemaphore": {
- "core": [
+ "!(VK_NV_external_sci_sync2)": [
{
"vuid": "VUID-vkDestroySemaphore-semaphore-01137",
"text": " All submitted batches that refer to <code>semaphore</code> <strong class=\"purple\">must</strong> have completed execution"
- },
+ }
+ ],
+ "(VK_NV_external_sci_sync2)": [
+ {
+ "vuid": "VUID-vkDestroySemaphore-semaphore-05149",
+ "text": " If <code>semaphore</code> was not created with <code>VkSemaphoreSciSyncCreateInfoNV</code> present in the <a href=\"#VkSemaphoreCreateInfo\">VkSemaphoreCreateInfo</a>::<code>pNext</code> chain when it was created, all submitted batches that refer to <code>semaphore</code> <strong class=\"purple\">must</strong> have completed execution"
+ }
+ ],
+ "!(VKSC_VERSION_1_0)": [
{
"vuid": "VUID-vkDestroySemaphore-semaphore-01138",
"text": " If <code>VkAllocationCallbacks</code> were provided when <code>semaphore</code> was created, a compatible set of callbacks <strong class=\"purple\">must</strong> be provided here"
@@ -3379,7 +3703,9 @@
{
"vuid": "VUID-vkDestroySemaphore-semaphore-01139",
"text": " If no <code>VkAllocationCallbacks</code> were provided when <code>semaphore</code> was created, <code>pAllocator</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
+ }
+ ],
+ "core": [
{
"vuid": "VUID-vkDestroySemaphore-device-parameter",
"text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
@@ -3398,6 +3724,40 @@
}
]
},
+ "vkCreateSemaphoreSciSyncPoolNV": {
+ "(VK_NV_external_sci_sync2)+(VKSC_VERSION_1_0)": [
+ {
+ "vuid": "VUID-vkCreateSemaphoreSciSyncPoolNV-device-05150",
+ "text": " The number of semaphore pools currently allocated from <code>device</code> plus 1 <strong class=\"purple\">must</strong> be less than or equal to the total number of semaphore pools requested via <code>VkDeviceSemaphoreSciSyncPoolReservationCreateInfoNV</code>::<code>semaphoreSciSyncPoolRequestCount</code> specified when <code>device</code> was created"
+ }
+ ],
+ "(VK_NV_external_sci_sync2)": [
+ {
+ "vuid": "VUID-vkCreateSemaphoreSciSyncPoolNV-sciSyncSemaphore2-05151",
+ "text": " The <a href=\"#features-sciSyncSemaphore2\"><code>VkPhysicalDeviceExternalSciSync2FeaturesNV</code>::<code>sciSyncSemaphore2</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+ }
+ ]
+ },
+ "VkSemaphoreSciSyncPoolCreateInfoNV": {
+ "(VK_NV_external_sci_sync2)": [
+ {
+ "vuid": "VUID-VkSemaphoreSciSyncPoolCreateInfoNV-handle-05152",
+ "text": " <code>handle</code> <strong class=\"purple\">must</strong> be a valid <code>NvSciSyncObj</code>"
+ }
+ ]
+ },
+ "vkDestroySemaphoreSciSyncPoolNV": {
+ "(VK_NV_external_sci_sync2)+!(VKSC_VERSION_1_0)": [
+ {
+ "vuid": "VUID-vkDestroySemaphoreSciSyncPoolNV-semaphorePool-05153",
+ "text": " All submitted batches that refer to a semaphore created from <code>semaphorePool</code> <strong class=\"purple\">must</strong> have completed execution"
+ },
+ {
+ "vuid": "VUID-vkDestroySemaphoreSciSyncPoolNV-sciSyncSemaphore2-05154",
+ "text": " The <a href=\"#features-sciSyncSemaphore2\"><code>VkPhysicalDeviceExternalSciSync2FeaturesNV</code>::<code>sciSyncSemaphore2</code></a> feature <strong class=\"purple\">must</strong> be enabled"
+ }
+ ]
+ },
"vkGetSemaphoreCounterValue": {
"(VK_VERSION_1_2,VK_KHR_timeline_semaphore)": [
{
@@ -3464,6 +3824,12 @@
"vuid": "VUID-VkSemaphoreWaitInfo-semaphoreCount-arraylength",
"text": " <code>semaphoreCount</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
}
+ ],
+ "(VK_VERSION_1_2,VK_KHR_timeline_semaphore)+(VK_NV_external_sci_sync,VK_NV_external_sci_sync2)": [
+ {
+ "vuid": "VUID-VkSemaphoreWaitInfo-pSemaphores-05124",
+ "text": " If any of the semaphores in <code>pSemaphores</code> have <code>NvSciSyncObj</code> as payload, application <strong class=\"purple\">must</strong> calculate the corresponding timeline semaphore values in <code>pValues</code> by calling <a href=\"#NvSciSync2-extension-page\">NvSciSync APIs</a>."
+ }
]
},
"vkSignalSemaphore": {
@@ -3508,6 +3874,12 @@
"vuid": "VUID-VkSemaphoreSignalInfo-semaphore-parameter",
"text": " <code>semaphore</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkSemaphore\">VkSemaphore</a> handle"
}
+ ],
+ "(VK_VERSION_1_2,VK_KHR_timeline_semaphore)+(VK_NV_external_sci_sync,VK_NV_external_sci_sync2)": [
+ {
+ "vuid": "VUID-VkSemaphoreSignalInfo-semaphores-05125",
+ "text": " If <code>semaphores</code> has <code>NvSciSyncObj</code> as payload, application <strong class=\"purple\">must</strong> calculate the corresponding timeline semaphore value in <code>value</code> by calling <a href=\"#NvSciSync2-extension-page\">NvSciSync APIs</a>."
+ }
]
},
"vkImportSemaphoreWin32HandleKHR": {
@@ -3708,6 +4080,30 @@
}
]
},
+ "vkImportSemaphoreSciSyncObjNV": {
+ "(VK_NV_external_sci_sync)": [
+ {
+ "vuid": "VUID-vkImportSemaphoreSciSyncObjNV-sciSyncImport-05155",
+ "text": " <code>VkPhysicalDeviceExternalSciSyncFeaturesNV</code>::<code>sciSyncImport</code> and <code>VkPhysicalDeviceExternalSciSyncFeaturesNV</code>::<code>sciSyncSemaphore</code> <strong class=\"purple\">must</strong> be enabled"
+ }
+ ]
+ },
+ "VkImportSemaphoreSciSyncInfoNV": {
+ "(VK_NV_external_sci_sync)": [
+ {
+ "vuid": "VUID-VkImportSemaphoreSciSyncInfoNV-handleType-05126",
+ "text": " <code>handleType</code> <strong class=\"purple\">must</strong> be a value included in the <a href=\"#synchronization-semaphore-handletypes-sci-sync\">Handle Types Supported by <code>VkImportSemaphoreSciSyncInfoNV</code></a> table"
+ },
+ {
+ "vuid": "VUID-VkImportSemaphoreSciSyncInfoNV-semaphore-05127",
+ "text": " <code>semaphore</code> <strong class=\"purple\">must</strong> have been created with a <a href=\"#VkSemaphoreType\">VkSemaphoreType</a> of <code>VK_SEMAPHORE_TYPE_TIMELINE</code>"
+ },
+ {
+ "vuid": "VUID-VkImportSemaphoreSciSyncInfoNV-semaphore-05128",
+ "text": " <code>semaphore</code> <strong class=\"purple\">must</strong> not be associated with any queue command that has not yet completed execution on that queue"
+ }
+ ]
+ },
"vkCreateEvent": {
"(VK_KHR_portability_subset)": [
{
@@ -3715,6 +4111,12 @@
"text": " If the <code><a href=\"#VK_KHR_portability_subset\">VK_KHR_portability_subset</a></code> extension is enabled, and <a href=\"#VkPhysicalDevicePortabilitySubsetFeaturesKHR\">VkPhysicalDevicePortabilitySubsetFeaturesKHR</a>::<code>events</code> is <code>VK_FALSE</code>, then the implementation does not support <a href=\"#synchronization-events\">events</a>, and <a href=\"#vkCreateEvent\">vkCreateEvent</a> <strong class=\"purple\">must</strong> not be used"
}
],
+ "(VKSC_VERSION_1_0)": [
+ {
+ "vuid": "VUID-vkCreateEvent-device-05068",
+ "text": " The number of {objectnameplural} currently allocated from <code>device</code> plus {objectcount} <strong class=\"purple\">must</strong> be less than or equal to the total number of {objectnameplural} requested via <code>VkDeviceObjectReservationCreateInfo</code>::pname:{objectnamecamelcase}RequestCount specified when <code>device</code> was created"
+ }
+ ],
"core": [
{
"vuid": "VUID-vkCreateEvent-device-parameter",
@@ -3767,14 +4169,6 @@
"text": " All submitted commands that refer to <code>event</code> <strong class=\"purple\">must</strong> have completed execution"
},
{
- "vuid": "VUID-vkDestroyEvent-event-01146",
- "text": " If <code>VkAllocationCallbacks</code> were provided when <code>event</code> was created, a compatible set of callbacks <strong class=\"purple\">must</strong> be provided here"
- },
- {
- "vuid": "VUID-vkDestroyEvent-event-01147",
- "text": " If no <code>VkAllocationCallbacks</code> were provided when <code>event</code> was created, <code>pAllocator</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
"vuid": "VUID-vkDestroyEvent-device-parameter",
"text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
},
@@ -3790,6 +4184,16 @@
"vuid": "VUID-vkDestroyEvent-event-parent",
"text": " If <code>event</code> is a valid handle, it <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
}
+ ],
+ "!(VKSC_VERSION_1_0)": [
+ {
+ "vuid": "VUID-vkDestroyEvent-event-01146",
+ "text": " If <code>VkAllocationCallbacks</code> were provided when <code>event</code> was created, a compatible set of callbacks <strong class=\"purple\">must</strong> be provided here"
+ },
+ {
+ "vuid": "VUID-vkDestroyEvent-event-01147",
+ "text": " If no <code>VkAllocationCallbacks</code> were provided when <code>event</code> was created, <code>pAllocator</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+ }
]
},
"vkGetEventStatus": {
@@ -5810,7 +6214,11 @@
},
{
"vuid": "VUID-VkBufferMemoryBarrier2-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+ "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkExternalMemoryAcquireUnmodifiedEXT\">VkExternalMemoryAcquireUnmodifiedEXT</a>"
+ },
+ {
+ "vuid": "VUID-VkBufferMemoryBarrier2-sType-unique",
+ "text": " The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique"
},
{
"vuid": "VUID-VkBufferMemoryBarrier2-srcStageMask-parameter",
@@ -6260,7 +6668,11 @@
},
{
"vuid": "VUID-VkBufferMemoryBarrier-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+ "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkExternalMemoryAcquireUnmodifiedEXT\">VkExternalMemoryAcquireUnmodifiedEXT</a>"
+ },
+ {
+ "vuid": "VUID-VkBufferMemoryBarrier-sType-unique",
+ "text": " The <code>sType</code> value of each struct in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be unique"
},
{
"vuid": "VUID-VkBufferMemoryBarrier-buffer-parameter",
@@ -6532,7 +6944,7 @@
},
{
"vuid": "VUID-VkImageMemoryBarrier2-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkSampleLocationsInfoEXT\">VkSampleLocationsInfoEXT</a>"
+ "text": " Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkExternalMemoryAcquireUnmodifiedEXT\">VkExternalMemoryAcquireUnmodifiedEXT</a> or <a href=\"#VkSampleLocationsInfoEXT\">VkSampleLocationsInfoEXT</a>"
},
{
"vuid": "VUID-VkImageMemoryBarrier2-sType-unique",
@@ -7160,7 +7572,7 @@
},
{
"vuid": "VUID-VkImageMemoryBarrier-pNext-pNext",
- "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkSampleLocationsInfoEXT\">VkSampleLocationsInfoEXT</a>"
+ "text": " Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkExternalMemoryAcquireUnmodifiedEXT\">VkExternalMemoryAcquireUnmodifiedEXT</a> or <a href=\"#VkSampleLocationsInfoEXT\">VkSampleLocationsInfoEXT</a>"
},
{
"vuid": "VUID-VkImageMemoryBarrier-sType-unique",
@@ -7358,6 +7770,18 @@
}
]
},
+ "VkExternalMemoryAcquireUnmodifiedEXT": {
+ "(VK_EXT_external_memory_acquire_unmodified)": [
+ {
+ "vuid": "VUID-VkExternalMemoryAcquireUnmodifiedEXT-acquireUnmodifiedMemory-08922",
+ "text": " If <code>acquireUnmodifiedMemory</code> is <code>VK_TRUE</code>, and the memory barrier&#8217;s <code>srcQueueFamilyIndex</code> is a special queue family reserved for external memory ownership transfers (as described in <a href=\"#synchronization-queue-transfers\">Queue Family Ownership Transfer</a>), then each range of <a href=\"#VkDeviceMemory\">VkDeviceMemory</a> bound to the resource <strong class=\"purple\">must</strong> have remained unmodified during all time since the resource&#8217;s most recent release of ownership to the queue family."
+ },
+ {
+ "vuid": "VUID-VkExternalMemoryAcquireUnmodifiedEXT-sType-sType",
+ "text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_EXT</code>"
+ }
+ ]
+ },
"vkQueueWaitIdle": {
"core": [
{
@@ -8037,7 +8461,7 @@
"text": " If <code>imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, it <strong class=\"purple\">must</strong> have a <code>layerCount</code> equal to <code>1</code>"
}
],
- "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_fragment_density_map)+(VK_VERSION_1_1,VK_KHR_multiview)": [
+ "(VK_VERSION_1_3,VK_KHR_dynamic_rendering)+(VK_EXT_fragment_density_map)+(VK_VERSION_1_1,VK_KHR_multiview)+!(VKSC_VERSION_1_0)": [
{
"vuid": "VUID-VkRenderingFragmentDensityMapAttachmentInfoEXT-apiVersion-07908",
"text": " If <a href=\"#VK_KHR_multiview\">VK_KHR_multiview</a> is not enabled, <a href=\"#VkPhysicalDeviceProperties\">VkPhysicalDeviceProperties</a>::<code>apiVersion</code> is less than Vulkan 1.1, and <code>imageView</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, it <strong class=\"purple\">must</strong> have a <code>layerCount</code> equal to <code>1</code>"
@@ -8115,6 +8539,20 @@
]
},
"vkCreateRenderPass": {
+ "(VKSC_VERSION_1_0)+(VKSC_VERSION_1_0)": [
+ {
+ "vuid": "VUID-vkCreateRenderPass-device-05068",
+ "text": " The number of {objectnameplural} currently allocated from <code>device</code> plus {objectcount} <strong class=\"purple\">must</strong> be less than or equal to the total number of {objectnameplural} requested via <code>VkDeviceObjectReservationCreateInfo</code>::pname:{objectnamecamelcase}RequestCount specified when <code>device</code> was created"
+ },
+ {
+ "vuid": "VUID-vkCreateRenderPass-subpasses-device-05089",
+ "text": " The number of subpasses currently allocated from <code>device</code> across all slink:VkRenderPass objects plus pname:pCreateInfo-&gt;subpassCount <strong class=\"purple\">must</strong> be less than or equal to the total number of subpasses requested via <code>VkDeviceObjectReservationCreateInfo</code>::pname:subpassDescriptionRequestCount specified when <code>device</code> was created"
+ },
+ {
+ "vuid": "VUID-vkCreateRenderPass-attachments-device-05089",
+ "text": " The number of attachments currently allocated from <code>device</code> across all slink:VkRenderPass objects plus pname:pCreateInfo-&gt;attachmentCount <strong class=\"purple\">must</strong> be less than or equal to the total number of attachments requested via <code>VkDeviceObjectReservationCreateInfo</code>::pname:attachmentDescriptionRequestCount specified when <code>device</code> was created"
+ }
+ ],
"core": [
{
"vuid": "VUID-vkCreateRenderPass-device-parameter",
@@ -8254,6 +8692,20 @@
"vuid": "VUID-VkRenderPassCreateInfo-pNext-02515",
"text": " If the <code>pNext</code> chain includes a <a href=\"#VkRenderPassMultiviewCreateInfo\">VkRenderPassMultiviewCreateInfo</a> structure, and each element of its <code>pViewMasks</code> member is <code>0</code>, its <code>correlationMaskCount</code> member <strong class=\"purple\">must</strong> be <code>0</code>"
}
+ ],
+ "(VKSC_VERSION_1_0)": [
+ {
+ "vuid": "VUID-VkRenderPassCreateInfo-subpassCount-05050",
+ "text": " <code>subpassCount</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#limits-maxRenderPassSubpasses\">maxRenderPassSubpasses</a>"
+ },
+ {
+ "vuid": "VUID-VkRenderPassCreateInfo-dependencyCount-05051",
+ "text": " <code>dependencyCount</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#limits-maxRenderPassDependencies\">maxRenderPassDependencies</a>"
+ },
+ {
+ "vuid": "VUID-VkRenderPassCreateInfo-attachmentCount-05052",
+ "text": " <code>attachmentCount</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#limits-maxFramebufferAttachments\">maxFramebufferAttachments</a>"
+ }
]
},
"VkRenderPassMultiviewCreateInfo": {
@@ -8720,6 +9172,16 @@
"vuid": "VUID-VkSubpassDescription-pInputAttachments-02868",
"text": " If the render pass is created with <code>VK_RENDER_PASS_CREATE_TRANSFORM_BIT_QCOM</code> each of the elements of <code>pInputAttachments</code> <strong class=\"purple\">must</strong> be <code>VK_ATTACHMENT_UNUSED</code>"
}
+ ],
+ "(VKSC_VERSION_1_0)": [
+ {
+ "vuid": "VUID-VkSubpassDescription-inputAttachmentCount-05053",
+ "text": " <code>inputAttachmentCount</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#limits-maxSubpassInputAttachments\">maxSubpassInputAttachments</a>"
+ },
+ {
+ "vuid": "VUID-VkSubpassDescription-preserveAttachmentCount-05054",
+ "text": " <code>preserveAttachmentCount</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#limits-maxSubpassPreserveAttachments\">maxSubpassPreserveAttachments</a>"
+ }
]
},
"VkAttachmentReference": {
@@ -8995,6 +9457,20 @@
]
},
"vkCreateRenderPass2": {
+ "(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VKSC_VERSION_1_0)+(VKSC_VERSION_1_0)": [
+ {
+ "vuid": "VUID-vkCreateRenderPass2-device-05068",
+ "text": " The number of {objectnameplural} currently allocated from <code>device</code> plus {objectcount} <strong class=\"purple\">must</strong> be less than or equal to the total number of {objectnameplural} requested via <code>VkDeviceObjectReservationCreateInfo</code>::pname:{objectnamecamelcase}RequestCount specified when <code>device</code> was created"
+ },
+ {
+ "vuid": "VUID-vkCreateRenderPass2-subpasses-device-05089",
+ "text": " The number of subpasses currently allocated from <code>device</code> across all slink:VkRenderPass objects plus pname:pCreateInfo-&gt;subpassCount <strong class=\"purple\">must</strong> be less than or equal to the total number of subpasses requested via <code>VkDeviceObjectReservationCreateInfo</code>::pname:subpassDescriptionRequestCount specified when <code>device</code> was created"
+ },
+ {
+ "vuid": "VUID-vkCreateRenderPass2-attachments-device-05089",
+ "text": " The number of attachments currently allocated from <code>device</code> across all slink:VkRenderPass objects plus pname:pCreateInfo-&gt;attachmentCount <strong class=\"purple\">must</strong> be less than or equal to the total number of attachments requested via <code>VkDeviceObjectReservationCreateInfo</code>::pname:attachmentDescriptionRequestCount specified when <code>device</code> was created"
+ }
+ ],
"(VK_VERSION_1_2,VK_KHR_create_renderpass2)": [
{
"vuid": "VUID-vkCreateRenderPass2-device-parameter",
@@ -9163,6 +9639,20 @@
"text": " If <code>flags</code> includes <code>VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM</code>, then the subpass <strong class=\"purple\">must</strong> be the last subpass in a subpass dependency chain"
}
],
+ "(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VKSC_VERSION_1_0)": [
+ {
+ "vuid": "VUID-VkRenderPassCreateInfo2-subpassCount-05055",
+ "text": " <code>subpassCount</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#limits-maxRenderPassSubpasses\">maxRenderPassSubpasses</a>"
+ },
+ {
+ "vuid": "VUID-VkRenderPassCreateInfo2-dependencyCount-05056",
+ "text": " <code>dependencyCount</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#limits-maxRenderPassDependencies\">maxRenderPassDependencies</a>"
+ },
+ {
+ "vuid": "VUID-VkRenderPassCreateInfo2-attachmentCount-05057",
+ "text": " <code>attachmentCount</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#limits-maxFramebufferAttachments\">maxFramebufferAttachments</a>"
+ }
+ ],
"(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)": [
{
"vuid": "VUID-VkRenderPassCreateInfo2-attachment-06244",
@@ -9615,6 +10105,16 @@
"text": " If the <code>attachment</code> member of any element of <code>pInputAttachments</code> is not <code>VK_ATTACHMENT_UNUSED</code>, then the <code>aspectMask</code> member <strong class=\"purple\">must</strong> not include <code>VK_IMAGE_ASPECT_MEMORY_PLANE<em>{ibit}</em>BIT_EXT</code> for any index <em>i</em>"
}
],
+ "(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VKSC_VERSION_1_0)": [
+ {
+ "vuid": "VUID-VkSubpassDescription2-inputAttachmentCount-05058",
+ "text": " <code>inputAttachmentCount</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#limits-maxSubpassInputAttachments\">maxSubpassInputAttachments</a>"
+ },
+ {
+ "vuid": "VUID-VkSubpassDescription2-preserveAttachmentCount-05059",
+ "text": " <code>preserveAttachmentCount</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#limits-maxSubpassPreserveAttachments\">maxSubpassPreserveAttachments</a>"
+ }
+ ],
"(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_VERSION_1_1,VK_KHR_multiview)": [
{
"vuid": "VUID-VkSubpassDescription2-multiview-06558",
@@ -10059,14 +10559,6 @@
"text": " All submitted commands that refer to <code>renderPass</code> <strong class=\"purple\">must</strong> have completed execution"
},
{
- "vuid": "VUID-vkDestroyRenderPass-renderPass-00874",
- "text": " If <code>VkAllocationCallbacks</code> were provided when <code>renderPass</code> was created, a compatible set of callbacks <strong class=\"purple\">must</strong> be provided here"
- },
- {
- "vuid": "VUID-vkDestroyRenderPass-renderPass-00875",
- "text": " If no <code>VkAllocationCallbacks</code> were provided when <code>renderPass</code> was created, <code>pAllocator</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
"vuid": "VUID-vkDestroyRenderPass-device-parameter",
"text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
},
@@ -10082,6 +10574,16 @@
"vuid": "VUID-vkDestroyRenderPass-renderPass-parent",
"text": " If <code>renderPass</code> is a valid handle, it <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
}
+ ],
+ "!(VKSC_VERSION_1_0)": [
+ {
+ "vuid": "VUID-vkDestroyRenderPass-renderPass-00874",
+ "text": " If <code>VkAllocationCallbacks</code> were provided when <code>renderPass</code> was created, a compatible set of callbacks <strong class=\"purple\">must</strong> be provided here"
+ },
+ {
+ "vuid": "VUID-vkDestroyRenderPass-renderPass-00875",
+ "text": " If no <code>VkAllocationCallbacks</code> were provided when <code>renderPass</code> was created, <code>pAllocator</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+ }
]
},
"vkCreateFramebuffer": {
@@ -10106,6 +10608,12 @@
"vuid": "VUID-vkCreateFramebuffer-pFramebuffer-parameter",
"text": " <code>pFramebuffer</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkFramebuffer\">VkFramebuffer</a> handle"
}
+ ],
+ "(VKSC_VERSION_1_0)": [
+ {
+ "vuid": "VUID-vkCreateFramebuffer-device-05068",
+ "text": " The number of {objectnameplural} currently allocated from <code>device</code> plus {objectcount} <strong class=\"purple\">must</strong> be less than or equal to the total number of {objectnameplural} requested via <code>VkDeviceObjectReservationCreateInfo</code>::pname:{objectnamecamelcase}RequestCount specified when <code>device</code> was created"
+ }
]
},
"VkFramebufferCreateInfo": {
@@ -10275,6 +10783,10 @@
{
"vuid": "VUID-VkFramebufferCreateInfo-flags-04538",
"text": " If <code>flags</code> does not include <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, and <code>renderPass</code> was not specified with non-zero view masks, each element of <code>pAttachments</code> that is used as a <a href=\"#primsrast-fragment-shading-rate-attachment\">fragment shading rate attachment</a> by <code>renderPass</code> <strong class=\"purple\">must</strong> have a <code>layerCount</code> that is either <code>1</code>, or greater than <code>layers</code>"
+ },
+ {
+ "vuid": "VUID-VkFramebufferCreateInfo-renderPass-08921",
+ "text": " If <code>renderPass</code> was specified with non-zero view masks, each element of <code>pAttachments</code> that is used as a <a href=\"#primsrast-fragment-shading-rate-attachment\">fragment shading rate attachment</a> <strong class=\"purple\">must</strong> have a <code>layerCount</code> equal to <code>1</code> or greater than the index of the most significant bit set in any of those view masks"
}
],
"(VK_KHR_fragment_shading_rate)": [
@@ -10391,6 +10903,12 @@
"text": " If <code>flags</code> includes <code>VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT</code>, the <code>usage</code> member of any element of the <code>pAttachmentImageInfos</code> member of a <a href=\"#VkFramebufferAttachmentsCreateInfo\">VkFramebufferAttachmentsCreateInfo</a> structure included in the <code>pNext</code> chain that refers to an attachment used as a fragment shading rate attachment by <code>renderPass</code> <strong class=\"purple\">must</strong> include <code>VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR</code>"
}
],
+ "(VKSC_VERSION_1_0)": [
+ {
+ "vuid": "VUID-VkFramebufferCreateInfo-attachmentCount-05060",
+ "text": " <code>attachmentCount</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#limits-maxFramebufferAttachments\">maxFramebufferAttachments</a>"
+ }
+ ],
"(VK_EXT_multisampled_render_to_single_sampled)": [
{
"vuid": "VUID-VkFramebufferCreateInfo-samples-06881",
@@ -10449,14 +10967,6 @@
"text": " All submitted commands that refer to <code>framebuffer</code> <strong class=\"purple\">must</strong> have completed execution"
},
{
- "vuid": "VUID-vkDestroyFramebuffer-framebuffer-00893",
- "text": " If <code>VkAllocationCallbacks</code> were provided when <code>framebuffer</code> was created, a compatible set of callbacks <strong class=\"purple\">must</strong> be provided here"
- },
- {
- "vuid": "VUID-vkDestroyFramebuffer-framebuffer-00894",
- "text": " If no <code>VkAllocationCallbacks</code> were provided when <code>framebuffer</code> was created, <code>pAllocator</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
"vuid": "VUID-vkDestroyFramebuffer-device-parameter",
"text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
},
@@ -10472,6 +10982,16 @@
"vuid": "VUID-vkDestroyFramebuffer-framebuffer-parent",
"text": " If <code>framebuffer</code> is a valid handle, it <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
}
+ ],
+ "!(VKSC_VERSION_1_0)": [
+ {
+ "vuid": "VUID-vkDestroyFramebuffer-framebuffer-00893",
+ "text": " If <code>VkAllocationCallbacks</code> were provided when <code>framebuffer</code> was created, a compatible set of callbacks <strong class=\"purple\">must</strong> be provided here"
+ },
+ {
+ "vuid": "VUID-vkDestroyFramebuffer-framebuffer-00894",
+ "text": " If no <code>VkAllocationCallbacks</code> were provided when <code>framebuffer</code> was created, <code>pAllocator</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+ }
]
},
"vkCmdBeginRenderPass": {
@@ -11921,19 +12441,19 @@
]
},
"vkCreateShaderModule": {
- "(VK_EXT_validation_cache)": [
+ "!(VKSC_VERSION_1_0)+(VK_EXT_validation_cache)": [
{
"vuid": "VUID-vkCreateShaderModule-pCreateInfo-06904",
"text": " If <code>pCreateInfo</code> is not <code>NULL</code>, <code>pCreateInfo-&gt;pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code> or a pointer to a <a href=\"#VkShaderModuleValidationCacheCreateInfoEXT\">VkShaderModuleValidationCacheCreateInfoEXT</a> structure"
}
],
- "!(VK_EXT_validation_cache)": [
+ "!(VKSC_VERSION_1_0)+!(VK_EXT_validation_cache)": [
{
"vuid": "VUID-vkCreateShaderModule-pCreateInfo-06905",
"text": " If <code>pCreateInfo</code> is not <code>NULL</code>, <code>pCreateInfo-&gt;pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
}
],
- "core": [
+ "!(VKSC_VERSION_1_0)": [
{
"vuid": "VUID-vkCreateShaderModule-device-parameter",
"text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
@@ -11953,7 +12473,7 @@
]
},
"VkShaderModuleCreateInfo": {
- "!(VK_NV_glsl_shader[]\n:prefixConditio)": [
+ "!(VKSC_VERSION_1_0)+!(VK_NV_glsl_shader[]\n:prefixConditio)": [
{
"vuid": "VUID-VkShaderModuleCreateInfo-codeSize-08735",
"text": " If pname:codeType is ename:VK_SHADER_CODE_TYPE_SPIRV_EXT, <code>codeSize</code> <strong class=\"purple\">must</strong> be a multiple of 4"
@@ -11987,7 +12507,7 @@
"text": " If pname:codeType is ename:VK_SHADER_CODE_TYPE_SPIRV_EXT, and <code>pCode</code> declares any of the SPIR-V extensions listed in the <a href=\"#spirvenv-extensions-table\">SPIR-V Environment</a> appendix, one of the corresponding requirements <strong class=\"purple\">must</strong> be satisfied"
}
],
- "(VK_NV_glsl_shader[]\n:prefixCondition: If pCode is a pointer to SPIR-V cod)": [
+ "!(VKSC_VERSION_1_0)+(VK_NV_glsl_shader[]\n:prefixCondition: If pCode is a pointer to SPIR-V cod)": [
{
"vuid": "VUID-VkShaderModuleCreateInfo-codeSize-08735",
"text": " If pname:codeType is ename:VK_SHADER_CODE_TYPE_SPIRV_EXT, <code>codeSize</code> <strong class=\"purple\">must</strong> be a multiple of 4"
@@ -12029,7 +12549,7 @@
"text": " If <code>pCode</code> is a pointer to GLSL code, it <strong class=\"purple\">must</strong> be valid GLSL code written to the <code>GL_KHR_vulkan_glsl</code> GLSL extension specification"
}
],
- "core": [
+ "!(VKSC_VERSION_1_0)": [
{
"vuid": "VUID-VkShaderModuleCreateInfo-codeSize-01085",
"text": " <code>codeSize</code> <strong class=\"purple\">must</strong> be greater than 0"
@@ -12049,7 +12569,7 @@
]
},
"VkShaderModuleValidationCacheCreateInfoEXT": {
- "(VK_EXT_validation_cache)": [
+ "!(VKSC_VERSION_1_0)+(VK_EXT_validation_cache)": [
{
"vuid": "VUID-VkShaderModuleValidationCacheCreateInfoEXT-sType-sType",
"text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT</code>"
@@ -12061,7 +12581,7 @@
]
},
"vkDestroyShaderModule": {
- "core": [
+ "!(VKSC_VERSION_1_0)": [
{
"vuid": "VUID-vkDestroyShaderModule-shaderModule-01092",
"text": " If <code>VkAllocationCallbacks</code> were provided when <code>shaderModule</code> was created, a compatible set of callbacks <strong class=\"purple\">must</strong> be provided here"
@@ -12367,7 +12887,7 @@
]
},
"vkCreateComputePipelines": {
- "core": [
+ "!(VKSC_VERSION_1_0)": [
{
"vuid": "VUID-vkCreateComputePipelines-flags-00695",
"text": " If the <code>flags</code> member of any element of <code>pCreateInfos</code> contains the <code>VK_PIPELINE_CREATE_DERIVATIVE_BIT</code> flag, and the <code>basePipelineIndex</code> member of that same element is not <code>-1</code>, <code>basePipelineIndex</code> <strong class=\"purple\">must</strong> be less than the index into <code>pCreateInfos</code> that corresponds to that element"
@@ -12375,8 +12895,26 @@
{
"vuid": "VUID-vkCreateComputePipelines-flags-00696",
"text": " If the <code>flags</code> member of any element of <code>pCreateInfos</code> contains the <code>VK_PIPELINE_CREATE_DERIVATIVE_BIT</code> flag, the base pipeline <strong class=\"purple\">must</strong> have been created with the <code>VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT</code> flag set"
+ }
+ ],
+ "(VKSC_VERSION_1_0)": [
+ {
+ "vuid": "VUID-vkCreateComputePipelines-pipelineCache-05022",
+ "text": " <code>pipelineCache</code> <strong class=\"purple\">must</strong> not be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
},
{
+ "vuid": "VUID-vkCreateComputePipelines-device-05068",
+ "text": " The number of {objectnameplural} currently allocated from <code>device</code> plus {objectcount} <strong class=\"purple\">must</strong> be less than or equal to the total number of {objectnameplural} requested via <code>VkDeviceObjectReservationCreateInfo</code>::pname:{objectnamecamelcase}RequestCount specified when <code>device</code> was created"
+ }
+ ],
+ "(VK_VERSION_1_3,VK_EXT_pipeline_creation_cache_control)": [
+ {
+ "vuid": "VUID-vkCreateComputePipelines-pipelineCache-02873",
+ "text": " If <code>pipelineCache</code> was created with <code>VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT</code>, host access to <code>pipelineCache</code> <strong class=\"purple\">must</strong> be <a href=\"#fundamentals-threadingbehavior\">externally synchronized</a>"
+ }
+ ],
+ "core": [
+ {
"vuid": "VUID-vkCreateComputePipelines-device-parameter",
"text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
},
@@ -12404,16 +12942,10 @@
"vuid": "VUID-vkCreateComputePipelines-pipelineCache-parent",
"text": " If <code>pipelineCache</code> is a valid handle, it <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
}
- ],
- "(VK_VERSION_1_3,VK_EXT_pipeline_creation_cache_control)": [
- {
- "vuid": "VUID-vkCreateComputePipelines-pipelineCache-02873",
- "text": " If <code>pipelineCache</code> was created with <code>VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT</code>, host access to <code>pipelineCache</code> <strong class=\"purple\">must</strong> be <a href=\"#fundamentals-threadingbehavior\">externally synchronized</a>"
- }
]
},
"VkComputePipelineCreateInfo": {
- "core": [
+ "!(VKSC_VERSION_1_0)": [
{
"vuid": "VUID-VkComputePipelineCreateInfo-flags-07984",
"text": " If <code>flags</code> contains the <code>VK_PIPELINE_CREATE_DERIVATIVE_BIT</code> flag, and <code>basePipelineIndex</code> is -1, <code>basePipelineHandle</code> <strong class=\"purple\">must</strong> be a valid handle to a compute <code>VkPipeline</code>"
@@ -12425,8 +12957,20 @@
{
"vuid": "VUID-VkComputePipelineCreateInfo-flags-07986",
"text": " If <code>flags</code> contains the <code>VK_PIPELINE_CREATE_DERIVATIVE_BIT</code> flag, <code>basePipelineIndex</code> <strong class=\"purple\">must</strong> be -1 or <code>basePipelineHandle</code> <strong class=\"purple\">must</strong> be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
+ }
+ ],
+ "(VKSC_VERSION_1_0)": [
+ {
+ "vuid": "VUID-VkComputePipelineCreateInfo-basePipelineHandle-05024",
+ "text": " <code>basePipelineHandle</code> <strong class=\"purple\">must</strong> be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
},
{
+ "vuid": "VUID-VkComputePipelineCreateInfo-basePipelineIndex-05025",
+ "text": " <code>basePipelineIndex</code> <strong class=\"purple\">must</strong> be zero"
+ }
+ ],
+ "core": [
+ {
"vuid": "VUID-VkComputePipelineCreateInfo-layout-07987",
"text": " If a push constant block is declared in a shader, a push constant range in <code>layout</code> <strong class=\"purple\">must</strong> match both the shader stage and range"
},
@@ -12579,10 +13123,6 @@
"text": " <code>stage</code> <strong class=\"purple\">must</strong> not be <code>VK_SHADER_STAGE_ALL_GRAPHICS</code>, or <code>VK_SHADER_STAGE_ALL</code>"
},
{
- "vuid": "VUID-VkPipelineShaderStageCreateInfo-pName-00707",
- "text": " <code>pName</code> <strong class=\"purple\">must</strong> be the name of an <code>OpEntryPoint</code> in <code>module</code> with an execution model that matches <code>stage</code>"
- },
- {
"vuid": "VUID-VkPipelineShaderStageCreateInfo-maxClipDistances-00708",
"text": " If the identified entry point includes any variable in its interface that is declared with the <code>ClipDistance</code> <code>BuiltIn</code> decoration, that variable <strong class=\"purple\">must</strong> not have an array size greater than <code>VkPhysicalDeviceLimits</code>::<code>maxClipDistances</code>"
},
@@ -12679,6 +13219,22 @@
"text": " If the <a href=\"#features-clustercullingShader\"><code>clustercullingShader</code></a> feature is not enabled, <code>stage</code> <strong class=\"purple\">must</strong> not be <code>VK_SHADER_STAGE_CLUSTER_CULLING_BIT_HUAWEI</code>"
}
],
+ "(VKSC_VERSION_1_0)": [
+ {
+ "vuid": "VUID-VkPipelineShaderStageCreateInfo-module-05026",
+ "text": " <code>module</code> <strong class=\"purple\">must</strong> be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>."
+ },
+ {
+ "vuid": "VUID-VkPipelineShaderStageCreateInfo-pName-05027",
+ "text": " If <code>pName</code> is not <code>NULL</code>, it <strong class=\"purple\">must</strong> be the name of an <code>OpEntryPoint</code> in the SPIR-V shader module used for offline compilation of this pipeline with an execution model that matches <code>stage</code>"
+ }
+ ],
+ "!(VKSC_VERSION_1_0)": [
+ {
+ "vuid": "VUID-VkPipelineShaderStageCreateInfo-pName-00707",
+ "text": " <code>pName</code> <strong class=\"purple\">must</strong> be the name of an <code>OpEntryPoint</code> in <code>module</code> with an execution model that matches <code>stage</code>"
+ }
+ ],
"(VK_EXT_shader_stencil_export)": [
{
"vuid": "VUID-VkPipelineShaderStageCreateInfo-stage-06686",
@@ -12909,7 +13465,7 @@
]
},
"vkCreateGraphicsPipelines": {
- "core": [
+ "!(VKSC_VERSION_1_0)": [
{
"vuid": "VUID-vkCreateGraphicsPipelines-flags-00720",
"text": " If the <code>flags</code> member of any element of <code>pCreateInfos</code> contains the <code>VK_PIPELINE_CREATE_DERIVATIVE_BIT</code> flag, and the <code>basePipelineIndex</code> member of that same element is not <code>-1</code>, <code>basePipelineIndex</code> <strong class=\"purple\">must</strong> be less than the index into <code>pCreateInfos</code> that corresponds to that element"
@@ -12917,8 +13473,26 @@
{
"vuid": "VUID-vkCreateGraphicsPipelines-flags-00721",
"text": " If the <code>flags</code> member of any element of <code>pCreateInfos</code> contains the <code>VK_PIPELINE_CREATE_DERIVATIVE_BIT</code> flag, the base pipeline <strong class=\"purple\">must</strong> have been created with the <code>VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT</code> flag set"
+ }
+ ],
+ "(VKSC_VERSION_1_0)": [
+ {
+ "vuid": "VUID-vkCreateGraphicsPipelines-pipelineCache-05031",
+ "text": " <code>pipelineCache</code> <strong class=\"purple\">must</strong> not be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
},
{
+ "vuid": "VUID-vkCreateGraphicsPipelines-device-05068",
+ "text": " The number of {objectnameplural} currently allocated from <code>device</code> plus {objectcount} <strong class=\"purple\">must</strong> be less than or equal to the total number of {objectnameplural} requested via <code>VkDeviceObjectReservationCreateInfo</code>::pname:{objectnamecamelcase}RequestCount specified when <code>device</code> was created"
+ }
+ ],
+ "(VK_VERSION_1_3,VK_EXT_pipeline_creation_cache_control)": [
+ {
+ "vuid": "VUID-vkCreateGraphicsPipelines-pipelineCache-02876",
+ "text": " If <code>pipelineCache</code> was created with <code>VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT</code>, host access to <code>pipelineCache</code> <strong class=\"purple\">must</strong> be <a href=\"#fundamentals-threadingbehavior\">externally synchronized</a>"
+ }
+ ],
+ "core": [
+ {
"vuid": "VUID-vkCreateGraphicsPipelines-device-parameter",
"text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
},
@@ -12946,16 +13520,10 @@
"vuid": "VUID-vkCreateGraphicsPipelines-pipelineCache-parent",
"text": " If <code>pipelineCache</code> is a valid handle, it <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
}
- ],
- "(VK_VERSION_1_3,VK_EXT_pipeline_creation_cache_control)": [
- {
- "vuid": "VUID-vkCreateGraphicsPipelines-pipelineCache-02876",
- "text": " If <code>pipelineCache</code> was created with <code>VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT</code>, host access to <code>pipelineCache</code> <strong class=\"purple\">must</strong> be <a href=\"#fundamentals-threadingbehavior\">externally synchronized</a>"
- }
]
},
"VkGraphicsPipelineCreateInfo": {
- "core": [
+ "!(VKSC_VERSION_1_0)": [
{
"vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-07984",
"text": " If <code>flags</code> contains the <code>VK_PIPELINE_CREATE_DERIVATIVE_BIT</code> flag, and <code>basePipelineIndex</code> is -1, <code>basePipelineHandle</code> <strong class=\"purple\">must</strong> be a valid handle to a graphics <code>VkPipeline</code>"
@@ -12967,8 +13535,20 @@
{
"vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-07986",
"text": " If <code>flags</code> contains the <code>VK_PIPELINE_CREATE_DERIVATIVE_BIT</code> flag, <code>basePipelineIndex</code> <strong class=\"purple\">must</strong> be -1 or <code>basePipelineHandle</code> <strong class=\"purple\">must</strong> be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
+ }
+ ],
+ "(VKSC_VERSION_1_0)": [
+ {
+ "vuid": "VUID-VkGraphicsPipelineCreateInfo-basePipelineHandle-05024",
+ "text": " <code>basePipelineHandle</code> <strong class=\"purple\">must</strong> be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
},
{
+ "vuid": "VUID-VkGraphicsPipelineCreateInfo-basePipelineIndex-05025",
+ "text": " <code>basePipelineIndex</code> <strong class=\"purple\">must</strong> be zero"
+ }
+ ],
+ "core": [
+ {
"vuid": "VUID-VkGraphicsPipelineCreateInfo-layout-07987",
"text": " If a push constant block is declared in a shader, a push constant range in <code>layout</code> <strong class=\"purple\">must</strong> match both the shader stage and range"
},
@@ -14547,7 +15127,7 @@
]
},
"vkCreateRayTracingPipelinesNV": {
- "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)": [
+ "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)+!(VKSC_VERSION_1_0)": [
{
"vuid": "VUID-vkCreateRayTracingPipelinesNV-flags-03415",
"text": " If the <code>flags</code> member of any element of <code>pCreateInfos</code> contains the <code>VK_PIPELINE_CREATE_DERIVATIVE_BIT</code> flag, and the <code>basePipelineIndex</code> member of that same element is not <code>-1</code>, <code>basePipelineIndex</code> <strong class=\"purple\">must</strong> be less than the index into <code>pCreateInfos</code> that corresponds to that element"
@@ -14555,7 +15135,27 @@
{
"vuid": "VUID-vkCreateRayTracingPipelinesNV-flags-03416",
"text": " If the <code>flags</code> member of any element of <code>pCreateInfos</code> contains the <code>VK_PIPELINE_CREATE_DERIVATIVE_BIT</code> flag, the base pipeline <strong class=\"purple\">must</strong> have been created with the <code>VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT</code> flag set"
- },
+ }
+ ],
+ "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)+!(VKSC_VERSION_1_0)+(VK_VERSION_1_1,VK_KHR_device_group)": [
+ {
+ "vuid": "VUID-vkCreateRayTracingPipelinesNV-flags-03816",
+ "text": " <code>flags</code> <strong class=\"purple\">must</strong> not contain the <code>VK_PIPELINE_CREATE_DISPATCH_BASE</code> flag"
+ }
+ ],
+ "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)+(VK_VERSION_1_3,VK_EXT_pipeline_creation_cache_control)": [
+ {
+ "vuid": "VUID-vkCreateRayTracingPipelinesNV-pipelineCache-02903",
+ "text": " If <code>pipelineCache</code> was created with <code>VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT</code>, host access to <code>pipelineCache</code> <strong class=\"purple\">must</strong> be <a href=\"#fundamentals-threadingbehavior\">externally synchronized</a>"
+ }
+ ],
+ "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)+(VKSC_VERSION_1_0)": [
+ {
+ "vuid": "VUID-vkCreateRayTracingPipelinesNV-pipelineCache-05035",
+ "text": " <code>pipelineCache</code> <strong class=\"purple\">must</strong> not be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
+ }
+ ],
+ "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)": [
{
"vuid": "VUID-vkCreateRayTracingPipelinesNV-device-parameter",
"text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
@@ -14584,22 +15184,10 @@
"vuid": "VUID-vkCreateRayTracingPipelinesNV-pipelineCache-parent",
"text": " If <code>pipelineCache</code> is a valid handle, it <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
}
- ],
- "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)+(VK_VERSION_1_1,VK_KHR_device_group)": [
- {
- "vuid": "VUID-vkCreateRayTracingPipelinesNV-flags-03816",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> not contain the <code>VK_PIPELINE_CREATE_DISPATCH_BASE</code> flag"
- }
- ],
- "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)+(VK_VERSION_1_3,VK_EXT_pipeline_creation_cache_control)": [
- {
- "vuid": "VUID-vkCreateRayTracingPipelinesNV-pipelineCache-02903",
- "text": " If <code>pipelineCache</code> was created with <code>VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT</code>, host access to <code>pipelineCache</code> <strong class=\"purple\">must</strong> be <a href=\"#fundamentals-threadingbehavior\">externally synchronized</a>"
- }
]
},
"vkCreateRayTracingPipelinesKHR": {
- "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)": [
+ "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+!(VKSC_VERSION_1_0)": [
{
"vuid": "VUID-vkCreateRayTracingPipelinesKHR-flags-03415",
"text": " If the <code>flags</code> member of any element of <code>pCreateInfos</code> contains the <code>VK_PIPELINE_CREATE_DERIVATIVE_BIT</code> flag, and the <code>basePipelineIndex</code> member of that same element is not <code>-1</code>, <code>basePipelineIndex</code> <strong class=\"purple\">must</strong> be less than the index into <code>pCreateInfos</code> that corresponds to that element"
@@ -14607,7 +15195,21 @@
{
"vuid": "VUID-vkCreateRayTracingPipelinesKHR-flags-03416",
"text": " If the <code>flags</code> member of any element of <code>pCreateInfos</code> contains the <code>VK_PIPELINE_CREATE_DERIVATIVE_BIT</code> flag, the base pipeline <strong class=\"purple\">must</strong> have been created with the <code>VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT</code> flag set"
- },
+ }
+ ],
+ "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+!(VKSC_VERSION_1_0)+(VK_VERSION_1_1,VK_KHR_device_group)": [
+ {
+ "vuid": "VUID-vkCreateRayTracingPipelinesKHR-flags-03816",
+ "text": " <code>flags</code> <strong class=\"purple\">must</strong> not contain the <code>VK_PIPELINE_CREATE_DISPATCH_BASE</code> flag"
+ }
+ ],
+ "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_VERSION_1_3,VK_EXT_pipeline_creation_cache_control)": [
+ {
+ "vuid": "VUID-vkCreateRayTracingPipelinesKHR-pipelineCache-02903",
+ "text": " If <code>pipelineCache</code> was created with <code>VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT</code>, host access to <code>pipelineCache</code> <strong class=\"purple\">must</strong> be <a href=\"#fundamentals-threadingbehavior\">externally synchronized</a>"
+ }
+ ],
+ "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)": [
{
"vuid": "VUID-vkCreateRayTracingPipelinesKHR-deferredOperation-03677",
"text": " If <code>deferredOperation</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, it <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDeferredOperationKHR\">VkDeferredOperationKHR</a> object"
@@ -14657,16 +15259,10 @@
"text": " If <code>pipelineCache</code> is a valid handle, it <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
}
],
- "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_VERSION_1_1,VK_KHR_device_group)": [
- {
- "vuid": "VUID-vkCreateRayTracingPipelinesKHR-flags-03816",
- "text": " <code>flags</code> <strong class=\"purple\">must</strong> not contain the <code>VK_PIPELINE_CREATE_DISPATCH_BASE</code> flag"
- }
- ],
- "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_VERSION_1_3,VK_EXT_pipeline_creation_cache_control)": [
+ "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VKSC_VERSION_1_0)": [
{
- "vuid": "VUID-vkCreateRayTracingPipelinesKHR-pipelineCache-02903",
- "text": " If <code>pipelineCache</code> was created with <code>VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT</code>, host access to <code>pipelineCache</code> <strong class=\"purple\">must</strong> be <a href=\"#fundamentals-threadingbehavior\">externally synchronized</a>"
+ "vuid": "VUID-vkCreateRayTracingPipelinesKHR-pipelineCache-05036",
+ "text": " <code>pipelineCache</code> <strong class=\"purple\">must</strong> not be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
}
],
"(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VK_VERSION_1_3,VK_EXT_pipeline_creation_cache_control)+(VK_KHR_deferred_host_operations)": [
@@ -14677,7 +15273,7 @@
]
},
"VkRayTracingPipelineCreateInfoNV": {
- "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)": [
+ "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)+!(VKSC_VERSION_1_0)": [
{
"vuid": "VUID-VkRayTracingPipelineCreateInfoNV-flags-07984",
"text": " If <code>flags</code> contains the <code>VK_PIPELINE_CREATE_DERIVATIVE_BIT</code> flag, and <code>basePipelineIndex</code> is -1, <code>basePipelineHandle</code> <strong class=\"purple\">must</strong> be a valid handle to a ray tracing <code>VkPipeline</code>"
@@ -14689,8 +15285,28 @@
{
"vuid": "VUID-VkRayTracingPipelineCreateInfoNV-flags-07986",
"text": " If <code>flags</code> contains the <code>VK_PIPELINE_CREATE_DERIVATIVE_BIT</code> flag, <code>basePipelineIndex</code> <strong class=\"purple\">must</strong> be -1 or <code>basePipelineHandle</code> <strong class=\"purple\">must</strong> be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
+ }
+ ],
+ "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)+(VKSC_VERSION_1_0)": [
+ {
+ "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-basePipelineHandle-05024",
+ "text": " <code>basePipelineHandle</code> <strong class=\"purple\">must</strong> be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
+ },
+ {
+ "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-basePipelineIndex-05025",
+ "text": " <code>basePipelineIndex</code> <strong class=\"purple\">must</strong> be zero"
+ },
+ {
+ "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-basePipelineHandle-05038",
+ "text": " <code>basePipelineHandle</code> <strong class=\"purple\">must</strong> be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
},
{
+ "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-basePipelineIndex-05039",
+ "text": " <code>basePipelineIndex</code> <strong class=\"purple\">must</strong> be zero"
+ }
+ ],
+ "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)": [
+ {
"vuid": "VUID-VkRayTracingPipelineCreateInfoNV-layout-07987",
"text": " If a push constant block is declared in a shader, a push constant range in <code>layout</code> <strong class=\"purple\">must</strong> match both the shader stage and range"
},
@@ -14853,7 +15469,7 @@
]
},
"VkRayTracingPipelineCreateInfoKHR": {
- "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)": [
+ "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+!(VKSC_VERSION_1_0)": [
{
"vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-flags-07984",
"text": " If <code>flags</code> contains the <code>VK_PIPELINE_CREATE_DERIVATIVE_BIT</code> flag, and <code>basePipelineIndex</code> is -1, <code>basePipelineHandle</code> <strong class=\"purple\">must</strong> be a valid handle to a ray tracing <code>VkPipeline</code>"
@@ -14865,8 +15481,28 @@
{
"vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-flags-07986",
"text": " If <code>flags</code> contains the <code>VK_PIPELINE_CREATE_DERIVATIVE_BIT</code> flag, <code>basePipelineIndex</code> <strong class=\"purple\">must</strong> be -1 or <code>basePipelineHandle</code> <strong class=\"purple\">must</strong> be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
+ }
+ ],
+ "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)+(VKSC_VERSION_1_0)": [
+ {
+ "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-basePipelineHandle-05024",
+ "text": " <code>basePipelineHandle</code> <strong class=\"purple\">must</strong> be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
+ },
+ {
+ "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-basePipelineIndex-05025",
+ "text": " <code>basePipelineIndex</code> <strong class=\"purple\">must</strong> be zero"
+ },
+ {
+ "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-basePipelineHandle-05041",
+ "text": " <code>basePipelineHandle</code> <strong class=\"purple\">must</strong> be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
},
{
+ "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-basePipelineIndex-05042",
+ "text": " <code>basePipelineIndex</code> <strong class=\"purple\">must</strong> be zero"
+ }
+ ],
+ "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)": [
+ {
"vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-layout-07987",
"text": " If a push constant block is declared in a shader, a push constant range in <code>layout</code> <strong class=\"purple\">must</strong> match both the shader stage and range"
},
@@ -15391,14 +16027,6 @@
"text": " All submitted commands that refer to <code>pipeline</code> <strong class=\"purple\">must</strong> have completed execution"
},
{
- "vuid": "VUID-vkDestroyPipeline-pipeline-00766",
- "text": " If <code>VkAllocationCallbacks</code> were provided when <code>pipeline</code> was created, a compatible set of callbacks <strong class=\"purple\">must</strong> be provided here"
- },
- {
- "vuid": "VUID-vkDestroyPipeline-pipeline-00767",
- "text": " If no <code>VkAllocationCallbacks</code> were provided when <code>pipeline</code> was created, <code>pAllocator</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
"vuid": "VUID-vkDestroyPipeline-device-parameter",
"text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
},
@@ -15414,9 +16042,25 @@
"vuid": "VUID-vkDestroyPipeline-pipeline-parent",
"text": " If <code>pipeline</code> is a valid handle, it <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
}
+ ],
+ "!(VKSC_VERSION_1_0)": [
+ {
+ "vuid": "VUID-vkDestroyPipeline-pipeline-00766",
+ "text": " If <code>VkAllocationCallbacks</code> were provided when <code>pipeline</code> was created, a compatible set of callbacks <strong class=\"purple\">must</strong> be provided here"
+ },
+ {
+ "vuid": "VUID-vkDestroyPipeline-pipeline-00767",
+ "text": " If no <code>VkAllocationCallbacks</code> were provided when <code>pipeline</code> was created, <code>pAllocator</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+ }
]
},
"vkCreatePipelineCache": {
+ "(VKSC_VERSION_1_0)+(VKSC_VERSION_1_0)": [
+ {
+ "vuid": "VUID-vkCreatePipelineCache-device-05068",
+ "text": " The number of {objectnameplural} currently allocated from <code>device</code> plus {objectcount} <strong class=\"purple\">must</strong> be less than or equal to the total number of {objectnameplural} requested via <code>VkDeviceObjectReservationCreateInfo</code>::pname:{objectnamecamelcase}RequestCount specified when <code>device</code> was created"
+ }
+ ],
"core": [
{
"vuid": "VUID-vkCreatePipelineCache-device-parameter",
@@ -15437,7 +16081,7 @@
]
},
"VkPipelineCacheCreateInfo": {
- "core": [
+ "!(VKSC_VERSION_1_0)": [
{
"vuid": "VUID-VkPipelineCacheCreateInfo-initialDataSize-00768",
"text": " If <code>initialDataSize</code> is not <code>0</code>, it <strong class=\"purple\">must</strong> be equal to the size of <code>pInitialData</code>, as returned by <code>vkGetPipelineCacheData</code> when <code>pInitialData</code> was originally retrieved"
@@ -15445,8 +16089,34 @@
{
"vuid": "VUID-VkPipelineCacheCreateInfo-initialDataSize-00769",
"text": " If <code>initialDataSize</code> is not <code>0</code>, <code>pInitialData</code> <strong class=\"purple\">must</strong> have been retrieved from a previous call to <code>vkGetPipelineCacheData</code>"
+ }
+ ],
+ "(VK_VERSION_1_3,VK_EXT_pipeline_creation_cache_control)": [
+ {
+ "vuid": "VUID-VkPipelineCacheCreateInfo-pipelineCreationCacheControl-02892",
+ "text": " If the <a href=\"#features-pipelineCreationCacheControl\"><code>pipelineCreationCacheControl</code></a> feature is not enabled, <code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT</code>"
+ }
+ ],
+ "(VKSC_VERSION_1_0)": [
+ {
+ "vuid": "VUID-VkPipelineCacheCreateInfo-flags-05043",
+ "text": " <code>flags</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_CACHE_CREATE_READ_ONLY_BIT</code>"
+ },
+ {
+ "vuid": "VUID-VkPipelineCacheCreateInfo-flags-05044",
+ "text": " <code>flags</code> <strong class=\"purple\">must</strong> include <code>VK_PIPELINE_CACHE_CREATE_USE_APPLICATION_STORAGE_BIT</code>"
+ },
+ {
+ "vuid": "VUID-VkPipelineCacheCreateInfo-pInitialData-05045",
+ "text": " The contents of this structure and data pointed to by <code>pInitialData</code> <strong class=\"purple\">must</strong> be the same as specified in one of the <code>VkDeviceObjectReservationCreateInfo</code>::<code>pPipelineCacheCreateInfos</code> structures when the device was created"
},
{
+ "vuid": "VUID-VkPipelineCacheCreateInfo-pInitialData-05139",
+ "text": " The pipeline cache data pointed to by <code>pInitialData</code> <strong class=\"purple\">must</strong> not contain any pipelines with duplicate pipeline identifiers."
+ }
+ ],
+ "core": [
+ {
"vuid": "VUID-VkPipelineCacheCreateInfo-sType-sType",
"text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO</code>"
},
@@ -15462,16 +16132,10 @@
"vuid": "VUID-VkPipelineCacheCreateInfo-pInitialData-parameter",
"text": " If <code>initialDataSize</code> is not <code>0</code>, <code>pInitialData</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>initialDataSize</code> bytes"
}
- ],
- "(VK_VERSION_1_3,VK_EXT_pipeline_creation_cache_control)": [
- {
- "vuid": "VUID-VkPipelineCacheCreateInfo-pipelineCreationCacheControl-02892",
- "text": " If the <a href=\"#features-pipelineCreationCacheControl\"><code>pipelineCreationCacheControl</code></a> feature is not enabled, <code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT</code>"
- }
]
},
"vkMergePipelineCaches": {
- "core": [
+ "!(VKSC_VERSION_1_0)": [
{
"vuid": "VUID-vkMergePipelineCaches-dstCache-00770",
"text": " <code>dstCache</code> <strong class=\"purple\">must</strong> not appear in the list of source caches"
@@ -15503,7 +16167,7 @@
]
},
"vkGetPipelineCacheData": {
- "core": [
+ "!(VKSC_VERSION_1_0)": [
{
"vuid": "VUID-vkGetPipelineCacheData-device-parameter",
"text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
@@ -15527,7 +16191,7 @@
]
},
"VkPipelineCacheHeaderVersionOne": {
- "core": [
+ "!(VKSC_VERSION_1_0)": [
{
"vuid": "VUID-VkPipelineCacheHeaderVersionOne-headerSize-04967",
"text": " <code>headerSize</code> <strong class=\"purple\">must</strong> be 32"
@@ -15535,15 +16199,83 @@
{
"vuid": "VUID-VkPipelineCacheHeaderVersionOne-headerVersion-04968",
"text": " <code>headerVersion</code> <strong class=\"purple\">must</strong> be <code>VK_PIPELINE_CACHE_HEADER_VERSION_ONE</code>"
+ }
+ ],
+ "(VKSC_VERSION_1_0)": [
+ {
+ "vuid": "VUID-VkPipelineCacheHeaderVersionOne-headerSize-05075",
+ "text": " <code>headerSize</code> <strong class=\"purple\">must</strong> be 56"
},
{
+ "vuid": "VUID-VkPipelineCacheHeaderVersionOne-headerVersion-05076",
+ "text": " <code>headerVersion</code> <strong class=\"purple\">must</strong> be <code>VK_PIPELINE_CACHE_HEADER_VERSION_SAFETY_CRITICAL_ONE</code>"
+ }
+ ],
+ "core": [
+ {
"vuid": "VUID-VkPipelineCacheHeaderVersionOne-headerVersion-parameter",
"text": " <code>headerVersion</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipelineCacheHeaderVersion\">VkPipelineCacheHeaderVersion</a> value"
}
]
},
+ "VkPipelineCacheHeaderVersionSafetyCriticalOne": {
+ "(VKSC_VERSION_1_0)": [
+ {
+ "vuid": "VUID-VkPipelineCacheHeaderVersionSafetyCriticalOne-validationVersion-05077",
+ "text": " <code>validationVersion</code> <strong class=\"purple\">must</strong> be <code>VK_PIPELINE_CACHE_VALIDATION_VERSION_SAFETY_CRITICAL_ONE</code>"
+ },
+ {
+ "vuid": "VUID-VkPipelineCacheHeaderVersionSafetyCriticalOne-pipelineIndexStride-05078",
+ "text": " <code>pipelineIndexStride</code> <strong class=\"purple\">must</strong> be greater than or equal to 56 (the size of the <code>VkPipelineCacheSafetyCriticalIndexEntry</code> structure)"
+ },
+ {
+ "vuid": "VUID-VkPipelineCacheHeaderVersionSafetyCriticalOne-pipelineIndexOffset-05079",
+ "text": " <span class=\"eq\"><code>pipelineIndexOffset</code> + <code>pipelineIndexCount</code> {times} <code>pipelineIndexStride</code></span> <strong class=\"purple\">must</strong> not exceed the size of the pipeline cache"
+ }
+ ]
+ },
+ "VkPipelineCacheSafetyCriticalIndexEntry": {
+ "(VKSC_VERSION_1_0)": [
+ {
+ "vuid": "VUID-VkPipelineCacheSafetyCriticalIndexEntry-jsonSize-05080",
+ "text": " if <code>jsonSize</code> is 0, <code>jsonOffset</code> <strong class=\"purple\">must</strong> be 0"
+ },
+ {
+ "vuid": "VUID-VkPipelineCacheSafetyCriticalIndexEntry-jsonSize-05081",
+ "text": " if <code>jsonSize</code> is 0, <code>stageIndexCount</code> <strong class=\"purple\">must</strong> be 0"
+ },
+ {
+ "vuid": "VUID-VkPipelineCacheSafetyCriticalIndexEntry-stageIndexCount-05082",
+ "text": " if <code>stageIndexCount</code> is 0, <code>stageIndexOffset</code> and <code>stageIndexStride</code> <strong class=\"purple\">must</strong> be 0"
+ },
+ {
+ "vuid": "VUID-VkPipelineCacheSafetyCriticalIndexEntry-stageIndexCount-05083",
+ "text": " if <code>stageIndexCount</code> is not 0, <code>stageIndexStride</code> <strong class=\"purple\">must</strong> be greater than or equal to 16 (the size of the <code>VkPipelineCacheStageValidationIndexEntry</code> structure)"
+ },
+ {
+ "vuid": "VUID-VkPipelineCacheSafetyCriticalIndexEntry-stageIndexCount-05084",
+ "text": " if <code>stageIndexCount</code> is not 0, <span class=\"eq\"><code>stageIndexOffset</code> &#43; <code>stageIndexCount</code> {times} <code>stageIndexStride</code></span> <strong class=\"purple\">must</strong> not exceed the size of the pipeline cache"
+ }
+ ]
+ },
+ "VkPipelineCacheStageValidationIndexEntry": {
+ "(VKSC_VERSION_1_0)": [
+ {
+ "vuid": "VUID-VkPipelineCacheStageValidationIndexEntry-codeSize-05085",
+ "text": " <code>codeSize</code> <strong class=\"purple\">must</strong> be greater than 0"
+ },
+ {
+ "vuid": "VUID-VkPipelineCacheStageValidationIndexEntry-codeSize-05086",
+ "text": " <code>codeSize</code> <strong class=\"purple\">must</strong> be a multiple of 4"
+ },
+ {
+ "vuid": "VUID-VkPipelineCacheStageValidationIndexEntry-codeOffset-05087",
+ "text": " <span class=\"eq\"><code>codeOffset</code> &#43; <code>codeSize</code></span> <strong class=\"purple\">must</strong> not exceed the size of the pipeline cache"
+ }
+ ]
+ },
"vkDestroyPipelineCache": {
- "core": [
+ "!(VKSC_VERSION_1_0)": [
{
"vuid": "VUID-vkDestroyPipelineCache-pipelineCache-00771",
"text": " If <code>VkAllocationCallbacks</code> were provided when <code>pipelineCache</code> was created, a compatible set of callbacks <strong class=\"purple\">must</strong> be provided here"
@@ -15551,7 +16283,9 @@
{
"vuid": "VUID-vkDestroyPipelineCache-pipelineCache-00772",
"text": " If no <code>VkAllocationCallbacks</code> were provided when <code>pipelineCache</code> was created, <code>pAllocator</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
+ }
+ ],
+ "core": [
{
"vuid": "VUID-vkDestroyPipelineCache-device-parameter",
"text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
@@ -15570,6 +16304,22 @@
}
]
},
+ "VkPipelineOfflineCreateInfo": {
+ "(VKSC_VERSION_1_0)": [
+ {
+ "vuid": "VUID-VkPipelineOfflineCreateInfo-poolEntrySize-05028",
+ "text": " <code>poolEntrySize</code> <strong class=\"purple\">must</strong> be one of the sizes requested via <code>VkPipelinePoolSize</code> when the device was created"
+ },
+ {
+ "vuid": "VUID-VkPipelineOfflineCreateInfo-recyclePipelineMemory-05029",
+ "text": " If <code>VkPhysicalDeviceVulkanSC10Properties</code>::<code>recyclePipelineMemory</code> is <code>VK_TRUE</code>, the number of currently existing pipelines created with this same value of <code>poolEntrySize</code> plus 1 <strong class=\"purple\">must</strong> be less than or equal to the sum of the <code>VkPipelinePoolSize</code>::<code>poolEntryCount</code> values with the same value of <code>poolEntrySize</code>"
+ },
+ {
+ "vuid": "VUID-VkPipelineOfflineCreateInfo-recyclePipelineMemory-05030",
+ "text": " If <code>VkPhysicalDeviceVulkanSC10Properties</code>::<code>recyclePipelineMemory</code> is <code>VK_FALSE</code>, the total number of pipelines ever created with this same value of <code>poolEntrySize</code> plus 1 <strong class=\"purple\">must</strong> be less than or equal to the sum of the <code>VkPipelinePoolSize</code>::<code>poolEntryCount</code> values with the same value of <code>poolEntrySize</code>"
+ }
+ ]
+ },
"VkSpecializationInfo": {
"core": [
{
@@ -16085,7 +16835,7 @@
]
},
"VkAllocationCallbacks": {
- "core": [
+ "!(VKSC_VERSION_1_0)": [
{
"vuid": "VUID-VkAllocationCallbacks-pfnAllocation-00632",
"text": " <code>pfnAllocation</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid user-defined <a href=\"#PFN_vkAllocationFunction\">PFN_vkAllocationFunction</a>"
@@ -16188,16 +16938,22 @@
"vuid": "VUID-vkAllocateMemory-deviceCoherentMemory-02790",
"text": " If the <a href=\"#features-deviceCoherentMemory\"><code>deviceCoherentMemory</code></a> feature is not enabled, <code>pAllocateInfo-&gt;memoryTypeIndex</code> <strong class=\"purple\">must</strong> not identify a memory type supporting <code>VK_MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD</code>"
}
+ ],
+ "(VKSC_VERSION_1_0)": [
+ {
+ "vuid": "VUID-vkAllocateMemory-device-05068",
+ "text": " The number of {objectnameplural} currently allocated from <code>device</code> plus {objectcount} <strong class=\"purple\">must</strong> be less than or equal to the total number of {objectnameplural} requested via <code>VkDeviceObjectReservationCreateInfo</code>::pname:{objectnamecamelcase}RequestCount specified when <code>device</code> was created"
+ }
]
},
"VkMemoryAllocateInfo": {
- "!(VK_KHR_external_memory_win32,VK_KHR_external_memory_fd,VK_EXT_external_memory_host,VK_ANDROID_external_memory_android_hardware_buffer,VK_FUCHSIA_external_memory)": [
+ "!(VK_KHR_external_memory_win32,VK_KHR_external_memory_fd,VK_EXT_external_memory_host,VK_ANDROID_external_memory_android_hardware_buffer,VK_FUCHSIA_external_memory,VK_NV_external_memory_sci_buf)": [
{
"vuid": "VUID-VkMemoryAllocateInfo-allocationSize-00638",
"text": " <code>allocationSize</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
}
],
- "(VK_KHR_external_memory_win32,VK_KHR_external_memory_fd,VK_EXT_external_memory_host,VK_ANDROID_external_memory_android_hardware_buffer,VK_FUCHSIA_external_memory)": [
+ "(VK_KHR_external_memory_win32,VK_KHR_external_memory_fd,VK_EXT_external_memory_host,VK_ANDROID_external_memory_android_hardware_buffer,VK_FUCHSIA_external_memory,VK_NV_external_memory_sci_buf)": [
{
"vuid": "VUID-VkMemoryAllocateInfo-None-06657",
"text": " The parameters <strong class=\"purple\">must</strong> not define more than one <a href=\"#memory-import-operation\">import operation</a>"
@@ -16207,13 +16963,13 @@
"text": " If the parameters do not define an <a href=\"#memory-import-operation\">import or export operation</a>, <code>allocationSize</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
}
],
- "(VK_KHR_external_memory_win32,VK_KHR_external_memory_fd,VK_EXT_external_memory_host,VK_ANDROID_external_memory_android_hardware_buffer,VK_FUCHSIA_external_memory)+!(VK_ANDROID_external_memory_android_hardware_buffer)": [
+ "(VK_KHR_external_memory_win32,VK_KHR_external_memory_fd,VK_EXT_external_memory_host,VK_ANDROID_external_memory_android_hardware_buffer,VK_FUCHSIA_external_memory,VK_NV_external_memory_sci_buf)+!(VK_ANDROID_external_memory_android_hardware_buffer)": [
{
"vuid": "VUID-VkMemoryAllocateInfo-allocationSize-07898",
"text": " If the parameters define an export operation, <code>allocationSize</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
}
],
- "(VK_KHR_external_memory_win32,VK_KHR_external_memory_fd,VK_EXT_external_memory_host,VK_ANDROID_external_memory_android_hardware_buffer,VK_FUCHSIA_external_memory)+(VK_ANDROID_external_memory_android_hardware_buffer)": [
+ "(VK_KHR_external_memory_win32,VK_KHR_external_memory_fd,VK_EXT_external_memory_host,VK_ANDROID_external_memory_android_hardware_buffer,VK_FUCHSIA_external_memory,VK_NV_external_memory_sci_buf)+(VK_ANDROID_external_memory_android_hardware_buffer)": [
{
"vuid": "VUID-VkMemoryAllocateInfo-allocationSize-07899",
"text": " If the parameters define an export operation and the handle type is not <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID</code>, <code>allocationSize</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>"
@@ -16417,6 +17173,20 @@
"text": " If the parameters define an import operation and the external handle type is <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA</code>, the value of <code>allocationSize</code> <strong class=\"purple\">must</strong> be less than or equal to the size of the VMO as determined by <code>zx_vmo_get_size</code>(<code>handle</code>) where <code>handle</code> is the VMO handle to the imported external memory"
}
],
+ "(VK_NV_external_memory_sci_buf)": [
+ {
+ "vuid": "VUID-VkMemoryAllocateInfo-pNext-05097",
+ "text": " If the <code>pNext</code> chain includes a <code>VkExportMemorySciBufInfoNV</code> structure, <code>VkPhysicalDeviceExternalMemorySciBufFeaturesNV</code>::<code>sciBufExport</code> <strong class=\"purple\">must</strong> be enabled"
+ },
+ {
+ "vuid": "VUID-VkMemoryAllocateInfo-pNext-05098",
+ "text": " If the <code>pNext</code> chain includes a <code>VkImportMemorySciBufInfoNV</code> structure, <code>VkPhysicalDeviceExternalMemorySciBufFeaturesNV</code>::<code>sciBufImport</code> <strong class=\"purple\">must</strong> be enabled"
+ },
+ {
+ "vuid": "VUID-VkMemoryAllocateInfo-memoryTypeIndex-05099",
+ "text": " If the parameters define an import operation and the external handle is a <code>NvSciBufObj</code>, the value of <code>memoryTypeIndex</code> <strong class=\"purple\">must</strong> be one of those returned by <code>vkGetPhysicalDeviceExternalMemorySciBufPropertiesNV</code>"
+ }
+ ],
"(VK_EXT_metal_objects)": [
{
"vuid": "VUID-VkMemoryAllocateInfo-pNext-06780",
@@ -17524,6 +18294,50 @@
}
]
},
+ "VkExportMemorySciBufInfoNV": {
+ "(VK_NV_external_memory_sci_buf)": [
+ {
+ "vuid": "VUID-VkExportMemorySciBufInfoNV-pAttributes-05100",
+ "text": " <code>pAttributes</code> <strong class=\"purple\">must</strong> be a reconciled <code>NvSciBufAttrList</code>"
+ }
+ ]
+ },
+ "vkGetPhysicalDeviceSciBufAttributesNV": {
+ "(VK_NV_external_memory_sci_buf)": [
+ {
+ "vuid": "VUID-vkGetPhysicalDeviceSciBufAttributesNV-pAttributes-05101",
+ "text": " <code>pAttributes</code> <strong class=\"purple\">must</strong> be a valid <code>NvSciBufAttrList</code> and <strong class=\"purple\">must</strong> not be <code>NULL</code>"
+ }
+ ]
+ },
+ "VkImportMemorySciBufInfoNV": {
+ "(VK_NV_external_memory_sci_buf)": [
+ {
+ "vuid": "VUID-VkImportMemorySciBufInfoNV-handleType-05102",
+ "text": " <code>handleType</code> <strong class=\"purple\">must</strong> be <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_SCI_BUF_BIT_NV</code>"
+ }
+ ]
+ },
+ "VkMemoryGetSciBufInfoNV": {
+ "(VK_NV_external_memory_sci_buf)": [
+ {
+ "vuid": "VUID-VkMemoryGetSciBufInfoNV-handleType-05103",
+ "text": " <code>handleType</code> <strong class=\"purple\">must</strong> be <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_SCI_BUF_BIT_NV</code>"
+ }
+ ]
+ },
+ "vkGetPhysicalDeviceExternalMemorySciBufPropertiesNV": {
+ "(VK_NV_external_memory_sci_buf)": [
+ {
+ "vuid": "VUID-vkGetPhysicalDeviceExternalMemorySciBufPropertiesNV-handleType-05104",
+ "text": " <code>handleType</code> <strong class=\"purple\">must</strong> be <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_SCI_BUF_BIT_NV</code>"
+ },
+ {
+ "vuid": "VUID-vkGetPhysicalDeviceExternalMemorySciBufPropertiesNV-sciBufImport-05105",
+ "text": " <code>VkPhysicalDeviceExternalMemorySciBufFeaturesNV</code>::<code>sciBufImport</code> <strong class=\"purple\">must</strong> be enabled"
+ }
+ ]
+ },
"VkMemoryAllocateFlagsInfo": {
"(VK_VERSION_1_1,VK_KHR_device_group)": [
{
@@ -17553,7 +18367,7 @@
]
},
"vkFreeMemory": {
- "core": [
+ "!(VKSC_VERSION_1_0)": [
{
"vuid": "VUID-vkFreeMemory-memory-00677",
"text": " All submitted commands that refer to <code>memory</code> (via images or buffers) <strong class=\"purple\">must</strong> have completed execution"
@@ -17909,11 +18723,25 @@
]
},
"vkCreateBuffer": {
- "core": [
+ "!(VKSC_VERSION_1_0)": [
{
"vuid": "VUID-vkCreateBuffer-flags-00911",
"text": " If the <code>flags</code> member of <code>pCreateInfo</code> includes <code>VK_BUFFER_CREATE_SPARSE_BINDING_BIT</code>, creating this <code>VkBuffer</code> <strong class=\"purple\">must</strong> not cause the total required sparse memory for all currently valid sparse resources on the device to exceed <code>VkPhysicalDeviceLimits</code>::<code>sparseAddressSpaceSize</code>"
- },
+ }
+ ],
+ "(VKSC_VERSION_1_0)": [
+ {
+ "vuid": "VUID-vkCreateBuffer-device-05068",
+ "text": " The number of {objectnameplural} currently allocated from <code>device</code> plus {objectcount} <strong class=\"purple\">must</strong> be less than or equal to the total number of {objectnameplural} requested via <code>VkDeviceObjectReservationCreateInfo</code>::pname:{objectnamecamelcase}RequestCount specified when <code>device</code> was created"
+ }
+ ],
+ "(VK_FUCHSIA_buffer_collection)": [
+ {
+ "vuid": "VUID-vkCreateBuffer-pNext-06387",
+ "text": " If using the <a href=\"#VkBuffer\">VkBuffer</a> for an import operation from a <a href=\"#VkBufferCollectionFUCHSIA\">VkBufferCollectionFUCHSIA</a> where a <a href=\"#VkBufferCollectionBufferCreateInfoFUCHSIA\">VkBufferCollectionBufferCreateInfoFUCHSIA</a> has been chained to <code>pNext</code>, <code>pCreateInfo</code> <strong class=\"purple\">must</strong> match the <a href=\"#VkBufferConstraintsInfoFUCHSIA\">VkBufferConstraintsInfoFUCHSIA</a>::<code>createInfo</code> used when setting the constraints on the buffer collection with <a href=\"#vkSetBufferCollectionBufferConstraintsFUCHSIA\">vkSetBufferCollectionBufferConstraintsFUCHSIA</a>"
+ }
+ ],
+ "core": [
{
"vuid": "VUID-vkCreateBuffer-device-parameter",
"text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
@@ -17930,12 +18758,6 @@
"vuid": "VUID-vkCreateBuffer-pBuffer-parameter",
"text": " <code>pBuffer</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkBuffer\">VkBuffer</a> handle"
}
- ],
- "(VK_FUCHSIA_buffer_collection)": [
- {
- "vuid": "VUID-vkCreateBuffer-pNext-06387",
- "text": " If using the <a href=\"#VkBuffer\">VkBuffer</a> for an import operation from a <a href=\"#VkBufferCollectionFUCHSIA\">VkBufferCollectionFUCHSIA</a> where a <a href=\"#VkBufferCollectionBufferCreateInfoFUCHSIA\">VkBufferCollectionBufferCreateInfoFUCHSIA</a> has been chained to <code>pNext</code>, <code>pCreateInfo</code> <strong class=\"purple\">must</strong> match the <a href=\"#VkBufferConstraintsInfoFUCHSIA\">VkBufferConstraintsInfoFUCHSIA</a>::<code>createInfo</code> used when setting the constraints on the buffer collection with <a href=\"#vkSetBufferCollectionBufferConstraintsFUCHSIA\">vkSetBufferCollectionBufferConstraintsFUCHSIA</a>"
- }
]
},
"VkBufferCreateInfo": {
@@ -17953,22 +18775,6 @@
"text": " If <code>sharingMode</code> is <code>VK_SHARING_MODE_CONCURRENT</code>, <code>queueFamilyIndexCount</code> <strong class=\"purple\">must</strong> be greater than <code>1</code>"
},
{
- "vuid": "VUID-VkBufferCreateInfo-flags-00915",
- "text": " If the <a href=\"#features-sparseBinding\"><code>sparseBinding</code></a> feature is not enabled, <code>flags</code> <strong class=\"purple\">must</strong> not contain <code>VK_BUFFER_CREATE_SPARSE_BINDING_BIT</code>"
- },
- {
- "vuid": "VUID-VkBufferCreateInfo-flags-00916",
- "text": " If the <a href=\"#features-sparseResidencyBuffer\"><code>sparseResidencyBuffer</code></a> feature is not enabled, <code>flags</code> <strong class=\"purple\">must</strong> not contain <code>VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT</code>"
- },
- {
- "vuid": "VUID-VkBufferCreateInfo-flags-00917",
- "text": " If the <a href=\"#features-sparseResidencyAliased\"><code>sparseResidencyAliased</code></a> feature is not enabled, <code>flags</code> <strong class=\"purple\">must</strong> not contain <code>VK_BUFFER_CREATE_SPARSE_ALIASED_BIT</code>"
- },
- {
- "vuid": "VUID-VkBufferCreateInfo-flags-00918",
- "text": " If <code>flags</code> contains <code>VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT</code> or <code>VK_BUFFER_CREATE_SPARSE_ALIASED_BIT</code>, it <strong class=\"purple\">must</strong> also contain <code>VK_BUFFER_CREATE_SPARSE_BINDING_BIT</code>"
- },
- {
"vuid": "VUID-VkBufferCreateInfo-sType-sType",
"text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO</code>"
},
@@ -18009,6 +18815,30 @@
"text": " If <code>sharingMode</code> is <code>VK_SHARING_MODE_CONCURRENT</code>, each element of <code>pQueueFamilyIndices</code> <strong class=\"purple\">must</strong> be unique and <strong class=\"purple\">must</strong> be less than <code>pQueueFamilyPropertyCount</code> returned by either <a href=\"#vkGetPhysicalDeviceQueueFamilyProperties\">vkGetPhysicalDeviceQueueFamilyProperties</a> or <a href=\"#vkGetPhysicalDeviceQueueFamilyProperties2\">vkGetPhysicalDeviceQueueFamilyProperties2</a> for the <code>physicalDevice</code> that was used to create <code>device</code>"
}
],
+ "!(VKSC_VERSION_1_0)": [
+ {
+ "vuid": "VUID-VkBufferCreateInfo-flags-00915",
+ "text": " If the <a href=\"#features-sparseBinding\"><code>sparseBinding</code></a> feature is not enabled, <code>flags</code> <strong class=\"purple\">must</strong> not contain <code>VK_BUFFER_CREATE_SPARSE_BINDING_BIT</code>"
+ },
+ {
+ "vuid": "VUID-VkBufferCreateInfo-flags-00916",
+ "text": " If the <a href=\"#features-sparseResidencyBuffer\"><code>sparseResidencyBuffer</code></a> feature is not enabled, <code>flags</code> <strong class=\"purple\">must</strong> not contain <code>VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT</code>"
+ },
+ {
+ "vuid": "VUID-VkBufferCreateInfo-flags-00917",
+ "text": " If the <a href=\"#features-sparseResidencyAliased\"><code>sparseResidencyAliased</code></a> feature is not enabled, <code>flags</code> <strong class=\"purple\">must</strong> not contain <code>VK_BUFFER_CREATE_SPARSE_ALIASED_BIT</code>"
+ },
+ {
+ "vuid": "VUID-VkBufferCreateInfo-flags-00918",
+ "text": " If <code>flags</code> contains <code>VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT</code> or <code>VK_BUFFER_CREATE_SPARSE_ALIASED_BIT</code>, it <strong class=\"purple\">must</strong> also contain <code>VK_BUFFER_CREATE_SPARSE_BINDING_BIT</code>"
+ }
+ ],
+ "(VKSC_VERSION_1_0)": [
+ {
+ "vuid": "VUID-VkBufferCreateInfo-flags-05061",
+ "text": " <code>flags</code> <strong class=\"purple\">must</strong> not contain <code>VK_BUFFER_CREATE_SPARSE_BINDING_BIT</code>, <code>VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT</code>, or <code>VK_BUFFER_CREATE_SPARSE_ALIASED_BIT</code>"
+ }
+ ],
"(VK_VERSION_1_1,VK_KHR_external_memory)": [
{
"vuid": "VUID-VkBufferCreateInfo-pNext-00920",
@@ -18019,7 +18849,9 @@
{
"vuid": "VUID-VkBufferCreateInfo-flags-01887",
"text": " If the <a href=\"#features-protectedMemory\"><code>protectedMemory</code></a> feature is not enabled, <code>flags</code> <strong class=\"purple\">must</strong> not contain <code>VK_BUFFER_CREATE_PROTECTED_BIT</code>"
- },
+ }
+ ],
+ "(VK_VERSION_1_1)+!(VKSC_VERSION_1_0)": [
{
"vuid": "VUID-VkBufferCreateInfo-None-01888",
"text": " If any of the bits <code>VK_BUFFER_CREATE_SPARSE_BINDING_BIT</code>, <code>VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT</code>, or <code>VK_BUFFER_CREATE_SPARSE_ALIASED_BIT</code> are set, <code>VK_BUFFER_CREATE_PROTECTED_BIT</code> <strong class=\"purple\">must</strong> not also be set"
@@ -18161,14 +18993,6 @@
"text": " All submitted commands that refer to <code>buffer</code>, either directly or via a <code>VkBufferView</code>, <strong class=\"purple\">must</strong> have completed execution"
},
{
- "vuid": "VUID-vkDestroyBuffer-buffer-00923",
- "text": " If <code>VkAllocationCallbacks</code> were provided when <code>buffer</code> was created, a compatible set of callbacks <strong class=\"purple\">must</strong> be provided here"
- },
- {
- "vuid": "VUID-vkDestroyBuffer-buffer-00924",
- "text": " If no <code>VkAllocationCallbacks</code> were provided when <code>buffer</code> was created, <code>pAllocator</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
"vuid": "VUID-vkDestroyBuffer-device-parameter",
"text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
},
@@ -18184,9 +19008,25 @@
"vuid": "VUID-vkDestroyBuffer-buffer-parent",
"text": " If <code>buffer</code> is a valid handle, it <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
}
+ ],
+ "!(VKSC_VERSION_1_0)": [
+ {
+ "vuid": "VUID-vkDestroyBuffer-buffer-00923",
+ "text": " If <code>VkAllocationCallbacks</code> were provided when <code>buffer</code> was created, a compatible set of callbacks <strong class=\"purple\">must</strong> be provided here"
+ },
+ {
+ "vuid": "VUID-vkDestroyBuffer-buffer-00924",
+ "text": " If no <code>VkAllocationCallbacks</code> were provided when <code>buffer</code> was created, <code>pAllocator</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+ }
]
},
"vkCreateBufferView": {
+ "(VKSC_VERSION_1_0)+(VKSC_VERSION_1_0)": [
+ {
+ "vuid": "VUID-vkCreateBufferView-device-05068",
+ "text": " The number of {objectnameplural} currently allocated from <code>device</code> plus {objectcount} <strong class=\"purple\">must</strong> be less than or equal to the total number of {objectnameplural} requested via <code>VkDeviceObjectReservationCreateInfo</code>::pname:{objectnamecamelcase}RequestCount specified when <code>device</code> was created"
+ }
+ ],
"core": [
{
"vuid": "VUID-vkCreateBufferView-device-parameter",
@@ -18307,14 +19147,6 @@
"text": " All submitted commands that refer to <code>bufferView</code> <strong class=\"purple\">must</strong> have completed execution"
},
{
- "vuid": "VUID-vkDestroyBufferView-bufferView-00937",
- "text": " If <code>VkAllocationCallbacks</code> were provided when <code>bufferView</code> was created, a compatible set of callbacks <strong class=\"purple\">must</strong> be provided here"
- },
- {
- "vuid": "VUID-vkDestroyBufferView-bufferView-00938",
- "text": " If no <code>VkAllocationCallbacks</code> were provided when <code>bufferView</code> was created, <code>pAllocator</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
"vuid": "VUID-vkDestroyBufferView-device-parameter",
"text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
},
@@ -18330,14 +19162,38 @@
"vuid": "VUID-vkDestroyBufferView-bufferView-parent",
"text": " If <code>bufferView</code> is a valid handle, it <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
}
+ ],
+ "!(VKSC_VERSION_1_0)": [
+ {
+ "vuid": "VUID-vkDestroyBufferView-bufferView-00937",
+ "text": " If <code>VkAllocationCallbacks</code> were provided when <code>bufferView</code> was created, a compatible set of callbacks <strong class=\"purple\">must</strong> be provided here"
+ },
+ {
+ "vuid": "VUID-vkDestroyBufferView-bufferView-00938",
+ "text": " If no <code>VkAllocationCallbacks</code> were provided when <code>bufferView</code> was created, <code>pAllocator</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+ }
]
},
"vkCreateImage": {
- "core": [
+ "!(VKSC_VERSION_1_0)": [
{
"vuid": "VUID-vkCreateImage-flags-00939",
"text": " If the <code>flags</code> member of <code>pCreateInfo</code> includes <code>VK_IMAGE_CREATE_SPARSE_BINDING_BIT</code>, creating this <code>VkImage</code> <strong class=\"purple\">must</strong> not cause the total required sparse memory for all currently valid sparse resources on the device to exceed <code>VkPhysicalDeviceLimits</code>::<code>sparseAddressSpaceSize</code>"
- },
+ }
+ ],
+ "(VKSC_VERSION_1_0)": [
+ {
+ "vuid": "VUID-vkCreateImage-device-05068",
+ "text": " The number of {objectnameplural} currently allocated from <code>device</code> plus {objectcount} <strong class=\"purple\">must</strong> be less than or equal to the total number of {objectnameplural} requested via <code>VkDeviceObjectReservationCreateInfo</code>::pname:{objectnamecamelcase}RequestCount specified when <code>device</code> was created"
+ }
+ ],
+ "(VK_FUCHSIA_buffer_collection)": [
+ {
+ "vuid": "VUID-vkCreateImage-pNext-06389",
+ "text": " If a <a href=\"#VkBufferCollectionImageCreateInfoFUCHSIA\">VkBufferCollectionImageCreateInfoFUCHSIA</a> has been chained to <code>pNext</code>, <code>pCreateInfo</code> <strong class=\"purple\">must</strong> match the <a href=\"#sysmem-chosen-create-infos\">Sysmem chosen <code>VkImageCreateInfo</code></a> excepting members <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>extent</code> and <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>usage</code> in the match criteria"
+ }
+ ],
+ "core": [
{
"vuid": "VUID-vkCreateImage-device-parameter",
"text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
@@ -18354,12 +19210,6 @@
"vuid": "VUID-vkCreateImage-pImage-parameter",
"text": " <code>pImage</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkImage\">VkImage</a> handle"
}
- ],
- "(VK_FUCHSIA_buffer_collection)": [
- {
- "vuid": "VUID-vkCreateImage-pNext-06389",
- "text": " If a <a href=\"#VkBufferCollectionImageCreateInfoFUCHSIA\">VkBufferCollectionImageCreateInfoFUCHSIA</a> has been chained to <code>pNext</code>, <code>pCreateInfo</code> <strong class=\"purple\">must</strong> match the <a href=\"#sysmem-chosen-create-infos\">Sysmem chosen <code>VkImageCreateInfo</code></a> excepting members <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>extent</code> and <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>usage</code> in the match criteria"
- }
]
},
"VkImageCreateInfo": {
@@ -18473,54 +19323,6 @@
"text": " If the <a href=\"#features-shaderStorageImageMultisample\"><code>shaderStorageImageMultisample</code></a> feature is not enabled, and <code>usage</code> contains <code>VK_IMAGE_USAGE_STORAGE_BIT</code>, <code>samples</code> <strong class=\"purple\">must</strong> be <code>VK_SAMPLE_COUNT_1_BIT</code>"
},
{
- "vuid": "VUID-VkImageCreateInfo-flags-00969",
- "text": " If the <a href=\"#features-sparseBinding\"><code>sparseBinding</code></a> feature is not enabled, <code>flags</code> <strong class=\"purple\">must</strong> not contain <code>VK_IMAGE_CREATE_SPARSE_BINDING_BIT</code>"
- },
- {
- "vuid": "VUID-VkImageCreateInfo-flags-01924",
- "text": " If the <a href=\"#features-sparseResidencyAliased\"><code>sparseResidencyAliased</code></a> feature is not enabled, <code>flags</code> <strong class=\"purple\">must</strong> not contain <code>VK_IMAGE_CREATE_SPARSE_ALIASED_BIT</code>"
- },
- {
- "vuid": "VUID-VkImageCreateInfo-tiling-04121",
- "text": " If <code>tiling</code> is <code>VK_IMAGE_TILING_LINEAR</code>, <code>flags</code> <strong class=\"purple\">must</strong> not contain <code>VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT</code>"
- },
- {
- "vuid": "VUID-VkImageCreateInfo-imageType-00970",
- "text": " If <code>imageType</code> is <code>VK_IMAGE_TYPE_1D</code>, <code>flags</code> <strong class=\"purple\">must</strong> not contain <code>VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT</code>"
- },
- {
- "vuid": "VUID-VkImageCreateInfo-imageType-00971",
- "text": " If the <a href=\"#features-sparseResidencyImage2D\"><code>sparseResidencyImage2D</code></a> feature is not enabled, and <code>imageType</code> is <code>VK_IMAGE_TYPE_2D</code>, <code>flags</code> <strong class=\"purple\">must</strong> not contain <code>VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT</code>"
- },
- {
- "vuid": "VUID-VkImageCreateInfo-imageType-00972",
- "text": " If the <a href=\"#features-sparseResidencyImage3D\"><code>sparseResidencyImage3D</code></a> feature is not enabled, and <code>imageType</code> is <code>VK_IMAGE_TYPE_3D</code>, <code>flags</code> <strong class=\"purple\">must</strong> not contain <code>VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT</code>"
- },
- {
- "vuid": "VUID-VkImageCreateInfo-imageType-00973",
- "text": " If the <a href=\"#features-sparseResidency2Samples\"><code>sparseResidency2Samples</code></a> feature is not enabled, <code>imageType</code> is <code>VK_IMAGE_TYPE_2D</code>, and <code>samples</code> is <code>VK_SAMPLE_COUNT_2_BIT</code>, <code>flags</code> <strong class=\"purple\">must</strong> not contain <code>VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT</code>"
- },
- {
- "vuid": "VUID-VkImageCreateInfo-imageType-00974",
- "text": " If the <a href=\"#features-sparseResidency4Samples\"><code>sparseResidency4Samples</code></a> feature is not enabled, <code>imageType</code> is <code>VK_IMAGE_TYPE_2D</code>, and <code>samples</code> is <code>VK_SAMPLE_COUNT_4_BIT</code>, <code>flags</code> <strong class=\"purple\">must</strong> not contain <code>VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT</code>"
- },
- {
- "vuid": "VUID-VkImageCreateInfo-imageType-00975",
- "text": " If the <a href=\"#features-sparseResidency8Samples\"><code>sparseResidency8Samples</code></a> feature is not enabled, <code>imageType</code> is <code>VK_IMAGE_TYPE_2D</code>, and <code>samples</code> is <code>VK_SAMPLE_COUNT_8_BIT</code>, <code>flags</code> <strong class=\"purple\">must</strong> not contain <code>VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT</code>"
- },
- {
- "vuid": "VUID-VkImageCreateInfo-imageType-00976",
- "text": " If the <a href=\"#features-sparseResidency16Samples\"><code>sparseResidency16Samples</code></a> feature is not enabled, <code>imageType</code> is <code>VK_IMAGE_TYPE_2D</code>, and <code>samples</code> is <code>VK_SAMPLE_COUNT_16_BIT</code>, <code>flags</code> <strong class=\"purple\">must</strong> not contain <code>VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT</code>"
- },
- {
- "vuid": "VUID-VkImageCreateInfo-flags-00987",
- "text": " If <code>flags</code> contains <code>VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT</code> or <code>VK_IMAGE_CREATE_SPARSE_ALIASED_BIT</code>, it <strong class=\"purple\">must</strong> also contain <code>VK_IMAGE_CREATE_SPARSE_BINDING_BIT</code>"
- },
- {
- "vuid": "VUID-VkImageCreateInfo-None-01925",
- "text": " If any of the bits <code>VK_IMAGE_CREATE_SPARSE_BINDING_BIT</code>, <code>VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT</code>, or <code>VK_IMAGE_CREATE_SPARSE_ALIASED_BIT</code> are set, <code>VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT</code> <strong class=\"purple\">must</strong> not also be set"
- },
- {
"vuid": "VUID-VkImageCreateInfo-initialLayout-00993",
"text": " <code>initialLayout</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_LAYOUT_UNDEFINED</code> or <code>VK_IMAGE_LAYOUT_PREINITIALIZED</code>"
},
@@ -18679,11 +19481,69 @@
"text": " If the <a href=\"#features-fragmentDensityMapOffsets\"><code>fragmentDensityMapOffset</code></a> feature is not enabled and <code>usage</code> includes <code>VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT</code>, <code>extent.height</code> <strong class=\"purple\">must</strong> be less than or equal to \\(\\left\\lceil{\\frac{maxFramebufferHeight}{minFragmentDensityTexelSize_{height}}}\\right\\rceil\\)"
}
],
+ "!(VKSC_VERSION_1_0)": [
+ {
+ "vuid": "VUID-VkImageCreateInfo-flags-00969",
+ "text": " If the <a href=\"#features-sparseBinding\"><code>sparseBinding</code></a> feature is not enabled, <code>flags</code> <strong class=\"purple\">must</strong> not contain <code>VK_IMAGE_CREATE_SPARSE_BINDING_BIT</code>"
+ },
+ {
+ "vuid": "VUID-VkImageCreateInfo-flags-01924",
+ "text": " If the <a href=\"#features-sparseResidencyAliased\"><code>sparseResidencyAliased</code></a> feature is not enabled, <code>flags</code> <strong class=\"purple\">must</strong> not contain <code>VK_IMAGE_CREATE_SPARSE_ALIASED_BIT</code>"
+ },
+ {
+ "vuid": "VUID-VkImageCreateInfo-tiling-04121",
+ "text": " If <code>tiling</code> is <code>VK_IMAGE_TILING_LINEAR</code>, <code>flags</code> <strong class=\"purple\">must</strong> not contain <code>VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT</code>"
+ },
+ {
+ "vuid": "VUID-VkImageCreateInfo-imageType-00970",
+ "text": " If <code>imageType</code> is <code>VK_IMAGE_TYPE_1D</code>, <code>flags</code> <strong class=\"purple\">must</strong> not contain <code>VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT</code>"
+ },
+ {
+ "vuid": "VUID-VkImageCreateInfo-imageType-00971",
+ "text": " If the <a href=\"#features-sparseResidencyImage2D\"><code>sparseResidencyImage2D</code></a> feature is not enabled, and <code>imageType</code> is <code>VK_IMAGE_TYPE_2D</code>, <code>flags</code> <strong class=\"purple\">must</strong> not contain <code>VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT</code>"
+ },
+ {
+ "vuid": "VUID-VkImageCreateInfo-imageType-00972",
+ "text": " If the <a href=\"#features-sparseResidencyImage3D\"><code>sparseResidencyImage3D</code></a> feature is not enabled, and <code>imageType</code> is <code>VK_IMAGE_TYPE_3D</code>, <code>flags</code> <strong class=\"purple\">must</strong> not contain <code>VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT</code>"
+ },
+ {
+ "vuid": "VUID-VkImageCreateInfo-imageType-00973",
+ "text": " If the <a href=\"#features-sparseResidency2Samples\"><code>sparseResidency2Samples</code></a> feature is not enabled, <code>imageType</code> is <code>VK_IMAGE_TYPE_2D</code>, and <code>samples</code> is <code>VK_SAMPLE_COUNT_2_BIT</code>, <code>flags</code> <strong class=\"purple\">must</strong> not contain <code>VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT</code>"
+ },
+ {
+ "vuid": "VUID-VkImageCreateInfo-imageType-00974",
+ "text": " If the <a href=\"#features-sparseResidency4Samples\"><code>sparseResidency4Samples</code></a> feature is not enabled, <code>imageType</code> is <code>VK_IMAGE_TYPE_2D</code>, and <code>samples</code> is <code>VK_SAMPLE_COUNT_4_BIT</code>, <code>flags</code> <strong class=\"purple\">must</strong> not contain <code>VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT</code>"
+ },
+ {
+ "vuid": "VUID-VkImageCreateInfo-imageType-00975",
+ "text": " If the <a href=\"#features-sparseResidency8Samples\"><code>sparseResidency8Samples</code></a> feature is not enabled, <code>imageType</code> is <code>VK_IMAGE_TYPE_2D</code>, and <code>samples</code> is <code>VK_SAMPLE_COUNT_8_BIT</code>, <code>flags</code> <strong class=\"purple\">must</strong> not contain <code>VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT</code>"
+ },
+ {
+ "vuid": "VUID-VkImageCreateInfo-imageType-00976",
+ "text": " If the <a href=\"#features-sparseResidency16Samples\"><code>sparseResidency16Samples</code></a> feature is not enabled, <code>imageType</code> is <code>VK_IMAGE_TYPE_2D</code>, and <code>samples</code> is <code>VK_SAMPLE_COUNT_16_BIT</code>, <code>flags</code> <strong class=\"purple\">must</strong> not contain <code>VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT</code>"
+ },
+ {
+ "vuid": "VUID-VkImageCreateInfo-flags-00987",
+ "text": " If <code>flags</code> contains <code>VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT</code> or <code>VK_IMAGE_CREATE_SPARSE_ALIASED_BIT</code>, it <strong class=\"purple\">must</strong> also contain <code>VK_IMAGE_CREATE_SPARSE_BINDING_BIT</code>"
+ },
+ {
+ "vuid": "VUID-VkImageCreateInfo-None-01925",
+ "text": " If any of the bits <code>VK_IMAGE_CREATE_SPARSE_BINDING_BIT</code>, <code>VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT</code>, or <code>VK_IMAGE_CREATE_SPARSE_ALIASED_BIT</code> are set, <code>VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT</code> <strong class=\"purple\">must</strong> not also be set"
+ }
+ ],
+ "(VKSC_VERSION_1_0)": [
+ {
+ "vuid": "VUID-VkImageCreateInfo-flags-05062",
+ "text": " <code>flags</code> <strong class=\"purple\">must</strong> not contain <code>VK_IMAGE_CREATE_SPARSE_BINDING_BIT</code>, <code>VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT</code>, <code>VK_IMAGE_CREATE_SPARSE_ALIASED_BIT</code>, or <code>VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT</code>"
+ }
+ ],
"(VK_VERSION_1_1)": [
{
"vuid": "VUID-VkImageCreateInfo-flags-01890",
"text": " If the <a href=\"#features-protectedMemory\"><code>protectedMemory</code></a> feature is not enabled, <code>flags</code> <strong class=\"purple\">must</strong> not contain <code>VK_IMAGE_CREATE_PROTECTED_BIT</code>"
- },
+ }
+ ],
+ "(VK_VERSION_1_1)+!(VKSC_VERSION_1_0)": [
{
"vuid": "VUID-VkImageCreateInfo-None-01891",
"text": " If any of the bits <code>VK_IMAGE_CREATE_SPARSE_BINDING_BIT</code>, <code>VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT</code>, or <code>VK_IMAGE_CREATE_SPARSE_ALIASED_BIT</code> are set, <code>VK_IMAGE_CREATE_PROTECTED_BIT</code> <strong class=\"purple\">must</strong> not also be set"
@@ -18707,7 +19567,7 @@
"text": " If the <code>pNext</code> chain includes a <a href=\"#VkExternalMemoryImageCreateInfoNV\">VkExternalMemoryImageCreateInfoNV</a> structure, its <code>handleTypes</code> member <strong class=\"purple\">must</strong> only contain bits that are also in <a href=\"#VkExternalImageFormatPropertiesNV\">VkExternalImageFormatPropertiesNV</a>::<code>externalMemoryProperties.compatibleHandleTypes</code>, as returned by <a href=\"#vkGetPhysicalDeviceExternalImageFormatPropertiesNV\">vkGetPhysicalDeviceExternalImageFormatPropertiesNV</a> with <code>format</code>, <code>imageType</code>, <code>tiling</code>, <code>usage</code>, and <code>flags</code> equal to those in this structure, and with <code>externalHandleType</code> equal to any one of the handle types specified in <a href=\"#VkExternalMemoryImageCreateInfoNV\">VkExternalMemoryImageCreateInfoNV</a>::<code>handleTypes</code>"
}
],
- "(VK_VERSION_1_1,VK_KHR_device_group)": [
+ "(VK_VERSION_1_1,VK_KHR_device_group)+!(VKSC_VERSION_1_0)": [
{
"vuid": "VUID-VkImageCreateInfo-physicalDeviceCount-01421",
"text": " If the logical device was created with <a href=\"#VkDeviceGroupDeviceCreateInfo\">VkDeviceGroupDeviceCreateInfo</a>::<code>physicalDeviceCount</code> equal to 1, <code>flags</code> <strong class=\"purple\">must</strong> not contain <code>VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT</code>"
@@ -19395,14 +20255,6 @@
"text": " All submitted commands that refer to <code>image</code>, either directly or via a <code>VkImageView</code>, <strong class=\"purple\">must</strong> have completed execution"
},
{
- "vuid": "VUID-vkDestroyImage-image-01001",
- "text": " If <code>VkAllocationCallbacks</code> were provided when <code>image</code> was created, a compatible set of callbacks <strong class=\"purple\">must</strong> be provided here"
- },
- {
- "vuid": "VUID-vkDestroyImage-image-01002",
- "text": " If no <code>VkAllocationCallbacks</code> were provided when <code>image</code> was created, <code>pAllocator</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
"vuid": "VUID-vkDestroyImage-device-parameter",
"text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
},
@@ -19419,6 +20271,16 @@
"text": " If <code>image</code> is a valid handle, it <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
}
],
+ "!(VKSC_VERSION_1_0)": [
+ {
+ "vuid": "VUID-vkDestroyImage-image-01001",
+ "text": " If <code>VkAllocationCallbacks</code> were provided when <code>image</code> was created, a compatible set of callbacks <strong class=\"purple\">must</strong> be provided here"
+ },
+ {
+ "vuid": "VUID-vkDestroyImage-image-01002",
+ "text": " If no <code>VkAllocationCallbacks</code> were provided when <code>image</code> was created, <code>pAllocator</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+ }
+ ],
"(VK_KHR_swapchain)": [
{
"vuid": "VUID-vkDestroyImage-image-04882",
@@ -19427,6 +20289,18 @@
]
},
"vkCreateImageView": {
+ "(VKSC_VERSION_1_0)+(VKSC_VERSION_1_0)": [
+ {
+ "vuid": "VUID-vkCreateImageView-device-05068",
+ "text": " The number of {objectnameplural} currently allocated from <code>device</code> plus {objectcount} <strong class=\"purple\">must</strong> be less than or equal to the total number of {objectnameplural} requested via <code>VkDeviceObjectReservationCreateInfo</code>::pname:{objectnamecamelcase}RequestCount specified when <code>device</code> was created"
+ }
+ ],
+ "(VKSC_VERSION_1_0)": [
+ {
+ "vuid": "VUID-vkCreateImageView-subresourceRange-05063",
+ "text": " If <a href=\"#VkImageViewCreateInfo\">VkImageViewCreateInfo</a>::<code>subresourceRange.layerCount</code> is greater than <code>1</code>, the number of image views with more than one array layer currently allocated from <code>device</code> plus <code>1</code> <strong class=\"purple\">must</strong> be less than or equal to the total number of image views requested via <code>VkDeviceObjectReservationCreateInfo</code>::<code>layeredImageViewRequestCount</code> specified when <code>device</code> was created"
+ }
+ ],
"core": [
{
"vuid": "VUID-vkCreateImageView-device-parameter",
@@ -19571,10 +20445,6 @@
"text": " If <code>image</code> was created with <code>VK_IMAGE_TYPE_3D</code> and <code>viewType</code> is <code>VK_IMAGE_VIEW_TYPE_2D</code> or <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code> then <code>subresourceRange.levelCount</code> <strong class=\"purple\">must</strong> be 1"
},
{
- "vuid": "VUID-VkImageViewCreateInfo-image-04971",
- "text": " If <code>image</code> was created with <code>VK_IMAGE_TYPE_3D</code> and <code>viewType</code> is <code>VK_IMAGE_VIEW_TYPE_2D</code> or <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code> then <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>flags</code> <strong class=\"purple\">must</strong> not contain any of <code>VK_IMAGE_CREATE_SPARSE_BINDING_BIT</code>, <code>VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT</code>, and <code>VK_IMAGE_CREATE_SPARSE_ALIASED_BIT</code>"
- },
- {
"vuid": "VUID-VkImageViewCreateInfo-image-04972",
"text": " If <code>image</code> was created with a <code>samples</code> value not equal to <code>VK_SAMPLE_COUNT_1_BIT</code> then <code>viewType</code> <strong class=\"purple\">must</strong> be either <code>VK_IMAGE_VIEW_TYPE_2D</code> or <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code>"
},
@@ -19615,6 +20485,12 @@
"text": " If <code>subresourceRange.layerCount</code> is not <code>VK_REMAINING_ARRAY_LAYERS</code>, <code>image</code> is not a 3D image created with <code>VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT</code> or <code>VK_IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT</code> set, or <code>viewType</code> is not <code>VK_IMAGE_VIEW_TYPE_2D</code> or <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code>, <code>subresourceRange.layerCount</code> <strong class=\"purple\">must</strong> be non-zero and <span class=\"eq\"><code>subresourceRange.baseArrayLayer</code> &#43; <code>subresourceRange.layerCount</code></span> <strong class=\"purple\">must</strong> be less than or equal to the <code>arrayLayers</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>image</code> was created"
}
],
+ "(VK_VERSION_1_1,VK_KHR_maintenance1)+!(VKSC_VERSION_1_0)": [
+ {
+ "vuid": "VUID-VkImageViewCreateInfo-image-04971",
+ "text": " If <code>image</code> was created with <code>VK_IMAGE_TYPE_3D</code> and <code>viewType</code> is <code>VK_IMAGE_VIEW_TYPE_2D</code> or <code>VK_IMAGE_VIEW_TYPE_2D_ARRAY</code> then <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>flags</code> <strong class=\"purple\">must</strong> not contain any of <code>VK_IMAGE_CREATE_SPARSE_BINDING_BIT</code>, <code>VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT</code>, and <code>VK_IMAGE_CREATE_SPARSE_ALIASED_BIT</code>"
+ }
+ ],
"(VK_NV_linear_color_attachment)": [
{
"vuid": "VUID-VkImageViewCreateInfo-usage-06516",
@@ -19815,6 +20691,20 @@
"text": " If the <code><a href=\"#VK_KHR_portability_subset\">VK_KHR_portability_subset</a></code> extension is enabled, and <a href=\"#VkPhysicalDevicePortabilitySubsetFeaturesKHR\">VkPhysicalDevicePortabilitySubsetFeaturesKHR</a>::<code>imageViewFormatReinterpretation</code> is <code>VK_FALSE</code>, the <a href=\"#VkFormat\">VkFormat</a> in <code>format</code> <strong class=\"purple\">must</strong> not contain a different number of components, or a different number of bits in each component, than the format of the <code>VkImage</code> in <code>image</code>"
}
],
+ "(VKSC_VERSION_1_0)": [
+ {
+ "vuid": "VUID-VkImageViewCreateInfo-subresourceRange-05064",
+ "text": " <code>subresourceRange.levelCount</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkDeviceObjectReservationCreateInfo</code>::<code>maxImageViewMipLevels</code>"
+ },
+ {
+ "vuid": "VUID-VkImageViewCreateInfo-subresourceRange-05065",
+ "text": " <code>subresourceRange.layerCount</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkDeviceObjectReservationCreateInfo</code>::<code>maxImageViewArrayLayers</code>"
+ },
+ {
+ "vuid": "VUID-VkImageViewCreateInfo-subresourceRange-05066",
+ "text": " If <code>subresourceRange.layerCount</code> is greater than <code>1</code>, <code>subresourceRange.levelCount</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkDeviceObjectReservationCreateInfo</code>::<code>maxLayeredImageViewMipLevels</code>"
+ }
+ ],
"(VK_KHR_video_decode_queue)": [
{
"vuid": "VUID-VkImageViewCreateInfo-image-04817",
@@ -20069,14 +20959,6 @@
"text": " All submitted commands that refer to <code>imageView</code> <strong class=\"purple\">must</strong> have completed execution"
},
{
- "vuid": "VUID-vkDestroyImageView-imageView-01027",
- "text": " If <code>VkAllocationCallbacks</code> were provided when <code>imageView</code> was created, a compatible set of callbacks <strong class=\"purple\">must</strong> be provided here"
- },
- {
- "vuid": "VUID-vkDestroyImageView-imageView-01028",
- "text": " If no <code>VkAllocationCallbacks</code> were provided when <code>imageView</code> was created, <code>pAllocator</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
"vuid": "VUID-vkDestroyImageView-device-parameter",
"text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
},
@@ -20092,6 +20974,16 @@
"vuid": "VUID-vkDestroyImageView-imageView-parent",
"text": " If <code>imageView</code> is a valid handle, it <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
}
+ ],
+ "!(VKSC_VERSION_1_0)": [
+ {
+ "vuid": "VUID-vkDestroyImageView-imageView-01027",
+ "text": " If <code>VkAllocationCallbacks</code> were provided when <code>imageView</code> was created, a compatible set of callbacks <strong class=\"purple\">must</strong> be provided here"
+ },
+ {
+ "vuid": "VUID-vkDestroyImageView-imageView-01028",
+ "text": " If no <code>VkAllocationCallbacks</code> were provided when <code>imageView</code> was created, <code>pAllocator</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+ }
]
},
"vkGetImageViewHandleNVX": {
@@ -20635,14 +21527,6 @@
"text": " All submitted commands that refer to <code>accelerationStructure</code> <strong class=\"purple\">must</strong> have completed execution"
},
{
- "vuid": "VUID-vkDestroyAccelerationStructureKHR-accelerationStructure-02443",
- "text": " If <code>VkAllocationCallbacks</code> were provided when <code>accelerationStructure</code> was created, a compatible set of callbacks <strong class=\"purple\">must</strong> be provided here"
- },
- {
- "vuid": "VUID-vkDestroyAccelerationStructureKHR-accelerationStructure-02444",
- "text": " If no <code>VkAllocationCallbacks</code> were provided when <code>accelerationStructure</code> was created, <code>pAllocator</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
"vuid": "VUID-vkDestroyAccelerationStructureKHR-device-parameter",
"text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
},
@@ -20658,6 +21542,16 @@
"vuid": "VUID-vkDestroyAccelerationStructureKHR-accelerationStructure-parent",
"text": " If <code>accelerationStructure</code> is a valid handle, it <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
}
+ ],
+ "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+!(VKSC_VERSION_1_0)": [
+ {
+ "vuid": "VUID-vkDestroyAccelerationStructureKHR-accelerationStructure-02443",
+ "text": " If <code>VkAllocationCallbacks</code> were provided when <code>accelerationStructure</code> was created, a compatible set of callbacks <strong class=\"purple\">must</strong> be provided here"
+ },
+ {
+ "vuid": "VUID-vkDestroyAccelerationStructureKHR-accelerationStructure-02444",
+ "text": " If no <code>VkAllocationCallbacks</code> were provided when <code>accelerationStructure</code> was created, <code>pAllocator</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+ }
]
},
"vkDestroyAccelerationStructureNV": {
@@ -20667,14 +21561,6 @@
"text": " All submitted commands that refer to <code>accelerationStructure</code> <strong class=\"purple\">must</strong> have completed execution"
},
{
- "vuid": "VUID-vkDestroyAccelerationStructureNV-accelerationStructure-03753",
- "text": " If <code>VkAllocationCallbacks</code> were provided when <code>accelerationStructure</code> was created, a compatible set of callbacks <strong class=\"purple\">must</strong> be provided here"
- },
- {
- "vuid": "VUID-vkDestroyAccelerationStructureNV-accelerationStructure-03754",
- "text": " If no <code>VkAllocationCallbacks</code> were provided when <code>accelerationStructure</code> was created, <code>pAllocator</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
"vuid": "VUID-vkDestroyAccelerationStructureNV-device-parameter",
"text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
},
@@ -20690,6 +21576,16 @@
"vuid": "VUID-vkDestroyAccelerationStructureNV-accelerationStructure-parent",
"text": " If <code>accelerationStructure</code> is a valid handle, it <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
}
+ ],
+ "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)+!(VKSC_VERSION_1_0)": [
+ {
+ "vuid": "VUID-vkDestroyAccelerationStructureNV-accelerationStructure-03753",
+ "text": " If <code>VkAllocationCallbacks</code> were provided when <code>accelerationStructure</code> was created, a compatible set of callbacks <strong class=\"purple\">must</strong> be provided here"
+ },
+ {
+ "vuid": "VUID-vkDestroyAccelerationStructureNV-accelerationStructure-03754",
+ "text": " If no <code>VkAllocationCallbacks</code> were provided when <code>accelerationStructure</code> was created, <code>pAllocator</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+ }
]
},
"vkGetAccelerationStructureMemoryRequirementsNV": {
@@ -21381,7 +22277,7 @@
"text": " If <code>buffer</code> was not created with <a href=\"#VkDedicatedAllocationBufferCreateInfoNV\">VkDedicatedAllocationBufferCreateInfoNV</a>::<code>dedicatedAllocation</code> equal to <code>VK_TRUE</code>, <code>memory</code> <strong class=\"purple\">must</strong> not have been allocated dedicated for a specific buffer or image"
}
],
- "(VK_NV_dedicated_allocation)+(VK_VERSION_1_1,VK_KHR_dedicated_allocation)": [
+ "(VK_NV_dedicated_allocation)+(VK_VERSION_1_1,VK_KHR_dedicated_allocation)+!(VKSC_VERSION_1_0)": [
{
"vuid": "VUID-vkBindBufferMemory-apiVersion-07920",
"text": " If the <a href=\"#VK_KHR_dedicated_allocation\">VK_KHR_dedicated_allocation</a> extension is not enabled, <a href=\"#VkPhysicalDeviceProperties\">VkPhysicalDeviceProperties</a>::<code>apiVersion</code> is less than Vulkan 1.1, and <code>buffer</code> was not created with <a href=\"#VkDedicatedAllocationBufferCreateInfoNV\">VkDedicatedAllocationBufferCreateInfoNV</a>::<code>dedicatedAllocation</code> equal to <code>VK_TRUE</code>, <code>memory</code> <strong class=\"purple\">must</strong> not have been allocated dedicated for a specific buffer or image"
@@ -21527,7 +22423,7 @@
"text": " If <code>buffer</code> was not created with <a href=\"#VkDedicatedAllocationBufferCreateInfoNV\">VkDedicatedAllocationBufferCreateInfoNV</a>::<code>dedicatedAllocation</code> equal to <code>VK_TRUE</code>, <code>memory</code> <strong class=\"purple\">must</strong> not have been allocated dedicated for a specific buffer or image"
}
],
- "(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_NV_dedicated_allocation)+(VK_VERSION_1_1,VK_KHR_dedicated_allocation)": [
+ "(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_NV_dedicated_allocation)+(VK_VERSION_1_1,VK_KHR_dedicated_allocation)+!(VKSC_VERSION_1_0)": [
{
"vuid": "VUID-VkBindBufferMemoryInfo-apiVersion-07920",
"text": " If the <a href=\"#VK_KHR_dedicated_allocation\">VK_KHR_dedicated_allocation</a> extension is not enabled, <a href=\"#VkPhysicalDeviceProperties\">VkPhysicalDeviceProperties</a>::<code>apiVersion</code> is less than Vulkan 1.1, and <code>buffer</code> was not created with <a href=\"#VkDedicatedAllocationBufferCreateInfoNV\">VkDedicatedAllocationBufferCreateInfoNV</a>::<code>dedicatedAllocation</code> equal to <code>VK_TRUE</code>, <code>memory</code> <strong class=\"purple\">must</strong> not have been allocated dedicated for a specific buffer or image"
@@ -21691,7 +22587,7 @@
"text": " If <code>image</code> was not created with <a href=\"#VkDedicatedAllocationImageCreateInfoNV\">VkDedicatedAllocationImageCreateInfoNV</a>::<code>dedicatedAllocation</code> equal to <code>VK_TRUE</code>, <code>memory</code> <strong class=\"purple\">must</strong> not have been allocated dedicated for a specific buffer or image"
}
],
- "(VK_NV_dedicated_allocation)+(VK_VERSION_1_1,VK_KHR_dedicated_allocation)": [
+ "(VK_NV_dedicated_allocation)+(VK_VERSION_1_1,VK_KHR_dedicated_allocation)+!(VKSC_VERSION_1_0)": [
{
"vuid": "VUID-vkBindImageMemory-apiVersion-07921",
"text": " If the <a href=\"#VK_KHR_dedicated_allocation\">VK_KHR_dedicated_allocation</a> extension is not enabled, <a href=\"#VkPhysicalDeviceProperties\">VkPhysicalDeviceProperties</a>::<code>apiVersion</code> is less than Vulkan 1.1, and <code>image</code> was not created with <a href=\"#VkDedicatedAllocationImageCreateInfoNV\">VkDedicatedAllocationImageCreateInfoNV</a>::<code>dedicatedAllocation</code> equal to <code>VK_TRUE</code>, <code>memory</code> <strong class=\"purple\">must</strong> not have been allocated dedicated for a specific buffer or image"
@@ -21843,7 +22739,7 @@
"text": " If <code>image</code> was not created with <a href=\"#VkDedicatedAllocationImageCreateInfoNV\">VkDedicatedAllocationImageCreateInfoNV</a>::<code>dedicatedAllocation</code> equal to <code>VK_TRUE</code>, <code>memory</code> <strong class=\"purple\">must</strong> not have been allocated dedicated for a specific buffer or image"
}
],
- "(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_NV_dedicated_allocation)+(VK_VERSION_1_1,VK_KHR_dedicated_allocation)": [
+ "(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_NV_dedicated_allocation)+(VK_VERSION_1_1,VK_KHR_dedicated_allocation)+!(VKSC_VERSION_1_0)": [
{
"vuid": "VUID-VkBindImageMemoryInfo-apiVersion-07921",
"text": " If the <a href=\"#VK_KHR_dedicated_allocation\">VK_KHR_dedicated_allocation</a> extension is not enabled, <a href=\"#VkPhysicalDeviceProperties\">VkPhysicalDeviceProperties</a>::<code>apiVersion</code> is less than Vulkan 1.1, and <code>image</code> was not created with <a href=\"#VkDedicatedAllocationImageCreateInfoNV\">VkDedicatedAllocationImageCreateInfoNV</a>::<code>dedicatedAllocation</code> equal to <code>VK_TRUE</code>, <code>memory</code> <strong class=\"purple\">must</strong> not have been allocated dedicated for a specific buffer or image"
@@ -21935,7 +22831,9 @@
{
"vuid": "VUID-VkBindImageMemoryInfo-pNext-01626",
"text": " If the <code>pNext</code> chain includes a <a href=\"#VkBindImageMemoryDeviceGroupInfo\">VkBindImageMemoryDeviceGroupInfo</a> structure, all instances of <code>memory</code> specified by <a href=\"#VkBindImageMemoryDeviceGroupInfo\">VkBindImageMemoryDeviceGroupInfo</a>::<code>pDeviceIndices</code> <strong class=\"purple\">must</strong> have been allocated"
- },
+ }
+ ],
+ "(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_device_group)+!(VKSC_VERSION_1_0)": [
{
"vuid": "VUID-VkBindImageMemoryInfo-pNext-01627",
"text": " If the <code>pNext</code> chain includes a <a href=\"#VkBindImageMemoryDeviceGroupInfo\">VkBindImageMemoryDeviceGroupInfo</a> structure, and <a href=\"#VkBindImageMemoryDeviceGroupInfo\">VkBindImageMemoryDeviceGroupInfo</a>::<code>splitInstanceBindRegionCount</code> is not zero, then <code>image</code> <strong class=\"purple\">must</strong> have been created with the <code>VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT</code> bit set"
@@ -21965,20 +22863,12 @@
]
},
"VkBindImageMemoryDeviceGroupInfo": {
- "(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_device_group)": [
+ "(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_device_group)+!(VKSC_VERSION_1_0)": [
{
"vuid": "VUID-VkBindImageMemoryDeviceGroupInfo-deviceIndexCount-01633",
"text": " At least one of <code>deviceIndexCount</code> and <code>splitInstanceBindRegionCount</code> <strong class=\"purple\">must</strong> be zero"
},
{
- "vuid": "VUID-VkBindImageMemoryDeviceGroupInfo-deviceIndexCount-01634",
- "text": " <code>deviceIndexCount</code> <strong class=\"purple\">must</strong> either be zero or equal to the number of physical devices in the logical device"
- },
- {
- "vuid": "VUID-VkBindImageMemoryDeviceGroupInfo-pDeviceIndices-01635",
- "text": " All elements of <code>pDeviceIndices</code> <strong class=\"purple\">must</strong> be valid device indices"
- },
- {
"vuid": "VUID-VkBindImageMemoryDeviceGroupInfo-splitInstanceBindRegionCount-01636",
"text": " <code>splitInstanceBindRegionCount</code> <strong class=\"purple\">must</strong> either be zero or equal to the number of physical devices in the logical device squared"
},
@@ -22001,6 +22891,16 @@
{
"vuid": "VUID-VkBindImageMemoryDeviceGroupInfo-extent-01641",
"text": " The <code>extent.height</code> member of any element of <code>pSplitInstanceBindRegions</code> <strong class=\"purple\">must</strong> either be a multiple of the sparse image block height of all non-metadata aspects of the image, or else <code>extent.height</code> &#43; <code>offset.y</code> <strong class=\"purple\">must</strong> equal the height of the image subresource"
+ }
+ ],
+ "(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_device_group)": [
+ {
+ "vuid": "VUID-VkBindImageMemoryDeviceGroupInfo-deviceIndexCount-01634",
+ "text": " <code>deviceIndexCount</code> <strong class=\"purple\">must</strong> either be zero or equal to the number of physical devices in the logical device"
+ },
+ {
+ "vuid": "VUID-VkBindImageMemoryDeviceGroupInfo-pDeviceIndices-01635",
+ "text": " All elements of <code>pDeviceIndices</code> <strong class=\"purple\">must</strong> be valid device indices"
},
{
"vuid": "VUID-VkBindImageMemoryDeviceGroupInfo-sType-sType",
@@ -22014,6 +22914,12 @@
"vuid": "VUID-VkBindImageMemoryDeviceGroupInfo-pSplitInstanceBindRegions-parameter",
"text": " If <code>splitInstanceBindRegionCount</code> is not <code>0</code>, <code>pSplitInstanceBindRegions</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>splitInstanceBindRegionCount</code> <a href=\"#VkRect2D\">VkRect2D</a> structures"
}
+ ],
+ "(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_device_group)+(VKSC_VERSION_1_0)": [
+ {
+ "vuid": "VUID-VkBindImageMemoryDeviceGroupInfo-splitInstanceBindRegionCount-05067",
+ "text": " <code>splitInstanceBindRegionCount</code> <strong class=\"purple\">must</strong> be zero"
+ }
]
},
"VkBindImageMemorySwapchainInfoKHR": {
@@ -22430,6 +23336,12 @@
"vuid": "VUID-vkCreateSampler-pSampler-parameter",
"text": " <code>pSampler</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkSampler\">VkSampler</a> handle"
}
+ ],
+ "(VKSC_VERSION_1_0)": [
+ {
+ "vuid": "VUID-vkCreateSampler-device-05068",
+ "text": " The number of {objectnameplural} currently allocated from <code>device</code> plus {objectcount} <strong class=\"purple\">must</strong> be less than or equal to the total number of {objectnameplural} requested via <code>VkDeviceObjectReservationCreateInfo</code>::pname:{objectnamecamelcase}RequestCount specified when <code>device</code> was created"
+ }
]
},
"VkSamplerCreateInfo": {
@@ -22691,14 +23603,6 @@
"text": " All submitted commands that refer to <code>sampler</code> <strong class=\"purple\">must</strong> have completed execution"
},
{
- "vuid": "VUID-vkDestroySampler-sampler-01083",
- "text": " If <code>VkAllocationCallbacks</code> were provided when <code>sampler</code> was created, a compatible set of callbacks <strong class=\"purple\">must</strong> be provided here"
- },
- {
- "vuid": "VUID-vkDestroySampler-sampler-01084",
- "text": " If no <code>VkAllocationCallbacks</code> were provided when <code>sampler</code> was created, <code>pAllocator</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
"vuid": "VUID-vkDestroySampler-device-parameter",
"text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
},
@@ -22714,6 +23618,16 @@
"vuid": "VUID-vkDestroySampler-sampler-parent",
"text": " If <code>sampler</code> is a valid handle, it <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
}
+ ],
+ "!(VKSC_VERSION_1_0)": [
+ {
+ "vuid": "VUID-vkDestroySampler-sampler-01083",
+ "text": " If <code>VkAllocationCallbacks</code> were provided when <code>sampler</code> was created, a compatible set of callbacks <strong class=\"purple\">must</strong> be provided here"
+ },
+ {
+ "vuid": "VUID-vkDestroySampler-sampler-01084",
+ "text": " If no <code>VkAllocationCallbacks</code> were provided when <code>sampler</code> was created, <code>pAllocator</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+ }
]
},
"VkSamplerYcbcrConversionInfo": {
@@ -22750,6 +23664,12 @@
"vuid": "VUID-vkCreateSamplerYcbcrConversion-pYcbcrConversion-parameter",
"text": " <code>pYcbcrConversion</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkSamplerYcbcrConversion\">VkSamplerYcbcrConversion</a> handle"
}
+ ],
+ "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)+(VKSC_VERSION_1_0)": [
+ {
+ "vuid": "VUID-vkCreateSamplerYcbcrConversion-device-05068",
+ "text": " The number of {objectnameplural} currently allocated from <code>device</code> plus {objectcount} <strong class=\"purple\">must</strong> be less than or equal to the total number of {objectnameplural} requested via <code>VkDeviceObjectReservationCreateInfo</code>::pname:{objectnamecamelcase}RequestCount specified when <code>device</code> was created"
+ }
]
},
"VkSamplerYcbcrConversionCreateInfo": {
@@ -22921,6 +23841,16 @@
]
},
"vkCreateDescriptorSetLayout": {
+ "(VKSC_VERSION_1_0)+(VKSC_VERSION_1_0)": [
+ {
+ "vuid": "VUID-vkCreateDescriptorSetLayout-device-05068",
+ "text": " The number of {objectnameplural} currently allocated from <code>device</code> plus {objectcount} <strong class=\"purple\">must</strong> be less than or equal to the total number of {objectnameplural} requested via <code>VkDeviceObjectReservationCreateInfo</code>::pname:{objectnamecamelcase}RequestCount specified when <code>device</code> was created"
+ },
+ {
+ "vuid": "VUID-vkCreateDescriptorSetLayout-layoutbindings-device-05089",
+ "text": " The number of descriptor set layout bindings currently allocated from <code>device</code> across all slink:VkDescriptorSetLayout objects plus pname:pCreateInfo-&gt;bindingCount <strong class=\"purple\">must</strong> be less than or equal to the total number of descriptor set layout bindings requested via <code>VkDeviceObjectReservationCreateInfo</code>::pname:descriptorSetLayoutBindingRequestCount specified when <code>device</code> was created"
+ }
+ ],
"core": [
{
"vuid": "VUID-vkCreateDescriptorSetLayout-device-parameter",
@@ -23027,6 +23957,16 @@
"text": " If <code>flags</code> contains <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_EXT</code>, <a href=\"#VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT\">VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT</a>::<code>mutableDescriptorType</code> <strong class=\"purple\">must</strong> be enabled"
}
],
+ "(VKSC_VERSION_1_0)": [
+ {
+ "vuid": "VUID-VkDescriptorSetLayoutCreateInfo-bindingCount-05011",
+ "text": " <code>bindingCount</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#limits-maxDescriptorSetLayoutBindings\">maxDescriptorSetLayoutBindings</a>"
+ },
+ {
+ "vuid": "VUID-VkDescriptorSetLayoutCreateInfo-descriptorCount-05071",
+ "text": " The sum of <code>descriptorCount</code> over all bindings in <code>pBindings</code> that have <code>descriptorType</code> of <code>VK_DESCRIPTOR_TYPE_SAMPLER</code> or <code>VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER</code> and <code>pImmutableSamplers</code> not equal to <code>NULL</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkDeviceObjectReservationCreateInfo</code>::<code>maxImmutableSamplersPerDescriptorSetLayout</code>"
+ }
+ ],
"(VK_EXT_descriptor_buffer)": [
{
"vuid": "VUID-VkDescriptorSetLayoutCreateInfo-flags-08000",
@@ -23164,6 +24104,12 @@
"vuid": "VUID-VkDescriptorSetLayoutBinding-descriptorType-04605",
"text": " If <code>descriptorType</code> is <code>VK_DESCRIPTOR_TYPE_MUTABLE_EXT</code>, then <code>pImmutableSamplers</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
}
+ ],
+ "(VKSC_VERSION_1_0)": [
+ {
+ "vuid": "VUID-VkDescriptorSetLayoutBinding-binding-05012",
+ "text": " <code>binding</code> <strong class=\"purple\">must</strong> be less than the value of <code>VkDeviceObjectReservationCreateInfo</code>::<code>descriptorSetLayoutBindingLimit</code> provided when the device was created"
+ }
]
},
"VkDescriptorSetLayoutBindingFlagsCreateInfo": {
@@ -23289,7 +24235,7 @@
]
},
"vkDestroyDescriptorSetLayout": {
- "core": [
+ "!(VKSC_VERSION_1_0)": [
{
"vuid": "VUID-vkDestroyDescriptorSetLayout-descriptorSetLayout-00284",
"text": " If <code>VkAllocationCallbacks</code> were provided when <code>descriptorSetLayout</code> was created, a compatible set of callbacks <strong class=\"purple\">must</strong> be provided here"
@@ -23297,7 +24243,9 @@
{
"vuid": "VUID-vkDestroyDescriptorSetLayout-descriptorSetLayout-00285",
"text": " If no <code>VkAllocationCallbacks</code> were provided when <code>descriptorSetLayout</code> was created, <code>pAllocator</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
+ }
+ ],
+ "core": [
{
"vuid": "VUID-vkDestroyDescriptorSetLayout-device-parameter",
"text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
@@ -23317,6 +24265,12 @@
]
},
"vkCreatePipelineLayout": {
+ "(VKSC_VERSION_1_0)+(VKSC_VERSION_1_0)": [
+ {
+ "vuid": "VUID-vkCreatePipelineLayout-device-05068",
+ "text": " The number of {objectnameplural} currently allocated from <code>device</code> plus {objectcount} <strong class=\"purple\">must</strong> be less than or equal to the total number of {objectnameplural} requested via <code>VkDeviceObjectReservationCreateInfo</code>::pname:{objectnamecamelcase}RequestCount specified when <code>device</code> was created"
+ }
+ ],
"core": [
{
"vuid": "VUID-vkCreatePipelineLayout-device-parameter",
@@ -23683,7 +24637,7 @@
]
},
"vkDestroyPipelineLayout": {
- "core": [
+ "!(VKSC_VERSION_1_0)": [
{
"vuid": "VUID-vkDestroyPipelineLayout-pipelineLayout-00299",
"text": " If <code>VkAllocationCallbacks</code> were provided when <code>pipelineLayout</code> was created, a compatible set of callbacks <strong class=\"purple\">must</strong> be provided here"
@@ -23691,7 +24645,9 @@
{
"vuid": "VUID-vkDestroyPipelineLayout-pipelineLayout-00300",
"text": " If no <code>VkAllocationCallbacks</code> were provided when <code>pipelineLayout</code> was created, <code>pAllocator</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
+ }
+ ],
+ "core": [
{
"vuid": "VUID-vkDestroyPipelineLayout-pipelineLayout-02004",
"text": " <code>pipelineLayout</code> <strong class=\"purple\">must</strong> not have been passed to any <code>vkCmd*</code> command for any command buffers that are still in the <a href=\"#commandbuffers-lifecycle\">recording state</a> when <code>vkDestroyPipelineLayout</code> is called"
@@ -23715,6 +24671,12 @@
]
},
"vkCreateDescriptorPool": {
+ "(VKSC_VERSION_1_0)+(VKSC_VERSION_1_0)": [
+ {
+ "vuid": "VUID-vkCreateDescriptorPool-device-05068",
+ "text": " The number of {objectnameplural} currently allocated from <code>device</code> plus {objectcount} <strong class=\"purple\">must</strong> be less than or equal to the total number of {objectnameplural} requested via <code>VkDeviceObjectReservationCreateInfo</code>::pname:{objectnamecamelcase}RequestCount specified when <code>device</code> was created"
+ }
+ ],
"core": [
{
"vuid": "VUID-vkCreateDescriptorPool-device-parameter",
@@ -23809,7 +24771,7 @@
]
},
"vkDestroyDescriptorPool": {
- "core": [
+ "!(VKSC_VERSION_1_0)": [
{
"vuid": "VUID-vkDestroyDescriptorPool-descriptorPool-00303",
"text": " All submitted commands that refer to <code>descriptorPool</code> (via any allocated descriptor sets) <strong class=\"purple\">must</strong> have completed execution"
@@ -23841,6 +24803,12 @@
]
},
"vkAllocateDescriptorSets": {
+ "(VKSC_VERSION_1_0)+(VKSC_VERSION_1_0)": [
+ {
+ "vuid": "VUID-vkAllocateDescriptorSets-device-05068",
+ "text": " The number of {objectnameplural} currently allocated from <code>device</code> plus {objectcount} <strong class=\"purple\">must</strong> be less than or equal to the total number of {objectnameplural} requested via <code>VkDeviceObjectReservationCreateInfo</code>::pname:{objectnamecamelcase}RequestCount specified when <code>device</code> was created"
+ }
+ ],
"core": [
{
"vuid": "VUID-vkAllocateDescriptorSets-device-parameter",
@@ -23861,7 +24829,7 @@
]
},
"VkDescriptorSetAllocateInfo": {
- "(VK_VERSION_1_1,VK_KHR_maintenance1)": [
+ "(VK_VERSION_1_1,VK_KHR_maintenance1)+!(VKSC_VERSION_1_0)": [
{
"vuid": "VUID-VkDescriptorSetAllocateInfo-apiVersion-07895",
"text": " If the <a href=\"#VK_KHR_maintenance1\">VK_KHR_maintenance1</a> extension is not enabled, <a href=\"#VkPhysicalDeviceProperties\">VkPhysicalDeviceProperties</a>::<code>apiVersion</code> is less than Vulkan 1.1, <code>descriptorSetCount</code> <strong class=\"purple\">must</strong> not be greater than the number of sets that are currently available for allocation in <code>descriptorPool</code>"
@@ -24587,7 +25555,7 @@
]
},
"vkCreateDescriptorUpdateTemplate": {
- "(VK_VERSION_1_1,VK_KHR_descriptor_update_template)": [
+ "!(VKSC_VERSION_1_0)+(VK_VERSION_1_1,VK_KHR_descriptor_update_template)": [
{
"vuid": "VUID-vkCreateDescriptorUpdateTemplate-device-parameter",
"text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
@@ -24607,7 +25575,7 @@
]
},
"VkDescriptorUpdateTemplateCreateInfo": {
- "(VK_VERSION_1_1,VK_KHR_descriptor_update_template)": [
+ "!(VKSC_VERSION_1_0)+(VK_VERSION_1_1,VK_KHR_descriptor_update_template)": [
{
"vuid": "VUID-VkDescriptorUpdateTemplateCreateInfo-templateType-00350",
"text": " If <code>templateType</code> is <code>VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET</code>, <code>descriptorSetLayout</code> <strong class=\"purple\">must</strong> be a valid <code>VkDescriptorSetLayout</code> handle"
@@ -24641,7 +25609,7 @@
"text": " Both of <code>descriptorSetLayout</code>, and <code>pipelineLayout</code> that are valid handles of non-ignored parameters <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
}
],
- "(VK_VERSION_1_1,VK_KHR_descriptor_update_template)+(VK_KHR_push_descriptor)": [
+ "!(VKSC_VERSION_1_0)+(VK_VERSION_1_1,VK_KHR_descriptor_update_template)+(VK_KHR_push_descriptor)": [
{
"vuid": "VUID-VkDescriptorUpdateTemplateCreateInfo-templateType-00351",
"text": " If <code>templateType</code> is <code>VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR</code>, <code>pipelineBindPoint</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPipelineBindPoint\">VkPipelineBindPoint</a> value"
@@ -24655,7 +25623,7 @@
"text": " If <code>templateType</code> is <code>VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR</code>, <code>set</code> <strong class=\"purple\">must</strong> be the unique set number in the pipeline layout that uses a descriptor set layout that was created with <code>VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR</code>"
}
],
- "(VK_VERSION_1_1,VK_KHR_descriptor_update_template)+(VK_EXT_mutable_descriptor_type,VK_VALVE_mutable_descriptor_type)": [
+ "!(VKSC_VERSION_1_0)+(VK_VERSION_1_1,VK_KHR_descriptor_update_template)+(VK_EXT_mutable_descriptor_type,VK_VALVE_mutable_descriptor_type)": [
{
"vuid": "VUID-VkDescriptorUpdateTemplateCreateInfo-templateType-04615",
"text": " If <code>templateType</code> is <code>VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET</code>, <code>descriptorSetLayout</code> <strong class=\"purple\">must</strong> not contain a binding with type <code>VK_DESCRIPTOR_TYPE_MUTABLE_EXT</code>"
@@ -24663,7 +25631,7 @@
]
},
"VkDescriptorUpdateTemplateEntry": {
- "(VK_VERSION_1_1,VK_KHR_descriptor_update_template)": [
+ "!(VKSC_VERSION_1_0)+(VK_VERSION_1_1,VK_KHR_descriptor_update_template)": [
{
"vuid": "VUID-VkDescriptorUpdateTemplateEntry-dstBinding-00354",
"text": " <code>dstBinding</code> <strong class=\"purple\">must</strong> be a valid binding in the descriptor set layout implicitly specified when using a descriptor update template to update descriptors"
@@ -24677,7 +25645,7 @@
"text": " <code>descriptorType</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDescriptorType\">VkDescriptorType</a> value"
}
],
- "(VK_VERSION_1_1,VK_KHR_descriptor_update_template)+(VK_VERSION_1_3,VK_EXT_inline_uniform_block)": [
+ "!(VKSC_VERSION_1_0)+(VK_VERSION_1_1,VK_KHR_descriptor_update_template)+(VK_VERSION_1_3,VK_EXT_inline_uniform_block)": [
{
"vuid": "VUID-VkDescriptorUpdateTemplateEntry-descriptor-02226",
"text": " If <code>descriptor</code> type is <code>VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK</code>, <code>dstArrayElement</code> <strong class=\"purple\">must</strong> be an integer multiple of <code>4</code>"
@@ -24689,7 +25657,7 @@
]
},
"vkDestroyDescriptorUpdateTemplate": {
- "(VK_VERSION_1_1,VK_KHR_descriptor_update_template)": [
+ "!(VKSC_VERSION_1_0)+(VK_VERSION_1_1,VK_KHR_descriptor_update_template)+!(VKSC_VERSION_1_0)": [
{
"vuid": "VUID-vkDestroyDescriptorUpdateTemplate-descriptorSetLayout-00356",
"text": " If <code>VkAllocationCallbacks</code> were provided when <code>descriptorUpdateTemplate</code> was created, a compatible set of callbacks <strong class=\"purple\">must</strong> be provided here"
@@ -24697,7 +25665,9 @@
{
"vuid": "VUID-vkDestroyDescriptorUpdateTemplate-descriptorSetLayout-00357",
"text": " If no <code>VkAllocationCallbacks</code> were provided when <code>descriptorUpdateTemplate</code> was created, <code>pAllocator</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
+ }
+ ],
+ "!(VKSC_VERSION_1_0)+(VK_VERSION_1_1,VK_KHR_descriptor_update_template)": [
{
"vuid": "VUID-vkDestroyDescriptorUpdateTemplate-device-parameter",
"text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
@@ -24717,7 +25687,7 @@
]
},
"vkUpdateDescriptorSetWithTemplate": {
- "(VK_VERSION_1_1,VK_KHR_descriptor_update_template)": [
+ "!(VKSC_VERSION_1_0)+(VK_VERSION_1_1,VK_KHR_descriptor_update_template)": [
{
"vuid": "VUID-vkUpdateDescriptorSetWithTemplate-pData-01685",
"text": " <code>pData</code> <strong class=\"purple\">must</strong> be a valid pointer to a memory containing one or more valid instances of <a href=\"#VkDescriptorImageInfo\">VkDescriptorImageInfo</a>, <a href=\"#VkDescriptorBufferInfo\">VkDescriptorBufferInfo</a>, or <a href=\"#VkBufferView\">VkBufferView</a> in a layout defined by <code>descriptorUpdateTemplate</code> when it was created with <a href=\"#vkCreateDescriptorUpdateTemplate\">vkCreateDescriptorUpdateTemplate</a>"
@@ -24739,13 +25709,13 @@
"text": " <code>descriptorUpdateTemplate</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
}
],
- "(VK_VERSION_1_1,VK_KHR_descriptor_update_template)+!(VK_VERSION_1_2,VK_EXT_descriptor_indexing)": [
+ "!(VKSC_VERSION_1_0)+(VK_VERSION_1_1,VK_KHR_descriptor_update_template)+!(VK_VERSION_1_2,VK_EXT_descriptor_indexing)": [
{
"vuid": "VUID-vkUpdateDescriptorSetWithTemplate-descriptorSet-06994",
"text": " Host access to <code>descriptorSet</code> <strong class=\"purple\">must</strong> be <a href=\"#fundamentals-threadingbehavior\">externally synchronized</a>"
}
],
- "(VK_VERSION_1_1,VK_KHR_descriptor_update_template)+(VK_VERSION_1_2,VK_EXT_descriptor_indexing)": [
+ "!(VKSC_VERSION_1_0)+(VK_VERSION_1_1,VK_KHR_descriptor_update_template)+(VK_VERSION_1_2,VK_EXT_descriptor_indexing)": [
{
"vuid": "VUID-vkUpdateDescriptorSetWithTemplate-descriptorSet-06995",
"text": " Host access to <code>descriptorSet</code> <strong class=\"purple\">must</strong> be <a href=\"#fundamentals-threadingbehavior\">externally synchronized</a> unless explicitly denoted otherwise for specific flags"
@@ -27813,6 +28783,12 @@
]
},
"vkCreateQueryPool": {
+ "(VKSC_VERSION_1_0)+(VKSC_VERSION_1_0)": [
+ {
+ "vuid": "VUID-vkCreateQueryPool-device-05068",
+ "text": " The number of {objectnameplural} currently allocated from <code>device</code> plus {objectcount} <strong class=\"purple\">must</strong> be less than or equal to the total number of {objectnameplural} requested via <code>VkDeviceObjectReservationCreateInfo</code>::pname:{objectnamecamelcase}RequestCount specified when <code>device</code> was created"
+ }
+ ],
"core": [
{
"vuid": "VUID-vkCreateQueryPool-device-parameter",
@@ -27883,6 +28859,26 @@
"text": " If <code>queryType</code> is <code>VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR</code>, the <code>pNext</code> chain <strong class=\"purple\">must</strong> include a <a href=\"#VkQueryPoolPerformanceCreateInfoKHR\">VkQueryPoolPerformanceCreateInfoKHR</a> structure"
}
],
+ "(VKSC_VERSION_1_0)": [
+ {
+ "vuid": "VUID-VkQueryPoolCreateInfo-queryType-05046",
+ "text": " If <code>queryType</code> is <code>VK_QUERY_TYPE_OCCLUSION</code> then <code>queryCount</code> <strong class=\"purple\">must</strong> be less than or equal to the maximum of all <code>VkDeviceObjectReservationCreateInfo</code>::<code>maxOcclusionQueriesPerPool</code> values specified when <code>device</code> was created"
+ },
+ {
+ "vuid": "VUID-VkQueryPoolCreateInfo-queryType-05047",
+ "text": " If <code>queryType</code> is <code>VK_QUERY_TYPE_PIPELINE_STATISTICS</code> then <code>queryCount</code> <strong class=\"purple\">must</strong> be less than or equal to the maximum of all <code>VkDeviceObjectReservationCreateInfo</code>::<code>maxPipelineStatisticsQueriesPerPool</code> values specified when <code>device</code> was created"
+ },
+ {
+ "vuid": "VUID-VkQueryPoolCreateInfo-queryType-05048",
+ "text": " If <code>queryType</code> is <code>VK_QUERY_TYPE_TIMESTAMP</code> then <code>queryCount</code> <strong class=\"purple\">must</strong> be less than or equal to the maximum of all <code>VkDeviceObjectReservationCreateInfo</code>::<code>maxTimestampQueriesPerPool</code> values specified when <code>device</code> was created"
+ }
+ ],
+ "(VKSC_VERSION_1_0)+(VK_KHR_performance_query)": [
+ {
+ "vuid": "VUID-VkQueryPoolCreateInfo-queryType-05049",
+ "text": " If <code>queryType</code> is <code>VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR</code> then <code>queryCount</code> <strong class=\"purple\">must</strong> be less than or equal to the maximum of all <code>VkPerformanceQueryReservationInfoKHR</code>::<code>maxPerformanceQueriesPerPool</code> values specified when <code>device</code> was created"
+ }
+ ],
"(VK_KHR_video_encode_queue)": [
{
"vuid": "VUID-VkQueryPoolCreateInfo-queryType-07133",
@@ -27943,7 +28939,7 @@
]
},
"vkDestroyQueryPool": {
- "core": [
+ "!(VKSC_VERSION_1_0)": [
{
"vuid": "VUID-vkDestroyQueryPool-queryPool-00793",
"text": " All submitted commands that refer to <code>queryPool</code> <strong class=\"purple\">must</strong> have completed execution"
@@ -29851,7 +30847,7 @@
"text": " Both of <code>commandBuffer</code>, and <code>dstBuffer</code> <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
}
],
- "(VK_VERSION_1_1,VK_KHR_maintenance1)": [
+ "(VK_VERSION_1_1,VK_KHR_maintenance1)+!(VKSC_VERSION_1_0)": [
{
"vuid": "VUID-vkCmdFillBuffer-apiVersion-07894",
"text": " If the <a href=\"#VK_KHR_maintenance1\">VK_KHR_maintenance1</a> extension is not enabled and <a href=\"#VkPhysicalDeviceProperties\">VkPhysicalDeviceProperties</a>::<code>apiVersion</code> is less than Vulkan 1.1, the <a href=\"#VkCommandPool\">VkCommandPool</a> that <code>commandBuffer</code> was allocated from <strong class=\"purple\">must</strong> support graphics or compute operations"
@@ -30399,10 +31395,6 @@
"text": " The <a href=\"#resources-image-format-features\">format features</a> of <code>dstImage</code> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_TRANSFER_DST_BIT</code>"
},
{
- "vuid": "VUID-vkCmdCopyImage-apiVersion-07932",
- "text": " If the <a href=\"#VK_KHR_maintenance1\">VK_KHR_maintenance1</a> extension is not enabled, <a href=\"#VkPhysicalDeviceProperties\">VkPhysicalDeviceProperties</a>::<code>apiVersion</code> is less than Vulkan 1.1, and either <code>srcImage</code> or <code>dstImage</code> is of type <code>VK_IMAGE_TYPE_3D</code>, then for each element of <code>pRegions</code>, <code>srcSubresource.baseArrayLayer</code> and <code>dstSubresource.baseArrayLayer</code> <strong class=\"purple\">must</strong> each be <code>0</code>, and <code>srcSubresource.layerCount</code> and <code>dstSubresource.layerCount</code> <strong class=\"purple\">must</strong> each be <code>1</code>"
- },
- {
"vuid": "VUID-vkCmdCopyImage-srcImage-04443",
"text": " If <code>srcImage</code> is of type <code>VK_IMAGE_TYPE_3D</code>, then for each element of <code>pRegions</code>, <code>srcSubresource.baseArrayLayer</code> <strong class=\"purple\">must</strong> be <code>0</code> and <code>srcSubresource.layerCount</code> <strong class=\"purple\">must</strong> be <code>1</code>"
},
@@ -30411,10 +31403,6 @@
"text": " If <code>dstImage</code> is of type <code>VK_IMAGE_TYPE_3D</code>, then for each element of <code>pRegions</code>, <code>dstSubresource.baseArrayLayer</code> <strong class=\"purple\">must</strong> be <code>0</code> and <code>dstSubresource.layerCount</code> <strong class=\"purple\">must</strong> be <code>1</code>"
},
{
- "vuid": "VUID-vkCmdCopyImage-apiVersion-07933",
- "text": " If the <a href=\"#VK_KHR_maintenance1\">VK_KHR_maintenance1</a> extension is not enabled, <a href=\"#VkPhysicalDeviceProperties\">VkPhysicalDeviceProperties</a>::<code>apiVersion</code> is less than Vulkan 1.1, <code>srcImage</code> and <code>dstImage</code> <strong class=\"purple\">must</strong> have the same <a href=\"#VkImageType\">VkImageType</a>"
- },
- {
"vuid": "VUID-vkCmdCopyImage-srcImage-07743",
"text": " If <code>srcImage</code> and <code>dstImage</code> have a different <a href=\"#VkImageType\">VkImageType</a>, one <strong class=\"purple\">must</strong> be <code>VK_IMAGE_TYPE_3D</code> and the other <strong class=\"purple\">must</strong> be <code>VK_IMAGE_TYPE_2D</code>"
},
@@ -30521,6 +31509,16 @@
"text": " If <code>srcImage</code> or <code>dstImage</code> is of type <code>VK_IMAGE_TYPE_2D</code>, then for each element of <code>pRegions</code>, <code>extent.depth</code> <strong class=\"purple\">must</strong> be <code>1</code>"
}
],
+ "(VK_VERSION_1_1,VK_KHR_maintenance1)+!(VKSC_VERSION_1_0)": [
+ {
+ "vuid": "VUID-vkCmdCopyImage-apiVersion-07932",
+ "text": " If the <a href=\"#VK_KHR_maintenance1\">VK_KHR_maintenance1</a> extension is not enabled, <a href=\"#VkPhysicalDeviceProperties\">VkPhysicalDeviceProperties</a>::<code>apiVersion</code> is less than Vulkan 1.1, and either <code>srcImage</code> or <code>dstImage</code> is of type <code>VK_IMAGE_TYPE_3D</code>, then for each element of <code>pRegions</code>, <code>srcSubresource.baseArrayLayer</code> and <code>dstSubresource.baseArrayLayer</code> <strong class=\"purple\">must</strong> each be <code>0</code>, and <code>srcSubresource.layerCount</code> and <code>dstSubresource.layerCount</code> <strong class=\"purple\">must</strong> each be <code>1</code>"
+ },
+ {
+ "vuid": "VUID-vkCmdCopyImage-apiVersion-07933",
+ "text": " If the <a href=\"#VK_KHR_maintenance1\">VK_KHR_maintenance1</a> extension is not enabled, <a href=\"#VkPhysicalDeviceProperties\">VkPhysicalDeviceProperties</a>::<code>apiVersion</code> is less than Vulkan 1.1, <code>srcImage</code> and <code>dstImage</code> <strong class=\"purple\">must</strong> have the same <a href=\"#VkImageType\">VkImageType</a>"
+ }
+ ],
"!(VK_VERSION_1_2,VK_EXT_separate_stencil_usage)": [
{
"vuid": "VUID-vkCmdCopyImage-srcImage-00126",
@@ -30567,13 +31565,13 @@
"text": " The <code>aspectMask</code> member of <code>srcSubresource</code> and <code>dstSubresource</code> <strong class=\"purple\">must</strong> match"
}
],
- "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
+ "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)+!(VKSC_VERSION_1_0)": [
{
"vuid": "VUID-VkImageCopy-apiVersion-07940",
"text": " If the <a href=\"#VK_KHR_sampler_ycbcr_conversion\">VK_KHR_sampler_ycbcr_conversion</a> extension is not enabled and <a href=\"#VkPhysicalDeviceProperties\">VkPhysicalDeviceProperties</a>::<code>apiVersion</code> is less than Vulkan 1.1, the <code>aspectMask</code> member of <code>srcSubresource</code> and <code>dstSubresource</code> <strong class=\"purple\">must</strong> match"
}
],
- "(VK_VERSION_1_1,VK_KHR_maintenance1)": [
+ "(VK_VERSION_1_1,VK_KHR_maintenance1)+!(VKSC_VERSION_1_0)": [
{
"vuid": "VUID-VkImageCopy-apiVersion-07941",
"text": " If the <a href=\"#VK_KHR_maintenance1\">VK_KHR_maintenance1</a> extension is not enabled and <a href=\"#VkPhysicalDeviceProperties\">VkPhysicalDeviceProperties</a>::<code>apiVersion</code> is less than Vulkan 1.1, the <code>layerCount</code> member of <code>srcSubresource</code> and <code>dstSubresource</code> <strong class=\"purple\">must</strong> match"
@@ -30873,10 +31871,6 @@
"text": " The <a href=\"#resources-image-format-features\">format features</a> of <code>dstImage</code> <strong class=\"purple\">must</strong> contain <code>VK_FORMAT_FEATURE_TRANSFER_DST_BIT</code>"
},
{
- "vuid": "VUID-VkCopyImageInfo2-apiVersion-07932",
- "text": " If the <a href=\"#VK_KHR_maintenance1\">VK_KHR_maintenance1</a> extension is not enabled, <a href=\"#VkPhysicalDeviceProperties\">VkPhysicalDeviceProperties</a>::<code>apiVersion</code> is less than Vulkan 1.1, and either <code>srcImage</code> or <code>dstImage</code> is of type <code>VK_IMAGE_TYPE_3D</code>, then for each element of <code>pRegions</code>, <code>srcSubresource.baseArrayLayer</code> and <code>dstSubresource.baseArrayLayer</code> <strong class=\"purple\">must</strong> each be <code>0</code>, and <code>srcSubresource.layerCount</code> and <code>dstSubresource.layerCount</code> <strong class=\"purple\">must</strong> each be <code>1</code>"
- },
- {
"vuid": "VUID-VkCopyImageInfo2-srcImage-04443",
"text": " If <code>srcImage</code> is of type <code>VK_IMAGE_TYPE_3D</code>, then for each element of <code>pRegions</code>, <code>srcSubresource.baseArrayLayer</code> <strong class=\"purple\">must</strong> be <code>0</code> and <code>srcSubresource.layerCount</code> <strong class=\"purple\">must</strong> be <code>1</code>"
},
@@ -30885,10 +31879,6 @@
"text": " If <code>dstImage</code> is of type <code>VK_IMAGE_TYPE_3D</code>, then for each element of <code>pRegions</code>, <code>dstSubresource.baseArrayLayer</code> <strong class=\"purple\">must</strong> be <code>0</code> and <code>dstSubresource.layerCount</code> <strong class=\"purple\">must</strong> be <code>1</code>"
},
{
- "vuid": "VUID-VkCopyImageInfo2-apiVersion-07933",
- "text": " If the <a href=\"#VK_KHR_maintenance1\">VK_KHR_maintenance1</a> extension is not enabled, <a href=\"#VkPhysicalDeviceProperties\">VkPhysicalDeviceProperties</a>::<code>apiVersion</code> is less than Vulkan 1.1, <code>srcImage</code> and <code>dstImage</code> <strong class=\"purple\">must</strong> have the same <a href=\"#VkImageType\">VkImageType</a>"
- },
- {
"vuid": "VUID-VkCopyImageInfo2-srcImage-07743",
"text": " If <code>srcImage</code> and <code>dstImage</code> have a different <a href=\"#VkImageType\">VkImageType</a>, one <strong class=\"purple\">must</strong> be <code>VK_IMAGE_TYPE_3D</code> and the other <strong class=\"purple\">must</strong> be <code>VK_IMAGE_TYPE_2D</code>"
},
@@ -30995,6 +31985,16 @@
"text": " If <code>srcImage</code> or <code>dstImage</code> is of type <code>VK_IMAGE_TYPE_2D</code>, then for each element of <code>pRegions</code>, <code>extent.depth</code> <strong class=\"purple\">must</strong> be <code>1</code>"
}
],
+ "(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_VERSION_1_1,VK_KHR_maintenance1)+!(VKSC_VERSION_1_0)": [
+ {
+ "vuid": "VUID-VkCopyImageInfo2-apiVersion-07932",
+ "text": " If the <a href=\"#VK_KHR_maintenance1\">VK_KHR_maintenance1</a> extension is not enabled, <a href=\"#VkPhysicalDeviceProperties\">VkPhysicalDeviceProperties</a>::<code>apiVersion</code> is less than Vulkan 1.1, and either <code>srcImage</code> or <code>dstImage</code> is of type <code>VK_IMAGE_TYPE_3D</code>, then for each element of <code>pRegions</code>, <code>srcSubresource.baseArrayLayer</code> and <code>dstSubresource.baseArrayLayer</code> <strong class=\"purple\">must</strong> each be <code>0</code>, and <code>srcSubresource.layerCount</code> and <code>dstSubresource.layerCount</code> <strong class=\"purple\">must</strong> each be <code>1</code>"
+ },
+ {
+ "vuid": "VUID-VkCopyImageInfo2-apiVersion-07933",
+ "text": " If the <a href=\"#VK_KHR_maintenance1\">VK_KHR_maintenance1</a> extension is not enabled, <a href=\"#VkPhysicalDeviceProperties\">VkPhysicalDeviceProperties</a>::<code>apiVersion</code> is less than Vulkan 1.1, <code>srcImage</code> and <code>dstImage</code> <strong class=\"purple\">must</strong> have the same <a href=\"#VkImageType\">VkImageType</a>"
+ }
+ ],
"(VK_VERSION_1_3,VK_KHR_copy_commands2)+!(VK_VERSION_1_2,VK_EXT_separate_stencil_usage)": [
{
"vuid": "VUID-VkCopyImageInfo2-srcImage-00126",
@@ -31041,13 +32041,13 @@
"text": " The <code>aspectMask</code> member of <code>srcSubresource</code> and <code>dstSubresource</code> <strong class=\"purple\">must</strong> match"
}
],
- "(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [
+ "(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)+!(VKSC_VERSION_1_0)": [
{
"vuid": "VUID-VkImageCopy2-apiVersion-07940",
"text": " If the <a href=\"#VK_KHR_sampler_ycbcr_conversion\">VK_KHR_sampler_ycbcr_conversion</a> extension is not enabled and <a href=\"#VkPhysicalDeviceProperties\">VkPhysicalDeviceProperties</a>::<code>apiVersion</code> is less than Vulkan 1.1, the <code>aspectMask</code> member of <code>srcSubresource</code> and <code>dstSubresource</code> <strong class=\"purple\">must</strong> match"
}
],
- "(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_VERSION_1_1,VK_KHR_maintenance1)": [
+ "(VK_VERSION_1_3,VK_KHR_copy_commands2)+(VK_VERSION_1_1,VK_KHR_maintenance1)+!(VKSC_VERSION_1_0)": [
{
"vuid": "VUID-VkImageCopy2-apiVersion-07941",
"text": " If the <a href=\"#VK_KHR_maintenance1\">VK_KHR_maintenance1</a> extension is not enabled and <a href=\"#VkPhysicalDeviceProperties\">VkPhysicalDeviceProperties</a>::<code>apiVersion</code> is less than Vulkan 1.1, the <code>layerCount</code> member of <code>srcSubresource</code> and <code>dstSubresource</code> <strong class=\"purple\">must</strong> match"
@@ -33522,6 +34522,18 @@
}
]
},
+ "VkRefreshObjectKHR": {
+ "(VK_KHR_object_refresh)": [
+ {
+ "vuid": "VUID-VkRefreshObjectKHR-objectHandle-05069",
+ "text": " <code>objectHandle</code> <strong class=\"purple\">must</strong> be a valid Vulkan handle of the type associated with <code>objectType</code> as defined in the <a href=\"#debugging-object-types\">VkObjectType and Vulkan Handle Relationship</a> table"
+ },
+ {
+ "vuid": "VUID-VkRefreshObjectKHR-objectType-05070",
+ "text": " <code>objectType</code> <strong class=\"purple\">must</strong> not be <code>VK_OBJECT_TYPE_UNKNOWN</code>"
+ }
+ ]
+ },
"vkCmdWriteBufferMarker2AMD": {
"(VK_AMD_buffer_marker)+(VK_VERSION_1_3,VK_KHR_synchronization2)": [
{
@@ -63157,10 +64169,6 @@
"text": " <code>width</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxViewportDimensions</code>[0]"
},
{
- "vuid": "VUID-VkViewport-apiVersion-07917",
- "text": " If the <a href=\"#VK_KHR_maintenance1\">VK_KHR_maintenance1</a> extension is not enabled, the <a href=\"#VK_AMD_negative_viewport_height\">VK_AMD_negative_viewport_height</a> extension is not enabled, and <a href=\"#VkPhysicalDeviceProperties\">VkPhysicalDeviceProperties</a>::<code>apiVersion</code> is less than Vulkan 1.1, <code>height</code> <strong class=\"purple\">must</strong> be greater than <code>0.0</code>"
- },
- {
"vuid": "VUID-VkViewport-height-01773",
"text": " The absolute value of <code>height</code> <strong class=\"purple\">must</strong> be less than or equal to <code>VkPhysicalDeviceLimits</code>::<code>maxViewportDimensions</code>[1]"
},
@@ -63181,6 +64189,12 @@
"text": " <span class=\"eq\">(<code>y</code> &#43; <code>height</code>)</span> <strong class=\"purple\">must</strong> be less than or equal to <code>viewportBoundsRange</code>[1]"
}
],
+ "!(VKSC_VERSION_1_0)": [
+ {
+ "vuid": "VUID-VkViewport-apiVersion-07917",
+ "text": " If the <a href=\"#VK_KHR_maintenance1\">VK_KHR_maintenance1</a> extension is not enabled, the <a href=\"#VK_AMD_negative_viewport_height\">VK_AMD_negative_viewport_height</a> extension is not enabled, and <a href=\"#VkPhysicalDeviceProperties\">VkPhysicalDeviceProperties</a>::<code>apiVersion</code> is less than Vulkan 1.1, <code>height</code> <strong class=\"purple\">must</strong> be greater than <code>0.0</code>"
+ }
+ ],
"(VK_VERSION_1_1,VK_KHR_maintenance1,VK_AMD_negative_viewport_height)": [
{
"vuid": "VUID-VkViewport-y-01776",
@@ -67951,14 +68965,6 @@
"text": " All submitted commands that refer to <code>indirectCommandsLayout</code> <strong class=\"purple\">must</strong> have completed execution"
},
{
- "vuid": "VUID-vkDestroyIndirectCommandsLayoutNV-indirectCommandsLayout-02939",
- "text": " If <code>VkAllocationCallbacks</code> were provided when <code>indirectCommandsLayout</code> was created, a compatible set of callbacks <strong class=\"purple\">must</strong> be provided here"
- },
- {
- "vuid": "VUID-vkDestroyIndirectCommandsLayoutNV-indirectCommandsLayout-02940",
- "text": " If no <code>VkAllocationCallbacks</code> were provided when <code>indirectCommandsLayout</code> was created, <code>pAllocator</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
"vuid": "VUID-vkDestroyIndirectCommandsLayoutNV-deviceGeneratedCommands-02941",
"text": " The <a href=\"#features-deviceGeneratedCommands\"><code>VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV</code>::<code>deviceGeneratedCommands</code></a> feature <strong class=\"purple\">must</strong> be enabled"
},
@@ -67978,6 +68984,16 @@
"vuid": "VUID-vkDestroyIndirectCommandsLayoutNV-indirectCommandsLayout-parent",
"text": " If <code>indirectCommandsLayout</code> is a valid handle, it <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
}
+ ],
+ "(VK_NV_device_generated_commands)+!(VKSC_VERSION_1_0)": [
+ {
+ "vuid": "VUID-vkDestroyIndirectCommandsLayoutNV-indirectCommandsLayout-02939",
+ "text": " If <code>VkAllocationCallbacks</code> were provided when <code>indirectCommandsLayout</code> was created, a compatible set of callbacks <strong class=\"purple\">must</strong> be provided here"
+ },
+ {
+ "vuid": "VUID-vkDestroyIndirectCommandsLayoutNV-indirectCommandsLayout-02940",
+ "text": " If no <code>VkAllocationCallbacks</code> were provided when <code>indirectCommandsLayout</code> was created, <code>pAllocator</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+ }
]
},
"VkIndirectCommandsStreamNV": {
@@ -69999,7 +71015,7 @@
]
},
"vkGetPhysicalDeviceSparseImageFormatProperties": {
- "core": [
+ "!(VKSC_VERSION_1_0)": [
{
"vuid": "VUID-vkGetPhysicalDeviceSparseImageFormatProperties-samples-01094",
"text": " <code>samples</code> <strong class=\"purple\">must</strong> be a bit value that is set in <code>VkImageFormatProperties</code>::<code>sampleCounts</code> returned by <code>vkGetPhysicalDeviceImageFormatProperties</code> with <code>format</code>, <code>type</code>, <code>tiling</code>, and <code>usage</code> equal to those in this command and <code>flags</code> equal to the value that is set in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>flags</code> when the image is created"
@@ -70043,7 +71059,7 @@
]
},
"vkGetPhysicalDeviceSparseImageFormatProperties2": {
- "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)": [
+ "!(VKSC_VERSION_1_0)+(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)": [
{
"vuid": "VUID-vkGetPhysicalDeviceSparseImageFormatProperties2-physicalDevice-parameter",
"text": " <code>physicalDevice</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkPhysicalDevice\">VkPhysicalDevice</a> handle"
@@ -70063,7 +71079,7 @@
]
},
"VkPhysicalDeviceSparseImageFormatInfo2": {
- "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)": [
+ "!(VKSC_VERSION_1_0)+(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)": [
{
"vuid": "VUID-VkPhysicalDeviceSparseImageFormatInfo2-samples-01095",
"text": " <code>samples</code> <strong class=\"purple\">must</strong> be a bit value that is set in <code>VkImageFormatProperties</code>::<code>sampleCounts</code> returned by <code>vkGetPhysicalDeviceImageFormatProperties</code> with <code>format</code>, <code>type</code>, <code>tiling</code>, and <code>usage</code> equal to those in this command and <code>flags</code> equal to the value that is set in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a>::<code>flags</code> when the image is created"
@@ -70103,7 +71119,7 @@
]
},
"VkSparseImageFormatProperties2": {
- "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)": [
+ "!(VKSC_VERSION_1_0)+(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)": [
{
"vuid": "VUID-VkSparseImageFormatProperties2-sType-sType",
"text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2</code>"
@@ -70115,7 +71131,7 @@
]
},
"vkGetImageSparseMemoryRequirements": {
- "core": [
+ "!(VKSC_VERSION_1_0)": [
{
"vuid": "VUID-vkGetImageSparseMemoryRequirements-device-parameter",
"text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
@@ -70139,7 +71155,7 @@
]
},
"vkGetImageSparseMemoryRequirements2": {
- "(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)": [
+ "!(VKSC_VERSION_1_0)+(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)": [
{
"vuid": "VUID-vkGetImageSparseMemoryRequirements2-device-parameter",
"text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
@@ -70159,7 +71175,7 @@
]
},
"vkGetDeviceImageSparseMemoryRequirements": {
- "(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)+(VK_VERSION_1_3,VK_KHR_maintenance4)": [
+ "!(VKSC_VERSION_1_0)+(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)+(VK_VERSION_1_3,VK_KHR_maintenance4)": [
{
"vuid": "VUID-vkGetDeviceImageSparseMemoryRequirements-device-parameter",
"text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
@@ -70179,7 +71195,7 @@
]
},
"VkImageSparseMemoryRequirementsInfo2": {
- "(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)": [
+ "!(VKSC_VERSION_1_0)+(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)": [
{
"vuid": "VUID-VkImageSparseMemoryRequirementsInfo2-sType-sType",
"text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2</code>"
@@ -70195,7 +71211,7 @@
]
},
"VkSparseImageMemoryRequirements2": {
- "(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)": [
+ "!(VKSC_VERSION_1_0)+(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)": [
{
"vuid": "VUID-VkSparseImageMemoryRequirements2-sType-sType",
"text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2</code>"
@@ -70207,7 +71223,7 @@
]
},
"VkSparseMemoryBind": {
- "core": [
+ "!(VKSC_VERSION_1_0)": [
{
"vuid": "VUID-VkSparseMemoryBind-memory-01096",
"text": " If <code>memory</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>memory</code> and <code>memoryOffset</code> <strong class=\"purple\">must</strong> match the memory requirements of the resource, as described in section <a href=\"#resources-association\">Resource Memory Association</a>"
@@ -70245,7 +71261,7 @@
"text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkSparseMemoryBindFlagBits\">VkSparseMemoryBindFlagBits</a> values"
}
],
- "(VK_VERSION_1_1,VK_KHR_external_memory)": [
+ "!(VKSC_VERSION_1_0)+(VK_VERSION_1_1,VK_KHR_external_memory)": [
{
"vuid": "VUID-VkSparseMemoryBind-memory-02730",
"text": " If <code>memory</code> was created with <a href=\"#VkExportMemoryAllocateInfo\">VkExportMemoryAllocateInfo</a>::<code>handleTypes</code> not equal to <code>0</code>, at least one handle type it contained <strong class=\"purple\">must</strong> also have been set in <a href=\"#VkExternalMemoryBufferCreateInfo\">VkExternalMemoryBufferCreateInfo</a>::<code>handleTypes</code> or <a href=\"#VkExternalMemoryImageCreateInfo\">VkExternalMemoryImageCreateInfo</a>::<code>handleTypes</code> when the resource was created"
@@ -70257,7 +71273,7 @@
]
},
"VkSparseBufferMemoryBindInfo": {
- "core": [
+ "!(VKSC_VERSION_1_0)": [
{
"vuid": "VUID-VkSparseBufferMemoryBindInfo-buffer-parameter",
"text": " <code>buffer</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkBuffer\">VkBuffer</a> handle"
@@ -70273,7 +71289,7 @@
]
},
"VkSparseImageOpaqueMemoryBindInfo": {
- "core": [
+ "!(VKSC_VERSION_1_0)": [
{
"vuid": "VUID-VkSparseImageOpaqueMemoryBindInfo-pBinds-01103",
"text": " If the <code>flags</code> member of any element of <code>pBinds</code> contains <code>VK_SPARSE_MEMORY_BIND_METADATA_BIT</code>, the binding range defined <strong class=\"purple\">must</strong> be within the mip tail region of the metadata aspect of <code>image</code>"
@@ -70293,7 +71309,7 @@
]
},
"VkSparseImageMemoryBindInfo": {
- "core": [
+ "!(VKSC_VERSION_1_0)": [
{
"vuid": "VUID-VkSparseImageMemoryBindInfo-subresource-01722",
"text": " The <code>subresource.mipLevel</code> member of each element of <code>pBinds</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"
@@ -70321,7 +71337,7 @@
]
},
"VkSparseImageMemoryBind": {
- "core": [
+ "!(VKSC_VERSION_1_0)": [
{
"vuid": "VUID-VkSparseImageMemoryBind-memory-01104",
"text": " If the <a href=\"#features-sparseResidencyAliased\"><code>sparseResidencyAliased</code></a> feature is not enabled, and if any other resources are bound to ranges of <code>memory</code>, the range of <code>memory</code> being bound <strong class=\"purple\">must</strong> not overlap with those bound ranges"
@@ -70371,7 +71387,7 @@
"text": " <code>flags</code> <strong class=\"purple\">must</strong> be a valid combination of <a href=\"#VkSparseMemoryBindFlagBits\">VkSparseMemoryBindFlagBits</a> values"
}
],
- "(VK_VERSION_1_1,VK_KHR_external_memory)": [
+ "!(VKSC_VERSION_1_0)+(VK_VERSION_1_1,VK_KHR_external_memory)": [
{
"vuid": "VUID-VkSparseImageMemoryBind-memory-02732",
"text": " If <code>memory</code> was created with <a href=\"#VkExportMemoryAllocateInfo\">VkExportMemoryAllocateInfo</a>::<code>handleTypes</code> not equal to <code>0</code>, at least one handle type it contained <strong class=\"purple\">must</strong> also have been set in <a href=\"#VkExternalMemoryImageCreateInfo\">VkExternalMemoryImageCreateInfo</a>::<code>handleTypes</code> when the image was created"
@@ -70383,7 +71399,7 @@
]
},
"vkQueueBindSparse": {
- "core": [
+ "!(VKSC_VERSION_1_0)": [
{
"vuid": "VUID-vkQueueBindSparse-fence-01113",
"text": " If <code>fence</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>fence</code> <strong class=\"purple\">must</strong> be unsignaled"
@@ -70425,7 +71441,7 @@
"text": " Both of <code>fence</code>, and <code>queue</code> that are valid handles of non-ignored parameters <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from the same <a href=\"#VkDevice\">VkDevice</a>"
}
],
- "(VK_VERSION_1_2,VK_KHR_timeline_semaphore)": [
+ "!(VKSC_VERSION_1_0)+(VK_VERSION_1_2,VK_KHR_timeline_semaphore)": [
{
"vuid": "VUID-vkQueueBindSparse-pWaitSemaphores-03245",
"text": " All elements of the <code>pWaitSemaphores</code> member of all elements of <code>pBindInfo</code> created with a <a href=\"#VkSemaphoreType\">VkSemaphoreType</a> of <code>VK_SEMAPHORE_TYPE_BINARY</code> <strong class=\"purple\">must</strong> reference a semaphore signal operation that has been submitted for execution and any semaphore signal operations on which it depends (if any) <strong class=\"purple\">must</strong> have also been submitted for execution"
@@ -70433,7 +71449,7 @@
]
},
"VkBindSparseInfo": {
- "(VK_VERSION_1_2,VK_KHR_timeline_semaphore)": [
+ "!(VKSC_VERSION_1_0)+(VK_VERSION_1_2,VK_KHR_timeline_semaphore)": [
{
"vuid": "VUID-VkBindSparseInfo-pWaitSemaphores-03246",
"text": " If any element of <code>pWaitSemaphores</code> or <code>pSignalSemaphores</code> was created with a <a href=\"#VkSemaphoreType\">VkSemaphoreType</a> of <code>VK_SEMAPHORE_TYPE_TIMELINE</code> then the <code>pNext</code> chain <strong class=\"purple\">must</strong> include a <a href=\"#VkTimelineSemaphoreSubmitInfo\">VkTimelineSemaphoreSubmitInfo</a> structure"
@@ -70459,7 +71475,7 @@
"text": " For each element of <code>pSignalSemaphores</code> created with a <a href=\"#VkSemaphoreType\">VkSemaphoreType</a> of <code>VK_SEMAPHORE_TYPE_TIMELINE</code> the corresponding element of <a href=\"#VkTimelineSemaphoreSubmitInfo\">VkTimelineSemaphoreSubmitInfo</a>::<code>pSignalSemaphoreValues</code> <strong class=\"purple\">must</strong> have a value which does not differ from the current value of the semaphore or from the value of any outstanding semaphore wait or signal operation on that semaphore by more than <a href=\"#limits-maxTimelineSemaphoreValueDifference\"><code>maxTimelineSemaphoreValueDifference</code></a>"
}
],
- "core": [
+ "!(VKSC_VERSION_1_0)": [
{
"vuid": "VUID-VkBindSparseInfo-sType-sType",
"text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_BIND_SPARSE_INFO</code>"
@@ -70499,7 +71515,7 @@
]
},
"VkDeviceGroupBindSparseInfo": {
- "(VK_VERSION_1_1,VK_KHR_device_group)": [
+ "!(VKSC_VERSION_1_0)+(VK_VERSION_1_1,VK_KHR_device_group)": [
{
"vuid": "VUID-VkDeviceGroupBindSparseInfo-resourceDeviceIndex-01118",
"text": " <code>resourceDeviceIndex</code> and <code>memoryDeviceIndex</code> <strong class=\"purple\">must</strong> both be valid device indices"
@@ -71069,14 +72085,6 @@
"text": " All <code>VkSwapchainKHR</code> objects created for <code>surface</code> <strong class=\"purple\">must</strong> have been destroyed prior to destroying <code>surface</code>"
},
{
- "vuid": "VUID-vkDestroySurfaceKHR-surface-01267",
- "text": " If <code>VkAllocationCallbacks</code> were provided when <code>surface</code> was created, a compatible set of callbacks <strong class=\"purple\">must</strong> be provided here"
- },
- {
- "vuid": "VUID-vkDestroySurfaceKHR-surface-01268",
- "text": " If no <code>VkAllocationCallbacks</code> were provided when <code>surface</code> was created, <code>pAllocator</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
"vuid": "VUID-vkDestroySurfaceKHR-instance-parameter",
"text": " <code>instance</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkInstance\">VkInstance</a> handle"
},
@@ -71092,6 +72100,16 @@
"vuid": "VUID-vkDestroySurfaceKHR-surface-parent",
"text": " If <code>surface</code> is a valid handle, it <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>instance</code>"
}
+ ],
+ "(VK_KHR_surface)+!(VKSC_VERSION_1_0)": [
+ {
+ "vuid": "VUID-vkDestroySurfaceKHR-surface-01267",
+ "text": " If <code>VkAllocationCallbacks</code> were provided when <code>surface</code> was created, a compatible set of callbacks <strong class=\"purple\">must</strong> be provided here"
+ },
+ {
+ "vuid": "VUID-vkDestroySurfaceKHR-surface-01268",
+ "text": " If no <code>VkAllocationCallbacks</code> were provided when <code>surface</code> was created, <code>pAllocator</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+ }
]
},
"vkGetPhysicalDeviceDisplayPropertiesKHR": {
@@ -72451,6 +73469,12 @@
]
},
"vkCreateSwapchainKHR": {
+ "(VK_KHR_surface)+(VK_KHR_swapchain)+(VKSC_VERSION_1_0)+(VKSC_VERSION_1_0)": [
+ {
+ "vuid": "VUID-vkCreateSwapchainKHR-device-05068",
+ "text": " The number of {objectnameplural} currently allocated from <code>device</code> plus {objectcount} <strong class=\"purple\">must</strong> be less than or equal to the total number of {objectnameplural} requested via <code>VkDeviceObjectReservationCreateInfo</code>::pname:{objectnamecamelcase}RequestCount specified when <code>device</code> was created"
+ }
+ ],
"(VK_KHR_surface)+(VK_KHR_swapchain)": [
{
"vuid": "VUID-vkCreateSwapchainKHR-device-parameter",
@@ -72517,10 +73541,6 @@
"text": " <code>presentMode</code> <strong class=\"purple\">must</strong> be one of the <a href=\"#VkPresentModeKHR\">VkPresentModeKHR</a> values returned by <code>vkGetPhysicalDeviceSurfacePresentModesKHR</code> for the surface"
},
{
- "vuid": "VUID-VkSwapchainCreateInfoKHR-oldSwapchain-01933",
- "text": " If <code>oldSwapchain</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>oldSwapchain</code> <strong class=\"purple\">must</strong> be a non-retired swapchain associated with native window referred to by <code>surface</code>"
- },
- {
"vuid": "VUID-VkSwapchainCreateInfoKHR-imageFormat-01778",
"text": " The <a href=\"#swapchain-wsi-image-create-info\">implied image creation parameters</a> of the swapchain <strong class=\"purple\">must</strong> be supported as reported by <a href=\"#vkGetPhysicalDeviceImageFormatProperties\">vkGetPhysicalDeviceImageFormatProperties</a>"
},
@@ -72633,12 +73653,30 @@
"text": " If <code>imageSharingMode</code> is <code>VK_SHARING_MODE_CONCURRENT</code>, each element of <code>pQueueFamilyIndices</code> <strong class=\"purple\">must</strong> be unique and <strong class=\"purple\">must</strong> be less than <code>pQueueFamilyPropertyCount</code> returned by either <a href=\"#vkGetPhysicalDeviceQueueFamilyProperties\">vkGetPhysicalDeviceQueueFamilyProperties</a> or <a href=\"#vkGetPhysicalDeviceQueueFamilyProperties2\">vkGetPhysicalDeviceQueueFamilyProperties2</a> for the <code>physicalDevice</code> that was used to create <code>device</code>"
}
],
- "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_1,VK_KHR_device_group)": [
+ "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_1,VK_KHR_device_group)+!(VKSC_VERSION_1_0)": [
{
"vuid": "VUID-VkSwapchainCreateInfoKHR-physicalDeviceCount-01429",
"text": " If the logical device was created with <a href=\"#VkDeviceGroupDeviceCreateInfo\">VkDeviceGroupDeviceCreateInfo</a>::<code>physicalDeviceCount</code> equal to 1, <code>flags</code> <strong class=\"purple\">must</strong> not contain <code>VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR</code>"
}
],
+ "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_1,VK_KHR_device_group)+(VKSC_VERSION_1_0)": [
+ {
+ "vuid": "VUID-VkSwapchainCreateInfoKHR-flags-05072",
+ "text": " <code>flags</code> <strong class=\"purple\">must</strong> not contain <code>VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR</code>"
+ }
+ ],
+ "(VK_KHR_surface)+(VK_KHR_swapchain)+!(VKSC_VERSION_1_0)": [
+ {
+ "vuid": "VUID-VkSwapchainCreateInfoKHR-oldSwapchain-01933",
+ "text": " If <code>oldSwapchain</code> is not <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>, <code>oldSwapchain</code> <strong class=\"purple\">must</strong> be a non-retired swapchain associated with native window referred to by <code>surface</code>"
+ }
+ ],
+ "(VK_KHR_surface)+(VK_KHR_swapchain)+(VKSC_VERSION_1_0)": [
+ {
+ "vuid": "VUID-VkSwapchainCreateInfoKHR-oldSwapchain-05073",
+ "text": " <code>oldSwapchain</code> <strong class=\"purple\">must</strong> be <a href=\"#VK_NULL_HANDLE\">VK_NULL_HANDLE</a>"
+ }
+ ],
"(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_KHR_swapchain_mutable_format)": [
{
"vuid": "VUID-VkSwapchainCreateInfoKHR-flags-03168",
@@ -72863,20 +73901,12 @@
]
},
"vkDestroySwapchainKHR": {
- "(VK_KHR_surface)+(VK_KHR_swapchain)": [
+ "(VK_KHR_surface)+(VK_KHR_swapchain)+!(VKSC_VERSION_1_0)": [
{
"vuid": "VUID-vkDestroySwapchainKHR-swapchain-01282",
"text": " All uses of presentable images acquired from <code>swapchain</code> <strong class=\"purple\">must</strong> have completed execution"
},
{
- "vuid": "VUID-vkDestroySwapchainKHR-swapchain-01283",
- "text": " If <code>VkAllocationCallbacks</code> were provided when <code>swapchain</code> was created, a compatible set of callbacks <strong class=\"purple\">must</strong> be provided here"
- },
- {
- "vuid": "VUID-vkDestroySwapchainKHR-swapchain-01284",
- "text": " If no <code>VkAllocationCallbacks</code> were provided when <code>swapchain</code> was created, <code>pAllocator</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
- {
"vuid": "VUID-vkDestroySwapchainKHR-device-parameter",
"text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
},
@@ -72892,9 +73922,25 @@
"vuid": "VUID-vkDestroySwapchainKHR-swapchain-parent",
"text": " If <code>swapchain</code> is a valid handle, it <strong class=\"purple\">must</strong> have been created, allocated, or retrieved from <code>device</code>"
}
+ ],
+ "(VK_KHR_surface)+(VK_KHR_swapchain)+!(VKSC_VERSION_1_0)+!(VKSC_VERSION_1_0)": [
+ {
+ "vuid": "VUID-vkDestroySwapchainKHR-swapchain-01283",
+ "text": " If <code>VkAllocationCallbacks</code> were provided when <code>swapchain</code> was created, a compatible set of callbacks <strong class=\"purple\">must</strong> be provided here"
+ },
+ {
+ "vuid": "VUID-vkDestroySwapchainKHR-swapchain-01284",
+ "text": " If no <code>VkAllocationCallbacks</code> were provided when <code>swapchain</code> was created, <code>pAllocator</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
+ }
]
},
"vkCreateSharedSwapchainsKHR": {
+ "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_KHR_display_swapchain)+(VKSC_VERSION_1_0)+(VKSC_VERSION_1_0)": [
+ {
+ "vuid": "VUID-vkCreateSharedSwapchainsKHR-device-05068",
+ "text": " The number of {objectnameplural} currently allocated from <code>device</code> plus {objectcount} <strong class=\"purple\">must</strong> be less than or equal to the total number of {objectnameplural} requested via <code>VkDeviceObjectReservationCreateInfo</code>::pname:{objectnamecamelcase}RequestCount specified when <code>device</code> was created"
+ }
+ ],
"(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_KHR_display_swapchain)": [
{
"vuid": "VUID-vkCreateSharedSwapchainsKHR-device-parameter",
@@ -73545,7 +74591,7 @@
]
},
"vkDestroyDeferredOperationKHR": {
- "(VK_KHR_deferred_host_operations)": [
+ "(VK_KHR_deferred_host_operations)+!(VKSC_VERSION_1_0)": [
{
"vuid": "VUID-vkDestroyDeferredOperationKHR-operation-03434",
"text": " If <code>VkAllocationCallbacks</code> were provided when <code>operation</code> was created, a compatible set of callbacks <strong class=\"purple\">must</strong> be provided here"
@@ -73553,7 +74599,9 @@
{
"vuid": "VUID-vkDestroyDeferredOperationKHR-operation-03435",
"text": " If no <code>VkAllocationCallbacks</code> were provided when <code>operation</code> was created, <code>pAllocator</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
+ }
+ ],
+ "(VK_KHR_deferred_host_operations)": [
{
"vuid": "VUID-vkDestroyDeferredOperationKHR-operation-03436",
"text": " <code>operation</code> <strong class=\"purple\">must</strong> be completed"
@@ -73630,6 +74678,12 @@
"vuid": "VUID-vkCreatePrivateDataSlot-pPrivateDataSlot-parameter",
"text": " <code>pPrivateDataSlot</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkPrivateDataSlot\">VkPrivateDataSlot</a> handle"
}
+ ],
+ "(VK_VERSION_1_3,VK_EXT_private_data)+(VKSC_VERSION_1_0)": [
+ {
+ "vuid": "VUID-vkCreatePrivateDataSlotEXT-device-05000",
+ "text": " The number of private data slots currently allocated from <code>device</code> plus 1 <strong class=\"purple\">must</strong> be less than or equal to the total number of private data slots requested via <a href=\"#VkDevicePrivateDataCreateInfoEXT\">VkDevicePrivateDataCreateInfoEXT</a>::<code>privateDataSlotRequestCount</code> when <code>device</code> was created"
+ }
]
},
"VkPrivateDataSlotCreateInfo": {
@@ -73649,7 +74703,7 @@
]
},
"vkDestroyPrivateDataSlot": {
- "(VK_VERSION_1_3,VK_EXT_private_data)": [
+ "(VK_VERSION_1_3,VK_EXT_private_data)+!(VKSC_VERSION_1_0)": [
{
"vuid": "VUID-vkDestroyPrivateDataSlot-privateDataSlot-04062",
"text": " If <code>VkAllocationCallbacks</code> were provided when <code>privateDataSlot</code> was created, a compatible set of callbacks <strong class=\"purple\">must</strong> be provided here"
@@ -73657,7 +74711,9 @@
{
"vuid": "VUID-vkDestroyPrivateDataSlot-privateDataSlot-04063",
"text": " If no <code>VkAllocationCallbacks</code> were provided when <code>privateDataSlot</code> was created, <code>pAllocator</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
+ }
+ ],
+ "(VK_VERSION_1_3,VK_EXT_private_data)": [
{
"vuid": "VUID-vkDestroyPrivateDataSlot-device-parameter",
"text": " <code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle"
@@ -83973,7 +85029,7 @@
]
},
"vkDestroyDebugUtilsMessengerEXT": {
- "(VK_EXT_debug_utils)": [
+ "(VK_EXT_debug_utils)+!(VKSC_VERSION_1_0)": [
{
"vuid": "VUID-vkDestroyDebugUtilsMessengerEXT-messenger-01915",
"text": " If <code>VkAllocationCallbacks</code> were provided when <code>messenger</code> was created, a compatible set of callbacks <strong class=\"purple\">must</strong> be provided here"
@@ -83981,7 +85037,9 @@
{
"vuid": "VUID-vkDestroyDebugUtilsMessengerEXT-messenger-01916",
"text": " If no <code>VkAllocationCallbacks</code> were provided when <code>messenger</code> was created, <code>pAllocator</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
+ }
+ ],
+ "(VK_EXT_debug_utils)": [
{
"vuid": "VUID-vkDestroyDebugUtilsMessengerEXT-instance-parameter",
"text": " <code>instance</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkInstance\">VkInstance</a> handle"
@@ -84257,7 +85315,7 @@
]
},
"vkDestroyDebugReportCallbackEXT": {
- "(VK_EXT_debug_report)": [
+ "(VK_EXT_debug_report)+!(VKSC_VERSION_1_0)": [
{
"vuid": "VUID-vkDestroyDebugReportCallbackEXT-instance-01242",
"text": " If <code>VkAllocationCallbacks</code> were provided when <code>callback</code> was created, a compatible set of callbacks <strong class=\"purple\">must</strong> be provided here"
@@ -84265,7 +85323,9 @@
{
"vuid": "VUID-vkDestroyDebugReportCallbackEXT-instance-01243",
"text": " If no <code>VkAllocationCallbacks</code> were provided when <code>callback</code> was created, <code>pAllocator</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
- },
+ }
+ ],
+ "(VK_EXT_debug_report)": [
{
"vuid": "VUID-vkDestroyDebugReportCallbackEXT-instance-parameter",
"text": " <code>instance</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkInstance\">VkInstance</a> handle"
@@ -84368,6 +85428,30 @@
}
]
},
+ "VkFaultData": {
+ "(VKSC_VERSION_1_0)": [
+ {
+ "vuid": "VUID-VkFaultData-pNext-05019",
+ "text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code> or a valid pointer to an implementation-specific structure"
+ }
+ ]
+ },
+ "vkGetFaultData": {
+ "(VKSC_VERSION_1_0)": [
+ {
+ "vuid": "VUID-vkGetFaultData-pFaultCount-05020",
+ "text": " <code>pFaultCount</code> <strong class=\"purple\">must</strong> be less than or equal to <a href=\"#limits-maxQueryFaultCount\"><code>maxQueryFaultCount</code></a>"
+ }
+ ]
+ },
+ "VkFaultCallbackInfo": {
+ "(VKSC_VERSION_1_0)": [
+ {
+ "vuid": "VUID-VkFaultCallbackInfo-faultCount-05138",
+ "text": " <code>faultCount</code> <strong class=\"purple\">must</strong> either be 0, or equal to <a href=\"#limits-maxCallbackFaultCount\"><code>VkPhysicalDeviceVulkanSC10Properties</code>::<code>maxCallbackFaultCount</code></a>"
+ }
+ ]
+ },
"vkGetDeviceFaultInfoEXT": {
"(VK_EXT_device_fault)": [
{
@@ -85583,6 +86667,12 @@
"text": " If <a href=\"#features-storageInputOutput16\"><code>storageInputOutput16</code></a> is <code>VK_FALSE</code>, then objects containing 16-bit integer or 16-bit floating-point elements <strong class=\"purple\">must</strong> not have {StorageClass} of <code>Input</code> or <code>Output</code>"
}
],
+ "(VKSC_VERSION_1_0)": [
+ {
+ "vuid": "VUID-RuntimeSpirv-OpAtomic-05091",
+ "text": " If <a href=\"#features-shaderAtomicInstructions\">shaderAtomicInstructions</a> is not enabled, the SPIR-V Atomic Instructions listed in 3.37.18 (<code>OpAtomic*</code>) <strong class=\"purple\">must</strong> not be used <a href=\"#SCID-1\">[SCID-1]</a>"
+ }
+ ],
"(VK_VERSION_1_1)": [
{
"vuid": "VUID-RuntimeSpirv-None-06343",
diff --git a/registry/vk.xml b/registry/vk.xml
index d3907eb..f5300a3 100644
--- a/registry/vk.xml
+++ b/registry/vk.xml
@@ -174,7 +174,7 @@ branch of the member gitlab server.
#define <name>VKSC_API_VERSION_1_0</name> <type>VK_MAKE_API_VERSION</type>(VKSC_API_VARIANT, 1, 0, 0)// Patch version should always be set to 0</type>
<type api="vulkan" category="define">// Version of this file
-#define <name>VK_HEADER_VERSION</name> 251</type>
+#define <name>VK_HEADER_VERSION</name> 252</type>
<type api="vulkan" category="define" requires="VK_HEADER_VERSION">// Complete version of this file
#define <name>VK_HEADER_VERSION_COMPLETE</name> <type>VK_MAKE_API_VERSION</type>(0, 1, 3, VK_HEADER_VERSION)</type>
<type api="vulkansc" category="define">// Version of this file
@@ -2881,7 +2881,7 @@ typedef void* <name>MTLSharedEvent_id</name>;
<member><type>VkSemaphoreSciSyncPoolNV</type> <name>semaphorePool</name></member>
<member>const <type>NvSciSyncFence</type>* <name>pFence</name></member>
</type>
- <type category="struct" name="VkDeviceSemaphoreSciSyncPoolReservationCreateInfoNV" allowduplicate="true" structextends="VkDeviceObjectReservationCreateInfo">
+ <type category="struct" name="VkDeviceSemaphoreSciSyncPoolReservationCreateInfoNV" allowduplicate="true" structextends="VkDeviceCreateInfo">
<member values="VK_STRUCTURE_TYPE_DEVICE_SEMAPHORE_SCI_SYNC_POOL_RESERVATION_CREATE_INFO_NV"><type>VkStructureType</type> <name>sType</name></member>
<member optional="true">const <type>void</type>* <name>pNext</name></member>
<member><type>uint32_t</type> <name>semaphoreSciSyncPoolRequestCount</name></member>
@@ -5028,7 +5028,7 @@ typedef void* <name>MTLSharedEvent_id</name>;
<member optional="true">const <type>void</type>* <name>pNext</name></member>
<member><type>uint32_t</type> <name>counterPassIndex</name><comment>Index for which counter pass to submit</comment></member>
</type>
- <type category="struct" name="VkPerformanceQueryReservationInfoKHR" allowduplicate="true" structextends="VkDeviceObjectReservationCreateInfo">
+ <type category="struct" name="VkPerformanceQueryReservationInfoKHR" allowduplicate="true" structextends="VkDeviceCreateInfo">
<member values="VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_RESERVATION_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member>
<member optional="true">const <type>void</type>* <name>pNext</name></member>
<member><type>uint32_t</type> <name>maxPerformanceQueriesPerPool</name><comment>Maximum number of VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR queries in a query pool</comment></member>
@@ -5539,7 +5539,7 @@ typedef void* <name>MTLSharedEvent_id</name>;
</type>
<type category="struct" name="VkFaultCallbackInfo" structextends="VkDeviceCreateInfo">
<member values="VK_STRUCTURE_TYPE_FAULT_CALLBACK_INFO"><type>VkStructureType</type> <name>sType</name></member>
- <member optional="true"><type>void</type>* <name>pNext</name></member>
+ <member optional="true">const <type>void</type>* <name>pNext</name></member>
<member optional="true"><type>uint32_t</type> <name>faultCount</name></member>
<member optional="true" len="faultCount"><type>VkFaultData</type>*<name>pFaults</name></member>
<member><type>PFN_vkFaultCallbackFunction</type> <name>pfnFaultCallback</name></member>
@@ -7728,6 +7728,11 @@ typedef void* <name>MTLSharedEvent_id</name>;
<member noautovalidity="true" optional="true"><type>void</type>* <name>pNext</name></member>
<member><type>VkBool32</type> <name>shaderEarlyAndLateFragmentTests</name></member>
</type>
+ <type category="struct" name="VkExternalMemoryAcquireUnmodifiedEXT" structextends="VkBufferMemoryBarrier,VkBufferMemoryBarrier2,VkImageMemoryBarrier,VkImageMemoryBarrier2">
+ <member values="VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_EXT"><type>VkStructureType</type> <name>sType</name></member>
+ <member optional="true">const <type>void</type>* <name>pNext</name></member>
+ <member><type>VkBool32</type> <name>acquireUnmodifiedMemory</name></member>
+ </type>
<type category="struct" name="VkExportMetalObjectCreateInfoEXT" structextends="VkInstanceCreateInfo,VkMemoryAllocateInfo,VkImageCreateInfo,VkImageViewCreateInfo,VkBufferViewCreateInfo,VkSemaphoreCreateInfo,VkEventCreateInfo" allowduplicate="true">
<member values="VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECT_CREATE_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member>
<member optional="true">const <type>void</type>* <name>pNext</name></member>
@@ -10345,6 +10350,7 @@ typedef void* <name>MTLSharedEvent_id</name>;
<param optional="false,true"><type>uint32_t</type>* <name>pPropertyCount</name></param>
<param optional="true" len="pPropertyCount"><type>VkLayerProperties</type>* <name>pProperties</name></param>
</command>
+
<command successcodes="VK_SUCCESS,VK_INCOMPLETE" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY,VK_ERROR_LAYER_NOT_PRESENT">
<proto><type>VkResult</type> <name>vkEnumerateDeviceExtensionProperties</name></proto>
<param><type>VkPhysicalDevice</type> <name>physicalDevice</name></param>
@@ -15486,13 +15492,11 @@ typedef void* <name>MTLSharedEvent_id</name>;
<type name="VkShaderModuleCreateFlagBits"/>
<type name="VkShaderModuleCreateInfo"/>
<type name="VkCommandPoolTrimFlags"/>
- <type name="VkCommandPoolTrimFlagsKHR"/>
<command name="vkCreateShaderModule"/>
<command name="vkDestroyShaderModule"/>
<command name="vkMergePipelineCaches"/>
<command name="vkGetPipelineCacheData"/>
<command name="vkTrimCommandPool"/>
- <command name="vkTrimCommandPoolKHR"/>
<command name="vkDestroyCommandPool"/>
<command name="vkDestroyDescriptorPool"/>
<command name="vkDestroyQueryPool"/>
@@ -21391,10 +21395,12 @@ typedef void* <name>MTLSharedEvent_id</name>;
<enum bitpos="50" extends="VkAccessFlagBits2" name="VK_ACCESS_2_RESERVED_50_BIT_ARM"/>
</require>
</extension>
- <extension name="VK_GOOGLE_extension_454" number="454" author="GOOGLE" contact="Lina Versace @versalinyaa" supported="disabled">
+ <extension name="VK_EXT_external_memory_acquire_unmodified" number="454" type="device" depends="VK_KHR_external_memory" author="EXT" contact="Lina Versace @versalinyaa" supported="vulkan" ratified="vulkan">
<require>
- <enum value="0" name="VK_GOOGLE_EXTENSION_454_SPEC_VERSION"/>
- <enum value="&quot;VK_GOOGLE_extension_454&quot;" name="VK_GOOGLE_EXTENSION_454_EXTENSION_NAME"/>
+ <enum value="1" name="VK_EXT_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_SPEC_VERSION"/>
+ <enum value="&quot;VK_EXT_external_memory_acquire_unmodified&quot;" name="VK_EXT_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_EXTENSION_NAME"/>
+ <enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_EXT"/>
+ <type name="VkExternalMemoryAcquireUnmodifiedEXT"/>
</require>
</extension>
<extension name="VK_GOOGLE_extension_455" number="455" author="GOOGLE" contact="Lina Versace @versalinyaa" supported="disabled">
diff --git a/registry/vkconventions.py b/registry/vkconventions.py
index 5cc5890..b4e7966 100644..100755
--- a/registry/vkconventions.py
+++ b/registry/vkconventions.py
@@ -108,6 +108,7 @@ class VulkanConventions(ConventionsBase):
subpats = [
[ r'_H_(26[45])_', r'_H\1_' ],
[ r'_VULKAN_([0-9])([0-9])_', r'_VULKAN_\1_\2_' ],
+ [ r'_VULKAN_SC_([0-9])([0-9])_',r'_VULKAN_SC_\1_\2_' ],
[ r'_DIRECT_FB_', r'_DIRECTFB_' ],
[ r'_VULKAN_SC_10', r'_VULKAN_SC_1_0' ],
@@ -277,3 +278,21 @@ class VulkanConventions(ConventionsBase):
"""Return any extra text (following the title) for generated
reference pages."""
return 'include::{generated}/specattribs.adoc[]'
+
+
+class VulkanSCConventions(VulkanConventions):
+
+ def specURL(self, spectype='api'):
+ """Return public registry URL which ref pages should link to for the
+ current all-extensions HTML specification, so xrefs in the
+ asciidoc source that are not to ref pages can link into it
+ instead. N.b. this may need to change on a per-refpage basis if
+ there are multiple documents involved.
+ """
+ return 'https://registry.khronos.org/vulkansc/specs/1.0-extensions/html/vkspec.html'
+
+ @property
+ def xml_api_name(self):
+ """Return the name used in the default API XML registry for the default API"""
+ return 'vulkansc'
+