aboutsummaryrefslogtreecommitdiffhomepage
path: root/registry
diff options
context:
space:
mode:
authorJon Leech <[email protected]>2023-11-26 21:52:30 -0800
committerJon Leech <[email protected]>2023-11-26 21:54:32 -0800
commit9d27c893cdfc8d96bc8ad5f6f4d88743f958305e (patch)
tree4c64138e76f1149bd484cfaccf9f7e9d21cdae48 /registry
parent7d92fe7b687eb92dafb5d344d1f4c817780cd3ce (diff)
downloadVulkan-Headers-9d27c893cdfc8d96bc8ad5f6f4d88743f958305e.tar.gz
Vulkan-Headers-9d27c893cdfc8d96bc8ad5f6f4d88743f958305e.zip
Update for Vulkan-Docs 1.3.271v1.3.271
Diffstat (limited to 'registry')
-rw-r--r--registry/generator.py5
-rwxr-xr-xregistry/parse_dependency.py37
-rw-r--r--registry/spec_tools/conventions.py83
-rw-r--r--registry/spec_tools/util.py1
-rw-r--r--registry/validusage.json194
-rw-r--r--registry/vk.xml53
-rwxr-xr-xregistry/vkconventions.py16
7 files changed, 179 insertions, 210 deletions
diff --git a/registry/generator.py b/registry/generator.py
index 669e5d6..5fb6370 100644
--- a/registry/generator.py
+++ b/registry/generator.py
@@ -64,9 +64,8 @@ def regSortCategoryKey(feature):
return 0.5
else:
return 0
- if (feature.category == 'ARB'
- or feature.category == 'KHR'
- or feature.category == 'OES'):
+
+ if feature.category.upper() in ['ARB', 'KHR', 'OES']:
return 1
return 2
diff --git a/registry/parse_dependency.py b/registry/parse_dependency.py
index 313b3c0..b3ef841 100755
--- a/registry/parse_dependency.py
+++ b/registry/parse_dependency.py
@@ -52,45 +52,20 @@ import operator
import pyparsing as pp
import re
+from apiconventions import APIConventions as APIConventions
+conventions = APIConventions()
+
def markupPassthrough(name):
"""Pass a name (leaf or operator) through without applying markup"""
return name
-# A regexp matching Vulkan and VulkanSC core version names
-# The Conventions is_api_version_name() method is similar, but does not
-# return the matches.
-apiVersionNamePat = re.compile(r'(VK|VKSC)_VERSION_([0-9]+)_([0-9]+)')
-
-def apiVersionNameMatch(name):
- """Return [ apivariant, major, minor ] if name is an API version name,
- or [ None, None, None ] if it is not."""
-
- match = apiVersionNamePat.match(name)
- if match is not None:
- return [ match.group(1), match.group(2), match.group(3) ]
- else:
- return [ None, None, None ]
-
def leafMarkupAsciidoc(name):
"""Markup a leaf name as an asciidoc link to an API version or extension
anchor.
- name - version or extension name"""
- (apivariant, major, minor) = apiVersionNameMatch(name)
-
- if apivariant is not None:
- version = major + '.' + minor
- if apivariant == 'VKSC':
- # Vulkan SC has a different anchor pattern for version appendices
- if version == '1.0':
- return 'Vulkan SC 1.0'
- else:
- return f'<<versions-sc-{version}, Version SC {version}>>'
- else:
- return f'<<versions-{version}, Version {version}>>'
- else:
- return f'apiext:{name}'
+ return conventions.formatVersionOrExtension(name)
def leafMarkupC(name):
"""Markup a leaf name as a C expression, using conventions of the
@@ -344,6 +319,10 @@ def dependencyMarkup(dependency):
return markupTraverse(parsed)
if __name__ == "__main__":
+ for str in [ 'VK_VERSION_1_0', 'cl_khr_extension_name', 'XR_VERSION_3_2', 'CL_VERSION_1_0' ]:
+ print(f'{str} -> {conventions.formatVersionOrExtension(str)}')
+ import sys
+ sys.exit(0)
termdict = {
'VK_VERSION_1_1' : True,
diff --git a/registry/spec_tools/conventions.py b/registry/spec_tools/conventions.py
index 00d2b81..9118fea 100644
--- a/registry/spec_tools/conventions.py
+++ b/registry/spec_tools/conventions.py
@@ -32,12 +32,12 @@ TYPES_KNOWN_ALWAYS_VALID = set(('char',
))
# Split an extension name into vendor ID and name portions
-EXT_NAME_DECOMPOSE_RE = re.compile(r'[A-Z]+_(?P<vendor>[A-Z]+)_(?P<name>[\w_]+)')
+EXT_NAME_DECOMPOSE_RE = re.compile(r'(?P<prefix>[A-Za-z]+)_(?P<vendor>[A-Za-z]+)_(?P<name>[\w_]+)')
# Match an API version name.
+# Match object includes API prefix, major, and minor version numbers.
# This could be refined further for specific APIs.
-API_VERSION_NAME_RE = re.compile(r'[A-Z]+_VERSION_[0-9]')
-
+API_VERSION_NAME_RE = re.compile(r'(?P<apivariant>[A-Za-z]+)_VERSION_(?P<major>[0-9]+)_(?P<minor>[0-9]+)')
class ProseListFormats(Enum):
"""A connective, possibly with a quantifier."""
@@ -80,10 +80,39 @@ class ConventionsBase(abc.ABC):
self._command_prefix = None
self._type_prefix = None
+ def formatVersionOrExtension(self, name):
+ """Mark up an API version or extension name as a link in the spec."""
+
+ # Is this a version name?
+ match = API_VERSION_NAME_RE.match(name)
+ if match is not None:
+ return self.formatVersion(name,
+ match.group('apivariant'),
+ match.group('major'),
+ match.group('minor'))
+ else:
+ # If not, assumed to be an extension name. Might be worth checking.
+ return self.formatExtension(name)
+
+ def formatVersion(self, name, apivariant, major, minor):
+ """Mark up an API version name as a link in the spec."""
+ return '`<<{}>>`'.format(name)
+
def formatExtension(self, name):
- """Mark up an extension name as a link the spec."""
+ """Mark up an extension name as a link in the spec."""
return '`<<{}>>`'.format(name)
+ def formatSPIRVlink(self, name):
+ """Mark up a SPIR-V extension name as an external link in the spec.
+ Since these are external links, the formatting probably will be
+ the same for all APIs creating such links, so long as they use
+ the asciidoctor {spirv} attribute for the base path to the SPIR-V
+ extensions."""
+
+ (vendor, _) = self.extension_name_split(name)
+
+ return f'{{spirv}}/{vendor}/{name}.html[{name}]'
+
@property
@abc.abstractmethod
def null(self):
@@ -261,6 +290,42 @@ class ConventionsBase(abc.ABC):
raise NotImplementedError
@property
+ def extension_name_prefix(self):
+ """Return extension name prefix.
+
+ Typically two uppercase letters followed by an underscore.
+
+ Assumed to be the same as api_prefix, but some APIs use different
+ case conventions."""
+
+ return self.api_prefix
+
+ @property
+ def write_contacts(self):
+ """Return whether contact list should be written to extension appendices"""
+ return False
+
+ @property
+ def write_extension_type(self):
+ """Return whether extension type should be written to extension appendices"""
+ return True
+
+ @property
+ def write_extension_number(self):
+ """Return whether extension number should be written to extension appendices"""
+ return True
+
+ @property
+ def write_extension_revision(self):
+ """Return whether extension revision number should be written to extension appendices"""
+ return True
+
+ @property
+ def write_refpage_include(self):
+ """Return whether refpage include should be written to extension appendices"""
+ return True
+
+ @property
def api_version_prefix(self):
"""Return API core version token prefix.
@@ -375,6 +440,16 @@ class ConventionsBase(abc.ABC):
documentation includes."""
return False
+ def extension_name_split(self, name):
+ """Split an extension name, returning (vendor, rest of name).
+ The API prefix of the name is ignored."""
+
+ match = EXT_NAME_DECOMPOSE_RE.match(name)
+ vendor = match.group('vendor')
+ bare_name = match.group('name')
+
+ return (vendor, bare_name)
+
@abc.abstractmethod
def extension_file_path(self, name):
"""Return file path to an extension appendix relative to a directory
diff --git a/registry/spec_tools/util.py b/registry/spec_tools/util.py
index bf25845..b4b4569 100644
--- a/registry/spec_tools/util.py
+++ b/registry/spec_tools/util.py
@@ -1,7 +1,6 @@
"""Utility functions not closely tied to other spec_tools types."""
# Copyright (c) 2018-2019 Collabora, Ltd.
# Copyright 2013-2023 The Khronos Group Inc.
-#
# SPDX-License-Identifier: Apache-2.0
diff --git a/registry/validusage.json b/registry/validusage.json
index 897f41c..7c01ab7 100644
--- a/registry/validusage.json
+++ b/registry/validusage.json
@@ -1,9 +1,9 @@
{
"version info": {
"schema version": 2,
- "api version": "1.3.270",
- "comment": "from git branch: github-main commit: b4792eab92a1d132ef95b56a7681cc6af69b570e",
- "date": "2023-11-10 11:37:06Z"
+ "api version": "1.3.271",
+ "comment": "from git branch: github-main commit: dbad946f7edc9137dbb972ea8e271592e3fb9746",
+ "date": "2023-11-27 05:16:04Z"
},
"validation": {
"vkGetInstanceProcAddr": {
@@ -3892,8 +3892,8 @@
"vkDestroySemaphore": {
"core": [
{
- "vuid": "VUID-vkDestroySemaphore-semaphore-01137",
- "text": "All submitted batches that refer to <code>semaphore</code> <strong class=\"purple\">must</strong> have completed execution",
+ "vuid": "VUID-vkDestroySemaphore-semaphore-05149",
+ "text": "All submitted batches that refer to <code>semaphore</code> <strong class=\"purple\">must</strong> have completed execution",
"page": "vkspec"
},
{
@@ -7646,13 +7646,13 @@
"page": "vkspec"
},
{
- "vuid": "VUID-VkImageMemoryBarrier2-image-03319",
- "text": "If <code>image</code> has a depth/stencil format with both depth and stencil and the <a href=\"#features-separateDepthStencilLayouts\"><code>separateDepthStencilLayouts</code></a> feature is enabled, then the <code>aspectMask</code> member of <code>subresourceRange</code> <strong class=\"purple\">must</strong> include either or both <code>VK_IMAGE_ASPECT_DEPTH_BIT</code> and <code>VK_IMAGE_ASPECT_STENCIL_BIT</code>",
+ "vuid": "VUID-VkImageMemoryBarrier2-image-03320",
+ "text": "If <code>image</code> has a depth/stencil format with both depth and stencil and the <a href=\"#features-separateDepthStencilLayouts\"><code>separateDepthStencilLayouts</code></a> feature is not enabled, then the <code>aspectMask</code> member of <code>subresourceRange</code> <strong class=\"purple\">must</strong> include both <code>VK_IMAGE_ASPECT_DEPTH_BIT</code> and <code>VK_IMAGE_ASPECT_STENCIL_BIT</code>",
"page": "vkspec"
},
{
- "vuid": "VUID-VkImageMemoryBarrier2-image-03320",
- "text": "If <code>image</code> has a depth/stencil format with both depth and stencil and the <a href=\"#features-separateDepthStencilLayouts\"><code>separateDepthStencilLayouts</code></a> feature is not enabled, then the <code>aspectMask</code> member of <code>subresourceRange</code> <strong class=\"purple\">must</strong> include both <code>VK_IMAGE_ASPECT_DEPTH_BIT</code> and <code>VK_IMAGE_ASPECT_STENCIL_BIT</code>",
+ "vuid": "VUID-VkImageMemoryBarrier2-image-03319",
+ "text": "If <code>image</code> has a depth/stencil format with both depth and stencil and the <a href=\"#features-separateDepthStencilLayouts\"><code>separateDepthStencilLayouts</code></a> feature is enabled, then the <code>aspectMask</code> member of <code>subresourceRange</code> <strong class=\"purple\">must</strong> include either or both <code>VK_IMAGE_ASPECT_DEPTH_BIT</code> and <code>VK_IMAGE_ASPECT_STENCIL_BIT</code>",
"page": "vkspec"
},
{
@@ -7945,13 +7945,13 @@
"page": "vkspec"
},
{
- "vuid": "VUID-VkImageMemoryBarrier-image-03319",
- "text": "If <code>image</code> has a depth/stencil format with both depth and stencil and the <a href=\"#features-separateDepthStencilLayouts\"><code>separateDepthStencilLayouts</code></a> feature is enabled, then the <code>aspectMask</code> member of <code>subresourceRange</code> <strong class=\"purple\">must</strong> include either or both <code>VK_IMAGE_ASPECT_DEPTH_BIT</code> and <code>VK_IMAGE_ASPECT_STENCIL_BIT</code>",
+ "vuid": "VUID-VkImageMemoryBarrier-image-03320",
+ "text": "If <code>image</code> has a depth/stencil format with both depth and stencil and the <a href=\"#features-separateDepthStencilLayouts\"><code>separateDepthStencilLayouts</code></a> feature is not enabled, then the <code>aspectMask</code> member of <code>subresourceRange</code> <strong class=\"purple\">must</strong> include both <code>VK_IMAGE_ASPECT_DEPTH_BIT</code> and <code>VK_IMAGE_ASPECT_STENCIL_BIT</code>",
"page": "vkspec"
},
{
- "vuid": "VUID-VkImageMemoryBarrier-image-03320",
- "text": "If <code>image</code> has a depth/stencil format with both depth and stencil and the <a href=\"#features-separateDepthStencilLayouts\"><code>separateDepthStencilLayouts</code></a> feature is not enabled, then the <code>aspectMask</code> member of <code>subresourceRange</code> <strong class=\"purple\">must</strong> include both <code>VK_IMAGE_ASPECT_DEPTH_BIT</code> and <code>VK_IMAGE_ASPECT_STENCIL_BIT</code>",
+ "vuid": "VUID-VkImageMemoryBarrier-image-03319",
+ "text": "If <code>image</code> has a depth/stencil format with both depth and stencil and the <a href=\"#features-separateDepthStencilLayouts\"><code>separateDepthStencilLayouts</code></a> feature is enabled, then the <code>aspectMask</code> member of <code>subresourceRange</code> <strong class=\"purple\">must</strong> include either or both <code>VK_IMAGE_ASPECT_DEPTH_BIT</code> and <code>VK_IMAGE_ASPECT_STENCIL_BIT</code>",
"page": "vkspec"
},
{
@@ -8083,13 +8083,13 @@
"page": "vkspec"
},
{
- "vuid": "VUID-VkHostImageLayoutTransitionInfoEXT-image-03319",
- "text": "If <code>image</code> has a depth/stencil format with both depth and stencil and the <a href=\"#features-separateDepthStencilLayouts\"><code>separateDepthStencilLayouts</code></a> feature is enabled, then the <code>aspectMask</code> member of <code>subresourceRange</code> <strong class=\"purple\">must</strong> include either or both <code>VK_IMAGE_ASPECT_DEPTH_BIT</code> and <code>VK_IMAGE_ASPECT_STENCIL_BIT</code>",
+ "vuid": "VUID-VkHostImageLayoutTransitionInfoEXT-image-03320",
+ "text": "If <code>image</code> has a depth/stencil format with both depth and stencil and the <a href=\"#features-separateDepthStencilLayouts\"><code>separateDepthStencilLayouts</code></a> feature is not enabled, then the <code>aspectMask</code> member of <code>subresourceRange</code> <strong class=\"purple\">must</strong> include both <code>VK_IMAGE_ASPECT_DEPTH_BIT</code> and <code>VK_IMAGE_ASPECT_STENCIL_BIT</code>",
"page": "vkspec"
},
{
- "vuid": "VUID-VkHostImageLayoutTransitionInfoEXT-image-03320",
- "text": "If <code>image</code> has a depth/stencil format with both depth and stencil and the <a href=\"#features-separateDepthStencilLayouts\"><code>separateDepthStencilLayouts</code></a> feature is not enabled, then the <code>aspectMask</code> member of <code>subresourceRange</code> <strong class=\"purple\">must</strong> include both <code>VK_IMAGE_ASPECT_DEPTH_BIT</code> and <code>VK_IMAGE_ASPECT_STENCIL_BIT</code>",
+ "vuid": "VUID-VkHostImageLayoutTransitionInfoEXT-image-03319",
+ "text": "If <code>image</code> has a depth/stencil format with both depth and stencil and the <a href=\"#features-separateDepthStencilLayouts\"><code>separateDepthStencilLayouts</code></a> feature is enabled, then the <code>aspectMask</code> member of <code>subresourceRange</code> <strong class=\"purple\">must</strong> include either or both <code>VK_IMAGE_ASPECT_DEPTH_BIT</code> and <code>VK_IMAGE_ASPECT_STENCIL_BIT</code>",
"page": "vkspec"
},
{
@@ -11977,12 +11977,12 @@
},
{
"vuid": "VUID-VkRenderPassBeginInfo-None-08996",
- "text": "If <a href=\"#VkDeviceGroupRenderPassBeginInfo\">VkDeviceGroupRenderPassBeginInfo</a>::<code>deviceRenderAreaCount</code> is 0, <code>renderArea.extent.width</code> <strong class=\"purple\">must</strong> be greater than 0",
+ "text": "If the <code>pNext</code> chain does not contain <a href=\"#VkDeviceGroupRenderPassBeginInfo\">VkDeviceGroupRenderPassBeginInfo</a> or its <code>deviceRenderAreaCount</code> member is equal to 0, <code>renderArea.extent.width</code> <strong class=\"purple\">must</strong> be greater than 0",
"page": "vkspec"
},
{
"vuid": "VUID-VkRenderPassBeginInfo-None-08997",
- "text": "If <a href=\"#VkDeviceGroupRenderPassBeginInfo\">VkDeviceGroupRenderPassBeginInfo</a>::<code>deviceRenderAreaCount</code> is 0, <code>renderArea.extent.height</code> <strong class=\"purple\">must</strong> be greater than 0",
+ "text": "If the <code>pNext</code> chain does not contain <a href=\"#VkDeviceGroupRenderPassBeginInfo\">VkDeviceGroupRenderPassBeginInfo</a> or its <code>deviceRenderAreaCount</code> member is equal to 0, <code>renderArea.extent.height</code> <strong class=\"purple\">must</strong> be greater than 0",
"page": "vkspec"
},
{
@@ -14069,16 +14069,6 @@
"vkGetCudaModuleCacheNV": {
"core": [
{
- "vuid": "VUID-vkGetCudaModuleCacheNV-pCacheSize-09414",
- "text": "<code>pCacheSize</code> <strong class=\"purple\">must</strong> be a pointer containing the amount of bytes to be copied in <code>pCacheData</code>. If <code>pCacheData</code> is NULL, the function will return in this pointer the total amount of bytes required to later perform the copy into <code>pCacheData</code>.",
- "page": "vkspec"
- },
- {
- "vuid": "VUID-vkGetCudaModuleCacheNV-pCacheData-09415",
- "text": "<code>pCacheData</code> <strong class=\"purple\">may</strong> be a pointer to a buffer in which the binary cache will be copied. The amount of bytes copied is defined by the value in <code>pCacheSize</code>. This pointer <strong class=\"purple\">may</strong> be NULL. In this case, the function will write the total amount of required data in <code>pCacheSize</code>.",
- "page": "vkspec"
- },
- {
"vuid": "VUID-vkGetCudaModuleCacheNV-device-parameter",
"text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
"page": "vkspec"
@@ -22164,12 +22154,12 @@
},
{
"vuid": "VUID-vkGetImageSubresourceLayout-mipLevel-01716",
- "text": "The <code>mipLevel</code> member of <code>pSubresource</code> <strong class=\"purple\">must</strong> be less than the <code>mipLevels</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>image</code> was created",
+ "text": "The <code>mipLevel</code> member of <code>pSubresource</code> <strong class=\"purple\">must</strong> be less than the <code>mipLevels</code> specified in <code>image</code>",
"page": "vkspec"
},
{
"vuid": "VUID-vkGetImageSubresourceLayout-arrayLayer-01717",
- "text": "The <code>arrayLayer</code> member of <code>pSubresource</code> <strong class=\"purple\">must</strong> be less than the <code>arrayLayers</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>image</code> was created",
+ "text": "The <code>arrayLayer</code> member of <code>pSubresource</code> <strong class=\"purple\">must</strong> be less than the <code>arrayLayers</code> specified in <code>image</code>",
"page": "vkspec"
},
{
@@ -22198,12 +22188,12 @@
"page": "vkspec"
},
{
- "vuid": "VUID-vkGetImageSubresourceLayout-image-01895",
+ "vuid": "VUID-vkGetImageSubresourceLayout-image-09432",
"text": "If <code>image</code> was created with the <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID</code> external memory handle type, then <code>image</code> <strong class=\"purple\">must</strong> be bound to memory",
"page": "vkspec"
},
{
- "vuid": "VUID-vkGetImageSubresourceLayout-tiling-02271",
+ "vuid": "VUID-vkGetImageSubresourceLayout-tiling-09433",
"text": "If the <code>tiling</code> of the <code>image</code> is <code>VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT</code>, then the <code>aspectMask</code> member of <code>pSubresource</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_ASPECT_MEMORY_PLANE<em>_i_</em>BIT_EXT</code> and the index <em>i</em> <strong class=\"purple\">must</strong> be less than the <a href=\"#VkDrmFormatModifierPropertiesEXT\">VkDrmFormatModifierPropertiesEXT</a>::<code>drmFormatModifierPlaneCount</code> associated with the image&#8217;s <code>format</code> and <a href=\"#VkImageDrmFormatModifierPropertiesEXT\">VkImageDrmFormatModifierPropertiesEXT</a>::<code>drmFormatModifier</code>",
"page": "vkspec"
},
@@ -22257,12 +22247,12 @@
},
{
"vuid": "VUID-vkGetImageSubresourceLayout2KHR-mipLevel-01716",
- "text": "The <code>mipLevel</code> member of <code>pSubresource</code> <strong class=\"purple\">must</strong> be less than the <code>mipLevels</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>image</code> was created",
+ "text": "The <code>mipLevel</code> member of <code>pSubresource</code> <strong class=\"purple\">must</strong> be less than the <code>mipLevels</code> specified in <code>image</code>",
"page": "vkspec"
},
{
"vuid": "VUID-vkGetImageSubresourceLayout2KHR-arrayLayer-01717",
- "text": "The <code>arrayLayer</code> member of <code>pSubresource</code> <strong class=\"purple\">must</strong> be less than the <code>arrayLayers</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>image</code> was created",
+ "text": "The <code>arrayLayer</code> member of <code>pSubresource</code> <strong class=\"purple\">must</strong> be less than the <code>arrayLayers</code> specified in <code>image</code>",
"page": "vkspec"
},
{
@@ -22291,12 +22281,12 @@
"page": "vkspec"
},
{
- "vuid": "VUID-vkGetImageSubresourceLayout2KHR-image-01895",
+ "vuid": "VUID-vkGetImageSubresourceLayout2KHR-image-09434",
"text": "If <code>image</code> was created with the <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID</code> external memory handle type, then <code>image</code> <strong class=\"purple\">must</strong> be bound to memory",
"page": "vkspec"
},
{
- "vuid": "VUID-vkGetImageSubresourceLayout2KHR-tiling-02271",
+ "vuid": "VUID-vkGetImageSubresourceLayout2KHR-tiling-09435",
"text": "If the <code>tiling</code> of the <code>image</code> is <code>VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT</code>, then the <code>aspectMask</code> member of <code>pSubresource</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_ASPECT_MEMORY_PLANE<em>_i_</em>BIT_EXT</code> and the index <em>i</em> <strong class=\"purple\">must</strong> be less than the <a href=\"#VkDrmFormatModifierPropertiesEXT\">VkDrmFormatModifierPropertiesEXT</a>::<code>drmFormatModifierPlaneCount</code> associated with the image&#8217;s <code>format</code> and <a href=\"#VkImageDrmFormatModifierPropertiesEXT\">VkImageDrmFormatModifierPropertiesEXT</a>::<code>drmFormatModifier</code>",
"page": "vkspec"
},
@@ -22402,47 +22392,37 @@
},
{
"vuid": "VUID-VkDeviceImageSubresourceInfoKHR-mipLevel-01716",
- "text": "The <code>mipLevel</code> member of <code>pSubresource</code> <strong class=\"purple\">must</strong> be less than the <code>mipLevels</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>image</code> was created",
+ "text": "The <code>mipLevel</code> member of <code>pSubresource</code> <strong class=\"purple\">must</strong> be less than the <code>mipLevels</code> specified in <code>pCreateInfo</code>",
"page": "vkspec"
},
{
"vuid": "VUID-VkDeviceImageSubresourceInfoKHR-arrayLayer-01717",
- "text": "The <code>arrayLayer</code> member of <code>pSubresource</code> <strong class=\"purple\">must</strong> be less than the <code>arrayLayers</code> specified in <a href=\"#VkImageCreateInfo\">VkImageCreateInfo</a> when <code>image</code> was created",
+ "text": "The <code>arrayLayer</code> member of <code>pSubresource</code> <strong class=\"purple\">must</strong> be less than the <code>arrayLayers</code> specified in <code>pCreateInfo</code>",
"page": "vkspec"
},
{
"vuid": "VUID-VkDeviceImageSubresourceInfoKHR-format-08886",
- "text": "If <code>format</code> of the <code>image</code> is a color format, <code>tiling</code> of the <code>image</code> is <code>VK_IMAGE_TILING_LINEAR</code> or <code>VK_IMAGE_TILING_OPTIMAL</code>, and does not have a <a href=\"#formats-requiring-sampler-ycbcr-conversion\">multi-planar image format</a>, the <code>aspectMask</code> member of <code>pSubresource</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_ASPECT_COLOR_BIT</code>",
+ "text": "If <code>format</code> of the <code>pCreateInfo</code> is a color format, <code>tiling</code> of the <code>pCreateInfo</code> is <code>VK_IMAGE_TILING_LINEAR</code> or <code>VK_IMAGE_TILING_OPTIMAL</code>, and does not have a <a href=\"#formats-requiring-sampler-ycbcr-conversion\">multi-planar image format</a>, the <code>aspectMask</code> member of <code>pSubresource</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_ASPECT_COLOR_BIT</code>",
"page": "vkspec"
},
{
"vuid": "VUID-VkDeviceImageSubresourceInfoKHR-format-04462",
- "text": "If <code>format</code> of the <code>image</code> has a depth component, the <code>aspectMask</code> member of <code>pSubresource</code> <strong class=\"purple\">must</strong> contain <code>VK_IMAGE_ASPECT_DEPTH_BIT</code>",
+ "text": "If <code>format</code> of the <code>pCreateInfo</code> has a depth component, the <code>aspectMask</code> member of <code>pSubresource</code> <strong class=\"purple\">must</strong> contain <code>VK_IMAGE_ASPECT_DEPTH_BIT</code>",
"page": "vkspec"
},
{
"vuid": "VUID-VkDeviceImageSubresourceInfoKHR-format-04463",
- "text": "If <code>format</code> of the <code>image</code> has a stencil component, the <code>aspectMask</code> member of <code>pSubresource</code> <strong class=\"purple\">must</strong> contain <code>VK_IMAGE_ASPECT_STENCIL_BIT</code>",
+ "text": "If <code>format</code> of the <code>pCreateInfo</code> has a stencil component, the <code>aspectMask</code> member of <code>pSubresource</code> <strong class=\"purple\">must</strong> contain <code>VK_IMAGE_ASPECT_STENCIL_BIT</code>",
"page": "vkspec"
},
{
"vuid": "VUID-VkDeviceImageSubresourceInfoKHR-format-04464",
- "text": "If <code>format</code> of the <code>image</code> does not contain a stencil or depth component, the <code>aspectMask</code> member of <code>pSubresource</code> <strong class=\"purple\">must</strong> not contain <code>VK_IMAGE_ASPECT_DEPTH_BIT</code> or <code>VK_IMAGE_ASPECT_STENCIL_BIT</code>",
+ "text": "If <code>format</code> of the <code>pCreateInfo</code> does not contain a stencil or depth component, the <code>aspectMask</code> member of <code>pSubresource</code> <strong class=\"purple\">must</strong> not contain <code>VK_IMAGE_ASPECT_DEPTH_BIT</code> or <code>VK_IMAGE_ASPECT_STENCIL_BIT</code>",
"page": "vkspec"
},
{
"vuid": "VUID-VkDeviceImageSubresourceInfoKHR-tiling-08717",
- "text": "If the <code>tiling</code> of the <code>image</code> is <code>VK_IMAGE_TILING_LINEAR</code> and has a <a href=\"#formats-requiring-sampler-ycbcr-conversion\">multi-planar image format</a>, then the <code>aspectMask</code> member of <code>pSubresource</code> <strong class=\"purple\">must</strong> be a single valid <a href=\"#formats-planes-image-aspect\">multi-planar aspect mask</a> bit",
- "page": "vkspec"
- },
- {
- "vuid": "VUID-VkDeviceImageSubresourceInfoKHR-image-01895",
- "text": "If <code>image</code> was created with the <code>VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID</code> external memory handle type, then <code>image</code> <strong class=\"purple\">must</strong> be bound to memory",
- "page": "vkspec"
- },
- {
- "vuid": "VUID-VkDeviceImageSubresourceInfoKHR-tiling-02271",
- "text": "If the <code>tiling</code> of the <code>image</code> is <code>VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT</code>, then the <code>aspectMask</code> member of <code>pSubresource</code> <strong class=\"purple\">must</strong> be <code>VK_IMAGE_ASPECT_MEMORY_PLANE<em>_i_</em>BIT_EXT</code> and the index <em>i</em> <strong class=\"purple\">must</strong> be less than the <a href=\"#VkDrmFormatModifierPropertiesEXT\">VkDrmFormatModifierPropertiesEXT</a>::<code>drmFormatModifierPlaneCount</code> associated with the image&#8217;s <code>format</code> and <a href=\"#VkImageDrmFormatModifierPropertiesEXT\">VkImageDrmFormatModifierPropertiesEXT</a>::<code>drmFormatModifier</code>",
+ "text": "If the <code>tiling</code> of the <code>pCreateInfo</code> is <code>VK_IMAGE_TILING_LINEAR</code> and has a <a href=\"#formats-requiring-sampler-ycbcr-conversion\">multi-planar image format</a>, then the <code>aspectMask</code> member of <code>pSubresource</code> <strong class=\"purple\">must</strong> be a single valid <a href=\"#formats-planes-image-aspect\">multi-planar aspect mask</a> bit",
"page": "vkspec"
},
{
@@ -32365,16 +32345,6 @@
"vkCmdResetQueryPool": {
"core": [
{
- "vuid": "VUID-vkCmdResetQueryPool-firstQuery-00796",
- "text": "<code>firstQuery</code> <strong class=\"purple\">must</strong> be less than the number of queries in <code>queryPool</code>",
- "page": "vkspec"
- },
- {
- "vuid": "VUID-vkCmdResetQueryPool-firstQuery-00797",
- "text": "The sum of <code>firstQuery</code> and <code>queryCount</code> <strong class=\"purple\">must</strong> be less than or equal to the number of queries in <code>queryPool</code>",
- "page": "vkspec"
- },
- {
"vuid": "VUID-vkCmdResetQueryPool-None-02841",
"text": "All queries used by the command <strong class=\"purple\">must</strong> not be active",
"page": "vkspec"
@@ -32429,16 +32399,6 @@
"page": "vkspec"
},
{
- "vuid": "VUID-vkResetQueryPool-firstQuery-02666",
- "text": "<code>firstQuery</code> <strong class=\"purple\">must</strong> be less than the number of queries in <code>queryPool</code>",
- "page": "vkspec"
- },
- {
- "vuid": "VUID-vkResetQueryPool-firstQuery-02667",
- "text": "The sum of <code>firstQuery</code> and <code>queryCount</code> <strong class=\"purple\">must</strong> be less than or equal to the number of queries in <code>queryPool</code>",
- "page": "vkspec"
- },
- {
"vuid": "VUID-vkResetQueryPool-firstQuery-02741",
"text": "Submitted commands that refer to the range specified by <code>firstQuery</code> and <code>queryCount</code> in <code>queryPool</code> <strong class=\"purple\">must</strong> have completed execution",
"page": "vkspec"
@@ -33024,11 +32984,6 @@
"page": "vkspec"
},
{
- "vuid": "VUID-vkGetQueryPoolResults-firstQuery-00813",
- "text": "<code>firstQuery</code> <strong class=\"purple\">must</strong> be less than the number of queries in <code>queryPool</code>",
- "page": "vkspec"
- },
- {
"vuid": "VUID-vkGetQueryPoolResults-flags-02828",
"text": "If <code>VK_QUERY_RESULT_64_BIT</code> is not set in <code>flags</code> and the <code>queryType</code> used to create <code>queryPool</code> was not <code>VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR</code>, then <code>pData</code> and <code>stride</code> <strong class=\"purple\">must</strong> be multiples of <code>4</code>",
"page": "vkspec"
@@ -33054,41 +33009,11 @@
"page": "vkspec"
},
{
- "vuid": "VUID-vkGetQueryPoolResults-firstQuery-00816",
- "text": "The sum of <code>firstQuery</code> and <code>queryCount</code> <strong class=\"purple\">must</strong> be less than or equal to the number of queries in <code>queryPool</code>",
- "page": "vkspec"
- },
- {
"vuid": "VUID-vkGetQueryPoolResults-dataSize-00817",
"text": "<code>dataSize</code> <strong class=\"purple\">must</strong> be large enough to contain the result of each query, as described <a href=\"#queries-operation-memorylayout\">here</a>",
"page": "vkspec"
},
{
- "vuid": "VUID-vkGetQueryPoolResults-queryType-00818",
- "text": "If the <code>queryType</code> used to create <code>queryPool</code> was <code>VK_QUERY_TYPE_TIMESTAMP</code>, <code>flags</code> <strong class=\"purple\">must</strong> not contain <code>VK_QUERY_RESULT_PARTIAL_BIT</code>",
- "page": "vkspec"
- },
- {
- "vuid": "VUID-vkGetQueryPoolResults-queryType-03230",
- "text": "If the <code>queryType</code> used to create <code>queryPool</code> was <code>VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR</code>, <code>flags</code> <strong class=\"purple\">must</strong> not contain <code>VK_QUERY_RESULT_WITH_AVAILABILITY_BIT</code>, <code>VK_QUERY_RESULT_WITH_STATUS_BIT_KHR</code>, <code>VK_QUERY_RESULT_PARTIAL_BIT</code>, or <code>VK_QUERY_RESULT_64_BIT</code>",
- "page": "vkspec"
- },
- {
- "vuid": "VUID-vkGetQueryPoolResults-queryType-03231",
- "text": "If the <code>queryType</code> used to create <code>queryPool</code> was <code>VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR</code>, the <code>queryPool</code> <strong class=\"purple\">must</strong> have been recorded once for each pass as retrieved via a call to <a href=\"#vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR\">vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR</a>",
- "page": "vkspec"
- },
- {
- "vuid": "VUID-vkGetQueryPoolResults-queryType-04810",
- "text": "If the <code>queryType</code> used to create <code>queryPool</code> was <code>VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR</code>, then <code>flags</code> <strong class=\"purple\">must</strong> include <code>VK_QUERY_RESULT_WITH_STATUS_BIT_KHR</code>",
- "page": "vkspec"
- },
- {
- "vuid": "VUID-vkGetQueryPoolResults-flags-04811",
- "text": "If <code>flags</code> includes <code>VK_QUERY_RESULT_WITH_STATUS_BIT_KHR</code>, then it <strong class=\"purple\">must</strong> not include <code>VK_QUERY_RESULT_WITH_AVAILABILITY_BIT</code>",
- "page": "vkspec"
- },
- {
"vuid": "VUID-vkGetQueryPoolResults-device-parameter",
"text": "<code>device</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkDevice\">VkDevice</a> handle",
"page": "vkspec"
@@ -33133,16 +33058,6 @@
"page": "vkspec"
},
{
- "vuid": "VUID-vkCmdCopyQueryPoolResults-firstQuery-00820",
- "text": "<code>firstQuery</code> <strong class=\"purple\">must</strong> be less than the number of queries in <code>queryPool</code>",
- "page": "vkspec"
- },
- {
- "vuid": "VUID-vkCmdCopyQueryPoolResults-firstQuery-00821",
- "text": "The sum of <code>firstQuery</code> and <code>queryCount</code> <strong class=\"purple\">must</strong> be less than or equal to the number of queries in <code>queryPool</code>",
- "page": "vkspec"
- },
- {
"vuid": "VUID-vkCmdCopyQueryPoolResults-flags-00822",
"text": "If <code>VK_QUERY_RESULT_64_BIT</code> is not set in <code>flags</code> then <code>dstOffset</code> and <code>stride</code> <strong class=\"purple\">must</strong> be multiples of <code>4</code>",
"page": "vkspec"
@@ -33168,41 +33083,16 @@
"page": "vkspec"
},
{
- "vuid": "VUID-vkCmdCopyQueryPoolResults-queryType-00827",
- "text": "If the <code>queryType</code> used to create <code>queryPool</code> was <code>VK_QUERY_TYPE_TIMESTAMP</code>, <code>flags</code> <strong class=\"purple\">must</strong> not contain <code>VK_QUERY_RESULT_PARTIAL_BIT</code>",
- "page": "vkspec"
- },
- {
"vuid": "VUID-vkCmdCopyQueryPoolResults-queryType-03232",
"text": "If the <code>queryType</code> used to create <code>queryPool</code> was <code>VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR</code>, <a href=\"#VkPhysicalDevicePerformanceQueryPropertiesKHR\">VkPhysicalDevicePerformanceQueryPropertiesKHR</a>::<code>allowCommandBufferQueryCopies</code> <strong class=\"purple\">must</strong> be <code>VK_TRUE</code>",
"page": "vkspec"
},
{
- "vuid": "VUID-vkCmdCopyQueryPoolResults-queryType-03233",
- "text": "If the <code>queryType</code> used to create <code>queryPool</code> was <code>VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR</code>, <code>flags</code> <strong class=\"purple\">must</strong> not contain <code>VK_QUERY_RESULT_WITH_AVAILABILITY_BIT</code>, <code>VK_QUERY_RESULT_WITH_STATUS_BIT_KHR</code>, <code>VK_QUERY_RESULT_PARTIAL_BIT</code>, or <code>VK_QUERY_RESULT_64_BIT</code>",
- "page": "vkspec"
- },
- {
- "vuid": "VUID-vkCmdCopyQueryPoolResults-queryType-03234",
- "text": "If the <code>queryType</code> used to create <code>queryPool</code> was <code>VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR</code>, the <code>queryPool</code> <strong class=\"purple\">must</strong> have been submitted once for each pass as retrieved via a call to <a href=\"#vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR\">vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR</a>",
- "page": "vkspec"
- },
- {
"vuid": "VUID-vkCmdCopyQueryPoolResults-queryType-02734",
"text": "<a href=\"#vkCmdCopyQueryPoolResults\">vkCmdCopyQueryPoolResults</a> <strong class=\"purple\">must</strong> not be called if the <code>queryType</code> used to create <code>queryPool</code> was <code>VK_QUERY_TYPE_PERFORMANCE_QUERY_INTEL</code>",
"page": "vkspec"
},
{
- "vuid": "VUID-vkCmdCopyQueryPoolResults-queryType-06901",
- "text": "If the <code>queryType</code> used to create <code>queryPool</code> was <code>VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR</code>, then <code>flags</code> <strong class=\"purple\">must</strong> include <code>VK_QUERY_RESULT_WITH_STATUS_BIT_KHR</code>",
- "page": "vkspec"
- },
- {
- "vuid": "VUID-vkCmdCopyQueryPoolResults-flags-06902",
- "text": "If <code>flags</code> includes <code>VK_QUERY_RESULT_WITH_STATUS_BIT_KHR</code>, then it <strong class=\"purple\">must</strong> not include <code>VK_QUERY_RESULT_WITH_AVAILABILITY_BIT</code>",
- "page": "vkspec"
- },
- {
"vuid": "VUID-vkCmdCopyQueryPoolResults-None-07429",
"text": "All queries used by the command <strong class=\"purple\">must</strong> not be active",
"page": "vkspec"
@@ -71346,7 +71236,7 @@
},
{
"vuid": "VUID-vkCmdBeginTransformFeedbackEXT-None-06233",
- "text": "A valid graphics pipeline <strong class=\"purple\">must</strong> be bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>",
+ "text": "If the <a href=\"#features-shaderObject\"><code>shaderObject</code></a> feature is not enabled, a valid graphics pipeline <strong class=\"purple\">must</strong> be bound to <code>VK_PIPELINE_BIND_POINT_GRAPHICS</code>",
"page": "vkspec"
},
{
@@ -94724,11 +94614,6 @@
"page": "vkspec"
},
{
- "vuid": "VUID-vkGetLatencyTimingsNV-pTimingCount-parameter",
- "text": "<code>pTimingCount</code> <strong class=\"purple\">must</strong> be a valid pointer to a <code>uint32_t</code> value",
- "page": "vkspec"
- },
- {
"vuid": "VUID-vkGetLatencyTimingsNV-pLatencyMarkerInfo-parameter",
"text": "<code>pLatencyMarkerInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkGetLatencyMarkerInfoNV\">VkGetLatencyMarkerInfoNV</a> structure",
"page": "vkspec"
@@ -94749,7 +94634,7 @@
},
{
"vuid": "VUID-VkGetLatencyMarkerInfoNV-pTimings-parameter",
- "text": "<code>pTimings</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkLatencyTimingsFrameReportNV\">VkLatencyTimingsFrameReportNV</a> structure",
+ "text": "If <code>timingCount</code> is not <code>0</code>, and <code>pTimings</code> is not <code>NULL</code>, <code>pTimings</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>timingCount</code> <a href=\"#VkLatencyTimingsFrameReportNV\">VkLatencyTimingsFrameReportNV</a> structures",
"page": "vkspec"
}
]
@@ -100820,12 +100705,7 @@
},
{
"vuid": "VUID-VkCuModuleCreateInfoNVX-pData-parameter",
- "text": "<code>pData</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>dataSize</code> bytes",
- "page": "vkspec"
- },
- {
- "vuid": "VUID-VkCuModuleCreateInfoNVX-dataSize-arraylength",
- "text": "<code>dataSize</code> <strong class=\"purple\">must</strong> be greater than <code>0</code>",
+ "text": "If <code>dataSize</code> is not <code>0</code>, <code>pData</code> <strong class=\"purple\">must</strong> be a valid pointer to an array of <code>dataSize</code> bytes",
"page": "vkspec"
}
]
diff --git a/registry/vk.xml b/registry/vk.xml
index f365b71..ab05ed3 100644
--- a/registry/vk.xml
+++ b/registry/vk.xml
@@ -175,7 +175,7 @@ branch of the member gitlab server.
#define <name>VKSC_API_VERSION_1_0</name> <type>VK_MAKE_API_VERSION</type>(VKSC_API_VARIANT, 1, 0, 0)// Patch version should always be set to 0</type>
<type api="vulkan" category="define">// Version of this file
-#define <name>VK_HEADER_VERSION</name> 270</type>
+#define <name>VK_HEADER_VERSION</name> 271</type>
<type api="vulkan" category="define" requires="VK_HEADER_VERSION">// Complete version of this file
#define <name>VK_HEADER_VERSION_COMPLETE</name> <type>VK_MAKE_API_VERSION</type>(0, 1, 3, VK_HEADER_VERSION)</type>
<type api="vulkansc" category="define">// Version of this file
@@ -1861,7 +1861,7 @@ typedef void* <name>MTLSharedEvent_id</name>;
<member limittype="bitmask"><type>VkBool32</type> <name>residencyStandard2DBlockShape</name><comment>Sparse resources support: GPU will access all 2D (single sample) sparse resources using the standard sparse image block shapes (based on pixel format)</comment></member>
<member limittype="bitmask"><type>VkBool32</type> <name>residencyStandard2DMultisampleBlockShape</name><comment>Sparse resources support: GPU will access all 2D (multisample) sparse resources using the standard sparse image block shapes (based on pixel format)</comment></member>
<member limittype="bitmask"><type>VkBool32</type> <name>residencyStandard3DBlockShape</name><comment>Sparse resources support: GPU will access all 3D sparse resources using the standard sparse image block shapes (based on pixel format)</comment></member>
- <member limittype="bitmask"><type>VkBool32</type> <name>residencyAlignedMipSize</name><comment>Sparse resources support: Images with mip level dimensions that are NOT a multiple of the sparse image block dimensions will be placed in the mip tail</comment></member>
+ <member limittype="not"><type>VkBool32</type> <name>residencyAlignedMipSize</name><comment>Sparse resources support: Images with mip level dimensions that are NOT a multiple of the sparse image block dimensions will be placed in the mip tail</comment></member>
<member limittype="bitmask"><type>VkBool32</type> <name>residencyNonResidentStrict</name><comment>Sparse resources support: GPU can consistently access non-resident regions of a resource, all reads return as if data is 0, writes are discarded</comment></member>
</type>
<type category="struct" name="VkPhysicalDeviceLimits" returnedonly="true">
@@ -7248,8 +7248,8 @@ typedef void* <name>MTLSharedEvent_id</name>;
<type category="struct" name="VkCuModuleCreateInfoNVX">
<member values="VK_STRUCTURE_TYPE_CU_MODULE_CREATE_INFO_NVX"><type>VkStructureType</type> <name>sType</name></member>
<member optional="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>size_t</type> <name>dataSize</name></member>
- <member len="dataSize">const <type>void</type>* <name>pData</name></member>
+ <member optional="true"><type>size_t</type> <name>dataSize</name></member>
+ <member len="dataSize">const <type>void</type>* <name>pData</name></member>
</type>
<type category="struct" name="VkCuFunctionCreateInfoNVX">
<member values="VK_STRUCTURE_TYPE_CU_FUNCTION_CREATE_INFO_NVX"><type>VkStructureType</type> <name>sType</name></member>
@@ -8739,7 +8739,7 @@ typedef void* <name>MTLSharedEvent_id</name>;
<type category="struct" name="VkPhysicalDeviceExternalFormatResolvePropertiesANDROID" structextends="VkPhysicalDeviceProperties2" returnedonly="true">
<member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_PROPERTIES_ANDROID"><type>VkStructureType</type> <name>sType</name></member>
<member optional="true"><type>void</type>* <name>pNext</name></member>
- <member limittype="noauto"><type>VkBool32</type> <name>nullColorAttachmentWithExternalFormatResolve</name></member>
+ <member limittype="not"><type>VkBool32</type> <name>nullColorAttachmentWithExternalFormatResolve</name></member>
<member limittype="noauto"><type>VkChromaLocation</type> <name>externalFormatResolveChromaOffsetX</name></member>
<member limittype="noauto"><type>VkChromaLocation</type> <name>externalFormatResolveChromaOffsetY</name></member>
</type>
@@ -8770,7 +8770,8 @@ typedef void* <name>MTLSharedEvent_id</name>;
<type category="struct" name="VkGetLatencyMarkerInfoNV">
<member values="VK_STRUCTURE_TYPE_GET_LATENCY_MARKER_INFO_NV"><type>VkStructureType</type> <name>sType</name></member>
<member optional="true" noautovalidity="true">const <type>void</type>* <name>pNext</name></member>
- <member><type>VkLatencyTimingsFrameReportNV</type>* <name>pTimings</name></member>
+ <member optional="true"><type>uint32_t</type> <name>timingCount</name></member>
+ <member optional="true" len="timingCount"><type>VkLatencyTimingsFrameReportNV</type>* <name>pTimings</name></member>
</type>
<type category="struct" name="VkLatencyTimingsFrameReportNV">
<member values="VK_STRUCTURE_TYPE_LATENCY_TIMINGS_FRAME_REPORT_NV"><type>VkStructureType</type> <name>sType</name></member>
@@ -15033,7 +15034,6 @@ typedef void* <name>MTLSharedEvent_id</name>;
<proto><type>void</type> <name>vkGetLatencyTimingsNV</name></proto>
<param><type>VkDevice</type> <name>device</name></param>
<param><type>VkSwapchainKHR</type> <name>swapchain</name></param>
- <param><type>uint32_t</type>* <name>pTimingCount</name></param>
<param><type>VkGetLatencyMarkerInfoNV</type>* <name>pLatencyMarkerInfo</name></param>
</command>
<command>
@@ -18438,10 +18438,18 @@ typedef void* <name>MTLSharedEvent_id</name>;
<enum bitpos="25" extends="VkBufferUsageFlagBits2KHR" name="VK_BUFFER_USAGE_2_EXECUTION_GRAPH_SCRATCH_BIT_AMDX"/>
</require>
</extension>
- <extension name="VK_AMD_extension_136" number="136" author="AMD" contact="Mais Alnasser @malnasse" supported="disabled">
+ <extension name="VK_KHR_extension_136" number="136" type="device" author="KHR" contact="Tobias Hector @tobski" supported="disabled">
<require>
- <enum value="0" name="VK_AMD_EXTENSION_136_SPEC_VERSION"/>
- <enum value="&quot;VK_AMD_extension_136&quot;" name="VK_AMD_EXTENSION_136_EXTENSION_NAME"/>
+ <enum value="0" name="VK_KHR_EXTENSION_136_SPEC_VERSION"/>
+ <enum value="&quot;VK_KHR_extension_136&quot;" name="VK_KHR_EXTENSION_136_EXTENSION_NAME"/>
+ <enum bitpos="28" extends="VkBufferUsageFlagBits" name="VK_BUFFER_USAGE_RESERVED_28_BIT_KHR"/>
+ <enum bitpos="29" extends="VkBufferUsageFlagBits" name="VK_BUFFER_USAGE_RESERVED_29_BIT_KHR"/>
+ <enum bitpos="30" extends="VkBufferUsageFlagBits" name="VK_BUFFER_USAGE_RESERVED_30_BIT_KHR"/>
+ </require>
+ <require depends="VK_KHR_maintenance5">
+ <enum bitpos="28" extends="VkBufferUsageFlagBits2KHR" name="VK_BUFFER_USAGE_2_RESERVED_28_BIT_KHR"/>
+ <enum bitpos="29" extends="VkBufferUsageFlagBits2KHR" name="VK_BUFFER_USAGE_2_RESERVED_29_BIT_KHR"/>
+ <enum bitpos="30" extends="VkBufferUsageFlagBits2KHR" name="VK_BUFFER_USAGE_2_RESERVED_30_BIT_KHR"/>
</require>
</extension>
<extension name="VK_AMD_mixed_attachment_samples" number="137" type="device" author="AMD" contact="Matthaeus G. Chajdas @anteru" supported="vulkan">
@@ -20815,8 +20823,6 @@ typedef void* <name>MTLSharedEvent_id</name>;
<enum offset="4" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUDA_KERNEL_LAUNCH_PROPERTIES_NV"/>
<enum offset="0" extends="VkObjectType" name="VK_OBJECT_TYPE_CUDA_MODULE_NV"/>
<enum offset="1" extends="VkObjectType" name="VK_OBJECT_TYPE_CUDA_FUNCTION_NV"/>
- <enum offset="0" extends="VkDebugReportObjectTypeEXT" name="VK_DEBUG_REPORT_OBJECT_TYPE_CUDA_MODULE_NV"/>
- <enum offset="1" extends="VkDebugReportObjectTypeEXT" name="VK_DEBUG_REPORT_OBJECT_TYPE_CUDA_FUNCTION_NV"/>
<type name="VkCudaModuleNV"/>
<type name="VkCudaFunctionNV"/>
<type name="VkCudaModuleCreateInfoNV"/>
@@ -20831,6 +20837,10 @@ typedef void* <name>MTLSharedEvent_id</name>;
<command name="vkDestroyCudaFunctionNV"/>
<command name="vkCmdCudaLaunchKernelNV"/>
</require>
+ <require depends="VK_EXT_debug_report">
+ <enum offset="0" extends="VkDebugReportObjectTypeEXT" name="VK_DEBUG_REPORT_OBJECT_TYPE_CUDA_MODULE_NV_EXT"/>
+ <enum offset="1" extends="VkDebugReportObjectTypeEXT" name="VK_DEBUG_REPORT_OBJECT_TYPE_CUDA_FUNCTION_NV_EXT"/>
+ </require>
</extension>
<extension name="VK_KHR_object_refresh" number="309" type="device" author="KHR" contact="Aidan Fabius @afabius" supported="vulkansc" ratified="vulkansc">
<require>
@@ -22493,7 +22503,7 @@ typedef void* <name>MTLSharedEvent_id</name>;
<enum value="&quot;VK_SEC_extension_451&quot;" name="VK_SEC_EXTENSION_451_EXTENSION_NAME"/>
</require>
</extension>
- <extension name="VK_EXT_nested_command_buffer" number="452" type="device" depends="VK_KHR_get_physical_device_properties2" author="EXT" contact="Piers Daniell @pdaniell-nv" supported="vulkan">
+ <extension name="VK_EXT_nested_command_buffer" number="452" type="device" depends="VK_KHR_get_physical_device_properties2" author="EXT" contact="Piers Daniell @pdaniell-nv" supported="vulkan" ratified="vulkan">
<require>
<enum value="1" name="VK_EXT_NESTED_COMMAND_BUFFER_SPEC_VERSION"/>
<enum value="&quot;VK_EXT_nested_command_buffer&quot;" name="VK_EXT_NESTED_COMMAND_BUFFER_EXTENSION_NAME"/>
@@ -23321,7 +23331,7 @@ typedef void* <name>MTLSharedEvent_id</name>;
</extension>
<extension name="VK_NV_low_latency2" number="506" author="NV" depends="VK_VERSION_1_2,VK_KHR_timeline_semaphore" contact="Charles Hansen @cshansen" type="device" supported="vulkan">
<require>
- <enum value="1" name="VK_NV_LOW_LATENCY_2_SPEC_VERSION"/>
+ <enum value="2" name="VK_NV_LOW_LATENCY_2_SPEC_VERSION"/>
<enum value="&quot;VK_NV_low_latency2&quot;" name="VK_NV_LOW_LATENCY_2_EXTENSION_NAME"/>
<enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_LATENCY_SLEEP_MODE_INFO_NV"/>
<enum offset="1" extends="VkStructureType" name="VK_STRUCTURE_TYPE_LATENCY_SLEEP_INFO_NV"/>
@@ -23703,6 +23713,12 @@ typedef void* <name>MTLSharedEvent_id</name>;
<enum value="&quot;VK_KHR_extension_554&quot;" name="VK_KHR_EXTENSION_554_EXTENSION_NAME"/>
</require>
</extension>
+ <extension name="VK_IMG_extension_555" number="555" author="IMG" contact="Jarred Davies" supported="disabled">
+ <require>
+ <enum value="0" name="VK_IMG_EXTENSION_555_SPEC_VERSION"/>
+ <enum value="&quot;VK_IMG_extension_555&quot;" name="VK_IMG_EXTENSION_555_EXTENSION_NAME"/>
+ </require>
+ </extension>
</extensions>
<formats>
<format name="VK_FORMAT_R4G4_UNORM_PACK8" class="8-bit" blockSize="1" texelsPerBlock="1" packed="8">
@@ -25322,6 +25338,15 @@ typedef void* <name>MTLSharedEvent_id</name>;
<spirvextension name="SPV_AMDX_shader_enqueue">
<enable extension="VK_AMDX_shader_enqueue"/>
</spirvextension>
+ <spirvextension name="SPV_HUAWEI_cluster_culling_shader">
+ <enable extension="VK_HUAWEI_cluster_culling_shader"/>
+ </spirvextension>
+ <spirvextension name="SPV_HUAWEI_subpass_shading">
+ <enable extension="VK_HUAWEI_subpass_shading"/>
+ </spirvextension>
+ <spirvextension name="SPV_NV_ray_tracing_motion_blur">
+ <enable extension="VK_NV_ray_tracing_motion_blur"/>
+ </spirvextension>
</spirvextensions>
<spirvcapabilities comment="SPIR-V Capabilities allowed in Vulkan and what is required to use it">
<spirvcapability name="Matrix">
diff --git a/registry/vkconventions.py b/registry/vkconventions.py
index b4e7966..6f0edd7 100755
--- a/registry/vkconventions.py
+++ b/registry/vkconventions.py
@@ -50,9 +50,21 @@ class VulkanConventions(ConventionsBase):
"""Preferred spelling of NULL."""
return '`NULL`'
+ def formatVersion(self, name, apivariant, major, minor):
+ """Mark up an API version name as a link in the spec."""
+ version = f'{major}.{minor}'
+ if apivariant == 'VKSC':
+ # Vulkan SC has a different anchor pattern for version appendices
+ if version == '1.0':
+ return 'Vulkan SC 1.0'
+ else:
+ return f'<<versions-sc-{version}, Version SC {version}>>'
+ else:
+ return f'<<versions-{version}, Version {version}>>'
+
def formatExtension(self, name):
- """Mark up an extension name as a link the spec."""
- return '`apiext:{}`'.format(name)
+ """Mark up an extension name as a link in the spec."""
+ return f'apiext:{name}'
@property
def struct_macro(self):